Zapobiegaj zatrzymaniu tabulacji w elemencie A (łączu kotwicy) w HTML


152

Czy można anulować <a href="...">przechodzenie na kartę w dowolnej przeglądarce? Chciałbym to zrobić bez Javascript.

Odpowiedzi:


265

Niektóre przeglądarki obsługują ten tabindex="-1"atrybut, ale nie wszystkie, ponieważ nie jest to standardowe zachowanie.


22
Świetnie! Dzięki! Sprawdziłem z FF3.5, IE8 i CH3 i działa we wszystkich trzech. Stukrotne dzięki!
Robert Koritnik

1
Nie martw się o to: tak jak stwierdza tutaj zzzzBov , HTML5 przyszedł na ratunek i ujednolicił tę funkcjonalność. Więc teraz winne przeglądarki to te, które tęsknią.
TechNyquist

1
Należy pamiętać, że wyłączenie tabulatora na hiperłączu jest sprzeczne z regułami dostępności (np. Osoby korzystające z czytników ekranu itp.). Jeśli wiesz, że nie stanowi to problemu dla Twojej bazy użytkowników, powinno być dobrze.
Ricardo Sanchez

73

Nowoczesne, zgodne ze standardem HTML5 przeglądarki obsługują [tabindex]atrybut , w przypadku którego wartość -1uniemożliwia przypisanie elementu do karty.

Jeśli wartość jest ujemną liczbą całkowitą Klient
użytkownika musi umożliwiać skupienie się na elemencie, ale nie powinien pozwalać na dotarcie do elementu za pomocą sekwencyjnej nawigacji fokusu.


1
Fragmenty dokumentacji zawsze pomagają. ;-) To mówi nam, że ci, którzy tego nie wspierają, są jednymi z nielicznych i prawdopodobnie poprą to wcześniej czy później.
Robert Koritnik

15

Możesz zastosować procedurę obsługi JQuery do elementu, który chcesz kierować na wiele elementów bez tabulacji.

$(document).ready(function () {
    $('.class').attr('tabindex', '-1');
});

Byłby to jeden sposób ....


6

Myślę, że mógłbyś to zrobić za pomocą javascript, nadpisując window.onkeypresslub onkeydown, przechwytuj przycisk tabulatora i ustawiając fokus w żądanej kolejności.


2
Nie wiem, czy sprawdziłeś inne odpowiedzi, szczególnie zaakceptowałeś tę, na którą odpowiedział około rok temu i rozwiązałeś ten problem bez użycia Javascript.
Robert Koritnik

2
Doceniam alternatywne rozwiązanie, nawet jeśli nie odnosi się do PO i zaakceptowanej odpowiedzi. Nie ma potrzeby lekceważyć.
Anthony DiSanti

@Anthony DiSanti: To prawda, ale w tym konkretnym przypadku nadal nie rozumiem, dlaczego ktoś miałby uciekać się do javascript, jeśli coś innego działa lepiej? Więc jeśli to nie jest odpowiedź na to pytanie, dlaczego jest tutaj? Nieważne. Javascript jest zwykle ostatnim krokiem, który należy wykonać, jeśli pewnych rzeczy nie można zrobić inaczej. Przepraszam @Ammosi, jeśli cię obraziłem. Nie chciałem być niegrzeczny. Dzięki za późną odpowiedź.
Robert Koritnik

7
Zgadzam się z unikaniem javascript, jeśli istnieje oparte na standardach rozwiązanie HTML lub CSS. Jednak w tym przypadku tak nie jest. Oryginalny plakat nie musiał obsługiwać przeglądarek starszych niż IE8 i FF3.5, ale w mojej pracy muszę obsługiwać ponownie IE6. Dlatego rozwiązanie tabindex nie ma zastosowania. Nie należy zniechęcać do dostarczania jedynego działającego rozwiązania w przeglądarce z największym udziałem w rynku.
Anthony DiSanti

4

Usuń hrefatrybut z tagu kotwicy


co jeśli nie mogę?
Hakan Fıstık

Jeśli chcesz używać javascript pomimo pytania, aby uniknąć tego rodzaju rozwiązań, aby usunąć atrybuty href, użyj jquery document onload z czymś w rodzaju$('[href="whatever-the-url-is"]').removeAttr('href');
Jonas Lundman.

6
LOL usuń href
quemeful
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.