Calcolatore del rapporto di contrasto
Scrivi o scegli due colori. Il rapporto, i cinque verdetti WCAG e un campione di testo si aggiornano mentre procedi. Se la coppia non passa, il calcolatore suggerisce la tonalità più vicina della stessa tinta che passa.
Questo non è un colore che il browser riconosce
Questo non è un colore che il browser riconosce
Va bene qualsiasi colore CSS: esadecimale come #1d3557, rgb(), hsl() o un colore con nome come teal.
Rapporto di contrasto WCAG
–
Un titolo in questi colori
Questo paragrafo è in dimensione di lettura normale. Leggilo per qualche secondo e nota se gli occhi devono sforzarsi. Un link nel testo.
Testo più piccolo, come quello di didascalie, note legali e suggerimenti nei moduli.
Un pulsanteUn numero tra 1 e 21
Riesci a leggere un testo quando è nettamente più chiaro o più scuro di ciò che ha dietro. La tinta conta poco. Rosso puro su verde puro sono due colori molto diversi con quasi la stessa luminosità, e le lettere sembrano vibrare. Per questo WCAG misura la differenza di luminanza relativa, la quantità di luce che un colore manda all’occhio su una scala da 0 (nero) a 1 (bianco).
Per calcolarla, ciascuno dei canali rosso, verde e blu viene convertito dal valore memorizzato in luce lineare, poi i tre vengono pesati secondo la sensibilità dell’occhio a ciascuno:
L = 0.2126 × R + 0.7152 × G + 0.0722 × B
ratio = (L lighter + 0.05) ÷ (L darker + 0.05)Il verde conta per più del 70% del risultato e il blu per circa il 7%. Ecco perché il blu puro #0000ff si comporta come un colore scuro e il giallo puro come un colore chiaro. Due colori identici danno 1:1. Nero su bianco dà 21:1. Scambiare testo e sfondo non cambia il rapporto.
Le soglie e dove si applicano
| Contenuto | AA | AAA |
|---|---|---|
| Testo di dimensione normale | 4.5:1 | 7:1 |
| Testo grande: da 24 px in su, o da 18.66 px in su in grassetto | 3:1 | 4.5:1 |
| Parti dell’interfaccia e icone: bordi dei campi, contorni dei pulsanti, anelli di focus, linee dei grafici | 3:1 | nessuna definita |
AA è il livello a cui rimandano in genere leggi e regole sugli appalti, tra cui la norma europea EN 301 549 e la Section 508 negli Stati Uniti. AAA è un obiettivo per i contesti in cui si legge a lungo. Loghi, controlli disattivati e testo puramente decorativo sono esenti.
Un riferimento comodo è il grigio #767676, che raggiunge 4.54:1 sul bianco e passa AA. Un gradino più chiaro, #777777 dà 4.47:1 e non passa.
Il calcolatore tronca il rapporto a due decimali senza arrotondare per eccesso, come vuole WCAG. Una coppia a 4.499 appare come 4.49 e non passa. Non viene promossa a 4.5.
Come viene scelta la tonalità suggerita
Quando un testo di dimensione normale resta sotto 4.5:1, il calcolatore converte il colore del testo in tinta, saturazione e luminosità. Tiene le prime due e sposta la luminosità a passi di mezzo punto percentuale, alternando più scuro e più chiaro, finché il rapporto con il tuo sfondo arriva a 4.5. Il primo risultato è la tonalità più vicina che passa, così il tuo blu resta il tuo blu. A volte nessuna luminosità del colore del testo può passare, tipicamente su uno sfondo a tono medio. In quel caso prova a regolare lo sfondo allo stesso modo. Seleziona Usa per applicare il suggerimento.
Gli sfondi a tono medio sono il caso difficile. Un grigio medio come #808080 dà circa 3.9:1 contro il bianco e 5.3:1 contro il nero, quindi ci funziona sopra solo un testo molto scuro. Gli arancioni di marca e i verdi accesi hanno lo stesso problema con il testo bianco. Dovrai scurire lo sfondo o passare a un testo scuro.
Inserire ed estrarre i colori
Entrambi i campi accettano tutto ciò che un browser riconosce come colore CSS: #1d3557, 1d3557, rgb(29 53 87), hsl(215 50% 23%) o un nome come teal. Per leggere un colore da una pagina dal vivo, apri gli strumenti per sviluppatori, seleziona il testo e copia i valori calcolati di color e background-color.
L’indirizzo della pagina si aggiorna a ogni modifica, nella forma ?fg=1d3557&bg=ffffff. Copialo per mandare a un collega esattamente la coppia su cui state discutendo. Per verificare un’intera palette di marca in un colpo solo, usa la griglia di contrasto della palette.
Cosa un rapporto non ti dice
- Trasparenza. Qualsiasi valore alfa viene ignorato. Per un testo semitrasparente, misura il colore risultante che lo schermo finisce per mostrare.
- Immagini e sfumature. Una foto di sfondo ha molti colori. Verifica la zona più chiara e quella più scura dietro il testo, oppure mettici sotto un pannello pieno.
- Peso e dimensione del carattere sotto le soglie. Un carattere sottile da 12 px a 4.6:1 passa sulla carta ed è comunque difficile da leggere.
- Temi scuri. La formula di WCAG 2 è nota per sopravvalutare alcune coppie scure. Se un testo chiaro su sfondo scuro passa a malapena, guardalo anche con i tuoi occhi, per esempio nel simulatore di visione.
Domande frequenti
Quale rapporto di contrasto richiede WCAG AA?
4.5:1 per il testo di dimensione normale, 3:1 per il testo grande (da 24 px in su, o da 18.66 px in su in grassetto) e 3:1 per i componenti dell’interfaccia e la grafica significativa. Sono i criteri di successo 1.4.3 e 1.4.11.
Il testo bianco su un pulsante colorato è accessibile?
Dipende da quanto è scuro il pulsante. Il bianco ha bisogno di uno sfondo scuro almeno quanto #767676 per arrivare a 4.5:1. I soliti pulsanti arancione acceso, giallo, verde lime e azzurro cielo non passano con il testo bianco e passano con un testo quasi nero.
18 px conta come testo grande?
No. WCAG definisce il testo grande in punti, come 18 pt normale o 14 pt grassetto. Sul web sono 24 px normale o circa 18.66 px grassetto. Un testo a 18 px normale deve rispettare la soglia di 4.5:1.
Il testo segnaposto e i pulsanti disattivati devono passare?
Il testo segnaposto sì. Il visitatore deve poterlo leggere, quindi vale 4.5:1. I controlli disattivati sono esenti dai criteri di contrasto, anche se quelli molto sbiaditi lasciano le persone a chiedersi cosa sia il controllo.
Perché due strumenti danno rapporti leggermente diversi per gli stessi colori?
Soprattutto per gli arrotondamenti. Alcuni strumenti arrotondano a uno o due decimali, e alcuni arrotondano per eccesso dove questo tronca. Una differenza al secondo decimale conta solo per le coppie proprio sul filo di una soglia, e quelle conviene comunque scurirle un po’.