Zum Inhalt springen
SilktideHilfe

Fehlende ARIA-Kindrolle

Silktide überprüft Container-Widgets, die mit ARIA-Rollen gebaut sind, wie Tab-Leisten, Menüs und Listboxen, und stellt sicher, dass jedes davon die Art von Elementen enthält, die es enthalten soll. Eine Tab-Leiste ohne Tabs oder ein Menü ohne Menüpunkte wird zwar als Widget angekündigt, bietet aber nichts zur Bedienung.

<!-- Problem: Eine tablist muss Elemente mit role="tab" enthalten -->
<div role="tablist">
  <button>Übersicht</button>
</div>

<!-- Lösung: Den Kindelementen ihre erforderliche Rolle geben -->
<div role="tablist">
  <button role="tab">Übersicht</button>
</div>

Warum das wichtig ist

Zusammengesetzte -Rollen beschreiben ein Widget als Ganzes: tablist verspricht Tabs, listbox verspricht Optionen, menu verspricht Menüpunkte. wechseln in eine spezialisierte Navigation für diese Widgets und erwarten die versprochenen Kindelemente. Fehlen diesen Elementen ihre Rollen, kündigt sich das Widget an und verhält sich dann wie eine leere Hülle – Nutzende können es erreichen, finden darin jedoch nichts, während sehende Nutzende ein vollständig funktionierendes Steuerelement sehen.

So beheben Sie das Problem

  1. Fügen Sie jedem Element im Container die erforderliche Rolle hinzu – z. B. role="tab" für jedes Steuerelement innerhalb einer role="tablist".
  2. Wenn die Elemente an anderer Stelle im Code stehen müssen, verknüpfen Sie sie mit aria-owns am Container.
  3. Wenn der Container eigentlich kein solches Widget ist, entfernen oder korrigieren Sie stattdessen seine Rolle.

Häufige Zuordnungen: tablist benötigt tab; listbox benötigt option; menu und menubar benötigen menuitem (oder deren Checkbox- und Radio-Varianten); radiogroup benötigt radio; tree benötigt treeitem; grid und table benötigen row; row benötigt Zellen oder Überschriften.

So testet Silktide das

  1. Alle Elemente finden, deren ARIA-Rolle bestimmte untergeordnete Rollen erfordert.
  2. In ihren Nachkommen, einschließlich aller mit aria-owns zugeordneten Elemente, nach mindestens einem Element mit einer erforderlichen Kindrolle suchen.
  3. Container melden, in denen keines gefunden wird.

Fehlerbehebung

Die Elemente werden später per Skript geladen

Silktide testet die Seite beim Laden. Wenn eine Listbox oder ein Menü nur bei Bedarf befüllt wird, wird es bis dahin als leer angekündigt; wo möglich, rendern Sie zumindest die ersten Elemente bereits mit der Seite.

Diese Prüfung meldet nichts, obwohl Sie Ergebnisse erwarten

ARIA-Prüfungen können pro Website deaktiviert werden. Prüfen Sie die erweiterten Einstellungen der Website.

Weiterführende Informationen

Zuletzt aktualisiert

War diese Seite hilfreich?

Fehlende ARIA-Kindrolle | Silktide-Hilfe