Grilla

Auditer

Méthode de calcul

Cette page explique précisément comment l'outil décide du statut de chaque critère. Elle sert à justifier un résultat auprès d'un client ou d'un auditeur.

Sources

  • Référentiel : fichier officiel criteres.json de la DINUM (106 critères, tests et références).
  • Méthodologie de test : fichier officiel methodologies.json de la DINUM, affiché dans l'audit guidé.
  • Moteur de règles : axe-core, dont chaque règle est étiquetée avec les tests RGAA qu'elle couvre (par exemple RGAA-1.1.1). Seules ces règles sont exécutées.
  • Contrôles complémentaires propres à l'outil (voir plus bas).

Statut d'un critère sur une page

Pour chaque critère, l'outil réunit les résultats d'axe-core et de ses contrôles, puis applique dans l'ordre :

  1. Non conforme si au moins une erreur certaine a été trouvée.
  2. Sinon non applicable si la page ne contient aucun élément concerné (voir « Applicabilité »), ou si un test a établi que le critère ne s'applique pas (par exemple aucun lien vers un plan du site).
  3. Sinon conforme si le critère fait partie des critères qu'une machine sait trancher seule, et qu'aucun point à vérifier n'a été relevé.
  4. Sinon conforme si un test automatique l'a établi par une règle heuristique (voir « Décisions automatiques à confirmer »), sans point à vérifier.
  5. Sinon à vérifier.

Un verdict de l'auditeur (audit guidé ou menu « Statut après vérification ») remplace toujours ce résultat automatique.

Critères tranchés automatiquement

Ces 9 critères sont déclarés conformes avec certitude quand aucune erreur ni aucun point à vérifier n'est trouvé : 2.1 (titre des cadres), 6.2 (intitulé des liens), 8.1 (type de document), 8.3 (langue par défaut), 8.4 (code de langue valide), 8.5 (titre de page), 8.8 (codes des changements de langue), 11.1 (étiquette des champs), 13.9 (orientation de l'écran).

Pour deux d'entre eux, le moteur axe-core est plus permissif que le RGAA. Grilla ajoute alors sa propre vérification, alignée sur la méthodologie officielle :

  • 11.1 : axe-core accepte un champ nommé seulement par son texte d'exemple (placeholder) ou par un <label> qui l'entoure. La méthodologie RGAA ne reconnaît ni l'un ni l'autre : elle demande un <label> relié au champ par for et id, aria-labelledby, aria-label ou title (tests 11.1.1 et 11.1.2). Ces deux cas rendent le critère non conforme (règles placeholder-seul et label-sans-for). Le test 11.1.3 (une étiquette visible ou accolée au champ) ne peut pas être tranché par une machine : si un champ est nommé par aria-label, aria-labelledby, title ou un label masqué, le critère reste à vérifier (règle etiquette-non-visible). Le 11.1 n'est donc déclaré conforme automatiquement que si chaque champ a un <label for> visible.
  • 2.1 : axe-core accepte un cadre nommé par aria-label, aria-labelledby ou un rôle de présentation. Le RGAA exige un attribut title sur chaque cadre (iframe, frame). Sans lui, le critère est non conforme (règle cadre-sans-title).

Décisions automatiques à confirmer

D'autres critères sont tranchés par des tests qui reproduisent le geste d'un auditeur (navigation au clavier, zoom) ou par des règles heuristiques. Ils comptent dans le taux, mais le rapport les signale par la mention auto, avec leur justification, pour que l'auditeur les confirme :

Critère Test Conforme si Non conforme ou à vérifier si
10.4 Page affichée comme avec un zoom à 200 % (fenêtre de 640 × 400) Aucun texte coupé Texte coupé (erreur) ; texte tronqué par des points de suspension (à vérifier)
10.12 Interligne 1,5, espacement des lettres 0,12 em, des mots 0,16 em, des paragraphes 2 em Aucun texte coupé Idem
10.7 Parcours au clavier avec Tab (30 éléments au plus) ; comparaison de l'écran avec et sans focus L'écran change pour chaque élément Aucun changement visible, ou élément invisible (opacité nulle) au focus : erreur
12.9 Même parcours Le focus avance toujours Le focus reste bloqué : erreur
12.8 Même parcours L'ordre suit l'ordre visuel de la page tabindex positif, ou l'ordre remonte souvent dans la page : à vérifier
8.6 Titre de page comparé au titre principal (h1) Le titre reprend un mot significatif du h1 Titre générique (« Accueil », « Document »…) ou nom de domaine : erreur
6.1 Intitulés de liens Aucun intitulé générique ni ambigu « En savoir plus », « cliquez ici »… : à vérifier avec leur contexte ; même intitulé vers plusieurs destinations : à vérifier
12.6 Régions de la page Région principale et navigation ou en-tête balisées, ou liens d'accès rapide Ni l'un ni l'autre : à vérifier
12.1 Systèmes de navigation Menu, plus moteur de recherche ou plan du site Sinon : à vérifier
9.1 Hiérarchie des titres Un h1, aucun saut de niveau Sinon : à vérifier ou erreur

Pour éviter les fausses alertes, les tests de zoom et d'espacement ne signalent que le texte que ces réglages coupent : un texte déjà masqué dans l'affichage normal (bouton-icône, titre volontairement tronqué) n'est pas compté. Le test du focus compare tout l'écran, pour reconnaître aussi un indicateur dessiné autour d'une carte entière ou par un pseudo-élément.

Applicabilité

Un critère est jugé non applicable quand la page ne contient pas ce sur quoi il porte :

Critères Applicables si la page contient
1.x Images Une image, une zone d'image réactive, un SVG, un canvas, un objet
1.5 CAPTCHA Un CAPTCHA connu (reCAPTCHA, hCaptcha, Turnstile…)
1.9 Légendes Un élément figure
2.x Cadres Un iframe ou un frame
4.x Multimédia Une vidéo, un son, ou un lecteur YouTube, Vimeo, Dailymotion, PeerTube
5.1, 5.2 Un tableau de données complexe (fusion de cellules)
5.3, 5.8 Un tableau de mise en forme (sans en-tête ni titre)
5.4 à 5.7 Un tableau de données
6.x Liens Un lien
7.1 à 7.3 Scripts Un composant interactif personnalisé (rôle ARIA de widget, aria-expanded, onclick, tabindex sur un élément non interactif, dialog, details)
7.4 Un champ de formulaire
7.5 Un champ de formulaire ou une zone de message dynamique (role=status, alert, aria-live)
8.8 Un attribut lang ailleurs que sur la balise html
8.10 Un attribut dir
9.4 Une citation (q, blockquote)
11.x Formulaires Un champ de saisie ; 11.8 une liste déroulante ; 11.13 un champ de données personnelles
12.3, 12.4 Un lien vers un plan du site
12.5 Un moteur de recherche
13.1 Un rafraîchissement ou une redirection automatique (meta refresh)
13.2 Un lien qui ouvre une nouvelle fenêtre
13.3, 13.4 Un lien vers un document bureautique (PDF, Word, tableur…)
13.7, 13.8 Une animation, une vidéo, un carrousel, un GIF

Les autres critères (couleurs, structure, présentation, navigation…) sont toujours applicables.

Contrôles complémentaires

En plus d'axe-core, l'outil vérifie :

Critère Contrôle Résultat
8.1 Présence d'un doctype Erreur si absent
9.1 Présence de titres h1 à h6 ; sauts de niveau ; présence d'un h1 Erreur si aucun titre, sinon point à vérifier
10.1 Balises et attributs de présentation listés dans le glossaire RGAA (font, center, bgcolor, align…) Erreur
10.11 Défilement horizontal à 320 pixels de large Erreur
7.1 et 7.3 Éléments cliquables par script (onclick) qui ne sont ni des liens ni des boutons, sans rôle ou sans possibilité de focus clavier Erreur
7.4 Champs qui déclenchent un script à la modification Point à vérifier
12.7 Lien vers le contenu parmi les 5 premiers éléments focalisables Erreur si absent
13.2 Liens qui ouvrent une nouvelle fenêtre Point à vérifier

Taux de conformité

  • Page : critères conformes ÷ (conformes + non conformes + à vérifier). Les « à vérifier » comptent comme non conformes : c'est le pire cas. La borne haute de la fourchette les compte comme conformes.
  • Site (méthode DINUM) : un critère est non conforme s'il l'est sur une page au moins, non applicable s'il l'est sur toutes, à vérifier s'il l'est sur une page au moins, conforme sinon. Taux global = conformes ÷ applicables.
  • Taux moyen : moyenne des taux des pages.

Limites connues

  • Les contrastes de texte posé sur une image ou un dégradé ne sont pas mesurables automatiquement : ils ressortent « à vérifier ».
  • La pertinence d'une alternative, d'un titre ou d'un intitulé ne peut pas être jugée par une machine.
  • L'analyse porte sur l'état de la page au chargement : les contenus qui apparaissent après une action (menu, modale, onglet) ne sont pas explorés.
  • Le parcours au clavier s'arrête à 30 éléments ; la justification indique s'il a couvert toute la page.
  • Une animation pilotée par JavaScript (carrousel) peut faire croire à un changement visible au focus.
  • Les limites de temps créées en JavaScript (déconnexion après inactivité) ne sont pas détectées : 13.1 est jugé non applicable sans rafraîchissement automatique, à confirmer.

Pré-analyse IA

Pour les critères qui restent à vérifier, une pré-analyse par intelligence artificielle peut proposer un verdict. Ces suggestions ne sont jamais appliquées automatiquement et ne comptent pas dans le taux tant que l'auditeur ne les a pas acceptées. Voir Assistants IA.

  • L'audit d'une page ne dit rien des autres pages du site.