Aller au contenu principal

UUV a11y

@uuv/a11y est la partie de la solution @uuv utilisée pour effectuer des contrôles d'accessibilité automatisés afin de garantir la non-régression.

RGAA

Légende

remarque

✔️ : La règle est implémentée de manière automatisée

📆 : L'implémentation de la règle est programmée

⚠️ : La règle est partiellement implémentée

🖐️ : Les noeuds du DOM sont collectés pour une analyse manuelle

: La règle ne sera pas implémentée

1. Images ✔️ 7% ⚠️ 1 📆 34 ❌ 1

attention

La différence entre une image décorative et une image porteuse d'informations étant subjective (comme précisé sur par le W3C), nous avons choisi de définir une image porteuse d'informations comme une image ayant une alternative textuelle pour favoriser l'automatisation des contrôles.
Pour les contrôles concernant les alternatives textuelles, nous utilisons la librairie dom-accessibility-api qui implémente les règles du W3C

2. Cadres ✔️ 50% 🖐️ 1

  • 2.1 ✔️ 100%

    Chaque cadre a-t-il un titre de cadre ?

    • 2.1.1 ✔️ 1

      Chaque cadre (balise `<iframe>` ou `<frame>`) a-t-il un attribut `title` ?

  • 2.2 ✔️ 0% 🖐️ 1

    Pour chaque cadre ayant un titre de cadre, ce titre de cadre est-il pertinent ?

    • 2.2.1 🖐️ 1

      Pour chaque cadre (balise `<iframe>` ou `<frame>`) ayant un attribut `title`, le contenu de cet attribut est-il pertinent ?

3. Couleurs ✔️ 0%

  • 3.1 ✔️ 0%

    Dans chaque page web, l’information ne doit pas être donnée uniquement par la couleur. Cette règle est-elle respectée ?

  • 3.2 ✔️ 0%

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

    • 3.2.1

      Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée inférieure à 24px vérifient-ils une de ces conditions (hors cas particuliers) ?
      Le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins ;
      Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.

    • 3.2.2

      Dans chaque page web, le texte et le texte en image en gras d’une taille restituée inférieure à 18,5px vérifient-ils une de ces conditions (hors cas particuliers) ?
      Le rapport de contraste entre le texte et son arrière-plan est de 4.5:1, au moins ;
      Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 4.5:1, au moins.

    • 3.2.3

      Dans chaque page web, le texte et le texte en image sans effet de graisse d’une taille restituée supérieure ou égale à 24px vérifient-ils une de ces conditions (hors cas particuliers) ?
      Le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins ;
      Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins.

    • 3.2.4

      Dans chaque page web, le texte et le texte en image en gras d’une taille restituée supérieure ou égale à 18,5px vérifient-ils une de ces conditions (hors cas particuliers) ?
      Le rapport de contraste entre le texte et son arrière-plan est de 3:1, au moins ;
      Un mécanisme permet à l’utilisateur d’afficher le texte avec un rapport de contraste de 3:1, au moins.

    • 3.2.5

      Dans le mécanisme qui permet d’afficher un rapport de contraste conforme, le rapport de contraste entre le texte et la couleur d’arrière-plan est-il suffisamment élevé ?

  • 3.3 ✔️ 0%

    Dans chaque page web, les couleurs utilisées dans les composants d’interface ou les éléments graphiques porteurs d’informations sont-elles suffisamment contrastées (hors cas particuliers) ?

4. Multimédia ✔️ 0%

5. Tableaux ✔️ 47% 🖐️ 8

attention

Nous considérons qu'un tableau de mise en forme est une balise table possédant le rôle presentation
Nous considérons qu'un tableau avec header est une balise table ou un rôle table possédant une balise th ou un élément avec un rôle rowheader ou un élément avec un rôle columnheader

  • 5.1 ✔️ 100%

    Chaque tableau de données complexe a-t-il un résumé ?

  • 5.2 ✔️ 0% 🖐️ 1

    Pour chaque tableau de données complexe ayant un résumé, celui-ci est-il pertinent ?

  • 5.3 ✔️ 0% 🖐️ 1

    Pour chaque tableau de mise en forme, le contenu linéarisé reste-t-il compréhensible ?

    • 5.3.1 🖐️ 1

      Chaque tableau de mise en forme vérifie-t-il ces conditions ?
      Le contenu linéarisé reste compréhensible ;
      La balise `<table>` possède un attribut `role="presentation"`.

  • 5.4 ✔️ 100%

    Pour chaque tableau de données ayant un titre, le titre est-il correctement associé au tableau de données ?

  • 5.5 ✔️ 0% 🖐️ 1

    Pour chaque tableau de données ayant un titre, celui-ci est-il pertinent ?

  • 5.6 ✔️ 0% 🖐️ 4

    Pour chaque tableau de données, chaque en-tête de colonne et chaque en-tête de ligne sont-ils correctement déclarés ?

  • 5.7 ✔️ 80% 🖐️ 1

    Pour chaque tableau de données, la technique appropriée permettant d’associer chaque cellule avec ses en-têtes est-elle utilisée (hors cas particuliers) ?

    • 5.7.1 ✔️ 1

      Pour chaque contenu de balise `<th>` s’appliquant à la totalité de la ligne ou de la colonne, la balise `<th>` respecte-t-elle une de ces conditions (hors cas particuliers) ?
      La balise `<th>` possède un attribut `id` unique ;
      La balise `<th>` possède un attribut `scope` ;
      La balise `<th>` possède un attribut WAI-ARIA `role="rowheader"` ou `role="columnheader"`.

    • 5.7.2 ✔️ 1

      Pour chaque contenu de balise `<th>` s’appliquant à la totalité de la ligne ou de la colonne et possédant un attribut `scope`, la balise `<th>` vérifie-t-elle une de ces conditions ?
      La balise `<th>` possède un attribut `scope` avec la valeur `"row"` pour les en-têtes de ligne ;
      La balise `<th>` possède un attribut `scope` avec la valeur `"col"` pour les en-têtes de colonne.

    • 5.7.3 ✔️ 1

      Pour chaque contenu de balise `<th>` ne s’appliquant pas à la totalité de la ligne ou de la colonne, la balise `<th>` vérifie-t-elle ces conditions ?
      La balise `<th>` ne possède pas d’attribut `scope` ;
      La balise `<th>` ne possède pas d’attribut WAI-ARIA `role="rowheader"` ou `role="columnheader"` ;
      La balise `<th>` possède un attribut `id` unique.

    • 5.7.4 🖐️ 1

      Pour chaque contenu de balise `<td>` ou `<th>` associée à un ou plusieurs en-têtes possédant un attribut `id`, la balise vérifie-t-elle ces conditions ?
      La balise possède un attribut `headers` ;
      L’attribut `headers` possède la liste des valeurs d’attribut `id` des en-têtes associés.

    • 5.7.5 ✔️ 1

      Pour chaque balise pourvue d’un attribut WAI-ARIA `role="rowheader"` ou `role="columnheader"` dont le contenu s’applique à la totalité de la ligne ou de la colonne, la balise vérifie-t-elle une de ces conditions ?
      La balise possède un attribut WAI-ARIA `role="rowheader"` pour les en-têtes de ligne ;
      La balise possède un attribut WAI-ARIA `role="columnheader"` pour les en-têtes de colonne.

  • 5.8 ✔️ 100%

    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 ?

    • 5.8.1 ✔️ 1

      Chaque tableau de mise en forme (balise `<table>`) vérifie-t-il ces conditions ?
      Le tableau de mise en forme (balise `<table>`) n’a pas d’attribut `summary` (sinon vide) et ne contient pas de balises `<caption>`, `<th>`, `<thead>`, `<tfoot>` ou de balises ayant un attribut WAI-ARIA `role="rowheader"`, `role="columnheader"` ;
      Les cellules du tableau de mise en forme (balises `<td>`) ne possèdent pas d’attributs `scope`, `headers` et `axis`.

6. Liens ✔️ 17% 🖐️ 1 ⚠️ 4

7. Scripts ✔️ 0%

8. Éléments obligatoires ✔️ 46% 🖐️ 5 📆 2

  • 8.1 ✔️ 100%

    Chaque page web est-elle définie par un type de document ?

  • 8.2 ✔️ 0% 📆 1

    Pour chaque page web, le code source généré est-il valide selon le type de document spécifié ?

    • 8.2.1 📆

      Pour chaque déclaration de type de document, le code source généré de la page vérifie-t-il ces conditions ?
      Les balises, attributs et valeurs d’attributs respectent les règles d’écriture ;
      L’imbrication des balises est conforme ;
      L’ouverture et la fermeture des balises sont conformes ;
      Les valeurs d’attribut id sont uniques dans la page ;
      Les attributs ne sont pas doublés sur un même élément.

  • 8.3 ✔️ 100%

    Dans chaque page web, la langue par défaut est-elle présente ?

    • 8.3.1 ✔️ 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.

  • 8.4 ✔️ 0% 🖐️ 1

    Pour chaque page web ayant une langue par défaut, le code de langue est-il pertinent ?

    • 8.4.1 🖐️ 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.

  • 8.5 ✔️ 100%

    Chaque page web a-t-elle un titre de page ?

  • 8.6 ✔️ 0% 🖐️ 1

    Pour chaque page web ayant un titre de page, ce titre est-il pertinent ?

    • 8.6.1 🖐️ 1

      Pour chaque page web ayant un titre de page (balise `<title>`), le contenu de cette balise est-il pertinent ?

  • 8.7 ✔️ 0% 🖐️ 1

    Dans chaque page web, chaque changement de langue est-il indiqué dans le code source (hors cas particuliers) ?

    • 8.7.1 🖐️ 1

      Dans chaque page web, chaque texte écrit dans une langue différente de la langue par défaut vérifie-t-il une de ces conditions (hors cas particuliers) ?
      L’indication de langue est donnée sur l’élément contenant le texte (attribut `lang` et/ou `xml:lang`) ;
      L’indication de langue est donnée sur un des éléments parents (attribut `lang` et/ou `xml:lang`)

  • 8.8 ✔️ 0% 🖐️ 1

    Dans chaque page web, le code de langue de chaque changement de langue est-il valide et pertinent ?

    • 8.8.1 🖐️ 1

      Pour chaque page web, le code de langue de chaque changement de langue vérifie-t-il ces conditions ?
      Le code de langue est valide ;
      Le code de langue est pertinent.

  • 8.9 ✔️ 0% 📆 1

    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 ?

  • 8.10 ✔️ 50% 🖐️ 1

    Dans chaque page web, les changements du sens de lecture sont-ils signalés ?

    • 8.10.1 ✔️ 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` ?

    • 8.10.2 🖐️ 1

      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 ✔️ 0%

  • 9.1 ✔️ 0%

    Dans chaque page web, l’information est-elle structurée par l’utilisation appropriée de titres ?

    • 9.1.1

      Dans chaque page web, la hiérarchie entre les titres (balise `<hx>` ou balise possédant un attribut WAI-ARIA `role="heading"` associé à un attribut WAI-ARIA `aria-level`) est-elle pertinente ?

    • 9.1.2

      Dans chaque page web, le contenu de chaque titre (balise `<hx>` ou balise possédant un attribut WAI-ARIA `role="heading"` associé à un attribut WAI-ARIA `aria-level`) est-il pertinent ?

    • 9.1.3

      Dans chaque page web, chaque passage de texte constituant un titre est-il structuré à l’aide d’une balise `<hx>` ou d’une balise possédant un attribut WAI-ARIA `role="heading"` associé à un attribut WAI-ARIA `aria-level` ?

  • 9.2 ✔️ 0%

    Dans chaque page web, la structure du document est-elle cohérente (hors cas particuliers) ?

  • 9.3 ✔️ 0%

    Dans chaque page web, chaque liste est-elle correctement structurée ?

    • 9.3.1

      Dans chaque page web, les informations regroupées visuellement sous forme de liste non ordonnée vérifient-elles une de ces conditions ?
      La liste utilise les balises HTML `<ul>` et `<li>` ;
      La liste utilise les attributs WAI-ARIA `role="list"` et `role="listitem"`.

    • 9.3.2

      Dans chaque page web, les informations regroupées visuellement sous forme de liste ordonnée vérifient-elles une de ces conditions ?
      La liste utilise les balises HTML `<ol>` et `<li>` ;
      La liste utilise les attributs WAI-ARIA `role="list"` et `role="listitem"`.

    • 9.3.3

      Dans chaque page web, les informations regroupées sous forme de liste de description utilisent-elles les balises `<dl>` et `<dt>/<dd>` ?

  • 9.4 ✔️ 0%

    Dans chaque page web, chaque citation est-elle correctement indiquée ?

    • 9.4.1

      Dans chaque page web, chaque citation courte utilise-t-elle une balise `<q>` ?

    • 9.4.2

      Dans chaque page web, chaque bloc de citation utilise-t-il une balise `<blockquote>` ?

10. Présentation de l’information ✔️ 0%

  • 10.1 ✔️ 0%

    Dans le site web, des feuilles de styles sont-elles utilisées pour contrôler la présentation de l’information ?

    • 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 généré des pages. Cette règle est-elle respectée ?

    • 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 généré des pages. Cette règle est-elle respectée ?

    • 10.1.3

      Dans chaque page web, l’utilisation des espaces vérifie-t-elle ces conditions ?
      Les espaces ne sont pas utilisées pour séparer les lettres d’un mot ;
      Les espaces ne sont pas utilisées pour simuler des tableaux ;
      Les espaces ne sont pas utilisées pour simuler des colonnes de texte.

  • 10.2 ✔️ 0%

    Dans chaque page web, le contenu visible porteur d’information reste-t-il présent lorsque les feuilles de styles sont désactivées ?

  • 10.3 ✔️ 0%

    Dans chaque page web, l’information reste-t-elle compréhensible lorsque les feuilles de styles sont désactivées ?

  • 10.4 ✔️ 0%

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

    • 10.4.1

      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 selon une de ces conditions (hors cas particuliers) ?
      Lors de l’utilisation de la fonction d’agrandissement du texte du navigateur ;
      Lors de l’utilisation des fonctions de zoom graphique du navigateur ;
      Lors de l’utilisation d’un composant d’interface propre au site permettant d’agrandir le texte ou de zoomer.

    • 10.4.2

      Dans chaque page web, l’augmentation de la taille des caractères jusqu’à 200 %, au moins, doit être possible pour l’ensemble du texte dans la page. Cette règle est-elle respectée selon une de ces conditions (hors cas particuliers) ?
      Lors de l’utilisation de la fonction d’agrandissement du texte du navigateur ;
      Lors de l’utilisation des fonctions de zoom graphique du navigateur ;
      Lors de l’utilisation d’un composant d’interface propre au site permettant d’agrandir le texte ou de zoomer.

  • 10.5 ✔️ 0%

    Dans chaque page web, les déclarations CSS de couleurs de fond d’élément et de police sont-elles correctement utilisées ?

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

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

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

  • 10.6 ✔️ 0%

    Dans chaque page web, chaque lien dont la nature n’est pas évidente est-il visible par rapport au texte environnant ?

    • 10.6.1

      Dans chaque page web, chaque lien texte signalé uniquement par la couleur, et dont la nature n’est pas évidente, vérifie-t-il ces conditions ?
      La couleur du lien a un rapport de contraste supérieur ou égal à 3:1 par rapport au texte environnant ;
      Le lien dispose d’une indication visuelle au survol autre qu’un changement de couleur ;
      Le lien dispose d’une indication visuelle au focus autre qu’un changement de couleur.

  • 10.7 ✔️ 0%

    Dans chaque page web, pour chaque élément recevant le focus, la prise de focus est-elle visible ?

    • 10.7.1

      Pour chaque élément recevant le focus, la prise de focus vérifie-t-elle une de ces conditions ?
      Le style du focus natif du navigateur n’est pas supprimé ou dégradé ;
      Un style du focus défini par l’auteur est visible.

  • 10.8 ✔️ 0%

    Pour chaque page web, les contenus cachés ont-ils vocation à être ignorés par les technologies d’assistance ?

    • 10.8.1

      Dans chaque page web, chaque contenu caché vérifie-t-il une de ces conditions ?
      Le contenu caché a vocation à être ignoré par les technologies d’assistance ;
      Le contenu caché n’a pas vocation à être ignoré par les technologies d’assistance et est rendu restituable par les technologies d’assistance suite à une action de l’utilisateur réalisable au clavier ou par tout dispositif de pointage sur un élément précédent le contenu caché ou suite à un repositionnement du focus dessus.

  • 10.9 ✔️ 0%

    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 ?

  • 10.10 ✔️ 0%

    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 ?

  • 10.11 ✔️ 0%

    Pour chaque page web, les contenus peuvent-ils être présentés sans perte d’information ou de fonctionnalité et sans avoir recours soit à un défilement vertical pour une fenêtre ayant une hauteur de 256 px, soit à un défilement horizontal pour une fenêtre ayant une largeur de 320 px (hors cas particuliers) ?

    • 10.11.1

      Pour chaque page web, lorsque le contenu dont le sens de lecture est horizontal est affiché dans une fenêtre réduite à une largeur de 320 px, l’ensemble des informations et des fonctionnalités sont-elles disponibles sans aucun défilement horizontal (hors cas particuliers) ?

    • 10.11.2

      Pour chaque page web, lorsque le contenu dont le sens de lecture est vertical est affiché dans une fenêtre réduite à une hauteur de 256 px, l’ensemble des informations et des fonctionnalités sont-elles disponibles sans aucun défilement vertical (hors cas particuliers) ?

  • 10.12 ✔️ 0%

    Dans chaque page web, les propriétés d’espacement du texte peuvent-elles être redéfinies par l’utilisateur sans perte de contenu ou de fonctionnalité (hors cas particuliers) ?

    • 10.12.1

      Dans chaque page web, le texte reste-t-il lisible lorsque l’affichage est modifié selon ces conditions (hors cas particuliers) ?
      L’espacement entre les lignes (`line-height`) est augmenté jusqu’à 1,5 fois la taille de la police ;
      L’espacement suivant les paragraphes (balise `<p>`) est augmenté jusqu’à 2 fois la taille de la police ;
      L’espacement des lettres (`letter-spacing`) est augmenté jusqu’à 0,12 fois la taille de la police ;
      L’espacement des mots (`word-spacing`) est augmenté jusqu’à 0,16 fois la taille de la police.

  • 10.13 ✔️ 0%

    Dans chaque page web, les contenus additionnels apparaissant à la prise de focus ou au survol d’un composant d’interface sont-ils contrôlables par l’utilisateur (hors cas particuliers) ?

    • 10.13.1

      Chaque contenu additionnel devenant visible à la prise de focus ou au survol d’un composant d’interface peut-il être masqué par une action de l’utilisateur sans déplacer le focus ou le pointeur de la souris (hors cas particuliers) ?

    • 10.13.2

      Chaque contenu additionnel qui apparait au survol d’un composant d’interface peut-il être survolé par le pointeur de la souris sans disparaître (hors cas particuliers) ?

    • 10.13.3

      Chaque contenu additionnel qui apparaît à la prise de focus ou au survol d’un composant d’interface vérifie-t-il une de ces conditions (hors cas particuliers) ?
      Le contenu additionnel reste visible jusqu’à ce que l’utilisateur retire le pointeur souris ou le focus du contenu additionnel et du composant d’interface ayant déclenché son apparition ;
      Le contenu additionnel reste visible jusqu’à ce que l’utilisateur déclenche une action masquant ce contenu sans déplacer le focus ou le pointeur de la souris du composant d’interface ayant déclenché son apparition ;
      Le contenu additionnel reste visible jusqu’à ce qu’il ne soit plus valide.

  • 10.14 ✔️ 0%

    Dans chaque page web, les contenus additionnels apparaissant via les styles CSS uniquement peuvent-ils être rendus visibles au clavier et par tout dispositif de pointage ?

    • 10.14.1

      Dans chaque page web, les contenus additionnels apparaissant au survol d’un composant d’interface via les styles CSS respectent-ils si nécessaire une de ces conditions ?
      Les contenus additionnels apparaissent également à l’activation du composant via le clavier et tout dispositif de pointage ;
      Les contenus additionnels apparaissent également à la prise de focus du composant ;
      Les contenus additionnels apparaissent également par le biais de l’activation ou de la prise de focus d’un autre composant.

    • 10.14.2

      Dans chaque page web, les contenus additionnels apparaissant au focus d’un composant d’interface via les styles CSS respectent-ils si nécessaire une de ces conditions ?
      Les contenus additionnels apparaissent également à l’activation du composant via le clavier et tout dispositif de pointage ;
      Les contenus additionnels apparaissent également au survol du composant ;
      Les contenus additionnels apparaissent également par le biais de l’activation ou du survol d’un autre composant.

11. Formulaires ✔️ 0%

  • 11.1 ✔️ 0%

    Chaque champ de formulaire a-t-il une étiquette ?

  • 11.2 ✔️ 0%

    Chaque étiquette associée à un champ de formulaire est-elle pertinente (hors cas particuliers) ?

  • 11.3 ✔️ 0%

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

  • 11.4 ✔️ 0%

    Dans chaque formulaire, chaque étiquette de champ et son champ associé sont-ils accolés (hors cas particuliers) ?

    • 11.4.1

      Chaque étiquette de champ et son champ associé sont-ils accolés ?

    • 11.4.2

      Chaque étiquette accolée à un champ (à l’exception des cases à cocher, bouton radio ou balises ayant un attribut WAI-ARIA `role="checkbox"`, `role="radio"` ou `role="switch"`), vérifie-t-elle ces conditions (hors cas particuliers) ?
      L’étiquette est visuellement accolée immédiatement au-dessus ou à gauche du champ de formulaire lorsque le sens de lecture de la langue de l’étiquette est de gauche à droite ;
      L’étiquette est visuellement accolée immédiatement au-dessus ou à droite du champ de formulaire lorsque le sens de lecture de la langue de l’étiquette est de droite à gauche.

    • 11.4.3

      Chaque étiquette accolée à un champ de type `checkbox` ou `radio` ou à une balise ayant un attribut WAI-ARIA `role="checkbox"`, `role="radio"` ou `role="switch"`, vérifie-t-elle ces conditions (hors cas particuliers) ?
      L’étiquette est visuellement accolée immédiatement au-dessous ou à droite du champ de formulaire lorsque le sens de lecture de la langue de l’étiquette est de gauche à droite ;
      L’étiquette est visuellement accolée immédiatement au-dessous ou à gauche du champ de formulaire lorsque le sens de lecture de la langue de l’étiquette est de droite à gauche.

  • 11.5 ✔️ 0%

    Dans chaque formulaire, les champs de même nature sont-ils regroupés, si nécessaire ?

    • 11.5.1

      Les champs de même nature vérifient-ils l’une de ces conditions, si nécessaire ?
      Les champs de même nature sont regroupés dans une balise `<fieldset>` ;
      Les champs de même nature sont regroupés dans une balise possédant un attribut WAI-ARIA `role="group"` ;
      Les champs de même nature de type radio (`<input type="radio">`) ou balises possédant un attribut WAI-ARIA `role="radio"`) sont regroupés dans une balise possédant un attribut WAI-ARIA `role="radiogroup"` ou `role="group"`.

  • 11.6 ✔️ 0%

    Dans chaque formulaire, chaque regroupement de champs de même nature a-t-il une légende ?

  • 11.7 ✔️ 0%

    Dans chaque formulaire, chaque légende associée à un regroupement de champs de même nature est-elle pertinente ?

  • 11.8 ✔️ 0%

    Dans chaque formulaire, les items de même nature d’une liste de choix sont-ils regroupés de manière pertinente ?

    • 11.8.1

      Pour chaque balise `<select>`, les items de même nature d’une liste de choix sont-ils regroupés avec une balise `<optgroup>`, si nécessaire ?

    • 11.8.2

      Dans chaque balise `<select>`, chaque balise `<optgroup>` possède-t-elle un attribut `label` ?

    • 11.8.3

      Pour chaque balise `<optgroup>` ayant un attribut `label`, le contenu de l’attribut `label` est-il pertinent ?

  • 11.9 ✔️ 0%

    Dans chaque formulaire, l’intitulé de chaque bouton est-il pertinent (hors cas particuliers) ?

    • 11.9.1

      L’intitulé de chaque bouton vérifie-t-il ces conditions (hors cas particuliers) ?
      S’il est présent, le contenu de l’attribut WAI-ARIA `aria-label` est pertinent ;
      S’il est présent, le passage de texte lié au bouton via un attribut WAI-ARIA `aria-labelledby` est pertinent ;
      S’il est présent, le contenu de l’attribut `value` d’une balise `<input>` de type `submit`, `reset` ou `button` est pertinent ;
      S’il est présent, le contenu de la balise `<button>` est pertinent ;
      S’il est présent, le contenu de l’attribut `alt` d’une balise `<input>` de type `image` est pertinent ;
      S’il est présent, le contenu de l’attribut `title` est pertinent.

    • 11.9.2

      Chaque bouton affichant un intitulé visible vérifie-t-il ces conditions (hors cas particuliers) ?
      S’il est présent, le contenu de l’attribut WAI-ARIA `aria-label `contient au moins l’intitulé visible ;
      S’il est présent, le passage de texte lié au bouton via un attribut WAI-ARIA `aria-labelledby` contient au moins l’intitulé visible ;
      S’il est présent, le contenu de l’attribut value d’une balise `<input>` de type `submit`, `reset` ou `button` contient au moins l’intitulé visible ;
      S’il est présent, le contenu de la balise `<button>` contient au moins l’intitulé visible ;
      S’il est présent, le contenu de l’attribut `alt` d’une balise `<input>` de type `image` contient au moins l’intitulé visible ;
      S’il est présent, le contenu de l’attribut `title` contient au moins l’intitulé visible.

  • 11.10 ✔️ 0%

    Dans chaque formulaire, le contrôle de saisie est-il utilisé de manière pertinente (hors cas particuliers) ?

    • 11.10.1

      Les indications du caractère obligatoire de la saisie des champs vérifient-elles une de ces conditions (hors cas particuliers) ?
      Une indication de champ obligatoire est visible et permet d’identifier nommément le champ concerné préalablement à la validation du formulaire ;
      Le champ obligatoire dispose de l’attribut `aria-required="true"` ou `required` préalablement à la validation du formulaire.

    • 11.10.2

      Les champs obligatoires ayant l’attribut `aria-required="true"` ou `required` vérifient-ils une de ces conditions ?
      Une indication de champ obligatoire est visible et située dans l’étiquette associée au champ préalablement à la validation du formulaire ;
      Une indication de champ obligatoire est visible et située dans le passage de texte associé au champ préalablement à la validation du formulaire.

    • 11.10.3

      Les messages d’erreur indiquant l’absence de saisie d’un champ obligatoire vérifient-ils une de ces conditions ?
      Le message d’erreur indiquant l’absence de saisie d’un champ obligatoire est visible et permet d’identifier nommément le champ concerné ;
      Le champ obligatoire dispose de l’attribut `aria-invalid="true"`.

    • 11.10.4

      Les champs obligatoires ayant l’attribut `aria-invalid="true"` vérifient-ils une de ces conditions ?
      Le message d’erreur indiquant le caractère invalide de la saisie est visible et situé dans l’étiquette associée au champ ;
      Le message d’erreur indiquant le caractère invalide de la saisie est visible et situé dans le passage de texte associé au champ.

    • 11.10.5

      Les instructions et indications du type de données et/ou de format obligatoires vérifient-elles une de ces conditions ?
      Une instruction ou une indication du type de données et/ou de format obligatoire est visible et permet d’identifier nommément le champ concerné préalablement à la validation du formulaire ;
      Une instruction ou une indication du type de données et/ou de format obligatoire est visible dans l’étiquette ou le passage de texte associé au champ préalablement à la validation du formulaire.

    • 11.10.6

      Les messages d’erreurs fournissant une instruction ou une indication du type de données et/ou de format obligatoire des champs vérifient-ils une de ces conditions ?
      Le message d’erreur fournissant une instruction ou une indication du type de données et/ou de format obligatoires est visible et identifie le champ concerné ;
      Le champ dispose de l’attribut `aria-invalid="true"`.

    • 11.10.7

      Les champs ayant l’attribut `aria-invalid="true"` dont la saisie requiert un type de données et/ou de format obligatoires vérifient-ils une de ces conditions ?
      Une instruction ou une indication du type de données et/ou de format obligatoire est visible et située dans la balise `<label>` associée au champ ;
      Une instruction ou une indication du type de données et/ou de format obligatoire est visible et située dans le passage de texte associé au champ.

  • 11.11 ✔️ 0%

    Dans chaque formulaire, le contrôle de saisie est-il accompagné, si nécessaire, de suggestions facilitant la correction des erreurs de saisie ?

    • 11.11.1

      Pour chaque erreur de saisie, les types et les formats de données sont-ils suggérés, si nécessaire ?

    • 11.11.2

      Pour chaque erreur de saisie, des exemples de valeurs attendues sont-ils suggérés, si nécessaire ?

  • 11.12 ✔️ 0%

    Pour chaque formulaire qui modifie ou supprime des données, ou qui transmet des réponses à un test ou à un examen, ou dont la validation a des conséquences financières ou juridiques, les données saisies peuvent-elles être modifiées, mises à jour ou récupérées par l’utilisateur ?

    • 11.12.1

      Pour chaque formulaire qui modifie ou supprime des données, ou qui transmet des réponses à un test ou un examen, ou dont la validation a des conséquences financières ou juridiques, 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 la validation du formulaire ;
      L’utilisateur peut vérifier et corriger les données avant la validation d’un formulaire en plusieurs étapes ;
      Un mécanisme de confirmation explicite, via une case à cocher (balise `<input>` de type `checkbox` ou balise ayant un attribut WAI-ARIA `role="checkbox"`) ou une étape supplémentaire, est présent.

    • 11.12.2

      Chaque formulaire dont la validation modifie ou supprime des données à caractère financier, juridique ou personnel vérifie-t-il une de ces conditions ?
      Un mécanisme permet de récupérer les données supprimées ou modifiées par l’utilisateur ;
      Un mécanisme de demande de confirmation explicite de la suppression ou de la modification, via un champ de formulaire ou une étape supplémentaire, est proposé.

  • 11.13 ✔️ 0%

    La finalité d’un champ de saisie peut-elle être déduite pour faciliter le remplissage automatique des champs avec les données de l’utilisateur ?

12. Navigation ✔️ 0%

13. Consultation ✔️ 0%

  • 13.1 ✔️ 0%

    Pour chaque page web, l’utilisateur a-t-il le contrôle de chaque limite de temps modifiant le contenu (hors cas particuliers) ?

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

    • 13.1.2

      Pour chaque page web, chaque procédé de redirection effectué via une balise `<meta>` est-il immédiat (hors cas particuliers) ?

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

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

  • 13.2 ✔️ 0%

    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 ?

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

  • 13.3 ✔️ 0%

    Dans chaque page web, chaque document bureautique en téléchargement possède-t-il, si nécessaire, une version accessible (hors cas particuliers) ?

    • 13.3.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 en existe une version alternative en téléchargement compatible avec l'accessibilité ;
      Il en existe une version alternative au format HTML compatible avec l'accessibilité.

  • 13.4 ✔️ 0%

    Pour chaque document bureautique ayant une version accessible, cette version offre-t-elle la même information ?

    • 13.4.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.

  • 13.5 ✔️ 0%

    Dans chaque page web, chaque contenu cryptique (art ASCII, émoticône, syntaxe cryptique) a-t-il une alternative ?

    • 13.5.1

      Dans chaque page web, chaque contenu cryptique (art ASCII, émoticône, 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.

  • 13.6 ✔️ 0%

    Dans chaque page web, pour chaque contenu cryptique (art ASCII, émoticône, syntaxe cryptique) ayant une alternative, cette alternative est-elle pertinente ?

    • 13.6.1

      Dans chaque page web, chaque contenu cryptique (art ASCII, émoticône, 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.

  • 13.7 ✔️ 0%

    Dans chaque page web, les changements brusques de luminosité ou les effets de flash sont-ils correctement utilisés ?

    • 13.7.1

      Dans chaque page web, chaque image ou élément multimédia (balise `<video>`, balise `<img>`, balise `<svg>`, balise `<canvas>`, balise `<embed>` ou balise `<object>`) qui provoque un changement brusque de luminosité ou un effet de flash vérifie-t-il une de ces conditions ?
      La fréquence de l’effet est inférieure à 3 par seconde ;
      La surface totale cumulée des effets est inférieure ou égale à 21824 pixels.

    • 13.7.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 à 21824 pixels.

    • 13.7.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-il une de ces conditions ?
      La fréquence de l’effet est inférieure à 3 par seconde ;
      La surface totale cumulée des effets est inférieure ou égale à 21824 pixels.

  • 13.8 ✔️ 0%

    Dans chaque page web, chaque contenu en mouvement ou clignotant est-il contrôlable par l’utilisateur ?

    • 13.8.1

      Dans chaque page web, chaque contenu en mouvement déclenché automatiquement, vérifie-t-il une de ces conditions ?
      La durée du mouvement est inférieure ou égale à 5 secondes ;
      L’utilisateur peut arrêter et relancer le mouvement ;
      L’utilisateur peut afficher et masquer le contenu en mouvement ;
      L’utilisateur peut afficher la totalité de l’information sans le mouvement.

    • 13.8.2

      Dans chaque page web, chaque contenu clignotant déclenché automatiquement, vérifie-t-il une de ces conditions ?
      La durée du clignotement est inférieure ou égale à 5 secondes ;
      L’utilisateur peut arrêter et relancer le clignotement ;
      L’utilisateur peut afficher et masquer le contenu clignotant ;
      L’utilisateur peut afficher la totalité de l’information sans le clignotement.

  • 13.9 ✔️ 0%

    Dans chaque page web, le contenu proposé est-il consultable quelle que soit l’orientation de l’écran (portrait ou paysage) (hors cas particuliers) ?

    • 13.9.1

      Dans chaque page web, chaque contenu vérifie-t-il ces conditions (hors cas particuliers) ?
      La consultation est possible quel que soit le mode d’orientation de l’écran ;
      Le contenu proposé reste le même quel que soit le mode d’orientation de l’écran utilisé même si sa présentation et le moyen d’y accéder peut différer.

  • 13.10 ✔️ 0%

    Dans chaque page web, les fonctionnalités utilisables ou disponibles au moyen d’un geste complexe peuvent-elles être également disponibles au moyen d’un geste simple (hors cas particuliers) ?

    • 13.10.1

      Dans chaque page web, chaque fonctionnalité utilisable ou disponible suite à un contact multipoint est-elle également utilisable ou disponible suite à un contact en un point unique de l’écran (hors cas particuliers).

    • 13.10.2

      Dans chaque page web, chaque fonctionnalité utilisable ou disponible suite à un geste basé sur le suivi d’une trajectoire sur l’écran est-elle également utilisable ou disponible suite à un contact en un point unique de l’écran (hors cas particuliers).

  • 13.11 ✔️ 0%

    Dans chaque page web, les actions déclenchées au moyen d’un dispositif de pointage sur un point unique de l’écran peuvent-elles faire l’objet d’une annulation (hors cas particuliers) ?

    • 13.11.1

      Dans chaque page web, les actions déclenchées au moyen d’un dispositif de pointage sur un point unique de l’écran vérifient-elles l’une de ces conditions (hors cas particuliers) ?
      L’action est déclenchée au moment où le dispositif de pointage est relâché ou relevé ;
      L’action est déclenchée au moment où le dispositif de pointage est pressé ou posé puis annulée lorsque le dispositif de pointage est relâché ou relevé ;
      Un mécanisme est disponible pour abandonner (avant achèvement de l’action) ou annuler (après achèvement) l’exécution de l’action.

  • 13.12 ✔️ 0%

    Dans chaque page web, les fonctionnalités qui impliquent un mouvement de l’appareil ou vers l’appareil peuvent-elles être satisfaites de manière alternative (hors cas particuliers) ?

    • 13.12.1

      Dans chaque page web, les fonctionnalités disponibles en bougeant l’appareil peuvent-elles être accomplies avec des composants d’interface utilisateur (hors cas particuliers) ?

    • 13.12.2

      Dans chaque page web, les fonctionnalités disponibles en faisant un geste en direction de l’appareil peuvent-elles être accomplies avec des composants d’interface utilisateur (hors cas particuliers) ?

    • 13.12.3

      L’utilisateur a-t-il la possibilité de désactiver la détection du mouvement pour éviter un déclenchement accidentel de la fonctionnalité (hors cas particuliers) ?