Tout ce que couvre l'audit, du scan automatisé à la voix d'un vrai lecteur d'écran
Détection à grande échelle, preuve réelle plutôt que supposition, passage à l'échelle sur un site complet et livrables prêts pour vos équipes — en français et en anglais.
Détection automatisée à grande échelle
| Capacité | Détail |
|---|---|
| Scan axe-core 4.9.1 | Injecté dynamiquement dans le navigateur réel (pas de simulation headless dégradée), collecte violations + éléments « incomplete » — pas seulement les échecs, pour documenter aussi ce qui a été réellement testé. |
| Inspection DOM riche | Vérification des noms accessibles (approximation accname : aria-label > aria-labelledby résolu > <label> associé > texte > title), structure de titres, rôles ARIA, attributs de langue, doublons d'ID. |
| Navigation clavier automatisée | Balayages Tab/Shift-Tab complets, capture de l'ordre de focus, détection de pièges clavier, diff de style calculé (outline, box-shadow) pour détecter les indicateurs de focus manquants — a permis de trouver 5 composants du design system sans indicateur de focus visible sur un projet réel. |
| Contraste | Calcul manuel du ratio de luminance WCAG injecté en page (tranche les cas laissés « incomplete » par axe-core), et mode contraste forcé émulé (forced-colors: active) pour détecter les paires fond/texte codées en dur qui casseraient sous Windows High Contrast. |
| Zoom et reflow | Émulation de viewport 320px et zoom 200 % pour détecter le contenu tronqué ou la perte de fonctionnalité. |
| Espacement de texte | Injection CSS des ratios WCAG 1.4.12 et détection automatique de troncature résultante. |
| Annulation de geste pointeur | Simulation souris (appui → déplacement loin → relâchement) pour vérifier qu'une action ne se déclenche pas prématurément (WCAG 2.5.2). |
| CSS/JS désactivés | Comparaison de rendu avec et sans CSS, et contexte navigateur dédié JavaScript désactivé dès le chargement. |
| Documents bureautiques | Crawl du site par extension de fichier (PDF, DOCX...) et vérification de balisage PDF via pypdf (tags, StructTreeRoot, langue déclarée). |
| Contraste des composants d'interface | Calcul de luminance sur l'élément, ses conteneurs et ses enfants — au-delà du texte, pour les bordures, icônes et états d'interaction. |
| Déclarations CSS de couleurs avec repli | Détection des paires fond/texte définies avec un repli (fallback) qui casseraient la lisibilité si la couleur principale n'était pas appliquée. |
| Information par pseudo-éléments | Détection du contenu sémantiquement porteur inséré via ::before/::after, invisible pour une inspection DOM classique. |
| Contenus cachés et révélés au survol | Repérage des contenus masqués et des contenus révélés uniquement au survol souris, sans équivalent clavier. |
| Gestes complexes | Détection par une instrumentation posée avant le chargement de la page ; non-applicabilité prouvée quand aucun geste complexe n'existe, avec recherche systématique d'une alternative par boutons. |
| Changement de contexte à la saisie | Détection des changements de contexte déclenchés automatiquement lors de la saisie dans un champ (WCAG 3.2.2). |
| Messages de statut | Vérification de l'exposition correcte des messages de statut (role="status", régions live) sans déplacement forcé du focus. |
| Position géométrique des étiquettes | Vérification que l'étiquette visible d'un champ correspond à son nom accessible réel (WCAG 2.5.3). |
| Formulaires engageants et animations de flash | Détection des formulaires nécessitant une confirmation engageante et des animations de type flash (WCAG 2.3.1). |
| Retour du focus à la fermeture des modales | Ouverture puis fermeture réellement simulées de chaque fenêtre modale, avec vérification que le focus revient sur l'élément déclencheur. |
Validation W3C en local
Le code source rendu de chaque page — celui que consomment réellement les technologies d'assistance — est validé par une instance locale du validateur W3C, sans limite de taille de page, messages filtrés au périmètre du test officiel (balises, imbrication, attributs dupliqués).
Cohérence entre les écrans
Comparaison des signatures de navigation par page (ordre des menus, emplacement du plan du site et du moteur de recherche) et de la cohérence des étiquettes de champs de même fonction entre gabarits.
Preuve réelle plutôt que supposition
La partie la plus différenciante de l'outil : au lieu de laisser un critère « non testé » faute d'automatisation possible, plusieurs protocoles obtiennent une preuve réelle à un coût de mise en œuvre raisonnable.
Pont lecteur d'écran réel (NVDA ↔ Playwright)
Capture la voix réellement prononcée par NVDA (pas une approximation de ce qu'il devrait dire). Contourne des blocages Windows non documentés (isolation UIPI, échec silencieux de l'API SendInput, nécessité de mettre la fenêtre au premier plan réel avant d'envoyer des événements clavier bas niveau).
Test de délai de session réel
Attente effective de 30 minutes (pas de simulation), avec contrôles espacés, pour vérifier l'absence d'avertissement/déconnexion silencieuse sur un parcours transactionnel réel.
Triage assisté par modèle de vision multimodal via API
Pour chaque bouton-icône sans nom accessible détecté par le DOM, capture un recadrage avec le contexte visuel environnant et demande au modèle de proposer un libellé pertinent et de juger la correspondance icône/fonction. Un triage, pas un verdict définitif. Le même modèle juge, sur la capture complète de la page, les images décoratives, les images-texte et l'information portée par la seule couleur ou par la seule forme/position — avec un double taux affiché (taux officiel incluant ces jugements vs taux mécaniquement prouvé) et une annexe exhaustive conservée pour contrôle par échantillonnage.
Gestes tactiles et rotation d'écran
Simulation via l'émulation Playwright (hasTouch, rotation de viewport), sans matériel physique dédié.
Transcription audio/vidéo automatique
Détection de parole sur les contenus audio et vidéo du site pour instruire les critères médias (WCAG 1.2.x, RGAA thème 4) — validée en conditions réelles sur notre projet de référence, où elle a permis de trancher 6 critères supplémentaires.
Passage à l'échelle sur un site complet
- Crawl automatisé parallèle pour auditer des centaines de pages en parallèle (crawl en cascade : page de départ → tous ses liens → leurs propres liens), avec agrégation des patterns de défauts plutôt qu'une liste brute par page — utile pour repérer qu'un défaut provient d'un composant partagé et touche l'intégralité du site.
- Méthodologie de cadrage de périmètre en amont de l'audit : cartographie du site, découpage par gabarit de page, présentation explicite du périmètre pour arbitrage conscient, documentation des exclusions dans le rapport final.
- Orchestration par campagnes à re-passes ciblées, pilotée par un contrôle d'exhaustivité (chaque page × chaque vérification du catalogue, sans trou vérifiable) et résiliente aux limitations de débit des sites audités.
Conformité réglementaire — deux référentiels indépendants
Sur l'ensemble des 162 critères réglementaires (106 RGAA + 56 WCAG), notre démarche automatisée couvre 81 % des critères RGAA et 71 % des critères WCAG :
- RGAA : 20 % sans aucun contrôle humain (verdict garanti par le code), 61 % avec confirmation manuelle rapide.
- WCAG : 21 % sans aucun contrôle humain, 50 % avec confirmation manuelle rapide.
- Les critères restants (19 % RGAA, 29 % WCAG) exigent un jugement humain direct qu'aucune méthode automatisée ne couvre à ce jour. Nous ne les intégrons pas à notre démarche : en tant que laboratoire de recherche, nous cherchons à repousser aussi loin que possible les limites de l'automatisation — méthodes traditionnelles combinées au jugement de modèles de langage pour les analyses de type humain — plutôt qu'à les compenser par un audit manuel classique.
- WCAG 2.1/2.2 niveaux A et AA (56 critères) et RGAA 4.1.2 (106 critères, 258 tests unitaires officiels) testés chacun sur ses propres termes.
- Pour chaque critère couvert par notre démarche : un verdict (conforme / non conforme / non applicable / preuve réelle recueillie), automatisé ou confirmé rapidement à la main. Les critères non couverts à ce jour ne sont ni testés ni livrés.
- Référentiel structuré en données : les 106 critères RGAA et leurs 258 tests, ainsi que les 56 critères WCAG, sont encodés en données structurées, chacun relié à sa méthode de test automatisée ou à son protocole manuel.
- Cadre couvert : EAA (directive européenne 2019/882), WCAG 2.1/2.2, RGAA 4.1.2. Voir aussi où en est la version 5 du RGAA, actuellement en cours de rédaction.
Livrables générés automatiquement
| Livrable | Contenu |
|---|---|
| CSV structuré | Source de vérité — un finding par ligne, colonnes normalisées (sévérité, critère WCAG, critère RGAA, méthode de détection, statut de vérification, protocole de test). |
| Classeur Excel | Plusieurs onglets (findings, légende, synthèse), formules natives (comptages par sévérité/statut) — pas de valeurs figées, se recalcule à l'ouverture. |
| Rapport Word | Résumé exécutif, findings détaillés par page, analyse des défauts systémiques, priorisation, annexes avec captures d'écran annotées aux coordonnées DOM exactes. |
| Interface de chat interactive | Serveur web local, liste de findings filtrable/cherchable + chat, assistant qui répond en citant les IDs de findings pertinents. |
| Bilinguisme systématique | Chaque livrable est produit en deux fichiers séparés (français et anglais), pas de document bilingue mélangé. |