2015-06-09 6 views
5

Ich arbeite an einer Web-App, und einer der wiederholten a (Anker) -Elemente bekommt nicht den Tastaturfokus, wenn ich die Seite durchblättere. Nur wenn ich tabindex=0 hinzufüge kann ich es tab.Warum sollte ein `a` Tag` tabindex = 0` brauchen?

(Obwohl mein Ziel im Fokus sichtbar zu machen ist, ich bin zu bestimmen, ob ein Element, indem Sie einen Ausschnitt von jQuery konzentrieren wird:

// Whenever I hit tab, show me which element has focus 
$('main').on('keydown',function(e) { 
    var keyCode = e.keyCode || e.which; 

    if (keyCode == 9) { 
    console.log("focus is now on ", $(':focus')); 
    } 
}); 

)

Das verwirrt mich. Nach , "Das Tabindex-Attribut kann auch jedes Element in interaktiven Inhalt machen" - aber a ist eine der Listen, die sie standardmäßig als interaktiv auflisten.

Und wieder von einem Zugänglichkeit Artikel:

A [tabindex] Wert von 0 bedeutet, dass das Element in der Standardnavigations Reihenfolge platziert werden soll. Auf diese Weise können Elemente, die nicht nativ fokussierbarem (wie <div>, <Spannweite> und <p>) sind Tastaturfokus zu erhalten. Natürlich sollte man in der Regel verwenden, Links und Formular-Steuerelemente für alle interaktiven Elemente ... (http://webaim.org/techniques/keyboard/tabindex)

Was ein Ankerelement dazu führen würde, wie ich Reiter durch die interaktiven Elemente einer Seite zu überspringen?

+7

Hat das a-Tag eine href? Wenn seine Interaktivität nur von Javascript kommt, könnte das erklären. – Katana314

+0

Related: [Element aus Tab-Index entfernen] (http://stackoverflow.com/questions/5192859/html-remove-element-from-tab-index) – GolezTrol

+1

Es kann eine Vielzahl von Gründen geben. Bitte zeigen Sie uns, welche Eigenschaften die '' Tags haben, die nicht tabbieren. –

Antwort

0

Wenn ein Tabindex von "-1" verwendet wird, ist das Element, auf das es angewendet wird, nicht mehr auf die Tastatur fokussierbar.

Sie können die W3C specification dafür überprüfen.