ARIA: tree-Rolle
Ein tree
ist ein Widget, das es dem Benutzer ermöglicht, ein oder mehrere Elemente aus einer hierarchisch organisierten Sammlung auszuwählen.
Beschreibung
Ein tree
-Widget ist eine hierarchische Liste mit übergeordneten und untergeordneten Knoten, die erweitert und reduziert werden können. Jedes Element in der Hierarchie kann untergeordnete Tree-Elemente haben, die mit role="treeitem"
festgelegt werden. Tree-Elemente, die Kinder haben, können erweitert oder reduziert werden, um ihre Kinder zu zeigen oder zu verbergen.
Ein Beispiel für ein tree
ist eine Benutzeroberfläche zur Dateiauswahl: Eine Baumansicht, die Ordner und Dateien anzeigt. Ordner können erweitert werden, um den Inhalt des Ordners anzuzeigen – dieser kann Dateien, Ordner oder beides enthalten – und reduziert werden, um deren Inhalt zu verbergen.
ARIA-Baumansichten werden in erster Linie mit den Pfeiltasten auf der Tastatur navigiert, anstatt mit der Tab-Taste. Diese Form der Navigation ist für die meisten Browserinhalte nicht üblich, aber für native Anwendungen normal und erwartet. Aus diesem Grund sollten Sie vor dem Erstellen einer Baumansicht alternative Optionen in Betracht ziehen, um die benötigte Funktionalität bereitzustellen.
Warnung: Baumansichten verwenden eine Navigation, die nativen Anwendungen ähnlicher ist als Webanwendungen. Aus diesem Grund sollten Sie alternative Optionen in Betracht ziehen, um die benötigte Funktionalität bereitzustellen, bevor Sie eine Baumansicht erstellen.
Einzelne und mehrfache Auswahl in Bäumen
Bäume können "einzelne Auswahl" sein, wobei Benutzer nur ein Element für eine Aktion wählen können, oder "mehrfache Auswahl", wobei Benutzer mehr als ein Element für eine Aktion auswählen können. In Bäumen zur Mehrfachauswahl ist das tree
mit aria-multiselectable
auf true gesetzt. Andernfalls ist aria-multiselectable
entweder auf false
gesetzt oder der Standardwert von false
ist impliziert. In beiden Fällen muss der Fokus für alle Tree-Nachkommen verwaltet werden, um tastaturzugänglich zu sein.
In einigen Implementierungen eines Baumes zur Einzelauswahl hat das fokussierte Element ebenfalls einen ausgewählten Zustand; dies wird als "Auswahl folgt dem Fokus" bezeichnet. Wenn ein Baum zur Einzelauswahl den Fokus erhält und kein Tree-Element ausgewählt ist, bevor der Baum den Fokus erhält, wird der Fokus auf den ersten Knoten gesetzt. Wenn ein Tree-Element ausgewählt ist, bevor der Baum den Fokus erhält, wird der Fokus auf das ausgewählte Tree-Element gesetzt. In Bäumen zur Einzelauswahl ist aria-selected
für die ausgewählten Tree-Elemente auf true
gesetzt und ist auf keinem anderen Tree-Element im Baum vorhanden.
In Bäumen zur Mehrfachauswahl sind alle ausgewählten Tree-Elemente auf aria-selected="true"
gesetzt und alle Tree-Element-Knoten, die auswählbar, aber derzeit nicht ausgewählt sind, haben aria-selected="false"
gesetzt. Schließen Sie das aria-selected
-Attribut nicht auf Tree-Elementen ein, die nicht auswählbar sind.
Wenn ein Baum zur Mehrfachauswahl den Fokus erhält und kein Tree-Element ausgewählt ist, bevor der Baum den Fokus erhält, wird der Fokus auf das erste Tree-Element gesetzt. Wenn eines oder mehrere Tree-Elemente ausgewählt sind, bevor der Baum den Fokus erhält, wird der Fokus auf den ersten ausgewählten Knoten gesetzt.
In Bäumen zur Mehrfachauswahl ist der ausgewählte Zustand immer unabhängig vom Fokus. Zum Beispiel kann der Benutzer in einem typischen Dateisystem-Explorer den Fokus bewegen, um eine beliebige Anzahl von Dateien für eine Aktion auszuwählen, z. B. Kopieren oder Verschieben. Das visuelle Design sollte klar machen, welche Elemente ausgewählt sind und welches Element den Fokus hat.
Hierarchie des Baums
In einer Baumansicht ist der tree
-Knoten der Wurzelknoten; er kann untergeordnete, Enkel- und weiter nachfolgende treeitem
-Knoten haben.
Jedes Element, das als Baumknoten dient, hat die Rolle treeitem
, außer dem Wurzelbaumknoten, der die Rolle tree
hat. Ein tree
hat keinen übergeordneten tree
-Knoten - er ist der Wurzelknoten. Wenn ein Knoten sowohl in einem Baum verschachtelt ist als auch Nachkommen von Tree-Elementen hat, hat er die Rolle treeitem
und das Attribut aria-expanded
; aria-expanded="false"
ist gesetzt, wenn der Knoten geschlossen ist, aria-expanded="true"
ist gesetzt, wenn der Knoten geöffnet ist.
treeitem
-Knoten können direkte Kinder des tree
-Wurzelknotens sein, innerhalb eines treeitem
-Knotens verschachtelt oder optional in einem group
-Element verschachtelt, das, wenn es in einem tree
verschachtelt ist, eine erweiterbare Sammlung von Tree-Elementen ist.
Schließen Sie aria-expanded
nicht auf Endknoten ein – diejenigen ohne Tree-Element-Kinder – da dies das Element fälschlicherweise als übergeordnetes Element für unterstützende Technologien beschreiben würde.
DOM-Platzierung und Präsenz
Alle Tree-Elemente sind in einem Element mit der Rolle tree
enthalten oder werden von ihm besessen. Wenn es Tree-Elemente gibt, die nicht direkte Nachkommen des tree
im Markup sind, fügen Sie aria-owns
auf dem besitzenden Baum-Container hinzu, um Elemente einzuschließen, die keine DOM-Kinder des Containers sind. Diese nicht kindlich besessenen Elemente erscheinen in der Leseordnung in der Reihenfolge, in der sie referenziert werden, und nach allen Tree-Elementen, die DOM-Kinder sind. Skripte, die den Fokus verwalten, müssen sicherstellen, dass die visuelle Fokusreihenfolge dieser Leseordnung für unterstützende Technologien entspricht.
Wenn die vollständige Menge der verfügbaren Knoten aufgrund von dynamischem Laden nicht im DOM vorhanden ist, während der Benutzer den Fokus bewegt oder durch den Baum scrollt, hat jeder Knoten aria-level
, aria-setsize
und aria-posinset
spezifiziert.
Zugänglicher Name
Dem tree
muss ein zugänglicher Name zugewiesen werden. Entweder verweisen Sie auf ein sichtbares Etikett, referenziert mit aria-labelledby
, oder spezifizieren Sie ein Etikett mit aria-label
.
Menüausrichtung
Elemente mit der Rolle tree
haben einen impliziten aria-orientation
-Wert von vertikal. Wenn das Baum-Element horizontal ausgerichtet ist, schließen Sie aria-orientation="horizontal"
ein.
Zugehörige WAI-ARIA-Rollen, Zustände und Eigenschaften
role="treeitem"
-
Ein Element in einem Baum.
role="group"
-
Eine erweiterbare Sammlung von Baumelementen.
aria-labelledby
-
Identifiziert das Element (oder die Elemente), das/die den
tree
etikettiert und den erforderlichen zugänglichen Namen bereitstellt, wenn ein sichtbares Etikett vorhanden ist. Verwenden Sie andernfallsaria-label
. aria-label
-
Definiert einen Zeichenfolgewert, der den
tree
etikettiert, wenn kein sichtbares Etikett vorhanden ist. aria-orientation
-
Gibt an, ob die Baumausrichtung horizontal oder vertikal ist; standardmäßig auf
vertical
, wenn weggelassen. aria-multiselectable
-
Wenn auf true gesetzt, zeigt dies an, dass der Benutzer mehr als ein Tree-Element aus den derzeit auswählbaren Nachkommen des Baums auswählen kann.
Tastaturinteraktionen
Für einen vertikal ausgerichteten tree
, was die Standardausrichtung ist:
Pfeil nach rechts |
|
Pfeil nach links |
|
Pfeil nach unten | Bewegt den Fokus zum nächsten fokussierbaren Knoten, ohne einen Knoten zu öffnen oder zu schließen. |
Pfeil nach oben | Bewegt den Fokus zum vorherigen fokussierbaren Knoten, ohne einen Knoten zu öffnen oder zu schließen. |
Home | Bewegt den Fokus zum ersten Knoten im Baum, ohne einen Knoten zu öffnen oder zu schließen. |
Ende | Bewegt den Fokus zum letzten fokussierbaren Knoten im Baum, ohne den Knoten zu öffnen. |
Eingabetaste | Führt die Standardaktion des aktuell fokussierten Knotens aus. Für übergeordnete Knoten öffnet oder schließt er den Knoten. In Bäumen zur Einzelauswahl, wenn der Knoten keine Kinder hat, wird der aktuelle Knoten ausgewählt, wenn er nicht bereits ausgewählt ist (was die Standardaktion ist). |
Geben Sie ein Zeichen ein* |
|
* (Optional) | Erweitert alle Geschwister, die sich auf derselben Ebene wie der aktuelle Knoten befinden. |
* Vorausschauendes Schreiben wird für alle Bäume empfohlen, insbesondere für Bäume mit mehr als 7 Wurzelknoten
Tastaturinteraktionen bei Mehrfachauswahl
Es gibt zwei Interaktionsmodelle für Bäume zur Mehrfachauswahl: Obwohl Sie verlangen können, dass Benutzer beim Navigieren durch die Liste eine Modifikatortaste, wie Shift oder Strg, drücken, um den Auswahlstatus nicht zu verlieren, wird das Modell empfohlen, das nicht erfordert, dass der Benutzer eine Modifikatortaste gedrückt hält.
Empfohlenes Multi-User-Auswahlmodell
Leertaste | Schaltet den Auswahlstatus des fokussierten Knotens um. |
Shift + Pfeil nach unten (Optional) | Bewegt den Fokus und schaltet den Auswahlstatus des nächsten Knotens um. |
Shift + Pfeil nach oben (Optional) | Bewegt den Fokus und schaltet den Auswahlstatus des vorherigen Knotens um. |
Shift + Leertaste (Optional) | Wählt zusammenhängende Knoten vom zuletzt ausgewählten Knoten zum aktuellen Knoten aus. |
Strg + Shift + Home (Optional) | Wählt den Knoten mit Fokus und alle Knoten bis zum ersten Knoten aus. Optional bewegt sich der Fokus zum ersten Knoten. |
Strg + Shift + Ende (Optional) | Wählt den Knoten mit Fokus und alle Knoten bis zum letzten Knoten aus. Optional bewegt sich der Fokus zum letzten Knoten. |
Strg + A (Optional) | Wählt alle Knoten im Baum aus. Optional, wenn alle Knoten ausgewählt sind, kann es auch alle Knoten wieder abwählen. |
Alternatives Mehrfachauswahlmodell
Das alternative Mehrfachauswahlmodell ist ein Modifikatorschlüsselmodell, bei dem das Bewegen des Fokus ohne Halten einer Modifikatortaste wie Shift oder Strg alle ausgewählten Knoten außer dem fokussierten Knoten abwählt:
Shift + Pfeil nach unten | Bewegt den Fokus und schaltet den Auswahlstatus des nächsten Knotens um. |
Shift + Pfeil nach oben | Bewegt den Fokus und schaltet den Auswahlstatus des vorherigen Knotens um. |
Strg + Pfeil nach unten | Bewegt den Fokus ohne Änderung des Auswahlstatus zum nächsten Knoten. |
Strg + Pfeil nach oben | Bewegt den Fokus ohne Änderung des Auswahlstatus zum vorherigen Knoten. |
Strg + Leertaste | Schaltet den Auswahlstatus des fokussierten Knotens um. |
Shift + Leertaste (Optional) | Wählt zusammenhängende Knoten vom zuletzt ausgewählten Knoten zum aktuellen Knoten aus. |
Strg + Shift + Home (Optional) | Wählt den Knoten mit Fokus und alle Knoten bis zum ersten Knoten aus. Optional bewegt sich der Fokus zum ersten Knoten. |
Strg + Shift + Ende (Optional) | Wählt den Knoten mit Fokus und alle Knoten bis zum letzten Knoten aus. Optional bewegt sich der Fokus zum letzten Knoten. |
Strg + A (Optional) | Wählt alle Knoten im Baum aus. Optional, wenn alle Knoten ausgewählt sind, kann es auch alle Knoten wieder abwählen. |
Spezifikationen
Specification |
---|
Accessible Rich Internet Applications (WAI-ARIA) # tree |
Unknown specification |