Contrasto Colore: Linee Guida WCAG per il Design Accessibile

Scopri come verificare e correggere i rapporti di contrasto dei colori per la conformità WCAG 2.1 AA/AAA, con consigli pratici per il design UI accessibile.

7 min di lettura Accessibilità · WCAG · Colore 6 sezioni + FAQ

Il contrasto dei colori è uno dei requisiti di accessibilità più frequentemente violati sul web — e uno dei più facili da correggere. Un contrasto scarso tra il testo e lo sfondo rende il contenuto illeggibile per gli utenti con ipovisione, daltonismo o in condizioni di forte illuminazione. WCAG 2.1 definisce soglie numeriche precise per i rapporti di contrasto accettabili.

Questa guida spiega come vengono calcolati i rapporti di contrasto, cosa significano in pratica i livelli WCAG, dove il contrasto fallisce più comunemente nei design reali e come correggere questi errori sistematicamente — sia nei temi chiari che scuri.

Cos'è il rapporto di contrasto dei colori

Il rapporto di contrasto dei colori è una misura numerica della differenza di luminanza percepita tra due colori — tipicamente il testo e il suo sfondo. Il rapporto è espresso come valore da 1:1 (colori identici, nessun contrasto) a 21:1 (nero puro su bianco puro, contrasto massimo). La formula confronta la luminanza relativa del colore più chiaro (L1) con quello più scuro (L2): contrasto = (L1 + 0.05) / (L2 + 0.05). Un rapporto di 4.5:1 significa che il colore più chiaro è 4.5 volte più luminante di quello più scuro.

Tool gratuito Verificatore di Contrasto Colori Verifica istantaneamente la conformità WCAG 2.1 AA/AAA per due qualsiasi colori

Livelli WCAG 2.1 (A/AA/AAA)

Le WCAG (Linee Guida per l'Accessibilità dei Contenuti Web) 2.1 definiscono tre livelli di conformità. Il livello A è il minimo. Il livello AA è lo standard legale e industriale nella maggior parte dei paesi. Il livello AAA è il massimo. Per il contrasto del testo: il testo normale (sotto 18pt o sotto 14pt grassetto) richiede 4.5:1 per AA e 7:1 per AAA. Il testo grande (18pt+ o 14pt+ grassetto) richiede 3:1 per AA e 4.5:1 per AAA. I componenti UI e gli oggetti grafici richiedono 3:1 per AA.

Come calcolare la luminanza

La luminanza relativa è calcolata da valori RGB linearizzati. La formula tiene conto della risposta non lineare dell'occhio umano alla luce. Prima, converti ogni canale a 8 bit (0–255) in un intervallo 0–1, poi applica la correzione gamma per ottenere valori di luce lineare. Infine, combina con i pesi percettivi (rosso=0.2126, verde=0.7152, blu=0.0722). Il canale verde contribuisce maggiormente alla luminosità percepita — ecco perché il verde puro (#00FF00) ha una luminanza molto più alta del blu puro (#0000FF).

/* Calcolo luminanza (JavaScript) */
function getLuminance(r, g, b) {
  const [rs, gs, bs] = [r, g, b].map(c => {
    c = c / 255;
    return c <= 0.03928
      ? c / 12.92
      : Math.pow((c + 0.055) / 1.055, 2.4);
  });
  return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
}
Tool gratuito Generatore di Palette Colori Genera palette accessibili con consapevolezza del contrasto integrata

Errori di contrasto comuni

Gli errori di contrasto più frequenti nei design reali: testo grigio chiaro su sfondo bianco (il testo attenuato spesso non supera i 2.5:1), colori brand a saturazione media usati come testo su bianco (i blu e i verdi brand spesso falliscono), link di testo colorati senza sottolineatura su sfondi colorati, stati disabilitati con differenza visiva insufficiente, elementi UI solo icona con contrasto insufficiente. I design in modalità scura spesso introducono nuovi errori: lo stesso colore brand che superava il test su sfondi chiari potrebbe fallire su quelli scuri.

Correggere il contrasto nei temi chiaro/scuro

Quando si costruisce un sistema di design a doppio tema, è essenziale testare il contrasto in entrambe le modalità indipendentemente. La stessa coppia sfondo-testo che supera AA in modalità chiara potrebbe fallire in modalità scura se si inverte semplicemente la tonalità senza ricalcolare il contrasto. L'approccio pratico: definire scale di colori separate per ogni tema. Per il colore brand primario, potrebbe essere necessaria una diversa gradazione di luminosità per la modalità scura rispetto a quella chiara.

Strumenti e automazione

Il controllo manuale in fase di design non è sufficiente — il contrasto può cambiare quando gli utenti applicano temi personalizzati, quando le immagini si caricano dietro il testo, o quando i componenti appaiono in contesti imprevisti. Gli strumenti di audit dell'accessibilità automatizzati (axe, Lighthouse, Pa11y) possono rilevare gli errori di contrasto in fase di build o nelle pipeline CI. Lo strumento Color Contrast di PixCode accetta due qualsiasi colori e restituisce il rapporto, il livello WCAG e suggerimenti per alternative conformi.

Tool gratuito Convertitore HEX in RGB Converti i colori nel formato necessario per i calcoli di luminanza

Domande Frequenti

Cos'è il rapporto di contrasto dei colori nell'accessibilità web? +
Il rapporto di contrasto dei colori è una misura numerica della differenza di luminanza tra due colori (tipicamente testo e sfondo). Va da 1:1 (nessun contrasto) a 21:1 (nero su bianco). WCAG 2.1 richiede un minimo di 4.5:1 per il testo normale (livello AA) e 3:1 per il testo grande.
Come calcola WCAG il rapporto di contrasto? +
Rapporto di contrasto WCAG = (L1 + 0.05) / (L2 + 0.05), dove L1 è la luminanza relativa del colore più chiaro e L2 quella del colore più scuro. La luminanza relativa è calcolata da valori RGB linearizzati pesati: L = 0.2126R + 0.7152G + 0.0722B (dopo correzione gamma).
Qual è la differenza tra WCAG AA e AAA per il contrasto? +
AA richiede 4.5:1 per il testo normale e 3:1 per il testo grande (18pt+ o 14pt+ grassetto). AAA richiede 7:1 per il testo normale e 4.5:1 per il testo grande. AA è lo standard legale e pratico per la maggior parte dei contenuti web.
Il rapporto di contrasto si applica anche alle icone e alle immagini? +
Sì. Il criterio WCAG 2.1 1.4.11 (Contrasto non testuale) richiede che i componenti UI (bottoni, controlli form) e gli oggetti grafici informativi abbiano almeno 3:1 di contrasto rispetto ai colori adiacenti. Le immagini puramente decorative sono esentate.
Perché i colori brand spesso non soddisfano i requisiti di contrasto? +
I colori brand sono tipicamente scelti per il loro appeal estetico, non per la conformità al contrasto. I colori a saturazione media nella fascia di luminosità media (L: 40–60% in HSL) producono spesso rapporti di 2:1–3.5:1 su sfondo bianco. La soluzione è usare una variante più scura o più chiara del colore brand per il testo.
Il contrasto deve essere verificato separatamente per la modalità scura? +
Sì. Il contrasto deve essere valutato indipendentemente per ogni tema. Una coppia di colori che supera 4.5:1 su sfondo bianco potrebbe fallire su sfondo scuro se si usa la stessa tonalità senza regolare la luminosità. I sistemi di design che supportano doppio tema devono definire token di colore separati per ogni modalità.
Posso usare il verificatore di contrasto di PixCode per qualsiasi formato di colore? +
Lo strumento Color Contrast di PixCode accetta input HEX, RGB e HSL per entrambi i colori di primo piano e sfondo. Restituisce il rapporto di contrasto, lo stato di superamento/fallimento WCAG AA e AAA per il testo normale e grande, e la regolazione minima del colore necessaria per raggiungere la conformità.