WCAG und ARIA

ARIA hilft nur, wenn sie stimmt

Rolle, Attributname, Pflichtzustand: drei Stellen an einer Checkbox.

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

WCAG 4.1.2 · WAI-ARIA

WCAG prüft das Ziel. ARIA beschreibt Signale.

Ein zugänglicher Name, die richtige Rolle und ein aktueller Zustand müssen bei assistiven Technologien ankommen. Der kürzeste verlässliche Weg beginnt mit HTML.

Entscheidungskarte

Eine Checkbox, zwei technische Wege

Schematische Darstellung des Semantikflusses

WCAG
definiert das prüfbare Ergebnis

Name und Rolle ermittelbar; Zustand setzbar; Änderungen mitgeteilt.

ARIA
definiert Semantik für eigene Widgets

Rollen, Zustände, Eigenschaften und ihre zulässigen Beziehungen.

StartGibt es dafür ein passendes natives HTML-Element?
Entscheidung zwischen nativem HTML und eigenem Widget Vom Startpunkt führt der bevorzugte Weg zum nativen Kontrollfeld. Nur wenn kein passendes HTML-Element existiert, führt der zweite Weg zum ARIA-Widget.
Ja · bevorzugt

HTML übernimmt den Vertrag

Markup:<input type="checkbox"> mit sichtbarem <label>

  • Nameaus dem Label
  • Rollecheckbox
  • Zustandaus checked
  • BedienungFokus + Leertaste

Browser und Plattform bilden das Kontrollfeld ab.

Nein · Sonderfall

Sie erfüllen den Vertrag selbst

Semantik:role="checkbox" · aria-checked="true"

  • Namesichtbarer Text oder ARIA
  • Rollegültiger ARIA-Wert
  • Zustandbei jeder Änderung synchron
  • BedienungFokus + Tasten per Code

Die Rolle allein erzeugt keine Bedienung.

Beide Wege führen in den Accessibility Tree Natives HTML und ein vollständig implementiertes ARIA-Widget müssen dieselben verständlichen Informationen im Accessibility Tree erzeugen.
Ausgabe im Accessibility TreeWas Software tatsächlich ermitteln kann
Name
Grenzmarke
Rolle
Kontrollfeld
Zustand
ausgewählt

WCAG 4.1.2 bewertet dieses Ergebnis und die Mitteilung jeder Zustandsänderung.

Bei einer Checkbox ist der native Weg vorhanden. Ein eigenes ARIA-Widget vergrößert die Zahl der Pflichten, ohne für diesen Fall einen semantischen Vorteil zu schaffen.

Die Rollen-Zusage

ARIA kommuniziert. Ihr Code verhält sich.

Mit role="checkbox" versprechen Sie die erwartete Checkbox-Bedienung. Der Browser ergänzt sie bei einem div nicht automatisch.

ARIAkann mitteilen
  • „Das ist ein Kontrollfeld.“
  • „Es heißt Grenzmarke.“
  • „Es ist ausgewählt.“
Codemuss umsetzen
  • Tab-Fokus ist erreichbar.
  • Leertaste ändert den Zustand.
  • Anzeige und ARIA bleiben synchron.

Prüfpfad

Vier Ebenen, ein konsistentes Ergebnis

  1. 01Markup

    Existieren Rolle und Attribute? Sind Namen und Werte gültig?

  2. 02Accessibility Tree

    Zeigen die Entwicklerwerkzeuge Name, Rolle und aktuellen Zustand?

  3. 03Tastatur

    Erreicht Tab das Element? Ändert die erwartete Taste den Zustand?

  4. 04Synchronität

    Wechseln sichtbare Anzeige und programmatischer Zustand gemeinsam?

Prüfen Sie beide Zustände. Ein statisch korrektes aria-checked="false" wird falsch, sobald die sichtbare Checkbox wechselt und das Attribut stehen bleibt.

Primärquellen

Aus dem Prüfbericht

Drei Befunde an einem Element

Zum Mitnehmen

Die Checkbox, korrigiert

Name, Rolle und Zustand – vorzugsweise direkt durch natives HTML.

Korrektur in 3 Schritten ansehen
  1. Die erfundene Rolle durch eine gültige ersetzen

    ARIA kennt nur festgelegte Rollen. „auswahl“ gehört nicht dazu und wird von Browsern schlicht ignoriert.

    KorrekturvergleichSchritt 1 · HTML

    Vorher

    <div role="auswahl">Grenzmarke</div>

    Nachher

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

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm nennt das Element jetzt „Kontrollfeld“ statt nur den Text.

  2. Den Attributnamen richtig schreiben

    Ein fehlender Buchstabe macht das Attribut unbekannt. Der vorgesehene Name kommt dann nirgendwo an.

    KorrekturvergleichSchritt 2 · ARIA

    Vorher

    <div role="checkbox" aria-labl="Grenzmarke"></div>

    Nachher

    <div role="checkbox" aria-label="Grenzmarke"></div>

    Markierte Zeilen wurden geändert

    So prüfen Sie es Ein Vorleseprogramm sagt „Grenzmarke“, statt das Feld ohne Namen zu lassen.

  3. Für die Checkbox das native Element verwenden

    input type="checkbox" bringt Rolle, Zustand, Fokus und Leertasten-Bedienung mit. Das sichtbare label liefert den Namen.

    KorrekturvergleichSchritt 3 · HTML

    Vorher

    <div role="checkbox" aria-label="Grenzmarke"></div>

    Nachher

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

    Markierte Zeilen wurden geändert

    So prüfen Sie es Tab erreicht das Feld. Die Leertaste ändert Anzeige und programmatischen Zustand gemeinsam.

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.