aria-deprecated-role
L’attribut role ne devrait pas utiliser un rôle ARIA obsolète ou déconseillé aux auteurs
Vérifie qu’un attribut role="" explicite n’utilise pas un rôle rendu obsolète par la spécification WAI-ARIA, ni un rôle réservé à l’usage interne de l’agent utilisateur (p. ex. role="generic").
Applicabilité. S’applique à tout élément dont le premier jeton (utilisé) de l’attribut role est un rôle ARIA valide et non abstrait que les auteurs ne devraient pas déclarer explicitement, soit parce que WAI-ARIA l’a rendu obsolète (p. ex. « directory », remplacé par role="list"), soit parce qu’il est réservé à l’usage interne de l’agent utilisateur (role="generic", que les auteurs NE DEVRAIENT PAS utiliser dans le contenu selon ARIA 1.2 §5.4).
Attendu. Le rôle utilisé n’est ni obsolète ni réservé. Le résultat dépend de la force de la règle formulée par ARIA :
cantTellpour SHOULD NOT (ne devrait pas), qui laisse l’usage conforme ; l’auteur décide donc si cela compte : un rôle obsolète (« directory ») ou réservé aux agents utilisateurs (« generic »).failpour MUST NOT (ne doit pas). Aucun rôle d’ARIA 1.2 ou 1.3 ne porte de MUST NOT destiné aux auteurs en dehors des rôles abstraits ; ce résultat est donc réservé à une future révision qui élèverait un rôle à ce niveau.
Décision distincte et atomique par rapport à aria-roles-valid (existence/abstraction) : un rôle peut être valide et non abstrait tout en étant déconseillé dans un usage explicite par les auteurs.
Ce que rapporte un constat.
role: le rôle obsolète ou réservé utilisé.guidance: un conseil sur ce qu’il faut utiliser à la place, sous forme de texte en anglais.
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"><li>Item</li></ul>
role="list" est de l’ARIA actuel, non obsolète.
<div role="directory"><a href="/a">Item</a></div>
role="directory" est rendu obsolète dans WAI-ARIA au profit de role="list" ; le balisage reste valide, mais déconseillé.
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.
ARIA_ROLE_AUTHOR_DISCOURAGED
- Inspectez l’élément indiqué par le rapport et notez sa balise et role="generic".
- Si la balise est un simple conteneur (div, span, b, i), le rôle ne change rien ; retirez-le par souci de propreté.
- Sinon, ouvrez le panneau Accessibilité des outils de développement du navigateur et vérifiez si la signification native de l’élément (bouton, lien, titre, élément de liste, navigation) a été perdue.
- Avec un lecteur d’écran, placez-vous sur l’élément et, s’il est focalisable, atteignez-le avec Tab et écoutez ce qui est annoncé.
Réussite. L’élément était déjà un conteneur générique, ou son rôle natif apparaît toujours et est annoncé.
Échec. role="generic" supprime une signification native, par exemple un lien ou un titre qui n’est plus annoncé comme tel, ce qui ne respecte pas le critère WCAG 4.1.2 (et 1.3.1 pour la structure).
ARIA_ROLE_DEPRECATED
- Inspectez l’élément indiqué par le rapport et notez son rôle obsolète (comme directory).
- Ouvrez le panneau Accessibilité des outils de développement du navigateur et vérifiez quel rôle est exposé (directory est généralement converti en list).
- Avec un lecteur d’écran, parcourez l’élément et ses éléments enfants et écoutez si la structure est annoncée.
- Examinez le rôle de remplacement proposé (list pour directory) et s’il convient.
Réussite. La structure est annoncée correctement (par exemple comme une liste avec son nombre d’éléments), ou le rôle est remplacé par celui proposé.
Échec. La structure n’est pas transmise par les technologies d’assistance parce qu’elle repose sur le rôle obsolète, ce qui peut ne pas respecter le critère WCAG 4.1.2.