landmark-role-name-present

Rollen region und form müssen einen zugänglichen Namen haben

automaticKonfidenz: highSchweregrad: minorrobust

Prüft, dass ein Element mit role="region" oder role="form" einen zugänglichen Namen hat, ohne den es nicht als Landmark bereitgestellt wird.

Anwendbarkeit. Gilt für Elemente, deren role-Attribut zu region oder form aufgelöst wird (sein erstes bekanntes, nicht abstraktes Token, ohne Berücksichtigung der Groß-/Kleinschreibung: role="foo region" zählt, role="search region" ist eine search-Landmark) und die im Accessibility Tree enthalten sind. Ein Custom Element, dem seine ElementInternals eine dieser Rollen geben (this.attachInternals().role), ohne role-Attribut, das eine andere nennt, liegt ebenfalls im Geltungsbereich: Das ist seine Standardrolle, und keine andere Regel prüft es.

Erwartung. Das Element hat einen nicht leeren zugänglichen Namen aus aria-labelledby, aria-label oder title. WAI-ARIA verlangt einen („Authors MUST give each element with role region a brief label“, und dasselbe für form), und ohne ihn wird das Element überhaupt nicht als Landmark bereitgestellt, sodass die im Markup angegebene Rolle verloren geht. Wird als CANTTELL statt als FAIL gemeldet: Die Anforderung stammt aus WAI-ARIA, nicht aus einem WCAG-Erfolgskriterium. Bei assistiven Technologien kommt nichts Falsches an, sondern ein einfacher Container; ob der Verlust der Landmark jemandem schadet, hängt daher von der Seite ab.

Was ein Befund meldet.

  • role: die Rolle, die einen Namen braucht, region oder form.

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
<div role="region" aria-labelledby="news-h"><h2 id="news-h">Latest news</h2>...</div>

Die Region wird über ihre sichtbare Überschrift benannt und daher als Landmark mit dem Namen „Latest news“ bereitgestellt.

can't tell
<div role="region"><h2>Latest news</h2>...</div>

role="region" ohne Namen: WAI-ARIA verlangt einen, und ohne ihn wird das Element als einfacher Container bereitgestellt, nicht als Landmark. Kein fail, da die Anforderung kein WCAG-Kriterium nennt; eine Person entscheidet, ob die verlorene Landmark eine Rolle spielt.

n/a
<section><h2>Latest news</h2>...</section>

Keine role verlangt eine Landmark. Ein unbenanntes <section> soll keine sein.

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.

LANDMARK_ROLE_NAME_MISSING

  1. Untersuchen Sie das im Bericht genannte Element und notieren Sie seine Rolle (region oder form).
  2. Sehen Sie sich den Inhalt an, den es umschließt, und eine etwaige sichtbare Überschrift an seinem Anfang.
  3. Entscheiden Sie, ob der Bereich so wichtig ist, dass Nutzende ihn als Landmarke direkt ansteuern können sollten.
  4. Wenn ja, prüfen Sie, ob er einen Namen erhält, zum Beispiel mit aria-labelledby, das auf seine Überschrift verweist.

Bestanden. Der Bereich muss keine Landmarke sein (und die Rolle kann entfernt werden), oder er erhält einen Namen, der ihn zu einer macht.

Nicht bestanden. Ein als Landmarke gedachter Bereich hat keinen Namen und wird daher nicht als solche bereitgestellt; das verstößt gegen die WAI-ARIA-Anforderung, dass die Rollen region und form beschriftet sein müssen (Best Practice, ARIA13).

Quellcode ansehen