Rédiger des tests pour Axe DevTools for Web pour JavaScript dans le navigateur

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Comment rédiger des tests efficaces pour l'accessibilité en utilisant Axe DevTools for Web pour JavaScript dans le navigateur

Not for use with personal data

Écrire des tests avec Axe DevTools

Prérequis

Afin d'importer et d'initialiser Axe DevTools pour Web, il doit d'abord être installé. Si ce n'est pas encore fait, lisez le guide pour savoir comment l'installer depuis votre dépôt d'artéfacts, ou depuis l'Agora de Deque.

Importation et Initialisation

Le package pour le navigateur est conçu pour s'exécuter à l'intérieur d'une suite de tests packagée, il est donc importé avec une syntaxe de module ES en JavaScript comme en TypeScript. @axe-devtools/browser fournit ses propres déclarations de type, il n'y a donc pas de package @types/ séparé à installer.

JavaScript

import { AxeDevTools } from '@axe-devtools/browser';

TypeScript

L'instruction d'importation est la même. Ajoutez le type AxeResults depuis axe-core lorsque vous souhaitez annoter les résultats renvoyés par une analyse :

import { AxeDevTools } from '@axe-devtools/browser';
import type { AxeResults } from 'axe-core';

Initialisation

Une fois que vous avez importé le package pour le navigateur, initialisez-le avec l'ensemble de règles contre lequel vous souhaitez tester. L'instruction est la même dans les deux langages :

AxeDevTools.init('wcag2');

L'argument de l'ensemble de règles est requis, et TypeScript le vérifie par rapport aux identifiants des ensembles de règles pris en charge : wcag2, wcag21, wcag22, wcag2aaa, wcag21aaa, wcag22aaa, 508, en301549, ttv5, et rgaav4.

Ce guide montre aux utilisateurs comment intégrer cette bibliothèque Axe DevTools avec la bibliothèque de tests react

Avec l'outil importé et initialisé dans votre fichier de test, ajouter des tests pour l'accessibilité est aussi simple que cela. L'extrait ci-dessous est en JavaScript, et il se compile sans changement dans un fichier .tsx TypeScript ; la section Fichier d'exemple donne le test complet dans les deux langages.

test('Component has no accessibility violations', () => {
 const {container} = render(<Badcomp></Badcomp>);
 AxeDevTools.run(container, (err, results) => {
    expect(results.violations.length).toBe(0);
    done();
 });
});

Ce cas de test rend un composant à l'intérieur de l'outil de conteneur de la bibliothèque de tests React, puis Axe DevTools le scanne pour détecter les violations d'accessibilité. Cet exemple s'attend à zéro violation d'accessibilité de quelque nature que ce soit, mais cela peut être modifié selon les besoins de votre organisation. Pour en savoir plus sur l'utilisation des résultats des analyses, lisez le guide complet sur l'objet de résultats qui est retourné après une analyse.

Fichier Exemple

Ce fichier exemple utilisant Axe DevTools avec la bibliothèque de tests React devrait aider à contextualiser comment l'outil est utilisé. Le même test est montré en JavaScript et en TypeScript. L'API Axe DevTools est identique dans les deux ; la version TypeScript va dans un fichier .tsx et annote le conteneur ainsi que les résultats du scan.

JavaScript

import React from 'react';
import Badcomp from '../components/badcomp';
import { render } from '@testing-library/react';
import { AxeDevTools } from '@axe-devtools/browser';
import "babel-polyfill"

describe('Bad Component', () => {

  beforeEach(function(done) {
    AxeDevTools.init('wcag2', function() {
      done();
    });
  });

   test('Component has no accessibility violations, w/ attest reporter', (done) => {
     const {container} = render(<Badcomp></Badcomp>);
     AxeDevTools.run(container, (err, results) => {
        expect(results.violations.length).toBe(0);
        done();
     });
   });
});

TypeScript

import React from 'react';
import Badcomp from '../components/badcomp';
import { render } from '@testing-library/react';
import { AxeDevTools } from '@axe-devtools/browser';
import type { AxeResults } from 'axe-core';
import "babel-polyfill"

describe('Bad Component', () => {

  beforeEach((done: jest.DoneCallback) => {
    AxeDevTools.init('wcag2', () => {
      done();
    });
  });

   test('Component has no accessibility violations, w/ attest reporter', (done: jest.DoneCallback) => {
     const container: HTMLElement = render(<Badcomp></Badcomp>).container;
     AxeDevTools.run(container, (err, results: AxeResults) => {
        expect(results.violations.length).toBe(0);
        done();
     });
   });
});

Étapes suivantes

Maintenant que vous avez terminé avec succès une analyse d'accessibilité, vous êtes prêt à passer à des sujets d'analyse plus avancés comme génération de rapports et utilisation de l'objet de résultats.

Dépannage

Si vous rencontrez des difficultés pour obtenir les résultats des analyses, contactez directement votre représentant Deque, contactez-nous via notre assistance technique, ou envoyez-nous un email. Nous serons heureux de vous aider.