Evitar la detención de tabulación en un elemento A (enlace de anclaje) en HTML

152

¿Es posible cancelar un <a href="...">bloqueo de pestañas en cualquier navegador? Me gustaría hacer esto sin Javascript.

Robert Koritnik
fuente

Respuestas:

265

Algunos navegadores admiten el tabindex="-1"atributo, pero no todos, ya que este no es un comportamiento estándar.

Roberto Aloi
fuente
22
¡Oh, genial! ¡Gracias! Lo he comprobado con FF3.5, IE8 y CH3 y funciona en los tres. ¡Un millón de gracias!
Robert Koritnik el
1
No se preocupe por esto: al igual que zzzzBov dice aquí , HTML5 acudió al rescate y estandarizó esta funcionalidad. Así que ahora los navegadores culpables son los que se pierden esto.
TechNyquist
1
Tenga en cuenta que deshabilitar el tabulador en un hipervínculo va en contra de las reglas de accesibilidad (por ejemplo, personas que usan lectores de pantalla, etc.). Si sabe que esto no es un problema para su base de usuarios, entonces debería estar bien.
Ricardo Sanchez
73

Los navegadores modernos, compatibles con HTML5, admiten el [tabindex]atributo , donde un valor de -1evitará que se tabule el elemento.

Si el valor es un entero negativo
El agente de usuario debe permitir que el elemento se enfoque, pero no debe permitir que se llegue al elemento utilizando la navegación de enfoque secuencial.

zzzzBov
fuente
1
Los extractos de documentación siempre ayudan. ;-) Esto nos dice que aquellos que no lo apoyan se encuentran entre los pocos y probablemente lo admitirán tarde o temprano.
Robert Koritnik
15

Puede aplicar un controlador JQuery al elemento que desea apuntar a múltiples elementos sin tabulación.

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

Sería una forma de hacerlo ...

dtharpe
fuente
6

Creo que podría hacer esto mediante javascript, anular window.onkeypresso onkeydown, atrapar el botón de tabulación y establecer el foco en el orden deseado.

Ammosi
fuente
2
No sé si ha marcado otras respuestas, aceptó especialmente una que fue respondida hace aproximadamente un año y resolvió este problema sin usar Javascript.
Robert Koritnik
2
Aprecio la solución alternativa, incluso si no aborda el OP, así como la respuesta aceptada. No hay necesidad de ser despectivo.
Anthony DiSanti
@Anthony DiSanti: Eso es cierto, pero en este caso en particular todavía no veo por qué recurriría a JavaScript si algo más funciona mejor. Entonces, si no es una respuesta a esta pregunta, ¿por qué está aquí? No importa. Javascript es generalmente el último paso que se tomaría si no se pueden hacer ciertas cosas de otra manera. Y lo siento @ Ammosi si te he insultado. No quise ser grosero. Gracias por la respuesta tardía.
Robert Koritnik
77
Estoy de acuerdo en evitar JavaScript si hay una solución HTML o CSS basada en estándares. Sin embargo, en este caso no lo hay. El póster original no necesitaba admitir navegadores antes de IE8 y FF3.5, pero para mi trabajo necesito admitir de nuevo a IE6. Por lo tanto, la solución de tabindex no es aplicable. No debe desaconsejarse proporcionar la única solución de trabajo en el navegador con la mayor cuota de mercado.
Anthony DiSanti
4

Eliminar el hrefatributo de su etiqueta de anclaje

CodeDreamer68
fuente
¿Y si no puedo?
Hakan Fıstık
Si está dispuesto a usar JavaScript a pesar de la pregunta para evitar ese tipo de soluciones, para eliminar los atributos href, use la carga de documentos jquery con algo como$('[href="whatever-the-url-is"]').removeAttr('href');
Jonas Lundman
66
LOL eliminar el href
Quemeful