2010-05-03 8 views
27

Als Frage wirklich. Ich habe ein Eingabefeld auf meiner Seite, das ich beim Navigieren mit der Tastatur-Tabulatortaste ignorieren möchte.Kann ich beim Navigieren mit der Tabulatortaste einige Elemente der Website ignorieren?

Ich benutze dieses Eingabefeld als einfachen bot Honigfalle und Positionierung es von der Seite, so in dem Moment, wenn die Tab-Taste verwendet wird, sieht es für den Benutzer als ob nichts Fokus hat, wenn sie auf dieses Element Registerkarte.

+1

Anstatt es von der Seite zu positionieren, platzieren Sie es an einer normal aussehenden Stelle und verdecken Sie es mit einem anderen Element. –

+2

@Rex - was erreicht ... was? Es wird immer noch in der Tab-Reihenfolge sein. – Quentin

+0

@David und legen Sie auch den Tabindex. –

Antwort

38

Sie können tabindex="-1" für dieses Element festlegen, damit es in der Reihenfolge ignoriert wird. 0 sagt dem Browser, um die Tab-Reihenfolge für sich selbst herauszufinden, -1 sagt dem Browser, es zu ignorieren.

9

Sie können das Attribut tabindex verwenden, um die Reihenfolge zu definieren, in der die Tabulatortaste Elemente durchlaufen soll. Wenn Sie tabindex="-1" einstellen, wird das Element übersprungen.

Weitere Informationen finden Sie hier http://www.webcheatsheet.com/HTML/controll_tab_order.php zum Beispiel.

UPDATE veränderter tabindex = "0" auf "-1", basierend auf Kommentare

+0

Dies ist jedoch nur ein Teil der Lösung - der Fokus wird irgendwann an dem Element enden, nur später. –

+2

Das ist falsch: http://jsfiddle.net/6QuHc/ –

+0

Tabindex = 0 bewirkt, dass das Element mit den normalen Konventionen indiziert wird - http://www.w3.org/TR/html5/editing.html#negative- tabindex - es wird verwendet, um Elemente zu der normalen Sequenz hinzuzufügen, die normalerweise nicht fokussierbar sind, um sie nicht auszuschließen. – Quentin

1

display: none es statt.

+0

Das stimmt, aber fortgeschrittenere Bots könnten das überprüfen. (wie sie für die Positionierung von der Seite, aber das ist wirklich fortgeschritten). – Konerak

+0

Das ist hypothetisch möglich. OTOH, wenn Sie es aus dem Bildschirm dann Bildschirmleser präsentieren es an echte Benutzer. – Quentin

+0

Ich habe erwogen, die Anzeige auf keine einzustellen, aber ich war besorgt, dass Bots dies viel leichter zu überprüfen finden würden als die Positionierung außerhalb der Seite, wie Konerak sagte. Ich hatte es bereits mit einigen Bildschirmlesesoftware getestet und bemerkte, dass es als ein unmarkiertes Texteingabefeld erscheint. Dies ist natürlich ein Problem, aber es ist eines, mit dem wir vorerst leben müssen und später noch einmal schauen. – thor