Vai al contenuto
SilktideAiuto

Ruolo figlio ARIA mancante

Silktide controlla i widget contenitore creati con ruoli ARIA, come barre di schede, menu ed elenchi a discesa, e verifica che ciascuno contenga il tipo di elemento che dovrebbe ospitare. Una barra di schede senza schede, o un menu senza elementi di menu, viene annunciato come un widget, ma non offre nulla con cui interagire.

<!-- Problema: un tablist deve contenere elementi con role="tab" -->
<div role="tablist">
  <button>Panoramica</button>
</div>

<!-- Correzione: assegna ai figli il ruolo richiesto -->
<div role="tablist">
  <button role="tab">Panoramica</button>
</div>

Perché è importante

I ruoli compositi descrivono un widget nel suo insieme: tablist promette schede, listbox promette opzioni, menu promette elementi di menu. Gli passano a una navigazione specializzata per questi widget, aspettandosi i figli promessi. Quando i figli non hanno i ruoli corretti, il widget si annuncia e poi si comporta come un guscio vuoto: gli utenti possono raggiungerlo, ma non trovano nulla al suo interno, mentre gli utenti vedenti vedono un controllo perfettamente funzionante.

Come correggere il problema

  1. Aggiungi il ruolo richiesto a ogni elemento all'interno del contenitore, ad esempio role="tab" su ogni controllo all'interno di un role="tablist".
  2. Se gli elementi devono trovarsi altrove nel codice, collegali con aria-owns sul contenitore.
  3. Se il contenitore non è realmente quel tipo di widget, rimuovi o correggi il relativo ruolo.

Abbinamenti comuni: tablist richiede tab; listbox richiede option; menu e menubar richiedono menuitem (o le sue varianti checkbox e radio); radiogroup richiede radio; tree richiede treeitem; grid e table richiedono row; row richiede celle o intestazioni.

Come Silktide esegue il controllo

  1. Individua ogni elemento il cui ruolo ARIA richiede ruoli figlio specifici.
  2. Cerca tra i suoi discendenti, inclusi gli elementi adottati con aria-owns, almeno un elemento con un ruolo figlio richiesto.
  3. Segnala i contenitori in cui non ne viene trovato nessuno.

Risoluzione dei problemi

Gli elementi vengono caricati in un secondo momento da uno script

Silktide controlla la pagina durante il caricamento. Se un listbox o un menu viene popolato solo su richiesta, fino a quel momento viene annunciato come vuoto; quando possibile, visualizza almeno gli elementi iniziali insieme alla 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.

Per saperne di più

Ultimo aggiornamento

Questa pagina è stata utile?