Maison > Article > interface Web > Tests d'accessibilité automatisés avec Cypress : un guide complet
L'accessibilité est un aspect essentiel du développement Web, car elle garantit que tous les utilisateurs, y compris ceux handicapés, peuvent interagir efficacement avec vos applications Web. Les tests d'accessibilité automatisés permettent d'identifier et de résoudre les problèmes d'accessibilité dès le début du processus de développement. Dans cet article, nous explorerons comment mettre en œuvre des tests d'accessibilité automatisés à l'aide de Cypress, en tirant parti d'outils tels que cypress-axe pour rendre vos applications plus inclusives.
Pour effectuer des tests d'accessibilité automatisés dans Cypress, nous utiliserons le plugin cypress-axe, qui intègre le moteur d'accessibilité Axe avec Cypress.
Étape 1 : Installer Cypress et cypress-axe
Tout d’abord, assurez-vous que Cypress est installé dans votre projet. Sinon, vous pouvez l'installer à l'aide de la commande suivante :
npm install cypress --save-dev
Ensuite, installez le plugin cypress-axe :
npm install cypress-axe --save-dev
Étape 2 : Configurer cypress-axe
Créez un nouveau fichier dans le répertoire cypress/support appelé commands.js et ajoutez le code suivant pour importer et configurer 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); } }); }); } }); }); } }); }); });
Étape 3 : Créer des tests d'accessibilité
Créons maintenant un test Cypress pour vérifier l'accessibilité d'une page Web. Créez un nouveau fichier dans le répertoire cypress/e2e appelé accessibilité.spec.js et ajoutez le code suivant :
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'); }); });
Dans cet exemple, nous effectuons des contrôles d'accessibilité sur la page entière ainsi que sur des éléments spécifiques tels que l'en-tête, le contenu principal et le pied de page.
Vous pouvez personnaliser les contrôles d'accessibilité en fournissant des options et en configurant des règles. Par exemple, vous pouvez ignorer certaines règles ou effectuer uniquement des contrôles spécifiques.
Exemple : Ignorer des règles spécifiques
cy.checkA11y(null, { rules: { 'color-contrast': { enabled: false } } });
Exemple : exécution de contrôles spécifiques
cy.checkA11y(null, { runOnly: { type: 'tag', values: ['wcag2a', 'wcag2aa'] } });
Vous pouvez gérer les violations d'accessibilité en fournissant une fonction de rappel pour enregistrer ou traiter les violations. Par exemple :
cy.checkA11y(null, null, (violations) => { violations.forEach((violation) => { cy.log(`${violation.id} - ${violation.description}`); violation.nodes.forEach((node) => { cy.log(`Node: ${node.target}`); }); }); });
Les tests d'accessibilité automatisés avec Cypress et cypress-axe sont un moyen puissant de garantir que vos applications Web sont accessibles à tous les utilisateurs. En intégrant les contrôles d'accessibilité dans votre processus de test, vous pouvez identifier et résoudre les problèmes plus tôt, offrant ainsi une meilleure expérience utilisateur et garantissant le respect des normes d'accessibilité. Suivez les meilleures pratiques décrites dans ce guide pour rendre vos candidatures plus inclusives et accessibles.
Bon test !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!