OdeetAccueil

Tester l’accessibilité dans votre intégration continue

À chaque mise en ligne, Odeet scanne les pages que vous choisissez, sur ordinateur et sur mobile, et fait échouer le pipeline si le score passe sous votre seuil. Le rapport complet reste dans votre tableau de bord.

Ce qu’il faut savoir

  • Réservé au plan Pro : 300 scans CI sur 30 jours glissants, en plus des 100 audits.
  • Seules les pages listées sont scannées, 20 au maximum ; sans liste, la page d’accueil seule.
  • Le site doit être accessible depuis Internet : Odeet refuse les adresses de réseau privé.
  • Le score Odeet est un indicateur technique, pas un taux de conformité RGAA.

1. Créer une clé API

  1. 1Dans Odeet, ouvrez Paramètres, section Intégrations, puis cliquez sur Créer une clé.
  2. 2Nommez-la d’après le projet ou le client, puis copiez-la : elle ne s’affiche qu’une fois.
  3. 3Enregistrez-la comme secret de votre CI sous le nom ODEET_API_KEY.

Le propriétaire et les admins de l’organisation créent et révoquent les clés. Une clé révoquée cesse de fonctionner immédiatement.

2. Ajouter l’étape au pipeline

GitHub Actions : .github/workflows/accessibilite.yml
name: Accessibilité
on:
  push:
    branches: [main]

jobs:
  odeet:
    runs-on: ubuntu-latest
    steps:
      - name: Accessibilité Odeet
        run: |
          curl --fail-with-body --max-time 1500 https://dashboard.odeet.fr/api/ci/gate \
            -H "Authorization: Bearer ${{ secrets.ODEET_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d '{"siteUrl":"https://preprod.example.com","urls":["/contact","/cart"],"minScore":80}'
GitLab CI : .gitlab-ci.yml
accessibility:
  stage: test
  image: curlimages/curl:8.11.1
  script:
    - >
      curl --fail-with-body --max-time 1500 https://dashboard.odeet.fr/api/ci/gate
      -H "Authorization: Bearer $ODEET_API_KEY"
      -H "Content-Type: application/json"
      -d '{"siteUrl":"https://preprod.example.com","minScore":80}'
Autre outil : curl
curl --fail-with-body --max-time 1500 https://dashboard.odeet.fr/api/ci/gate \
  -H "Authorization: Bearer $ODEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"siteUrl":"https://preprod.example.com","urls":["/contact"],"minScore":80}'

L’appel attend la fin du scan, jusqu’à 20 minutes, puis répond. Avec --fail-with-body, curl échoue si le score est sous le seuil et affiche la réponse dans le journal du pipeline.

Paramètres

Champs du corps JSON de POST /api/ci/gate
ChampValeur
siteUrlAdresse du site, obligatoire.
urlsPages à scanner en plus de l’accueil, même domaine, 20 au maximum.
minScoreSeuil de réussite, de 0 à 100. 70 par défaut.
waitfalse pour répondre tout de suite et suivre le scan à part. true par défaut.
localefr ou en : langue des messages d’erreur et du message Slack.

Réponses

Codes HTTP renvoyés par la porte CI
CodeSignification
200Scan terminé, score au moins égal au seuil.
422Scan terminé, score sous le seuil : le pipeline échoue.
202Scan encore en cours (wait à false ou attente dépassée) : suivez statusUrl.
400Adresse invalide, injoignable ou hors du domaine.
401Clé absente, invalide ou révoquée.
403L’organisation n’a pas d’abonnement Pro actif.
409Deux scans de l’organisation sont déjà en file : réessayez après Retry-After.
429Quota de scans CI atteint, ou trop d’appels rapprochés.
500Le scan n’a pas pu aboutir.
Réponse 200
{
  "scanId": "…",
  "auditId": "…",
  "status": "completed",
  "passed": true,
  "score": 86,
  "threshold": 80,
  "level": "Bon",
  "totalViolations": 4,
  "counts": { "critical": 0, "serious": 1, "moderate": 2, "minor": 1 },
  "reportUrl": "https://dashboard.odeet.fr/audit/…"
}

Suivre un scan sans attendre

Si votre outil limite la durée d’une étape, lancez le scan avec "wait": false, puis interrogez l’adresse de suivi renvoyée.

Lancement puis suivi
# 1. Lancer sans attendre : réponse 202 avec statusUrl
curl https://dashboard.odeet.fr/api/ci/gate \
  -H "Authorization: Bearer $ODEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"siteUrl":"https://preprod.example.com","wait":false}'

# 2. Suivre : 202 tant que le scan tourne, puis 200 ou 422
curl --fail-with-body https://dashboard.odeet.fr/api/ci/scans/SCAN_ID \
  -H "Authorization: Bearer $ODEET_API_KEY"

Disponible avec le plan Pro

Intégration continue, Slack et monitoring, en plus de 100 audits sur 30 jours.

Voir l’offre Pro

Pour aller plus loin