ARIA Roles im HTML

Erst das richtige Element, dann eine Rolle

Rolle, Zustand, Kontrollkästchen, Auswahlliste: vier Stellen an einem selbst gebauten Filter.

Website prüfen
Beispiel im Prüfbericht Markierter Befund
Markierter Befund · Kritisch · WCAG 4.1.2Ungültige Rolle an der Markerkarte

Semantik-Röntgen

Was eine Rolle sagt – und was sie nicht baut

Zwei gleich aussehende Schalter können technisch völlig verschieden sein. Der Browser liefert nur beim nativen Element das erwartete Verhalten mit.

Konzeptdarstellung: derselbe sichtbare Schalter, zwei Wege in den Accessibility Tree
Natives HTML

<button>

Semantik
button
Tab-Fokus
eingebaut
Enter + Leertaste
eingebaut
disabled
Verhalten + Zustand

Der Browser liefert. Rolle und Bedienung bleiben gekoppelt.

ARIA auf div

<div role="button">

Semantik
button
Tab-Fokus
selbst ergänzen
Enter + Leertaste
selbst programmieren
aria-disabled
stoppt keinen Klick

Die Rolle ist ein Versprechen. Das Verhalten schuldet der Code.

Die kurze Route vom Element zur Bedeutung

Lesen Sie jede Spur von links nach rechts: HTML, implizite Rolle, mitgelieferte Fähigkeit.

Aktion<button type="button">buttonTab, Enter, Leertaste
Auswahl<input type="checkbox">checkboxZustand, Label, Formularwert
Ziel<a href="/preise">linkVerlauf, neuer Tab, Kontextmenü
Bereich<nav aria-label="Hauptnavigation">navigationZiel in der Bereichsliste
Liste<ul> + <li>list + listitemStruktur und Einträge

ARIA ergänzt, wenn HTML keine Aussage hat

Das native Element bleibt die Basis. ARIA ergänzt den Umschaltzustand; das Skript hält seinen Wert synchron.

Vier native Ausgangspunkte

Die Rollen stehen nicht im HTML. Der Browser leitet sie aus den Elementen ab.

<button type="button">Mehr anzeigen</button>

<label>
  <input type="checkbox" name="filter">
  Nur verfügbare Artikel
</label>

<a href="/preise">Preise ansehen</a>

<nav aria-label="Hauptnavigation">
  <a href="/produkte">Produkte</a>
  <a href="/kontakt">Kontakt</a>
</nav>

So prüfen Sie Rollen

  1. Im HTML nach role= suchen und zuerst ein natives Element prüfen.
  2. Mit Tab jedes Widget erreichen; der Fokus muss sichtbar bleiben.
  3. Die erwarteten Tasten aus dem Rollen-Pattern vollständig testen.
  4. Im Accessibility Tree Name, Rolle und aktuellen Zustand vergleichen.

Aus dem Prüfbericht

Vier Stellen, vier Befunde

Zum Mitnehmen

Der Filter, korrigiert

Natives Element zuerst, sonst Rolle samt geforderten Pflichten.

Korrektur in 3 Schritten ansehen
  1. Das native Element statt einer Rolle

    Ein input mit type="checkbox" bringt Rolle, Zustand und Tastaturbedienung mit. Ein ARIA-Attribut ist dann nicht nötig.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <div role="filterfeld" tabindex="0">Grenzmarke</div>

    Nachher

    <label>
      <input type="checkbox" name="filter" value="grenzmarke">
      Grenzmarke
    </label>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Tabben Sie zum Filter und drücken Sie die Leertaste. Das Häkchen wechselt.

  2. Bei eigener Rolle den Zustand ergänzen

    Wo role="checkbox" bleiben muss, gehört aria-checked dazu. Das Skript hält den Wert beim Umschalten aktuell.

    KorrekturvergleichSchritt 2 · HTML

    Vorher

    <div role="checkbox" tabindex="0">Grenzmarke</div>

    Nachher

    <div role="checkbox" tabindex="0" aria-checked="false">Grenzmarke</div>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm nennt beim Filter „Kontrollkästchen“ und den Zustand.

  3. Der Liste ihre Optionen geben

    role="listbox" verlangt Kinder mit role="option". Sonst meldet sich die Auswahl leer, obwohl Einträge sichtbar sind.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <div role="listbox" aria-label="Sortierung">
      <div>Nach Datum</div>
    </div>

    Nachher

    <div role="listbox" aria-label="Sortierung">
      <div role="option" aria-selected="false">Nach Datum</div>
    </div>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm nennt beim Öffnen die Zahl der Optionen.

Werbung

Kostenloser Website-Barrierefreiheits-Check

Website auf Barrierefreiheit prüfen.

Technische WCAG-Warnsignale erkennen. Kritische Stellen zuerst prüfen.

Der Website-Check ist bereit.

Werbung

Ein letzter Schritt

Prüfen, bevor Sie gehen.

Finden Sie automatisch erkennbare Barrieren auf Ihrer eigenen Website.

Website prüfen

Kostenlos starten · keine Installation

Automatisches Screening. Tastaturbedienung und Screenreader bleiben manuelle Prüfung.