Addaw, ir a inicio Donar

Lección 8 de 10 · 10 min de lectura · Revisado el 26/10/2026

Rastreadores y monitorización: pa11y, axe en integración continua y observatorios

Una extensión de navegador analiza la página que tienes delante. Para explorar un sitio de miles de páginas, vigilar que no se degrade tras cada despliegue o cumplir con el seguimiento que exige la normativa hacen falta rastreadores y monitorización continua. Esta lección explica las opciones habituales, cómo configurarlas sin generar ruido y cómo encajan con la labor de los observatorios públicos.

Rastreo puntual para explorar y detectar fallos sistemáticos

En el paso 2 de WCAG-EM (se abre en una ventana nueva), un rastreo da una visión del sitio imposible de obtener a mano: cuántas plantillas hay, qué tecnologías se usan, cuántos PDF se enlazan, qué problemas se repiten. Las herramientas de rastreo recorren enlaces a partir de una URL inicial o de un sitemap.xml, cargan cada página en un navegador sin interfaz (headless) y aplican un motor de reglas.

  • pa11y y pa11y-ci: herramienta de línea de comandos en Node.js que puede usar HTML_CodeSniffer o axe-core como motor. Acepta una lista de URL o un sitemap, permite acciones previas (iniciar sesión, pulsar un botón) y genera informes en JSON, CSV o HTML. pa11y-ci devuelve un código de error si se superan umbrales, lo que lo hace apto para integración continua.
  • axe-core CLI y @axe-core/playwright o @axe-core/puppeteer: ejecutan las reglas de axe en una o varias páginas controladas por script; es la forma más flexible de analizar estados (abrir el menú, rellenar el formulario con errores y entonces analizar).
  • Lighthouse CI: ejecuta auditorías de Lighthouse en cada build y compara con un presupuesto de puntuación.
  • Rastreadores comerciales: plataformas que rastrean periódicamente el sitio completo, guardan histórico y ofrecen paneles. Útiles para organizaciones grandes; en una auditoría externa son un apoyo, no el método.

Ejemplo

Configuración mínima de pa11y-ci para rastrear un sitemap con axe como motor y nivel AA:

{
  "defaults": {
    "runners": ["axe"],
    "standard": "WCAG2AA",
    "timeout": 30000,
    "chromeLaunchConfig": { "args": ["--no-sandbox"] }
  },
  "urls": [
    "https://www.ejemplo.es/",
    "https://www.ejemplo.es/contacto",
    {
      "url": "https://www.ejemplo.es/buscar",
      "actions": [
        "set field #q to padron",
        "click element button[type=submit]",
        "wait for element .resultados to be visible"
      ]
    }
  ]
}

Ejecución: pa11y-ci --sitemap https://www.ejemplo.es/sitemap.xml o pa11y-ci con el fichero anterior.

Interpretar un rastreo masivo

Un rastreo de 5.000 páginas puede devolver 60.000 incidencias. Antes de sacar conclusiones:

  1. Agrupa por regla y por selector. El mismo enlace del pie sin nombre accesible aparece una vez por página; es un único hallazgo de plantilla con 5.000 instancias.
  2. Separa plantilla de contenido. Los fallos de plantilla (cabecera, pie, menú) se corrigen una vez; los de contenido (alt de imágenes de noticias, encabezados saltados en un artículo) requieren formación de editores y revisión progresiva.
  3. Descarta las reglas de buenas prácticas de la cuenta de incumplimientos, o informa de ellas en una sección aparte.
  4. Identifica plantillas a partir de los patrones de resultados: las páginas con el mismo conjunto de reglas falladas comparten plantilla. Eso alimenta la muestra estructurada.
  5. Trata el estado «necesita revisión» como lista de tareas manuales, no como resultado.

Monitorización continua en el ciclo de desarrollo

Para evitar que un sitio corregido se degrade, la comprobación automática se integra en el flujo de desarrollo:

  • En el editor y en el commit: linters como eslint-plugin-jsx-a11y para React, o reglas de accesibilidad en Angular y Vue, avisan al escribir el código.
  • En pruebas unitarias y de componente: jest-axe o vitest-axe ejecutan axe sobre el HTML renderizado por el componente.
  • En pruebas de extremo a extremo: Playwright o Cypress con axe analizan páginas completas y estados tras la interacción, con sesión iniciada, en navegadores reales.
  • En la integración continua: pa11y-ci o Lighthouse CI con umbrales que hacen fallar el pipeline si aparecen violaciones nuevas.
  • En producción: rastreos programados (semanales, mensuales) con alertas cuando aumentan las incidencias.

La regla de oro de la integración continua es cero violaciones nuevas, no «cero violaciones»: se fija una línea base con las incidencias conocidas y el pipeline solo falla si aparecen otras. Así el equipo no desactiva la comprobación por frustración.

Punto clave

La monitorización automática protege lo que la auditoría manual ya ha conseguido: detecta regresiones de los problemas detectables. Sigue haciendo falta una revisión manual periódica (y cada vez que se incorpora un componente nuevo) para todo lo que las reglas no ven.

Observatorios y seguimiento normativo

La Directiva (UE) 2016/2102 (PDF, se abre en una ventana nueva) obliga a los Estados a supervisar la accesibilidad de los sitios y aplicaciones públicos. La Decisión de Ejecución (UE) 2018/1524 (PDF, se abre en una ventana nueva) define dos métodos: el seguimiento simplificado, automatizado, que detecta incumplimientos sobre una muestra grande de sitios, y el seguimiento en profundidad, manual y basado en una muestra de páginas por sitio, que verifica todos los requisitos. En España lo ejecuta el Observatorio de Accesibilidad Web, que además ofrece a las administraciones un servicio de diagnóstico en línea y publica informes periódicos y la metodología de seguimiento simplificado basada en la UNE-EN 301 549 (PDF, se abre en una ventana nueva).

Para un auditor esto tiene dos implicaciones. Primero, los informes del observatorio son una fuente útil en la exploración: indican qué problemas detecta la administración en ese sitio o en su sector. Segundo, el seguimiento simplificado es automático y, por tanto, comparte los límites de esta lección: un buen resultado en él no equivale a conformidad, y el seguimiento en profundidad (o una auditoría WCAG-EM) es lo que realmente mide el cumplimiento.

Buenas prácticas al configurar rastreos

  • Respeta el servidor: limita la concurrencia y la velocidad; avisa al cliente y pide que no bloqueen el agente de usuario del rastreador.
  • Incluye estados y zonas privadas con cuentas de prueba mediante acciones de inicio de sesión.
  • Fija la versión del motor y documenta reglas y configuración en el informe; una actualización de axe-core puede cambiar los resultados sin que el sitio cambie.
  • Guarda la salida en bruto (JSON) como evidencia junto al resumen.
  • Rastrea también en viewport móvil: algunos problemas (menú hamburguesa sin nombre, tablas transformadas) solo existen ahí.

Error frecuente

Configurar el pipeline para fallar con cualquier violación en el primer día. El equipo, con 300 incidencias heredadas, desactiva la comprobación «temporalmente» y nunca vuelve a activarla. Empieza con una línea base y un umbral de «no empeorar», y redúcelo a medida que se corrige.

Resumen

  • Los rastreadores (pa11y-ci, axe CLI con Playwright o Puppeteer, Lighthouse CI, plataformas comerciales) permiten explorar sitios completos y detectar fallos sistemáticos.
  • Interpreta los rastreos agrupando por regla y selector, separando plantilla de contenido y excluyendo buenas prácticas de la cuenta de incumplimientos.
  • En el ciclo de desarrollo, combina linters, pruebas de componente, pruebas e2e con axe y umbrales de «cero violaciones nuevas» en integración continua.
  • El seguimiento oficial (Decisión 2018/1524, Observatorio de Accesibilidad Web (se abre en una ventana nueva)) tiene un método simplificado automático y otro en profundidad manual; solo el segundo mide conformidad.
  • Documenta versión de motor, configuración y salida en bruto; respeta el servidor e incluye estados y zonas privadas.

Comprueba lo que has aprendido

Esta lección se puede leer libremente. Para hacer su test de 3 preguntas, los ejercicios prácticos con páginas reales, guardar tu avance y optar al examen y al certificado, matricúlate en el curso.

Matricularme · nivel 4 (49 €)