La accesibilidad es un aspecto crítico del desarrollo web, ya que garantiza que todos los usuarios, incluidos aquellos con discapacidades, puedan interactuar con sus aplicaciones web de manera efectiva. Las pruebas de accesibilidad automatizadas ayudan a identificar y solucionar problemas de accesibilidad en las primeras etapas del proceso de desarrollo. En esta publicación, exploraremos cómo implementar pruebas de accesibilidad automatizadas usando Cypress, aprovechando herramientas como cypress-axe para hacer que sus aplicaciones sean más inclusivas.
Para realizar pruebas de accesibilidad automatizadas en Cypress, usaremos el complemento cypress-axe, que integra el motor de accesibilidad de Ax con Cypress.
Paso 1: Instalar Cypress y cypress-axe
Primero, asegúrese de tener Cypress instalado en su proyecto. De lo contrario, puede instalarlo usando el siguiente comando:
npm install cypress --save-dev
A continuación, instale el complemento cypress-axe:
npm install cypress-axe --save-dev
Paso 2: Configurar cypress-axe
Cree un nuevo archivo en el directorio cypress/support llamado commands.js y agregue el siguiente código para importar y configurar cypress-axe:
import 'cypress-axe'; Cypress.Commands.add('injectAxe', () => { cy.window({ log: false }).then(window => { let axe = require('axe-core'); window.eval(axe.source); }); }); Cypress.Commands.add('checkA11y', (selector = null, options = null, violationCallback = null, skipFailures = false) => { cy.window({ log: false }).then(window => { let document = window.document; return axe.run(document, options).then(({ violations }) => { if (violations.length) { cy.wrap(violations, { log: false }).each(violation => { let nodes = Cypress._.get(violation, 'nodes', []); Cypress._.each(nodes, node => { let target = Cypress._.get(node, 'target', []); if (target.length) { Cypress._.each(target, target => { cy.wrap(target, { log: false }).then($target => { if (!skipFailures) { Cypress.log({ name: 'a11y error!', message: violation.help, consoleProps: () => violation }); violationCallback && violationCallback(violation); } }); }); } }); }); } }); }); });
Paso 3: Crear pruebas de accesibilidad
Ahora, creemos una prueba de Cypress para comprobar la accesibilidad de una página web. Cree un nuevo archivo en el directorio cypress/e2e llamado accesibilidad.spec.js y agregue el siguiente código:
describe('Automated Accessibility Testing with Cypress', () => { beforeEach(() => { cy.visit('/'); cy.injectAxe(); }); it('should have no detectable accessibility violations on load', () => { cy.checkA11y(); }); it('should have no detectable accessibility violations on specific elements', () => { cy.checkA11y('header'); cy.checkA11y('main'); cy.checkA11y('footer'); }); });
En este ejemplo, estamos realizando comprobaciones de accesibilidad en toda la página, así como en elementos específicos como el encabezado, el contenido principal y el pie de página.
Puedes personalizar las comprobaciones de accesibilidad proporcionando opciones y configurando reglas. Por ejemplo, puedes ignorar ciertas reglas o solo ejecutar comprobaciones específicas.
Ejemplo: ignorar reglas específicas
cy.checkA11y(null, { rules: { 'color-contrast': { enabled: false } } });
Ejemplo: ejecutar comprobaciones específicas
cy.checkA11y(null, { runOnly: { type: 'tag', values: ['wcag2a', 'wcag2aa'] } });
Puedes manejar las infracciones de accesibilidad proporcionando una función de devolución de llamada para registrar o procesar las infracciones. Por ejemplo:
cy.checkA11y(null, null, (violations) => { violations.forEach((violation) => { cy.log(`${violation.id} - ${violation.description}`); violation.nodes.forEach((node) => { cy.log(`Node: ${node.target}`); }); }); });
Las pruebas de accesibilidad automatizadas con Cypress y cypress-axe son una forma poderosa de garantizar que sus aplicaciones web sean accesibles para todos los usuarios. Al integrar comprobaciones de accesibilidad en su proceso de prueba, puede identificar y solucionar problemas tempranamente, brindando una mejor experiencia de usuario y garantizando el cumplimiento de los estándares de accesibilidad. Siga las mejores prácticas descritas en esta guía para que sus aplicaciones sean más inclusivas y accesibles.
¡Felices pruebas!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3