Principes : chacun son travail
Un outil automatique ne voit qu’une partie de l’accessibilité. ultra11y l’assume : la machine fait ce qu’elle sait prouver, l’IA juge le reste sous contrôle, et ce que personne n’a vérifié reste affiché comme tel.
Le problème : le RGAA se juge plus qu’il ne se mesure
Le RGAA est la version française des WCAG 2.2. Il est obligatoire pour les services publics et pour certaines entreprises. Il compte 106 critères, regroupés en 13 thématiques (images, couleurs, formulaires…). Chaque critère se décompose en tests numérotés : 258 tests au total. Le critère 1.1, par exemple, compte 8 tests.
Ce que demandent les 258 tests officiels
- 30 tests tranchés par le code — une règle du moteur peut prouver l’échec en lisant le code source
- 3 tests demandent la page affichée — une règle peut prouver l’échec, mais sur la page rendue
- 225 tests demandent un jugement — pertinence, cohérence, contenu : l’IA ou un humain décide
Classement tiré de la matrice générée dans le dépôt (rgaa-automation.md). Un test « tranché par le code » peut prouver une non-conformité ; il ne suffit pas toujours à prouver la conformité.
Exemple de jugement : le test 1.3.1 demande si l’alternative d’une image « est pertinente ». Une règle peut vérifier qu’un attribut alt existe. Elle ne peut pas savoir si « logo » décrit vraiment l’image.
Un outil qui ne trouve rien ne prouve rien. Le danger d’un outil automatique, c’est de prendre son silence pour un « conforme ». ultra11y ne le fait jamais.
Les quatre statuts d’un critère
- C : conforme
- Le critère est respecté, et le verdict cite les éléments vérifiés.
- NC : non conforme
- Au moins un élément réel du code échoue à un test. La non-conformité pointe vers le fichier et la ligne.
- NA : non applicable
- Le critère ne concerne pas la page (pas de vidéo, pas de tableau…). Le NA doit être justifié, et un NA prononcé par l’IA passe lui aussi la contre-vérification : il compte comme un succès dans le taux, il ne doit donc jamais servir à fermer un critère sans examen.
- À évaluer
- Personne n’a encore tranché. Ce n’est ni un échec ni une réussite : c’est un travail restant, affiché comme tel.
Un critère que personne n’a vérifié reste « à évaluer », jamais « conforme » par défaut. Le moteur refuse de conclure « conforme » à partir d’une absence d’erreur, sauf pour les critères où cette absence suffit vraiment : 8.3 et 8.5 (langue et titre de la page).
Le process : qui fait quoi
La machine décide
L’IA juge, sous contrôle
- CodeHTML, JSX, Vue, Svelte, Astro
- Moteur102 vérifications sur le code
- Navigateurcontraste, focus, zoom
- Agent IAjuge et justifie
- Garde-fous
verify,check: preuve exigée - Livrablesrapport RGAA, backlog, tickets
verdict sans preuve : renvoyé à l’agent
- Le moteur lit le code source. Il trouve les défauts que le code suffit à montrer : image sans
alt, champ sans étiquette, identifiant en double, ARIA invalide. ARIA désigne les attributsroleetaria-*qui décrivent un composant aux technologies d’assistance (lecteurs d’écran…). - Le navigateur (commande
scan) affiche la vraie page. Il mesure le contraste calculé, le focus visible, le zoom à 200 %, l’affichage à 320 pixels de large, le contenu au survol. - L’agent IA reçoit, pour chaque critère non tranché, les preuves collectées et le texte officiel du RGAA. Il rend un verdict justifié, ou dit qu’il ne peut pas trancher.
- Les garde-fous rejettent tout verdict qui ne cite pas de preuve vérifiable. Une non-conformité qui ne pointe vers aucun élément réel est supprimée. Un « conforme » ou un « non applicable » contesté repart « à évaluer ».
Règles et critères : deux choses différentes
Les 102 vérifications du moteur ne sont pas 102 tests RGAA. Plusieurs règles visent le même test, une règle peut servir à plusieurs critères, et la plupart ne donnent qu’un indice. Au total, le code seul tranche 30 tests sur 258.
Une règle a l’un de trois effets sur un critère :
- Décisive : le défaut observé suffit à faire échouer un test précis. Le critère passe en NC sans intervention de l’IA.
- Indice : la règle signale un candidat (une image dont l’
altsemble générique, par exemple). L’IA tranche. - Recommandation non normative : une bonne pratique qu’aucun test officiel n’exige. Elle apparaît à part dans le rapport et ne fait jamais passer un critère en NC.
La page Couverture détaille, critère par critère, quelles règles existent et ce qu’elles prouvent.
Deux règles qui ne se discutent pas
Ne jamais inventer une non-conformité
Chaque NC cite un élément réel, à un endroit précis du code. check vérifie que l’élément existe. Une NC qui ne se vérifie pas est retirée.
Ne jamais inventer une conformité
Un « conforme » se justifie comme un « non conforme » : il cite les éléments vérifiés. Sans preuve, ou sur des preuves incomplètes, le critère reste « à évaluer ».