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

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

  1. CodeHTML, JSX, Vue, Svelte, Astro
  2. Moteur102 vérifications sur le code
  3. Navigateurcontraste, focus, zoom
  4. Agent IAjuge et justifie
  5. Garde-fousverify, check : preuve exigée
  6. Livrablesrapport RGAA, backlog, tickets

verdict sans preuve : renvoyé à l’agent

Le process en six étapes, du code aux livrables. Le moteur et le navigateur sont mécaniques : la machine décide. L’agent IA et les garde-fous relèvent du jugement : l’IA juge, sous contrôle. Un verdict sans preuve est renvoyé par les garde-fous à l’agent IA, qui doit le refaire.

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 :

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