Le notazioni dei colori e il contrasto

Sullo schermo ogni colore è una miscela di rosso, verde e blu, ciascuno da 0 a 255: è la notazione RGB, e HEX è la stessa cosa scritta in esadecimale, due cifre per canale. HSL e HSV descrivono lo stesso colore in modo più intuitivo, con tinta sul cerchio dei colori, saturazione e luminosità, ed è per questo che si usano per creare varianti più chiare o più scure.

La stampa lavora al contrario: parte dal bianco della carta e sottrae luce con inchiostri ciano, magenta, giallo e nero, il CMYK. La conversione esatta dipende dalla carta e dalla macchina; quella mostrata qui è quella teorica, utile per un'idea ma non per un file di stampa.

Il contrasto WCAG misura quanto si distingue il testo dallo sfondo, da 1:1 a 21:1, usando la luminanza relativa, che pesa il verde molto più del blu come fa l'occhio. Le linee guida chiedono almeno 4,5:1 per il testo normale e 3:1 per quello grande; 7:1 è il livello AAA.

Errori frequenti

  • Scegliere il colore del testo a occhio: un giallo pieno sembra scuro ma è chiarissimo e con il bianco sopra è illeggibile.
  • Aspettarsi che il CMYK calcolato stampi uguale allo schermo: molti colori RGB brillanti non sono stampabili.
  • Dimenticare la trasparenza: un colore con alfa cambia aspetto e contrasto a seconda di cosa c'è sotto.

Domande frequenti

Che contrasto serve per essere accessibili?

Le WCAG 2 chiedono 4,5:1 per il testo normale (livello AA), 3:1 per il testo grande da 24 px o 19 px in grassetto, e 7:1 per il livello AAA.

Che differenza c'è fra HSL e HSV?

Entrambi usano tinta e saturazione. In HSL la luminosità al 100% è sempre bianco e al 50% il colore puro; in HSV il valore al 100% è il colore puro alla massima brillantezza.

Come si scrive un colore trasparente?

Con un canale alfa: #185FA580 in HEX a otto cifre, oppure rgba(24, 95, 165, 0.5). L'alfa va da 0, trasparente, a 1, opaco.

Come funziona questo calcolo

HEX #RRGGBB: ogni coppia è un canale da 00 a FF. HSL: con max e min dei canali normalizzati, L = (max + min) / 2, S = (max − min) / (1 − |2L − 1|), H dall'angolo del canale dominante. CMYK: K = 1 − max, C = (1 − R − K) / (1 − K) e così via. Contrasto = (L1 + 0,05) / (L2 + 0,05), con luminanza L = 0,2126 R + 0,7152 G + 0,0722 B sui canali linearizzati.