aria-allowed-role

Explizite Rolle muss für ihr Host-Element zulässig sein

automaticKonfidenz: highSchweregrad: moderaterobust

Prüft, dass ein explizites role=""-Attribut eine der Rollen ist, die die ARIA-in-HTML-Spezifikation für das Host-Element erlaubt (z. B. ist role="tab" auf <nav> nicht erlaubt).

Anwendbarkeit. Gilt für Elemente mit einer expliziten, gültigen, nicht abstrakten Rolle, bei denen für die Kombination aus Host-Element und Attribut in der Tabelle der zulässigen Rollen der Spezifikation ARIA in HTML eine Einschränkung der zulässigen Rollen festgelegt ist.

Erwartung. Die explizite Rolle ist eine der Rollen, die die ARIA-in-HTML-Spezifikation für dieses Host-Element erlaubt. Wird als CANTTELL statt FAIL gemeldet: Die Tabelle der zulässigen Rollen in ARIA in HTML ist eine Konformitätsanforderung an Autoren, ohne ACT-Regel und ohne WCAG-Zuordnung in irgendeiner Quelle. Die vom Autor angegebene Rolle ist trotzdem die Rolle, die assistive Technologien ausgeben; ob die Kombination jemandem schadet, hängt daher vom Widget ab, nicht von der Tabelle.

Was ein Befund meldet.

  • role: die explizite Rolle, die am Host-Element nicht erlaubt ist.

Diese Felder in data.details helfen, einen Befund zu lesen und zu reproduzieren. Außer reasonCode und den wenigen Feldern, die Ausgabeschema als stabil nennt, sind sie kein stabiler Vertrag: Ein Feld kann in einer Minor-Version umbenannt werden oder wegfallen, bauen Sie also nicht darauf auf.

Beispiele

pass
<nav role="navigation">...</nav>

role="navigation" ist laut ARIA-in-HTML-Spezifikation auf <nav> erlaubt (es ist auch die implizite Rolle des Elements).

can't tell
<nav role="tab">...</nav>

role="tab" gehört nicht zu den Rollen, die ARIA in HTML auf <nav> erlaubt.

So prüfen Sie es

Wenn diese Regel nicht entscheiden kann, meldet sie cantTell und überlässt die Frage einer Person. Jede Frage, die sie stellen kann, steht hier unter ihrem Reason-Code, mit den Schritten, um sie zu beantworten. Ein Befund enthält dieselben Schritte in howToCheck, in der Sprache des Scans. Siehe Ausgabeschema.

ARIA_ROLE_NOT_ALLOWED_FOR_ELEMENT

  1. Untersuchen Sie das im Bericht genannte Element und notieren Sie sein Tag und sein role-Attribut.
  2. Öffnen Sie den Bereich „Barrierefreiheit“ in den Entwicklertools des Browsers und prüfen Sie, welche Rolle bereitgestellt wird.
  3. Drücken Sie Tab, um zu sehen, ob das Element den Tastaturfokus erhält, und versuchen Sie, es mit Eingabetaste oder der Leertaste zu bedienen, falls es ein Bedienelement ist.
  4. Navigieren Sie mit einem Screenreader zum Element und vergleichen Sie, was angesagt wird, mit dem, was das Element auf dem Bildschirm tut.

Bestanden. Die angesagte Rolle passt dazu, wie das Element aussieht und sich verhält (oder role none/presentation wurde bei einem fokussierbaren Bedienelement ignoriert und seine native Rolle bleibt erhalten).

Nicht bestanden. Die angesagte Rolle widerspricht dem Verhalten des Elements, etwa eine fokussierbare Schaltfläche, die als Überschrift angesagt wird; das verstößt gegen ARIA in HTML und kann gegen WCAG 4.1.2 verstoßen.

Verwandte Regeln

Quellcode ansehen