ARIA-Usage-Review
Prüft ARIA-Attribute auf Fehler und Redundanz. Erste ARIA-Regel: Kein ARIA ist besser als falsches ARIA.
Wann verwenden
- Code enthält
role,aria-*-Attribute, die geprüft/aufgeräumt werden sollen. - Custom-Widget mit ARIA soll validiert werden.
Input
- Markup mit ARIA-Attributen (oder Pfad).
Prüf-Vorgehen
- ARIA statt nativem Element?
role="button"auf<div>→ durch<button>ersetzen. - Redundante Rollen entfernen:
role="navigation"auf<nav>,role="list"auf<ul>,role="button"auf<button>. - Referenzen prüfen: jede
aria-labelledby/aria-describedby/aria-controls-idmuss existieren und eindeutig sein. - Zustände prüfen:
aria-expanded/aria-checked/aria-selectedwerden bei Interaktion aktualisiert, nicht nur initial gesetzt. - Verbotene Kombinationen:
aria-hidden="true"auf fokussierbaren Elementen;rolewiderspricht nativer Semantik. aria-label/aria-labelledbynicht auf Elemente ohne unterstützte Rolle (z.B.<div>ohne Rolle).
Output
Je Finding:
- Problem: falsches/überflüssiges ARIA.
- Ort: Element/Attribut.
- Fix: Snippet (Attribut entfernen oder natives Element).
- Priorität: hoch (kaputte Referenz/falsche Rolle) / mittel / niedrig (redundant).
Gotchas
- Redundante Rollen sind nicht harmlos — sie können native Semantik verdecken.
aria-labelledbymit fehlenderid→ Element bleibt unbeschriftet (fällt still aus).role="presentation"/aria-hiddenentfernt Kinder aus dem Baum — nicht auf Container mit interaktivem Inhalt.titleist kein zuverlässiger Ersatz füraria-label(auf Touch/Keyboard unsichtbar).