Aller au contenu principal
RGAAudit
CI/CD

CI/CD — Intégrer l'audit RGAA dans votre pipeline

Vérifiez automatiquement la conformité RGAA à chaque déploiement

GitHub Action

Ajoutez un audit RGAA automatique sur chaque Pull Request. L'action vérifie que le score d'accessibilité ne descend pas sous le seuil défini.

Créez le fichier .github/workflows/rgaa.yml :

name: RGAA Check
on: [pull_request]

jobs:
  rgaa:
    runs-on: ubuntu-latest
    steps:
      - uses: rgaaudit/action@v1
        with:
          url: ${{ env.PREVIEW_URL }}
          threshold: 70

Paramètres disponibles :

  • url — URL de la preview à auditer (obligatoire)
  • threshold — Score minimum requis, de 0 à 100 (défaut : 70)
  • api-key — Clé API RGAAudit (via un secret GitHub)
  • fail-on-error — Échouer le job si le seuil n'est pas atteint (défaut : true)

Outputs disponibles :

  • score, violations, conformity — Métriques classiques
  • broken-links — Nombre de liens cassés (404) détectés sur la page
  • error-pages — Nombre de pages en erreur (timeout, Cloudflare, etc.)
  • report-json — Rapport JSON complet avec diagnostics (liens cassés, erreurs)

GitLab CI

Ajoutez ce stage dans votre fichier .gitlab-ci.yml :

rgaa-audit:
  image: node:20
  stage: test
  script:
    - |
      RESULT=$(curl -s -X POST https://rgaaudit.fr/api/ci/scan \
        -H "Content-Type: application/json" \
        -H "X-API-Key: $RGAAUDIT_API_KEY" \
        -d "{\"url\": \"$CI_ENVIRONMENT_URL\", \"threshold\": 70, \"diagnostics\": true}")
      echo "$RESULT" | jq .
      SCORE=$(echo "$RESULT" | jq -r '.score')
      BROKEN=$(echo "$RESULT" | jq -r '.diagnostics.brokenLinks | length')
      echo "Score RGAA : $SCORE/100 — Liens cassés : $BROKEN"
      if [ "$SCORE" -lt 70 ]; then
        echo "Score RGAA insuffisant : $SCORE/100"
        exit 1
      fi
      if [ "$BROKEN" -gt 0 ]; then
        echo "⚠️  $BROKEN lien(s) cassé(s) détecté(s)"
      fi
  only:
    - merge_requests

Ajoutez la variable RGAAUDIT_API_KEY dans Settings > CI/CD > Variables de votre projet GitLab.

Audit authentifié

Pour auditer les pages protégées par authentification (dashboard, admin, paramètres...), passez les cookies de session dans le body de la requête :

curl -X POST https://rgaaudit.fr/api/ci/scan \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $RGAAUDIT_API_KEY" \
  -d '{
    "url": "https://monapp.fr",
    "cookies": [
      { "name": "session", "value": "abc123", "domain": "monapp.fr" }
    ],
    "threshold": 70
  }'

Ce que ça change :

  • Les cookies sont injectés dans le navigateur lors de la découverte et de l'analyse
  • Les pages nécessitant une authentification sont détectées et marquées avec un badge Protégée
  • Le champ authPages est ajouté au résumé de la réponse
  • Le badge SVG affiche un suffixe si des pages protégées sont incluses

Le paramètre cookies accepte un tableau d'objets avec les champs name, value, domain (optionnel) et path (optionnel, défaut : « / »).

Badge README

Affichez le score RGAA de votre site directement dans votre README :

![RGAA Score](https://rgaaudit.fr/api/ci/badge/monsite.fr)

Le badge se met à jour automatiquement après chaque audit. Formats supportés :

Markdown

![RGAA](https://rgaaudit.fr/api/ci/badge/monsite.fr)

HTML

<img src="https://rgaaudit.fr/api/ci/badge/monsite.fr" alt="RGAA Score" />

reStructuredText

.. image:: https://rgaaudit.fr/api/ci/badge/monsite.fr

Résultats sur les Pull Requests

L'action GitHub ajoute automatiquement un commentaire sur la PR avec le résultat de l'audit :

Exemple de commentaire :

Audit RGAA — Score : 78/100

CritèreImpactOccurrences
1.1 — Images alternativesCritique3
3.1 — Contraste texteSérieux7
8.2 — Langue par défautModéré1

Le commentaire inclut un lien vers le rapport complet sur RGAAudit, avec les détails de chaque violation et les suggestions de correction.

Clé API

Pour utiliser l'intégration CI/CD, vous devez générer une clé API dédiée depuis votre compte RGAAudit.

Pour générer votre clé :

  1. Connectez-vous à votre tableau de bord RGAAudit
  2. Allez dans Paramètres > API
  3. Cliquez sur Générer une clé CI/CD
  4. Copiez la clé affichée (elle ne sera plus visible ensuite)

Les clés CI/CD sont préfixées par rga_ (par exemple rga_k7x9m2...). Stockez-la dans un secret GitHub ou une variable CI protégée :

# GitHub Actions — ajouter le secret dans Settings > Secrets
- uses: rgaaudit/action@v1
  with:
    url: ${{ env.PREVIEW_URL }}
    api-key: ${{ secrets.RGAAUDIT_API_KEY }}
    threshold: 70

Limites par plan

L'accès à l'API CI/CD dépend de votre plan RGAAudit :

Quotas de requêtes API mensuels :

  • Découverte (gratuit) — CI/CD non disponible (génération de clé bloquée)
  • Freelance — 100 requêtes / mois
  • Agence — 500 requêtes / mois
  • Organisation — Illimité

Au-delà du quota, l'API retourne une erreur 403 Forbidden. Le compteur se réinitialise le 1er de chaque mois. Vous pouvez suivre votre consommation dans Paramètres > API.

Badge dynamique

Le badge RGAA se met à jour automatiquement après chaque audit CI/CD ou audit lancé depuis l'interface web. Il affiche le dernier score connu pour votre domaine.

La couleur du badge reflète le niveau de conformité :

ScoreCouleurNiveau
≥ 90VertExcellent
≥ 70JauneBon
≥ 50OrangeÀ améliorer
< 50RougeInsuffisant

Aucune authentification requise pour afficher le badge : l'endpoint GET /api/ci/badge/:siteKey est public. Intégrez-le dans votre README, votre documentation ou votre site vitrine.

Si le dernier audit inclut des pages protégées par authentification, le badge affiche un suffixe après le niveau de conformité (ex : « Conforme ✦ »), indiquant une couverture étendue.