Strumenti

axe-core

Vedi anche: axe

Un motore di test di accessibilità automatizzato open source di Deque, utilizzato da estensioni browser (axe DevTools, Accessibility Insights), script CI e Lighthouse. Rileva una stima del 30–40% dei problemi WCAG.

axe-core è il motore di test di accessibilità automatizzato open source sviluppato da Deque Systems. Alimenta un ampio ecosistema di strumenti di test — estensioni browser (axe DevTools, Accessibility Insights), script CI (axe-cli, jest-axe, cypress-axe, playwright-axe) e, in modo particolare, l’audit di accessibilità di Lighthouse.

Nell’ultimo decennio, axe-core è stato il verificatore di accessibilità automatizzato più diffuso al mondo. La maggior parte delle pipeline CI legate all’accessibilità oggi in produzione eseguono axe-core, spesso senza che il team ne sia consapevole.

Cosa fa bene axe-core

Il set di regole di axe-core è conservativo per scelta: una regola viene inclusa solo quando il suo tasso di falsi positivi è essenzialmente zero. Questo rende axe-core affidabile come gate CI — quando segnala una violazione, la violazione è reale e il team può intervenire senza preoccuparsi di rincorrere controlli instabili.

Le regole che axe-core rileva in modo affidabile includono:

  • Etichette mancanti o vuote sui controlli di modulo.
  • Attributi alt mancanti (e alt palesemente inutili come i nomi di file).
  • Contrasto cromatico insufficiente (testi e componenti dell’interfaccia).
  • ARIA non valida — ruoli inesistenti, proprietà obbligatorie mancanti, strutture figlio non consentite.
  • ID duplicati che interrompono i riferimenti ARIA.
  • Attributo lingua mancante su <html>.
  • Pulsanti senza nome accessibile.
  • Campi di modulo senza etichetta programmatica.
  • Link vuoti (<a href>...</a> senza testo o alt).
  • Salti di livello di intestazione e <h1> mancante in alcune configurazioni.

Questo elenco copre una percentuale significativa delle criticità di accessibilità più evidenti. Eseguire axe-core in CI consente di rilevarle al momento della code review anziché in fase di audit.

Il limite superiore

Gli autori di axe-core sono espliciti riguardo al tetto: gli strumenti automatizzati possono rilevare al massimo il 30–40 % dei problemi WCAG. Il resto richiede giudizio umano e test con tecnologie assistive.

In particolare, axe-core non è in grado di rilevare:

  • Testo alternativo errato — può segnalare un alt mancante, ma non che alt="icona hamburger" sia sbagliato per un pulsante che apre un menu.
  • Testo dei link fuorviante — i link «Clicca qui» sono formalmente corretti, ma inutili per gli utenti di screen reader.
  • Ordine di focus interrotto — un ordine di tabulazione che non corrisponde all’ordine visivo è una violazione del criterio 2.4.3 che nessun verificatore statico riesce a rilevare.
  • Struttura delle intestazioni errata — axe-core rileva <h1> mancante e i salti di livello, ma non può stabilire se una pagina abbia usato <h2> dove avrebbe dovuto esserci <h1>.
  • Contenuti che funzionano solo per certi gruppi di utenti — conformi a WCAG ma inutilizzabili per utenti con problemi di visione, disabilità cognitive, ecc.

Un sito che non registra violazioni in axe-core è una condizione necessaria per l’accessibilità, ma non sufficiente. Il lavoro rimanente — ordine di focus, qualità dei contenuti, comportamento con gli screen reader, test con utenti reali — è quello che occupa la maggior parte del tempo effettivo.

Come usare axe-core operativamente

Tre modalità di impiego funzionano bene in combinazione:

  1. Nell’editor. axe DevTools e Accessibility Insights vengono eseguiti su richiesta contro il DOM renderizzato in una scheda del browser. Da usare durante lo sviluppo.
  2. In CI. axe-cli, jest-axe, cypress-axe o playwright-axe fanno fallire la build in presenza di nuove violazioni. Da usare per prevenire le regressioni.
  3. In fase di audit. I revisori esterni eseguono axe-core come punto di partenza, aggiungendo poi test manuali. Da usare per validare la baseline automatizzata.

La combinazione mantiene a zero i problemi rilevabili automaticamente, mentre un programma di accessibilità reale gestisce il resto.