Recuperar resultados de Axe Watcher con axe-watcher-results

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Utilice axe-watcher-results para extraer los resultados de un escaneo completado de Axe Watcher en una tubería de CI y bloquear la construcción en su umbral de accesibilidad

Not for use with personal data

axe-watcher-results recupera los resultados de un escaneo completado de Axe Watcher desde Axe Developer Hub y los convierte en una señal de aprobación/rechazo para una tubería de CI.

note

axe-watcher-results no realiza escaneos de accesibilidad. Axe Watcher hace eso como parte de su suite de pruebas. Solo recupera resultados después de que un escaneo finaliza, por lo que debe ejecutarse como un paso separado y posterior en su tubería. Consulte Usar Axe Watcher en entornos de Integración Continua (CI) para saber cómo se comporta Axe Watcher en CI.

Prerrequisitos

Antes de ejecutar axe-watcher-results, necesita:

Instalación

axe-watcher-results se distribuye como un binario autónomo para Linux, macOS y Windows. Descargue el binario para su plataforma desde la página de Descargas (el acceso requiere una licencia de axe DevTools for Web), luego siga Preparación de Binarios después de la Descarga para hacerlo ejecutable y, en macOS, eliminar el atributo de cuarentena.

note

Los binarios de macOS y Windows no están firmados con código y pueden ser bloqueados por los controles de seguridad de su sistema operativo hasta que se les permita ejecutarse.

Coloque el binario en su PATH (o refiéralo por su ruta) para que pueda ejecutarlo como axe-watcher-results.

Autenticación

axe-watcher-results lee su clave API de Axe Developer Hub de la variable de entorno AXE_DEVHUB_API_KEY. Establézcala una vez antes de ejecutar cualquier comando: en su consola para uso local, o en el almacén de secretos de su sistema CI para una tubería:

export AXE_DEVHUB_API_KEY=<your-api-key>

Los ejemplos a continuación suponen que esta variable está establecida.

Buscar Resultados para un Commit (Bloqueo de CI)

Ejecute axe-watcher-results sessions get con su ID de proyecto y un SHA de commit de Git:

axe-watcher-results sessions get <project-id> <commit-sha>
  • <project-id>: el UUID del proyecto.
  • <commit-sha>: un SHA de commit de Git de 7 a 40 caracteres que ya tiene un escaneo de Axe Watcher completado.

Esta es la búsqueda que bloquea una construcción: si el conteo de problemas del run supera el umbral de accesibilidad de su proyecto, axe-watcher-results sale con el código 10 (consulte Códigos de salida). Por ejemplo, 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 Descripción
project Nombre del proyecto.
project-id UUID del proyecto.
commit-sha El SHA del commit que buscó.
run-url Enlace al run en Axe Developer Hub.
issues Conteo total de problemas para el run.
new-issues Problemas no presentes en la línea base de comparación.
resolved-issues Problemas presentes en la línea base pero no en este run.
issues-over-a11y-threshold Conteo de problemas sobre el umbral de accesibilidad de su proyecto; esto es lo que determina el código de salida 10.
page-states Número de estados de página escaneados.
difference-in-page-states Cambio en el conteo de estados de página en comparación con la línea base.
created-at Marca de tiempo cuando se registró el run.
message Solo presente cuando se excedió el umbral.

Si analiza la salida en un script, use --format=json: los nombres de campo anteriores son estables. La salida --format=text predeterminada está destinada para que los humanos lean los registros de construcción, no para su análisis.

Buscar Resultados para una Sesión

También puede buscar un escaneo específico por su ID de sesión en lugar de un SHA de commit:

axe-watcher-results sessions get <project-id> <session-id>

<session-id> es un UUID de sesión. axe-watcher-results distingue un ID de sesión de un SHA de commit por su forma (un UUID frente a un string hexadecimal de 7 a 40 caracteres), por lo que puede pasarlo en la misma posición. El argumento <project-id> todavía se requiere y valida, aunque una búsqueda de sesión resuelve su proyecto desde la sesión y clave API en lugar de desde el argumento.

Use --detail=summary (el predeterminado) para conteos de problemas por severidad y regla, o --detail=full para obtener el documento completo de resultados como JSON bruto (esto ignora --format).

--format=json --detail=summary se ve así:

{
  "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 Descripción
report_id ID único para este informe de resultados.
source El producto y la versión de Axe Watcher que realizaron el análisis.
test_details.test_id El ID de sesión que buscaste.
test_details.start_date / end_date Cuándo se ejecutó el análisis.
commit Metadatos del commit de Git, si están disponibles; de lo contrario, se omite.
devhub_summary.issue_count_total Recuento total de problemas para la sesión.
devhub_summary.issue_count_by_impact Recuentos de problemas desglosados por critical, serious, moderate y minor.
devhub_summary.issue_count_by_rule Una entrada por regla violada, con la gravedad, una URL de ayuda y un recuento.
important

Una búsqueda de sesión no verifica el umbral de accesibilidad y nunca finaliza con el código 10. Usa una búsqueda por commit-SHA, no por ID de sesión, para controlar una construcción de CI.

Si el análisis todavía se está procesando, axe-watcher-results consulta el servidor (hasta 5 minutos) y escribe el avance en stderr; si el análisis no finaliza el procesamiento a tiempo, sale con el código 11.

Listar sesiones para un proyecto

El subcomando sessions list lista las sesiones de análisis registradas de un proyecto, lo que es útil para encontrar un ID de sesión para buscar:

axe-watcher-results sessions list <project-id>

Filtra los resultados con --git-branch, --commit-sha, --git-url, --created-after/--created-before (timestamps ISO-8601), --created-by-user-email y --is-canonical-source. Usa --page-size (1-100) y --after para paginar los resultados. sessions list también acepta --format, --network-timeout-seconds y --verbose/-v, que se comportan igual que para sessions get.

Opciones

Estas opciones se aplican al comando sessions get (búsquedas por commit-SHA y ID de sesión):

Opción Variable de entorno Por defecto Descripción
--format=text|json text Formato de salida.
--detail=summary|full summary Detalle del resultado para búsquedas por ID de sesión. Ignorado para búsquedas por commit-SHA.
--network-timeout-seconds=<n> AXE_WATCHER_RESULTS_NETWORK_TIMEOUT_SECONDS 30 Tiempo de espera por solicitud HTTP, en segundos.
AXE_SERVER_URL https://axe.deque.com Anula la URL del servidor de Axe Developer Hub. Consulta Especificar la URL del servidor de Axe Developer Hub si tu organización utiliza un servidor regional, en la nube privada o local.
--verbose, -v Registra la URL de la solicitud y el estado de respuesta en stderr.

--version (en el comando raíz axe-watcher-results) imprime la versión de axe-watcher-results y sale; --help está disponible en todos los comandos.

La salida se envía a stdout como texto limpio o JSON; los mensajes de progreso y error se envían a stderr, para que puedas capturar stdout para registros de compilación sin análisis adicional.

Ejemplo de control en CI

Ejecuta axe-watcher-results como un paso después de que tu análisis de Axe Watcher se complete, utilizando un commit SHA para que el código de salida refleje el umbral de accesibilidad:

# 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 código de salida distinto de cero falla en el paso que lo llama. Consulta Códigos de salida para entender qué significa cada código y cómo responder.

tip

Si estás integrando específicamente con GitHub Actions, el GitHub Action de Axe Developer Hub proporciona un comportamiento similar de control sin requerir un binario separado. Usa axe-watcher-results cuando necesites un control independiente del proveedor para GitLab CI, CircleCI, Jenkins u otro sistema CI.

Códigos de salida

Código Significado
0 Éxito.
1 Error general (por ejemplo, un fallo al escribir la salida).
2 Falta un argumento o una variable de entorno requerida.
3 El formato o el valor de un argumento no es válido.
9 Axe Developer Hub devolvió un error.
10 Se superó el umbral de accesibilidad (solo búsquedas por commit-SHA).
11 El sondeo de sesión se agotó.
12 No hay datos de comparación disponibles para este commit.

Recuperación del Salida 12

Salida 12 significa que el commit tiene resultados de escaneo, pero Axe Developer Hub no tiene nada con qué compararlos. Axe Developer Hub selecciona una línea base en este orden:

  1. Una sesión anterior en el mismo SHA del commit.
  2. La sesión más reciente en un SHA diferente dentro de la misma rama.
  3. La sesión actual en sí misma, pero solo si la sesión es canónica (ver Use Axe Watcher en entornos de Integración Continua (CI)).

Si ninguno de estos está disponible y la sesión no es canónica, Axe Developer Hub devuelve un 404 y axe-watcher-results sale con el código 12. Para recuperar:

  • Vuelva a ejecutar el escaneo de Axe Watcher con CI=true configurado, para que la sesión se vuelva canónica y se compare consigo misma en un inicio en frío.
  • Ejecute un escaneo adicional, contra este commit o un commit anterior en la misma rama, para generar una línea base.