aria-owns-valid

aria-owns muss jedem Element einen einzigen Besitzer geben und darf nie einen Vorfahren des Besitzers nennen

automaticWCAG 1.3.1, 4.1.2 (A)Konfidenz: highSchweregrad: seriousrobust

Prüft, dass kein Element von mehr als einem aria-owns genannt wird und dass kein aria-owns das Element selbst oder einen seiner Vorfahren nennt.

Anwendbarkeit. Elemente, die die Seite anzeigt und deren aria-owns mindestens ein Element im selben Baum nennt.

Erwartung. WAI-ARIA: Ein Element hat nur einen Besitzer, seine id steht also in höchstens einem aria-owns, und ein Element kann keines besitzen, das es selbst enthält.

  • Ein Element, das von zwei oder mehr aria-owns genannt wird: fail (ARIA_OWNS_DUPLICATE), gemeldet am besessenen Element. Der Browser gibt es nach der Reihenfolge einem Besitzer, sodass die Struktur, die die anderen Besitzer angeben, verloren geht.
  • Ein aria-owns, das das Element selbst oder einen seiner Vorfahren nennt: fail (ARIA_OWNS_ANCESTOR), gemeldet am Besitzer. Der Browser ignoriert diesen Besitz, da er einen Zyklus bilden würde.
  • Andernfalls: pass.

Was ein Befund meldet.

  • ownerCount: bei ARIA_OWNS_DUPLICATE, wie viele Elemente das besessene Element in aria-owns nennen.
  • ownedId: die genannte id.

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
<ul role="list" aria-label="Steps" aria-owns="step-2"><li>Choose a size</li></ul>
<div role="listitem" id="step-2">Pay</div>

Die Liste besitzt ein Element, das kein anderes aria-owns nennt.

fail
<div role="list" aria-label="Today" aria-owns="task"></div>
<div role="list" aria-label="Tomorrow" aria-owns="task"></div>
<div role="listitem" id="task">Call the bank</div>

Zwei Listen beanspruchen denselben Eintrag. Der Browser gibt ihn nur einer von beiden, daher geht die Struktur der anderen Liste verloren.

Quellcode ansehen