EAA Accessibility Auto-Fixer — Guida completa
Installare, auditare e portare il tuo sito WordPress/WooCommerce in conformità con l'European Accessibility Act: scanner WCAG 2.2 AA, correzioni automatiche, alt IA e dichiarazione legale.
Panoramica
EAA Accessibility Auto-Fixer porta il tuo sito WordPress e WooCommerce in conformità con l’European Accessibility Act (direttiva UE 2019/882, applicabile dal 28 giugno 2025). Il plugin combina quattro elementi: uno scanner WCAG 2.2 livello AA, un correttore frontend automatico, un generatore di testi alternativi tramite IA (Anthropic Claude) e un generatore di dichiarazione legale di accessibilità.
Chi è interessato? Gli e-commerce dell’UE con più di 10 dipendenti O più di 2 M€ di fatturato annuo. Le microimprese sono esenti per i servizi ma devono rendere accessibili i loro prodotti.
Installazione
- Scarica il file ZIP dal tuo account DataFirefly.
- In WordPress, vai su Plugin → Aggiungi nuovo → Carica plugin, seleziona il file ZIP e clicca su Installa ora.
- Clicca su Attiva. Il plugin crea automaticamente 4 tabelle (
wp_eaa_audits,wp_eaa_issues,wp_eaa_fixes,wp_eaa_alt_cache), programma un audit settimanale e genera una pagina «Dichiarazione di accessibilità» contenente lo shortcode[eaa_accessibility_declaration].
Requisiti: WordPress 6.2+, WooCommerce 8.0+ (facoltativo — il plugin funziona anche su WordPress da solo), PHP 8.1+.
Primo audit
- Vai su EAA Accessibility → Audit.
- L’URL della home page è precompilato; puoi sostituirlo con qualsiasi URL del sito.
- Clicca su Avvia l’audit. Lo scanner analizza la pagina e mostra il punteggio su 100, l’elenco delle anomalie (gravità, regola, criterio WCAG, estratto HTML, suggerimento) e un pulsante Correggi per le anomalie autocorreggibili.
Capire il punteggio
Il punteggio parte da 100 e ogni anomalia toglie punti secondo la sua gravità: critica 15 punti, seria 8, moderata 3, minore 1. Un punteggio di 90 o più si mostra in verde, da 70 a 89 in arancione, sotto in rosso. La dichiarazione legale riprende questo punteggio: 90+ dà «Totalmente conforme», da 50 a 89 «Parzialmente conforme», sotto 50 «Non conforme».
Le 15 regole verificate
- html-lang — attributo lang sull’elemento radice (WCAG 3.1.1)
- page-title — presenza e contenuto del tag title (2.4.2)
- headings — h1 unico e gerarchia senza salti (1.3.1)
- image-alt — attributo alt su tutte le immagini (1.1.1)
- link-name — testo accessibile su ogni link (2.4.4)
- button-name — nome accessibile su ogni pulsante (4.1.2)
- label — etichetta su ogni campo del modulo (1.3.1, 4.1.2)
- skip-link — skip link all’inizio della pagina (2.4.1)
- landmarks — landmark main presente (1.3.1)
- duplicate-id — nessun identificatore duplicato (4.1.1)
- aria-roles — ruoli ARIA validi (4.1.2)
- target-size — bersagli tattili di almeno 24×24 px (2.5.8, novità WCAG 2.2)
- color-contrast — contrasto testo/sfondo di almeno 4,5:1 (1.4.3)
- tabindex — nessun tabindex positivo (2.4.3)
- autoplay — nessuna riproduzione automatica non controllabile (1.4.2)
Correzioni automatiche
In EAA Accessibility → Impostazioni → Correzioni attive, attiva le correzioni che il plugin applica in tempo reale tramite output buffer, senza modificare il tuo tema:
- Attributo lang — aggiunge la lingua del sito sull’elemento radice se assente.
- Skip link — inserisce «Vai al contenuto» all’inizio della pagina, visibile al focus da tastiera.
- Testo alternativo mancante — marca le immagini decorative (classi decoration, icon…) con un alt vuoto; le immagini di contenuto passano dall’IA se attivata.
- Etichette dei moduli — aggiunge un aria-label dedotto dal placeholder o dal name ai campi senza etichetta.
- Ruoli ARIA e icone — aria-label sui pulsanti-icona, role=”presentation” sugli SVG decorativi.
- Indicatore di focus — inietta uno stile :focus-visible contrastato.
- Contrasti — corregge i colori inline sotto 4,5:1 scurendo o schiarendo automaticamente.
- Dimensione dei bersagli — garantisce 24×24 px su pulsanti e link tramite CSS.
Ogni correzione viene registrata nella tabella wp_eaa_fixes con il valore prima/dopo — utile in caso di controllo. Consulta il totale per tipo nella Bacheca.
Se una correzione entra in conflitto con il tuo tema (ad esempio uno skip link già presente), disattiva la correzione interessata: il plugin rileva gli elementi esistenti ma alcuni temi molto personalizzati possono richiedere un aggiustamento.
Generazione IA dei testi alternativi
Configurazione
- Crea una chiave API su console.anthropic.com.
- In EAA Accessibility → Impostazioni → Generazione IA, spunta Attiva l’IA, incolla la chiave e clicca su Testa la connessione.
- Scegli il modello: Claude Haiku 4.5 (predefinito, circa 0,0001 € per immagine, consigliato), Sonnet 4.6 (qualità superiore) o Opus 4.7 (qualità massima).
Generazione in blocco
Dalla Bacheca, il pulsante di generazione in blocco elabora la libreria multimediale a lotti di 5 immagini. Ogni descrizione viene generata nella lingua dell’allegato (FR/EN/ES/DE/IT), memorizzata in wp_eaa_alt_cache e scritta nel campo alt di WordPress. La cache evita ogni rigenerazione: un’immagine già descritta in una lingua non viene mai reinviata all’API.
Le immagini oltre 4 MB vengono automaticamente ridimensionate a un massimo di 1024 px prima dell’invio all’API — senza alcun impatto sui tuoi file originali.
Widget per visitatori
Attivalo in Impostazioni → Widget per visitatori. Un pulsante fluttuante ♿ appare in basso a destra del sito e apre un pannello con 8 preferenze: dimensione del testo (5 livelli, dal 100 % al 200 %), contrasto elevato, font per dislessia, spaziatura migliorata, animazioni ridotte, sottolineatura dei link, cursore grande e un pulsante di reset. Le scelte vengono salvate in localStorage (nessun cookie, nessun dato inviato al server) e ripristinate a ogni visita. Il pannello è completamente navigabile da tastiera e si chiude con Escape.
Dichiarazione legale
La pagina creata all’attivazione mostra, tramite lo shortcode [eaa_accessibility_declaration]: lo stato di conformità calcolato sull’ultimo audit, il punteggio, la data, i contenuti non accessibili, la metodologia e i tuoi recapiti. Compila queste informazioni in Impostazioni → Informazioni per la dichiarazione legale: ragione sociale, email di contatto per l’accessibilità, telefono, indirizzo postale.
Completamento manuale consigliato. Aggiungi i tuoi identificativi legali (P. IVA, numero REA o equivalente) e fai validare la dichiarazione da un esperto di accessibilità: il plugin copre dal 30 al 40 % dei criteri automatizzabili, una revisione umana resta necessaria per la conformità totale.
Aggiungi poi un link a questa pagina nel tuo footer — è un requisito dell’EAA.
Audit programmati
In Impostazioni → Audit programmato, scegli la frequenza: giornaliero, settimanale (predefinito) o mensile. Il cron di WordPress scansiona quindi la home page automaticamente e alimenta la cronologia. Consulta tutti gli audit passati in EAA Accessibility → Cronologia con punteggio, durata e suddivisione delle anomalie per gravità.
Disinstallazione
Per impostazione predefinita, la disinstallazione conserva le tabelle e la cronologia (tracciabilità legale). Per eliminare tutto, attiva l’opzione di eliminazione dei dati nelle impostazioni prima di disinstallare: le 4 tabelle, le opzioni e la pagina di dichiarazione saranno quindi rimosse.
Risoluzione dei problemi
Lo scanner restituisce un errore di connessione
Lo scanner usa wp_remote_get per recuperare la pagina. Verifica che il tuo server possa chiamare se stesso (loopback): alcuni hosting bloccano le richieste in uscita verso il dominio stesso del sito. Prova con Strumenti → Salute del sito.
Il test della chiave API fallisce
Verifica che la chiave inizi con sk-ant-, che il tuo account Anthropic abbia credito e che il server autorizzi le connessioni in uscita verso api.anthropic.com in HTTPS.
Le correzioni non vengono applicate
Il correttore è inattivo sui feed RSS, sulle richieste REST/AJAX, nell’amministrazione e nel cron. Se un plugin di cache serve una versione statica, svuota la cache dopo l’attivazione. Verifica anche che Attiva il correttore frontend sia spuntato.
Il widget non appare
Verifica che Widget per visitatori sia attivato nelle impostazioni e che il tuo tema chiami wp_footer() — il widget si inserisce su questo hook.