Recuperare i Risultati di Axe Watcher con axe-watcher-results
Utilizza axe-watcher-results per estrarre i risultati di una scansione completata di Axe Watcher in una pipeline CI e bloccare la build in base alla tua soglia di accessibilità
axe-watcher-results recupera i risultati di una scansione completata di Axe Watcher da Axe Developer Hub e li trasforma in un segnale di successo/fallimento per una pipeline CI.
axe-watcher-results non esegue le scansioni di accessibilità. Axe Watcher esegue quelle come parte della tua suite di test. Recupera solo i risultati dopo che una scansione è terminata, quindi eseguilo come un passaggio separato e successivo nella tua pipeline. Vedi Utilizza Axe Watcher negli Ambienti di Integrazione Continua (CI) per il comportamento di Axe Watcher stesso in CI.
Prerequisiti
Prima di eseguire axe-watcher-results, hai bisogno di:
- Un Chiave API di Axe Developer Hub (un UUID).
- L'ID progetto per il progetto Axe Developer Hub a cui è stata inviata la scansione (un UUID).
- Una scansione di Axe Watcher completata per il commit che desideri controllare.
Installare
axe-watcher-results è distribuito come un binario auto-contenuto per Linux, macOS e Windows. Scarica il binario per la tua piattaforma dalla pagina Download (l'accesso richiede un abbonamento a axe DevTools for Web), poi segui Preparazione dei Binari dopo il Download per renderlo eseguibile e, su macOS, per eliminare l'attributo di quarantena.
I binari per macOS e Windows non sono firmati digitalmente e possono essere bloccati dai controlli di sicurezza del tuo sistema operativo fino a quando non ne autorizzi l'esecuzione.
Posiziona il binario sul tuo PATH (o riferimento tramite percorso) così da poterlo eseguire come axe-watcher-results.
Autenticazione
axe-watcher-results legge la tua chiave API di Axe Developer Hub dalla variabile di ambiente AXE_DEVHUB_API_KEY. Impostala una volta prima di eseguire qualsiasi comando — nel tuo terminale per uso locale, o nel negozio segreto del tuo sistema CI per una pipeline:
export AXE_DEVHUB_API_KEY=<your-api-key>Gli esempi sotto assumono che questa variabile sia impostata.
Consulta i Risultati per un Commit (CI Gating)
Esegui axe-watcher-results sessions get con il tuo ID progetto e un SHA di commit Git:
axe-watcher-results sessions get <project-id> <commit-sha><project-id>: l'UUID del progetto.<commit-sha>: un SHA di commit Git di 7-40 caratteri che ha già una scansione di Axe Watcher completata.
Questa è la ricerca che blocca una build: se il numero di problemi dell'esecuzione supera la soglia di accessibilità del tuo progetto, axe-watcher-results termina con il codice 10 (vedi Codici di Uscita). Ad esempio, con --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."
}| Campo | Descrizione |
|---|---|
project |
Nome del progetto. |
project-id |
UUID del progetto. |
commit-sha |
Lo SHA del commit che hai consultato. |
run-url |
Collegamento all'esecuzione in Axe Developer Hub. |
issues |
Conteggio totale dei problemi per l'esecuzione. |
new-issues |
Problemi non presenti nella baseline di confronto. |
resolved-issues |
Problemi presenti nella baseline ma non in questa esecuzione. |
issues-over-a11y-threshold |
Numero di problemi superiori alla soglia di accessibilità del tuo progetto; questo è ciò che determina il codice di uscita 10. |
page-states |
Numero di stati delle pagine scansionati. |
difference-in-page-states |
Variazione nel numero di stati delle pagine rispetto alla baseline. |
created-at |
Timestamp in cui è stata registrata l'esecuzione. |
message |
Presente solo quando la soglia è stata superata. |
Se analizzi l'output in uno script, utilizza --format=json: i nomi dei campi sopra sono stabili. L'output predefinito --format=text è destinato agli umani che leggono i log delle build, non per l'analisi.
Consulta i Risultati per una Sessione
Puoi anche consultare una scansione specifica tramite il suo ID sessione invece di uno SHA di commit:
axe-watcher-results sessions get <project-id> <session-id><session-id> è un UUID di sessione. axe-watcher-results distingue un ID sessione da uno SHA di commit dalla sua forma (un UUID rispetto a una stringa esadecimale di 7-40 caratteri), quindi lo passi nella stessa posizione. L'argomento <project-id> è comunque richiesto e validato, anche se una ricerca di sessione risolve il suo progetto dalla sessione e dalla chiave API piuttosto che dall'argomento.
Utilizza --detail=summary (l'impostazione predefinita) per i conteggi dei problemi per gravità e regole, o --detail=full per ottenere il documento completo del risultato come JSON grezzo (questo ignora --format).
--format=json --detail=summary appare così:
{
"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
}
]
}
}| Campo | Descrizione |
|---|---|
report_id |
ID univoco per questo rapporto sui risultati. |
source |
Il prodotto e la versione di Axe Watcher che hanno prodotto la scansione. |
test_details.test_id |
L'ID sessione che hai cercato. |
test_details.start_date / end_date |
Quando è stata eseguita la scansione. |
commit |
Metadati del commit Git, quando disponibili; altrimenti omessi. |
devhub_summary.issue_count_total |
Conteggio totale dei problemi per la sessione. |
devhub_summary.issue_count_by_impact |
Conteggi dei problemi suddivisi per critical, serious, moderate e minor. |
devhub_summary.issue_count_by_rule |
Una voce per ogni regola violata, con severità, un URL di aiuto e un conteggio. |
Una ricerca sessione non verifica la soglia di accessibilità e non esce mai con il codice 10. Utilizza una ricerca commit-SHA, non una ricerca ID sessione, per bloccare una build CI.
Se la scansione è ancora in elaborazione, axe-watcher-results interroga il server (fino a 5 minuti) e scrive i progressi su stderr; se la scansione non termina in tempo, esce con il codice 11.
Elenca le sessioni per un progetto
Il sottocomando sessions list elenca le sessioni di scansione registrate di un progetto, utile per trovare un ID sessione da cercare:
axe-watcher-results sessions list <project-id>Filtra i risultati con --git-branch, --commit-sha, --git-url, --created-after/--created-before (timestamp ISO-8601), --created-by-user-email e --is-canonical-source. Utilizza --page-size (1-100) e --after per sfogliare i risultati. sessions list accetta anche --format, --network-timeout-seconds e --verbose/-v, che si comportano allo stesso modo di sessions get.
Opzioni
Queste opzioni si applicano al comando sessions get (ricerche commit-SHA e ID sessione):
| Opzione | Variabile di ambiente | Predefinito | Descrizione |
|---|---|---|---|
--format=text|json |
text |
Formato di output. | |
--detail=summary|full |
summary |
Dettaglio del risultato per le ricerche ID sessione. Ignorato per le ricerche commit-SHA. | |
--network-timeout-seconds=<n> |
AXE_WATCHER_RESULTS_NETWORK_TIMEOUT_SECONDS |
30 |
Timeout HTTP per richiesta, in secondi. |
AXE_SERVER_URL |
https://axe.deque.com |
Sostituisci l'URL del server dell'Axe Developer Hub. Vedi Specifica l'URL del Server dell'Axe Developer Hub se la tua organizzazione utilizza un server regionale, cloud privato o on-premises. | |
--verbose, -v |
Registra l'URL della richiesta e lo stato di risposta su stderr. |
--version (sul comando radice axe-watcher-results) stampa la versione axe-watcher-results ed esce; --help è disponibile su ogni comando.
L'output va a stdout come testo pulito o JSON; i messaggi di progresso e errore vanno a stderr, quindi puoi catturare stdout per i log di build senza analisi extra.
Esempio di blocco CI
Esegui axe-watcher-results come passaggio dopo che la tua scansione di Axe Watcher è completata, utilizzando un commit SHA in modo che il codice di uscita rifletta la soglia di 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'uscita non-zero interrompe il passaggio chiamante. Vedi Codici di uscita per cosa significa ogni codice e come rispondervi.
Se stai integrando specificamente con GitHub Actions, Axe Developer Hub GitHub Action fornisce un comportamento di blocco simile senza richiedere un binario separato. Usa axe-watcher-results quando hai bisogno di un blocco agnostico per il provider per GitLab CI, CircleCI, Jenkins o un altro sistema CI.
Codici di uscita
| Codice | Significato |
|---|---|
| 0 | Successo. |
| 1 | Errore generale (ad esempio, un errore nella scrittura dell'output). |
| 2 | Un argomento o una variabile di ambiente necessaria è mancante. |
| 3 | Il formato o il valore di un argomento non è valido. |
| 9 | Hub dell'Axe Developer ha restituito un errore. |
| 10 | La soglia di accessibilità è stata superata (solo ricerche commit-SHA). |
| 11 | Tempo scaduto per il polling della sessione. |
| 12 | Non sono disponibili dati di confronto per questo commit. |
Recupero dall'uscita 12
Uscita 12 significa che il commit ha risultati di scansione, ma Axe Developer Hub non ha nulla con cui confrontarli. Axe Developer Hub seleziona una baseline in questo ordine:
- Una sessione precedente sullo stesso commit SHA.
- La sessione più recente su un altro SHA dello stesso branch.
- La sessione attuale stessa, ma solo se la sessione è canonica (vedi Usa Axe Watcher in ambienti di Continuous Integration (CI)).
Se nessuna di queste è disponibile e la sessione non è canonica, Axe Developer Hub restituisce un 404 e axe-watcher-results esce con il codice 12. Per recuperare:
- Rieseguire la scansione di Axe Watcher con
CI=trueimpostato, in modo che la sessione diventi canonica e si confronti autonomamente in un avvio a freddo. - Eseguire una scansione aggiuntiva, su questo commit o su un commit precedente dello stesso branch, per stabilire una baseline.
