aria-owns-valid
aria-owns doit donner un seul propriétaire à chaque élément, et jamais un ancêtre du propriétaire
Vérifie qu’aucun élément n’est nommé par plus d’un aria-owns, et qu’aucun aria-owns ne nomme l’élément lui-même ou l’un de ses ancêtres.
Applicabilité. Éléments que la page affiche, dotés d’un aria-owns qui nomme au moins un élément du même arbre.
Attendu. WAI-ARIA : un élément n’a qu’un seul propriétaire, son id ne figure donc pas dans plus d’un aria-owns, et un élément ne peut pas posséder un élément qui le contient.
- Un élément nommé par deux
aria-ownsou plus : fail (ARIA_OWNS_DUPLICATE), signalé sur l’élément possédé. Le navigateur le donne à un seul propriétaire, selon l’ordre, si bien que la structure qu’indiquent les autres propriétaires est perdue. - Un
aria-ownsqui nomme l’élément lui-même ou l’un de ses ancêtres : fail (ARIA_OWNS_ANCESTOR), signalé sur le propriétaire. Le navigateur ignore cette possession, puisqu’elle créerait un cycle. - Sinon : pass.
Ce que rapporte un constat.
ownerCount: pourARIA_OWNS_DUPLICATE, le nombre d’éléments qui nomment l’élément possédé dansaria-owns.ownedId: l’id nommé.
Ces champs de data.details aident à lire et à reproduire un constat. À part reasonCode et les quelques champs que la page Schéma de sortie donne comme stables, ils ne constituent pas un contrat stable : un champ peut être renommé ou supprimé dans une version mineure, ne vous appuyez donc pas dessus.
Exemples
<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 liste possède un élément qu’aucun autre aria-owns ne nomme.
<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>
Deux listes revendiquent le même élément. Le navigateur ne le donne qu’à l’une d’elles, si bien que la structure de l’autre liste est perdue.