Attributo ARIA obbligatorio mancante
Silktide controlla gli elementi che dichiarano un ruolo ARIA e verifica che forniscano anche gli attributi richiesti da quel ruolo. Alcuni ruoli sono inutilizzabili senza i relativi attributi, come nel caso di un cursore che non indica mai il valore su cui è impostato.
<!-- Problema: un cursore deve esporre il proprio valore corrente -->
<div role="slider" tabindex="0"></div>
<!-- Soluzione: fornisci lo stato obbligatorio -->
<div role="slider" tabindex="0"
aria-valuemin="0" aria-valuemax="100" aria-valuenow="50"></div>
Perché è importante
Assegnare a un elemento un ruolo è una promessa: "questo è un cursore", "questa è una casella di controllo". Ruoli di questo tipo richiedono attributi di stato perché, senza di essi, la promessa è vuota: un utente di arriva su una casella di controllo e non può sapere se è selezionata, oppure su un cursore e non può sapere quale sia il suo valore o intervallo. Il controllo viene annunciato, è raggiungibile tramite il focus, ma è impossibile da usare.
Come correggere il problema
- Aggiungi gli attributi richiesti dal ruolo e mantienili aggiornati tramite script quando cambia lo stato del controllo: un
aria-checked="false"statico su una casella di controllo funzionante è fuorviante tanto quanto la sua completa assenza. - Quando possibile, preferisci gli elementi nativi:
<input type="checkbox">e<input type="range">espongono automaticamente il proprio stato, senza dover gestire ARIA.
Come Silktide esegue questo controllo
- Trova ogni elemento della pagina che dichiara un attributo
role. - Cerca gli attributi richiesti da ARIA 1.2 per quel ruolo: ad esempio,
role="checkbox"richiedearia-checkederole="slider"richiedearia-valuenow. - Ignora i casi in cui l'elemento espone lo stato in modo nativo: una vera casella di controllo o un vero pulsante di opzione contiene già il proprio stato di selezione, un
<option>nativo contiene il proprio stato di selezione e un cursore conaria-valuetextpuò ometterearia-valuenow. - Segnala ogni elemento a cui manca un attributo obbligatorio.
Risoluzione dei problemi
Uno script imposta l'attributo dopo il caricamento della pagina
Silktide controlla la pagina durante il caricamento. Se il widget aggiunge gli attributi di stato solo alla prima interazione, fino a quel momento gli utenti sentiranno un controllo privo di stato: inserisci invece lo stato iniziale direttamente nella pagina.
Questo controllo non segnala nulla anche se mi aspetto dei risultati
I controlli ARIA possono essere disattivati per ogni sito web. Controlla le impostazioni avanzate del sito web.