Herramientas

Pa11y

Herramienta de código abierto para pruebas de accesibilidad desde la línea de comandos. La compañera de axe-core CLI compatible con CI; pa11y-ci impulsa los flujos de trabajo nocturnos de regresión de accesibilidad en toda la web.

Pa11y es una herramienta automatizada de código abierto para pruebas de accesibilidad. Desarrollada originalmente en Nature Publishing Group y mantenida actualmente por una comunidad independiente, Pa11y ha sido la herramienta de referencia para «pruebas de accesibilidad en CI» durante la última década.

Qué hace Pa11y

Pa11y desde la línea de comandos recibe una URL y ejecuta comprobaciones de accesibilidad sobre la página renderizada, mostrando una lista de infracciones:

$ pa11y https://example.com
Welcome to Pa11y

> Running Pa11y on 1 URLs:
...

Error: This element does not have an attribute "alt".
   • Element: <img src="..." />
   • Code: HTML_CS.Principle1.Guideline1_1.1_1_1.H37
   • Selector: body > section:nth-child(2) > img

Pa11y se ejecuta en un navegador sin interfaz gráfica (Puppeteer o Playwright de fondo), de modo que analiza el DOM renderizado, no solo el HTML fuente — lo que significa que puede auditar contenido generado por JavaScript de la misma forma en que lo encontraría un usuario real.

Motores de reglas compatibles

Pa11y ha soportado históricamente dos motores de reglas:

  • HTML_CodeSniffer (el predeterminado; la columna vertebral original de Pa11y).
  • axe-core (mediante pa11y --runner axe).

Ambos pueden ejecutarse simultáneamente y fusionarse los resultados — un modo de «todo lo que puedo detectar automáticamente». La mayoría de los despliegues modernos de Pa11y utilizan exclusivamente el motor axe-core, ya que es el que tiene el desarrollo de reglas más activo.

pa11y-ci — el flujo de trabajo con múltiples URL

El caso de uso principal es pa11y-ci, un envoltorio que ejecuta Pa11y sobre muchas URL a la vez y termina con un código de estado apropiado para CI:

$ pa11y-ci --sitemap https://example.com/sitemap.xml

Este es exactamente el flujo de trabajo que adoptan la mayoría de los programas de accesibilidad para regresiones nocturnas: se alimenta el mapa del sitio a pa11y-ci según un calendario cron, se falla la compilación si aparecen nuevas infracciones, y se envían alertas cuando el número de infracciones aumenta.

La configuración reside en .pa11yci (o un archivo JSON), lo que permite exclusiones por URL, umbrales de gravedad, tamaños de ventana gráfica, acciones personalizadas (inicio de sesión, navegación con clics) y otras automatizaciones.

Pa11y frente a axe-core frente a Lighthouse

Un modelo mental razonable:

  • axe-core es el motor de reglas — la biblioteca de detección subyacente. Se utiliza a través de un envoltorio.
  • Lighthouse es un envoltorio, optimizado para auditorías completas de calidad del sitio (Rendimiento + Accesibilidad + Buenas prácticas + SEO).
  • Pa11y es otro envoltorio, optimizado para la supervisión de accesibilidad en CI sobre muchas URL a escala.
  • axe-core CLI es el tercero — axe puro, sin envoltorio Pa11y, también compatible con CI.

Para análisis en profundidad de una página concreta, Lighthouse es mejor. Para pruebas de regresión en todo el sitio con muchas URL, Pa11y es la opción práctica por defecto. Para comprobaciones de PR que bloqueen la compilación en una única URL, tanto axe-core CLI como Lighthouse-CI funcionan perfectamente.

Limitaciones

Pa11y hereda todas las limitaciones de las herramientas automatizadas:

  • El 30–40 % de los problemas de WCAG son detectables automáticamente; el resto requiere criterio humano.
  • No puede probar la navegación con teclado, el orden del foco ni el comportamiento del lector de pantalla.
  • Se ejecuta en un navegador sin interfaz gráfica, por lo que no puede detectar problemas que solo aparecen durante la interacción real del usuario (clics repetidos, abandono de formularios, apilamiento inesperado de ventanas modales).

Sin embargo, dentro del techo de detección automatizada, Pa11y es la herramienta operativamente más flexible entre las principales opciones — especialmente cuando el alcance de la auditoría es «todo el sitio, cada noche» en lugar de «este PR concreto».