2015-06-09 20 views
5

Pracuję nad aplikacją internetową, a jeden z powtarzających się elementów a (zakotwiczenia) nie uzyskuje ostrości klawiatury, kiedy przechodzę przez tę stronę. Tylko jeśli dodaję tabindex=0, mogę go ustawić.Dlaczego tag `a` musiałby mieć` tabindex = 0`?

(Choć moim celem jest, aby skupić widoczny, jestem stwierdzenia, czy element zostanie skupić za pomocą urywek jQuery:

// 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')); 
    } 
}); 

)

To mnie niepokoi. Zgodnie z the specs, "atrybut tabindex może również uczynić dowolny element interaktywną treścią" - ale a jest jedną z tych, które domyślnie wyświetlają jako interaktywne.

I znowu, z artykułu Dostępność:

A [tabindex] Wartość 0 wskazuje, że element powinien być umieszczony w domyślnej kolejności nawigacji. Pozwala to elementy, które są nie natywnie aktywowana (takich jak <div>, < rozpiętość > i <p>), aby otrzymać klawiaturę. Oczywiście należy zazwyczaj używają łącza i kontrolki formularzy dla wszystkich elementów interaktywnych ... (http://webaim.org/techniques/keyboard/tabindex)

Co spowodowałoby element kontrolny, aby zostać pominięte jako kartę I za pośrednictwem interaktywnych elementów strony?

+7

Czy tag ma href? Jeśli jego interaktywność pochodzi wyłącznie z javascript, to może to wyjaśnić. – Katana314

+0

Powiązane: [Usuń element z indeksu kart] (http://stackoverflow.com/questions/5192859/html-remove-element-from-tab-index) – GolezTrol

+1

Może być wiele różnych powodów. Pokaż nam, jakie właściwości mają tagi '', które nie są tabulatorem. –

Odpowiedz

0

Jeśli użyto tabindeksu "-1", element, do którego jest zastosowany, nie będzie już mógł być ustawiany za pomocą klawiatury.

Możesz sprawdzić dla niego W3C specification.

Powiązane problemy