aria-owns-valid

aria-owns debe dar a cada elemento un solo propietario, y nunca un ancestro del propietario

automaticWCAG 1.3.1, 4.1.2 (A)confianza: highgravedad: seriousrobust

Comprueba que ningún elemento esté nombrado por más de un aria-owns, y que ningún aria-owns nombre al propio elemento o a uno de sus ancestros.

Ámbito de aplicación. Elementos que la página muestra con un aria-owns que nombra al menos un elemento del mismo árbol.

Resultado esperado. WAI-ARIA: un elemento tiene un solo propietario, así que su id no aparece en más de un aria-owns, y un elemento no puede poseer a uno que lo contiene.

  • Un elemento nombrado por dos o más aria-owns: fail (ARIA_OWNS_DUPLICATE), informado en el elemento poseído. El navegador lo asigna a un solo propietario, por orden, así que se pierde la estructura que declaran los demás propietarios.
  • Un aria-owns que nombra al propio elemento o a uno de sus ancestros: fail (ARIA_OWNS_ANCESTOR), informado en el propietario. El navegador ignora esa relación de posesión, ya que crearía un ciclo.
  • En otro caso: pass.

Qué informa un hallazgo.

  • ownerCount: con ARIA_OWNS_DUPLICATE, cuántos elementos nombran al elemento poseído en aria-owns.
  • ownedId: el id nombrado.

Estos campos de data.details ayudan a leer y reproducir un hallazgo. Salvo reasonCode y los pocos campos que Esquema de salida indica como estables, no son un contrato estable: un campo puede cambiar de nombre o desaparecer en una versión menor, así que no construyas sobre ellos.

Ejemplos

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>

La lista posee un elemento que ningún otro aria-owns nombra.

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>

Dos listas reclaman el mismo elemento. El navegador se lo da solo a una de ellas, así que se pierde la estructura de la otra lista.

Ver código fuente