Attention : cette liste de critères est à utiliser uniquement dans le cadre de la méthode de contrôle simplifié. Si des règles de tests automatisés peuvent contribuer à tester un critère, celles-ci sont mentionnées dans les tables de correspondance disponibles en fin de critère.
Retrouver dans le document les images structurées au moyen d’un élément <img> ou d’un élément possédant l’attribut WAI-ARIA role="img".
Pour chaque image, déterminer si l’image est porteuse d’information.
Dans le cas où il s’agit d’un élément <img>, vérifier que l’image est pourvue au moins d’une alternative textuelle parmi les suivantes :
passage de texte associé via l’attribut WAI-ARIA aria-labelledby ;
contenu de l’attribut WAI-ARIA aria-label ;
contenu de l’attribut alt ;
contenu de l’attribut title.
Dans le cas où il s’agit d’un élément possédant l’attribut WAI-ARIA role="img", vérifier que l’image est pourvue au moins d’une alternative textuelle parmi les suivantes :
passage de texte associé via l’attribut WAI-ARIA aria-labelledby ;
contenu de l’attribut WAI-ARIA aria-label.
Si au moins une alternative textuelle est trouvée, le test est validé.
Pour chaque élément <area>, déterminer si la zone réactive est porteuse d’information.
Vérifier que la zone réactive est pourvue au moins d’une alternative textuelle parmi les suivantes :
contenu de l’attribut WAI-ARIA aria-label ;
contenu de l’attribut alt ;
Si au moins une alternative textuelle est trouvée, le test est validé.
Test 1.1.3 Chaque bouton de type image (balise <input> avec l’attribut type="image") a-t-il une alternative textuelle ?
Méthodologie du test
Retrouver dans le document les éléments <input> pourvus de l’attribut type="image".
Pour chaque élément <input> pourvu de l’attribut type="image", déterminer si l’image utilisée est porteuse d’information.
Vérifier que l’élément <input> est pourvu au moins d’une alternative textuelle parmi les suivantes :
passage de texte associé via l’attribut WAI-ARIA aria-labelledby ;
contenu de l’attribut WAI-ARIA aria-label ;
contenu de l’attribut alt ;
contenu de l’attribut title.
Si au moins une alternative textuelle est trouvée, le test est validé.
Test 1.1.4 Chaque zone cliquable d’une image réactive côté serveur est-elle doublée d’un mécanisme utilisable quel que soit le dispositif de pointage utilisé et permettant d’accéder à la même destination ?
Méthodologie du test
Retrouver dans le document les éléments <img> pourvus de l’attribut ismap.
Pour chaque élément <img> pourvu de l’attribut ismap, vérifier la présence d’un lien ou d’un ensemble de liens (ou bien d’un autre type de composant d’interface qui jouerait un rôle similaire comme une liste de sélection, par exemple) permettant d’accéder aux mêmes ressources que lorsque l’image fait l’objet d’un clic.
Si c’est le cas, le test est validé.
Test 1.1.5 Chaque image vectorielle (balise <svg>) porteuse d’information, vérifie-t-elle ces conditions ?
La balise <svg> possède un attribut WAI-ARIA role="img" ;
Retrouver dans le document les images décoratives dépourvues de légende structurées au moyen d’un élément <embed> (avec un attribut type="image/…").
Pour chaque image, vérifier que l’élément <embed> ne possède pas d’attributs aria-labelledby, aria-label ou title et qu’il :
possède un attribut WAI-ARIA aria-hidden="true" ;
et est dépourvu d’alternative textuelle ;
Si c’est le cas pour chaque image, le test est validé.
Notes et cas particuliers
Note technique
Lorsqu’une image est associée à une légende, la note technique WCAG recommande de prévoir systématiquement une alternative textuelle (cf. critère 1.9). Dans ce cas le critère 1.2 est non applicable.
Dans le cas d’une image vectorielle (balise <svg>) de décoration qui serait affichée au travers d’un élément <use href="…"> enfant de l’élément <svg>, le test 1.2.4 s’appliquera également à l’élément <svg> associé par le biais de l’élément <use>.
Un attribut WAI-ARIA role="presentation" peut être utilisé sur les images de décoration et les zones non cliquables de décoration. Le rôle "none" introduit en ARIA 1.1 et synonyme du rôle "presentation" peut être aussi utilisé. Il reste préférable cependant d’utiliser le rôle "presentation" en attendant un support satisfaisant du rôle "none".
critère 1.3 Pour chaque image porteuse d’information ayant une alternative textuelle, cette alternative est-elle pertinente (hors cas particuliers) ? Niveau de conformité A
Tests
Test 1.3.1 Chaque image (balise <img> ou balise possédant l’attribut WAI-ARIA role="img") porteuse d’information, ayant une alternative textuelle, cette alternative est-elle pertinente (hors cas particuliers) ?
S’il est présent, le contenu de l’attribut alt est pertinent.
S’il est présent, le contenu de l’attribut title est pertinent.
S’il est présent, le contenu de l’attribut WAI-ARIA aria-label est pertinent.
S’il est présent, le passage de texte associé via l’attribut WAI-ARIA aria-labelledby est pertinent.
Méthodologie du test
Retrouver dans le document les images structurées au moyen d’un élément <img> (ou d’un élément possédant l’attribut WAI-ARIA role="img") pourvues d’une alternative textuelle.
Pour chaque image, vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
S’il est présent, le contenu de l’attribut alt est pertinent.
S’il est présent, le contenu de l’attribut title est pertinent.
S’il est présent, le contenu de l’attribut WAI-ARIA aria-label est pertinent.
S’il est présent, le passage de texte associé via l’attribut WAI-ARIA aria-labelledby est pertinent.
Méthodologie du test
Retrouver dans le document les éléments <area> pourvus d’une alternative textuelle.
Pour chaque élément <area>, vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
Test 1.3.3 Pour chaque bouton de type image (balise <input> avec l’attribut type="image"), ayant une alternative textuelle, cette alternative est-elle pertinente (hors cas particuliers) ?
S’il est présent, le contenu de l’attribut alt est pertinent.
S’il est présent, le contenu de l’attribut title est pertinent.
S’il est présent, le contenu de l’attribut WAI-ARIA aria-label est pertinent.
S’il est présent, le passage de texte associé via l’attribut WAI-ARIA aria-labelledby est pertinent.
Méthodologie du test
Retrouver dans le document les éléments <input> pourvus de l’attribut type="image" et d’une alternative textuelle.
Pour chaque élément <input> pourvu de l’attribut type="image", vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
Retrouver dans le document les éléments <embed> pourvus de l’attribut type="image/…" et d’une alternative textuelle.
Pour chaque élément <embed> pourvu de l’attribut type="image/…", vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
Test 1.3.6 Pour chaque image vectorielle (balise <svg>) porteuse d’information, ayant une alternative textuelle, cette alternative est-elle pertinente (hors cas particuliers) ?
S’il est présent, le contenu de l’élément <title> est pertinent.
S’il est présent, le contenu de l’attribut WAI-ARIA aria-label est pertinent.
S’il est présent, le passage de texte associé via l’attribut WAI-ARIA aria-labelledby est pertinent.
Méthodologie du test
Retrouver dans le document les éléments <svg> pourvus d’une alternative textuelle.
Pour chaque élément <svg>, vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
Retrouver dans le document les images pourvues d’une alternative textuelle.
Pour chaque image, vérifier l’alternative textuelle est courte et concise.
Si c’est le cas pour chaque image, le test est validé.
Notes et cas particuliers
Cas particuliers
Il existe une gestion de cas particuliers lorsque l’image est utilisée comme CAPTCHA ou comme image-test. Dans cette situation, où il n’est pas possible de donner une alternative pertinente sans détruire l’objet du CAPTCHA ou du test, le critère est non applicable.
Note : le cas des CAPTCHA et des images-test est traité de manière spécifique par le critère 1.4.
critère 1.4 Pour chaque image utilisée comme CAPTCHA ou comme image-test, ayant une alternative textuelle, cette alternative permet-elle d’identifier la nature et la fonction de l’image ? Niveau de conformité A
Tests
Test 1.4.1 Pour chaque image (balise <img>) utilisée comme CAPTCHA ou comme image-test, ayant une alternative textuelle, cette alternative est-elle pertinente ?
S’il est présent, le contenu de l’attribut alt est pertinent.
S’il est présent, le contenu de l’attribut title est pertinent.
S’il est présent, le contenu de l’attribut WAI-ARIA aria-label est pertinent.
S’il est présent, le passage de texte associé via l’attribut WAI-ARIA aria-labelledby est pertinent.
Méthodologie du test
Retrouver dans le document les images structurées au moyen d’un élément <img> pourvues d’une alternative textuelle et utilisées comme CAPTCHA ou comme image-test.
Pour chaque image, vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
Test 1.4.2 Pour chaque zone (balise <area>) d’une image réactive utilisée comme CAPTCHA ou comme image-test, ayant une alternative textuelle, cette alternative est-elle pertinente ?
S’il est présent, le contenu de l’attribut alt est pertinent.
S’il est présent, le contenu de l’attribut title est pertinent.
S’il est présent, le contenu de l’attribut WAI-ARIA aria-label est pertinent.
S’il est présent, le passage de texte associé via l’attribut WAI-ARIA aria-labelledby est pertinent.
Méthodologie du test
Retrouver dans le document les éléments <area> pourvus d’une alternative textuelle et utilisés comme CAPTCHA ou comme image-test.
Pour chaque élément <area>, vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
Test 1.4.3 Pour chaque bouton de type image (balise <input> avec l’attribut type="image") utilisé comme CAPTCHA ou comme image-test, ayant une alternative textuelle, cette alternative est-elle pertinente ?
S’il est présent, le contenu de l’attribut alt est pertinent.
S’il est présent, le contenu de l’attribut title est pertinent.
S’il est présent, le contenu de l’attribut WAI-ARIA aria-label est pertinent.
S’il est présent, le passage de texte associé via l’attribut WAI-ARIA aria-labelledby est pertinent.
Méthodologie du test
Retrouver dans le document les éléments <input> pourvus de l’attribut type="image" et d’une alternative textuelle, et utilisés comme CAPTCHA ou comme image-test.
Pour chaque élément <input> pourvu de l’attribut type="image", vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
Retrouver dans le document les éléments <object> pourvus de l’attribut type="image/…" et d’une alternative textuelle, et utilisés comme CAPTCHA ou comme image-test.
Pour chaque élément <object> pourvu de l’attribut type="image/…", vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
Test 1.4.5 Pour chaque image embarquée (balise <embed> avec l’attribut type="image/…") utilisée comme CAPTCHA ou comme image-test, ayant une alternative textuelle ou un contenu alternatif, cette alternative est-elle pertinente ?
S’il est présent, le contenu de l’attribut title est pertinent.
S’il est présent, le contenu de l’attribut WAI-ARIA aria-label est pertinent.
S’il est présent, le passage de texte associé via l’attribut WAI-ARIA aria-labelledby est pertinent.
Retrouver dans le document les éléments <embed> pourvus de l’attribut type="image/…" et d’une alternative textuelle, et utilisés comme CAPTCHA ou comme image-test.
Pour chaque élément <embed> pourvu de l’attribut type="image/…", vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
Test 1.4.6 Pour chaque image vectorielle (balise <svg>) utilisée comme CAPTCHA ou comme image-test, ayant une alternative textuelle, cette alternative est-elle pertinente ?
S’il est présent, le contenu de l’attribut title est pertinent.
S’il est présent, le contenu de l’attribut WAI-ARIA aria-label est pertinent.
S’il est présent, le passage de texte associé via l’attribut WAI-ARIA aria-labelledby est pertinent.
Méthodologie du test
Retrouver dans le document les éléments <svg> pourvus d’une alternative textuelle et utilisés comme CAPTCHA ou comme image-test.
Pour chaque élément <svg>, vérifier que l’alternative textuelle est pertinente.
Si c’est le cas pour chaque image, le test est validé.
critère 1.5 Pour chaque image utilisée comme CAPTCHA, une solution d’accès alternatif au contenu ou à la fonction du CAPTCHA est-elle présente ? Niveau de conformité A
Tests
Test 1.5.1 Chaque image (balises <img>, <area>, <object>, <embed>, <svg>, <canvas> ou possédant un attribut WAI-ARIA role="img") utilisée comme CAPTCHA vérifie-t-elle une de ces conditions ?
Il existe une autre forme de CAPTCHA non graphique, au moins.
Il existe une autre solution d’accès à la fonctionnalité qui est sécurisée par le CAPTCHA.
Méthodologie du test
Retrouver dans le document les images (éléments <img>, <area>, <object>, <embed>, <svg>, <canvas> ou possédant un attribut WAI-ARIA role="img") utilisés comme CAPTCHA ou comme image-test.
Pour chaque image, vérifier qu’il existe :
soit une autre forme de CAPTCHA non graphique, au moins ;
soit une autre solution d’accès à la fonctionnalité qui est sécurisée par le CAPTCHA.
Si c’est le cas pour chaque image, le test est validé.
Test 1.5.2 Chaque bouton associé à une image (balise input avec l’attribut type="image") utilisée comme CAPTCHA vérifie-t-il une de ces conditions ?
Il existe une autre forme de CAPTCHA non graphique, au moins.
Il existe une autre solution d’accès à la fonctionnalité sécurisée par le CAPTCHA.
Méthodologie du test
Retrouver dans le document les boutons associés à une image (éléments <input> avec l’attribut type="image") utilisés comme CAPTCHA ou comme image-test.
Pour chaque bouton associé à une image, vérifier qu’il existe :
soit une autre forme de CAPTCHA non graphique, au moins ;
soit une autre solution d’accès à la fonctionnalité qui est sécurisée par le CAPTCHA.
Si c’est le cas pour chaque image, le test est validé.
Retrouver dans le document les images structurées au moyen d’un élément <img> (ou d’un élément possédant l’attribut WAI-ARIA role="img") porteuses d’information qui nécessitent une description détaillée.
Pour chaque image, vérifier qu’il existe :
Soit une alternative textuelle contenant la référence à une description détaillée adjacente à l’image ;
Soit un lien ou un bouton adjacent permettant d’accéder à la description détaillée.
Si c’est le cas pour chaque image, le test est validé.
Retrouver dans le document les éléments <object> pourvus de l’attribut type="image/…", porteurs d’information qui nécessitent une description détaillée.
Pour chaque élément <object> pourvu de l’attribut type="image/…", vérifier qu’il existe :
soit une alternative textuelle contenant la référence à une description détaillée adjacente à l’image ;
soit un lien ou un bouton adjacent permettant d’accéder à la description détaillée.
Si c’est le cas pour chaque élément <object> pourvu de l’attribut type="image/…", le test est validé.
Retrouver dans le document les éléments <embed> pourvus de l’attribut type="image/…", porteurs d’information qui nécessitent une description détaillée.
Pour chaque élément <embed> pourvu de l’attribut type="image/…", vérifier qu’il existe :
soit une alternative textuelle contenant la référence à une description détaillée adjacente à l’image ;
soit un lien ou un bouton adjacent permettant d’accéder à la description détaillée.
Si c’est le cas pour chaque élément <embed> pourvu de l’attribut type="image/…", le test est validé.
Il existe un attribut WAI-ARIA aria-label contenant l’alternative textuelle et une référence à une description détaillée adjacente.
Il existe un attribut WAI-ARIA aria-labelledby associant un passage de texte faisant office d’alternative textuelle et un autre faisant office de description détaillée.
Retrouver dans le document les éléments <svg> porteurs d’information qui nécessitent une description détaillée.
Pour chaque élément <svg>, vérifier qu’il existe :
soit un attribut WAI-ARIA aria-label contenant l’alternative textuelle et une référence à une description détaillée adjacente ;
soit un attribut WAI-ARIA aria-labelledby associant un passage de texte faisant office d’alternative textuelle et un autre faisant office de description détaillée ;
soit un attribut WAI-ARIA aria-describedby associant un passage de texte faisant office de description détaillée ;
soit un lien ou un bouton adjacent permettant d’accéder à la description détaillée.
Si c’est le cas pour chaque élément <svg>, le test est validé.
Test 1.6.6 Pour chaque image vectorielle (balise <svg>) porteuse d’information, ayant une description détaillée, la référence éventuelle à la description détaillée dans l’attribut WAI-ARIA aria-label et la description détaillée associée par l’attribut WAI-ARIA aria-labelledby ou aria-describedby sont-elles correctement restituées par les technologies d’assistance ?
Méthodologie du test
Retrouver dans le document les éléments <svg> porteurs d’information dont la description détaillée est fournie au moyen d’un attribut aria-label, aria-labelledby ou aria-describedby.
Pour chaque élément <svg>, vérifier que le contenu de la description détaillée est correctement restitué par les technologies d’assistance.
Si c’est le cas pour chaque élément <svg>, le test est validé.
Il existe un attribut WAI-ARIA aria-label contenant l’alternative textuelle et une référence à une description détaillée adjacente.
Il existe un attribut WAI-ARIA aria-labelledby associant un passage de texte faisant office d’alternative textuelle et un autre faisant office de description détaillée.
Il existe un contenu textuel entre <canvas> et </canvas> faisant référence à une description détaillée adjacente à l’image bitmap.
Il existe un contenu textuel entre <canvas> et </canvas> faisant office de description détaillée.
Retrouver dans le document les éléments <canvas> porteurs d’information qui nécessitent une description détaillée.
Pour chaque élément <canvas>, vérifier qu’il existe :
soit un attribut WAI-ARIA aria-label contenant l’alternative textuelle et une référence à une description détaillée adjacente ;
soit un attribut WAI-ARIA aria-labelledby associant un passage de texte faisant office d’alternative textuelle et un autre faisant office de description détaillée ;
soit un contenu textuel entre <canvas> et </canvas> faisant référence à une description détaillée adjacente à l’image bitmap ;
soit un contenu textuel entre <canvas> et </canvas> faisant office de description détaillée ;
soit un lien ou un bouton adjacent permettant d’accéder à la description détaillée.
Si c’est le cas pour chaque élément <canvas>, le test est validé.
Test 1.6.8 Pour chaque image bitmap (balise <canvas>) porteuse d’information, qui implémente une référence à une description détaillée adjacente, cette référence est-elle correctement restituée par les technologies d’assistance ?
Méthodologie du test
Retrouver dans le document les éléments <canvas> porteurs d’information dont la description détaillée est fournie au moyen d’un attribut aria-label, aria-labelledby ou aria-describedby.
Pour chaque élément <canvas>, vérifier que le contenu de la description détaillée est correctement restitué par les technologies d’assistance.
Si c’est le cas pour chaque élément <canvas>, le test est validé.
Test 1.6.9 Pour chaque image (balise <img>, <input> avec l’attribut type="image", <area>, <object>, <embed>, <svg>, <canvas>, ou possédant un attribut WAI-ARIA role="img") porteuse d’information, qui est accompagnée d’une description détaillée et qui utilise un attribut WAI-ARIA aria-describedby, l’attribut WAI-ARIA aria-describedby associe-t-il la description détaillée ?
Méthodologie du test
Retrouver dans le document les images (éléments <img>, <input> avec l’attribut type="image", <area>, <object>, <embed>, <svg>, <canvas> ou possédant un attribut WAI-ARIA role="img") porteuses d’information dont la description détaillée utilise un attribut WAI-ARIA aria-describedby.
Pour chaque image, vérifier que le contenu de la description détaillée est correctement restitué par les technologies d’assistance.
Si c’est le cas pour chaque image, le test est validé.
Retrouver dans le document les éléments pourvus d’un attribut WAI-ARIA role="img" porteurs d’information qui nécessitent une description détaillée.
Pour chaque élément role="img", vérifier qu’il existe :
soit un attribut WAI-ARIA aria-label contenant l’alternative textuelle et une référence à une description détaillée adjacente ;
soit un attribut WAI-ARIA aria-labelledby associant un passage de texte faisant office d’alternative textuelle et un autre faisant office de description détaillée ;
soit un attribut WAI-ARIA aria-describedby associant un passage de texte faisant office de description détaillée ;
soit un lien ou un bouton adjacent permettant d’accéder à la description détaillée.
Si c’est le cas pour chaque élément role="img", le test est validé.
Notes et cas particuliers
Notes techniques
Dans le cas du SVG, le manque de support de l’élément <title> et <desc> par les technologies d’assistance crée une difficulté dans le cas de l’implémentation de l’alternative textuelle de l’image et de sa description détaillée. Dans ce cas, il est recommandé d’utiliser l’attribut WAI-ARIA aria-label pour implémenter à la fois l’alternative textuelle courte et la référence à la description détaillée adjacente ou l’attribut WAI-ARIA aria-labelledby pour associer les passages de texte faisant office d’alternative courte et de description détaillée.
L’utilisation de l’attribut WAI-ARIA aria-describedby n’est pas recommandée pour lier une image (<img>, <object>, <embed>, <canvas>) à sa description détaillée, par manque de support des technologies d’assistance. Néanmoins, lorsqu’il est utilisé, l’attribut devra nécessairement faire référence à l’id de la zone contenant la description détaillée.
La description détaillée adjacente peut être implémentée via une balise <figcaption>, dans ce cas le critère 1.9 doit être vérifié (utilisation de <figure> et des attributs WAI-ARIA role="figure" et aria-label, notamment).
critère 3.1 Dans chaque page web, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ? Niveau de conformité A
Tests
Test 3.1.1 Pour chaque mot ou ensemble de mots dont la mise en couleur est porteuse d’information, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ?
Méthodologie du test
Retrouver dans le document les informations données par la couleur dans un mot ou un ensemble de mots.
Pour chacune de ces informations, vérifier qu’il existe un autre moyen de récupérer cette information (présence d’un attribut title, d’une icône ou d’un effet graphique de forme ou de position, un effet typographique…).
Si c’est le cas pour chaque information, le test est validé.
Test 3.1.2 Pour chaque indication de couleur donnée par un texte, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ?
Méthodologie du test
Retrouver dans le document les informations données par la couleur dans un texte.
Pour chacune de ces informations, vérifier qu’il existe un autre moyen de récupérer cette information (présence d’un attribut title, d’une icône ou d’un effet graphique de forme ou de position, un effet typographique…).
Si c’est le cas pour chaque information, le test est validé.
Test 3.1.3 Pour chaque image véhiculant une information, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ?
Méthodologie du test
Retrouver dans le document les informations données par la couleur dans une image.
Pour chacune de ces informations, vérifier qu’il existe un autre moyen de récupérer cette information (présence d’un attribut title, d’une icône ou d’un effet graphique de forme ou de position, un effet typographique…).
Si c’est le cas pour chaque information, le test est validé.
Retrouver dans le document les informations données par la couleur dans une propriété CSS.
Pour chacune de ces informations, vérifier qu’il existe un autre moyen de récupérer cette information (présence d’un attribut title, d’une icône ou d’un effet graphique de forme ou de position, un effet typographique…).
Si c’est le cas pour chaque information, le test est validé.
Retrouver dans le document les informations données par la couleur dans un média temporel.
Pour chacune de ces informations, vérifier qu’il existe un autre moyen de récupérer cette information (présence d’un attribut title, d’une icône ou d’un effet graphique de forme ou de position, un effet typographique…).
Si c’est le cas pour chaque information, le test est validé.
Retrouver dans le document les informations données par la couleur dans un média non temporel.
Pour chacune de ces informations, vérifier qu’il existe un autre moyen de récupérer cette information (présence d’un attribut title, d’une icône ou d’un effet graphique de forme ou de position, un effet typographique…).
Si c’est le cas pour chaque information, le test est validé.
critère 3.2 Dans chaque page web, le contraste entre la couleur du texte et la couleur de son arrière-plan est-il suffisamment élevé (hors cas particuliers) ? Niveau de conformité AA
Tests
Test 3.2.1 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions (hors cas particuliers) ?
Le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins.
Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.
Méthodologie du test
Retrouver dans le document les textes et les textes en image sans effet de graisse d’une taille restituée inférieure à 24px qui pourraient poser des problèmes de contraste.
Pour chacun de ces textes, vérifier que :
soit le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins ;
soit un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.
Si c’est le cas pour chaque texte, le test est validé.
Test 3.2.2 Dans chaque page web, le texte et le texte en image en gras d’une taille restituée inférieure à 18,5px vérifient-ils une de ces conditions (hors cas particuliers) ?
Le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins.
Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.
Méthodologie du test
Retrouver dans le document les textes et les textes en image en gras d’une taille restituée inférieure à 18,5px qui pourraient poser des problèmes de contraste.
Pour chacun de ces textes, vérifier que :
soit le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins ;
soit un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.
Si c’est le cas pour chaque texte, le test est validé.
Test 3.2.3 Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée supérieure ou égale à 24px vérifient-ils une de ces conditions (hors cas particuliers) ?
Le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins.
Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins.
Méthodologie du test
Retrouver dans le document les textes et les textes en image sans effet de graisse d’une taille restituée supérieure ou égale à 24px qui pourraient poser des problèmes de contraste.
Pour chacun de ces textes, vérifier que :
soit le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins ;
soit un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins.
Si c’est le cas pour chaque texte, le test est validé.
Test 3.2.4 Dans chaque page web, le texte et le texte en image en gras d’une taille restituée supérieure ou égale à 18,5px vérifient-ils une de ces conditions (hors cas particuliers) ?
Le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins.
Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins.
Méthodologie du test
Retrouver dans le document les textes et les textes en image en gras d’une taille restituée supérieure ou égale à 18,5px qui pourraient poser des problèmes de contraste.
Pour chacun de ces textes, vérifier que :
soit le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins ;
soit un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins.
Si c’est le cas pour chaque texte, le test est validé.
Retrouver dans le document les mécanismes qui permettent d’afficher un rapport de contraste conforme.
Pour chacun de ces mécanismes, vérifier que le rapport de contraste entre le texte et la couleur d’arrière-plan est suffisamment élevé.
Si c’est le cas pour chaque mécanisme, le test est validé.
Notes et cas particuliers
Cas particuliers
Dans ces situations, les critères sont non applicables pour ces éléments :
Le texte fait partie d’un logo ou d’un nom de marque d’un organisme ou d’une société ;
Le texte ou l’image de texte est purement décoratif ;
Le texte fait partie d’une image véhiculant une information mais le texte lui-même n’apporte aucune information essentielle ;
Le texte ou l’image de texte fait partie d’un élément d’interface sur lequel aucune action n’est possible (par exemple un bouton avec l’attribut disabled).
Test 4.2.1 Pour chaque média temporel pré-enregistré seulement audio, ayant une transcription textuelle, celle-ci est-elle pertinente (hors cas particuliers) ?
Méthodologie du test
Retrouver dans le document les médias temporels pré-enregistrés seulement audio qui possèdent une transcription textuelle.
Pour chaque média temporel seulement audio, vérifier que transcription textuelle est pertinente.
Si c’est le cas pour chaque média temporel, le test est validé.
Test 4.2.2 Chaque média temporel pré-enregistré seulement vidéo vérifie-t-il une de ces conditions (hors cas particuliers) ?
critère 4.3 Chaque média temporel synchronisé pré-enregistré a-t-il, si nécessaire, des sous-titres synchronisés (hors cas particuliers) ? Niveau de conformité A
Tests
Test 4.3.1 Chaque média temporel synchronisé pré-enregistré vérifie-t-il, si nécessaire, l’une de ces conditions (hors cas particuliers) ?
Retrouver dans le document les médias temporels pré-enregistrés synchronisés.
Pour chaque média temporel synchronisé, vérifier la présence :
soit de sous-titres synchronisés ;
soit d’une version alternative possédant des sous-titres synchronisés accessible au moyen d’un lien ou d’un bouton adjacent.
Si c’est le cas pour chaque média temporel, le test est validé.
Test 4.3.2 Pour chaque média temporel synchronisé pré-enregistré possédant des sous-titres synchronisés diffusés via une balise <track>, la balise <track> possède-t-elle un attribut kind="captions" ?
Méthodologie du test
Retrouver dans le document les médias temporels synchronisés possédant des sous-titres synchronisés au moyen d’un élément <track>.
Pour chaque média temporel synchronisé, vérifier que la balise <track> possède un attribut kind="captions".
Si c’est le cas pour chaque média temporel synchronisé, le test est validé.
critère 4.4 Pour chaque média temporel synchronisé pré-enregistré ayant des sous-titres synchronisés, ces sous-titres sont-ils pertinents ? Niveau de conformité A
Tests
Test 4.4.1 Pour chaque média temporel synchronisé pré-enregistré ayant des sous-titres synchronisés, une piste de sous-titres au moins respecte-t-elle ces conditions ?
Les sous-titres sont dans la langue de la vidéo ;
Les sous-titres sont pertinents ;
Les sous-titres sont correctement synchronisés.
Méthodologie du test
Retrouver dans le document les médias temporels synchronisés possédant des sous-titres synchronisés.
Pour chaque média temporel synchronisé, vérifier que les sous-titres sont :
dans la langue de la vidéo (si le contenu oralisé est en anglais, les sous-titres doivent être en anglais) ;
pertinents (toutes les informations sonores importantes sont présentes, les dialogues notamment) ;
correctement synchronisés. Si vous n’observez pas de décalage entre le discours oralisé et l’apparition des sous-titres, les sous-titres sont correctement synchronisés. La norme de référence spécifie que les sous-titres doivent apparaître dans les 100 ms suivant l’horodatage du sous-titre.
Si c’est le cas pour chaque média temporel synchronisé, le test est validé.
Le média non temporel est inséré via JavaScript en vérifiant la présence et la version du plug-in, en remplacement d’un contenu alternatif déjà présent.
Dans ces situations, le critère est non applicable.
critère 4.9 Pour chaque média non temporel ayant une alternative, cette alternative est-elle pertinente ? Niveau de conformité A
Tests
Test 4.9.1 Pour chaque média non temporel ayant une alternative, cette alternative permet-elle d’accéder au même contenu et à des fonctionnalités similaires ?
Méthodologie du test
Retrouver dans le document les médias non temporels associés à une alternative.
Pour chaque média non temporel, vérifier que l’alternative est pertinente (elle permet d’accéder au même contenu et à des fonctionnalités similaires).
Si c’est le cas pour chaque média non temporel, le test est validé.
critère 4.10 Chaque son déclenché automatiquement est-il contrôlable par l’utilisateur ? Niveau de conformité A
Tests
Test 4.10.1 Chaque séquence sonore déclenchée automatiquement via une balise <object>, <video>, <audio>, <embed>, <bgsound> ou un code JavaScript vérifie-t-elle une de ces conditions ?
La séquence sonore a une durée inférieure ou égale à 3 secondes.
La séquence sonore peut être stoppée sur action de l’utilisateur.
Le volume de la séquence sonore peut être contrôlé par l’utilisateur indépendamment du contrôle de volume du système.
Méthodologie du test
Au chargement du document, si un son se déclenche automatiquement, vérifier que :
soit la séquence sonore a une durée inférieure ou égale à 3 secondes ;
soit un dispositif (un bouton par exemple), sur l’élément ayant déclenché le son (voir note), ou dans la page, permet de le stopper ;
soit le volume de la séquence peut être contrôlé par l’utilisateur, indépendamment du contrôle de volume du système.
Si c’est le cas, le test est validé.
Note : les éléments suivants sont susceptibles de déclencher des sons au chargement de la page : éléments <audio>, <video>, <object>, <embed>, <bgsound> ou un code JavaScript (utilisation de la Web Audio API, par exemple).
L’en-tête de lignes est structuré au moyen d’une balise pourvue d’un attribut WAI-ARIA role="rowheader".
Méthodologie du test
Retrouver dans le document les tableaux de données.
Pour chaque en-tête de ligne s’appliquant à la totalité de la ligne, vérifier que l’en-tête de ligne est structuré au moyen :
soit d’un élément <th> ;
soit d’un élément pourvu d’un attribut WAI-ARIA role="rowheader".
Si c’est le cas pour chaque en-tête de ligne s’appliquant à la totalité de la ligne, le test est validé.
Test 5.6.3 Pour chaque tableau de données, chaque en-tête ne s’appliquant pas à la totalité de la ligne ou de la colonne est-il structuré au moyen d’une balise <th> ?
Méthodologie du test
Retrouver dans le document les tableaux de données.
Pour chaque en-tête ne s’appliquant pas à la totalité de la ligne ou de la colonne, vérifier que l’en-tête de ligne est structuré au moyen d’un élément <th>.
Si c’est le cas pour chaque en-tête ne s’appliquant pas à la totalité de la ligne ou de la colonne, le test est validé.
Test 5.6.4 Pour chaque tableau de données, chaque cellule associée à plusieurs en-têtes est-elle structurée au moyen d’une balise <td> ou <th> ?
Méthodologie du test
Retrouver dans le document les tableaux de données.
Pour chaque cellule associée à plusieurs en-têtes est-elle structurée au moyen d’une balise <th> ou <td>.
Si c’est le cas pour chaque en-tête ne s’appliquant pas à la totalité de la ligne ou de la colonne, le test est validé.
critère 5.7 Pour chaque tableau de données, la technique appropriée permettant d’associer chaque cellule avec ses en-têtes est-elle utilisée (hors cas particuliers) ? Niveau de conformité A
Tests
Test 5.7.1 Pour chaque contenu de balise <th> s’appliquant à la totalité de la ligne ou de la colonne, la balise <th> respecte-t-elle une de ces conditions (hors cas particuliers) ?
La balise <th> possède un attribut id unique.
La balise <th> possède un attribut scope.
La balise <th> possède un attribut WAI-ARIA role="rowheader" ou role="columnheader".
Méthodologie du test
Retrouver dans le document les tableaux de données.
Pour chaque en-tête (élément <th>) s’appliquant à la totalité de la ligne ou de la colonne, vérifier que l’élément <th> possède :
soit un attribut id unique ;
soit un attribut scope ;
soit un attribut WAI-ARIA role="rowheader" ou "columnheader".
Si c’est le cas pour chaque en-tête s’appliquant à la totalité de la ligne ou de la colonne, le test est validé.
Test 5.7.2 Pour chaque contenu de balise <th> s’appliquant à la totalité de la ligne ou de la colonne et possédant un attribut scope, la balise <th> vérifie-t-elle une de ces conditions ?
La balise <th> possède un attribut scope avec la valeur "row" pour les en-têtes de ligne.
La balise <th> possède un attribut scope avec la valeur "col" pour les en-têtes de colonne.
Méthodologie du test
Retrouver dans le document les tableaux de données.
Pour chaque en-tête (élément <th>) s’appliquant à la totalité de la ligne ou de la colonne et pourvu d’un attribut scope, vérifier que l’attribut scope possède :
soit une valeur "row" pour les en-têtes de ligne ;
soit une valeur "col" pour les en-têtes de colonne.
Si c’est le cas pour chaque en-tête s’appliquant à la totalité de la ligne ou de la colonne et pourvu d’un attribut scope, le test est validé.
Test 5.7.3 Pour chaque contenu de balise <th> ne s’appliquant pas à la totalité de la ligne ou de la colonne, la balise <th> vérifie-t-elle ces conditions ?
La balise <th> ne possède pas d’attribut scope.
La balise <th> ne possède pas d’attribut WAI-ARIA role="rowheader" ou role="columnheader".
La balise <th> possède un attribut id unique.
Méthodologie du test
Retrouver dans le document les tableaux de données.
Pour chaque en-tête (élément <th>) ne s’appliquant pas à la totalité de la ligne ou de la colonne, vérifier que l’élément <th> :
possède un attribut id unique ;
ne possède pas d’attribut scope ;
ne possède pas d’attribut WAI-ARIA role="rowheader" ou "columnheader".
Si c’est le cas pour chaque en-tête ne s’appliquant pas à la totalité de la ligne ou de la colonne, le test est validé.
Test 5.7.4 Pour chaque contenu de balise <td> ou <th> associée à un ou plusieurs en-têtes possédant un attribut id, la balise vérifie-t-elle ces conditions ?
La balise possède un attribut headers.
L’attribut headers possède la liste des valeurs d’attribut id des en-têtes associés.
Méthodologie du test
Retrouver dans le document les tableaux de données.
Pour chaque élément <td> ou <th> associé à un ou plusieurs en-têtes possédant un attribut id, vérifier que :
l’élément <td> ou <th> possède un attribut headers ;
l’attribut headers possède la liste des valeurs d’attribut id des en-têtes associés.
Si c’est le cas pour chaque élément <td> ou <th> associé à un ou plusieurs en-têtes possédant un attribut id, le test est validé.
Test 5.7.5 Pour chaque balise pourvue d’un attribut WAI-ARIA role="rowheader" ou role="columnheader" dont le contenu s’applique à la totalité de la ligne ou de la colonne, la balise vérifie-t-elle une de ces conditions ?
La balise possède un attribut WAI-ARIA role="rowheader" pour les en-têtes de ligne.
La balise possède un attribut WAI-ARIA role="columnheader" pour les en-têtes de colonne.
Méthodologie du test
Retrouver dans le document les tableaux de données.
Pour chaque en-tête s’appliquant à la totalité de la ligne ou de la colonne et pourvu d’un attribut WAI-ARIA role="rowheader" ou "columnheader", vérifier que l’élément possède :
soit un attribut WAI-ARIA role="rowheader" pour les en-têtes de ligne ;
soit un attribut WAI-ARIA role="columnheader" pour les en-têtes de colonne.
Si c’est le cas pour chaque en-tête s’appliquant à la totalité de la ligne ou de la colonne et pourvu d’un attribut WAI-ARIA role="rowheader" ou "columnheader", le test est validé.
Notes et cas particuliers
Cas particuliers
Dans le cas de tableaux de données ayant des en-têtes sur une seule ligne ou une seule colonne, les en-têtes peuvent être structurés à l’aide de balise <th> sans attribut scope.
Notes techniques
Si l’attribut headers est implémenté sur une cellule déjà reliée à un en-tête (de ligne ou de colonne) avec l’attribut scope (avec la valeur col ou row), c’est l’en-tête ou les en-têtes référencés par l’attribut headers qui seront restitués aux technologies d’assistance. Les en-têtes reliés avec l’attribut scope seront ignorés.
Retrouver dans le document les liens image (lien avec pour contenu un élément <img> ou un élément ayant l’attribut WAI-ARIA role="img", un élément <area> possédant un attribut href, un élément <object>, un élément <canvas> ou un élément <svg>).
Pour chaque lien image, vérifier que ce qui permet d’en comprendre la fonction et la destination est :
soit l’intitulé du lien seul, fourni par l’alternative textuelle de l’image ;
soit le contexte du lien.
Si c’est le cas pour chaque lien image, le test est validé.
Test 6.1.3 Chaque lien composite vérifie-t-il une de ces conditions (hors cas particuliers) ?
L’intitulé de lien seul permet d’en comprendre la fonction et la destination.
Retrouver dans le document les liens autres que SVG dont le contenu est fourni à la fois par un intitulé visible et par le contenu soit d’un attribut title ou d’un attribut aria-label ou d’un attribut aria-labelledby.
Pour chaque lien, vérifier que le contenu de l’attribut title ou de l’attribut aria-label ou de l’attribut aria-labelledby contient l’intitulé visible.
Si c’est le cas pour chaque lien, le test est validé pour les liens autres que SVG.
Retrouver dans le document les liens SVG dont le contenu est fourni à la fois par un intitulé visible et par le contenu soit d’un attribut aria-labelledby, ou d’un attribut aria-label ou d’un élément title (enfant direct de l’élément <svg>) ou d’un attribut x-link:title (SVG 1.1) ou d’un ou plusieurs éléments <text>.
Pour chaque lien SVG, vérifier que le contenu de l’attribut aria-labelledby ou de l’attribut aria-label ou de l’élément <title> ou de l’attribut x-link:title ou d’un ou plusieurs éléments <text> contient l’intitulé visible.
Si c’est le cas pour chaque lien SVG, le test est validé pour les liens SVG.
Si le test est validé à la fois pour les liens non SVG et pour les liens SVG, le test est globalement validé.
Notes et cas particuliers
Cas particuliers
Il existe une gestion de cas particuliers pour les tests 6.1.1, 6.1.2, 6.1.3 et 6.1.4 lorsque le lien est ambigu pour tout le monde. Dans cette situation, où il n’est pas possible de rendre le lien explicite dans son contexte, le critère est non applicable.
Il existe une gestion de cas particuliers pour le test 6.1.5 lorsque :
La ponctuation et les lettres majuscules sont présentes dans le texte de l’intitulé visible : elles peuvent être ignorées dans le nom accessible sans porter à conséquence ;
Le texte de l’intitulé visible sert de symbole : le texte ne doit pas être interprété littéralement au niveau du nom accessible. Le nom doit exprimer la fonction véhiculée par le symbole (par exemple, “B” au niveau d’un éditeur de texte aura pour nom accessible “Mettre en gras”, le signe “>” en fonction du contexte signifiera “Suivant” ou “Lancer la vidéo”). Le cas des symboles mathématiques fait cependant exception (voir la note ci-dessous).
Note : si l’étiquette visible représente une expression mathématique, les symboles mathématiques peuvent être repris littéralement pour servir d’étiquette au nom accessible (ex. : “A>B”). Il est laissé à l’utilisateur le soin d’opérer la correspondance entre l’expression et ce qu’il doit épeler compte tenu de la connaissance qu’il a du fonctionnement de son logiciel de saisie vocale (“A plus grand que B” ou “A supérieur à B”).
Notes techniques
Lorsque l’intitulé visible est complété par une autre expression dans le nom accessible :
WCAG insiste sur le placement de l’intitulé visible au début du nom accessible sans toutefois réserver l’exclusivité de cet emplacement ;
WCAG considère comme un cas d’échec une correspondance non exacte de la chaîne de caractères de l’intitulé visible au sein du nom accessible.
Par exemple, si l’on considère l’intitulé visible « Commander maintenant » complété dans le nom accessible par l’expression « produit X », on peut avoir les différents cas suivants :
« Commander maintenant produit X » est valide (bonne pratique) ;
« Produit X : commander maintenant » est valide ;
« Commander produit X maintenant » est non valide.
critère 6.2 Dans chaque page web, chaque lien a-t-il un intitulé ? Niveau de conformité A
Tests
Test 6.2.1 Dans chaque page web, chaque lien a-t-il un intitulé entre <a> et </a> ?
Méthodologie du test
Retrouver dans le document les liens quels qu’ils soient.
Pour chaque lien, vérifier que le contenu de l’élément <a> (ou d’un élément pourvu d’un attribut WAI-ARIA role=link) contient un intitulé (texte ou alternative).
Si c’est le cas pour chaque lien, le test est validé.
Notes et cas particuliers
Notes techniques
Une ancre n’est pas un lien même si pendant longtemps l’élément <a> a servi de support à cette technique. Elle n’est donc pas concernée par le présent critère.
Retrouver dans le document, tous les éléments sur lesquels est implémenté un gestionnaire d’événements JavaScript (par exemple click, focus, mouseover, blur, keydown, touch…).
Vérifier que l’élément est accessible au moyen du clavier :
Il est atteignable avec la touche de tabulation (tab).
Si l’élément gère une action simple, il est activable au clavier avec la touche entrée (Entrée).
Si l’élément gère une action complexe, il est utilisable avec le clavier (généralement avec les touches de direction).
Sinon, vérifier qu’un élément accessible par le clavier permettant de réaliser la même action est présent dans la page.
Vérifier que l’élément est accessible par tout dispositif de pointage (souris, toucher, stylet…).
Sinon, vérifier qu’un élément accessible au moyen d’un dispositif de pointage et permettant de réaliser la même action est présent dans la page.
Si c’est le cas, le test est validé.
Test 7.3.2 Un script ne doit pas supprimer le focus d’un élément qui le reçoit. Cette règle est-elle respectée (hors cas particuliers) ?
Méthodologie du test
Activer, l’un après l’autre, tous les éléments capables de recevoir le focus.
Vérifier que le focus n’est pas supprimé via une fonctionnalité JavaScript.
Si c’est le cas, le test est validé.
Notes et cas particuliers
Cas particuliers
Il existe une gestion de cas particuliers lorsque la fonctionnalité dépend de l’utilisation d’un gestionnaire d’événement sans équivalent universel ; par exemple, une application de dessin à main levée ne pourra pas être rendue contrôlable au clavier. Dans ces situations, le critère est non applicable.
critère 8.1 Chaque page web est-elle définie par un type de document ? Niveau de conformité A
Tests
Test 8.1.1 Chaque page web est-elle définie par un type de document ?
Notes et cas particuliers
Note
Les technologies d’assistance ne dépendent plus de l’analyse directe du HTML. L’absence de déclaration d’un type de document ne pose donc plus de problème d’accessibilité pour les personnes en situation de handicap.
Le critère doit dorénavant toujours être considéré comme conforme.
Validateur nu HTML checker accompagné du bookmarklet « Check for WCAG 2.0 parsing compliance » disponible sur la page "about" de cet outil.
critère 8.2 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié ? Niveau de conformité A
Tests
Test 8.2.1 Pour chaque page web, le code source généré est-il valide selon le type de document spécifié ?
Notes et cas particuliers
Note
Les technologies d’assistance ne dépendent plus de l’analyse directe du HTML. Les problèmes d’accessibilité spécifiquement liés à la validité du code n’existent plus. Les erreurs remontées par le validateur qui ont un impact pour les personnes en situation de handicap sont traitées par d’autres critères.
Le critère doit dorénavant toujours être considéré comme conforme.
critère 8.6 Pour chaque page web ayant un titre de page, ce titre est-il pertinent ? Niveau de conformité A
Tests
Test 8.6.1 Pour chaque page web ayant un titre de page (balise <title>), le contenu de cette balise est-il pertinent ?
Méthodologie du test
Retrouver dans le document le titre structuré au moyen d’un élément <title>.
Vérifier si le contenu de l’élément <title> est suffisamment pertinent (il permet de retrouver la page dans l’historique de navigation ou la liste des onglets).
critère 8.7 Dans chaque page web, chaque changement de langue est-il indiqué dans le code source (hors cas particuliers) ? Niveau de conformité AA
Tests
Test 8.7.1 Dans chaque page web, chaque texte écrit dans une langue différente de la langue par défaut vérifie-t-il une de ces conditions (hors cas particuliers) ?
L’indication de langue est donnée sur l’élément contenant le texte (attribut lang et/ou xml:lang).
L’indication de langue est donnée sur un des éléments parents (attribut lang et/ou xml:lang)
Méthodologie du test
Retrouver les passages de texte en langue étrangère, à l’exception :
des noms propres ;
des mots d’origine étrangère, présents dans le dictionnaire de la langue du document ;
des mots d’origine étrangère et d’usage courant dont la prononciation ne provoque pas d’incompréhension.
Vérifier que chaque passage de texte retenu possède une indication de langue (attribut lang et/ou xml:lang sur l’élément lui-même ou l’un de ses parents).
Si c’est le cas, le test est validé.
Notes et cas particuliers
Cas particuliers
Il y a une gestion de cas particuliers sur le changement de langue pour les cas suivants :
Nom propre, le critère est non applicable ;
Nom commun de langue étrangère présent dans le dictionnaire officiel de la langue (voir note 1 ci-dessous) par défaut de la page web, le critère est non applicable ;
Le terme de langue étrangère soumis, via un champ de formulaire et rappelé dans la page (par exemple comme indication du terme recherché dans le cas d’un moteur de recherche), le critère est non applicable ;
Passage de texte dont la langue ne peut pas être déterminée : le critère est non applicable ;
Terme ou passage de texte issus d’une langue morte ou imaginaire pour laquelle il n’existe pas d’interprétation vocale : le critère est non applicable.
Note 1 : les dictionnaires officiels pour les langues fréquemment employées sur les sites publics luxembourgeois sont les suivants :
Note 2 : pour les noms communs de langue étrangère, absents dans le dictionnaire officiel de la langue par défaut de la page web, et qui sont passés dans le langage commun (exemple : newsletter) : le critère est applicable, uniquement lorsque l’absence d’indication de langue peut provoquer une incompréhension pour la restitution.
critère 9.1 Dans chaque page web, l’information est-elle structurée par l’utilisation appropriée de titres ? Niveau de conformité A
Tests
Test 9.1.1 Dans chaque page web, la hiérarchie entre les titres (balise <hx> ou balise possédant un attribut WAI-ARIA role="heading" associé à un attribut WAI-ARIA aria-level) est-elle pertinente ?
Méthodologie du test
Retrouver dans le document les titres (balise <hx> ou balise possédant un attribut WAI-ARIA role="heading" associé à un attribut WAI-ARIA aria-level).
Vérifier que la hiérarchie entre les titres est pertinente.
Si c’est le cas, le test est validé.
Test 9.1.2 Dans chaque page web, le contenu de chaque titre (balise <hx> ou balise possédant un attribut WAI-ARIA role="heading" associé à un attribut WAI-ARIA aria-level) est-il pertinent ?
Méthodologie du test
Pour chaque titre identifié au test 9.1.1, vérifier que son contenu est pertinent.
Si c’est le cas pour chaque titre, le test est validé.
Test 9.1.3 Dans chaque page web, chaque passage de texte constituant un titre est-il structuré à l’aide d’une balise <hx> ou d’une balise possédant un attribut WAI-ARIA role="heading" associé à un attribut WAI-ARIA aria-level ?
Méthodologie du test
Pour chaque titre identifié au test 9.1.1, vérifier que :
soit il est structuré au moyen d’une balise <hx> (“x” désignant une valeur numérique comprise entre 1 et 6) ;
soit il est structuré au moyen d’une balise possédant un attribut WAI-ARIA role="heading" et un attribut WAI-ARIA aria-level=x (“x” désignant une valeur numérique).
Si c’est le cas pour chaque titre, le test est validé.
Notes et cas particuliers
Notes techniques
WAI-ARIA permet de définir des titres via le rôle heading et l’attribut aria-level (indication du niveau de titre). Bien qu’il soit préférable d’utiliser l’élément de titre natif en HTML <hx>, l’utilisation du rôle WAI-ARIA heading est compatible avec l’accessibilité.
Vérifier que la zone d’en-tête est structurée au moyen d’un élément <header>.
Vérifier que les zones de navigation principales et secondaires sont structurées au moyen d’un élément <nav>.
Vérifier que l’élément <nav> n’est pas utilisé en dehors de la structuration des zones de navigation principales et secondaires.
Vérifier que la zone de contenu principal est structurée au moyen d’un élément <main>.
Si le document possède plusieurs éléments <main>, vérifier qu’un seul de ces éléments est visible (les autres occurrences de l’élément sont pourvues d’un attribut hidden).
Vérifier que la zone de pied de page est structurée au moyen d’un élément <footer>.
Si c’est le cas pour chaque zone de contenu, le test est validé.
Notes et cas particuliers
Cas particuliers
Lorsque le doctype déclaré dans la page n’est pas le doctype HTML5, ce critère est non applicable.
Notes techniques
La balise <main> peut être utilisée plusieurs fois dans le même document HTML. Néanmoins, il ne peut y avoir en permanence qu’une seule balise visible et lisible par les technologies d’assistances, les autres devant disposer d’un attribut hidden ou d’un style permettant de les masquer aux technologies d’assistances. À noter cependant que l’utilisation d’un style seul restera insuffisante pour assurer l’unicité d’une balise <main> visible en cas de désactivation des feuilles de styles.
critère 10.7 Dans chaque page web, pour chaque élément recevant le focus, la prise de focus est-elle visible ? Niveau de conformité A
Tests
Test 10.7.1 Pour chaque élément recevant le focus, la prise de focus vérifie-t-elle une de ces conditions ?
Le style du focus natif du navigateur n’est pas supprimé ou dégradé.
Un style du focus défini par l’auteur est visible.
Méthodologie du test
Retrouver dans le document les éléments susceptibles de recevoir le focus (les éléments d’interface tels que les liens ou les contrôles de formulaire, ainsi que tout élément pourvu d’un attribut tabindex d’une valeur égale ou supérieure à 1).
Pour chaque élément susceptible de recevoir le focus, vérifier que l’indication visuelle de la prise de focus est présente (en agissant sur le contour ou le fond ou les deux) et est suffisamment contrastée (ratio de contraste égal ou supérieur à 3:1).
Si c’est le cas pour chaque élément susceptible de recevoir le focus, le test est validé.
critère 10.8 Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance ? Niveau de conformité A
Tests
Test 10.8.1 Dans chaque page web, chaque contenu caché vérifie-t-il une de ces conditions ?
Le contenu caché a vocation à être ignoré par les technologies d’assistance.
Le contenu caché n’a pas vocation à être ignoré par les technologies d’assistance et est rendu restituable par les technologies d’assistance suite à une action de l’utilisateur réalisable au clavier ou par tout dispositif de pointage sur un élément précédent le contenu caché ou suite à un repositionnement du focus dessus.
Méthodologie du test
Retrouver les contenus cachés (éléments pourvus de l’attribut hidden ou de l’attribut WAI-ARIA aria-hidden, ou bien d’une classe ou d’un ensemble de styles CSS susceptibles de masquer le contenu).
Pour chaque contenu caché, vérifier que :
Soit le contenu caché a vocation à être ignoré par les technologies d’assistance (un élément statistique de visites par exemple).
Soit le contenu caché n’a pas vocation à être ignoré par les technologies d’assistance, et dans ce cas il est rendu restituable par les technologies d’assistance au moyen :
Soit d’une action de l’utilisateur réalisable au clavier ou par tout dispositif de pointage sur un élément précédent le contenu caché.
Soit d’une fonction de programmation qui repositionne le focus sur le contenu.
Si c’est le cas pour chaque contenu caché, le test est validé.
Notes et cas particuliers
Notes techniques
WAI-ARIA propose un attribut aria-hidden (true ou false) qui permet d’inhiber la restitution d’un contenu en direction des technologies d’assistance, sans action sur sa visibilité en direction des agents utilisateurs : un contenu avec aria-hidden="true" ne sera donc plus vocalisable, mais restera visible.
Sauf si le contenu contrôlé par aria-hidden n’a pas vocation à être restitué par les technologies d’assistance, la valeur de l’attribut aria-hidden doit être cohérente avec l’état affiché ou masqué du contenu à l’écran.
La spécification HTML5 propose un attribut hidden qui permet de rendre indisponible (quand l’attribut hidden est présent) un contenu dans le DOM généré (de manière similaire au type="hidden" sur un contrôle de formulaire).
Il est possible d’avoir des situations où un contenu contrôlé par hidden ou aria-hidden se trouve momentanément dans un état incohérent avec le statut affiché ou masqué du contenu, par exemple si l’on désire rendre disponible un élément, mais que son affichage à l’écran reste dépendant d’une action ultérieure. Dans ce cas, c’est l’état final du contenu qui doit être considéré.
critère 10.9 Dans chaque page web, l’information ne doit pas être donnée uniquement par la forme, taille ou position. Cette règle est-elle respectée ? Niveau de conformité A
Tests
Test 10.9.1 Dans chaque page web, pour chaque texte ou ensemble de textes, l’information ne doit pas être donnée uniquement par la forme, taille ou position. Cette règle est-elle respectée ?
Méthodologie du test
Retrouver dans le document les informations d’un texte données par la forme, la taille ou la position.
Pour chaque information donnée par la forme, la taille ou la position, vérifier qu’il existe un autre moyen de récupérer cette information.
Si c’est le cas pour chaque information, le test est validé.
Test 10.9.2 Dans chaque page web, pour chaque image ou ensemble d’images, l’information ne doit pas être donnée uniquement par la forme, taille ou position. Cette règle est-elle respectée ?
Méthodologie du test
Retrouver dans le document les informations d’une image données par la forme, la taille ou la position.
Pour chaque information donnée par la forme, la taille ou la position, vérifier qu’il existe un autre moyen de récupérer cette information.
Si c’est le cas pour chaque information, le test est validé.
critère 10.10 Dans chaque page web, l’information ne doit pas être donnée par la forme, taille ou position uniquement. Cette règle est-elle implémentée de façon pertinente ? Niveau de conformité A
Tests
Test 10.10.1 Dans chaque page web, pour chaque texte ou ensemble de textes, l’information ne doit pas être donnée uniquement par la forme, taille ou position. Cette règle est-elle implémentée de façon pertinente ?
Méthodologie du test
Retrouver dans le document les informations d’un texte données par la forme, la taille ou la position.
Pour chaque information donnée par la forme, la taille ou la position, vérifier que le moyen alternatif de récupérer cette information est pertinent, c’est-à-dire qu’il permet de transmettre l’information dans tous les contextes de consultation et pour tous les utilisateurs.
Si c’est le cas pour chaque information, le test est validé.
Test 10.10.2 Dans chaque page web, pour chaque image ou ensemble d’images, l’information ne doit pas être donnée uniquement par la forme, taille ou position. Cette règle est-elle implémentée de façon pertinente ?
Méthodologie du test
Retrouver dans le document les informations d’une image données par la forme, la taille ou la position.
Pour chaque information donnée par la forme, la taille ou la position, vérifier que le moyen alternatif de récupérer cette information est pertinent, c’est-à-dire qu’il permet de transmettre l’information dans tous les contextes de consultation et pour tous les utilisateurs.
Si c’est le cas pour chaque information, le test est validé.
Test 10.10.3 Dans chaque page web, pour chaque média temporel, l’information ne doit pas être donnée uniquement par la forme, taille ou position. Cette règle est-elle implémentée de façon pertinente ?
Méthodologie du test
Retrouver dans le document les informations d’un média temporel données par la forme, la taille ou la position.
Pour chaque information donnée par la forme, la taille ou la position, vérifier que le moyen alternatif de récupérer cette information est pertinent, c’est-à-dire qu’il permet de transmettre l’information dans tous les contextes de consultation et pour tous les utilisateurs.
Si c’est le cas pour chaque information, le test est validé.
Test 10.10.4 Dans chaque page web, pour chaque média non temporel, l’information ne doit pas être donnée uniquement par la forme, taille ou position. Cette règle est-elle implémentée de façon pertinente ?
Méthodologie du test
Retrouver dans le document les informations d’un média non temporel données par la forme, la taille ou la position.
Pour chaque information donnée par la forme, la taille ou la position, vérifier que le moyen alternatif de récupérer cette information est pertinent, c’est-à-dire qu’il permet de transmettre l’information dans tous les contextes de consultation et pour tous les utilisateurs.
Si c’est le cas pour chaque information, le test est validé.
critère 10.14 Dans chaque page web, les contenus additionnels apparaissant via les styles CSS uniquement peuvent-ils être rendus visibles au clavier et par tout dispositif de pointage ? Niveau de conformité A
Tests
Test 10.14.1 Dans chaque page web, les contenus additionnels apparaissant au survol d’un composant d’interface via les styles CSS respectent-ils si nécessaire une de ces conditions ?
Les contenus additionnels apparaissent également à l’activation du composant via le clavier et tout dispositif de pointage.
Les contenus additionnels apparaissent également à la prise de focus du composant.
Les contenus additionnels apparaissent également par le biais de l’activation ou de la prise de focus d’un autre composant.
Méthodologie du test
Retrouver dans le document les contenus additionnels devenant visible au survol d’un composant d’interface au moyen d’un mécanisme CSS (pseudo-classe :hover).
Pour chaque contenu additionnel, vérifier que les contenus additionnels apparaissent également :
À l’activation du composant au moyen du clavier ou de tout autre dispositif de pointage.
À la prise de focus du composant.
À l’activation ou à la prise de focus d’un autre composant.
Si c’est le cas pour chaque contenu additionnel, le test est validé.
Test 10.14.2 Dans chaque page web, les contenus additionnels apparaissant au focus d’un composant d’interface via les styles CSS respectent-ils si nécessaire une de ces conditions ?
Les contenus additionnels apparaissent également à l’activation du composant via le clavier et tout dispositif de pointage.
Les contenus additionnels apparaissent également au survol du composant.
Les contenus additionnels apparaissent également par le biais de l’activation ou du survol d’un autre composant.
Méthodologie du test
Retrouver dans le document les contenus additionnels devenant visible à la prise de focus d’un composant d’interface au moyen d’un mécanisme CSS (pseudo-classe :focus).
Pour chaque contenu additionnel, vérifier que les contenus additionnels apparaissent également :
À l’activation du composant au moyen du clavier ou de tout autre dispositif de pointage.
Au survol du composant.
À l’activation ou du survol d’un autre composant.
Si c’est le cas pour chaque contenu additionnel, le test est validé.
Un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.
Méthodologie du test
Retrouver dans le document les champs de formulaire.
Pour chaque champ de formulaire, vérifier que le champ de formulaire :
possède un attribut WAI-ARIA aria-labelledby référençant un passage de texte identifié ;
possède un attribut WAI-ARIA aria-label ;
est associé à un élément <label> ayant un attribut for ;
possède un attribut title ;
un bouton adjacent au champ de formulaire lui fournit une étiquette visible et un élément <label> visuellement caché ou un attribut WAI-ARIA aria-label, aria-labelledby ou title lui fournit un nom accessible.
Si c’est le cas pour champ de formulaire, le test est validé.
Test 11.1.2 Chaque champ de formulaire associé à une balise <label> ayant un attribut for, vérifie-t-il ces conditions ?
La valeur de l’attribut for est égale à la valeur de l’attribut id du champ de formulaire associé.
Méthodologie du test
Retrouver dans le document les champs de formulaire associé à un élément <label>.
Pour chaque champ de formulaire, vérifier que :
Le champ de formulaire possède un attribut id.
La valeur de l’attribut for de l’élément <label> est égale à la valeur de l’attribut id.
Si c’est le cas pour champ de formulaire, le test est validé.
Test 11.1.3 Chaque champ de formulaire ayant une étiquette dont le contenu n’est pas visible ou à proximité (masqué, aria-label) ou qui n’est pas accolé au champ (aria-labelledby), vérifie-t-il une de ses conditions ?
Le champ de formulaire possède un attribut title dont le contenu permet de comprendre la nature de la saisie attendue.
Le champ de formulaire est accompagné d’un passage de texte accolé au champ qui devient visible à la prise de focus permettant de comprendre la nature de la saisie attendue.
Le champ de formulaire est accompagné d’un passage de texte visible accolé au champ permettant de comprendre la nature de la saisie attendue.
Méthodologie du test
Retrouver dans le document les champs de formulaire dont l’étiquette n’est pas visible ou à proximité (masquée, utilisation de l’attribut aria-label) ou n’est pas accolée au champ (utilisation de l’attribut aria-labelledby).
Pour chaque champ de formulaire, vérifier que le champ de formulaire :
soit possède un attribut title dont le contenu permet de comprendre la nature de la saisie attendue ;
est accompagné d’un passage de texte accolé au champ qui devient visible à la prise de focus permettant de comprendre la nature de la saisie attendue ;
est accompagné d’un passage de texte visible accolé au champ permettant de comprendre la nature de la saisie attendue.
critère 11.2 Chaque étiquette associée à un champ de formulaire est-elle pertinente (hors cas particuliers) ? Niveau de conformité A
Tests
Test 11.2.1 Chaque balise <label> permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée ?
Méthodologie du test
Retrouver dans le document les champs de formulaire dont l’étiquette est fournie par un élément <label>.
Pour chaque champ de formulaire, vérifier que le contenu de l’élément est pertinent.
Si c’est le cas pour chaque champ de formulaire, le test est validé.
Test 11.2.2 Chaque attribut title permet-il de connaître la fonction exacte du champ de formulaire auquel il est associé ?
Méthodologie du test
Retrouver dans le document les champs de formulaire dont l’étiquette est fournie par un attribut title.
Pour chaque champ de formulaire, vérifier que le contenu de l’attribut est pertinent.
Si c’est le cas pour chaque champ de formulaire, le test est validé.
Test 11.2.3 Chaque étiquette implémentée via l’attribut WAI-ARIA aria-label permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée ?
Méthodologie du test
Retrouver dans le document les champs de formulaire dont l’étiquette est fournie par un attribut WAI-ARIA aria-label.
Pour chaque champ de formulaire, vérifier que le contenu de l’attribut est pertinent.
Si c’est le cas pour chaque champ de formulaire, le test est validé.
Test 11.2.4 Chaque passage de texte associé via l’attribut WAI-ARIA aria-labelledby permet-il de connaître la fonction exacte du champ de formulaire auquel il est associé ?
Méthodologie du test
Retrouver dans le document les champs de formulaire dont l’étiquette est fournie par un attribut WAI-ARIA aria-labelledby.
Pour chaque champ de formulaire, vérifier que le contenu du passage de texte référencé est pertinent.
Si c’est le cas pour chaque champ de formulaire, le test est validé.
Retrouver dans le document les champs de formulaire dont l’étiquette est fournie à la fois par un intitulé visible et par le contenu soit d’un élément <label>, soit d’un attribut title ou d’un attribut aria-label ou d’un attribut aria-labelledby.
Pour chaque champ de formulaire, vérifier que le contenu de l’élément <label> ou de l’attribut title ou de l’attribut aria-label ou de l’attribut aria-labelledby contient l’intitulé visible.
Si c’est le cas pour chaque champ de formulaire, le test est validé.
Test 11.2.6 Chaque bouton adjacent au champ de formulaire qui fournit une étiquette visible permet-il de connaître la fonction exacte du champ de formulaire auquel il est associé ?
Méthodologie du test
Retrouver dans le document les champs de formulaire dont l’étiquette visible est fournie par un bouton adjacent.
Pour chaque champ de formulaire, vérifier que le contenu visible du bouton est pertinent.
Si c’est le cas pour chaque champ de formulaire, le test est validé.
Notes et cas particuliers
Cas particuliers
Il existe une gestion de cas particuliers pour le test 11.2.5 lorsque :
La ponctuation et les lettres majuscules sont présentes dans le texte de l’intitulé visible : elles peuvent être ignorées dans le nom accessible sans porter à conséquence ;
Le texte de l’intitulé visible sert de symbole : le texte ne doit pas être interprété littéralement au niveau du nom accessible. Le nom doit exprimer la fonction véhiculée par le symbole (par exemple, “B” au niveau d’un éditeur de texte aura pour nom accessible “Mettre en gras”, le signe “>” en fonction du contexte signifiera “Suivant” ou “Lancer la vidéo”). Le cas des symboles mathématiques fait cependant exception (voir la note ci-dessous).
Note : si l’étiquette visible représente une expression mathématique, les symboles mathématiques peuvent être repris littéralement pour servir d’étiquette au nom accessible (ex. : “A>B”). Il est laissé à l’utilisateur le soin d’opérer la correspondance entre l’expression et ce qu’il doit épeler compte tenu de la connaissance qu’il a du fonctionnement de son logiciel de saisie vocale (“A plus grand que B” ou “A supérieur à B”).
Ce cas particulier s’applique également au test 11.9.2.
Les champs de même nature sont regroupés dans une balise possédant un attribut WAI-ARIA role="group".
Les champs de même nature de type radio (<input type="radio">) ou balises possédant un attribut WAI-ARIA role="radio") sont regroupés dans une balise possédant un attribut WAI-ARIA role="radiogroup" ou role="group".
Méthodologie du test
Retrouver dans le document les champs de formulaire de même nature (par exemple un groupe de saisie d’informations d’identité, une série de cases à cocher, une saisie de date sur plusieurs champs successifs…).
Pour chaque groupe de champs de formulaire de même nature, vérifier que ces champs de même nature sont regroupés :
soit dans un élément <fieldset> ;
soit dans un élément possédant un attribut WAI-ARIA role="group" ;
soit dans un élément possédant un attribut WAI-ARIA role="radiogroup" ou "group", s’il s’agit d’éléments <input> de type radio ( ou d’éléments possédant un attribut WAI-ARIA role="radio").
Si c’est le cas pour chaque groupe de champs de formulaire de même nature, le test est validé.
Retrouver dans le document les groupes de champs de formulaire de même nature.
Pour chaque groupe de champs de formulaire de même nature ou pour chacun des champs de même nature qui dispose d’une légende, vérifier que le texte de cette légende est pertinent.
Si c’est le cas pour chaque groupe de champs de formulaire ou pour chacun des champs de même nature, le test est validé.
Retrouver dans le document les champs de formulaire obligatoires qui possèdent un attribut aria-required="true" ou required.
Pour chaque champ de formulaire, vérifier que préalablement à la validation du formulaire :
soit une indication de champ obligatoire est visible et située dans l’étiquette associée au champ ;
soit une indication de champ obligatoire est visible et située dans le passage de texte associé au champ.
Si c’est le cas pour chaque champ de formulaire obligatoire qui possèdent un attribut aria-required="true" ou required, le test est validé.
Test 11.10.3 Les messages d’erreur indiquant l’absence de saisie d’un champ obligatoire vérifient-ils une de ces conditions ?
Le message d’erreur indiquant l’absence de saisie d’un champ obligatoire est visible et permet d’identifier nommément le champ concerné.
Le champ obligatoire dispose de l’attribut aria-invalid="true".
Méthodologie du test
Retrouver dans le document les messages d’erreur indiquant l’absence de saisie d’un champ obligatoire.
Pour chaque message d’erreur, vérifier que :
soit le message d’erreur est visible et permet d’identifier nommément le champ concerné ;
soit le champ obligatoire associé au message d’erreur possède un attribut aria-invalid="true".
Si c’est le cas pour chaque message d’erreur indiquant l’absence de saisie d’un champ obligatoire, le test est validé.
Test 11.10.4 Les champs obligatoires ayant l’attribut aria-invalid="true" vérifient-ils une de ces conditions ?
Le message d’erreur indiquant le caractère invalide de la saisie est visible et situé dans l’étiquette associée au champ.
Le message d’erreur indiquant le caractère invalide de la saisie est visible et situé dans le passage de texte associé au champ.
Méthodologie du test
Retrouver dans le document les champs de formulaire obligatoires qui possèdent un attribut aria-invalid="true".
Pour chaque champ de formulaire, vérifier que :
soit le message d’erreur indiquant le caractère invalide de la saisie est visible et situé dans l’étiquette associée au champ ;
soit le message d’erreur indiquant le caractère invalide de la saisie est visible et situé dans le passage de texte associé au champ.
Si c’est le cas pour chaque champ de formulaire obligatoire qui possède un attribut aria-invalid="true", le test est validé.
Test 11.10.5 Les instructions et indications du type de données et/ou de format obligatoires vérifient-elles une de ces conditions ?
Une instruction ou une indication du type de données et/ou de format obligatoire est visible et permet d’identifier nommément le champ concerné préalablement à la validation du formulaire.
Une instruction ou une indication du type de données et/ou de format obligatoire est visible dans l’étiquette ou le passage de texte associé au champ préalablement à la validation du formulaire.
Méthodologie du test
Retrouver dans le document les champs de formulaire obligatoires auxquels est associée une instruction ou une indication du type de données et/ou de format obligatoire.
Pour chaque champ de formulaire, vérifier que l’instruction ou l’indication du type de données et/ou de format obligatoire est préalablement à la validation du formulaire :
soit visible et permet d’identifier nommément le champ concerné ;
soit visible dans l’étiquette ou le passage de texte associé au champ.
Si c’est le cas pour chaque champ de formulaire obligatoire auquel est associée une instruction ou une indication du type de données et/ou de format obligatoire, le test est validé.
Test 11.10.6 Les messages d’erreurs fournissant une instruction ou une indication du type de données et/ou de format obligatoire des champs vérifient-ils une de ces conditions ?
Le message d’erreur fournissant une instruction ou une indication du type de données et/ou de format obligatoires est visible et identifie le champ concerné.
Le champ dispose de l’attribut aria-invalid="true".
Méthodologie du test
Retrouver dans le document les messages d’erreur fournissant une instruction ou une indication du type de données et/ou de format obligatoire d’un champ.
Pour chaque message d’erreur, vérifier que :
soit le message d’erreur est visible et permet d’identifier nommément le champ concerné ;
soit le champ associé au message d’erreur possède un attribut aria-invalid="true".
Si c’est le cas pour chaque message d’erreur indiquant l’absence de saisie d’un champ obligatoire, le test est validé.
Test 11.10.7 Les champs ayant l’attribut aria-invalid="true" dont la saisie requiert un type de données et/ou de format obligatoires vérifient-ils une de ces conditions ?
Une instruction ou une indication du type de données et/ou de format obligatoire est visible et située dans la balise <label> associée au champ.
Une instruction ou une indication du type de données et/ou de format obligatoire est visible et située dans le passage de texte associé au champ.
Méthodologie du test
Retrouver dans le document les champs de formulaire qui possèdent un attribut aria-invalid="true".
Pour chaque champ de formulaire, vérifier que :
soit une instruction ou une indication du type de données et/ou de format obligatoire est visible et située dans l’élément <label> associé au champ ;
soit une instruction ou une indication du type de données et/ou de format obligatoire est visible et située dans le passage de texte associé au champ.
Si c’est le cas pour chaque champ de formulaire qui possède un attribut aria-invalid="true", le test est validé.
Notes et cas particuliers
Cas particuliers
Le test 11.10.1 et le test 11.10.2 seront considérés comme non applicables lorsque le formulaire comporte un seul champ de formulaire ou qu’il indique les champs optionnels de manière :
Visible ;
Dans la balise <label> ou dans la légende associée au champ.
Dans le cas où l’ensemble des champs d’un formulaire sont obligatoires, les tests 11.10.1 et 11.10.2 restent applicables.
Notes techniques
Dans un long formulaire dont la majorité des champs sont obligatoires, on pourrait constater que ce sont les quelques champs restés facultatifs qui sont explicitement signalés comme tels. Dans ce cas, il faudrait s’assurer que :
Un message précise visuellement en haut de formulaire que « tous les champs sont obligatoires sauf ceux indiqués comme étant facultatifs » ;
Une mention « facultatif » est présente visuellement dans le libellé des champs facultatifs ou dans la légende d’un groupe de champs facultatifs ;
Un attribut required ou aria-required="true" reste associé à chaque champ qui n’est pas concerné par ce caractère facultatif.
La zone possède un rôle WAI-ARIA de type landmark correspondant à sa nature.
La zone possède un titre dont le contenu permet de comprendre la nature du contenu de la zone.
La zone peut être masquée par le biais d’un bouton précédent directement la zone dans l’ordre du code source.
La zone peut être évitée par le biais d’un lien d’évitement précédent directement la zone dans l’ordre du code source.
La zone peut être atteinte par le biais d’un lien d’accès rapide visible ou, à défaut, visible à la prise de focus.
Méthodologie du test
Retrouver dans le document les zones de regroupement de contenus (zones d’en-tête, de navigation principale, de contenu principal, de pied de page et de moteur de recherche).
Pour chaque zone, vérifier que la zone :
soit possède un rôle WAI-ARIA de type landmark correspondant à sa nature ;
soit possède un titre de hiérarchie dont le contenu permet de comprendre la nature du contenu de la zone ;
soit peut être masquée au moyen d’un bouton précédant directement la zone dans l’ordre du code source ;
soit peut être évitée au moyen d’un lien d’évitement précédant directement la zone dans l’ordre du code source ;
soit peut être atteinte au moyen d’un lien d’accès rapide soit visible par défaut, soit visible à la prise de focus lors d’une tabulation.
Si c’est le cas pour chaque zone de regroupement de contenus, le test est validé.
Le lien est situé à la même place dans la présentation.
Le lien se présente toujours dans le même ordre relatif dans le code source.
Le lien est visible ou, à défaut, visible à la prise de focus.
Le lien est fonctionnel.
Méthodologie du test
Retrouver dans le document la zone de contenu principal (indiquée par l’élément main visible).
Vérifier que le lien d’évitement ou d’accès rapide à la zone est :
situé à la même place dans la présentation ;
présent toujours dans le même ordre relatif dans le code source (généré côté client) ;
visible à la prise de focus lors d’une tabulation ;
fonctionnel.
Si c’est le cas, le test est validé.
Notes et cas particuliers
Cas particuliers
Il existe une gestion de cas particuliers lorsque le site web est constitué d’une seule page.
Dans ce cas de figure, l’obligation de la présence d’un lien d’accès rapide est liée au contexte de la page : présence ou absence de navigation ou de contenus additionnels, par exemple. Le critère peut être considéré comme non applicable lorsqu’il est avéré qu’un lien d’accès rapide est inutile.
Parcourir dans le document l’ensemble des contenus au moyen de la touche de tabulation vers l’avant (touche Tab) et vers l’arrière (touches Maj+Tab).
Vérifier que l’ordre de déplacement du focus reste cohérent relativement au contenu considéré (par exemple, l’ordre de tabulation dans une fenêtre modale ne doit considérer que les éléments d’interface présents au sein de cette fenêtre).
Si c’est le cas, le test est validé.
Note : il n’est pas obligatoire que la tabulation suive l’ordre de lecture naturel (de gauche à droite et de haut en bas par exemple) tant que les éléments sont accessibles dans un ordre cohérent.
Retrouver dans le document l’ensemble des contenus insérés au moyen d’un script (affichage d’éléments masqués, mise jour de contenu via AJAX par exemple).
Positionner la tabulation sur l’élément déclencheur et l’activer.
Après l’affichage du contenu mis à jour, vérifier que la tabulation reste cohérente (repositionnement correct du focus).
critère 12.9 Dans chaque page web, la navigation ne doit pas contenir de piège au clavier. Cette règle est-elle respectée ? Niveau de conformité A
Tests
Test 12.9.1 Dans chaque page web, chaque élément recevant le focus vérifie-t-il une de ces conditions ?
Il est possible d’atteindre l’élément suivant ou précédent pouvant recevoir le focus avec la touche de tabulation.
L’utilisateur est informé d’un mécanisme fonctionnel permettant d’atteindre au clavier l’élément suivant ou précédent pouvant recevoir le focus.
Méthodologie du test
Retrouver dans le document l’ensemble des éléments d’interface susceptibles de recevoir le focus (au moyen de la tabulation ou au moyen d’un script).
Pour chaque élément d’interface, vérifier que l’utilisateur peut atteindre l’élément suivant ou précédent pouvant recevoir le focus :
soit au moyen de la touche de tabulation (Tab ou Maj+Tab) ;
soit au moyen d’une autre interaction clavier dont l’utilisateur est informé (par exemple, les flèches de direction).
Si c’est le cas pour chaque élément d’interface, le test est validé.
Note : certains éléments d’interface complexes, comme un groupe de boutons radio, une liste de sélection et tous les composants développés avec WAI-ARIA font appel à des navigations optimisées qui utilisent généralement les flèches de direction pour passer d’une partie du composant à l’autre. Par exemple, dans un groupe de boutons radio les options sont navigables avec les flèches de direction. De même dans un système d’onglets l’utilisateur active les onglets avec les flèches de direction. Le test sur le piège au clavier se limite alors à vérifier que le composant est atteint avec la tabulation et qu’il est possible de passer au composant suivant ou revenir au composant précédent.
critère 12.11 Dans chaque page web, les contenus additionnels apparaissant au survol, à la prise de focus ou à l’activation d’un composant d’interface sont-ils si nécessaire atteignables au clavier ? Niveau de conformité AA
Tests
Test 12.11.1 Dans chaque page web, les contenus additionnels apparaissant au survol, à la prise de focus ou à l’activation d’un composant d’interface sont-ils si nécessaire atteignables au clavier ?
Méthodologie du test
Retrouver dans le document l’ensemble des contenus additionnels apparaissant au survol, à la prise de focus ou à l’activation d’un composant d’interface
Pour chaque contenu additionnel, s’il contient des composants d’interface avec lesquels l’utilisateur peut interagir au clavier (par exemple, une infobulle personnalisée qui propose un lien dans son contenu), vérifier que ces composants d’interface sont atteignables au clavier
Si c’est le cas pour chaque contenu additionnel, le test est validé.
Notes et cas particuliers
Notes techniques
Ce critère adresse les situations où un contenu additionnel contient des composants d’interface avec lesquels il doit être possible d’interagir au clavier. Par exemple, une infobulle personnalisée qui propose un lien dans son contenu.
critère 13.1 Pour chaque page web, l’utilisateur a-t-il le contrôle de chaque limite de temps modifiant le contenu (hors cas particuliers) ? Niveau de conformité A
Tests
Test 13.1.1 Pour chaque page web, chaque procédé de rafraîchissement (balise <object>, balise <embed>, balise <svg>, balise <canvas>, balise <meta>) vérifie-t-il une de ces conditions (hors cas particuliers) ?
L’utilisateur peut arrêter ou relancer le rafraîchissement.
L’utilisateur peut augmenter la limite de temps entre deux rafraîchissements de dix fois, au moins.
L’utilisateur est averti de l’imminence du rafraîchissement et dispose de vingt secondes, au moins, pour augmenter la limite de temps avant le prochain rafraîchissement.
La limite de temps entre deux rafraîchissements est de vingt heures, au moins.
Méthodologie du test
Retrouver dans le document les rafraîchissements initiés dans le contenu par un élément <object>, <embed>, <svg>, <canvas> ou par un élément <meta http-equiv="refresh" content="[compteur]"> (dans l’élément <head> de la page).
Pour chaque rafraîchissement, vérifier que :
soit la présence d’un mécanisme permet à l’utilisateur de stopper et de relancer le rafraîchissement ;
soit la présence d’un mécanisme permet à l’utilisateur d’augmenter la limite de temps entre deux rafraîchissements de dix fois, au moins ;
soit la présence d’un mécanisme qui avertit l’utilisateur de l’imminence du rafraîchissement, laisse 20 secondes, au moins, à l’utilisateur, pour augmenter la limite de temps avant le prochain rafraîchissement ;
soit la limite de temps entre deux rafraîchissements est de vingt heures, au moins.
Si c’est le cas, le test est validé.
Test 13.1.2 Pour chaque page web, chaque procédé de redirection effectué via une balise <meta> est-il immédiat (hors cas particuliers) ?
Méthodologie du test
Retrouver dans le document une redirection automatique initiée par un élément <meta http-equiv="refresh" content="0;URL='[URL ciblée]'" />.
Vérifier que la redirection est immédiate.
Si c’est le cas, le test est validé.
Test 13.1.3 Pour chaque page web, chaque procédé de redirection effectué via un script vérifie-t-il une de ces conditions (hors cas particuliers) ?
L’utilisateur peut arrêter ou relancer la redirection.
L’utilisateur peut augmenter la limite de temps avant la redirection de dix fois, au moins.
L’utilisateur est averti de l’imminence de la redirection et dispose de vingt secondes, au moins, pour augmenter la limite de temps avant la prochaine redirection.
La limite de temps avant la redirection est de vingt heures, au moins.
Méthodologie du test
Retrouver dans le document les redirections automatiques initiées par un script (sous la forme d’un décompte par exemple).
Pour chaque redirection automatique, vérifier que :
Soit la présence d’un mécanisme permet à l’utilisateur de stopper et relancer la redirection.
Soit la présence d’un mécanisme permet à l’utilisateur d’augmenter la limite de temps avant le rafraîchissement de dix fois, au moins.
Soit la présence d’un mécanisme qui avertit l’utilisateur de l’imminence du rafraîchissement, laisse 20 secondes, au moins, à l’utilisateur, pour augmenter la limite de temps avant le prochain rafraîchissement.
Soit la limite de temps avant la redirection est de vingt heures, au moins.
Si c’est le cas, le test est validé.
Test 13.1.4 Pour chaque page web, chaque procédé limitant le temps d’une session vérifie-t-il une de ces conditions (hors cas particuliers) ?
L’utilisateur peut supprimer la limite de temps.
L’utilisateur peut augmenter la limite de temps.
La limite de temps avant la fin de la session est de vingt heures au moins.
Méthodologie du test
Retrouver dans le document les procédés limitant le temps d’une session (par exemple, après une authentification).
Pour chaque procédé, vérifier que :
soit la présence d’un mécanisme permet à l’utilisateur de supprimer la limite de temps ;
soit la présence d’un mécanisme permet à l’utilisateur d’augmenter la limite de temps ;
soit la limite de temps est de vingt heures, au moins.
Si c’est le cas, le test est validé.
Notes et cas particuliers
Cas particuliers
Il existe une gestion de cas particuliers lorsque la limite de temps est essentielle, notamment lorsqu’elle ne pourrait pas être supprimée sans changer fondamentalement le contenu ou les fonctionnalités liées au contenu.
Dans ces situations, le critère est non applicable. Par exemple, le rafraîchissement d’un flux RSS dans une page n’est pas une limite de temps essentielle ; le critère est applicable. En revanche, une redirection automatique qui amène vers la nouvelle version d’une page à partir d’une URL obsolète est essentielle ; le critère est non applicable.
Test 13.7.1 Dans chaque page web, chaque image ou élément multimédia (balise <video>, balise <img>, balise <svg>, balise <canvas>, balise <embed> ou balise <object>) qui provoque un changement brusque de luminosité ou un effet de flash vérifie-t-il une de ces conditions ?
La fréquence de l’effet est inférieure à 3 par seconde.
La surface totale cumulée des effets est inférieure ou égale à 21824 pixels.
Méthodologie du test
Retrouver dans le document les contenus clignotants ou qui provoquent des effets de flash de type image animée, vidéo (cf. note) ou animation (éléments <img>, <svg>, <canvas>, <embed>, <object> ou <video>).
Pour chaque contenu clignotant ou provoquant des effets de flash, vérifier que :
soit la fréquence de l’effet est inférieur à 3 par seconde ;
soit la surface cumulée est inférieure à 21824 pixels.
Si c’est le cas pour chaque contenu clignotant ou provoquant des effets de flash, le test est validé.
Note : l’évaluation de ce critère peut être complexe. Lorsque l’effet est géré par un script ou au moyen de CSS, l’analyse du code est suffisante. L’outil PEAT permet d’analyser les vidéos au format .avi, par exemple. Un exemple de vidéo ayant provoqué des crises d’épilepsie peut être consulté ici : London 2012 Olympics Seizure.
critère 13.8 Dans chaque page web, chaque contenu en mouvement ou clignotant est-il contrôlable par l’utilisateur ? Niveau de conformité A
Tests
Test 13.8.1 Dans chaque page web, chaque contenu en mouvement déclenché automatiquement, vérifie-t-il une de ces conditions ?
La durée du mouvement est inférieure ou égale à 5 secondes.
L’utilisateur peut arrêter et relancer le mouvement.
L’utilisateur peut afficher et masquer le contenu en mouvement.
L’utilisateur peut afficher la totalité de l’information sans le mouvement.
Méthodologie du test
Retrouver dans le document les contenus en mouvement (obtenus au moyen d’une image, d’un script ou d’un effet CSS) déclenchés automatiquement au chargement de la page ou lors de l’affichage d’un contenu (cf. note).
Pour chaque contenu, vérifier que :
soit la durée du mouvement est inférieure à 5 secondes ;
soit la présence d’un mécanisme (un bouton, par exemple) permet d’arrêter et de relancer le mouvement ;
soit la présence d’un mécanisme (un bouton, par exemple) permet de cacher et d’afficher à nouveau le contenu en mouvement ;
soit la présence d’un mécanisme (un bouton, par exemple) permet d’afficher la totalité du contenu sans mouvement.
Si c’est le cas pour chaque contenu en mouvement, le test est validé.
Test 13.8.2 Dans chaque page web, chaque contenu clignotant déclenché automatiquement, vérifie-t-il une de ces conditions ?
La durée du clignotement est inférieure ou égale à 5 secondes.
L’utilisateur peut arrêter et relancer le clignotement.
L’utilisateur peut afficher et masquer le contenu clignotant.
L’utilisateur peut afficher la totalité de l’information sans le clignotement.
Méthodologie du test
Retrouver dans le document les contenus clignotants (obtenus au moyen d’une image, d’un script ou d’un effet CSS) déclenchés automatiquement au chargement de la page ou lors de l’affichage d’un contenu (cf. note).
Pour chaque contenu, vérifier que :
soit la durée du clignotement est inférieure à 5 secondes ;
soit la présence d’un mécanisme (un bouton, par exemple) permet d’arrêter et de relancer le clignotement ;
soit la présence d’un mécanisme (un bouton, par exemple) permet de cacher et d’afficher à nouveau le contenu clignotant ;
soit la présence d’un mécanisme (un bouton, par exemple) permet d’afficher la totalité du contenu clignotant.
Si c’est le cas pour chaque contenu clignotant, le test est validé.
Note : l’arrêt ou la mise en pause d’un contenu en mouvement ou clignotant au moyen de la prise de focus (par exemple, l’effet est suspendu uniquement pendant la prise de focus) n’est pas considéré comme un procédé conforme. Dans certains cas, le mouvement ne peut pas être arrêté, par exemple dans le cas d’une barre de progression, dans ce cas, le critère est non applicable.