2017-02-06 2 views
1

Dies ist eher eine historische oder warum Frage.Warum ist tabindex standardmäßig auf 1, aber nicht auf Schaltflächen?

Im Gegensatz zu Knöpfen neigen Links dazu, einen tabIndex von -1 als Standardwert zu haben. Ich weiß, das ist, weil:

https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex

Wenn nicht angegeben Standardwert ist -1

Aber Tasten haben eine tabIndex automatisch, so ist die Frage: Was ist die Begründung war, hinter der Entscheidung, dass Links sollten nicht eine tabIndex größer als 0 haben? Daher sollte der Tab-Schlüssel die Links in einem Standardzustand ignorieren.

+1

Ich mache das die ganze Zeit. Ich stelle oft Links in Demos ein, nur damit es auf der Seite einen weiteren Tabstop gibt. Hast du ein Video davon, das nicht für dich funktioniert? Wenn der Link nicht "href" hat, dann ist es kein Link, es ist ein Anker und existiert nicht in der Tab-Reihenfolge. – aardrian

Antwort

2

HTML 5.1¹ definiert, welche Benutzeragenten tun sollten, wenn die tabindex attribute weggelassen:

Der User-Agent-Plattform Konventionen folgen sollte, um zu bestimmen, ob das Element des tabindex focus flag gesetzt ist [...]

Die spec schlägt einige Elemente vor, die dieses Flag erhalten sollen, einschließlich a Elemente (solange sie ein href Attribut haben) und button Elemente.

So User-Agents, die die Spezifikation des recommendation² folgen keinen Unterschied zwischen a und button Elemente in Bezug auf die Standardfokusverhalten machen.

Ich bin mir nicht sicher, warum die verknüpfte MDN-Seite die zitierte Anweisung enthält Vielleicht ist es ein Missverständnis dessen, was die Spezifikation über das tabIndex IDL-Attribut aussagt?

Das IDL-Attribut tabIndex muss den Wert des Inhaltsattributs tabindex widerspiegeln. Der Standardwert ist 0 für Elemente, die fokussierbar sind, und -1 für Elemente, die nicht fokussierbar sind.


¹ 5.1 HTML ist, ab sofort, die neuesten W3C-Empfehlung. Aber vorherige HTML W3C Empfehlungen und WHATWGs HTML Living Standard definieren diesen Aspekt wahrscheinlich nicht anders als w.r.t. zu a und button.

² Es ist keine Voraussetzung, da die Spezifikation verwendet sollte statt muss.

1

Die von Ihnen angegebene MDN-Seite ist die Definition des globalen Attributs tabindex. Dies gilt nicht speziell für button oder Links.

Tatsächlich tabindex kann vier Arten von Werten haben:

  • wenn nicht gesetzt: das Element nicht programmatisch fokussiert werden kann, mit der Tastatur oder mit der Maus
  • -1: das Element fokussiert werden kann, programmatisch oder mit der Maus
  • 0: das Element programmatisch fokussiert werden kann, mit der Tastatur oder mit der Maus
  • jeden Wert >0: nicht diese verwenden. Noch nie. Nicht zugänglich.

Die Standardwerte für die Link (a[href] und button) oder andere interaktive Elemente (wie Formularfelder) ist 0

Die Behauptung, dass der Standardwert für jedes andere Element ist -1 falsch ist. Der Standard "Wert" für diese anderen Elemente ist, dieses Attribut nicht zu definieren.

Verwandte Themen