DOM-Reihenfolge

Die Bedeutung der DOM-Standardreihenfolge

Dave Gash
Dave Gash
Meggin Kearney
Meggin Kearney

Die Arbeit mit nativen Elementen ist eine gute Möglichkeit, mehr über das Fokusverhalten da sie automatisch auf Grundlage ihrer Daten in die -Position im DOM.

Angenommen, Sie haben drei Schaltflächenelemente, eines nach dem anderen im DOM. Wenn Sie Tab drücken, werden die einzelnen Schaltflächen der Reihe nach hervorgehoben. Klicken Sie auf den Codeblock unten, um den Startpunkt der Fokusnavigation zu verschieben, und dann Tab drücken, um den Fokus zu verschieben Schaltflächen anpassen.

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

Es ist jedoch wichtig zu beachten, dass es bei der Verwendung von CSS möglich ist, in einer Reihenfolge im DOM, aber in einer anderen Reihenfolge auf dem Bildschirm erscheinen. Für Wenn Sie beispielsweise eine CSS-Eigenschaft wie float verwenden, um eine Schaltfläche nach rechts zu verschieben, Die Schaltflächen werden auf dem Bildschirm in einer anderen Reihenfolge angezeigt. Aber da ihre Reihenfolge Das DOM und die Tab-Reihenfolge bleiben unverändert. Wenn Nutzende durch die werden die Schaltflächen in einer nicht intuitiven Reihenfolge fokussiert. Klicken Sie auf das Codeblock unten, um den Startpunkt der Fokusnavigation zu verschieben, und drücken Sie dann Tab, um den Fokus durch die Schaltflächen bewegen.

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

Seien Sie vorsichtig, wenn Sie die visuelle Position von Elementen auf dem Bildschirm mithilfe von CSS ändern. Dies kann dazu führen, dass die TAB-Reihenfolge zufällig herumspringt und verwirrend erscheint. Nutzenden, die auf die Tastatur angewiesen sind. Aus diesem Grund steht in der Web AIM-Checkliste in Abschnitt 1.3.2 die Lese- und Navigationsreihenfolge, die von der Codereihenfolge bestimmt wird, logisch und intuitiv ist.

Wechseln Sie in der Regel hin und wieder mit der Tabulatortaste durch Ihre Seiten, um sicherzustellen, die Tab-Reihenfolge nicht versehentlich durcheinandergebracht haben. Es ist eine gute Gewohnheit, die keinen großen Aufwand erfordert.

Nicht sichtbare Inhalte

Was ist, wenn Sie Inhalte haben, die derzeit nicht angezeigt werden, im DOM, wie z. B. eine responsive seitliche Navigationsleiste? Wenn Sie solche Elemente haben, fokussiert werden, wenn sie sich außerhalb des Bildschirms befinden, kann es so wirken, als ob der Fokus verschwindet und wieder erscheint, wenn die Nutzenden sich durch die Seite bewegen. einen unerwünschten Effekt haben. Idealerweise sollte das Gremium daran gehindert werden, wenn sie sich außerhalb des Bildschirms befindet, und fokussiert nur dann, wenn der Nutzer mit der Anzeige interagieren kann damit verbunden.

Ein eingeschobenes Steuerfeld kann den Fokus auf sich ziehen.

Manchmal muss man erst ein bisschen detektiv vorgehen, um herauszufinden, nicht mehr verfügbar. Sie können document.activeElement in der Konsole verwenden, um herauszufinden, Element aktuell fokussiert ist.

Sobald Sie wissen, welches Element außerhalb des Bildschirms fokussiert wird, können Sie display: none oder visibility: hidden und dann auf display: block oder visibility: visible zurücksetzen, bevor sie dem Nutzer angezeigt wird.

Ein eingeschobenes Steuerfeld, das so eingestellt ist, dass keine angezeigt wird.
Ein eingeschobenes Steuerfeld, das so eingestellt ist, dass ein Block angezeigt wird.

Im Allgemeinen empfehlen wir Entwicklern, vor jeder einzelnen damit die TAB-Reihenfolge nicht verschwindet oder aus einer logischen Sequenz hinzufügen. Ist dies der Fall, blenden Sie nicht sichtbare Inhalte mit display: none oder visibility: hidden Elemente neu anordnen physische Positionen im DOM, sodass sie in einer logischen Reihenfolge.