Scrivere Test per Axe DevTools per Web con Puppeteer

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

Come scrivere test efficaci per l'accessibilità usando Axe DevTools per Web con Puppeteer

Not for use with personal data

Scrivere test con Axe DevTools

Produrre risultati di scansioni per l'accessibilità con Axe DevTools può essere facile come una riga di codice. Questi risultati possono essere utilizzati grezzi, insieme a una libreria di asserzioni, o per creare report di accessibilità.

I singoli frammenti nelle sezioni sottostanti sono JavaScript e vengono compilati senza modifiche in TypeScript. La sezione File di esempio completo fornisce il test completo in entrambe le lingue.

Prerequisiti

Per importare e inizializzare Axe DevTools per Web, è necessario prima installarlo. Se non l'hai ancora fatto, leggi la guida su come installarlo da un pacchetto, dal tuo repository di artefatti o da Agora di Deque. Avrai anche bisogno di installare Puppeteer.

Importazione e Inizializzazione

Importa sia Axe DevTools per Web che Puppeteer. La sintassi dipende dalla lingua e dal sistema di moduli che il tuo progetto utilizza. Scegli quella che corrisponde al tuo progetto:

JavaScript con moduli CommonJS

Questo è il predefinito per un progetto Node.js senza "type": "module" nel suo package.json.

const { AxeDevToolsPuppeteer } = require('@axe-devtools/puppeteer');
const puppeteer = require('puppeteer');

JavaScript con moduli ES

Usa questa sintassi in un progetto con "type": "module" nel suo package.json, o in file .mjs.

import { AxeDevToolsPuppeteer } from '@axe-devtools/puppeteer';
import puppeteer from 'puppeteer';

TypeScript

TypeScript utilizza la stessa sintassi import dei moduli ES. @axe-devtools/puppeteer fornisce le proprie dichiarazioni di tipi, quindi non c'è un pacchetto @types/ separato da installare. I risultati della scansione sono tipizzati come AxeResults, che axe-core esporta:

import { AxeDevToolsPuppeteer } from '@axe-devtools/puppeteer';
import puppeteer from 'puppeteer';
import type { AxeResults } from 'axe-core';

Per ogni scansione, verrà creato un nuovo oggetto AxeDevToolsPuppeteer.

Ottenere il contesto della scansione

Prima di poter scansionare una pagina per l'accessibilità, deve essere accessibile tramite Puppeteer.

//Launch the Puppeteer Driver
const browser = await puppeteer.launch();
//Create a new page in the browser
const page = await browser.newPage();
//Send the browser to the desired page to scan
await page.goto('$URL');

Aggirare la Content Security Policy

Se la pagina che stai cercando di scansionare ha abilitato la Content Security Policy, potresti avere dei problemi. Se incontri questo problema, Axe DevTools include una soluzione. Basta includere questa istruzione dopo aver creato la tua pagina:

await page.setBypassCSP(true);

Una volta che Puppeteer ha accesso alla pagina, puoi scansionarla con Axe DevTools e salvare i risultati. Il modo più semplice per visualizzare i risultati della scansione è stampare su console l'oggetto dei risultati.

const results = await new AxeDevToolsPuppeteer(page).analyze();
console.log(results);

File di Esempio Completo

Lo stesso test è mostrato di seguito in JavaScript e in TypeScript. L'API di Axe DevTools è identica in entrambi; la versione TypeScript utilizza la sintassi import e annota i valori Puppeteer e il risultato della scansione.

JavaScript

const puppeteer = require('puppeteer');
const { AxeDevToolsPuppeteer } = require('@axe-devtools/puppeteer');

(async () => {

    //launch puppeteer web driver
    const browser = await puppeteer.launch();
    const page = await browser.newPage();

    //launch page for testing
    await page.goto('https://broken-workshop.dequelabs.com');

    //analyze page
    const results = await new AxeDevToolsPuppeteer(page).analyze();
    
    //log results
    console.log(results);

    //close webdriver
    browser.close();
})();

TypeScript

import puppeteer from 'puppeteer';
import type { Browser, Page } from 'puppeteer';
import { AxeDevToolsPuppeteer } from '@axe-devtools/puppeteer';
import type { AxeResults } from 'axe-core';

(async () => {

    //launch puppeteer web driver
    const browser: Browser = await puppeteer.launch();
    const page: Page = await browser.newPage();

    //launch page for testing
    await page.goto('https://broken-workshop.dequelabs.com');

    //analyze page
    const results: AxeResults = await new AxeDevToolsPuppeteer(page).analyze();

    //log results
    console.log(results);

    //close webdriver
    await browser.close();
})();

Passi successivi

Ora che hai completato con successo una scansione per l'accessibilità, sei pronto per passare a argomenti di scansione più avanzati come generare report e usare l'oggetto dei risultati.

Risoluzione dei problemi

Se hai problemi a ottenere i risultati della scansione, contatta direttamente il tuo rappresentante Deque, raggiungici tramite il nostro desk di supporto, o inviaci un'email. Saremo felici di aiutarti.