Accesibilidad Automatización
Automatización de Pruebas de Accesibilidad con axe-core
· Sergio Morán Reina
Automatización de Pruebas de Accesibilidad con axe-core
La accesibilidad no debería ser un afterthought. Con las herramientas adecuadas, podemos detectar el 30% de problemas WCAG automáticamente.
Setup con Cypress
npm install --save-dev cypress-axe axe-core
// cypress/support/commands.js
import 'cypress-axe';
// cypress/e2e/a11y.cy.js
describe('Accessibility tests', () => {
beforeEach(() => {
cy.visit('/');
cy.injectAxe();
});
it('Has no detectable a11y violations on load', () => {
cy.checkA11y();
});
it('Has no violations after modal opens', () => {
cy.get('[data-testid="open-modal"]').click();
cy.checkA11y('.modal-content', {
rules: {
'aria-dialog-name': { enabled: true }
}
});
});
});
Qué detecta axe-core
- Color contrast: Texto con contraste insuficiente
- ARIA: Roles, estados y propiedades incorrectos
- Form labels: Inputs sin labels asociados
- Focus management: Elementos focusables sin foco visible
Limitaciones
Solo detecta el ~30% de issues WCAG. Para el resto necesitas:
- Testing manual con teclado
- Screen readers (NVDA, VoiceOver)
- Validación cognitiva con usuarios reales
Conclusión
Automatizar accesibilidad es el primer paso. Nunca sustituye el testing con usuarios, pero previene regresiones costosas.
#a11y
#axe-core
#cypress
#wcag