aria-roles-valid
role-Attribut muss eine gültige, nicht abstrakte ARIA-Rolle sein
Prüft, dass ein explizites role=""-Attribut zu einer echten, nicht abstrakten WAI-ARIA-Rolle aufgelöst wird.
Anwendbarkeit. Gilt für jedes Element mit einem nicht leeren role=""-Attribut im zusammengesetzten DOM.
Erwartung. Mindestens ein role-Token benennt eine konkrete, nicht abstrakte ARIA-Rolle. Ist das nicht der Fall, richtet sich die Einstufung danach, worauf das Element zurückfällt:
- FAIL bei einem Host ohne Rolle (div, span, Custom Element), der als generic bereitgestellt bleibt, sodass die vom Autor gemeinte Rolle niemanden erreicht.
- CANTTELL, wenn das Element eine native Rolle hat (ein <button>, <nav>, <a href>), die der Accessibility Tree weiterhin verwendet. ACT 674b10 führt 4.1.2 nur als sekundäre Anforderung, „satisfied through the implicit role“; das fehlerhafte Token ist also meldenswert, ist aber selbst kein Verstoß gegen das Kriterium.
Was ein Befund meldet.
role: das erste Token des role-Attributs. Kein Token darin ist eine bekannte Rolle, oder die bekannten sind alle abstrakt.nativeRole(dercantTell-Fall): die native Rolle des Elements, die assistive Technologien weiterhin verwenden.
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
<div role="button">Click</div>
„button“ ist eine echte, konkrete ARIA-Rolle.
<div role="buton"></div>
„buton“ ist kein definiertes ARIA-Rollen-Token (Tippfehler).
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_ABSTRACT
- Untersuchen Sie das im Bericht genannte Element und notieren Sie die abstrakte Rolle (etwa landmark, widget, command) und sein Tag.
- Öffnen Sie den Bereich „Barrierefreiheit“ in den Entwicklertools des Browsers und prüfen Sie, welche Rolle stattdessen bereitgestellt wird (die native Rolle).
- Entscheiden Sie, ob die native Rolle eine konkrete Ausprägung der genannten abstrakten Rolle ist (ein nav für landmark, ein button für widget).
Bestanden. Die native Rolle ist eine konkrete Form dessen, was der Autor angegeben hat, sodass das Element weiterhin korrekt bereitgestellt wird (entfernen Sie die abstrakte Rolle trotzdem).
Nicht bestanden. Die native Rolle passt nicht zur Absicht (etwa eine Schaltfläche, die als landmark ausgezeichnet ist), sodass die gemeinte Rolle nie bereitgestellt wird; das verstößt gegen WCAG 4.1.2 (ACT 674b10).
ARIA_ROLE_INVALID
- Untersuchen Sie das im Bericht genannte Element und notieren Sie den unbekannten Rollenwert und sein Tag.
- Finden Sie heraus, welche Rolle wahrscheinlich gemeint war (zum Beispiel „buton“ für button).
- Öffnen Sie den Bereich „Barrierefreiheit“ in den Entwicklertools des Browsers und prüfen Sie, welche Rolle stattdessen bereitgestellt wird (die native Rolle des Elements).
- Vergleichen Sie die bereitgestellte Rolle mit der beabsichtigten und mit dem Verhalten des Elements.
Bestanden. Die bereitgestellte native Rolle ist die gemeinte, sodass Nutzende die richtige Rolle erhalten (korrigieren Sie den Tippfehler trotzdem).
Nicht bestanden. Die beabsichtigte Rolle weicht von der bereitgestellten ab, sodass Nutzende die falsche Rolle erhalten; das verstößt gegen WCAG 4.1.2 (ACT 674b10).