aria-disabled
Indica che un controllo è percepibile e ricevibile dal focus ma non risponde all'input dell'utente. Si preferisca l'attributo nativo HTML disabled quando disponibile; si ricorra ad aria-disabled quando è necessario che l'elemento rimanga focusable o possa ricevere un tooltip.
Quando utilizzarlo
Quando un pulsante, un link, un campo di input o un widget composito è attualmente inoperabile ma deve comunque comparire nell’ordine di tabulazione affinché gli utenti possano scoprirlo e capire perché è disabilitato. Si imposti aria-disabled="true" e si applichi uno stile visivo che renda inequivocabile lo stato disabilitato.
Confronto con gli attributi correlati:
- HTML
disabled(su<button>,<input>,<select>,<textarea>,<fieldset>) — rimuove il controllo dall’ordine di tabulazione, ignora i clic e impedisce che il valore venga inviato. Si utilizzi quando l’utente non ha nulla da fare con il controllo. aria-disabled="true"— lo screen reader annuncia «attenuato» / «non disponibile», ma l’elemento rimane focusable. È necessario anche impedire l’esecuzione del gestore del clic. Si utilizzi su widget personalizzati, su tag<a>(che non accettanodisabled) o quando lo stato disabilitato richiede un tooltip che ne spieghi il motivo.aria-readonly— il valore non può essere modificato ma il controllo è ancora operabile e focusable. L’utente può copiarlo e il form continuerà a inviarlo.aria-hidden— rimuove completamente l’elemento dall’albero di accessibilità. Obiettivo diverso: nascosto, non disabilitato.
Come mantenerlo sincronizzato
I valori validi sono "true" e "false". Si ometta o si imposti su "false" quando il controllo è abilitato — non è necessario rendere aria-disabled="false" su ogni controllo attivo.
Con aria-disabled="true":
- Si blocchi l’esecuzione del gestore del clic. L’attributo non blocca gli eventi autonomamente.
- Si impedisca l’attivazione da tastiera predefinita (Enter, Space).
- Ci si assicuri che lo stile visivo renda evidente lo stato disabilitato; si verifichi che soddisfi ancora il criterio WCAG 1.4.11 sul contrasto non testuale (l’aspetto disabilitato è esplicitamente esente, ma un segnale visivo chiaro rimane comunque la pratica migliore).
Errori comuni
- Utilizzare
aria-disabled="true"senza bloccare il gestore del clic — l’elemento appare attenuato ma esegue comunque la sua azione. - Usare sia
disabledchearia-disabledsullo stesso elemento. L’attributo nativo espone già lo stato; il duplicato è ridondante. - Usare
aria-disabledsu<a>senza rimuovere anchehrefo impedire il comportamento predefinito — il link naviga comunque. - Disabilitare i controlli senza spiegarne il motivo. WCAG 3.3.1 prevede un messaggio di errore o un’istruzione.
- Confondere
aria-disabledconaria-hidden. Gli elementi disabilitati rimangono nell’albero di accessibilità; quelli nascosti scompaiono.
Esempio
<button type="submit" aria-disabled="true" aria-describedby="submit-help">
Submit order
</button>
<p id="submit-help">Add at least one item to your cart to enable submit.</p>