L'ordine DOM è importante

L'importanza dell'ordine DOM predefinito

Dave Gash
Dave Gash
Meggin Kearney
Meggin Kearney

Lavorare con gli elementi nativi è un ottimo modo per conoscere il comportamento dell'attenzione perché vengono inseriti automaticamente nell'ordine di tabulazione in base alla loro posizione nel DOM.

Ad esempio, potresti avere tre elementi di pulsante, uno dopo l'altro nel DOM. Premendo Tab viene attivato ogni pulsante in ordine. Prova a fare clic sul blocco di codice di seguito per spostare il punto di partenza della navigazione con lo stato attivo, quindi premi Tab per spostare lo stato attivo tra i pulsanti.

<button>I Should</button>
<button>Be Focused</button>
<button>Last!</button>

Tuttavia, è importante notare che, utilizzando CSS, è possibile avere elementi in un ordine nel DOM, ma visualizzarli in un ordine diverso sullo schermo. Ad esempio, se utilizzi una proprietà CSS come float per spostare un pulsante verso destra, i pulsanti vengono visualizzati sullo schermo in un ordine diverso. Tuttavia, poiché l'ordine nel DOM rimane invariato, lo stesso vale per l'ordine delle schede. Quando l'utente passa da una scheda all'altra della pagina, i pulsanti diventano attivi in un ordine non intuitivo. Prova a fare clic sul blocco di codice di seguito per spostare il punto di partenza della navigazione con lo stato attivo, quindi premi Tab per spostare lo stato attivo tra i pulsanti.

<button style="float: right">I Should</button>
<button>Be Focused</button>
<button>Last!</button>

Fai attenzione quando modifichi la posizione visiva degli elementi sullo schermo utilizzando il CSS. Ciò può causare un salto dell'ordine delle schede, apparentemente in modo casuale, confondendo gli utenti che si affidano alla tastiera. Per questo motivo, la lista di controllo AIM web afferma nella sezione 1.3.2 che l'ordine di lettura e navigazione, come stabilito dall'ordine del codice, deve essere logico e intuitivo.

Come regola generale, prova a passare da una pagina all'altra di tanto in tanto per assicurarti di non aver scombinato accidentalmente l'ordine delle schede. È una buona abitudine da adottare, e non richiede molto impegno.

Contenuti fuori schermo

Cosa succede se hai contenuti che al momento non vengono visualizzati, ma devono comunque essere nel DOM, ad esempio un menu laterale adattabile? Quando hai elementi come questo che recebemo il focus quando non sono sullo schermo, può sembrare che il focus scompaia e riappaia mentre l'utente scorre la pagina, un effetto chiaramente indesiderato. Idealmente, dovremmo impedire al riquadro di acquisire il focus quando è fuori dallo schermo e consentirgli di acquisire il focus solo quando l'utente può interagire con esso.

Un riquadro a scorrimento laterale offscreen può rubare lo stato attivo.

A volte è necessario fare un po' di lavoro investigativo per capire dove è andato il focus. Puoi utilizzare document.activeElement dalla console per capire quale elemento è attualmente selezionato.

Una volta che sai quale elemento off screen è attivo, puoi impostarlo su display: none o visibility: hidden, quindi ripristinarlo su display: block o visibility: visible prima di mostrarlo all'utente.

Un riquadro scorrevole impostato per non visualizzare nulla.
Un riquadro a scorrimento laterale impostato su blocco della visualizzazione.

In generale, invitiamo gli sviluppatori a passare da una scheda all'altra dei loro siti prima di ogni pubblicazione per verificare che l'ordine delle schede non scompaia o non esca da una sequenza logica. In questo caso, assicurati di nascondere adeguatamente i contenuti offscreen con display: none o visibility: hidden oppure di riorganizzare le posizioni fisiche degli elementi nel DOM in modo che siano in un ordine logico.