Critère 7.1
Chaque script est-il, si nécessaire, compatible avec les technologies d’assistance ?
Comprendre
Les composants créés par script (menus, onglets, dialogues) doivent exposer noms, rôles et états aux technologies d’assistance.
Ce critère s’applique lorsque la page contient : scripts.
Ce que vérifie Agence RGAA
Notre moteur détecte automatiquement des anomalies, mais une personne doit confirmer la pertinence avant de conclure.
Nous détectons automatiquement :
- attributs ARIA non autorisés
- attributs ARIA obligatoires manquants
- attributs ARIA inconnus
- valeurs d’attributs ARIA invalides
- rôles ARIA invalides
- rôles ARIA sans enfants requis
- rôles ARIA sans parent requis
- contenus focalisables dans un bloc aria-hidden
- contrôles interactifs imbriqués
- commandes ARIA sans nom
- champs ARIA sans nom
- interrupteurs ARIA sans nom
- dialogues ARIA sans nom
Un résultat automatique n’est jamais un audit : seul un contrôle humain (en interne ou par un auditeur RGAA) permet de conclure.
Exemple de correction
<button aria-expanded="false" aria-controls="menu-services">Services</button>
<ul id="menu-services" hidden>…</ul><div role="tablist" aria-label="Informations">
<button role="tab" id="t1" aria-selected="true" aria-controls="p1">Horaires</button>
<button role="tab" id="t2" aria-selected="false" aria-controls="p2" tabindex="-1">Accès</button>
</div>
<div role="tabpanel" id="p1" aria-labelledby="t1">…</div>Voir un exemple à éviter
<div role="button" aria-checked="true">…</div>
<button aria-expanded="oui">…</button>
<div role="tab">…</div>- Préférez d’abord l’élément HTML natif : ARIA seulement quand il n’existe pas.
- Un composant personnalisé doit exposer son nom, son rôle et son état.
- Testez avec un lecteur d’écran (NVDA, VoiceOver).
Patron de référence à adapter à votre contexte : il ne vaut pas validation du critère.
Tests officiels
Test 7.1.1
Chaque script qui génère ou contrôle un composant d’interface vérifie-t-il, si nécessaire, une de ces conditions ? Le nom, le rôle, la valeur, le paramétrage et les changements d’états sont accessibles aux technologies d’assistance via une API d’accessibilité ; Un composant d’interface accessible permettant d’accéder aux mêmes fonctionnalités est présent dans la page ; Une alternative accessible permet d’accéder aux mêmes fonctionnalités.
Méthodologie de test
- Retrouver dans le document tous les composants d’interface générés ou contrôlés au moyen de JavaScript ;
- Vérifier que :
- Le composant possède un rôle cohérent avec son usage (généralement un bouton ou un lien) ;
- Le composant possède un nom explicite ;
- Le nom du composant est cohérent avec l’état de la fonctionnalité ou des contenus contrôlés (par exemple pour une fonctionnalité permettant d’afficher ou de masquer une zone de contenu).
- Sinon, vérifier la présence d’un composant d’interface accessible permettant d’accéder aux mêmes fonctionnalités ;
- Sinon, vérifier la présence d’une alternative accessible permettant d’accéder aux mêmes fonctionnalités.
- Si c’est le cas, le test est validé.
Test 7.1.2
Chaque script qui génère ou contrôle un composant d’interface respecte-t-il une de ces conditions ? Le composant d’interface est correctement restitué par les technologies d’assistance ; Une alternative accessible permet d’accéder aux mêmes fonctionnalités.
Méthodologie de test
- Pour chacun des composants d’interface ayant validé le test 7.1.1, vérifier que le composant d’interface est correctement restitué par les technologies d’assistance ;
- Sinon, vérifier qu’une alternative accessible au composant d’interface permet d’accéder aux mêmes fonctionnalités ;
- Si c’est le cas, le test est validé.
Test 7.1.3
Chaque script qui génère ou contrôle un composant d’interface vérifie-t-il ces conditions (hors cas particuliers) ? Le composant possède un nom pertinent ; Le nom accessible du composant contient au moins l’intitulé visible ; Le composant possède un rôle pertinent.
Méthodologie de test
- Pour chacun des composants d’interface ayant validé le test 7.1.1, vérifier que le composant d’interface possède :
- Un nom pertinent (intitulé visible) ;
- Un rôle pertinent.
- Si le composant d’interface possède un nom accessible, vérifier que ce nom est pertinent et contient au moins l’intitulé visible.
- Si c’est le cas, le test est validé.
- Pour chacun des composants d’interface ayant validé le test 7.1.1, vérifier que le composant d’interface possède :
Texte officiel du référentiel RGAA 4.1.2 publié par la DINUM — voir la source.