aria-required-parent

Rollen, die eine bestimmte Kontextrolle erfordern, müssen in diesem Kontext stehen

automaticWCAG 1.3.1 (A)Konfidenz: mediumSchweregrad: moderaterobust

Prüft, dass Rollen mit einem dokumentierten Eintrag „required context role“ (listitem, option, tab, treeitem, row, cell, ...) einen Vorfahren oder einen Besitzer per aria-owns mit einer zulässigen Kontextrolle haben.

Anwendbarkeit. Gilt für Elemente mit einer expliziten, gültigen, nicht abstrakten Rolle, die zugleich eine der Rollen mit einem dokumentierten, nicht leeren Eintrag „required context role“ ist (listitem, option, menuitem, menuitemcheckbox, menuitemradio, tab, treeitem, row, cell, gridcell, columnheader, rowheader, rowgroup). Das Element braucht seine explizite Rolle, sein Kontext kann seine Rolle aber aus den ElementInternals eines Custom Elements beziehen (this.attachInternals().role), so wie ein nativer Kontext die seines Tags.

Erwartung. Das Element hat einen Vorfahren (DOM-Einschluss) oder Besitzer (über aria-owns dieses Vorfahren bzw. Besitzers), dessen effektive Rolle eine der zulässigen Kontextrollen für die Rolle dieses Elements ist.

Was ein Befund meldet.

  • role: die Rolle des Elements.
  • requiredContextRoles: die Rollen, in deren einer es liegen oder von deren einer es besessen werden muss. Jeder Eintrag ist ein Rollenname.

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="tablist">
<div role="tab">Overview</div>
</div>

role="tab" erfordert einen Vorfahren (oder aria-owns-Besitzer) mit role="tablist", und einer ist vorhanden.

fail
<nav role="tab"></nav>

role="tab" hat nirgendwo auf der Seite einen tablist-Vorfahren oder -Besitzer.

Verwandte Regeln

Quellcode ansehen