duplicate-id-aria
Les ID référencés par ARIA doivent être uniques
Vérifie que toute valeur d’id référencée par un attribut ARIA de référence d’ID (aria-labelledby, aria-describedby, aria-owns, aria-controls, aria-activedescendant, aria-flowto, aria-errormessage, aria-details) est unique dans le document.
Applicabilité. S’applique lorsque le document contient au moins un attribut aria-labelledby, aria-describedby, aria-owns, aria-controls, aria-activedescendant, aria-flowto, aria-errormessage ou aria-details non vide (c.-à-d. qu’il existe au moins une référence d’ID ARIA à résoudre).
Attendu. Pour chaque valeur d’id référencée par l’un de ces attributs, exactement un élément du document porte cet id. Un doublon ne casse pas la référence : elle se résout vers le premier élément dans l’ordre de l’arbre, donc le nom est quand même calculé. Savoir si cet élément est bien la cible voulue dépend de l’intention de l’auteur, que le balisage ne contient pas ; le résultat est donc cantTell.
Ce que rapporte un constat.
id: l’id dupliqué auquel un attribut ARIA fait référence.duplicateCount: le nombre d’éléments du document qui portent cet id.
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
<span id="lbl">Name</span><input type="text" aria-labelledby="lbl">
L’id lbl est unique, donc la référence se résout sans ambiguïté.
<span id="lbl">Name</span><span id="lbl">Duplicate</span><input type="text" aria-labelledby="lbl">
aria-labelledby="lbl" se résout vers le premier élément portant cet id ; savoir si c’est la cible voulue est une question d’intention de l’auteur à laquelle le balisage ne peut pas répondre.
Comment vérifier
Quand cette règle ne peut pas trancher, elle renvoie cantTell et laisse la question à une personne. Chaque question qu’elle peut poser figure ici sous son code de raison, avec les étapes pour y répondre. Un constat porte les mêmes étapes dans howToCheck, dans la langue de l’analyse. Voir Schéma de sortie.
DUPLICATE_ID_ARIA_REFERENCED
- Inspectez l’élément indiqué par le rapport et notez l’attribut ARIA et l’id en double auquel il fait référence.
- Dans les outils de développement, cherchez id="the-id" dans le code et notez chaque élément qui le porte ainsi que son texte ; le navigateur utilise le premier.
- Ouvrez le panneau Accessibilité des outils de développement du navigateur sur l’élément qui fait référence et lisez le nom ou la description qu’il reçoit.
- Comparez cela avec le texte situé à côté de l’élément à l’écran (par exemple, le titre de sa propre carte).
Réussite. Le nom ou la description provient de l’élément voulu, ou tous les doublons ont le même texte.
Échec. L’élément qui fait référence reçoit le texte d’un mauvais élément, par exemple la carte 2 nommée avec le titre de la carte 1, ce qui ne respecte pas le critère WCAG 4.1.2 (ni 1.3.1).