Dal glossario dell'accessibilità

AccessiWeb: il web accessibile e inclusivo

C

Cookie banner (accessibilità)

Informativa e scelta cookie con focus gestibile da tastiera, ruoli ARIA appropriati e testi comprensibili.

Definizione — Il cookie banner è il componente che informa su finalità e uso dei cookie e raccoglie il consenso. Dal punto di vista dell’accessibilità deve essere utilizzabile da tutte le persone, anche con tecnologie assistive, senza barriere: operabile da tastiera, correttamente annunciato dai lettori di schermo, leggibile (contrasto, testo), navigabile in modo logico e responsive.

Requisiti essenziali (WCAG 2.1 / EN 301 549)

  • Tastiera (2.1.1): tutte le azioni (Accetta, Rifiuta, Personalizza) devono essere raggiungibili e attivabili con Tab/Shift+Tab/Enter/Space.
  • Focus visibile (2.4.7) e ordine di focus (2.4.3): il focus entra nel banner all’apertura e non “salta” elementi.
  • Nome, Ruolo, Valore (4.1.2) e Label in Name (2.5.3): i bottoni hanno etichette chiare; l’accessible name contiene il testo visibile (es. “Accetta tutti i cookie”).
  • Contrasto (1.4.3) e reflow (1.4.10): leggibile a 200–400% senza perdita di contenuti, senza scroll orizzontale su testo.
  • Informazioni e relazioni (1.3.1): titoli, liste e gruppi di controlli correttamente marcati; uso prudente di ARIA.

UX inclusiva (niente dark pattern)

  • Scelte equivalenti: “Accetta tutti” e “Rifiuta tutti” con pari evidenza (stile, dimensione, posizione). “Personalizza” per consenso granulare.
  • Persistenza e revoca: pulsante “Preferenze cookie” sempre disponibile (es. in footer) per riaprire il pannello.
  • Testi chiari: linguaggio semplice, finalità in elenco, link all’informativa estesa.

Marcatura consigliata (dialog accessibile)

<div id="cookie-banner" role="dialog" aria-modal="true"
     aria-labelledby="cb-title" aria-describedby="cb-desc">
  <h2 id="cb-title">Preferenze cookie</h2>
  <p id="cb-desc">Usiamo cookie per analisi e personalizzazione.
     Puoi accettare, rifiutare o scegliere le finalità.</p>

  <div role="group" aria-labelledby="cb-purpose-title">
    <h3 id="cb-purpose-title">Finalità</h3>
    <ul>
      <li>
        <label><input type="checkbox" name="analytics"> Analytics</label>
      </li>
      <li>
        <label><input type="checkbox" name="ads"> Pubblicità</label>
      </li>
    </ul>
  </div>

  <div class="actions">
    <button type="button" id="cb-reject">Rifiuta tutti</button>
    <button type="button" id="cb-accept">Accetta tutti</button>
    <button type="button" id="cb-save">Salva preferenze</button>
  </div>
</div>

<button id="cookie-prefs" aria-haspopup="dialog">Preferenze cookie</button>

Comportamento minimo (JS)

  • All’apertura: sposta il focus al titolo del dialog; abilita Esc solo se è presente una scelta equivalente di rifiuto.
  • Trappola del focus nel dialog finché l’utente non conferma; usa inert sul body (o aria-hidden come fallback) per disattivare lo sfondo.
  • Dopo la scelta: restituisci il focus all’elemento che lo aveva (es. bottone “Preferenze cookie”).
  • Non attivare script opzionali prima del consenso; applica preferenze anche al reload.

Errori comuni

  • Mancanza del pulsante “Rifiuta tutti” o reso meno visibile (contrasto/posizionamento).
  • Dialog non etichettato (mancano aria-labelledby/aria-describedby) o non raggiungibile da tastiera.
  • Testo minuscolo/contrasto insufficiente; controlli troppo piccoli su mobile.
  • Focus che “scappa” dietro al banner; impossibile chiudere/personalizzare da tastiera.

Checklist rapida

  • Operabile al 100% da tastiera con focus visibile.
  • Etichette chiare e “Label in Name”.
  • Accetta/Rifiuta/Personalizza con pari evidenza.
  • Reflow e contrasto conformi WCAG; riapertura preferenze sempre disponibile.

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
Parla con un esperto di accessibilità

Ultimi articoli dal blog

Scopri il widget per l'accessibilità web

AccessiWeb

Soluzioni per un web accessibile e inclusivo

Inizia la tua prova gratuita