Aller au contenu principal
GitHub ActionsGitLab CIJenkins

Intégration CI/CD pour l'Accessibilité RGAA

Détectez les régressions d'accessibilité à chaque déploiement. Intégrez les audits RGAA directement dans votre pipeline CI/CD.

Le problème

Les régressions d'accessibilité passent souvent inaperçues jusqu'à ce qu'un utilisateur ou un audit externe les détecte. À ce moment-là, les corriger coûte plus cher et prend plus de temps.

  • Régressions non détectées en production
  • Corrections coûteuses après déploiement
  • Risque de non-conformité RGAA/EAA

La solution

Intégrez les audits RGAA dans votre pipeline CI/CD. Détectez automatiquement les problèmes d'accessibilité avant qu'ils n'arrivent en production.

  • Audit automatique à chaque PR
  • Bloquer les déploiements non conformes
  • Rapports JUnit pour vos outils CI

Comment ça marche ?

Trois étapes simples pour automatiser vos audits d'accessibilité.

Créez une clé API

Depuis votre dashboard, générez une clé API sécurisée. Stockez-la dans les secrets de votre CI (RGAA_CHECKER_API_KEY).

Configurez votre pipeline

Ajoutez notre GitHub Action, CLI npm ou appel API REST dans votre workflow CI/CD.

Recevez les résultats

À chaque PR, obtenez le score RGAA et la liste des erreurs. Bloquez les déploiements si le seuil n'est pas atteint.

Pourquoi intégrer RGAA Checker dans votre CI ?

RGAA Checker scanne vos pages après déploiement sur un environnement de preview ou staging. Il teste le rendu final avec tout le JavaScript exécuté et le contenu réel.

Preview Deployments

Chaque Pull Request crée une preview (Vercel, Netlify, etc.). RGAA Checker scanne automatiquement cette URL et bloque le merge si le score baisse.

PR #42 → preview-pr-42.vercel.app → Scan → Score 85% ✓

Contenu dynamique / CMS

Votre code peut être parfait, mais le contenu injecté par un CMS peut créer des problèmes : images sans alt, liens vides, contrastes insuffisants.

Strapi / Contentful / WordPress → Contenu réel testé

Détection de régressions

Un développeur modifie un composant et casse l'accessibilité sans le savoir. Le build échoue avant que ça arrive en production.

Score 85% → Commit → Score 72% → Build FAILED ✗

Workflow typique avec RGAA Checker

Push / PR
Build
Deploy Preview
RGAA Checker
Merge

RGAA Checker intervient après le déploiement de votre preview pour tester la page réelle.

Exemple : Scanner automatiquement les previews Vercel

.github/workflows/accessibility.yml
name: Accessibility Check

on:
  deployment_status:
    types: [success]

jobs:
  rgaa-audit:
    # Se déclenche uniquement quand le déploiement réussit
    if: github.event.deployment_status.state == 'success'
    runs-on: ubuntu-latest
    steps:
      - name: Audit RGAA
        uses: rgaa-checker/action@v1
        with:
          api-key: ${{ secrets.RGAA_CHECKER_API_KEY }}
          # Utilise l'URL de preview générée par Vercel/Netlify
          url: ${{ github.event.deployment_status.target_url }}
          threshold: 80

Exemples d'intégration

Choisissez votre méthode d'intégration préférée.

.github/workflows/accessibility.yml
name: Accessibility Check

on:
  pull_request:
  push:
    branches: [main]

jobs:
  rgaa-audit:
    runs-on: ubuntu-latest
    steps:
      - uses: rgaa-checker/action@v1
        with:
          api-key: ${{ secrets.RGAA_CHECKER_API_KEY }}
          url: https://staging.example.com
          threshold: 80

Format de réponse

JSON Response
{
  "success": true,
  "url": "https://example.com",
  "score": 85,
  "rgaaScore": 72,
  "passed": true,
  "threshold": 80,
  "stats": {
    "total": 106,
    "pass": 45,
    "fail": 8,
    "manual": 18,
    "na": 35
  },
  "issues": [
    {
      "criterion": "1.1",
      "title": "Images",
      "status": "fail",
      "count": 3,
      "samples": ["<img src='logo.png'>"]
    }
  ],
  "duration": 12500,
  "timestamp": "2024-01-15T10:30:00Z"
}

Documentation détaillée

Tout savoir sur l'installation, la configuration et les options disponibles.

Installation

Installez le CLI RGAA Checker via npm pour l'utiliser dans vos pipelines CI/CD ou en local.

Installation globale

Recommandé pour une utilisation en local
npm install -g @rgaa-checker/cli

Utilisation avec npx

Sans installation permanente
npx @rgaa-checker/cli scan https://example.com
Installation en dépendance de projet
# Ajouter comme dépendance de développement
npm install --save-dev @rgaa-checker/cli

# Puis utiliser via npm scripts dans package.json
{
  "scripts": {
    "test:a11y": "rgaa-checker scan https://localhost:3000 --threshold 80"
  }
}

Pré-requis

  • • Node.js version 18 ou supérieure
  • • Une clé API RGAA Checker (plan Découverte ou Pro)

Fichier de configuration .rgaachecker.json

Créez un fichier .rgaachecker.json à la racine de votre projet pour configurer les options par défaut du CLI.

.rgaachecker.json
{
  "url": "https://staging.example.com",
  "threshold": 80,
  "timeout": 60000,
  "auth": {
    "type": "basic",
    "username": "$BASIC_USER",
    "password": "$BASIC_PASS"
  }
}
OptionTypeDéfautDescription
urlstring-URL à scanner par défaut
thresholdnumber80Score minimum requis (0-100)
timeoutnumber60000Timeout en millisecondes
authobject-Configuration Basic Auth

Note : Les arguments CLI (ex: --threshold 90) ont priorite sur le fichier de configuration.

Authentification Basic Auth

Scannez vos environnements de staging proteges par authentification HTTP Basic. Utilisez des variables d'environnement pour ne pas exposer vos identifiants.

Via le CLI

rgaa-checker scan https://staging.example.com \
  --basic-user admin \
  --basic-pass secret123

Via l'API

{
  "url": "https://staging.example.com",
  "auth": {
    "type": "basic",
    "username": "admin",
    "password": "secret123"
  }
}

Variables d'environnement

Dans le fichier .rgaachecker.json, prefixez les valeurs avec $ pour utiliser des variables d'environnement :

"auth": {
  "type": "basic",
  "username": "$STAGING_USER",
  "password": "$STAGING_PASS"
}

Rapports JUnit XML

Exportez les resultats au format JUnit XML pour les integrer a vos outils de CI (Jenkins, GitLab, Azure DevOps, etc.). Chaque critere RGAA echoue devient un test case.

Generer un rapport JUnit
# CLI - Exporter au format JUnit
rgaa-checker scan https://example.com --format junit > report.xml

# Ou avec un fichier de sortie
rgaa-checker scan https://example.com --format junit --output accessibility.xml
Exemple de sortie JUnit XML
<?xml version="1.0" encoding="UTF-8"?>
<testsuites name="RGAA Checker" tests="106" failures="8" time="12.500">
  <testsuite name="RGAA Audit - https://example.com" tests="106" failures="8">
    <testcase name="Overall Score" classname="RGAA">
      <failure message="Score 75% is below threshold 80%">
        The accessibility score does not meet the required threshold.
      </failure>
    </testcase>
    <testcase name="[1.1] Images" classname="RGAA.1.1">
      <failure message="3 issues found">
        &lt;img src="logo.png"&gt;
        &lt;img src="banner.jpg"&gt;
      </failure>
    </testcase>
  </testsuite>
</testsuites>

Rate Limiting et Quotas

L'API CI est soumise a des limites pour garantir la disponibilite du service pour tous les utilisateurs.

Rate Limit

Requetes par minute30
Timeout maximum5 min

Quotas mensuels

Plan Decouverte100 scans
Plan Pro500 scans

Important : Les scans CI et les scans web partagent le meme quota mensuel. Planifiez vos audits en consequence pour optimiser votre utilisation.

Reference des commandes CLI

rgaa-checker scan <url>

Lance un audit d'accessibilite sur l'URL specifiee.

--threshold <n>Score minimum requis (defaut: 80)
--timeout <ms>Timeout en ms (defaut: 60000)
--format <type>Format de sortie: text, json, junit
--output <file>Fichier de sortie pour le rapport
--basic-user <user>Nom d'utilisateur Basic Auth
--basic-pass <pass>Mot de passe Basic Auth

rgaa-checker auth set-key <key>

Configure votre cle API. Elle sera stockee dans ~/.rgaa-checker/config.json.

rgaa-checker init

Cree un fichier .rgaachecker.json avec une configuration par defaut.

Fonctionnalites

Tout ce dont vous avez besoin pour automatiser vos audits.

Score RGAA automatique

Obtenez un score de 0 a 100 base sur les 106 criteres RGAA testables automatiquement.

Seuil d'echec configurable

Definissez le score minimum acceptable. Bloquez les deploiements non conformes.

Commentaires PR configurables

Configurez des commentaires avec le score et les erreurs directement sur vos Pull Requests.

Rapports JUnit XML

Exportez les resultats au format JUnit pour une integration avec vos outils de reporting.

Support Basic Auth

Scannez vos environnements de staging proteges par authentification.

Rate limit genereux

30 requetes par minute pour supporter vos pipelines les plus actifs.

Questions frequentes

Comment creer une cle API ?

Connectez-vous a votre dashboard RGAA Checker, accedez a la section "Cles API" et cliquez sur "Nouvelle cle". Copiez la cle generee - elle ne sera affichee qu'une seule fois.

Combien coute l'integration CI/CD ?

L'integration CI/CD est incluse dans les plans Decouverte (69€/mois) et Pro (249€/mois). Les scans CI utilisent le meme quota que vos scans web.

Puis-je scanner des environnements de staging proteges ?

Oui, l'API CI supporte l'authentification Basic Auth. Vous pouvez configurer un nom d'utilisateur et mot de passe pour acceder a vos environnements proteges.

Comment configurer le seuil d'echec ?

Utilisez le parametre 'threshold' (0-100) pour definir le score minimum acceptable. Si le score est inferieur, le scan retourne passed: false, que votre CI peut utiliser pour faire echouer le build.

Le CLI supporte-t-il les monorepos ?

Oui, vous pouvez creer un fichier .rgaachecker.json a la racine de chaque sous-projet avec des configurations differentes (URL, seuils, options).

Inclus dans vos plans Decouverte et Pro

L'integration CI/CD utilise le meme quota que vos scans web. Pas de surcout, pas de plan separe.

Automatisez vos audits d'accessibilite

Detectez les regressions avant qu'elles n'arrivent en production.

Commencer l'integration