HTML tabindex Globalattribut
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Das tabindex Globalattribut ermöglicht es Entwicklern, HTML-Elemente fokussierbar zu machen, erlaubt oder verhindert, dass sie sequenziell fokussiert werden können (normalerweise mit der Tab-Taste, daher der Name) und bestimmt ihre relative Reihenfolge für die sequenzielle Fokusnavigation.
Probieren Sie es aus
<p>Click anywhere in this pane, then try tabbing through the elements.</p>
<label>First in tab order:<input type="text" /></label>
<div tabindex="0">Tabbable due to tabindex.</div>
<div>Not tabbable: no tabindex.</div>
<label>Third in tab order:<input type="text" /></label>
p {
font-style: italic;
font-weight: bold;
}
div,
label {
display: block;
letter-spacing: 0.5px;
margin-bottom: 1rem;
}
div:focus {
font-weight: bold;
}
Es akzeptiert einen Ganzzahlwert, wobei unterschiedliche Werte zu unterschiedlichen Ergebnissen führen:
Hinweis:
Wenn ein HTML-Element gerendert wird und das tabindex-Attribut mit einem gültigen Ganzzahlwert hat, kann das Element mit JavaScript (durch Aufrufen der focus()-Methode) oder visuell durch Klicken mit der Maus fokussiert werden. Der spezifische tabindex-Wert bestimmt, ob das Element tabbable ist (d.h. erreichbar über sequenzielle Tastaturnavigation, normalerweise mit der Tab-Taste).
-
Ein negativer Wert (der genaue negative Wert ist tatsächlich nicht wichtig, normalerweise
tabindex="-1") bedeutet, dass das Element nicht über sequenzielle Tastaturnavigation erreichbar ist.Hinweis:
tabindex="-1"kann nützlich sein für Elemente, die nicht direkt über die Tab-Taste navigiert werden sollen, jedoch den Tastaturfokus erhalten müssen. Beispiele sind ein außermittiges modales Fenster, das fokussiert werden soll, wenn es sichtbar wird, oder eine Fehlermeldung bei der Formularübermittlung, die sofort fokussiert werden sollte, wenn ein fehlerhaftes Formular gesendet wird. -
tabindex="0"bedeutet, dass das Element in der sequenziellen Tastaturnavigation fokussierbar sein sollte, nach allen positiventabindex-Werten. Die Fokusnavigationsreihenfolge dieser Elemente wird durch ihre Reihenfolge im Dokumentenquellcode definiert. -
Ein positiver Wert bedeutet, dass das Element in der sequenziellen Tastaturnavigation fokussierbar sein sollte, wobei seine Reihenfolge durch den Wert der Zahl definiert wird. Das heißt,
tabindex="4"wird vortabindex="5"undtabindex="0"fokussiert, aber nachtabindex="3". Wenn mehrere Elemente denselben positiventabindex-Wert haben, folgt ihre Reihenfolge relativ zueinander ihrer Position im Dokumentquellcode. Der maximale Wert fürtabindexist 32767. -
Wenn das
tabindex-Attribut ohne festgelegten Wert enthalten ist, bestimmt der Benutzeragent, ob das Element fokussierbar ist.Warnung: Es wird empfohlen, nur
0und-1alstabindex-Werte zu verwenden. Vermeiden Sietabindex-Werte größer als0sowie CSS-Eigenschaften, die die Reihenfolge fokussierbarer HTML-Elemente ändern können (Reihenfolge von Flex-Elementen). Dies erschwert es Personen, die auf Tastaturnavigation oder unterstützende Technologien angewiesen sind, die Seiteninhalte zu navigieren und zu bedienen. Stattdessen sollten die Dokumente mit den Elementen in logischer Reihenfolge erstellt werden.
Einige fokussierbare HTML-Elemente haben standardmäßig einen tabindex-Wert von 0, der vom Benutzeragenten festgelegt wird. Diese Elemente sind ein <a> oder <area> mit href-Attribut, <button>, <frame>
Veraltet
, <iframe>, <input>, <object>, <select>, <textarea>, und das SVG-<a>-Element oder ein <summary>-Element, das eine Zusammenfassung für ein <details>-Element bietet. Entwickler sollten diesen Elementen kein tabindex-Attribut hinzufügen, es sei denn, es ändert das Standardverhalten (zum Beispiel entfernt ein negativer Wert das Element aus der Fokusnavigationsreihenfolge).
Warnung:
Das tabindex-Attribut darf nicht auf dem <dialog>-Element verwendet werden.
Zugänglichkeitsaspekte
Vermeiden Sie die Verwendung des tabindex-Attributs in Verbindung mit nicht-interaktiven Inhalten, um etwas, das interaktiv sein sollte, durch Tastatureingaben fokussierbar zu machen. Ein Beispiel wäre die Verwendung eines <div>-Elements zur Beschreibung einer Schaltfläche anstelle des <button>-Elements.
Interaktive Komponenten, die unter Verwendung nicht interaktiver Elemente erstellt wurden, werden nicht im Zugänglichkeit-Baum aufgelistet. Dies hindert unterstützende Technologien daran, zu diesen Komponenten zu navigieren und sie zu manipulieren. Der Inhalt sollte semantisch mit interaktiven Elementen beschrieben werden (<a>, <button>, <details>, <input>, <select>, <textarea> usw.). Diese Elemente haben integrierte Rollen und Zustände, die den Status an die Barrierefreiheit kommunizieren, der sonst durch ARIA verwaltet werden müsste.
Spezifikationen
| Specification |
|---|
| HTML> # attr-tabindex> |
Browser-Kompatibilität
Siehe auch
- Alle Globalen Attribute
HTMLElement.tabIndex, das dieses Attribut widerspiegelt- Barrierefreiheitsprobleme mit
tabindex: siehe Don't Use Tabindex Greater than 0 von Adrian Roselli - Lesereihenfolge