Widersprüchliche ARIA-Rolle
Silktide prüft Elemente, die eine explizite Rolle deklarieren, anhand der Bedeutung, die sie bereits in HTML haben. Es meldet Rollen, die für dieses Element nicht zulässig sind, sowie Rollen, die lediglich wiederholen, was das Element bereits bedeutet.
<!-- Problem: Ein nav-Element kann keine Schaltfläche sein -->
<nav role="button">…</nav>
<!-- Problem: redundant, nav hat diese Rolle bereits -->
<nav role="navigation">…</nav>
<!-- Lösung: Lassen Sie das Element für sich selbst sprechen -->
<nav>…</nav>
Warum dies wichtig ist
Jedes -Element besitzt eine integrierte Bedeutung, auf die sich verlassen. Eine -Rolle, die dieser Bedeutung widerspricht, erzeugt ein Element, das wie eine Sache aussieht und sich als eine andere ankündigt – ein -Benutzer könnte bei etwas, das sich wie eine Schaltfläche verhält, „Link“ hören, mit Tastenkombinationen und Erwartungen, die nicht mehr übereinstimmen. Redundante Rollen sind weniger schädlich, erzeugen aber unnötige Informationen, begünstigen künftige Fehler und zeigen, dass ARIA verwendet wird, obwohl es nicht nötig ist.
So beheben Sie das Problem
- Entfernen Sie bei einer widersprüchlichen Rolle entweder die Rolle oder wechseln
Sie zu einem Element, das tatsächlich die gewünschte Bedeutung hat – wenn es wie
eine Schaltfläche funktionieren soll, verwenden Sie
<button>. - Löschen Sie bei einer redundanten Rolle wie
<nav role="navigation">oder<button role="button">das Rollenattribut. Das Element stellt diese Rolle bereits selbst bereit.
So prüft Silktide dies
- Suchen Sie jedes Element auf der Seite mit einem
role-Attribut und überspringen Sie unbekannte oder abstrakte Rollen (diese werden von Ungültige ARIA-Rolle gemeldet). - Vergleichen Sie die Rolle mit den Kombinationen, die die Spezifikation ARIA in HTML für dieses Element zulässt, und melden Sie Rollen, die das Element nicht erlaubt.
- Melden Sie Rollen, die die eigene implizite Rolle des Elements duplizieren.
- Wenn ein Rollenattribut mehrere Rollen aufführt, wird nur die erste berücksichtigt.
Die Ergebnisse unterscheiden zwischen den beiden Fällen, sodass Sie Widersprüche vor Redundanzen priorisieren können.
Fehlerbehebung
Die redundante Rolle ist für ältere Browser vorhanden
Explizite Landmark-Rollen wie role="navigation" wurden früher als
Absicherung für alte assistive Technologien empfohlen. Die Unterstützung für die
nativen Elemente ist seit Jahren universell, und die duplizierte Rolle verursacht
nun mehr Wartungsaufwand, als sie Nutzen bringt. Entfernen Sie sie oder
Sie das Ergebnis, falls Ihre Unterstützungsrichtlinie
das Beibehalten erfordert.
Diese Prüfung meldet nichts, obwohl ich Ergebnisse erwarte
ARIA-Prüfungen können für jede Website deaktiviert werden. Prüfen Sie die erweiterten Einstellungen der Website.