Definizione — I ruoli ARIA (Accessible Rich Internet Applications) descrivono la funzione di un elemento per le tecnologie assistive. Insieme a stati e proprietà (aria-*) permettono di rendere accessibili componenti custom (tab, menù, dialog, slider). Regola d’oro: prima l’HTML semantico; usa ARIA solo quando il tag nativo non è sufficiente.
Esempi di ruoli comuni
role="button" — pulsante (da preferire <button> nativo).
role="navigation" — area di navigazione (meglio <nav>).
role="dialog" + aria-modal="true" — finestra modale, con focus gestito.
role="tablist", role="tab", role="tabpanel" — interfaccia a schede (con roving tabindex).
role="listbox"/option — liste selezionabili; role="menu"/menuitem per veri menù applicativi.
role="status" / role="alert" — messaggi live (aria-live implicito: polite/assertive).
role="progressbar", role="switch", role="tooltip" — componenti di stato/feedback.
Stati e proprietà (sincronizzazione)
aria-expanded per elementi che si aprono/chiudono (accordion, menù); aggiorna sempre il valore su click/tastiera.
aria-selected per tab e opzioni; aria-pressed per pulsanti a stato.
aria-controls per associare il trigger al pannello controllato; aria-labelledby/aria-label per il nome accessibile.
Pattern essenziali
Tablist (principio)
<div role="tablist">
<button role="tab" aria-selected="true" aria-controls="p1" id="t1" tabindex="0">Profilo</button>
<button role="tab" aria-selected="false" aria-controls="p2" id="t2" tabindex="-1">Impostazioni</button>
</div>
<section id="p1" role="tabpanel" aria-labelledby="t1">…</section>
<section id="p2" role="tabpanel" aria-labelledby="t2" hidden>…</section>
Dialog modale
<div role="dialog" aria-modal="true" aria-labelledby="dlg-title">
<h2 id="dlg-title">Preferenze</h2>
<button>Chiudi</button>
</div>
Buone pratiche
- Preferisci sempre elementi nativi (
button, nav, main, details/summary).
- Nome/ruolo/stato (WCAG 4.1.2) devono riflettere il comportamento reale e aggiornarsi al variare dell’UI.
- Gestisci la tastiera secondo i pattern WAI-ARIA Authoring Practices (Tab, frecce, Home/End, Esc).
- Evita ARIA superflua o errata (es.
role="button" su un link che porta a una pagina).
Errori comuni
- Usare ARIA per “truccare” semantica mancante (div-bottoni) invece di correggere il markup.
- Non aggiornare
aria-expanded/aria-selected quando cambia lo stato.
- Ruoli in conflitto con l’elemento nativo (es.
role="navigation" su <section> generica).
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