Le WordPress d'aujourd'hui, décodé pour les développeurs

Tests

Tester la conformité RGAA d’un formulaire de collectivité avec axe-core

Automatiser un contrôle d'accessibilité minimal sur les formulaires publics d'un site de collectivité, directement dans le pipeline d'intégration continue.

Par WordPress Développement • 5 août 2021 • 4 min de lecture • Aucun commentaire
Tester la conformité RGAA d'un formulaire de collectivité avec axe-core

npx axe http://localhost:8080/contact --exit : cette seule commande suffit à faire échouer un pipeline si un formulaire public de collectivité viole une règle d’accessibilité automatiquement détectable. Sur un site municipal ou départemental, cette obligation n’est pas qu’une bonne pratique : le RGAA (référentiel général d’amélioration de l’accessibilité) s’impose légalement aux services publics.

axe-core, la bibliothèque open source développée par Deque Systems, ne remplace pas un audit manuel complet mené par un expert accessibilité : elle détecte automatiquement une partie des violations, essentiellement structurelles et attribuables au balisage. Ce billet montre comment l’intégrer au pipeline CI pour attraper les régressions les plus flagrantes avant qu’elles n’atteignent la production, sans prétendre remplacer l’audit manuel complet, traité dans la catégorie accessibilité.

Ce qu’axe-core détecte, et ce qu’il ne détecte pas

axe-core analyse le DOM rendu et vérifie des règles précises : contraste de couleur insuffisant, champ de formulaire sans label associé, attribut alt manquant sur une image, ordre de tabulation incohérent avec des attributs tabindex positifs. En revanche, il ne peut pas juger de la pertinence d’un texte alternatif, ni de la cohérence logique d’un parcours de navigation au clavier : ces points restent du ressort de l’audit humain.

Installer axe-core dans un projet de tests Playwright

Sur un projet WordPress qui utilise déjà Playwright pour ses tests bout en bout, l’intégration passe par le paquet @axe-core/playwright, qui injecte axe-core dans la page testée et retourne un rapport structuré.

npm install --save-dev @axe-core/playwright
L'essentiel à retenir : axe-core intégré au pipeline CI ; Contrôle automatique, pas un audit complet ; Chaque merge sur un formulaire public est vérifié

Écrire le test d’accessibilité du formulaire de contact

Le test charge la page du formulaire public, attend son chargement complet, puis lance l’analyse axe-core et vérifie qu’aucune violation critique n’est remontée.

const { test, expect } = require('@playwright/test');
const AxeBuilder = require('@axe-core/playwright').default;

test('le formulaire de contact ne contient aucune violation critique', async ({ page }) => {
  await page.goto('/contact/');

  const resultats = await new AxeBuilder({ page })
    .withTags(['wcag2a', 'wcag2aa'])
    .analyze();

  const critiques = resultats.violations.filter(v => v.impact === 'critical');
  expect(critiques).toEqual([]);
});

Filtrer sur les tags wcag2a et wcag2aa permet de rester aligné sur le niveau AA exigé par le RGAA, sans remonter des règles expérimentales qui n’ont pas encore de correspondance officielle dans le référentiel français.

Décider quel niveau de sévérité bloque le merge

axe-core classe chaque violation selon quatre niveaux : critique, sérieux, modéré, mineur. Bloquer le merge sur toute violation, y compris mineure, générerait trop de faux positifs et finirait par décourager l’équipe de traiter les alertes sérieusement.

  • Violation critique ou sérieuse sur un formulaire public : le pipeline échoue
  • Violation modérée : avertissement visible, mais le merge reste possible
  • Violation mineure : consignée dans un rapport de suivi, revue périodique

Étendre le contrôle aux autres formulaires publics

Une fois le formulaire de contact couvert, le même test se généralise facilement aux autres points d’entrée publics : formulaire de demande de rendez-vous, formulaire d’inscription à une newsletter municipale, formulaire de signalement de voirie.

Intégrer le contrôle au pipeline CI existant

L’étape axe-core s’ajoute comme une tâche supplémentaire après le déploiement de l’environnement de prévisualisation, dans le même job que les autres tests Playwright déjà en place.

  1. Démarrer un environnement WordPress éphémère avec les données de test
  2. Lancer la suite Playwright incluant les tests axe-core
  3. Publier le rapport de violations comme artefact du pipeline, consultable par l’équipe

Sur un site de collectivité, on a pris l’habitude de traiter toute violation critique remontée par axe-core comme un bug bloquant au même titre qu’une erreur PHP fatale : la loi ne fait pas de distinction de priorité.

En résumé

Intégrer axe-core au pipeline CI d’un site de collectivité permet de rattraper automatiquement une bonne part des régressions d’accessibilité les plus visibles sur les formulaires publics, à chaque merge. Ce contrôle reste un filet de sécurité technique, complémentaire à l’audit manuel complet qui seul peut juger de la pertinence réelle du contenu et du parcours utilisateur.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi