Criteri di successo WCAG · Level AAA
WCAG 1.4.8: Presentazione visiva
WCAG 1.4.8 richiede che i blocchi di testo siano presentati visivamente in modi che gli utenti possano controllare — includendo colori di primo piano e di sfondo, larghezza delle righe, interlinea e allineamento del testo — affinché le persone con disabilità di lettura, cognitive o ipovisione possano leggere comodamente i contenuti senza perdita di informazioni.
Cosa Significa Questa Regola
Il Criterio di Successo WCAG 1.4.8, intitolato Visual Presentation, si colloca al Livello AAA sotto il principio Perceivable. Si applica specificamente ai blocchi di testo — cioè passaggi sostanziali di contenuto leggibile, non singole parole, etichette o brevi frasi. Il criterio stabilisce cinque requisiti distinti che devono essere tutti soddisfatti simultaneamente per un superamento completo.
Primo, i colori di primo piano e di sfondo devono essere selezionabili dall’utente. La pagina deve o evitare di specificare entrambi i colori insieme (lasciandone almeno uno al valore predefinito del browser) oppure fornire un meccanismo che permetta agli utenti di scegliere la propria combinazione di colori. Imporre una coppia di colori fissa — anche con alto contrasto — può essere dannoso per lettori con condizioni come la sindrome di Irlen o la fotosensibilità, che necessitano di specifiche tonalità.
Secondo, la larghezza dei blocchi di testo non deve superare 80 caratteri (o 40 caratteri per gli script CJK — cinese, giapponese e coreano). Questo limite è calcolato per riga di testo renderizzato, non per larghezza dell’elemento. Una colonna larga 1200 px ma che contiene righe brevi a causa di un carattere molto grande può comunque superare il test, mentre una colonna stretta con testo molto piccolo e stringhe lunghe e ininterrotte può fallire.
Terzo, il testo non deve essere giustificato completamente (cioè allineato contemporaneamente sia al margine sinistro che a quello destro). La giustificazione completa crea spaziatura irregolare tra le parole — talvolta chiamata “fiumi” di spazio bianco — che compromette la fluidità di lettura per persone con dislessia o altre differenze nella lettura. Il testo allineato a sinistra (a bandiera a destra) è sempre accettabile; il testo centrato o allineato a destra è accettabile per passaggi brevi.
Quarto, l’interlinea deve essere almeno 1,5 volte la dimensione del carattere all’interno dei paragrafi e la spaziatura tra paragrafi deve essere almeno 2,25 volte la dimensione del carattere. Questi minimi garantiscono sufficiente respiro verticale, così che i lettori che seguono le righe con attenzione non perdano il segno o confondano le righe adiacenti.
Quinto, il testo deve poter essere ridimensionato fino al 200% senza tecnologie assistive e senza perdita di contenuto o funzionalità. Questo differisce leggermente dal Criterio 1.4.4 (Resize Text, Livello AA) in quanto richiede esplicitamente questo comportamento per la presentazione visiva dei blocchi di testo in particolare, e senza fare affidamento su un ingranditore di schermo o su un override di zoom del browser — è la pagina stessa che deve supportare lo scaling in modo adeguato.
Un’importante eccezione ufficiale: i requisiti non si applicano a didascalie o immagini di testo. Il testo incorporato in immagini raster non può essere ridimensionato o ricolorato tramite CSS, motivo per cui il Criterio 1.4.5 (Images of Text) scoraggia separatamente il loro utilizzo. Anche il testo decorativo usato esclusivamente come elemento grafico è escluso in modo analogo.
Per superare il criterio è necessario soddisfare tutti e cinque i sotto-requisiti. Un fallimento anche di uno solo — per esempio, applicare text-align: justify al corpo di un articolo lungo senza alcun meccanismo di override — costituisce un fallimento del criterio nel suo complesso.
Perché È Importante
La presentazione visiva del testo ha un impatto sproporzionato sui lettori per i quali la lettura di testi stampati o su schermo non è un’esperienza standard e senza sforzo. I gruppi più direttamente interessati da questo criterio includono persone con dislessia, persone con ipovisione che si affidano allo zoom del browser piuttosto che agli ingranditori di schermo, persone con sindrome di Irlen o sensibilità scotopica, individui con disabilità cognitive che influiscono sulla velocità di lettura e sulla comprensione, e utenti anziani la cui comodità di lettura è diminuita nel tempo.
Secondo la British Dyslexia Association, circa il 10% della popolazione ha un certo grado di dislessia, con circa il 4% che la sperimenta in forma grave. Per questi utenti, il testo completamente giustificato può creare distorsioni visive che rendono la lettura quasi impossibile. Lunghezze di riga eccessive aggravano il problema aumentando la distanza che l’occhio deve percorrere alla fine della riga, aumentando la probabilità di perdere il segno della riga successiva. Coppie di colori fisse che non possono essere sovrascritte impediscono agli utenti di applicare sovrapposizioni colorate o schemi di contrasto che hanno scoperto facilitare la loro lettura.
Per gli utenti ipovedenti — che l’Organizzazione Mondiale della Sanità stima siano circa 246 milioni a livello globale — la possibilità di ridimensionare il testo all’interno del flusso della pagina è fondamentale. Se un layout si rompe, tronca il contenuto o nasconde la navigazione quando il testo è scalato al 200%, questi utenti sono di fatto esclusi da porzioni del sito. Potrebbero non avere accesso a software dedicati di ingrandimento dello schermo, oppure potrebbero preferire il controllo più fine delle impostazioni di zoom del browser che hanno calibrato personalmente.
Consideriamo uno scenario concreto: una persona con dislessia moderata visita un portale di notizie online per leggere un articolo investigativo di lunga durata. Il corpo dell’articolo utilizza text-align: justify, una colonna di 900 px (circa 120 caratteri per riga alla dimensione di carattere predefinita) e uno schema di colori fisso grigio scuro su bianco con interlinea 1,2. L’utente ha configurato il proprio browser per preferire uno sfondo seppia, ma il CSS del sito sovrascrive sia il primo piano che lo sfondo, annullando tale preferenza. Nel giro di due paragrafi, la spaziatura irregolare, la lunghezza eccessiva delle righe e l’impossibilità di applicare la tonalità preferita si combinano per rendere l’articolo di fatto illeggibile. Questo non è un caso limite ipotetico — descrive il design predefinito di molti grandi siti editoriali oggi.
Oltre all’accessibilità per le persone con disabilità, questi requisiti si sovrappongono alle buone pratiche generali di leggibilità riconosciute dalla ricerca UX. I siti che rispettano lunghezza delle righe, spaziatura e flessibilità dei colori tendono a trattenere i lettori più a lungo, ridurre i tassi di abbandono e ottenere punteggi di leggibilità migliori — tutti fattori che hanno implicazioni misurabili in termini di SEO e coinvolgimento.
Regole Axe-core Correlate
WCAG 1.4.8 richiede test manuali. Non esistono regole automatizzate di axe-core che segnalino direttamente violazioni di questo criterio. Il motivo è fondamentale: gli strumenti automatici valutano il DOM e gli stili CSS calcolati, ma non possono determinare se la combinazione di colore, lunghezza delle righe, spaziatura e comportamento di ridimensionamento produca un’esperienza di lettura accessibile per un utente umano. Ciascuno dei cinque sotto-requisiti implica un giudizio contestuale:
- Selettività del colore non può essere valutata automaticamente perché uno strumento può rilevare che sia
colorchebackground-colorsono impostati, ma non può determinare se la pagina fornisce un meccanismo di override controllato dall’utente (come un selettore di tema) o se il foglio di stile utente del browser viene rispettato. La presenza di proprietà personalizzate CSS, toggle di tema in JavaScript o preferenze lato server deve essere valutata da un tester umano. - Larghezza delle righe (limite di 80 caratteri) richiede il rendering del testo alla dimensione di carattere predefinita dell’utente e la misurazione del numero effettivo di caratteri per riga. Gli strumenti automatizzati non simulano in modo affidabile questa misurazione tra diversi tipi di carattere, dimensioni dei font e larghezze di viewport. Un tester deve ispezionare visivamente o usare una sovrapposizione che conti i caratteri.
- Giustificazione del testo può essere rilevata parzialmente — in teoria axe potrebbe segnalare
text-align: justify— ma il criterio consente testo giustificato se esiste un meccanismo che permette all’utente di cambiarlo. Nessuna regola automatizzata cattura attualmente questa sfumatura in axe-core 4.x. - Spaziatura tra righe e paragrafi richiede l’ispezione dei valori calcolati di
line-heightemarginnel contesto e la verifica che soddisfino rispettivamente le soglie di 1,5× e 2,25×. Sebbene gli stili calcolati siano leggibili dall’automazione, la determinazione contestuale se un blocco rientra nella definizione di “blocco di testo” soggetto al criterio richiede giudizio umano. - Ridimensionamento al 200% senza perdita si sovrappone concettualmente alla regola
meta-viewportdi axe (che controllauser-scalable=no), ma tale regola riguarda il Criterio 1.4.4, non 1.4.8. Una pagina può superare il controllo automatizzatometa-viewporte comunque non rispettare 1.4.8 se il layout si rompe al 200% di zoom in modi che nascondono o troncano i blocchi di testo.
Poiché tutti e cinque i controlli richiedono giudizio umano, il Criterio 1.4.8 deve essere verificato tramite procedure strutturate di revisione manuale descritte nella sezione successiva.
Come Testare
- Identificare i blocchi di testo nella pagina. Navigare a una pagina rappresentativa ricca di contenuti (articolo, descrizione di prodotto, termini di servizio, documentazione di aiuto). Identificare tutti i blocchi sostanziali di testo continuo — paragrafi, corpi di elenchi, celle di tabella con prosa — che sono soggetti al criterio. Escludere didascalie di immagini e testo decorativo.
- Verificare il controllo dei colori. Aprire gli Strumenti di Sviluppo del browser (F12) e ispezionare gli stili calcolati di un blocco di testo. Se sia
colorchebackground-colorsono impostati esplicitamente dal CSS della pagina (non ereditati dai valori predefiniti del browser), verificare che la pagina fornisca un’alternativa: un selettore di tema, un toggle per la modalità ad alto contrasto o istruzioni per abilitare un foglio di stile utente. Se non esiste nulla di tutto ciò, questo sotto-requisito fallisce. È anche possibile forzare temporaneamente un foglio di stile utente in Firefox (about:config →layout.css.has-selector.enabled) o usare l’emulazione “Forced Colors” negli Strumenti di Sviluppo di Chrome per osservare se il sito rispetta le preferenze di colore di sistema. - Misurare la lunghezza delle righe. Utilizzare un’estensione del browser come “Line Length” o il pannello “Intelligent Guided Tests” di axe DevTools per sovrapporre il conteggio dei caratteri, oppure contare manualmente i caratteri in una riga lunga rappresentativa. In alternativa, incollare una riga di testo in un word processor e contare i caratteri. Se le righe superano costantemente gli 80 caratteri (o 40 per CJK) senza alcun meccanismo che permetta all’utente di restringere la colonna, questo sotto-requisito fallisce.
- Ispezionare l’allineamento del testo. Negli Strumenti di Sviluppo, controllare il valore calcolato di
text-alignper ciascun blocco di testo. Qualsiasi valorejustifysu un blocco di testo di lunga durata è un fallimento, a meno che la pagina non fornisca un toggle che consenta agli utenti di passare all’allineamento a sinistra. - Verificare i valori di spaziatura. Negli Strumenti di Sviluppo, ispezionare il
line-heightcalcolato per i blocchi di testo. Se è espresso in un’unità diversa da un moltiplicatore (ad esempio,24px), dividerlo per il valore difont-size. Il risultato deve essere ≥ 1,5. Quindi ispezionare ilmargin-bottom(omargin-top) degli elementi paragrafo; diviso per la dimensione del carattere, deve essere ≥ 2,25. I valori impostati con il flag!importantche impedirebbero gli override dell’utente dovrebbero essere annotati come fattore di rischio. - Testare il ridimensionamento al 200%. Nel browser, impostare lo zoom al 200% (Ctrl/Cmd + tasto “più”, oppure Visualizza → Aumenta zoom, due volte da 100%). Esaminare tutti i blocchi di testo per troncamenti, overflow nascosto da
overflow: hidden, testo che scompare dietro altri elementi o navigazione che diventa inaccessibile. Utilizzare la Device Toolbar degli Strumenti di Sviluppo di Chrome per simulare il viewport ingrandito se necessario. Si verifica un fallimento se qualsiasi contenuto testuale viene perso o qualsiasi funzionalità diventa indisponibile. - Verifica con tecnologie assistive. Con NVDA e Firefox, ingrandire la pagina al 200% e navigare nell’articolo usando i tasti freccia. Verificare che tutto il testo venga ancora annunciato dallo screen reader (il contenuto nascosto tramite
overflow: hiddendopo lo zoom può essere troncato visivamente ma ancora letto ad alta voce — segnalarlo comunque come fallimento visivo). Con VoiceOver su macOS e Safari, ripetere il test di zoom. Questi controlli aiutano a confermare che le modifiche al layout dovute allo zoom non rimuovano contenuti dall’albero di accessibilità. - Simulazione di override da parte dell’utente. In Firefox, andare su Impostazioni → Generale → Font e Colori → Colori, abilitare “Usa i colori scelti da me” e impostare colori personalizzati di primo piano e di sfondo. Tornare alla pagina e verificare se il sito rispetta o sovrascrive queste scelte. I siti che usano
!importantsulle dichiarazioni di colore sovrascriveranno le preferenze dell’utente, il che costituisce un fallimento del sotto-requisito di selettività del colore.
Come Correggere
Abbinamento di colori fisso senza controllo dell’utente — Non corretto
<!-- Both color and background-color are hardcoded; user browser preferences are overridden -->
<style>
.article-body {
color: #1a1a1a;
background-color: #ffffff;
/* No theme switcher provided */
}
</style>
<div class='article-body'>
<p>Long-form article content goes here...</p>
</div>
Abbinamento di colori fisso senza controllo dell’utente — Corretto
<!-- Uses CSS custom properties so a theme switcher or user stylesheet can override both values -->
<style>
:root {
--text-color: #1a1a1a;
--bg-color: #ffffff;
}
[data-theme='sepia'] {
--text-color: #3b2a1a;
--bg-color: #f5edd6;
}
[data-theme='high-contrast'] {
--text-color: #ffffff;
--bg-color: #000000;
}
.article-body {
color: var(--text-color);
background-color: var(--bg-color);
}
</style>
<!-- Theme switcher gives users explicit control -->
<div role='group' aria-label='Color theme'>
<button onclick="document.documentElement.setAttribute('data-theme','default')">Default</button>
<button onclick="document.documentElement.setAttribute('data-theme','sepia')">Sepia</button>
<button onclick="document.documentElement.setAttribute('data-theme','high-contrast')">High Contrast</button>
</div>
<div class='article-body'>
<p>Long-form article content goes here...</p>
</div>
Testo giustificato con lunghezza eccessiva delle righe — Non corretto
<!-- text-align: justify applied to a very wide unrestricted column -->
<style>
.content {
text-align: justify;
/* No max-width constraint; lines easily exceed 80 characters */
}
</style>
<div class='content'>
<p>This paragraph stretches across the full width of the viewport, creating uneven word spacing that makes reading difficult for users with dyslexia or other reading differences. Each line may contain well over 100 characters.</p>
</div>
Testo giustificato con lunghezza eccessiva delle righe — Corretto
<!-- Left-aligned text with a max-width that keeps lines under 80 characters -->
<style>
.content {
text-align: left; /* Ragged-right prevents uneven word spacing */
max-width: 66ch; /* ch unit approximates character width; 66ch ≈ 80 average chars */
line-height: 1.6; /* Exceeds the 1.5× minimum */
}
.content p {
margin-bottom: 2.5em; /* 2.5× font-size exceeds the 2.25× paragraph spacing minimum */
}
</style>
<div class='content'>
<p>This paragraph is constrained to a comfortable reading width, uses left alignment, and has generous line and paragraph spacing — satisfying three of the five sub-requirements simultaneously.</p>
</div>
Interlinea insufficiente che si rompe al 200% di zoom — Non corretto
<!-- line-height set in pixels; does not scale with font resizing -->
<style>
.article p {
font-size: 16px;
line-height: 18px; /* Only 1.125× font size — below the 1.5× requirement */
}
</style>
<div class='article'>
<p>When the user zooms to 200%, this text becomes 32px but line-height remains 18px, causing lines to overlap and become unreadable.</p>
</div>
Interlinea insufficiente che si rompe al 200% di zoom — Corretto
<!-- line-height as a unitless multiplier scales with any font size change -->
<style>
.article p {
font-size: 1rem; /* Respects browser default font size setting */
line-height: 1.6; /* Unitless: always 1.6× the current font size, even when zoomed */
margin-bottom: 2.5em; /* Scales proportionally with font size */
}
</style>
<div class='article'>
<p>At any zoom level or font size, this paragraph maintains correct proportional spacing because line-height is expressed as a unitless number rather than a fixed pixel value.</p>
</div>
Errori Comuni
- Impostare
line-heightin pixel o punti invece che come moltiplicatore senza unità. Quando gli utenti scalano il testo o ingrandiscono la pagina, un’interlinea basata sui pixel rimane fissa, causando la sovrapposizione delle righe. Usare sempre un valore senza unità come1.6in modo che la spaziatura si ridimensioni proporzionalmente. - Usare
text-align: justifysul testo principale di lunga durata senza fornire un’alternativa. Anche quando il testo giustificato appare pulito su desktop allo zoom predefinito, crea spazi irregolari tra le parole per gli utenti dislessici. Rimuovere la giustificazione dai blocchi di prosa o aggiungere un toggle di allineamento rivolto all’utente. - Impostare
max-widthin pixel anziché in unità di carattere (ch) o unità relative (em). Una larghezza massima basata sui pixel non si adatta quando gli utenti cambiano la dimensione di carattere predefinita del browser, potenzialmente permettendo alle righe di superare gli 80 caratteri a dimensioni di carattere più piccole e lasciando spazio sprecato a dimensioni maggiori. - Dichiarare sia
colorchebackground-colorcon!importantsugli elementi body o article. L’uso di!importantblocca esplicitamente i fogli di stile utente dal sovrascrivere i colori, che è il meccanismo principale attraverso cui le persone con fotosensibilità o sindrome di Irlen personalizzano il proprio ambiente di lettura. - Fare affidamento su
overflow: hiddensui contenitori di testo senza testare allo zoom 200%. I contenitori dimensionati in unità di viewport o in pixel fissi taglieranno il testo quando l’utente ingrandisce, nascondendo il contenuto invece di farlo rifluire. - Applicare la spaziatura tra paragrafi solo tramite
paddinganzichémargin. Se un contenitore genitore haoverflow: hidden, il padding inferiore collassa visivamente e la spaziatura sembra assente. Usaremargin-bottomsui paragrafi per una spaziatura affidabile. - Impostare la spaziatura tra paragrafi in pixel (
margin-bottom: 20px) invece che inem. Come l’interlinea, la spaziatura tra paragrafi basata sui pixel non si ridimensiona con i cambiamenti della dimensione del carattere, causando l’addensamento dei paragrafi quando gli utenti scelgono font base più grandi nelle impostazioni del browser. - Supporre che un viewport stretto significhi automaticamente righe brevi. Su viewport mobili, una dimensione di carattere piccola può comunque produrre righe molto lunghe in termini di conteggio dei caratteri. Verificare sempre il numero di caratteri per riga alla dimensione di carattere predefinita del dispositivo, non solo misurando la larghezza della colonna in pixel.
- Fornire un toggle per il tema ad alto contrasto che cambia solo i rapporti di contrasto, non la selettività del colore. Un toggle che passa dalla modalità chiara alla modalità scura specifica comunque sia il primo piano che lo sfondo. Il criterio richiede che gli utenti possano scegliere i propri colori, non solo selezionare tra coppie predefinite. Integrare i preset con un selettore di colori personalizzato o assicurarsi che la pagina rispetti le media query
prefers-color-schemeeforced-colors. - Dimenticare di testare il testo di lunga durata in contenitori scrollabili. I blocchi di testo all’interno di elementi con
overflow: scrollooverflow: autosono spesso omessi dalle revisioni manuali. Questi contenitori hanno vincoli di larghezza propri che possono far sì che la lunghezza delle righe o il comportamento allo zoom differiscano dal flusso principale del documento.
Relazione con le Normative di Accessibilità della Turchia
La Circolare Presidenziale n. 2025/10 della Turchia, pubblicata nella Gazzetta Ufficiale n. 32933 il 21 giugno 2025, stabilisce requisiti obbligatori di accessibilità digitale che fanno riferimento diretto alle WCAG 2.1 (con un forte allineamento alle migliori pratiche WCAG 2.2). La Circolare crea obblighi applicabili a un’ampia gamma di soggetti che operano in Turchia, tra cui istituzioni pubbliche e organismi governativi a tutti i livelli, piattaforme di e-commerce, banche e fornitori di servizi finanziari, ospedali e istituzioni sanitarie private, operatori di telecomunicazioni con 200.000 o più abbonati, agenzie di viaggio, aziende di trasporto privato e scuole private autorizzate dal Ministero dell’Istruzione Nazionale.
WCAG 1.4.8 è un criterio di Livello AAA, il che significa che la Circolare non lo impone come soglia legale minima — il requisito legale di base è generalmente la conformità al Livello AA delle WCAG. Tuttavia, criteri di Livello AAA come Visual Presentation hanno un peso pratico e reputazionale significativo per le organizzazioni turche per diversi motivi.
In primo luogo, ci si aspetta che le istituzioni pubbliche e le grandi entità del settore privato coperte dalla Circolare dimostrino un miglioramento progressivo dell’accessibilità nel tempo. Revisori e organismi di vigilanza considerano sempre più i criteri AAA come indicatori di un impegno genuino che va oltre la mera conformità formale. Le organizzazioni che implementano proattivamente il Criterio 1.4.8 — in particolare offrendo controlli sul tema dei colori, rispettando le preferenze di colore di sistema e mantenendo una corretta spaziatura del testo — hanno molte meno probabilità di ricevere reclami da parte di utenti con dislessia, ipovisione o fotosensibilità.
In secondo luogo, la Turchia ha una popolazione significativa di utenti che traggono beneficio direttamente dal Criterio 1.4.8. Con una prevalenza stimata della dislessia al 10% e milioni di utenti ipovedenti, i soggetti che servono ampie basi di consumatori — banche, operatori di telecomunicazioni, piattaforme di e-commerce, ospedali — possono aspettarsi che porzioni significative dei loro utenti abbiano difficoltà con una presentazione visiva non conforme. Non affrontare questo problema rappresenta sia una barriera di accessibilità sia un rischio per il business.
In terzo luogo, alcuni servizi specializzati — in particolare nell’istruzione (scuole private autorizzate dal MoNE) e nella sanità — possono essere soggetti a linee guida regolamentari specifiche di settore che alzano l’asticella al livello AAA per i contenuti presentati a popolazioni vulnerabili come bambini, pazienti anziani o individui con disabilità cognitive. In questi contesti, il Criterio 1.4.8 passa da aspirazionale a praticamente obbligatorio.
Le organizzazioni che mirano a dimostrare un’accessibilità di livello eccellente nel mercato turco — e a rendere a prova di futuro la propria posizione di conformità man mano che le normative evolvono — dovrebbero trattare il Criterio 1.4.8 come uno standard di design piuttosto che come un miglioramento opzionale. Implementare proprietà personalizzate CSS per il theming dei colori, limitare la larghezza delle colonne con unità ch, eliminare il testo giustificato dai blocchi di prosa e usare valori di interlinea senza unità sono cambiamenti a basso costo e ad alto impatto che avvantaggiano un vasto pubblico e segnalano una reale leadership in materia di accessibilità nel quadro normativo turco.
