Récupérer les Résultats de Axe Watcher avec axe-watcher-results
Utilisez axe-watcher-results pour extraire les résultats d'une analyse complète de Axe Watcher dans un pipeline CI et bloquez la construction en fonction de votre seuil d'accessibilité
axe-watcher-results récupère les résultats d'une analyse complète de Axe Watcher depuis le Axe Developer Hub et les transforme en un signal de réussite/échec pour un pipeline CI.
axe-watcher-results n'exécute pas d'analyses d'accessibilité. Axe Watcher s'en charge dans votre suite de tests. Il ne récupère que les résultats une fois l'analyse terminée, vous devez donc l'exécuter comme une étape distincte et ultérieure dans votre pipeline. Consultez Utiliser Axe Watcher dans des Environnements d'Intégration Continue (CI) pour savoir comment Axe Watcher lui-même fonctionne dans un environnement CI.
Pré-requis
Avant d'exécuter axe-watcher-results, vous avez besoin de :
- Un Clé API Axe Developer Hub (un UUID).
- Le ID de projet pour le projet Axe Developer Hub auquel l'analyse a été envoyée (un UUID).
- Une analyse complète de Axe Watcher pour le commit que vous souhaitez vérifier.
Installation
axe-watcher-results est distribué sous forme de binaire autonome pour Linux, macOS et Windows. Téléchargez le binaire pour votre plateforme depuis la page Téléchargements (l'accès nécessite un droit axe DevTools pour le Web), puis suivez Préparation des Binaries après Téléchargement pour le rendre exécutable et, sur macOS, pour effacer l'attribut de quarantaine.
Les binaires macOS et Windows ne sont pas signés et peuvent être bloqués par les contrôles de sécurité de votre système d'exploitation jusqu'à ce que vous les autorisiez à s'exécuter.
Placez le binaire sur votre PATH (ou référencez-le par son chemin) afin de pouvoir l'exécuter en tant que axe-watcher-results.
Authentification
axe-watcher-results lit votre clé API Axe Developer Hub depuis la variable d'environnement AXE_DEVHUB_API_KEY. Réglez-la une fois avant d'exécuter une commande : dans votre shell pour une utilisation locale, ou dans le magasin de secrets de votre système CI pour un pipeline :
export AXE_DEVHUB_API_KEY=<your-api-key>Les exemples ci-dessous supposent que cette variable est définie.
Consulter les Résultats pour un Commit (Blocage CI)
Exécutez axe-watcher-results sessions get avec votre ID de projet et un SHA de commit Git :
axe-watcher-results sessions get <project-id> <commit-sha><project-id>: l'UUID du projet.<commit-sha>: un SHA de commit Git de 7 à 40 caractères qui a déjà une analyse complète de Axe Watcher.
Il s'agit de la consultation qui bloque une construction : si le nombre de problèmes du run dépasse le seuil d'accessibilité de votre projet, axe-watcher-results se termine avec le code 10 (voir Codes de Sortie). Par exemple, avec --format=json :
{
"project": "your-project-name",
"project-id": "7347af86-ff4e-4e14-8957-8fc2255ed4ec",
"commit-sha": "e220798b6558cdfc7c3e592378be67e1e78e7377",
"run-url": "https://axe.deque.com/axe-watcher/projects/7347af86-ff4e-4e14-8957-8fc2255ed4ec/branches/main/compare/0d4a85a2-9e6f-44ef-b814-fee8412abeb0/0d4a85a2-9e6f-44ef-b814-fee8412abeb0?settings_hash=0757ca72c5e10951ddbb2ede4edab06e&issues_over_a11y_threshold=2",
"issues": 17,
"new-issues": 17,
"resolved-issues": 0,
"issues-over-a11y-threshold": 2,
"page-states": 2,
"difference-in-page-states": 0,
"created-at": "2026-07-07T18:13:00.641Z",
"message": "Run exceeded the a11y threshold by 2."
}| Champ | Description |
|---|---|
project |
Nom du projet. |
project-id |
UUID du projet. |
commit-sha |
Le SHA du commit que vous avez consulté. |
run-url |
Lien vers le run dans le Axe Developer Hub. |
issues |
Nombre total de problèmes pour le run. |
new-issues |
Problèmes non présents dans la ligne de base de comparaison. |
resolved-issues |
Problèmes présents dans la ligne de base mais pas dans ce run. |
issues-over-a11y-threshold |
Nombre de problèmes au-dessus du seuil d'accessibilité de votre projet ; c'est ce qui détermine le code de sortie 10. |
page-states |
Nombre d'états de page analysés. |
difference-in-page-states |
Changement dans le nombre d'états de page par rapport à la ligne de base. |
created-at |
Horodatage où le run a été enregistré. |
message |
Présent uniquement lorsque le seuil a été dépassé. |
Si vous analysez la sortie dans un script, utilisez --format=json : les noms de champs ci-dessus sont stables. La sortie par défaut --format=text est destinée aux humains lisant les journaux de construction, pas pour analyse.
Consulter les Résultats pour une Session
Vous pouvez également consulter une analyse spécifique par son ID de session au lieu d'un SHA de commit :
axe-watcher-results sessions get <project-id> <session-id><session-id> est un UUID de session. axe-watcher-results distingue un ID de session d'un SHA de commit par sa forme (un UUID contre une chaîne hexadécimale de 7 à 40 caractères), vous le passez donc dans la même position. L'argument <project-id> est toujours nécessaire et validé, même si une consultation de session résout son projet depuis la session et la clé API plutôt que depuis l'argument.
Utilisez --detail=summary (par défaut) pour obtenir le dénombrement des problèmes par gravité et règle, ou --detail=full pour obtenir le document de résultats complet en tant que JSON brut (cela ignore --format).
--format=json --detail=summary ressemble à ceci :
{
"report_id": "14c16b50-a6ce-46ab-9974-0ad3b94eafde",
"source": {
"product_name": "axe-devtools-html",
"product_component_name": "axe-devtools-watcher",
"product_version": "4.0.0"
},
"test_details": {
"test_id": "0d4a85a2-9e6f-44ef-b814-fee8412abeb0",
"start_date": "2026-07-07T18:13:00.641Z",
"end_date": "2026-07-07T18:13:05.472Z"
},
"commit": {
"sha": "e220798b6558cdfc7c3e592378be67e1e78e7377",
"author": "Jane Doe",
"author_email": "jane@example.com",
"message": "fix: correct login form labels",
"branch_name": "main",
"tag": "",
"repository_url": "https://github.com/your-org/your-repo"
},
"devhub_summary": {
"issue_count_total": 17,
"issue_count_by_impact": {
"critical": 0,
"serious": 2,
"moderate": 15,
"minor": 0
},
"issue_count_by_rule": [
{
"severity": "serious",
"rule_id": "color-contrast",
"rule_help": "Elements must meet minimum color contrast ratio thresholds",
"rule_help_url": "https://dequeuniversity.com/rules/axe/4.11/color-contrast?application=axeAPI",
"count": 2
}
]
}
}| Champ | Description |
|---|---|
report_id |
ID unique pour ce rapport de résultats. |
source |
Le produit et la version de Axe Watcher qui ont produit l'analyse. |
test_details.test_id |
L'ID de session que vous avez consulté. |
test_details.start_date / end_date |
Quand l'analyse a été effectuée. |
commit |
Métadonnées de validation Git, si disponibles ; sinon omises. |
devhub_summary.issue_count_total |
Nombre total de problèmes pour la session. |
devhub_summary.issue_count_by_impact |
Nombre de problèmes répartis par critical, serious, moderate et minor. |
devhub_summary.issue_count_by_rule |
Une entrée par règle violée, avec la gravité, une URL d'aide et un nombre. |
Une recherche de session ne vérifie pas le seuil d'accessibilité et ne sort jamais avec le code 10. Utilisez une recherche de commit-SHA, et non une recherche d'ID de session, pour valider une construction CI.
Si l'analyse est encore en cours de traitement, axe-watcher-results interroge le serveur (jusqu'à 5 minutes) et écrit l'avancement sur stderr ; si l'analyse ne se termine pas à temps, elle se termine avec le code 11.
Lister les sessions pour un projet
La sous-commande sessions list liste les sessions d'analyse enregistrées pour un projet, ce qui est utile pour trouver un ID de session à consulter :
axe-watcher-results sessions list <project-id>Filtrez les résultats avec --git-branch, --commit-sha, --git-url, --created-after/--created-before (timestamps ISO-8601), --created-by-user-email, et --is-canonical-source. Utilisez --page-size (1-100) et --after pour parcourir les résultats. sessions list accepte également --format, --network-timeout-seconds et --verbose/-v, qui se comportent de la même manière pour sessions get.
Options
Ces options s'appliquent à la commande sessions get (recherches de commit-SHA et ID de session) :
| Option | Variable d'environnement | Par défaut | Description |
|---|---|---|---|
--format=text|json |
text |
Format de sortie. | |
--detail=summary|full |
summary |
Détail des résultats pour les recherches d'ID de session. Ignoré pour les recherches de commit-SHA. | |
--network-timeout-seconds=<n> |
AXE_WATCHER_RESULTS_NETWORK_TIMEOUT_SECONDS |
30 |
Délai d'attente HTTP par requête, en secondes. |
AXE_SERVER_URL |
https://axe.deque.com |
Remplacez l'URL du serveur Axe Developer Hub. Voir Spécifiez l'URL du serveur Axe Developer Hub si votre organisation utilise un serveur régional, privé en cloud ou sur site. | |
--verbose, -v |
Enregistrez l'URL de la requête et le statut de la réponse sur stderr. |
--version (sur la commande axe-watcher-results principale) imprime la version axe-watcher-results et sort ; --help est disponible sur toutes les commandes.
La sortie va sur stdout en texte clair ou JSON ; les messages de progression et d'erreur vont sur stderr, afin que vous puissiez capturer stdout pour les journaux de construction sans analyse supplémentaire.
Exemple de validation CI
Exécutez axe-watcher-results comme une étape après que votre analyse Axe Watcher soit terminée, en utilisant un SHA de validation afin que le code de sortie reflète le seuil d'accessibilité :
# AXE_DEVHUB_API_KEY is provided by your CI system's secret store
axe-watcher-results sessions get --format=json "$PROJECT_ID" "$GIT_COMMIT_SHA"Un code de sortie non nul échoue à l'étape appelante. Voir Codes de sortie pour savoir ce que signifie chaque code et comment y répondre.
Si vous intégrez spécifiquement avec GitHub Actions, le Action GitHub Axe Developer Hub offre un comportement de validation similaire sans nécessiter un binaire séparé. Utilisez axe-watcher-results lorsque vous avez besoin d'une validation indépendante du fournisseur pour GitLab CI, CircleCI, Jenkins ou un autre système CI.
Codes de sortie
| Code | Signification |
|---|---|
| 0 | Succès. |
| 1 | Erreur générale (par exemple, un échec lors de l'écriture de la sortie). |
| 2 | Un argument ou une variable d'environnement requis(e) est manquant(e). |
| 3 | Le format ou la valeur d'un argument est invalide. |
| 9 | Axe Developer Hub a retourné une erreur. |
| 10 | Le seuil d'accessibilité a été dépassé (recherches de commit-SHA uniquement). |
| 11 | Le sondage de session a expiré. |
| 12 | Aucune donnée de comparaison n'est disponible pour ce commit. |
Récupération de l'erreur 12
L'erreur 12 signifie que le commit a des résultats d'analyse, mais Axe Developer Hub n'a rien à comparer. Axe Developer Hub sélectionne une référence dans cet ordre :
- Une session antérieure sur le même SHA de commit.
- La session la plus récente sur un SHA différent dans la même branche.
- La session actuelle elle-même, mais uniquement si la session est canonique (voir Utiliser Axe Watcher dans des environnements d'intégration continue (CI)).
Si aucune de ces options n'est disponible et que la session n'est pas canonique, Axe Developer Hub renvoie un 404 et axe-watcher-results se termine avec le code 12. Pour récupérer :
- Rerunnez l'analyse Axe Watcher avec
CI=trueactivé, afin que la session devienne canonique et se compare elle-même au démarrage à froid. - Effectuez une analyse supplémentaire, sur ce commit ou un commit antérieur dans la même branche, pour créer une référence.
