Ungültiger ARIA-Attributwert
Silktide prüft den Wert jedes ARIA-Attributs auf Ihren Seiten gegen die vom Standard erlaubten Werte. Ein Attribut mit einem falschen Wert, etwa ein Kontrollkästchen-Zustand „yes“ statt „true“, wird von Browsern ignoriert, sodass der beschriebene Zustand nie angekündigt wird.
<!-- Problem: „yes“ ist kein gültiger Wert, der Zustand wird verworfen -->
<div role="checkbox" aria-checked="yes">Abonnieren</div>
<!-- Lösung: den definierten Token verwenden -->
<div role="checkbox" aria-checked="true">Abonnieren</div>
Warum das wichtig ist
Jedes -Attribut legt genau fest, welche Werte es akzeptiert,
und Browser verwerfen alles andere, statt zu raten. Die Fehler sind meist
intuitiv wirkende Werte – aria-expanded="1", aria-checked="yes",
aria-level="0" –, die jede visuelle Prüfung bestehen, während
Nutzer von ein
Steuerelement ohne angekündigten Zustand erhalten: ein Menü, das nie angibt,
ob es geöffnet ist, ein Kontrollkästchen, das nie angibt, ob es aktiviert ist.
So beheben Sie das
- Ersetzen Sie informelle Werte durch die vom Attribut definierten Token:
trueundfalsestattyes,no,1oder0. - Prüfen Sie numerische Attribute: Zählattribute wie
aria-levelundaria-rowindexbeginnen bei 1, nicht bei 0. - Entfernen Sie leer gelassene Attribute, z. B.
aria-checked=""– wenn kein Zustand zu übermitteln ist, sollte das Attribut nicht vorhanden sein.
Die genauen, von jedem Attribut erlaubten Werte sind in der MDN-Referenz zu ARIA-Attributen aufgeführt.
So testet Silktide das
- Es werden alle Elemente auf der Seite gefunden, die mindestens ein
aria-Attribut tragen. - Der Wert jedes Attributs wird mit dem von ARIA 1.2 definierten Typ
abgeglichen: true/false-Attribute, dreiwertige Attribute wie
aria-checked(true,false,mixed), Zahlen und ganze Zahlen sowie Attribute mit festen Wortlisten wiearia-liveundaria-current. - Jeder nicht konforme Wert wird gemeldet, zusammen mit der Angabe, was erwartet wurde.
Attribute, die auf Element-IDs verweisen, werden durch eigene Prüfungen
getestet, z. B. Fehlende aria-controls-ID. Freitext-
Attribute wie aria-label akzeptieren beliebigen Text.
Fehlerbehebung
Der Wert wird von einem Framework gesetzt
Komponentenbibliotheken serialisieren Zustände gelegentlich falsch (z. B.
aria-expanded="undefined"). Der Befund zeigt auf das Element, die Korrektur
liegt jedoch meist in der Konfiguration der Komponente oder in einem
Bibliotheks-Update.
Diese Prüfung meldet nichts, obwohl ich Befunde erwarte
ARIA-Tests können pro Website deaktiviert werden. Prüfen Sie die erweiterten Einstellungen der Website.