ID aria-activedescendant mancante
Silktide controlla ogni attributo aria-activedescendant presente nelle tue pagine e verifica che l'ID dell'elemento a cui fa riferimento esista effettivamente. Questo attributo indica alla quale elemento all'interno di un widget, come un elenco a discesa, è attualmente evidenziato.
<!-- Problema: nessun elemento nella pagina ha id="opt-2" -->
<ul role="listbox" aria-activedescendant="opt-2">
<li role="option" id="opt-1">Prima opzione</li>
</ul>
Perché è importante
I widget come gli elenchi a discesa personalizzati, le caselle combinate e le griglie mantengono
sul contenitore e usano
l'attributo aria-activedescendant di per indicare
quale elemento al loro interno è attivo. Quando il riferimento punta a un ID che non
esiste, un utente di non sente
nulla mentre si sposta tra le opzioni: il widget sembra non avere
alcuna selezione, risultando inutilizzabile senza poter vedere.
Come risolvere il problema
- Fai in modo che l'attributo faccia riferimento all'
iddell'elemento attualmente attivo e aggiornalo quando l'utente si sposta all'interno del widget. - Se il widget esegue nuovamente il rendering dei suoi elementi, assicurati che i nuovi elementi mantengano
ID stabili oppure aggiorna
aria-activedescendantnella stessa operazione. - Rimuovi l'attributo se il widget non esiste più o gestisce direttamente il focus.
Come Silktide esegue il controllo
- Trova ogni elemento nella pagina con un attributo
aria-activedescendant. - Confronta l'ID a cui fa riferimento con gli ID degli elementi presenti nella pagina.
- Segnala ogni riferimento che non corrisponde ad alcun elemento.
Risoluzione dei problemi
La destinazione viene creata successivamente da uno script
Silktide controlla la pagina durante il caricamento. Se l'elemento a cui si fa riferimento esiste solo
dopo un'interazione dell'utente, nel frattempo il riferimento è comunque errato: imposta
aria-activedescendant solo quando la sua destinazione esiste.
Questo controllo non segnala nulla anche se mi aspettavo dei risultati
I test ARIA possono essere disattivati per ogni sito web. Controlla le impostazioni avanzate del sito web.