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 anzuzeigen oder zu verbergen.
Ein Beispiel für einen 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 – was Dateien, Ordner oder beides sein kann – und reduziert werden, um den Inhalt zu verbergen.
ARIA-Baumansichten werden hauptsächlich mit Pfeiltasten auf der Tastatur anstelle der Tab-Taste navigiert. Diese Form der Navigation ist nicht üblich für die meisten Browserinhalte, aber normal und erwartet bei nativen Anwendungen. Aus diesem Grund sollten Sie, bevor Sie eine Baumansicht erstellen, alternative Optionen in Betracht ziehen, um die benötigte Funktionalität zu erfüllen.
Warnung: Baumansichten verwenden eine Navigation, die eher nativen Anwendungen ähnelt als Webanwendungen. Aus diesem Grund sollten Sie alternative Optionen in Betracht ziehen, um die benötigte Funktionalität zu erreichen, bevor Sie eine Baumansicht erstellen.
Einzel- und Mehrfachauswahlbäume
Bäume können "Einzelauswahl" sein, was es Benutzern erlaubt, nur ein Element für eine Aktion auszuwählen, oder "Mehrfachauswahl", bei der Benutzer mehr als ein Element für eine Aktion auswählen können. In Mehrfachauswahlbäumen ist der tree
mit aria-multiselectable
auf true gesetzt. Andernfalls wird aria-multiselectable
entweder auf false
gesetzt oder der Standardwert false
wird impliziert. In beiden Fällen muss der Fokus für alle Abkömmlinge des Baumes verwaltet werden, um Tastaturzugänglichkeit zu gewährleisten.
In einigen Implementierungen eines Einzelauswahlbaums hat das fokussierte Element auch einen ausgewählten Zustand; das wird als "Selektion folgt dem Fokus" bezeichnet. Wenn ein Einzelauswahlbaum den Fokus erhält und keine der Tree-Elemente ausgewählt sind, wird der Fokus auf den ersten Knoten gesetzt. Wenn ein Tree-Element vor dem Fokuserhalt ausgewählt ist, wird der Fokus auf das ausgewählte Tree-Element gesetzt. In Einzelauswahlbäumen wird aria-selected
für die ausgewählten Tree-Elemente auf true
gesetzt und ist bei keinem anderen Tree-Element im Baum vorhanden.
In Mehrfachauswahlbäumen haben alle ausgewählten Tree-Elemente aria-selected="true"
gesetzt, und alle Tree-Knotenelemente, die auswählbar, aber momentan nicht ausgewählt sind, haben aria-selected="false"
gesetzt. Schließen Sie das aria-selected
Attribut nicht bei Tree-Elementen ein, die nicht auswählbar sind.
Wenn ein Mehrfachauswahlbaum den Fokus erhält und keines der Tree-Elemente vor dem Fokuserhalt ausgewählt sind, wird der Fokus auf das erste Tree-Element gesetzt. Wenn eines oder mehrere Tree-Elemente vor dem Fokuserhalt ausgewählt sind, wird der Fokus auf den ersten ausgewählten Knoten gesetzt.
In Mehrfachauswahlbäumen ist der ausgewählte Zustand immer unabhängig vom Fokus. Zum Beispiel kann der Benutzer in einem typischen Dateisystemnavigator den Fokus verschieben, um eine beliebige Anzahl von Dateien für eine Aktion auszuwählen, wie Kopieren oder Verschieben. Das visuelle Design sollte klar darstellen, welche Elemente ausgewählt sind und welches Element den Fokus hat.
Baumhierarchie
In einer Baumansicht ist der tree
-Knoten der Wurzelknoten; er kann übergeordnete, untergeordnete und weitere nachfolgende treeitem
-Knoten haben.
Jedes Element, das als Baumknoten dient, hat die Rolle treeitem
, mit Ausnahme des Wurzelknotens des Baums, 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 untergeordnete Tree-Elemente hat, dann hat er die Rolle treeitem
und das Attribut aria-expanded
; aria-expanded="false"
wird gesetzt, wenn der Knoten im geschlossenen Zustand ist, aria-expanded="true"
wird gesetzt, wenn der Knoten im offenen Zustand ist.
treeitem
-Knoten können direkte Kinder des tree
-Wurzelknotens sein, innerhalb eines treeitem
-Knotens verschachtelt oder optional in einem group
-Element verschachtelt sein, das, wenn es in einem tree
verschachtelt ist, eine erweiterbare Sammlung von treeitem-Elementen darstellt.
Schließen Sie aria-expanded
nicht bei Endknoten ein — bei denen ohne untergeordnete Tree-Elemente — da dies den Knoten fälschlicherweise als Elternknoten für unterstützende Technologien beschreiben würde.
DOM-Platzierung und Anwesenheit
Alle Tree-Elemente sind in einem Element mit der Rolle tree
enthalten oder von ihm besessen. Wenn es Tree-Elemente gibt, die keine direkten Nachkommen des tree
im Markup sind, schließen Sie aria-owns
im besitzenden Baumcontainer ein, um Elemente aufzunehmen, die keine DOM-Kinder des Containers sind. Diese nicht direkt untergeordneten Elemente erscheinen in der Leserichtung 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 Leserichtung der unterstützenden Technologie entspricht.
Wenn der vollständige Satz verfügbarer Knoten aufgrund dynamischen Ladevorgangs beim Verschieben des Fokus im Baum oder beim Scrollen nicht im DOM vorhanden ist, haben alle Knoten aria-level
, aria-setsize
und aria-posinset
angegeben.
Zugänglicher Name
Dem tree
muss ein zugänglicher Name zugewiesen werden. Entweder verweisen Sie auf eine sichtbare Bezeichnung mit aria-labelledby
oder geben Sie eine Bezeichnung mit aria-label
an.
Menüausrichtung
Elemente mit der Rolle tree
haben einen impliziten aria-orientation
-Wert von vertikal. Wenn das Tree-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 Tree-Elementen.
aria-labelledby
-
Identifiziert das Element (oder die Elemente), das/die den
tree
beschriftet/beschriften und den erforderlichen zugänglichen Namen bereitstellt, wenn eine sichtbare Bezeichnung vorhanden ist. Andernfalls verwenden Siearia-label
. aria-label
-
Definiert einen Zeichenfolgenwert, der den
tree
beschriftet, wenn keine sichtbare Bezeichnung vorhanden ist. aria-orientation
-
Gibt an, ob die Ausrichtung des Baumes horizontal oder vertikal ist; Standardmäßig vertikal, wenn nicht angegeben.
aria-multiselectable
-
Wenn auf true gesetzt, gibt es an, dass der Benutzer mehr als ein Tree-Item aus den derzeit auswählbaren Nachkommen des Baumes auswählen kann.
Tastaturinteraktionen
Für einen vertikal orientierten tree
, was die Standardausrichtung ist:
Rechtspfeil |
|
Linkspfeil |
|
Abwärtspfeil | Verschiebt den Fokus auf den nächsten Knoten, der fokussierbar ist, ohne einen Knoten zu öffnen oder zu schließen. |
Aufwärtspfeil | Verschiebt den Fokus auf den vorhergehenden Knoten, der fokussierbar ist, ohne einen Knoten zu öffnen oder zu schließen. |
Home | Verschiebt den Fokus auf den ersten Knoten im Baum, ohne einen Knoten zu öffnen oder zu schließen. |
Ende | Verschiebt den Fokus auf den letzten Knoten im Baum, der fokussierbar ist, ohne den Knoten zu öffnen. |
Eingabetaste | Führt die Standardaktion des aktuell fokussierten Knotens aus. Bei übergeordneten Knoten öffnet oder schließt es den Knoten. In Einzelauswahlbäumen, wenn der Knoten keine Kinder hat, wählt es den aktuellen Knoten aus, wenn er nicht bereits ausgewählt ist (was die Standardaktion ist). |
Einen Buchstaben eingeben* |
|
* (Optional) | Erweitert alle Geschwister, die auf derselben Ebene wie der aktuelle Knoten sind. |
* Ein Vorauswahlverfahren wird für alle Bäume empfohlen, insbesondere für Bäume mit mehr als 7 Wurzelknoten
Mehrfachauswahl-Tastaturinteraktionen
Es gibt zwei Interaktionsmodelle für Mehrfachauswahlbäume: Während Sie von Benutzern verlangen können, eine Modifikatortaste wie Shift oder Strg beim Navigieren der Liste zu drücken, um zu vermeiden, dass Auswahlzustände verloren gehen, wird das Modell empfohlen, das nicht erfordert, dass der Benutzer eine Modifikatortaste hält.
Empfohlenes Mehrfachbenutzerauswahlmodell
Leertaste | Wechselt den Auswahlzustand des fokussierten Knotens. |
Shift + Abwärtspfeil (Optional) | Verschiebt den Fokus und wechselt den Auswahlzustand des nächsten Knotens. |
Shift + Aufwärtspfeil (Optional) | Verschiebt den Fokus und wechselt den Auswahlzustand des vorhergehenden Knotens. |
Shift + Leertaste (Optional) | Wählt zusammenhängende Knoten vom zuletzt ausgewählten Knoten bis zum aktuellen Knoten aus. |
Strg + Shift + Home (Optional) | Wählt den Knoten mit Fokus und alle Knoten bis zum ersten Knoten aus. Optional wird der Fokus auf den ersten Knoten verschoben. |
Strg + Shift + Ende (Optional) | Wählt den Knoten mit Fokus und alle Knoten bis zum letzten Knoten aus. Optional wird der Fokus auf den letzten Knoten verschoben. |
Strg + A (Optional) | Wählt alle Knoten im Baum aus. Optional, wenn alle Knoten ausgewählt sind, kann es auch alle Knoten abwählen. |
Alternatives Mehrfachauswahlmodell
Das alternative Mehrfachauswahlmodell ist ein Modifikatortastenmodell, bei dem das Verschieben des Fokus ohne Halten einer Modifikatortaste wie Shift oder Strg alle ausgewählten Knoten außer dem fokussierten Knoten abwählt:
Shift + Abwärtspfeil | Verschiebt den Fokus und wechselt den Auswahlzustand des nächsten Knotens. |
Shift + Aufwärtspfeil | Verschiebt den Fokus und wechselt den Auswahlzustand des vorhergehenden Knotens. |
Strg + Abwärtspfeil | Ohne den Auswahlzustand zu ändern, verschiebt den Fokus auf den nächsten Knoten. |
Strg + Aufwärtspfeil | Ohne den Auswahlzustand zu ändern, verschiebt den Fokus auf den vorhergehenden Knoten. |
Strg + Leertaste | Wechselt den Auswahlzustand des fokussierten Knotens. |
Shift + Leertaste (Optional) | Wählt zusammenhängende Knoten vom zuletzt ausgewählten Knoten bis zum aktuellen Knoten aus. |
Strg + Shift + Home (Optional) | Wählt den Knoten mit Fokus und alle Knoten bis zum ersten Knoten aus. Optional wird der Fokus auf den ersten Knoten verschoben. |
Strg + Shift + Ende (Optional) | Wählt den Knoten mit Fokus und alle Knoten bis zum letzten Knoten aus. Optional wird der Fokus auf den letzten Knoten verschoben. |
Strg + A (Optional) | Wählt alle Knoten im Baum aus. Optional, wenn alle Knoten ausgewählt sind, kann es auch alle Knoten abwählen. |
Spezifikationen
Specification |
---|
Accessible Rich Internet Applications (WAI-ARIA) # tree |
Unknown specification |