Dal glossario dell'accessibilità

AccessiWeb: il web accessibile e inclusivo

O

Operabilità da tastiera

Possibilità di usare interfacce senza mouse, con Tab/Shift+Tab e scorciatoie coerenti.

Definizione — L’operabilità da tastiera garantisce che ogni funzione di una pagina o applicazione sia raggiungibile e attivabile senza mouse, usando i comandi standard (Tab/Shift+Tab per muovere il focus, Enter/Space per attivare, frecce per spostarsi in controlli composti). È richiesta da WCAG 2.1.1 Keyboard (A) e si collega a 2.4.3 Ordine di focus, 2.4.7 Focus visibile, 4.1.2 Nome, Ruolo, Valore e 2.5.3 Label in Name.

Pattern fondamentali

  • Usa elementi nativi: <button>, <a>, <input>, <details>/<summary>. Evita “div-bottoni”: richiedono JS extra per gestire tastiera e stato ARIA.
  • Gestione del focus: ordine DOM coerente con la lettura; niente tabindex>0 diffuso; usa :focus-visible per indicatori chiari.
  • Componenti complessi: implementa i pattern WAI-ARIA APG (roving tabindex per tablist/menù/slider) e sincronizza gli aria-* con lo stato reale.
  • Niente trappole: evita/risolvi le keyboard trap; i modali devono potersi chiudere con Esc e bottone “Chiudi”.
  • Nome accessibile: il testo visibile deve far parte del nome accessibile del controllo (2.5.3), es. “Cerca” → “Cerca”.

Esempi

Pulsante vero (consigliato)

<button type="button">Apri menu</button>

Se devi proprio creare un “div-bottone” (sconsigliato)

<div role="button" tabindex="0" aria-pressed="false">Apri menu</div>
<script>
  const btn = document.querySelector('[role="button"]');
  function activate(e){ if(e.type==='click' || e.key==='Enter' || e.key===' ') { /* azione */ e.preventDefault(); } }
  btn.addEventListener('click', activate);
  btn.addEventListener('keydown', activate);
</script>

Tablist con roving tabindex (principio)

<div role="tablist">
  <button role="tab" aria-selected="true" tabindex="0">Profilo</button>
  <button role="tab" aria-selected="false" tabindex="-1">Impostazioni</button>
</div>
<div role="tabpanel">…</div>

Test rapidi

  • Naviga la pagina con Tab/Shift+Tab: puoi raggiungere tutti i controlli? l’ordine è logico?
  • Attiva i controlli con Enter/Space: funzionano come con il click?
  • Apri un dialog: c’è focus visibile, chiusura con Esc e ritorno al trigger?

Errori comuni

  • Affidarsi a JS che intercetta Tab impedendo l’uscita da componenti.
  • Usare link come bottoni (o viceversa), perdita di semantica e comportamenti attesi.
  • Controlli non focusabili, indicatori di focus rimossi, ordine di focus che segue il layout visivo ma non il DOM.

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

Immagine stilizzata che rappresenta disabilità visive, uditive, motorie e percettive

AccessiWeb

Soluzioni per un web accessibile e inclusivo

Inizia la tua prova gratuita