Tri-State-Checkbox 
veröffentlicht in 2014
zuletzt bearbeitet in
Wenn ein Kontrollfeld mit HTML erzeugt wird, dann hat das Kontrollfeld alles, was es für eine barrierefreie Bedienung benötigt:
<p>
<label>
<input type="checkbox">
Ich esse Gemüse
</label>
</p>
Im Einzelnen:
Das Kontrollfeld besitzt eine Rolle ("checkbox"), einen Zustand ("aktiviert" oder "nicht aktiviert") und einen Namen (hier durch die Verknüpfung der Beschriftung mit dem
label-Element). Diese semantischen Informationen können im in den Entwicklerwerkzeugen des Browsers überprüft werden.
- Das Kontrollfeld kann standardmäßig per Tastatur bedient werden (zum einen per Tab-Taste fokussiert und zum anderen per Leertaste aktiviert und deaktiviert werden). Außerdem erhält das Kontrollfeld einen sichtbaren Fokusindikator.
- Das Kontrollfeld kann bei benutzereigenen Stilvorgaben (zum Beispiel im Kontrastmodus) wahrgenommen werden.
Grenzen für Funktionalität und Gestaltung
Normalerweise gibt es nur zwei Gründe, auf HTML für Kontrollfelder zu verzichten:
- Das Kontrollfeld soll drei statt zwei Zustände besitzen können. Neben "Aktiviert" und "nicht aktiviert" soll auch "teilweise aktiviert" dargestellt werden können.
- Das Kontrollfeld soll optisch anders dargestellt werden, wobei die Möglichkeiten mit CSS für die gewünschte Darstellung nicht ausreichen.
Hingegen, wenn ein Kontrollfeld dynamische Funktionen erhält, um beispielsweise eine Ergebnisliste zu filtern, handelt es sich nicht mehr um ein Kontrollfeld, sondern um eine Wechselschaltfläche.
Drei statt zwei Zuständen
Wenn ein Kontrollfeld drei Zustände haben soll, sieht HTML kein Attribut für den Zwischenzustand "teilweise aktiviert" vor:

Die Kennzeichnung eines Kontrollfelds mit dem indeterminate-Attribut ist zwar möglich, um den Zustand des Kontrollfelds zu verschleiern, aber es handelt sich um eine reine visuelle Angelegenheit. Das indeterminate-Attribut hat keinerlei Semantik.
The control is never a true tri-state control, even if the element's indeterminate IDL attribute is set to true. The indeterminate IDL attribute only gives the appearance of a third state.
Weil die Kennzeichnung von "teilweise aktiviert" für ein Kontrollfeld mit HTML nicht umgesetzt werden kann, muss eine andere Technik eingesetzt werden. Folgende zwei Techniken erlauben die Kennzeichnung von drei Zuständen in einer Tri-State-Checkbox:
- wenn ein Kontrollfeld die
indeterminate-Eigenschaft per JavaScript erhält, erhält es den Zustand "teilweise aktiviert". wenn ein Element mit der expliziten Rolle "checkbox" ein
aria-checked-Attribut mit dem Wert "mixed" erhält, erhält das Kontrollfeld den Zustand "teilweise aktiviert".Hinweis: Das
aria-checked-Attribut darf nicht für ein Kontrollfeld (<input type="checkbox">) vergeben werden. Da Kontrollfelder sowohl einechecked-Eigenschaft als auch einaria-checked-Attribut besitzen würden, werden Browser immer nur den Wert derchecked-Eigenschaft ("aktiviert" oder "nicht aktiviert") an Assistenztechnologien weiterleiten.
Konkret bedeutet das:
- Wenn Sie mit Kontrollfeldern (
<input type="checkbox">) arbeiten, können Sie auch dieindeterminate-Eigenschaft einsetzen, um den "teilweise aktivierten" Zustand darzustellen. - Wenn Sie ohne Kontrollfelder arbeiten, sondern Grafiken oder andere Elemente zur Darstellung von Kontrollfeldern einsetzen, müssen Sie unter anderem mit einem
aria-checked-Attribut zusammen mit der Rolle "checkbox" arbeiten, um einen "teilweise aktivierten" Zustand semantisch abzubilden.
Grafiken als Kontrollfelder
Wenn Kontrollfelder mit Grafiken gestaltet werden, dann haben Sie grundsätzlich zwei Möglichkeiten, sie barrierefrei nutzbar zu machen:
- Sie setzen die CSS-Eigenschaft
appearanceein, um die Darstellung des Kontrollfelds zu unterdrücken und setzen ebenfalls per CSS eine Grafik anstelle des Kontrollfelds ein. - Sie nutzen HTML-Elemente (zum Beispiel ein
img-Element) für die Darstellung eines Kontrollfelds und ergänzen das HTML mitrole="checkbox"und einemaria-checked-Attribut.
Im folgenden Beispiel wird ein Kontrollfeld durch eine Grafik per CSS ersetzt:
In diesem Beispiel ist kein ARIA erforderlich. Das Kontrollfeld ist nach wie vor vorhanden; es ist nur nicht am Bildschirm sichtbar. Bei einer Interaktion werden Nutzende das mit HTML erzeugte Kontrollfeld aktivieren oder deaktivieren. Um daraus eine Tri-State-Checkbox zu machen, kann mit der indeterminate-Eigenschaft gearbeitet werden.
Mit der appearance-Eigenschaft werden die Stileigenschaften des Kontrollfelds entfernt. Autoren können per CSS das Kontrollfeld nach Belieben gestalten. In dem Beispiel werden Grafiken als Pseudo-Elemente eingesetzt. Weitere barrierefreie Features sind:
- Der Fokusindikator wird deutlich sichtbar gestaltet.
- Die Zielgröße ist mindestens 44px × 44px groß.
Weitere Anforderungen der Barrierefreiheit
Bei allen Inhalten auf Webseiten gibt es meist mehrere Aspekte der Barrierefreiheit, die berücksichtigt werden müssen. Die folgenden Themen kommen im Zusammenhang mit Kontrollfeldern typischerweise vor.
Ein Kontrollfeld benötigt eine beschreibende Beschriftung (Erfolgskriterium 3.3.2). Die Beschriftung kann ein sichtbarer Text oder eine Grafik mit Alternativtext sein.
Kontrollfelder müssen per Tastatur bedienbar sein, das heißt sie müssen per Tab-Taste erreicht und per Leertaste aktiviert werden können (Erfolgskriterium 2.1.1). Sollte es eine Kontextänderung bei der Bedienung des Kontrollfeldes geben (etwa eine Veränderung des Fokus), so muss diese Änderung in Textform angekündigt werden (Erfolgskriterium 3.2.2).
Die Zielgröße eines Kontrollfelds ist relativ klein. Durch die Verknüpfung der Beschriftung per label-Element wird die Zielgröße deutlich größer. Die Web Content Accessibility Guidelines (WCAG) 2.2 stellt zwei Anforderungen an die Zielgröße: Wenn Sie das standardmäßig angezeigte Kontrollfeld ausblenden und mit Grafiken oder CSS-Eigenschaften neu gestalten, dann
- muss das Kontrollfeld eine Zielgröße von 24px × 24px erreichen oder ausreichend Abstand zu anderen aktiven Elementen haben (Erfolgskriterium 2.5.8) und
- soll das Kontrollfeld eine Zielgröße von 44px × 44px erreichen (Erfolgskriterium 2.5.5).
Die Beschriftungen von Kontrollfeldern und die Kontrollfelder selbst müssen Mindestkontrastanforderungen erfüllen:
- Die Farbe der Beschriftung muss ein Kontrastverhältnis von mindestens 4,5:1 zu ihrer Hintergrundfarbe erreichen(Erfolgskriterium 1.4.3 und soll ein Kontrastverhältnis von 7,0:1 erreichen (Erfolgskriterium 1.4.6).
- Die Farben für das Kontrollfeld selbst unterliegen auch Mindestkontrastanforderungen. Wenn Sie das Kontrollfeld mit Grafiken oder CSS-Eigenschaften neu gestalten, dann müssen die Farben des Kontrollfelds sowie die Farbe des Häkchens jeweils mindestens 3,0:1 zu allen benachbarten Farben erreichen(Erfolgskriterium 1.4.11).
- Außerdem gibt es Anforderungen an den Fokusindikator. Wenn ein Kontrollfeld fokussiert wird und der Fokusindikator angezeigt wird, sollen die Pixel des Fokusindikators einen Unterschied im Kontrastverhältnis von 3,0:1 zu den gleichen Pixeln im nicht-fokussierten Zustand erreichen(Erfolgskriterium 2.4.13).
Der Beitrag "Tri-State-Checkbox" besteht aus folgenden einzelnen Webseiten:
- Die
indeterminate-Eigenschaft Es gibt eine
indeterminate-Eigenschaft für Kontrollfelder. Mit der Eigenschaft wird eine Tri-State-Checkbox erzeugt.- Das
aria-checked-Attribut Elemente, die als Kontrollfeld dargestellt werden, benötigen ein
role="checkbox"und einaria-checked-Attribut. Dasaria-checked-Attribut kann drei Werte annehmen.
Die folgenden Begriffe dieser Seite werden auch im Glossar definiert:
Blättern zur nächsten oder vorherigen Seite
-
Es gibt eine
indeterminate-Eigenschaft für Kontrollfelder. Mit der Eigenschaft wird eine Tri-State-Checkbox erzeugt. Dieindeterminate-Eigenschaft -
Buttons, die Inhalte zur Seite hinzufügen und dabei andere Inhalte überlagern können, müssen mit einem
aria-haspopup-Attribut ergänzt werden. Überblendschaltflächen