Cómo automatizamos los VPAT de accesibilidad en CI Cómo automatizamos los VPAT de accesibilidad en CI
Las auditorías de accesibilidad quedan obsoletas rápidamente. Una sola fusión de código lo cambia todo.
Solucionamos esto. Convertimos nuestros informes de accesibilidad en un artefacto de compilación continua.
Nuestro pipeline utiliza tres capas para encontrar errores:
- Comprobaciones estáticas: Utilizamos axe-core para realizar pruebas de referencia en Storybook.
- Pruebas interactivas: Utilizamos helpers personalizados de Vitest para probar las reglas del teclado.
- Auditorías manuales: Almacenamos los resultados de los lectores de pantalla como archivos JSON.
Nuestro pipeline de CI combina estos resultados.
Si una prueba falla, el PR falla. Si todas las pruebas pasan, el sistema genera un nuevo PDF. Este PDF se incluye con su lanzamiento.
Intentamos una cosa que falló.
Intentamos usar un LLM para reemplazar las auditorías manuales. Dejamos de usarlo inmediatamente. Los resultados de la IA cambian demasiado. Se necesitan resultados estables para un control de CI.
Lea el desglose técnico completo aquí:
Fuente: https://dev.to/yassine_lakhdar_d0226709a/how-we-automated-our-accessibility-vpats-in-ci-46jk
ARTÍCULO: Un equipo de desarrollo ha automatizado la creación de VPAT de accesibilidad (Voluntary Product Accessibility Templates) directamente en su pipeline de integración continua (CI), convirtiendo lo que solía ser un informe manual periódico en un artefacto de compilación que se incluye con cada lanzamiento. El nuevo flujo de trabajo bloquea los pull requests que introducen regresiones de accesibilidad y genera automáticamente un documento de cumplimiento en PDF cuando la compilación tiene éxito, asegurando que cada cambio de código se mantenga dentro de los estándares de accesibilidad.
Por qué la automatización es importante
Las auditorías de accesibilidad quedan obsoletas en el momento en que llega código nuevo. Una sola fusión puede introducir la falta de texto alt, un orden de enfoque incorrecto o problemas con el lector de pantalla que invaliden un VPAT emitido previamente. Mantener el cumplimiento de forma manual significa volver a ejecutar auditorías tras cada cambio, un proceso costoso y propenso a errores que a menudo va por detrás de la velocidad de desarrollo. Al integrar las comprobaciones en el CI, los equipos obtienen feedback inmediato, mantienen el cumplimiento actualizado y evitan los riesgos legales y reputacionales de lanzar software inaccesible.
El enfoque de pruebas de tres capas
Comprobaciones estáticas – El pipeline ejecuta axe-core, una biblioteca de código abierto que escanea los componentes renderizados en Storybook en busca de violaciones conocidas, como la falta de puntos de referencia (landmarks) o un contraste de color insuficiente. Estas pruebas detectan problemas antes de que ocurra cualquier interacción.
Comprobaciones interactivas – Helpers personalizados de Vitest ejercitan las reglas de navegación por teclado, verificando que el enfoque se mueva de forma lógica y que los elementos interactivos respondan a los eventos estándar del teclado. Esta capa va más allá del análisis estático para garantizar la usabilidad en el mundo real.
Artefactos de auditoría manual – Los resultados de las pruebas con lectores de pantalla se guardan como archivos JSON. Los desarrolladores registran sus observaciones durante las pruebas exploratorias y realizan el commit del JSON junto con el código. El trabajo de CI combina estos artefactos con los resultados automatizados, produciendo una única fuente de verdad para el VPAT.
Cuando falla cualquier prueba en las dos primeras capas, el pull request se bloquea, evitando que el cambio llegue a producción. Si todas las pruebas pasan, el pipeline ensambla los datos combinados en un PDF que se adjunta al lanzamiento, entregando un VPAT actualizado sin esfuerzo adicional.
Lo que no funcionó
El equipo experimentó con el uso de un modelo de lenguaje extenso (LLM) para generar automáticamente la parte de la auditoría manual. Los resultados producidos por la IA fluctuaban demasiado, lo que hacía que el control de CI no fuera fiable. La consistencia es esencial para una comprobación binaria de aprobado/suspenso, por lo que el experimento se abandonó en favor de los artefactos manuales basados en JSON.
Qué observar a continuación
Por ahora, el modelo de CI de tres capas ofrece un camino pragmático para mantener los VPAT actualizados, reducir la carga manual y mantener la accesibilidad como prioridad en cada cambio de código.
