Erforderliches ARIA-Attribut fehlt
Silktide überprüft Elemente, die eine ARIA-Rolle deklarieren, und stellt sicher, dass sie auch die für diese Rolle erforderlichen Attribute bereitstellen. Einige Rollen sind ohne ihre Attribute unbrauchbar, z. B. ein Schieberegler, der nie angibt, auf welchen Wert er eingestellt ist.
<!-- Problem: Ein Schieberegler muss seinen aktuellen Wert offenlegen -->
<div role="slider" tabindex="0"></div>
<!-- Lösung: den erforderlichen Zustand angeben -->
<div role="slider" tabindex="0"
aria-valuemin="0" aria-valuemax="100" aria-valuenow="50"></div>
Warum das wichtig ist
Eine -Rolle für ein Element zu vergeben, ist ein Versprechen: "Das ist ein Schieberegler", "Das ist ein Kontrollkästchen". Solche Rollen benötigen Zustandsattribute, denn ohne sie bleibt das Versprechen leer – ein -Nutzer landet auf einem Kontrollkästchen und kann nicht erkennen, ob es aktiviert ist, oder auf einem Schieberegler und kann weder seinen Wert noch seinen Bereich feststellen. Das Steuerelement wird angekündigt, ist fokussierbar und trotzdem nicht bedienbar.
So beheben Sie das Problem
- Fügen Sie die Attribute hinzu, die die Rolle erfordert, und halten Sie sie per Skript aktuell, wenn sich der Zustand des Steuerelements ändert – ein statisches
aria-checked="false"auf einem funktionierenden Kontrollkästchen ist so irreführend wie gar keines. - Bevorzugen Sie native -Elemente, wo sie existieren:
<input type="checkbox">und<input type="range">geben ihren Zustand automatisch preis, ohne dass ARIA gepflegt werden muss.
So testet Silktide dies
- Alle Elemente auf der Seite finden, die ein
role-Attribut deklarieren. - Die Attribute nachschlagen, die ARIA 1.2 für diese Rolle verlangt – zum Beispiel erfordert
role="checkbox"aria-checkedundrole="slider"aria-valuenow. - Fälle überspringen, in denen das Element den Zustand nativ bereitstellt: Ein echtes Kontrollkästchen oder Optionsfeld trägt seinen Aktiviert-Zustand bereits mit, ein natives
<option>seinen Ausgewählt-Zustand, und ein Schieberegler mitaria-valuetextdarf aufaria-valuenowverzichten. - Jedes Element melden, dem ein erforderliches Attribut fehlt.
Fehlerbehebung
Ein Skript setzt das Attribut nach dem Laden der Seite
Silktide testet die Seite während des Ladens. Wenn Ihr Widget seine Zustandsattribute erst bei der ersten Interaktion hinzufügt, hören Nutzende bis dahin ein zustandsloses Steuerelement – rendern Sie stattdessen den Anfangszustand direkt in die Seite.
Diese Prüfung meldet nichts, obwohl ich Ergebnisse erwarte
ARIA-Tests können pro Website deaktiviert werden. Prüfen Sie die erweiterten Einstellungen für die Website.