Critères du RGAA 3 2017 (Référentiel Général d'Amélioration de l'Accessibilité), version web par Tanaguru

Ce site web a pour vocation de présenter le RGAA sous une forme différente de la version officielle, qui nous convient mieux chez Tanaguru. Il présente les mêmes contenus que la version officielle. Cependant, des coquilles ont pu se glisser dans nos pages. N'hésitez pas à nous les signaler sur le projet Github !

Mode d'emploi

Ce référentiel s’applique à tout contenu HTML (HTML4, XHTML1 et HTML5). Il utilise, pour certains tests une base de référence prenant en compte un ensemble de technologies d’assistance, de navigateurs et de systèmes d’exploitation sur lesquels l’accessibilité des composants d’interface développés par JavaScript doit être vérifiée notamment. Une description détaillée de la base de référence est disponible ici : base de référence.

Note importante pour tout contenu antérieur à la spécification HTML5 :

Lorsque le code HTML de la page n’est pas du HTML5, les éléments HTML5 (balises et attributs) exigés par un critère ou test sont non applicables. Tous les autres critères ou tests restent applicables, y compris les dispositifs ARIA. Les critères et tests suivants sont non applicables :

  • Critère 1.10 ;
  • Critère 9.2 ;
  • Test 11.10.1 (condition 2 relative à l’attribut HTML5 required).

Méthode de validation

Le niveau de conformité est établi au niveau des critères selon ces statuts :

  • Conforme (C) : l’ensemble des tests applicables sont réussis ;
  • Non Conforme (NC) : un test applicable est échoué, au moins ;
  • Non Applicable (NA) : il n’y a pas de contenu concerné par le critère.

RGAA propose, en plus de ces trois statuts de validation, deux statuts complémentaires :

  • Dérogé (D) : il existe des contenus dérogés applicables au critère ;
  • Non Testé (NT) : le critère n’a pas été testé.

Vous pouvez consulter, à ce sujet, le guide d’accompagnement : Comment vérifie-t-on la conformité au RGAA ?

1. Images

Recommandation

Donner à chaque image porteuse d’information une alternative textuelle pertinente et une description détaillée si nécessaire. Lier les légendes à leurs images. Remplacer les images textes par du texte stylé lorsque c’est possible.

Mots clés
  • Principe : Perceptible

Critère 1.1 [A] Chaque image a-t-elle une alternative textuelle ?

  • Test 1.1.1 : Chaque image (balise img) a-t-elle un attribut alt ?
  • Test 1.1.2 : Chaque zone (balise area) d’une image réactive a-t-elle un attribut alt ?
  • Test 1.1.3 : Chaque bouton de type image (balise input avec l’attribut type="image") a-t-il un attribut alt ?
  • Test 1.1.4 : Chaque zone cliquable d’une image réactive coté serveur est-t-elle doublée d’un lien dans la page ?

Critère 1.2 [A] Pour chaque image de décoration ayant une alternative textuelle, cette alternative est-elle vide ?

  • Test 1.2.1 : Chaque image (balise img) de décoration, sans légende, et ayant un attribut alt, vérifie-t-elle ces conditions ?
    • Le contenu de l’attribut alt est vide (alt="") ;
    • L’image de décoration ne possède pas d’attribut title ;
    • La balise img est dépourvue de rôle, propriété ou état ARIA visant à labelliser l’image (aria-label, aria-describedby, aria-labelledby par exemple).
  • Test 1.2.2 : Chaque zone non cliquable (balise area sans attribut href) de décoration, et ayant un attribut alt, vérifie-t-elle ces conditions ?
    • Le contenu de l’attribut alt est vide (alt="") ;
    • La zone non cliquable ne possède pas d’attribut title ;
    • La balise area est dépourvue de rôle, propriété ou état ARIA visant à labelliser l’image (aria-label, aria-describedby, aria-labelledby par exemple).
  • Test 1.2.3 : Chaque image objet (balise object avec l’attribut type="image/…") de décoration, sans légende, vérifie-t-elle ces conditions ?
    • La balise object possède un attribut aria-hidden="true" ;
    • L’alternative textuelle entre <object> et </object> est vide ;
    • La balise object ou l'un de ses enfants est dépourvue d'attribut title ;
    • \
    • La balise object ou l’un de ses enfants est dépourvue de rôle, propriété ou état ARIA visant à labelliser l’image (aria-label, aria-describedby, aria-labelledby par exemple).
  • Test 1.2.4 : Chaque image vectorielle (balise svg) de décoration, sans légende, vérifie-t-elle ces conditions ?
    • La balise svg possède un attribut aria-hidden="true" ;
    • Les balises title et desc sont absentes ou vides ;
    • La balise svg ou l’un de ses enfants est dépourvue d’attribut title ;
    • La balise svg ou l’un de ses enfants est dépourvue de rôle, propriété ou état ARIA visant à labelliser l’image vectorielle (aria-label, aria-describedby, aria-labelledby par exemple).
  • Test 1.2.5 : Chaque image bitmap (balise canvas) de décoration, sans légende, vérifie-t-elle ces conditions ?
    • La balise canvas possède un attribut aria-hidden="true" ;
    • Le contenu entre <canvas> et </canvas> est dépourvue de contenus textuels ;
    • La balise canvas ou l’un de ses enfants est dépourvue d’attribut title ;
    • La balise canvas ou l’un de ses enfants est dépourvue de rôle, propriété ou état ARIA visant à labelliser l’image (aria-label, aria-describedby, aria-labelledby par exemple).
  • Test 1.2.6 : Chaque image embarquée (balise embed avec l’attribut type="image/…") de décoration, sans légende, vérifie-t-elle ces conditions ?
    • La balise embed possède un attribut aria-hidden="true" ;
    • La balise La balise embed ou l’un de ses enfants est dépourvue d’attribut title ;
    • \
    • La balise embed ou l’un de ses enfants est dépourvue de rôle, propriété ou état ARIA visant à labelliser l’image (aria-label, aria-describedby, aria-labelledby par exemple).

Critère 1.3 [A] Pour chaque image porteuse d’information ayant une alternative textuelle, cette alternative est-elle pertinente (hors cas particuliers) ?

  • Test 1.3.1 : Chaque image (balise img) porteuse d’information, ayant un attribut alt, vérifie-t-elle ces conditions (hors cas particuliers) ?
    • Le contenu de l’attribut alt est pertinent ;
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu de la propriété aria-label est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu du passage de texte lié via la propriété aria-labelledby est identique au contenu de l’attribut alt.
  • Test 1.3.2 : Chaque zone (balise area) d’une image réactive porteuse d’information, ayant un attribut alt, vérifie-t-elle ces conditions (hors cas particuliers) ?
    • Le contenu de l’attribut alt est pertinent ;
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu de la propriété aria-label est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu du passage de texte lié via la propriété aria-labelledby est identique au contenu de l’attribut alt.
  • Test 1.3.3 : Chaque bouton de type image (balise input avec l’attribut type="image"), ayant un attribut alt, vérifie-t-il ces conditions (hors cas particuliers) ?
    • Le contenu de l’attribut alt est pertinent ;
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu de la propriété aria-label est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu du passage de texte lié via la propriété aria-labelledby est identique au contenu de l’attribut alt.
  • Test 1.3.4 : Chaque image objet (balise object avec l’attribut type="image/…") porteuse d’information vérifie-t-elle une de ces conditions (hors cas particuliers) ?
    • L’image objet est immédiatement suivie d’un lien adjacent permettant d’afficher une page ou un passage de texte contenant une alternative pertinente. ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image objet par un texte alternatif pertinent ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image objet par une image possédant une alternative pertinente.
  • Test 1.3.5 : Chaque image objet (balise object avec l’attribut type="image/…") porteuse d’information, qui utilise une propriété aria-label, aria-labelledby ou un attribut title, vérifie-t-elle ces conditions (hors cas particuliers) ?
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut aria-label ;
    • S’il est présent, le contenu de l’attribut title est identique au passage de texte lié par la propriété aria-labelledby.
  • Test 1.3.6 : Chaque image embarquée (balise embed avec l’attribut type="image/…") porteuse d’information vérifie-t-elle une de ces conditions (hors cas particuliers) ?
    • L’image embarquée est immédiatement suivie d’un lien adjacent permettant d’afficher une page ou un passage de texte contenant une alternative pertinente ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image embarquée par un texte alternatif pertinent ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image embarquée par une image possédant une alternative pertinente.
  • Test 1.3.7 : Chaque image embarquée (balise embed avec l’attribut type="image/…") porteuse d’information, qui utilise une propriété aria-label, aria-labelledby ou un attribut title, vérifie-t-elle ces conditions (hors cas particuliers) ?
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut aria-label ;
    • S’il est présent, le contenu de l’attribut title est identique au passage de texte lié par la propriété aria-labelledby.
  • Test 1.3.8 : Chaque image vectorielle (balise svg) porteuse d’information, en l’absence d’alternative, vérifie-t-elle ces conditions (hors cas particuliers) ?
    • La balise svg possède un role="img" ;
    • La balise svg possède une propriété aria-label dont le contenu est pertinent et identique à l’attribut title s’il est présent ;
    • La balise svg possède une balise desc dont le contenu est pertinent et contient un passage de texte identique à la propriété aria-label.
  • Test 1.3.9 : Pour chaque image vectorielle (balise svg) porteuse d’information et possédant une alternative, cette alternative est-elle correctement restituée par les technologies d’assistance ?
  • Test 1.3.10 : Chaque image bitmap (balise canvas) porteuse d’information vérifie-t-elle une de ces conditions (hors cas particuliers) ?
    • Le contenu de l’alternative (contenu entre <canvas> et </canvas>) est pertinent ;
    • L’image bitmap est immédiatement suivie d’un lien adjacent permettant d’afficher une page ou un passage de texte contenant une alternative pertinente ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image bitmap par un texte alternatif pertinent ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image bitmap par une image possédant une alternative pertinente.
  • Test 1.3.11 : Chaque image bitmap (balise canvas) porteuse d’information, qui utilise une propriété aria-label, aria-labelledby ou un attribut title, vérifie-t-elle ces conditions (hors cas particuliers) ?
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut aria-label ;
    • S’il est présent, le contenu de l’attribut title est identique au passage de texte lié par la propriété aria-labelledby.
  • Test 1.3.12 : Pour chaque image bitmap (balise canvas) porteuse d’information et possédant une alternative (contenu entre <canvas> et </canvas>), cette alternative est-elle correctement restituée par les technologies d’assistance ?
  • Test 1.3.13 : Pour chaque image porteuse d’information et ayant une alternative textuelle, l’alternative textuelle est-elle courte et concise (hors cas particuliers) ?

Critère 1.4 [A] 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 ?

  • Test 1.4.1 : Chaque image (balise img) utilisée comme CAPTCHA ou comme image-test, ayant un attribut alt, vérifie-t-elle ces conditions ?
    • Le contenu de l’attribut alt permet de comprendre la nature et la fonction de l’image ;
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu de la propriété aria-label est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu du passage de texte lié via la propriété aria-labelledby est identique au contenu de l’attribut alt.
  • Test 1.4.2 : Chaque zone (balise area) d’une image réactive utilisée comme CAPTCHA ou comme image-test, ayant un attribut alt, vérifie-t-elle ces conditions ?
    • Le contenu de l’attribut alt permet de comprendre la nature et la fonction de la zone ;
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu de la propriété aria-label est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu du passage de texte lié via la propriété aria-labelledby est identique au contenu de l’attribut alt.
  • Test 1.4.3 : Chaque bouton associé à une image (balise input avec l’attribut type="image") utilisée comme CAPTCHA ou comme image-test, ayant un attribut alt, vérifie-t-il ces conditions ?
    • Le contenu de l’attribut alt permet de comprendre la nature et la fonction du bouton ;
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu de la propriété aria-label est identique au contenu de l’attribut alt ;
    • S’il est présent, le contenu du passage de texte lié via la propriété aria-labelledby est identique au contenu de l’attribut alt.
  • Test 1.4.4 : Chaque image objet (balise object avec l’attribut type="image/…") utilisée comme CAPTCHA ou comme image-test vérifie-t-elle une de ces conditions ?
    • L’image objet est immédiatement suivie d’un lien adjacent permettant d’afficher une page ou un passage de texte contenant une alternative permettant de comprendre la nature et la fonction de l’image ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image objet par un texte alternatif permettant de comprendre la nature et la fonction de l’image ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image objet par une image possédant une alternative permettant de comprendre la nature et la fonction de l’image.
  • Test 1.4.5 : Chaque image objet (balise object avec l’attribut type="image/…") utilisée comme CAPTCHA ou comme image-test, qui utilise une propriété aria-label, aria-labelledby ou un attribut title, vérifie-t-elle ces conditions ?
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut aria-label ;
    • S’il est présent, le contenu de l’attribut title est identique au passage de texte lié par la propriété aria-labelledby.
  • Test 1.4.6 : Chaque image embarquée (balise embed avec l’attribut type="image/…") utilisée comme CAPTCHA ou comme image-test vérifie-t-elle une de ces conditions ?
    • L’image embarquée est immédiatement suivie d’un lien adjacent permettant d’afficher une page ou un passage de texte contenant une alternative permettant de comprendre la nature et la fonction de l’image ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image embarquée par un texte alternatif permettant de comprendre la nature et la fonction de l’image ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image embarquée par une image possédant une alternative permettant de comprendre la nature et la fonction de l’image.
  • Test 1.4.7 : Chaque image embarquée (balise embed avec l’attribut type="image/…") utilisée comme CAPTCHA ou comme image-test, qui utilise une propriété aria-label, aria-labelledby ou un attribut title, vérifie-t-elle ces conditions ?
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut aria-label ;
    • S’il est présent, le contenu de l’attribut title est identique au passage de texte lié par la propriété aria-labelledby.
  • Test 1.4.8 : Chaque image vectorielle (balise svg) utilisée comme CAPTCHA ou comme image-test, en l’absence d’alternative, vérifie-t-elle ces conditions ?
    • La balise svg possède un role="img" ;
    • La balise svg possède une propriété aria-label dont le contenu permet de comprendre la nature et la fonction de l’image et identique à l’attribut title s’il est présent ;
    • La balise svg possède une balise desc dont le contenu permet de comprendre la nature et la fonction de l’image et identique à la propriété aria-label ;
    • Un lien adjacent permet d’accéder à une alternative dont le contenu permet de comprendre la nature et la fonction de l’image et identique à la propriété aria-label.
  • Test 1.4.9 : Pour chaque image vectorielle (balise svg) utilisée comme CAPTCHA ou comme image-test, possédant une alternative, cette alternative est-elle correctement restituée par les technologies d’assistance ?
  • Test 1.4.10 Chaque image bitmap (balise canvas) utilisée comme CAPTCHA ou comme image-test vérifie-t-elle une de ces conditions ?
    • Le contenu de l’alternative (contenu entre <canvas> et </canvas>) permet de comprendre la nature et la fonction de l’image ;
    • L’image bitmap est immédiatement suivie d’un lien adjacent permettant d’afficher une page ou un passage de texte contenant une alternative permettant de comprendre la nature et la fonction de l’image ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image bitmap par un texte alternatif permettant de comprendre la nature et la fonction de l’image ;
    • Un mécanisme permet à l’utilisateur de remplacer l’image bitmap par une image possédant une alternative permettant de comprendre la nature et la fonction de l’image.
  • Test 1.4.11 : Chaque image bitmap (balise canvas) utilisée comme CAPTCHA ou comme image-test, qui utilise une propriété aria-label, aria-labelledby ou un attribut title, vérifie-t-elle ces conditions ?
    • S’il est présent, le contenu de l’attribut title est identique au contenu de l’attribut aria-label ;
    • S’il est présent, le contenu de l’attribut title est identique au passage de texte lié par la propriété aria-labelledby.
  • Test 1.4.12 : Pour chaque image bitmap (balise canvas) utilisée comme CAPTCHA ou comme image-test, ayant une alternative (contenu entre <canvas> et </canvas>), cette, l’alternative textuelle est-elle correctement restituée par les technologies d’assistance ?

Critère 1.5 [A] Pour chaque image utilisée comme CAPTCHA, une solution d’accès alternatif au contenu ou à la fonction du CAPTCHA est-elle présente ?

  • Test 1.5.1 : Chaque image (balises img, area, object, embed, svg, canvas) 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é sécurisée par le CAPTCHA.
  • 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.

Critère 1.6 [A] Chaque image porteuse d’information a-t-elle, si nécessaire, une description détaillée ?

  • Test 1.6.1 : Chaque image (balise img) porteuse d’information, qui nécessite une description détaillée, vérifie-t-elle une de ces conditions ?
    • Il existe un attribut longdesc qui donne l’adresse (url) d’une page contenant la description détaillée ;
    • Il existe un attribut alt contenant la référence à une description détaillée adjacente à l’image ;
    • Il existe un lien adjacent (via une url ou une ancre) permettant d’accéder au contenu de la description détaillée.
  • Test 1.6.2 : Chaque image objet (balise object avec l’attribut type="image/…") porteuse d’information, qui nécessite une description détaillée, vérifie-t-elle une de ces conditions ?
    • Il existe un lien adjacent (via une url ou une ancre) permettant d’accéder au contenu de la description détaillée ;
    • Il existe une description détaillée clairement identifiable adjacente à l’image objet.
  • Test 1.6.3 : Chaque image embarquée (balise embed) porteuse d’information, qui nécessite une description détaillée, vérifie-t-elle une de ces conditions ?
    • Il existe un lien adjacent (via une url ou une ancre) permettant d’accéder au contenu de la description détaillée ;
    • Il existe une description détaillée clairement identifiable adjacente à l’image embarquée.
  • Test 1.6.4 : Chaque bouton de type image (balise input avec l’attribut type="image") porteur d’information, qui nécessite une description détaillée, vérifie-t-il une de ces conditions ?
    • Il existe un attribut alt contenant la référence à une description détaillée adjacente à l’image ;
    • Il existe un lien adjacent (via une url ou une ancre) permettant d’accéder au contenu de la description détaillée ;
    • Il existe une propriété aria-describedby référençant un passage de texte faisant office de description détaillée.
  • Test 1.6.5 : Chaque bouton de type image (balise input avec l’attribut type="image") porteur d’information, qui implémente une référence à une description détaillée via une propriété aria-describedby, vérifie-t-il ces conditions ?
    • Le passage de texte est identifié via un attribut id ;
    • La valeur de l’attribut id est unique ;
    • La valeur de la propriété ARIA aria-describedby est égale à la valeur de l’attribut id.
  • Test 1.6.6 : Chaque image vectorielle (balise svg) porteuse d’information, qui nécessite une description détaillée, vérifie-t-elle une de ces conditions ?
    • Il existe une propriété aria-label contenant une référence à une description détaillée adjacente à l’image vectorielle ;
    • La balise title contient la description détaillée ;
    • Il existe une balise desc contenant la description détaillée ;
    • Il existe un lien adjacent (via une url ou une ancre) permettant d’accéder au contenu de la description détaillée.
  • Test 1.6.7 : Pour chaque image vectorielle (balise svg) porteuse d’information, qui implémente une référence à une description détaillée adjacente via une propriété aria-label ou une balise desc, cette référence est-elle correctement restituée par les technologies d’assistance ?
  • Test 1.6.8 : Chaque image bitmap (balise canvas), qui nécessite une description détaillée, vérifie-t-elle une de ces conditions ?
    • Il existe un passage de texte entre <canvas> et </canvas> contenant une 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 ;
    • Il existe un lien adjacent (via une url ou une ancre) permettant d’accéder au contenu de la description détaillée.
  • Test 1.6.9 : 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 ?
  • Test 1.6.10 : Pour chaque image (balise img, area, object, embed, svg, canvas) porteuse d’information, qui implémente une description détaillée et qui utilise une propriété aria-describedby, la propriété aria-describedby référence-t-elle la description détaillée ?

Critère 1.7 [A] Pour chaque image porteuse d’information ayant une description détaillée, cette description est-elle pertinente ?

  • Test 1.7.1 : Chaque image (balise img) porteuse d’information, ayant une description détaillée, vérifie-t-elle ces conditions ?
    • La description détaillée via l’adresse référencée dans l’attribut longdesc est pertinente ;
    • La description détaillée dans la page et signalée dans l’attribut alt est pertinente ;
    • La description détaillée via un lien adjacent est pertinente.
  • Test 1.7.2 : Chaque bouton de type image (balise input avec l’attribut type="image") porteur d’information, ayant une description détaillée, vérifie-t-il ces conditions ?
    • La description détaillée dans la page et signalée dans l’attribut alt est pertinente ;
    • La description détaillée via un lien adjacent est pertinente ;
    • Le passage de texte référencé via la propriété aria-describedby est pertinent.
  • Test 1.7.3 : Chaque image objet (balise object avec l’attribut type="image/…") porteuse d’information, ayant une description détaillée, vérifie-t-elle ces conditions ?
    • La description détaillée adjacente à l’image objet est pertinente ;
    • La description détaillée via un lien adjacent est pertinente.
  • Test 1.7.4 : Chaque image embarquée (balise embed avec l’attribut type="image/…") porteuse d’information, ayant une description détaillée, vérifie-t-elle ces conditions ?
    • La description détaillée adjacente à l’image embarquée est pertinente ;
    • La description détaillée via un lien adjacent est pertinente.
  • Test 1.7.5 : Chaque image vectorielle (balise svg) porteuse d’information, ayant une description détaillée, vérifie-t-elle ces conditions ?
    • La description détaillée adjacente à l'image vectorielle et signalée dans la propriété aria-label ou la balise desc est pertinente.
    • La description détaillée contenue dans la balise desc est pertinente ;
    • La description détaillée via un lien adjacent est pertinente.
  • Test 1.7.6 : Pour chaque image vectorielle (balise svg) porteuse d’information, ayant une description détaillée implémentée via la balise desc, cette description détaillée est-elle correctement restituée par les technologies d’assistance ?
  • Test 1.7.7 : Chaque image bitmap (balise canvas) porteuse d’information, ayant une description détaillée, vérifie-t-elle ces conditions ?
    • La description détaillée adjacente à l’image bitmap est pertinente ;
    • La description détaillée contenue entre <canvas> et </canvas> est pertinente ;
    • La description détaillée via un lien adjacent est pertinente.
  • Test 1.7.8 : Pour chaque image bitmap (balise canvas) porteuse d’information, ayant une description détaillée entre <canvas> et </canvas>, cette description détaillée est-elle correctement restituée par les technologies d’assistance ?

Critère 1.8 [AA] Chaque image texte porteuse d’information, en l’absence d’un mécanisme de remplacement, doit si possible être remplacée par du texte stylé. Cette règle est-elle respectée (hors cas particuliers) ?

Critère 1.9 [AAA] Chaque image texte porteuse d’information, doit si possible être remplacée par du texte stylé. Cette règle est-elle respectée (hors cas particuliers) ?

Critère 1.10 [A] Chaque légende d’image est-elle, si nécessaire, correctement reliée à l’image correspondante ?

  • Test 1.10.1 : Chaque image légendée (balise img ou input avec l’attribut type="image" associée à une légende adjacente) vérifie-t-elle, si nécessaire, ces conditions ?
    • L’image (balise img) et sa légende sont contenues dans une balise figure ;
    • La balise figure possède un attribut role="group" ;
    • Le contenu de l’attribut alt de l’image contient une référence à la légende adjacente.
  • Test 1.10.2 : Chaque image objet légendée (balise object avec l’attribut type="image/…" associée à une légende adjacente) vérifie-t-elle, si nécessaire, ces conditions ?
    • L’image objet (balise object) et sa légende sont contenues dans une balise figure ;
    • La balise figure possède un attribut role="group".
  • Test 1.10.3 : Chaque image embarquée légendée (balise embed associée à une légende adjacente) vérifie-t-elle, si nécessaire, ces conditions ?
    • L’image embarquée (balise embed) et sa légende sont contenues dans une balise figure ;
    • La balise figure possède un attribut role="group" ;
    • L’alternative contient une référence à la légende adjacente.
  • Test 1.10.4 : Chaque image vectorielle légendée (balise svg associée à une légende adjacente) vérifie-t-elle, si nécessaire, ces conditions ?
    • L’image vectorielle (balise svg) et sa légende sont contenues dans une balise figure ;
    • La balise figure possède un role="group" ;
    • Le contenu de la propriété aria-label ou de la balise desc de l’image vectorielle contient une référence à la légende adjacente.
  • Test 1.10.5 : Chaque image bitmap légendée (balise canvas associée à une légende adjacente) vérifie-t-elle, si nécessaire, ces conditions ?
    • L’image bitmap (balise canvas) et sa légende sont contenues dans une balise figure ;
    • La balise figure possède un attribut role="group" ;
    • Le contenu entre <canvas> et </canvas> de l’image bitmap contient une référence à la légende adjacente.

2. Cadres

Recommandation

Donner à chaque cadre en ligne un titre pertinent.

Mots clés
  • Principe : Robuste

Critère 2.1 [A] Chaque cadre en ligne a-t-il un titre de cadre ?

  • Test 2.1.1 : Chaque cadre en ligne (balise iframe) a-t-il un attribut title ?

Critère 2.2 [A] Pour chaque cadre en ligne ayant un titre de cadre, ce titre de cadre est-il pertinent ?

  • Test 2.2.1 : Pour chaque cadre en ligne (balise iframe) ayant un attribut title, le contenu de cet attribut est-il pertinent ?

3. Couleurs

Recommandation

Ne pas donner l’information uniquement par la couleur et utiliser des contrastes de couleurs suffisamment élevés.

Mots clés
  • Principe : Perceptible

Critère 3.1 [A] Dans chaque page Web, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ?

  • 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 ?
  • 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 ?
  • 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 ?
  • Test 3.1.4 : Pour chaque propriété CSS déterminant une couleur et véhiculant une information, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ?
  • Test 3.1.5 : Pour chaque média temporel véhiculant une information, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ?
  • Test 3.1.6 : Pour chaque média non temporel véhiculant une information, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ?

Critère 3.2 [A] Dans chaque page Web, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle implémentée de façon pertinente ?

Critère 3.3 [AA] 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) ?

  • Test 3.3.1 : Dans chaque page Web, jusqu’à 150% de la taille de police par défaut (ou 1.5em), le texte et le texte en image sans effet de graisse 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.
  • Test 3.3.2 : Dans chaque page Web, jusqu’à 120% de la taille de police par défaut (ou 1.2em), le texte et le texte en image en gras 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.
  • Test 3.3.3 : Dans chaque page Web, à partir de 150% de la taille de police par défaut (ou 1.5em), le texte et le texte en image sans effet de graisse 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.
  • Test 3.3.4 : Dans chaque page Web, à partir de 120% de la taille de police par défaut (ou 1.2em), le texte et le texte en image en gras 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.
  • Test 3.3.5 : Chaque mécanisme qui permet d'afficher le texte avec un rapport de contraste conforme a-t-il un rapport de contraste supérieur ou égal à 4,5:1 ?

Critère 3.4 [AAA] Dans chaque page Web, le contraste entre la couleur du texte et la couleur de son arrière-plan est-il amélioré (hors cas particuliers) ?

  • Test 3.4.1 : Dans chaque page Web, jusqu’à 150% de la taille de police par défaut (ou 1.5em), le texte et le texte en image sans effet de graisse vérifient-ils une de ces conditions (hors cas particuliers) ?
    • Le rapport de contraste entre le texte et son arrière-plan est de 7:1, au moins ;
    • Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 7:1, au moins.
  • Test 3.4.2 : Dans chaque page Web, jusqu’à 120% de la taille de police par défaut (ou 1.2em), le texte et le texte en image en gras vérifient-ils une de ces conditions (hors cas particuliers) ?
    • Le rapport de contraste entre le texte et son arrière-plan est de 7:1, au moins ;
    • Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 7:1, au moins.
  • Test 3.4.3 : Dans chaque page Web, à partir de 150% de la taille de police par défaut (ou 1.5em), le texte et le texte en image sans effet de graisse 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.
  • Test 3.4.4 : Dans chaque page Web, à partir de 120% de la taille de police par défaut (ou 1.2em), le texte et le texte en image en gras 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.
  • Test 3.4.5 : Chaque mécanisme qui permet d'afficher le texte avec un rapport de contraste conforme a-t-il un rapport de contraste supérieur ou égal à 7:1 ?

4. Multimédia

Recommandation

Donner si nécessaire à chaque média temporel une transcription textuelle, des sous-titres synchronisés et une audio-description synchronisée pertinents. Donner à chaque média non temporel une alternative textuelle pertinente. Rendre possible le contrôle de la consultation de chaque média temporel et non-temporel au clavier et s’assurer de leur compatibilité avec les technologies d’assistance.

Mots clés
  • Principe : Perceptible

Critère 4.1 [A] Chaque média temporel pré-enregistré a-t-il, si nécessaire, une transcription textuelle ou une audio-description (hors cas particuliers) ?

Critère 4.2 [A] Pour chaque média temporel pré-enregistré ayant une transcription textuelle ou une audio-description synchronisée, celles-ci sont-elles pertinentes (hors cas particuliers) ?

Critère 4.3 [A] Chaque média temporel synchronisé pré-enregistré a-t-il, si nécessaire, des sous-titres synchronisés (hors cas particuliers) ?

Critère 4.4 [A] Pour chaque média temporel synchronisé pré-enregistré ayant des sous-titres synchronisés, ces sous-titres sont-ils pertinents ?

Critère 4.5 [AA] Chaque média temporel en direct a-t-il, si nécessaire, des sous-titres synchronisés ou une transcription textuelle (hors cas particuliers) ?

Critère 4.6 [AA] Pour chaque média temporel en direct ayant des sous-titres synchronisés ou une transcription textuelle, ceux-ci sont-ils pertinents ?

Critère 4.7 [AA] Chaque média temporel pré-enregistré a-t-il, si nécessaire, une audio-description synchronisée (hors cas particuliers) ?

  • Test 4.7.1 : Chaque média temporel pré-enregistré seulement vidéo vérifie-t-il, si nécessaire, une de ces conditions (hors cas particuliers) ?
    • Il existe une audio-description synchronisée ;
    • Il existe une version alternative avec une audio-description synchronisée.
  • Test 4.7.2 : Chaque média temporel synchronisé pré-enregistré vérifie-t-il, si nécessaire, une de ces conditions (hors cas particuliers) ?
    • Il existe une audio-description synchronisée ;
    • Il existe une version alternative avec une audio-description synchronisée.

Critère 4.8 [AA] Pour chaque média temporel pré-enregistré ayant une audio-description synchronisée, celle-ci est-elle pertinente ?

Critère 4.9 [AAA] Chaque média temporel pré-enregistré a-t-il, si nécessaire, une interprétation en langue des signes (hors cas particuliers) ?

  • Test 4.9.1 : Chaque média temporel pré-enregistré seulement audio a-t-il, si nécessaire, une interprétation en langue des signes adaptée à la langue du média (hors cas particuliers) ?
  • Test 4.9.2 : Chaque média temporel synchronisé pré-enregistré a-t-il, si nécessaire, une interprétation en langue des signes adaptée à la langue du média (hors cas particuliers) ?

Critère 4.10 [AAA] Pour chaque média temporel pré-enregistré ayant une interprétation en langue des signes, celle-ci est-elle pertinente ?

  • Test 4.10.1 : Pour chaque média temporel pré-enregistré seulement audio ayant une interprétation en langue des signes, celle-ci est-elle pertinente ?
  • Test 4.10.2 : Pour chaque média temporel synchronisé pré-enregistré ayant une interprétation en langue des signes, celle-ci est-elle pertinente ?

Critère 4.11 [AAA] Chaque média temporel pré-enregistré a-t-il, si nécessaire, une audio-description étendue synchronisée (hors cas particuliers) ?

  • Test 4.11.1 : Chaque média temporel synchronisé pré-enregistré vérifie-t-il, si nécessaire, une de ces conditions (hors cas particuliers) ?
    • Il existe une audio-description étendue synchronisée ;
    • Il existe une version alternative avec une audio-description étendue synchronisée.
  • Test 4.11.2 : Chaque média temporel pré-enregistré seulement vidéo vérifie-t-il, si nécessaire, une de ces conditions (hors cas particuliers) ?
    • Il existe une audio-description étendue synchronisée ;
    • Il existe une version alternative avec une audio-description étendue synchronisée.

Critère 4.12 [AAA] Pour chaque média temporel pré-enregistré ayant une audio-description étendue synchronisée, celle-ci est-elle pertinente ?

Critère 4.13 [AAA] Chaque média temporel synchronisé ou seulement vidéo a-t-il, si nécessaire, une transcription textuelle (hors cas particuliers) ?

Critère 4.14 [AAA] Pour chaque média temporel synchronisé ou seulement vidéo, ayant une transcription textuelle, celle-ci est-elle pertinente ?

Critère 4.15 [A] Chaque média temporel est-il clairement identifiable (hors cas particuliers) ?

  • Test 4.15.1 : Pour chaque média temporel seulement son, seulement vidéo ou synchronisé, le contenu textuel adjacent permet-il d’identifier clairement le média temporel (hors cas particuliers) ?
  • Test 4.15.2 : Pour chaque média temporel seulement son en direct, seulement vidéo en direct ou synchronisé en direct, le contenu textuel adjacent permet-il d’identifier clairement le média temporel (hors cas particuliers) ?

Critère 4.16 [A] Chaque média non temporel a-t-il, si nécessaire, une alternative (hors cas particuliers) ?

  • Test 4.16.1 : Chaque média non temporel vérifie-t-il, si nécessaire, une de ces conditions (hors cas particuliers) ?
    • Un lien adjacent, clairement identifiable, contient l’adresse (url) d’une page contenant une alternative ;
    • Un lien adjacent, clairement identifiable, permet d’accéder à une alternative dans la page.
  • Test 4.16.2 : Chaque média non temporel associé à une alternative vérifie-t-il une de ces conditions (hors cas particuliers) ?
    • La page référencée par le lien adjacent est accessible ;
    • L’alternative dans la page, référencée par le lien adjacent, est accessible.

Critère 4.17 [A] Pour chaque média non temporel ayant une alternative, cette alternative est-elle pertinente ?

  • Test 4.17.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 ?

Critère 4.18 [A] Chaque son déclenché automatiquement est-il contrôlable par l’utilisateur ?

  • Test 4.18.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.

Critère 4.19 [AAA] Pour chaque média temporel seulement audio pré-enregistré, les dialogues sont-ils suffisamment audibles (hors cas particuliers) ?

  • Test 4.19.1 : Chaque média temporel audio pré-enregistré et diffusé via une balise object, video, audio, embed, bgsound, ou proposé en téléchargement, vérifie-t-il une de ces conditions (hors cas particuliers) ?
    • L’arrière-plan sonore peut être désactivé ;
    • La ou les pistes de dialogue sont 20 décibels plus élevées que l’arrière-plan sonore ;
    • Il existe une version alternative pour laquelle l’arrière-plan sonore peut être désactivé ;
    • Il existe une version alternative pour laquelle la ou les pistes de dialogue sont 20 décibels plus élevées que l’arrière-plan sonore.

Critère 4.20 [A] La consultation de chaque média temporel est-elle, si nécessaire, contrôlable par le clavier et la souris ?

Critère 4.21 [A] La consultation de chaque média non temporel est-elle contrôlable par le clavier et la souris ?

  • Test 4.21.1 : Pour chaque média non temporel, chaque fonctionnalité vérifie-t-elle une de ces conditions ?
    • La fonctionnalité est accessible par le clavier et la souris ;
    • Une fonctionnalité accessible par le clavier et la souris permettant de réaliser la même action est présente dans la page.
  • Test 4.21.2 : Pour chaque média non temporel, chaque fonctionnalité vérifie-t-elle une de ces conditions ?
    • La fonctionnalité est activable par le clavier et la souris ;
    • Une fonctionnalité activable par le clavier et la souris permettant de réaliser la même action est présente dans la page.

Critère 4.22 [A] Chaque média temporel et non temporel est-il compatible avec les technologies d’assistance (hors cas particuliers) ?

5. Tableaux

Recommandation

Donner à chaque tableau de données complexe, un résumé et un titre pertinent, identifier clairement les cellules d’en-tête, utiliser un mécanisme pertinent pour lier les cellules de données aux cellules d’en-tête. Pour chaque tableau de mise en forme, veiller à sa bonne linéarisation.

Mots clés
  • Principe : Perceptible

Critère 5.1 [A] Chaque tableau de données complexe a-t-il un résumé ?

Critère 5.2 [A] Pour chaque tableau de données complexe ayant un résumé, celui-ci est-il pertinent ?

Critère 5.3 [A] Pour chaque tableau de mise en forme, le contenu linéarisé reste-t-il compréhensible (hors cas particuliers) ?

  • Test 5.3.1 : Chaque tableau de mise en forme vérifie-t-il ces conditions (hors cas particuliers) ?
    • Le contenu linéarisé reste compréhensible ;
    • La balise table possède un attribut role="presentation".

Critère 5.4 [A] Chaque tableau de données a-t-il un titre ?

Critère 5.5 [A] Pour chaque tableau de données ayant un titre, celui-ci est-il pertinent ?

Critère 5.6 [A] Pour chaque tableau de données, chaque en-tête de colonnes et chaque en-tête de lignes sont-ils correctement déclarés ?

Critère 5.7 [A] Pour chaque tableau de données, la technique appropriée permettant d’associer chaque cellule avec ses en-têtes est-elle utilisée ?

  • Test 5.7.1 : Chaque en-tête (balise th) s’appliquant à la totalité de la ligne ou de la colonne possède-t-il un attribut id unique ou un attribut scope ?
  • Test 5.7.2 : Chaque en-tête (balise th) s’appliquant à la totalité de la ligne ou de la colonne et possédant un attribut scope vérifie-t-il une de ces conditions ?
  • Test 5.7.3 : Chaque en-tête (balise th) ne s’appliquant pas à la totalité de la ligne ou de la colonne vérifie-t-il ces conditions ?
    • L’en-tête ne possède pas d’attribut scope ;
    • L’en-tête possède un attribut id unique.
  • Test 5.7.4 : Chaque cellule (balise td ou th) associée à un ou plusieurs en-têtes possédant un attribut id vérifie-t-elle ces conditions ?
    • La cellule possède un attribut headers ;
    • L’attribut headers possède la liste des valeurs des en-têtes associés à la cellule.

Critère 5.8 [A] Chaque tableau de mise en forme ne doit pas utiliser d’éléments propres aux tableaux de données. Cette règle est-elle respectée ?

  • Test 5.8.1 : Chaque tableau de mise en forme (balise table) vérifie-t-il ces conditions ?
    • Le tableau de mise en forme (balise table) ne possède pas de balises caption, th, thead, tfoot, colgroup ;
    • Les cellules du tableau de mise en forme (balise td) ne possèdent pas d’attributs scope, headers, colgroup, axis.

6. Liens

Recommandation

Donner des intitulés de lien explicites, grâce à des informations de contexte notamment, et utiliser le titre de lien le moins possible.

Mots clés
  • Principe : Perceptible

Critère 6.1 [A] Chaque lien est-il explicite (hors cas particuliers) ?

Critère 6.2 [A] Pour chaque lien ayant un titre de lien, celui-ci est-il pertinent ?

  • Test 6.2.1 : Pour chaque lien texte ayant un titre de lien (attribut title), le contenu de cet attribut est-il pertinent ?
  • Test 6.2.2 : Pour chaque lien image ayant un titre de lien (attribut title), le contenu de cet attribut est-il pertinent ?
  • Test 6.2.3 : Pour chaque lien composite ayant un titre de lien (attribut title), le contenu de cet attribut est-il pertinent ?

Critère 6.3 [AAA] Chaque intitulé de lien seul est-il explicite hors contexte (hors cas particuliers) ?

  • Test 6.3.1 : Chaque lien texte vérifie-t-il une de ces conditions (hors cas particuliers) ?
    • L’intitulé du lien est explicite hors contexte ;
    • Un mécanisme permet à l’utilisateur d’obtenir un intitulé de lien explicite hors contexte ;
    • Le contenu du titre de lien (attribut title) est explicite hors contexte.
  • Test 6.3.2 : Chaque intitulé de lien image vérifie-t-il une de ces conditions (hors cas particuliers) ?
    • L’intitulé du lien est explicite hors contexte ;
    • Un mécanisme permet à l’utilisateur d’obtenir un intitulé de lien explicite hors contexte ;
    • Le contenu du titre de lien (attribut title) est explicite hors contexte.
  • Test 6.3.3 : Chaque lien composite (contenu texte et de l’attribut alt) est-il explicite hors contexte (hors cas particuliers) ?
    • L’intitulé du lien est explicite hors contexte ;
    • Un mécanisme permet à l’utilisateur d’obtenir un intitulé de lien explicite hors contexte ;
    • Le contenu du titre de lien (attribut title) est explicite hors contexte.

Critère 6.4 [A] Pour chaque page Web, chaque lien identique a-t-il les mêmes fonction et destination ?

Critère 6.5 [A] Dans chaque page Web, chaque lien, à l’exception des ancres, a-t-il un intitulé ?

  • Test 6.5.1 : Dans chaque page Web, chaque lien (balise a avec un attribut href), à l’exception des ancres, a-t-il un intitulé entre <a> et </a> ?

7. Scripts

Recommandation

Donner si nécessaire à chaque script une alternative pertinente. Rendre possible le contrôle de chaque code script au moins par le clavier et la souris et s’assurer de leur compatibilité avec les technologies d’assistance.

Mots clés
  • Principe : Perceptible

Critère 7.1 [A] Chaque script est-il, si nécessaire, compatible avec les technologies d’assistance ?

  • Test 7.1.1 : Chaque script qui génère ou contrôle un composant d’interface vérifie-t-il, si nécessaire, une de ces conditions ?
  • Test 7.1.2 : Chaque fonctionnalité d’insertion de contenu contrôlée par un script utilise-t-elle des propriétés et méthodes conformes à la spécification DOM (Document Object Model) ?
  • Test 7.1.3 : Chaque script qui génère, met à jour ou contrôle un composant d’interface qui comporte des rôles des états ou des propriétés correspondant à un motif de conception défini par l’API ARIA vérifie-t-il une de ces conditions ?
    • Le composant d’interface est conforme au motif de conception défini par l’API ARIA ;
    • Un composant d’interface présent sur la page, permettant d’accéder aux mêmes fonctionnalités, est conforme au motif de conception défini par l’API ARIA ;
    • Le composant d’interface adapte un motif de conception défini par l’API ARIA ;
    • Une alternative accessible permet d’accéder aux mêmes fonctionnalités.
  • Test 7.1.4 : Chaque modification du rôle natif d’un élément HTML respecte-t-elle les règles et préconisations indiquées dans la spécification HTML5 et les notes techniques associées ?
  • Test 7.1.5 : Chaque script qui génère ou contrôle un composant d’interface respecte-t-il une de ces conditions ?
    • Le composant d’interface est correctement restitué par les technologies d’assistance ;
    • Une alternative accessible permet d’accéder aux mêmes fonctionnalités.
  • Test 7.1.6 : Chaque composant d’interface qui utilise un rôle ARIA application respecte-t-il une de ces conditions ?
    • Le composant d’interface est correctement restitué par les technologies d’assistance ;
    • Une alternative accessible permet d’accéder aux mêmes fonctionnalités.
  • Test 7.1.7 : Chaque script qui génère ou contrôle un composant d'interface vérifie-t-il ces conditions ?
    • Le composant possède un nom pertinent ;
    • Le composant possède un rôle pertinent.

Critère 7.2 [A] Pour chaque script ayant une alternative, cette alternative est-elle pertinente ?

  • Test 7.2.1 : Chaque script débutant par la balise script et ayant une alternative vérifie-t-il une de ces conditions ?
    • L’alternative entre <noscript> et </noscript> permet d’accéder à des contenus et des fonctionnalités similaires ;
    • La page affichée, lorsque JavaScript est désactivé, permet d’accéder à des contenus et des fonctionnalités similaires ;
    • La page alternative permet d’accéder à des contenus et des fonctionnalités similaires ;
    • Le langage de script côté serveur permet d’accéder à des contenus et des fonctionnalités similaires ;
    • L’alternative présente dans la page permet d’accéder à des contenus et des fonctionnalités similaires.
  • Test 7.2.2 : Chaque élément non textuel mis à jour par un script (dans la page, ou un cadre en ligne) et ayant une alternative vérifie-t-il ces conditions ?
    • L’alternative de l’élément non textuel est mise à jour ;
    • L’alternative mise à jour est pertinente.

Critère 7.3 [A] Chaque script est-il contrôlable par le clavier et la souris (hors cas particuliers) ?

  • Test 7.3.1 : Chaque élément possédant un gestionnaire d’événement contrôlé par un script vérifie-t-il une de ces conditions (hors cas particuliers) ?
  • 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) ?
  • Test 7.3.3 : Chaque composant d’interface implémenté via un rôle défini par l’API ARIA et correspondant à un motif de conception respecte-t-il une de ces conditions ?
    • Les interactions au clavier sont conformes au comportement défini par le motif de conception pour les touches Echap, Barre d’espace, Tabulation et Flèches de direction au moins ;
    • Un composant d’interface présent sur la page, permettant de réaliser la même action, possède des interactions au clavier conformes au comportement défini par le motif de conception, pour les touches Échap, Barre d’espace, Tabulation et Flèches de direction au moins ;
    • Une alternative permettant d’accéder aux mêmes fonctionnalités est contrôlable par le clavier et la souris.

Critère 7.4 [A] Pour chaque script qui initie un changement de contexte, l’utilisateur est-il averti ou en a-t-il le contrôle ?

  • Test 7.4.1 : Chaque script qui initie un changement de contexte vérifie-t-il une de ces conditions ?
    • L’utilisateur est averti par un texte de l’action du script et du type de changement avant son déclenchement ;
    • Le changement de contexte est initié par un bouton (input de type submit, button ou image ou balise button) explicite ;
    • Le changement de contexte est initié par un lien explicite.

Critère 7.5 [AAA] Chaque script qui provoque une alerte non sollicitée est-il contrôlable par l’utilisateur (hors cas particuliers) ?

8. Éléments Obligatoires

Recommandation

Vérifier que chaque page Web a un code source valide selon le type de document, un titre pertinent et une indication de langue par défaut. Vérifier que les balises ne sont pas utilisées uniquement à des fins de présentation, que les changements de langues et de direction de sens de lecture sont indiqués.

Mots clés
  • Principe : Perceptible

Critère 8.1 [A] Chaque page Web est-elle définie par un type de document ?

  • Test 8.1.1 : Pour chaque page Web, le type de document (balise doctype) est-il présent ?
  • Test 8.1.2 : Pour chaque page Web, le type de document (balise doctype) est-il valide ?
  • Test 8.1.3 : Pour chaque page Web possédant une déclaration de type de document, celle-ci est-elle située avant la balise html dans le code source ?

Critère 8.2 [A] Pour chaque page Web, le code source est-il valide selon le type de document spécifié (hors cas particuliers) ?

  • Test 8.2.1 : Pour chaque déclaration de type de document, le code source de la page vérifie-t-il ces conditions (hors cas particuliers) ?
    • Les balises respectent les règles d’écriture ;
    • L’imbrication des balises est conforme ;
    • L’ouverture et la fermeture des balises sont conformes ;
    • Les attributs respectent les règles d’écriture ;
    • Les valeurs des attributs respectent les règles d’écriture.
  • Test 8.2.2 : Pour chaque déclaration de type de document, le code source de la page ne doit pas utiliser d’éléments obsolètes. Cette règle est-elle respectée (hors cas particuliers) ?

Critère 8.3 [A] Dans chaque page Web, la langue par défaut est-elle présente ?

  • Test 8.3.1 : Pour chaque page Web, l’indication de langue par défaut vérifie-t-elle une de ces conditions ?
    • L’indication de la langue de la page (attribut lang et/ou xml:lang) est donnée pour l’élément html ;
    • L’indication de la langue de la page (attribut lang et/ou xml:lang) est donnée sur chaque élément de texte ou sur l’un des éléments parents.

Critère 8.4 [A] Pour chaque page Web ayant une langue par défaut, le code de langue est-il pertinent ?

  • Test 8.4.1 : Pour chaque page Web ayant une langue par défaut, le code de langue vérifie-t-il ces conditions ?
    • Le code de langue est valide ;
    • Le code de langue est pertinent.

Critère 8.5 [A] Chaque page Web a-t-elle un titre de page ?

  • Test 8.5.1 : Chaque page Web a-t-elle un titre de page (balise title) ?

Critère 8.6 [A] Pour chaque page Web ayant un titre de page, ce titre est-il pertinent ?

  • Test 8.6.1 : Pour chaque page Web ayant un titre de page (balise title), le contenu de cette balise est-il pertinent ?

Critère 8.7 [AA] Dans chaque page Web, chaque changement de langue est-il indiqué dans le code source (hors cas particuliers) ?

  • 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 ;
    • L’indication de langue est donnée sur un des éléments parents.

Critère 8.8 [AA] Dans chaque page Web, chaque changement de langue est-il pertinent ?

  • Test 8.8.1 : Dans chaque page Web, chaque changement de langue (attribut lang et/ou xml:lang) est-il valide ?
  • Test 8.8.2 : Dans chaque page Web, chaque changement de langue (attribut lang et/ou xml:lang) est-il pertinent ?

Critère 8.9 [A] Dans chaque page Web, les balises ne doivent pas être utilisées uniquement à des fins de présentation. Cette règle est-elle respectée ?

  • Test 8.9.1 : Dans chaque page Web les balises (à l’exception de div, span et table) ne doivent pas être utilisées uniquement à des fins de présentation. Cette règle est-elle respectée ?

Critère 8.10 [A] Dans chaque page Web, les changements du sens de lecture sont-ils signalés ?

  • Test 8.10.1 : Dans chaque page Web, chaque texte dont le sens de lecture est différent du sens de lecture par défaut est contenu dans une balise possédant un attribut dir ?
  • Test 8.10.2 : Dans chaque page Web, chaque changement du sens de lecture (attribut dir) vérifie-t-il ces conditions ?
    • La valeur de l’attribut dir est conforme (rtl ou ltr) ;
    • La valeur de l’attribut dir est pertinente.

9. Structuration de l’information

Recommandation

Utiliser des titres, des listes, des abréviations et des citations pour structurer l’information. S’assurer que la structure du document est cohérente.

Mots clés
  • Principe : Perceptible

Critère 9.1 [A] Dans chaque page Web, l’information est-elle structurée par l’utilisation appropriée de titres ?

  • Test 9.1.1 : Dans chaque page Web, y a-t-il un titre de niveau 1 (balise h1 ou balise possédant un rôle ARIA "heading" associé à une propriété aria-level="1") ?
  • Test 9.1.2 : Dans chaque page Web, la hiérarchie entre les titres (balise h ou balise possédant un rôle ARIA "heading" associé à une propriété aria-level) est-elle pertinente ?
  • Test 9.1.3 : Dans chaque page Web, chaque titre (balise h ou balise possédant un rôle ARIA "heading" associé à une propriété aria-level) nécessaire à la structure de l’information est-il présent ?
  • Test 9.1.4 : Dans chaque page Web, chaque titre (balise h ou balise possédant un rôle ARIA "heading" associé à une propriété aria-level) est-il pertinent ?

Critère 9.2 [A] Dans chaque page Web, la structure du document est-elle cohérente ?

Critère 9.3 [A] Dans chaque page Web, chaque liste est-elle correctement structurée ?

  • Test 9.3.1 : Dans chaque page Web, les informations regroupées sous forme de listes non ordonnées vérifient-elles une de ces conditions ?
    • La liste utilise les balises HTML ul et li ;
    • La liste utilise les rôles ARIA list et listitem ;
  • Test 9.3.2 : Dans chaque page Web, les informations regroupées sous forme de listes ordonnées vérifient-elles une de ces conditions ?
    • La liste utilise les balises HTML ol et li ;
    • La liste utilise les rôles ARIA list et listitem.
  • Test 9.3.3 : Dans chaque page Web, les informations regroupées sous forme de listes de définitions utilisent-elles les balises dl et dt/dd ?

Critère 9.4 [AAA] Dans chaque page Web, la première occurrence de chaque abréviation permet-elle d’en connaître la signification ?

  • Test 9.4.1 : Dans chaque page Web, la première occurrence de chaque abréviation vérifie-t-elle une de ces conditions ?
    • L’abréviation est accompagnée de sa signification sous forme d’un texte adjacent ;
    • L’abréviation est implémentée via un lien référençant une page ou un emplacement dans la page qui permet d’en connaître la signification ;
    • L’abréviation fait partie d’un lien possédant un attribut title qui permet d’en connaître la signification ;
    • La signification de l’abréviation est présente dans un glossaire présent sur le site ;
    • L’abréviation est implémentée via une balise abbr possédant un attribut title qui permet d’en connaître la signification.

Critère 9.5 [AAA] Dans chaque page Web, la signification de chaque abréviation est-elle pertinente ?

  • Test 9.5.1 : Dans chaque page Web, la signification de chaque abréviation est-elle pertinente ?

Critère 9.6 [A] Dans chaque page Web, chaque citation est-elle correctement indiquée ?

  • Test 9.6.1 : Dans chaque page Web, chaque citation courte utilise-t-elle une balise q ?
  • Test 9.6.2 : Dans chaque page Web, chaque bloc de citation utilise-t-il une balise blockquote ?

10. Présentation de l’information

Recommandation

Utiliser des feuilles de styles pour contrôler la présentation de l’information. Vérifier l’effet de l’agrandissement des taille des caractères sur la lisibilité. S’assurer que les liens sont correctement identifiables, que la prise de focus est signalée, que l’interlignage est suffisant et donner la possibilité à l’utilisateur de contrôler la justification des textes. S’assurer que les textes cachés sont correctement restitués et que l’information n’est pas donnée uniquement par la forme ou la position d’un élément.

Mots clés
  • Principe : Perceptible

Critère 10.1 [A] Dans le site Web, des feuilles de styles sont-elles utilisées pour contrôler la présentation de l’information ?

  • Test 10.1.1 : Dans chaque page Web, les balises servant à la présentation de l’information ne doivent pas être présentes dans le code source des pages. Cette règle est-elle respectée ?
  • Test 10.1.2 : Dans chaque page Web, les attributs servant à la présentation de l’information ne doivent pas être présents dans le code source des pages. Cette règle est-elle respectée ?
  • Test 10.1.3 : Dans chaque page Web, l’utilisation des espaces vérifie-t-elle ces conditions ?
    • Les espaces ne sont pas utilisés pour séparer les lettres d’un mot ;
    • Les espaces ne sont pas utilisés pour simuler des tableaux ;
    • Les espaces ne sont pas utilisés pour simuler des colonnes de texte.

Critère 10.2 [A] Dans chaque page Web, le contenu visible reste-t-il présent lorsque les feuilles de styles sont désactivées ?

  • Test 10.2.1 : Dans chaque page Web, l’information reste-t-elle présente lorsque les feuilles de styles sont désactivées ?

Critère 10.3 [A] Dans chaque page Web, l’information reste-t-elle compréhensible lorsque les feuilles de styles sont désactivées ?

Critère 10.4 [AA] Dans chaque page Web, le texte reste-t-il lisible lorsque la taille des caractères est augmentée jusqu’à 200%, au moins (hors cas particuliers) ?

  • Test 10.4.1 : Dans les feuilles de styles du site Web, les unités non relatives (pt, pc, mm, cm, in) ne doivent pas être utilisées pour les types de média screen, tv, handheld, projection. Cette règle est-elle respectée (hors cas particuliers) ?
  • Test 10.4.2 : Dans les feuilles de styles du site Web, pour les types de média screen, tv, handheld, projection, les tailles de caractères utilisent-elles uniquement des unités relatives (hors cas particuliers) ?
  • Test 10.4.3 : Dans chaque page Web, l’augmentation de la taille des caractères jusqu’à 200%, au moins, ne doit pas provoquer de perte d’information. Cette règle est-elle respectée ?

Critère 10.5 [AA] Dans chaque page Web, les déclarations CSS de couleurs de fond d’élément et de police sont-elles correctement utilisées?

  • Test 10.5.1 : Dans chaque page Web, chaque déclaration CSS de couleurs de police (color), d’un élément susceptible de contenir du texte, est-elle accompagnée d’une déclaration de couleur de fond (background, background-color), au moins, héritée d’un parent ?
  • Test 10.5.2 : Dans chaque page Web, chaque déclaration de couleur de fond (background, background-color), d’un élément susceptible de contenir du texte, est-elle accompagnée d’une déclaration de couleur de police (color) au moins, héritée d’un parent ?
  • Test 10.5.3 : Dans chaque page Web, chaque utilisation d’une image pour créer une couleur de fond d’un élément susceptible de contenir du texte, via CSS (background, background-image), est-elle accompagnée d’une déclaration de couleur de fond (background, background-color), au moins, héritée d’un parent ?

Critère 10.6 [A] Dans chaque page Web, chaque lien dont la nature n’est pas évidente est-il visible par rapport au texte environnant ?

Critère 10.7 [A] Dans chaque page Web, pour chaque élément recevant le focus, la prise de focus est-elle visible ?

  • Test 10.7.1 : Pour chaque élément recevant le focus, l’indication visuelle du navigateur ne doit pas être supprimée (propriété CSS outline, outline-color, outline-width, outline-style). Cette règle est-elle respectée ?
  • Test 10.7.2 : Pour chaque élément recevant le focus, l’indication visuelle du navigateur ne doit pas être dégradée (propriété CSS outline-color). Cette règle est-elle respectée ?
  • Test 10.7.3 : Chaque lien dans un texte signalé par la couleur uniquement vérifie-t-il ces conditions ?
    • Une indication visuelle autre que la couleur permet de signaler la prise de focus au clavier ;
    • Une indication visuelle autre que la couleur permet de signaler le survol du lien à la souris.

Critère 10.8 [AAA] Dans chaque page Web, le choix de la couleur de fond et de police du texte est-il contrôlable par l’utilisateur ?

  • Test 10.8.1 : Pour chaque bloc de texte contenu dans une balise HTML, la couleur de fond est-elle contrôlable par l’utilisateur ?
  • Test 10.8.2 : Pour chaque bloc de texte contenu dans une balise HTML, la couleur de police est-elle contrôlable par l’utilisateur ?
  • Test 10.8.3 : Pour chaque bloc de texte contenu dans une balise object, embed, svg ou canvas, la couleur de fond est-elle contrôlable par l’utilisateur ?
  • Test 10.8.4 : Pour chaque bloc de texte contenu dans une balise object, embed, svg ou canvas, la couleur de police est-elle contrôlable par l’utilisateur ?

Critère 10.9 [AAA] Pour chaque page Web, le texte ne doit pas être justifié. Cette règle est-elle respectée ?

  • Test 10.9.1 : Chaque page Web vérifie-t-elle une de ces conditions ?
    • Le texte n’est pas justifié ;
    • Un mécanisme permet à l’utilisateur de supprimer la justification du texte.

Critère 10.10 [AAA] Pour chaque page Web, en affichage plein écran et avec une taille de police à 200%, chaque bloc de texte reste-t-il lisible sans l’utilisation de la barre de défilement horizontal ?

  • Test 10.10.1 : Dans chaque page Web, l’augmentation de la taille des caractères à 200% vérifie-t-elle une de ces conditions ?
    • En affichage plein écran, pour lire un bloc de texte, l’utilisation de la barre de défilement horizontal n’est pas nécessaire ;
    • Un mécanisme permet de rendre inutile l’utilisation de la barre de défilement horizontal pour lire un bloc de texte en affichage plein écran.

Critère 10.11 [AAA] Pour chaque page Web, les blocs de texte ont-ils une largeur inférieure ou égale à 80 caractères (hors cas particuliers) ?

  • Test 10.11.1 : Pour chaque page Web, chaque bloc de texte vérifie-t-il une de ces conditions (hors cas particuliers) ?
    • Chaque bloc de texte a une largeur inférieure ou égale à 80 caractères ;
    • L’utilisateur peut réduire la largeur de chaque bloc de texte à 80 caractères en redimensionnant la fenêtre de son navigateur.

Critère 10.12 [AAA] Pour chaque page Web, l’espace entre les lignes et les paragraphes est-il suffisant ?

  • Test 10.12.1 : Pour chaque page Web, chaque bloc de texte vérifie-t-il une de ces conditions ?
    • La valeur de l’interligne est égale à 1,5 fois la taille du texte, au moins ;
    • Un mécanisme permet d’augmenter la valeur de l’interligne à 1,5 fois la taille du texte, au moins.
  • Test 10.12.2 : Pour chaque page Web, chaque bloc de texte vérifie-t-il une de ces conditions ?
    • La valeur de l’espacement entre deux paragraphes est égale à 1,5 fois la valeur de l’interligne, au moins ;
    • Un mécanisme permet d’augmenter la valeur de l’espacement entre deux paragraphes à 1,5 fois la valeur de l’interligne, au moins.

Critère 10.13 [A] Pour chaque page Web, les textes cachés sont-ils correctement affichés pour être restitués par les technologies d’assistance ?

  • Test 10.13.1 : Dans chaque page Web, chaque texte caché vérifie-t-il une de ces conditions ?
    • Le texte n’a pas vocation à être restitué par les technologies d’assistance ;
    • Le texte est rendu visible sur action de l’utilisateur sur l’élément lui-même ou un élément précédant le texte caché ;
    • Le texte caché fait partie d’un motif de conception défini par l’API ARIA, prenant en charge l’état affiché ou masqué du contenu.

Critère 10.14 [A] 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 ?

Critère 10.15 [A] 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 ?

  • Test 10.15.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 ?
  • Test 10.15.2 : Dans chaque page Web, pour chaque image ou ensemble d’images, 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 ?
  • Test 10.15.3 : Dans chaque page Web, pour chaque média temporel, 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 ?
  • Test 10.15.4 : Dans chaque page Web, pour chaque média non temporel, 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 ?

11. Formulaires

Recommandation

Associer pour chaque formulaire chacun de ses champs à son étiquette, grouper les champs dans des blocs d’informations de même nature, structurer les listes de choix de manière pertinente, donner à chaque bouton un intitulé explicite. Vérifier la présence d’aide à la saisie, s’assurer que le contrôle de saisie est accessible et que l’utilisateur peut contrôler les données à caractère financier, juridique ou personnel.

Mots clés
  • Principe : Perceptible

Critère 11.1 [A] Chaque champ de formulaire a-t-il une étiquette ?

  • Test 11.1.1 : Chaque champ de formulaire vérifie-t-il une de ces conditions ?
    • Le champ de formulaire possède un attribut title ;
    • Une étiquette (balise label) est associée au champ de formulaire ;
    • Le champ de formulaire possède une propriété aria-label ;
    • Le champ de formulaire possède une propriété aria-labelledby référençant un passage de texte identifié.
  • Test 11.1.2 : Chaque champ de formulaire, associé à une étiquette (balise label), vérifie-t-il ces conditions ?
    • Le champ de formulaire possède un attribut id ;
    • La valeur de l’attribut id est unique ;
    • La balise label possède un attribut for ;
    • La valeur de l’attribut for est égale à la valeur de l’attribut id du champ de formulaire associé.
  • Test 11.1.3 : Chaque champ de formulaire associé à une étiquette via la propriété ARIA aria-labelledby, vérifie-t-il ces conditions ?
    • L’étiquettepossède un attribut id ;
    • La valeur de l’attribut id est unique ;
    • Les valeurs de la propriété ARIA aria-labelledby sont égales à la valeur des attributs id des passages de textes utilisés pour créer l’étiquette ;
  • Test 11.1.4 : Chaque champ de formulaire qui utilise une propriété ARIA aria-label ou aria-labelledby est-il, si nécessaire, accompagné d'un passage de texte visible et accolé au champ permettant de comprendre la nature de la saisie attendue ?
  • Test 11.1.5 : Chaque champ de formulaire qui utilise un attribut title comme étiquette, vérifie-t-il une de ces conditions ?
    • L’attribut placeholder est absent ;
    • L’attribut placeholder est identique à l’attribut title.

Critère 11.2 [A] Chaque étiquette associée à un champ de formulaire est-elle pertinente ?

  • Test 11.2.1 : Chaque étiquette (balise label) permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée ?
  • Test 11.2.2 : Chaque attribut title permet-il de connaître la fonction exacte du champ de formulaire auquel il est associé ?
  • Test 11.2.3 : Chaque étiquette implémentée via la propriété ARIA aria-label permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée ?
  • Test 11.2.4 : Chaque étiquette implémentée via la propriété ARIA aria-labelledby permet-elle de connaître la fonction exacte du champ de formulaire auquel elle est associée ?

Critère 11.3 [AA] Dans chaque formulaire, chaque étiquette associée à un champ de formulaire ayant la même fonction et répété plusieurs fois dans une même page ou dans un ensemble de pages est-elle cohérente ?

Critère 11.4 [A] Dans chaque formulaire, chaque étiquette de champ et son champ associé sont-ils accolés ?

Critère 11.5 [A] Dans chaque formulaire, les informations de même nature sont-elles regroupées, si nécessaire ?

Critère 11.6 [A] Dans chaque formulaire, chaque regroupement de champs de formulaire a-t-il une légende ?

Critère 11.7 [A] Dans chaque formulaire, chaque légende associée à un groupement de champs de formulaire est-elle pertinente ?

  • Test 11.7.1 : Dans chaque formulaire, chaque légende associée à un groupement de champs de formulaire est-elle pertinente ?

Critère 11.8 [A] Dans chaque formulaire, chaque liste de choix est-elle structurée de manière pertinente ?

  • Test 11.8.1 : Dans chaque formulaire, pour chaque liste de choix (balise select), les items sont-ils regroupés avec une balise optgroup, si nécessaire ?
  • Test 11.8.2 : Dans chaque liste de choix (balise select), chaque regroupement d’items de liste (balise optgroup) possède-t-il un attribut label ?
  • Test 11.8.3 : Pour chaque regroupement d’items de liste (balise optgroup) ayant un attribut label, le contenu de l’attribut label est-il pertinent ?

Critère 11.9 [A] Dans chaque formulaire, l’intitulé de chaque bouton est-il pertinent ?

  • Test 11.9.1 : Dans chaque formulaire, l’intitulé de chaque bouton vérifie-t-il ces conditions ?
    • Le contenu de l’attribut value des boutons de formulaire de type submit, reset ou button est pertinent ;
    • Le contenu de la balise <button> est pertinent ;
    • Le contenu de l’attribut title est pertinent ;
    • Le contenu de la propriété ARIA aria-label est pertinent ;
    • Un passage de texte est lié au bouton via une propriété aria-labelledby.
  • Test 11.9.2 : Dans chaque formulaire, l’intitulé de chaque bouton implémenté via une propriété ARIA aria-labelledby vérifie-t-il ces conditions ?
    • Le passage de texte servant d’intitulé possède un attribut id ;
    • La valeur de l’attribut id est unique ;
    • Les valeurs de la propriété ARIA aria-labelledby sont égales aux valeurs des attributs id des passages de texte utilisés pour créer l’intitulé ;
    • Le passage de texte est pertinent.

Critère 11.10 [A] Dans chaque formulaire, le contrôle de saisie est-il utilisé de manière pertinente ?

  • Test 11.10.1 : Pour chaque formulaire, les indications de champs obligatoires vérifient-elles une de ces conditions ?
    • L’indication de champ obligatoire est donnée par un passage de texte situé avant le champ de formulaire ;
    • L’indication de champ obligatoire est donnée via un attribut required ;
    • L’indication de champ obligatoire est donnée via la propriété ARIA aria-required ;
    • L’indication de champ obligatoire est donnée dans l’étiquette du champ de formulaire ;
    • L’indication de champ obligatoire est donnée par un passage de texte lié par la propriété ARIA aria-describedby.
  • Test 11.10.2 : Chaque indication de champ obligatoire qui utilise les propriétés ARIA aria-label, aria-required ou l’attribut required doit être accompagnée d’une indication visuelle explicite dans l’étiquette ou dans un passage de texte lié au champ par la propriété ARIA aria-describedby ou aria-labelledby, cette règle est-elle respectée ?
  • Test 11.10.3 : Chaque indication de champ obligatoire qui utilise un passage de texte lié par la propriété ARIA aria-describedby ou aria-labelledby vérifie-t-elle ces conditions ?
    • Le passage de texte est identifié via un attribut id ;
    • La valeur de l’attribut id est unique ;
    • Les valeurs de la propriété ARIA aria-describedby ou aria-labelledby sont égales aux valeurs des attributs id.
  • Test 11.10.4 : Pour chaque formulaire, les erreurs de saisie vérifient-elles une de ces conditions ?
    • L’erreur de saisie est indiquée dans l’étiquette du champ de formulaire ;
    • L’erreur de saisie est indiquée par un passage de texte avant le champ de formulaire ;
    • Le champ de formulaire possède un type qui produit de manière automatique un message d’erreur de saisie ;
    • L’erreur de saisie est indiquée par un passage de texte lié par la propriété ARIA aria-describedby ;
    • L’erreur de saisie est indiquée via la propriété ARIA aria-invalid.
  • Test 11.10.5 : Chaque indication d’erreur de saisie réalisée grâce à la propriété ARIA aria-label ou aria-invalid doit être accompagnée d’une indication visuelle explicite dans l’étiquette : balise label, texte visible à proximité ou passage de texte lié au champ par la propriété ARIA aria-describedby ou aria-labelledby. Cette règle est-elle respectée ?
  • Test 11.10.6 : Chaque erreur de saisie qui utilise un passage de texte lié par la propriété ARIA aria-describedby ou aria-labelledby vérifie-t-elle ces conditions ?
    • Le passage de texte est identifié via un attribut id ;
    • La valeur de l’attribut id est unique ;
    • Les valeurs de la propriété ARIA aria-describedby ou aria-labelledby sont égales aux valeurs des attributs id des passages de texte utilisés pour créer l’étiquette.
  • Test 11.10.7 : Pour chaque formulaire, chaque champ obligatoire vérifie-t-il une de ces conditions ?
    • Le type de données et/ou de format est indiqué, si nécessaire, dans l’étiquette du champ ;
    • Le type de données et/ou de format est indiqué, si nécessaire, par un passage de texte avant le champ de formulaire ;
    • Le type de données et/ou de format est indiqué, si nécessaire, par un passage de texte lié par la propriété ARIA aria-describedby.
  • Test 11.10.8 : Chaque indication du type de données et/ou de format réalisée grâce à la propriété ARIA aria-label doit être accompagnée d’une indication visuelle explicite dans l’étiquette ou dans un passage de texte lié au champ par la propriété ARIA aria-describedby ou aria-labelledby, cette règle est-elle respectée ?
  • Test 11.10.9 : Chaque indication de type de données et/ou de format qui utilise un passage de texte lié par la propriété ARIA aria-describedby ou aria-labelledby vérifie-t-elle ces conditions ?
    • Le passage de texte est identifié via un attribut id ;
    • La valeur de l’attribut id est unique ;
    • Les valeurs de la propriété ARIA aria-describedby ou aria-labelledby sont égales aux valeurs des attributs id.
  • Test 11.10.10 : Chaque champ de formulaire qui utilise un attribut title comme aide à la saisie, vérifie-t-il une de ces conditions ?
    • L’attribut placeholder est absent ;
    • L’attribut placeholder est identique à l’attribut title.

Critère 11.11 [AA] Dans chaque formulaire, le contrôle de saisie est-il accompagné, si nécessaire, de suggestions facilitant la correction des erreurs de saisie ?

  • Test 11.11.1 : Pour chaque formulaire, pour chaque erreur de saisie, les types et les formats de données sont-ils suggérés, si nécessaire ?
  • Test 11.11.2 : Pour chaque formulaire, pour chaque erreur de saisie, des exemples de valeurs attendues sont-ils suggérés, si nécessaire ?

Critère 11.12 [AA] Pour chaque formulaire, les données à caractère financier, juridique ou personnel peuvent-elles être modifiées, mises à jour ou récupérées par l’utilisateur ?

  • Test 11.12.1 : Pour chaque formulaire, la saisie des données à caractère financier, juridique ou personnelle vérifie-t-elle une de ces conditions ?
    • L’utilisateur peut modifier ou annuler les données et les actions effectuées sur ces données après leur saisie ;
    • L’utilisateur peut vérifier et corriger les données avant la validation du formulaire ;
    • Un mécanisme de confirmation explicite, via un champ de formulaire ou une étape supplémentaire, est présent.
  • Test 11.12.2 : Pour chaque formulaire, la suppression des données à caractère financier, juridique ou personnelle vérifie-t-elle une de ces conditions ?
    • Un mécanisme permet de récupérer les données supprimées par l’utilisateur ;
    • Un mécanisme de confirmation explicite de la suppression, via un champ de formulaire ou une étape supplémentaire, est présent.

Critère 11.13 [AAA] Pour chaque formulaire, toutes les données peuvent-elles être modifiées, mises à jour ou récupérées par l’utilisateur ?

  • Test 11.13.1 : Pour chaque formulaire, la saisie des données vérifie-t-elle une de ces conditions ?
    • L’utilisateur peut modifier ou annuler les données et les actions effectuées sur ces données après leur saisie ;
    • L’utilisateur peut vérifier et corriger les données avant la validation du formulaire ;
    • Un mécanisme de confirmation explicite, via un champ de formulaire ou une étape supplémentaire, est présent.
  • Test 11.13.2 : Pour chaque formulaire, la suppression des données vérifie-t-elle une de ces conditions ?
    • Un mécanisme permet de récupérer les données supprimées par l’utilisateur ;
    • Un mécanisme de confirmation explicite de la suppression, via un champ de formulaire ou une étape supplémentaire, est présent.

Critère 11.14 [AAA] Pour chaque formulaire, des aides à la saisie sont-elles présentes ?

  • Test 11.14.1 : Chaque formulaire vérifie-t-il une de ces conditions ?
    • Il existe un lien vers une page d’aide ;
    • Il existe des indications avant le formulaire ;
    • Il existe des indications avant les champs de formulaire ;
    • Il existe des indications dans l’étiquette du champ de formulaire ;
    • Il existe des indications dans un passage de texte lié par la propriété ARIA aria-describedby ;
    • Un assistant est disponible.
  • Test 11.14.2 : Chaque indication qui utilise la propriété ARIA aria-label doit être accompagnée d’une indication visuelle équivalente explicite, cette règle est-elle respectée ?
  • Test 11.14.3 : Chaque indication qui utilise un passage de texte lié par la propriété ARIA aria-describedby vérifie-t-elle ces conditions ?
    • Le passage de texte est identifié via un attribut id ;
    • La valeur de l’attribut id est unique ;
    • La valeur de la propriété ARIA aria-describedby est égale à la valeur de l’attribut id.
  • Test 11.14.4 : Chaque champ de type texte vérifie-t-il, si nécessaire, l’une de ces conditions ?
    • Un correcteur orthographique est disponible ;
    • Des suggestions de saisie sont disponibles avant le champ du formulaire ;
    • Des suggestions de saisie sont disponibles dans l’étiquette du champ de formulaire ;
    • Des suggestions de saisie sont disponibles dans un passage de texte lié par la propriété ARIA aria-describedby.
  • Test 11.14.5 : Chaque suggestion qui utilise la propriété ARIA aria-label doit être accompagnée d’une suggestion visuelle équivalente explicite, cette règle est-elle respectée ?
  • Test 11.14.6 : Chaque suggestion qui utilise un passage de texte lié par la propriété ARIA aria-describedby vérifie-t-elle ces conditions ?
    • Le passage de texte est identifié via un attribut id ;
    • La valeur de l’attribut id est unique ;
    • La valeur de la propriété ARIA aria-describedby est égale à la valeur de l’attribut id.

Critère 11.15 [AAA] Pour chaque formulaire, chaque aide à la saisie est-elle pertinente ?

  • Test 11.15.1 : Pour chaque formulaire, chaque aide à la saisie est-elle pertinente ?

13. Consultation

Recommandation

Vérifier que l’utilisateur a le contrôle des procédés de rafraîchissement, des changements brusques de luminosité, des ouvertures de nouvelles fenêtres et des contenus en mouvement ou clignotants. Indiquer lorsqu’un contenu s’ouvre dans une nouvelle fenêtre et donner des informations relatives à la consultation des fichiers en téléchargement. Ne pas faire dépendre l’accomplissement d’une tâche d’une limite de temps sauf si elle est essentielle et s’assurer que les données saisies sont récupérées après une interruption de session authentifiée. S’assurer que les expressions inhabituelles et le jargon sont explicités. Proposer des versions accessibles ou rendre accessibles les documents en téléchargement.

Mots clés
  • Principe : Perceptible

Critère 13.1 [A] Pour chaque page Web, l’utilisateur a-t-il le contrôle de chaque limite de temps modifiant le contenu (hors cas particuliers) ?

  • 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.
  • 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) ?
  • 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.
  • 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.

Critère 13.2 [A] Dans chaque page Web, pour chaque ouverture de nouvelle fenêtre, l’utilisateur est-il averti ?

  • Test 13.2.1 : Dans chaque page Web, pour chaque ouverture d’une nouvelle fenêtre effectuée via un lien (attribut target) ou une commande JavaScript, l’utilisateur est-il averti ?
  • Test 13.2.2 : Dans chaque page Web, pour chaque ouverture d’une nouvelle fenêtre effectuée via une balise object, ou embed, l’utilisateur est-il averti ?
  • Test 13.2.3 : Dans chaque page Web, pour chaque ouverture d’une nouvelle fenêtre effectuée via un contrôle de formulaire, l’utilisateur est-il averti ?

Critère 13.3 [A] Dans chaque page Web, l’ouverture d’une nouvelle fenêtre ne doit pas être déclenchée sans action de l’utilisateur. Cette règle est-elle respectée ?

  • Test 13.3.1 : Dans chaque page Web, l’ouverture d’une nouvelle fenêtre ne doit pas être déclenchée sans action de l’utilisateur. Cette règle est-elle respectée ?

Critère 13.4 [AAA] Dans chaque page Web, une tâche ne doit pas requérir de limite de temps pour être réalisée, sauf si elle se déroule en temps réel ou si cette limite de temps est essentielle. Cette règle est-elle respectée ?

  • Test 13.4.1 : Dans chaque page Web, chaque tâche limitée dans le temps vérifie-t-elle une de ces conditions ?
    • La tâche se déroule en temps réel ;
    • La tâche requiert une limite de temps essentielle à son bon déroulement.

Critère 13.5 [AAA] Dans chaque page Web, lors d’une interruption de session authentifiée, les données saisies par l’utilisateur sont-elles récupérées après ré-authentification ?

  • Test 13.5.1 : Dans chaque page Web, lors d’une interruption de session authentifiée, les données saisies par l’utilisateur sont-elles récupérées après ré-authentification ?

Critère 13.6 [A] Dans chaque page Web, pour chaque fichier en téléchargement, des informations relatives à sa consultation sont-elles présentes (hors cas particuliers) ?

  • Test 13.6.1 : Dans chaque page Web, chaque fichier en téléchargement via un lien ou un formulaire a-t-il des informations relatives à son format (hors cas particuliers) ?
  • Test 13.6.2 : Dans chaque page Web, chaque fichier en téléchargement via un lien ou un formulaire a-t-il des informations relatives à son poids (hors cas particuliers) ?
  • Test 13.6.3 : Dans chaque page Web, chaque fichier en téléchargement via un lien ou un formulaire a-t-il, si nécessaire, des informations relatives à sa langue (hors cas particuliers) ?

Critère 13.7 [A] Dans chaque page Web, chaque document bureautique en téléchargement possède-t-il, si nécessaire, une version accessible ?

  • Test 13.7.1 : Dans chaque page Web, chaque fonctionnalité de téléchargement d’un document bureautique vérifie-t-elle une de ces conditions ?
    • Le document en téléchargement est compatible avec l’accessibilité ;
    • Il existe une version alternative du document en téléchargement compatible avec l’accessibilité ;
    • Il existe une version alternative au format HTML du document en téléchargement.

Critère 13.8 [A] Pour chaque document bureautique ayant une version accessible, cette version offre-t-elle la même information ?

  • Test 13.8.1 : Chaque document bureautique ayant une version accessible vérifie-t-il une de ces conditions ?
    • La version compatible avec l’accessibilité offre la même information ;
    • La version alternative au format HTML est pertinente et offre la même information.

Critère 13.9 [AAA] Dans chaque page Web, les expressions inhabituelles, les expressions idiomatiques ou le jargon sont-ils explicités ?

  • Test 13.9.1 : Dans chaque page Web, chaque expression inhabituelle ou limitée, chaque expression idiomatique ou le jargon vérifie-t-il une des conditions suivantes ?
    • Il existe une définition dans le contexte adjacent de l’expression indiquée par la balise dfn ;
    • Il existe une définition via une liste de définition ;
    • Il existe une définition dans la page ;
    • L’expression est contenue dans un lien permettant d’accéder à la définition.

Critère 13.10 [AAA] Dans chaque page Web, pour chaque expression inhabituelle ou limitée, idiomatique ou de jargon ayant une définition, cette définition est-elle pertinente ?

  • Test 13.10.1 : Dans chaque page Web, pour chaque expression inhabituelle ou limitée, idiomatique ou de jargon ayant une définition, cette définition vérifie-t-elle l’une de ces conditions ?
    • Le contenu de la définition associée est pertinent ;
    • Le contenu de la balise dd de la liste de définition est pertinent ;
    • La définition donnée par le contexte adjacent est pertinente.

Critère 13.11 [A] Dans chaque page Web, chaque contenu cryptique (art ASCII, émoticon, syntaxe cryptique) a-t-il une alternative ?

  • Test 13.11.1 : Dans chaque page Web, chaque contenu cryptique (art ASCII, émoticon, syntaxe cryptique) vérifie-t-il une de ces conditions ?
    • Un attribut title est disponible ;
    • Une définition est donnée par le contexte adjacent.

Critère 13.12 [A] Dans chaque page Web, pour chaque contenu cryptique (art ASCII, émoticon, syntaxe cryptique) ayant une alternative, cette alternative est-elle pertinente ?

  • Test 13.12.1 : Dans chaque page Web, chaque contenu cryptique (art ASCII, émoticon, syntaxe cryptique) vérifie-t-il une de ces conditions ?
    • Le contenu de l’attribut title est pertinent ;
    • La définition donnée par le contexte adjacent est pertinente.

Critère 13.13 [AAA] Dans chaque page Web, pour chaque mot dont le sens ne peut être compris sans en connaître la prononciation, celle-ci est-elle indiquée ?

  • Test 13.13.1 : Dans chaque page Web, chaque mot dont le sens ne peut être compris sans en connaître la prononciation, vérifie-t-il une de ces conditions ?
    • L’indication de la prononciation phonétique est présente de manière adjacente ;
    • L’indication de la prononciation phonétique est accessible via un lien.

Critère 13.14 [AAA] Dans chaque page Web, chaque texte qui nécessite un niveau de lecture plus avancé que le premier cycle de l’enseignement secondaire a-t-il une version alternative ?

  • Test 13.14.1 : Dans chaque page Web, chaque texte qui nécessite un niveau de lecture plus avancé que le premier cycle de l’enseignement secondaire (hors noms propres et titre) vérifie-t-il une de ces conditions ?
    • Une illustration ou des symboles graphiques adaptés au niveau de lecture du premier cycle de l’enseignement secondaire sont présents ;
    • Une version en Langue des Signes Française est présente ;
    • Une version vocalisée du texte est présente ;
    • Un résumé adapté au niveau de lecture du premier cycle de l’enseignement secondaire est présent.

Critère 13.15 [A] Dans chaque page Web, les changements brusques de luminosité ou les effets de flash sont-ils correctement utilisés ?

  • Test 13.15.1 : Dans chaque page Web, chaque image (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-elle 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 à 21 824 pixels.
  • Test 13.15.2 : Dans chaque page Web, chaque script 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 à 21 824 pixels.
  • Test 13.15.3 : Dans chaque page Web, chaque mise en forme CSS qui provoque un changement brusque de luminosité ou un effet de flash vérifie-t-elle 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 à 21 824 pixels.

Critère 13.16 [AAA] Dans chaque page Web, les changements brusques de luminosité ou les effets de flash ont-ils une fréquence inférieure ou égale à 3 par seconde ?

Critère 13.17 [A] Dans chaque page Web, chaque contenu en mouvement ou clignotant est-il contrôlable par l’utilisateur ?

  • Test 13.17.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.
  • Test 13.17.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.