"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Pruebas de accesibilidad automatizadas con Cypress: una guía completa

Pruebas de accesibilidad automatizadas con Cypress: una guía completa

Publicado el 2024-11-08
Navegar:395

Automated Accessibility Testing with Cypress: A Comprehensive Guide

Introducción

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.

Por qué es importante la accesibilidad

  1. Cumplimiento legal: Garantiza que su solicitud cumpla con los requisitos legales, como la Ley de Estadounidenses con Discapacidades (ADA) y las Pautas de accesibilidad al contenido web (WCAG).
  2. Experiencia de usuario: Mejora la experiencia de usuario general para todos los usuarios, incluidos aquellos con discapacidades.
  3. Inclusividad: Demuestra un compromiso con la inclusión y la diversidad, haciendo que su aplicación sea accesible para una audiencia más amplia.
  4. Beneficios de SEO: Mejora la optimización de los motores de búsqueda, ya que los motores de búsqueda favorecen los sitios web accesibles.

Configuración de pruebas de accesibilidad automatizadas en Cypress

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.

Personalización de las comprobaciones de accesibilidad

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']
    }
});

Manejo de violaciones de accesibilidad

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}`);
        });
    });
});

Mejores prácticas para pruebas de accesibilidad

  1. Integrar temprano: Integre las pruebas de accesibilidad al principio del proceso de desarrollo para detectar problemas antes.
  2. Pruebe periódicamente: Ejecute pruebas de accesibilidad periódicamente como parte de su proceso de CI/CD para garantizar el cumplimiento continuo.
  3. Eduque a su equipo: Eduque a su equipo de desarrollo sobre las mejores prácticas y pautas de accesibilidad.
  4. Usar pruebas manuales: Combine pruebas automatizadas y manuales para cubrir todos los aspectos de la accesibilidad, ya que es posible que las herramientas automatizadas no capten todo.

Conclusión

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!

Declaración de liberación Este artículo se reproduce en: https://dev.to/aswani25/automated-accessibility-testing-with-cypress-a-comprehensive-guide-15eb?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla. él
Último tutorial Más>

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