Definizione — Il CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) è un meccanismo usato per limitare lo spam distinguendo utenti umani da bot. Le varianti più diffuse richiedono il riconoscimento di testo distorto, il click su immagini o l’ascolto di codici audio.
Problemi di accessibilità
Molti CAPTCHA presuppongono abilità sensoriali specifiche (visive o uditive) o rapide capacità motorie/cognitive. Di conseguenza ostacolano persone cieche o ipovedenti, con sordità, daltonismo, dislessia, tremori, disturbi attentivi o semplicemente utenti su dispositivi mobili. Gli audio-CAPTCHA, spesso citati come “alternativa”, non risolvono il problema per chi ha deficit uditivi o linguistici e risultano rumorosi/illeggibili.
Requisiti e mappatura
- WCAG 2.1: 1.1.1 Contenuti non testuali (serve alternativa testuale o percorso alternativo); 2.1.1 Tastiera (raggiungibile senza mouse); 3.3.1 Identificazione errore e 3.3.2 Etichette/Istruzioni (istruzioni chiare e feedback); 1.4.1 Uso del colore (non basato solo sul colore); 4.1.2 Nome, Ruolo, Valore (componenti annunciabili).
- EN 301 549: sezione 9 (web) che referenzia i corrispondenti criteri WCAG (es. 9.1.1.1, 9.2.1.1, 9.3.3.x).
Alternative raccomandate
- Verifiche non interattive: analisi del rischio lato server (reputation IP, velocità invii, fingerprinting privacy-aware), rate limiting, challenge progressivi.
- Compiti non sensoriali: semplici conferme logiche testuali leggibili da screen reader (es. “rispondi 3 + 2”) con etichetta e messaggi d’errore chiari.
- Doppia conferma: verifica email/SMS o magic link per sbloccare l’azione critica.
- WebAuthn / passkey per azioni ad alto rischio (quando appropriato), evitando puzzle percettivi.
- Honeypot e timestamp: campi nascosti agli umani ma intercettabili dai bot, controlli sul tempo di compilazione.
Come progettare un CAPTCHA più accessibile (se proprio serve)
- Fornisci più di un metodo (ad es. test logico testuale e verifica email) e consenti di cambiare modalità senza perdere i dati già inseriti.
- Rendi il componente operabile da tastiera, con focus visibile e annunci ARIA corretti.
- Usa istruzioni chiare (
e aria-describedby
) e messaggi d’errore utili.
- Evita immagini a bassa qualità, audio distorti o micro-puzzle che richiedono velocità elevata (criterio 2.2.x).
Esempio (variante test logico testuale)
<label for="q_captcha" id="lbl_captcha">Verifica di sicurezza: quanto fa 3 + 2?</label>
<input id="q_captcha" name="q_captcha" inputmode="numeric" aria-describedby="help_captcha" required>
<div id="help_captcha" class="visually-hidden">Inserisci il risultato in cifre, per esempio 5.</div>
Checklist rapida
- Evita compiti che richiedono visione fine o discriminazione cromatica.
- Garantisci alternativa testuale/percorsi alternativi equivalenti.
- Etichette, istruzioni e messaggi d’errore chiari; componente fruibile via tastiera.
- Valuta opzioni “silenziose” (rate limiting, reputazione, verifica email).
Voci correlate e collegamenti utili
Naviga il Glossario dell'accessibilità A-Z
Richiedi una consulenza gratuita
Il nostro team di Web Accessibility Expert certificati UNI 11621-3 è pronto a guidarti con le migliori soluzioni per il tuo business!
Contattaci adesso