Couverture RGAA réelle
Transparence totale : statut réel critère par critère sur les 106 critères RGAA 4.1.2.
Un audit RGAA complet nécessite toujours une vérification humaine. Les critères pré-vérifiés détectent les anomalies structurelles (attribut manquant, balise absente), mais ne peuvent pas juger la pertinence du contenu (un alt="photo" passe la détection automatique sans être conforme au RGAA).
Ce que rend un scan, sur une page réelle
Le tableau ci-dessous classe les critères par ce que l'outil sait en faire. Sur une page donnée, la répartition est différente : beaucoup de critères sont sans objet — pas de vidéo, pas de tableau, pas de formulaire — et parmi ceux qui s'appliquent, la majorité revient à l'auditeur.
- Critères tranchés
- 25Conforme ou non conforme, sans intervention.
- Critères à vérifier
- 39Rendus à l'auditeur, avec la consigne de contrôle.
- Critères sans objet
- 42La page ne contient pas ce sur quoi ils portent.
Soit environ 60 % des critères applicables à vérifier à la main. Moyennes mesurées le 2026-08-03 sur 12pages réelles passées dans notre file de production. Ces nombres varient d'un site à l'autre, et ils bougent quand nos règles de détection changent : nous les remesurons à chaque campagne de correction plutôt que de les figer.
Notre méthodologie
Analyse statique
Parsing du DOM HTML avec 106 règles dédiées. Détection rapide des erreurs de code et de structure.
Analyse visuelle (Puppeteer)
Rendu JavaScript complet, calcul des contrastes réels via getComputedStyle, et vérifications visuelles complémentaires.
Analyse IA
Classification images, pertinence des alternatives textuelles, suggestions contextuelles.
Tableau complet des 106 critères
1. Images(9 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 1.1 | Alternative textuelle | Pré-vérifié | Statique + IA | Détection alt sur img, svg, area, canvas. IA pour classification décorative/informative. |
| 1.2 | Images décoratives | Pré-vérifié | Statique + IA | Vérification alt="", role=presentation, aria-hidden. IA pour détection automatique. |
| 1.3 | Pertinence des alternatives | Pré-vérifié | Statique + IA | Détection noms de fichiers, termes génériques. IA pour pertinence sémantique. Alternatives identiques sur des images de sources différentes : signalées à vérifier. |
| 1.4 | Images-texte | Pré-vérifié | Statique | Détection CAPTCHA, format fichier. Contenu texte incrusté : manuel. |
| 1.5 | CAPTCHA | Manuel | Statique | Détection reCAPTCHA, hCaptcha, alternatives audio/email. |
| 1.6 | Description détaillée | Manuel | Statique + IA | Vérification longdesc, aria-describedby, liens adjacents. |
| 1.7 | Pertinence description | Pré-vérifié | Statique | Validation cibles aria-describedby, longdesc, contenu non vide. |
| 1.8 | Images texte remplacement | Manuel | Statique + IA | Détection éléments, IA pour texte incrusté. |
| 1.9 | Légendes d'images | Pré-vérifié | Statique + IA | Association figure/figcaption, IA pour pertinence légende. |
2. Cadres(2 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 2.1 | Titre des cadres | Vérifié auto. | Statique | Vérification de l'attribut title sur iframe et frame. Cadre avec aria-hidden="true" : non applicable (2.1 et 2.2). Cadre masqué par CSS sans aria-hidden : signalé à vérifier. |
| 2.2 | Pertinence titre cadres | Pré-vérifié | Statique + IA | Détection des titres de cadre génériques, signalés à vérifier : le référentiel admet une mention générique quand le service distant n'en fournit pas de meilleure. Suggestions par fournisseur (YouTube, Maps, etc.). |
3. Couleurs(3 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 3.1 | Information par couleur | Pré-vérifié | Statique | Détection styles inline, mots-clés couleur, classes d'état colorées sans complément visible (icône ou préfixe texte). Validation contextuelle : manuel. |
| 3.2 | Contraste texte | Pré-vérifié | Puppeteer | Calcul ratio WCAG via getComputedStyle. 4.5:1 normal, 3:1 large. |
| 3.3 | Contraste graphiques | Manuel | Statique | Mesure indicative du ratio de contraste des bordures stylées par l'auteur (champs, boutons) avec le fond adjacent le plus favorable. Verdict maintenu manuel : WCAG 1.4.11 exempte les contrôles natifs et une bordure faible n'échoue que si elle est le seul moyen d'identifier le composant. |
4. Multimédia(13 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 4.1 | Transcription textuelle | Manuel | Statique | Détection video/audio, pistes track, liens transcription. |
| 4.2 | Pertinence transcription | Manuel | Statique + IA | Détection track, aria-describedby. IA pour complétude. |
| 4.3 | Sous-titres synchronisés | Pré-vérifié | Statique | Détection des pistes <track> sur <video>. Une piste kind="subtitles" (traduction) ne vaut pas conformité : le référentiel exige un sous-titrage pour sourds et malentendants (kind="captions"). Renvoi manuel pour YouTube/Vimeo. Contenu VTT non analysé. |
| 4.4 | Pertinence sous-titres | Pré-vérifié | Manuel | La pertinence de sous-titres ne s'établit pas automatiquement : le scan signale les pistes présentes et laisse le verdict à la vérification humaine. Non applicable quand aucune vidéo de la page ne porte de sous-titres. |
| 4.5 | Audiodescription | Manuel | Statique | Détection track kind=descriptions, liens version audiodécrite. |
| 4.6 | Pertinence audiodescription | Manuel | Statique | Détection track. Pertinence contenu : manuel. |
| 4.7 | Identification médias | Manuel | Statique | Vérification title, aria-label, figcaption. |
| 4.8 | Alternative non temporelle | Manuel | Statique | Canvas, object, SVG animé avec alternatives. |
| 4.9 | Pertinence alternative | Manuel | Manuel | Vérification manuelle requise. |
| 4.10 | Contrôle du son | Pré-vérifié | Statique | Détection autoplay sans muted, attribut controls. |
| 4.11 | Contrôle temporel | Manuel | Statique | Attribut controls. Contrôles personnalisés : manuel. |
| 4.12 | Contrôle non temporel | Manuel | Manuel | Canvas/SVG interactifs : vérification manuelle. |
| 4.13 | Compatibilité médias | Manuel | Statique | Labels ARIA sur contrôles, rôles appropriés. |
5. Tableaux(8 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 5.1 | Résumé tableaux complexes | Manuel | Statique | Attribut summary, aria-describedby, détection tableaux complexes. |
| 5.2 | Pertinence résumé | Pré-vérifié | Statique + IA | Détection résumés génériques. IA pour suggestions. |
| 5.3 | Linéarisation tableaux layout | Manuel | Statique | Vérification role=presentation/none. |
| 5.4 | Titre des tableaux | Pré-vérifié | Statique | Présence caption, title, aria-label. |
| 5.5 | Pertinence titre | Pré-vérifié | Statique | Détection caption, aria-label, aria-labelledby, title, figcaption. Pertinence du libellé : à valider manuellement. |
| 5.6 | En-têtes colonnes/lignes | Pré-vérifié | Statique | Vérification agrégée : 1re ligne ou 1re colonne entièrement en <th> (ou role=columnheader/rowheader), cellules vides exclues du décompte. Échec si déclaration partielle. |
| 5.7 | Association en-têtes/cellules | Pré-vérifié | Statique | Tableaux simples : exige scope, id ou role sur les <th>, sauf lorsque les en-têtes tiennent sur une seule ligne ou une seule colonne — le référentiel les dispense alors de scope. Tableaux complexes (colspan/rowspan) : exige id sur <th> et headers sur les <td>. |
| 5.8 | Tableaux de mise en page | Pré-vérifié | Statique | Vérifie role="presentation"/"none" : aucun <caption>, <th>, <thead>, <tfoot>, summary, scope, headers, axis, role=rowheader/columnheader. Tables sans rôle explicite : signalées en manuel (voir 5.3). |
6. Liens(2 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 6.1 | Intitulé des liens | Pré-vérifié | Statique + IA | Termes génériques, intitulés très courts, incohérence aria-label/texte visible. Reconnaît les six contextes du glossaire (paragraphe, item de liste, titre précédent, cellule de tableau) et le cas du symbole visuel. IA pour la pertinence. |
| 6.2 | Titre des liens | Vérifié auto. | Statique | Présence de l'intitulé du lien, calculé dans l'ordre du référentiel : texte visible, aria-label, aria-labelledby, title, alternative de l'image ou du SVG contenu. Les ancres (<a> sans href) sont écartées, le référentiel ne les tenant pas pour des liens. La pertinence de l'intitulé relève du critère 6.1. |
7. Scripts(5 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 7.1 | Compatibilité scripts | Manuel | Statique | Gestionnaires souris sans clavier, role=button sans tabindex. Test d'interaction réel non possible. |
| 7.2 | Alternative scripts | Pré-vérifié | Statique | Détection frameworks SSR (Next.js, Nuxt, Gatsby, Remix), balise noscript, contenu significatif. SSR et contenu substantiel : vérification manuelle. |
| 7.3 | Contrôle au clavier | Pré-vérifié | Statique | Gestionnaires clavier sur interactifs, tabindex. Test d'interaction réel non possible. |
| 7.4 | Changement de contexte | Pré-vérifié | Statique | onchange/onfocus déclenchant navigation ou soumission automatique (location, window.open, .submit()). Formulaires sans bouton de soumission avec onchange. Détection heuristique. |
| 7.5 | Messages de statut | Manuel | Statique | role=status/alert, aria-live regions. |
8. Éléments obligatoires(10 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 8.1 | DOCTYPE | Pré-vérifié | Statique | Présence et validité DOCTYPE HTML5. |
| 8.2 | Validité du code | Pré-vérifié | Statique | Vérification partielle : IDs dupliqués, attributs obsolètes. Validation HTML W3C non implémentée. |
| 8.3 | Attribut lang | Vérifié auto. | Statique | Présence de lang sur html (ou, à défaut, sur chaque élément de texte ou un parent couvrant tout le texte de la page). |
| 8.4 | Validité code langue | Vérifié auto. | Statique | Validité du code (ISO 639, sous-tags régionaux) ET cohérence avec la langue détectée dans le contenu. Pertinence signalée à vérifier si la détection est ambiguë ou le texte insuffisant. |
| 8.5 | Titre de page | Vérifié auto. | Statique | Balise title présente et non vide. |
| 8.6 | Pertinence titre page | Pré-vérifié | Statique | Titres génériques, titres dupliqués entre pages, cohérence h1/title. La pertinence d'un titre est un jugement : aucun seuil de longueur n'est appliqué, le référentiel n'en fixe aucun. |
| 8.7 | Indication changement langue | Pré-vérifié | Statique | Attribut lang sur textes étrangers. |
| 8.8 | Changements de langue | Pré-vérifié | Statique | Attribut lang sur citations, blocs multilingues. |
| 8.9 | Balises utilisées | Pré-vérifié | Statique | Détection des paragraphes simulés par des <br> consécutifs et des paragraphes vides servant d'espacement. Les balises employées pour leur seul effet visuel (un titre pour grossir du texte, une citation pour créer un retrait) demandent une lecture de la page : verdict manuel. |
| 8.10 | Direction du texte | Pré-vérifié | Statique | Attribut dir sur contenus RTL (arabe, hébreu). |
9. Structuration(4 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 9.1 | Titres | Pré-vérifié | Statique | Détection des titres vides (non conformes) et des sauts de niveau, signalés à vérifier : depuis le RGAA 4.1, un saut n'invalide pas le critère tant que la hiérarchie reste cohérente, et un h1 n'est pas obligatoire. Pertinence du contenu des titres : à valider manuellement. |
| 9.2 | Structure document | Pré-vérifié | Statique | Présence main, header, footer, nav. Vérification manuelle si landmarks absents. |
| 9.3 | Listes | Pré-vérifié | Statique | Détection des listes visuelles non balisées et des structures ul/ol/li, dl/dt/dd incorrectes. Un balisage correct ne suffit pas à conclure : le critère part des listes visuelles, y compris celles qui ne portent aucune balise. Verdict manuel. |
| 9.4 | Citations | Pré-vérifié | Statique | Utilisation blockquote, q, attribut cite. |
10. Présentation(14 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 10.1 | Présentation CSS | Vérifié auto. | Statique | Balises et attributs de présentation de la liste fermée du test 10.1.2 (les styles inline ne sont pas vérifiés). |
| 10.2 | Visibilité contenu sans CSS | Manuel | Statique + Puppeteer | display:none, visibility:hidden. Puppeteer pour icônes/images. |
| 10.3 | Lisibilité contenu | Manuel | Puppeteer | Taille police <12px, interligne <1.3. Couverture partielle. |
| 10.4 | Redimensionnement texte | Manuel | Puppeteer | Zoom 200% (viewport 640px). Couverture partielle. |
| 10.5 | Couleurs CSS | Pré-vérifié | Puppeteer | Fond sans couleur texte, !important. Mode contraste élevé : manuel. |
| 10.6 | Visibilité liens | Pré-vérifié | Statique + Puppeteer | text-decoration:none détecté, contraste lien/texte ≥3:1. |
| 10.7 | Focus visible | Pré-vérifié | Puppeteer | Focus visible via getComputedStyle. Couverture partielle. |
| 10.8 | Contenus cachés | Pré-vérifié | Statique | Détection des contenus masqués par aria-hidden et role="presentation", et des éléments focusables ainsi masqués. Les autres techniques visées par le critère (display:none, visibility:hidden, font-size:0, attribut hidden) relèvent des styles calculés : verdict manuel. |
| 10.9 | Information par forme | Manuel | Manuel | Vérification manuelle requise. |
| 10.10 | Information par position | Manuel | Manuel | Vérification manuelle requise. |
| 10.11 | Reflow | Pré-vérifié | Puppeteer | Viewport 320px sans scroll horizontal. Couverture partielle. |
| 10.12 | Espacement texte | Pré-vérifié | Puppeteer | Line-height 1.5, paragraph 2em, letter/word spacing WCAG. |
| 10.13 | Contenu additionnel | Pré-vérifié | Statique + Puppeteer | Tooltips, aria-describedby, title, Bootstrap accessible. |
| 10.14 | Contenu au survol | Pré-vérifié | Statique | Vérification bidirectionnelle : CSS :hover sans :focus/:focus-within, et CSS :focus sans :hover équivalent. Sous-menus sans mécanisme clavier explicite dans le HTML. |
11. Formulaires(13 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 11.1 | Labels présents | Vérifié auto. | Statique | label for, label imbriqué, aria-label/labelledby, title, placeholder seul. |
| 11.2 | Pertinence labels | Pré-vérifié | Statique | Pertinence jugée sur le nom accessible calculé dans l'ordre du glossaire (aria-labelledby, puis aria-label, puis <label>, puis title) : vide, terme passe-partout, = name/id, = placeholder. Étiquette orpheline : renvoyée au critère 11.1. |
| 11.3 | Cohérence labels | Manuel | Statique | Labels uniformes pour champs similaires. |
| 11.4 | Association labels | Pré-vérifié | Statique | Labels orphelins (cible introuvable). Accolage visuel à vérifier manuellement pour aria-label et aria-labelledby (la présence de l'étiquette relève du critère 11.1, pas de 11.4). |
| 11.5 | Regroupement fieldset | Pré-vérifié | Statique | Détection des groupes de boutons radio et de cases à cocher hors <fieldset> ou role="group". Le référentiel n'impose le regroupement que si les étiquettes ne suffisent pas à faire comprendre l'ensemble : verdict manuel. |
| 11.6 | Legend présent | Pré-vérifié | Statique | legend dans fieldset (ou aria-label/aria-labelledby sur role="group"). Détecte aussi les boutons radio/cases à cocher partageant un name hors fieldset, candidats à un regroupement. Champ unique ou bloc unique du formulaire : dispensé. |
| 11.7 | Pertinence legend | Pré-vérifié | Statique + IA | Legend vide, générique, court. IA pour suggestions. Ne s'applique qu'aux fieldset qui ont déjà une legend (son absence relève du critère 11.6). |
| 11.8 | Groupement options | Pré-vérifié | Statique | optgroup dans select (aucun seuil de longueur : la nécessité du regroupement se juge sur la nature des options), label sur optgroup. Liste role="listbox" nécessitant un regroupement : signalée, WAI-ARIA ne permettant pas de créer des groupes d'options. |
| 11.9 | Boutons | Pré-vérifié | Statique | Intitulé bouton, button avec texte, input submit/button avec value. |
| 11.10 | Types d'entrée | Pré-vérifié | Statique | Indication visible du caractère obligatoire, messages d'erreur rattachés au champ, indication du format attendu. Cas particulier appliqué : les formulaires à champ unique et ceux qui signalent leurs champs optionnels échappent aux deux premiers tests. |
| 11.11 | Messages d'erreur | Pré-vérifié | Statique | Messages liés aux champs, aria-describedby, aria-invalid. |
| 11.12 | Modification données | Pré-vérifié | Statique | Formulaires critiques repérés par mots-clés (paiement, suppression, mot de passe) et confirm(). Au-delà, tout formulaire de saisie avec bouton de soumission (y compris role="form") est signalé à vérifier : l'applicabilité relève du jugement humain. |
| 11.13 | Contrôle saisie | Pré-vérifié | Statique | Détection heuristique des champs de données personnelles (nom, email, téléphone, adresse...) nécessitant un autocomplete, et validation de la valeur selon la spécification HTML (off/on exclus de la liste des noms de champ). |
12. Navigation(11 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 12.1 | Systèmes de navigation | Pré-vérifié | Statique | Menu nav, plan du site, recherche. 2+ systèmes requis. |
| 12.2 | Position navigation | Manuel | Manuel | Position cohérente : vérification manuelle. |
| 12.3 | Plan du site | Pré-vérifié | Statique + Puppeteer | Détection de la page plan du site, vérification HTTP réelle de ses liens internes (échec si page inexistante, 404/410). Pertinence du plan : manuel. |
| 12.4 | Lien plan du site | Pré-vérifié | Statique | Présence et emplacement du lien plan du site (header/footer/nav). La constance sur l'ensemble des pages ne se vérifie pas depuis une page isolée : toujours renvoyé à vérification manuelle (sauf lien cassé, en échec). |
| 12.5 | Moteur de recherche | Pré-vérifié | Statique | Formulaire de recherche, role=search, ou lien vers une page de recherche. La constance sur l'ensemble des pages ne se vérifie pas depuis une page isolée : toujours renvoyé à vérification manuelle. |
| 12.6 | Landmarks | Pré-vérifié | Statique | Détecte main, header, nav, footer, search. Absences signalées comme à vérifier manuellement. |
| 12.7 | Liens d'évitement | Vérifié auto. | Statique | Présence du lien d'évitement (ancre de même document uniquement) et validité de sa cible. Visibilité à la prise de focus signalée à vérifier si le CSS est externe. |
| 12.8 | Ordre de tabulation | Manuel | Manuel | Les tabindex positifs sont détectés, mais un script peut modifier l'ordre de tabulation sans aucun tabindex : la cohérence de l'ordre se vérifie au clavier, y compris après ouverture des menus et fenêtres. |
| 12.9 | Pas de piège au clavier | Manuel | Statique | Détection tabindex. Ordre complet : manuel. |
| 12.10 | Raccourcis clavier | Pré-vérifié | Statique | Les accesskey sont hors du périmètre du critère (le glossaire les exclut : leur activation nécessite déjà une touche de modification). Détecte les bibliothèques de raccourcis (Mousetrap, hotkeys-js...) et les écouteurs clavier testant une touche-caractère unique. |
| 12.11 | Contenus additionnels au survol ou au focus | Pré-vérifié | Statique | Contenus additionnels apparaissant au survol ou au focus : vérification que les composants d'interface qu'ils contiennent (liens, boutons) sont atteignables au clavier. L'atteignabilité du déclencheur lui-même relève des critères 7.1 et 7.3. |
13. Consultation(12 critères)
| Critère | Nom | Couverture | Méthode | Détails |
|---|---|---|---|---|
| 13.1 | Limite de temps | Pré-vérifié | Statique | Meta refresh détecté automatiquement. Un rafraîchissement est jugé sur le barème du test 13.1.1 (non conforme sous 20 s, conforme au-delà de 20 h) ; une redirection différée est signalée à vérifier, le test 13.1.2 l'exigeant immédiate mais le référentiel prévoyant un cas particulier pour les URL obsolètes. Redirections et décomptes JS (setTimeout/setInterval + écriture location) signalés en manuel. Limites de session côté serveur : non détectables. |
| 13.2 | Nouvelle fenêtre | Pré-vérifié | Statique | Détection de window.open au chargement (body[onload], script inline top-level, addEventListener load/DOMContentLoaded). Ouvertures via onclick sur éléments non interactifs signalées en manuel. |
| 13.3 | Documents téléchargeables | Manuel | Statique | Liens PDF/DOC avec indication format et poids. |
| 13.4 | Fichiers bureautiques | Manuel | Statique | Détection fichiers. Accessibilité contenu : manuel. |
| 13.5 | Alternative contenu cryptique | Manuel | Statique | Détection art ASCII (balises pre), émoticônes, syntaxe cryptique. Alternative : manuel. |
| 13.6 | Pertinence alternative cryptique | Pré-vérifié | Statique + IA | Alternatives des contenus cryptiques et balises abbr avec title. IA pour pertinence. |
| 13.7 | Effets de flash | Manuel | Statique | Détection des effets de flash et changements brusques de luminosité. Fréquence réelle (3 flashs/seconde) : manuel. |
| 13.8 | Contenu en mouvement | Pré-vérifié | Statique | Détection marquee/blink, GIF animés, animations CSS, vidéos autoplay et carrousels : tout contenu en mouvement sans mécanisme de contrôle (pause/arrêt) repéré. L'obsolescence de marquee/blink n'est pas en elle-même un motif de non-conformité. |
| 13.9 | Orientation de l'écran | Pré-vérifié | Statique + Puppeteer | Media queries d'orientation détectées. Différentiel portrait/paysage mesuré : échec si le contenu est masqué dans une orientation. |
| 13.10 | Gestes complexes | Pré-vérifié | Statique | Gestionnaires d'événements tactiles (touch/gesture) détectés. Alternative par geste simple : manuel. |
| 13.11 | Annulation pointeur | Manuel | Statique | mousedown/touchstart sans annulation. |
| 13.12 | Mouvement de l'appareil | Manuel | Statique | API DeviceMotion détectée. Alternatives : manuel. |
Ce qui distingue RGAA Checker
| Outil | Référentiel | Analyse IA des images | Audit RGAA manuel assisté | Crawler multi-pages |
|---|---|---|---|---|
| RGAA Checker | RGAA 4.1.2 natif | |||
| axe DevTools | WCAG 2.x | — | — | — |
| WAVE | WCAG 2.x | — | — | — |
| Lighthouse | WCAG 2.x | — | — | — |
axe, WAVE et Lighthouse s'appuient sur les règles WCAG. RGAA Checker mappe directement les 106 critères du référentiel RGAA 4.1.2 et combine, dans un même outil, l'analyse IA des images et l'audit manuel assisté.
Prêt à auditer votre site ?
Lancez un audit gratuit pour détecter les anomalies d'accessibilité RGAA sur votre site.