Impedir tabstop no elemento A (link âncora) em HTML

152

É possível cancelar uma <a href="...">interrupção de tabulação em qualquer navegador? Eu gostaria de fazer isso sem Javascript.

Robert Koritnik
fonte

Respostas:

265

Alguns navegadores suportam o tabindex="-1"atributo, mas não todos, pois esse não é um comportamento padrão.

Roberto Aloi
fonte
22
Oh, ótimo! Obrigado! Eu verifiquei com FF3.5, IE8 e CH3 e funciona nos três. Graças um milhão!
31416 Robert Koritnik
1
Não se preocupe com isso: assim como o zzzzBov afirma aqui , o HTML5 veio em socorro e padronizou essa funcionalidade. Então agora os navegadores culpados são aqueles que perdem isso.
TechNyquist
1
Lembre-se de que desativar o tabstop em um hiperlink contraria as regras de acessibilidade (por exemplo, pessoas que usam leitores de tela, etc.). Se você sabe que isso não é um problema para sua base de usuários, tudo bem.
Ricardo Sanchez
73

Navegadores modernos, compatíveis com HTML5, suportam o [tabindex]atributo , onde um valor de -1impedirá que o elemento seja tabulado.

Se o valor for um número inteiro negativo
O agente do usuário deve permitir que o elemento seja focado, mas não deve ser alcançado usando a navegação de foco sequencial.

zzzzBov
fonte
1
Trechos de documentação sempre ajudam. ;-) Isso nos diz que aqueles que não apóiam isso estão entre os poucos e provavelmente o apoiarão mais cedo ou mais tarde.
Robert Koritnik
15

Você pode aplicar um manipulador JQuery ao elemento que deseja direcionar vários elementos sem tabulação.

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

Seria uma maneira de fazê-lo ....

dtharpe
fonte
6

Eu acho que você poderia fazer isso por javascript, substituir o window.onkeypressou onkeydown, prender o botão tab e definir o foco na ordem desejada.

Ammosi
fonte
2
Não sei se você verificou outras respostas especialmente aceitas que foram respondidas há cerca de um ano e resolveu esse problema sem usar o Javascript.
Robert Koritnik
2
Agradeço a solução alternativa, mesmo que ela não atenda ao OP e à resposta aceita. Não há necessidade de ser depreciativo.
Anthony DiSanti
@ Anthony DiSanti: Isso é verdade, mas neste caso em particular ainda não vi por que alguém recorrer ao javascript se algo mais funciona melhor? Então, se não é uma resposta para esta pergunta, por que está aqui então? Deixa pra lá. Javascript é geralmente o último passo que você daria se certas coisas não pudessem ser feitas de outra maneira. E desculpe-me @Ammosi se eu te insultou. Eu não quis ser rude. Obrigado pela resposta tardia.
Robert Koritnik
7
Concordo em evitar o javascript se houver uma solução HTML ou CSS baseada em padrões. No entanto, neste caso, não há. O pôster original não precisava oferecer suporte a navegadores anteriores ao IE8 e FF3.5, mas, para o meu trabalho, preciso dar suporte ao IE6. A solução tabindex não é, portanto, aplicável. Fornecer a única solução de trabalho no navegador com a maior participação de mercado não deve ser desencorajado.
Anthony DiSanti
4

Remova o hrefatributo da sua marca de âncora

CodeDreamer68
fonte
e se eu não puder?
Hakan Fıstık
Se você estiver disposto a usar o javascript, apesar da pergunta para evitar esse tipo de solução, para remover atributos href, use o jquery document onload com algo como $('[href="whatever-the-url-is"]').removeAttr('href');
Jonas Lundman
6
LOL remover o href
quemeful