Il tuo sito esclude persone. Ogni giorno, utenti con disabilità visive, motorie o cognitive non riescono a completare un acquisto, compilare un form o leggere un articolo sul tuo portale. Non è una questione di nicchia: in Italia oltre 3 milioni di persone hanno una disabilità permanente, e a questi si aggiungono anziani, chi usa solo la tastiera, chi ha una connessione lenta. Se il tuo sito non è accessibile, perdi clienti, rischi sanzioni e ignori una fetta enorme di mercato. Noi di Meteora Web lavoriamo ogni giorno su progetti web, e l'accessibilità non è un optional: è un requisito tecnico, legale e commerciale.
Cos’è l’accessibilità web e perché ti riguarda
L’accessibilità web significa progettare e sviluppare siti e applicazioni che possano essere usati da tutte le persone, indipendentemente dalle loro capacità. Non si tratta solo di “aiutare i ciechi”: riguarda la navigazione da tastiera per chi ha tremori, il contrasto per ipovedenti, i sottotitoli per sordi, la lettura facilitata per chi ha dislessia. In pratica, un sito accessibile è un sito più usabile per tutti.
Obblighi legali in Italia: la Legge 4/2004 (Legge Stanca) e successive modifiche (D.Lgs. 106/2018, D.Lgs. 76/2020) impongono a soggetti pubblici e a certi privati (es. gestori di servizi pubblici essenziali, aziende con fatturato sopra soglie) di rispettare i criteri WCAG 2.2 almeno livello AA. Dal 2025, l’attuale normativa europea (Direttiva UE 2016/2102) si estende anche a e-commerce e servizi privati. In pratica, se vendi online e superi certe soglie di fatturato o dipendenti, sei obbligato. Ma anche se non lo fossi: l’accessibilità è un vantaggio competitivo enorme.
Il ritorno economico: un sito accessibile migliora la SEO (header semantici, alt text, struttura chiara), riduce i bounce rate (utenti trovano ciò che cercano), e allarga il tuo pubblico. Lo vediamo ogni giorno nei nostri clienti: un form ben etichettato converte di più, una navigazione chiara riduce i carrelli abbandonati.
Azioni immediate: Controlla se la tua categoria di attività rientra negli obblighi di legge. Se sei una PA o un fornitore di servizi pubblici, devi già essere conforme. Se sei un e-commerce, preparati: l’obbligo arriverà.
Sponsored Protocol
WCAG 2.2: i quattro principi (POUR) e i livelli di conformità
Le Web Content Accessibility Guidelines (WCAG) 2.2 sono lo standard internazionale. Si basano su quattro principi:
- Perceivable (Percepibile): le informazioni devono essere presentate in modo che tutti i sensi possano percepirle. Esempio: le immagini hanno un alt text, i video hanno sottotitoli.
- Operable (Utilizzabile): l’interfaccia deve essere navigabile con diversi input: tastiera, voce, touch. Esempio: tutti i pulsanti sono raggiungibili via tab.
- Understandable (Comprensibile): il contenuto e l’interfaccia devono essere chiari. Esempio: gli errori nei form sono spiegati in testo semplice.
- Robust (Robusto): il contenuto deve essere interpretato da una vasta gamma di user agent, inclusi screen reader. Esempio: codice HTML valido e semantico.
I livelli di conformità sono tre: A (minimo), AA (raccomandato, obbligatorio per legge in Italia), AAA (massimo, difficile da raggiungere su tutto il sito). Noi consigliamo sempre di puntare almeno ad AA, e dove possibile AAA su pagine critiche (checkout, contatti).
WCAG 2.2 ha aggiunto nuovi criteri rispetto alla 2.1: focus visibile, accesso tramite puntatore, meccanismi per input accidentali. Se sei già su 2.1, il passaggio è gestibile.
Azioni immediate: Scarica la checklist WCAG 2.2 AA (disponibile sul sito W3C) e confrontala con le pagine più importanti del tuo sito. Identifica subito i gap più grossi: mancanza di alt text, form senza label, navigazione a tastiera bloccata.
HTML semantico: la base dell’accessibilità senza sforzo
L’HTML non è solo una gabbia per il design. Se usi tag con il giusto significato, lo screen reader capisce la struttura della pagina. <nav> per la navigazione, <main> per il contenuto principale, <h1> … <h6> per titoli gerarchici, <button> per azioni (non un <div> cliccabile).
Errore comune: usare <div> e <span> ovunque, aggiungendo ruoli ARIA per compensare. Sbagliato: l’HTML semantico nativo è più robusto, supportato da più tecnologie, e richiede meno codice.
Esempio concreto: un menu di navigazione.
Sponsored Protocol
<nav aria-label="Menu principale">
<ul>
<li><a href="/chi-siamo">Chi siamo</a></li>
<li><a href="/servizi">Servizi</a></li>
<li><a href="/contatti">Contatti</a></li>
</ul>
</nav>
Niente div inutili, niente role=”navigation” (il tag <nav> lo dice già).
Azioni immediate: Fai un audit del tuo codice HTML. Controlla che ogni pagina abbia un solo <h1>, che i titoli seguano una gerarchia logica (non saltare da h1 a h3), e che i pulsanti siano tag <button> o <a> con ruolo appropriato.
ARIA: ruoli, proprietà e stati – quando usarli (e quando no)
WAI-ARIA (Accessible Rich Internet Applications) è un set di attributi che aggiustano il significato di elementi HTML quando il markup nativo non basta. I tre pilastri: ruoli (cosa è questo elemento?), proprietà (cosa caratterizza questo elemento?), stati (in che condizione si trova?).
Regola d’oro: non usare ARIA se puoi usare HTML nativo. Esempio: per un menu, usa <nav> e non <div role="navigation">. ARIA serve per componenti dinamici: tab, accordion, dialog, slider, autocomplete.
Esempio pratico: un pannello a fisarmonica (accordion).
<button aria-expanded="false" aria-controls="panel1">Più informazioni</button>
<div id="panel1" role="region" aria-labelledby="buttonID" hidden>
<p>Contenuto del pannello.</p>
</div>
Attenzione: ARIA mal implementato può peggiorare l’accessibilità. Noi abbiamo visto siti con role="button" su un <span> senza tabindex: diventa un buco nero per lo screen reader.
Azioni immediate: Controlla se nel tuo sito ci sono componenti interattivi personalizzati (tab, modali, menu a tendina). Verifica che abbiano gli attributi ARIA corretti. Usa lo strumento di validazione ARIA del browser (Audit in Chrome DevTools).
Navigazione da tastiera: focus management e skip link
Molti utenti non usano il mouse: chi ha disabilità motorie, chi usa comandi vocali, chi preferisce la tastiera. Il tuo sito deve essere completamente navigabile con il solo tasto Tab, Shift+Tab e Invio.
Sponsored Protocol
Focus visibile: WCAG 2.2 richiede che ogni elemento interattivo abbia un indicatore di focus chiaro (outline, cambio colore). Non togliere mai outline: none senza sostituirlo con qualcosa di equivalente.
Skip link: il primo elemento dopo l’apertura del <body> dovrebbe essere un link “Salta al contenuto” che sposta il focus direttamente al main. Esempio:
<a href="#contenuto-principale" class="skip-link">Salta al contenuto principale</a>
e poi
.skip-link {
position: absolute;
top: -40px;
left: 0;
background: #000;
color: #fff;
padding: 8px;
z-index: 100;
}
.skip-link:focus {
top: 0;
}
Gestione del focus nei componenti dinamici: quando si apre un modale, il focus deve spostarsi all’interno e rimanere intrappolato (focus trap). Quando si chiude, il focus deve tornare all’elemento che ha aperto il modale.
Azioni immediate: Prova a navigare il tuo sito solo con tastiera. Riesci a raggiungere tutti i link e i pulsanti? Vedi il focus quando premi tab? Se no, aggiungi outline e skip link.
Contrasto colore: ratio WCAG e strumenti di verifica
Il contrasto tra testo e sfondo è fondamentale per ipovedenti e per chi legge su schermi in ambienti luminosi. WCAG 2.2 AA richiede un rapporto di contrasto di almeno 4.5:1 per testo normale (sotto 18px/14px bold) e 3:1 per testo grande (sopra 18px bold o 24px normale). I componenti UI attivi (pulsanti, bordi di input) devono avere almeno 3:1 rispetto allo sfondo adiacente.
Strumenti: WebAIM Contrast Checker, Chrome DevTools – sezione Contrast. Non fidarti dell’occhio: misuralo.
Esempio: un testo grigio chiaro (#999) su sfondo bianco ha un rapporto di circa 2.8:1, insufficiente. Dovresti usare almeno #767676 per raggiungere 4.5:1.
Azioni immediate: Usa il color picker di Chrome per controllare il contrasto dei tuoi testi. Se non passa, modifica i colori. Attenzione anche ai link sottolineati: devono avere contrasto sufficiente rispetto al testo circostante.
Immagini accessibili: alt text descrittivo e immagini decorative
Ogni immagine deve avere un attributo alt pertinente. Per immagini decorative (bordi, sfondi, icone puramente estetiche) usa alt="" (vuoto) così lo screen reader le ignora. Per immagini informative, descrivi il contenuto in modo sintetico ma completo: non “foto del prodotto” ma “Maglione di lana blu con collo a V, dettaglio delle cuciture”.
Sponsored Protocol
Immagini complesse: grafici, infografiche, mappe. Oltre all’alt, fornisci una descrizione lunga separata (attributo longdesc o testo adiacente).
Esempio di alt text errato: <img src="logo.png" alt="logo" />. Meglio: <img src="logo.png" alt="Meteora Web – agenzia digitale Sciacca" />.
Azioni immediate: Controlla tutte le immagini del tuo sito. Quelle decorative hanno alt vuoto? Quelle importanti hanno alt descrittivo? Se non le hai mai riviste, è un segnale: probabilmente mancano.
Form accessibili: label, errori e autocomplete
I form sono il cuore di molti siti (contatti, registrazione, checkout). Ogni campo deve avere un <label> esplicito associato tramite for e id. Non usare placeholder come unica etichetta: scompare quando l’utente digita, rompendo la comprensione per chi usa screen reader.
Messaggi di errore: devono essere descrittivi e posizionati vicino al campo, non solo in cima al form. Usa aria-describedby per collegare il messaggio all’input.
Autocomplete: per campi come nome, indirizzo, email, specifica l’attributo autocomplete con il valore appropriato (es. autocomplete="email"). Aiuta utenti con disabilità cognitive e chi usa compilazione automatica.
Esempio di campo email accessibile:
<label for="email">Indirizzo email</label>
<input type="email" id="email" name="email" autocomplete="email" required aria-describedby="email-error" />
<span id="email-error" role="alert">Inserisci un indirizzo email valido.</span>
Azioni immediate: Verifica che ogni input abbia un label esplicito, che i placeholder non siano l’unica descrizione, e che i messaggi di errore siano visibili e leggibili da screen reader.
Screen reader testing: NVDA, VoiceOver e JAWS
Nessun audit automatico può sostituire un test umano con screen reader. I principali strumenti:
- NVDA (Windows, gratuito): il più usato. Scorciatoia: tasto NVDA + Freccia giù per leggere il contenuto.
- VoiceOver (macOS/iOS): integrato. Attivalo con Cmd+F5.
- JAWS (Windows, a pagamento): molto diffuso in contesti aziendali e PA.
Prova a navigare il tuo sito con NVDA. Ascolta se i titoli sono annunciati correttamente, se i link vengono letti, se i form hanno istruzioni chiare. Spesso scopri che gli screen reader leggono testi nascosti (es. icona “X” senza alt) o saltano sezioni perché mancano landmark.
Sponsored Protocol
Azioni immediate: Scarica NVDA (gratuito) e dedica 30 minuti a navigare le tre pagine più importanti del tuo sito. Prendi appunti su ciò che non funziona.
Audit di accessibilità: strumenti automatici e remediation plan
Non esiste un singolo strumento che trovi tutto. Noi usiamo un approccio a strati:
- Audit automatico: Chrome Lighthouse (estensione o DevTools) fornisce un primo screening su contrasto, attributi alt, struttura. axe DevTools (gratuito) è più approfondito.
- Validazione codice: W3C HTML Validator e WAVE di WebAIM.
- Test manuale con tastiera e screen reader come sopra.
- Remediation plan: classifichiamo i problemi per impatto (critico = blocca la navigazione) e sforzo, e li risolviamo in ordine di priorità.
Un piano tipico per un sito PMI: risolvere prima la navigazione da tastiera (skip link, focus), poi i form (label, errori), poi contrasto e immagini, infine i componenti dinamici.
Azioni immediate: Esegui un audit Lighthouse sulla tua homepage. Scarica il report e cerca i problemi marcati come “accessibility”. Pianifica di risolverne almeno 5 questa settimana.
In sintesi – cosa fare adesso
L’accessibilità non è un progetto una tantum, è un processo continuo. Ecco le azioni concrete per iniziare subito:
- Fai un audit con Lighthouse e axe sulle pagine principali.
- Controlla la navigazione da tastiera: aggiungi skip link e focus visibile.
- Rivedi gli alt text delle immagini e le etichette dei form.
- Verifica il contrasto dei tuoi colori con WebAIM.
- Fai un test con NVDA per ascoltare l’esperienza reale.
Noi di Meteora Web progettiamo e sviluppiamo siti accessibili dalla prima riga di codice. Se hai bisogno di una consulenza o di un audit completo, contattaci. Ricorda: un sito che esclude è un sito che fallisce.