防止HTML中的A元素(锚链接)上的制表符


Answers:


265

一些浏览器支持该tabindex="-1"属性,但不支持所有属性,因为这不是标准行为。


22
太棒了!谢谢!我已经检查了FF3.5,IE8和CH3,它在所有三个版本中均有效。太感谢了!
罗伯特·科里特尼克

1
不用担心:就像zzzzBov 在这里声明的那样,HTML5抢救了这个功能并对其进行了标准化。所以现在有罪的浏览器就是那些错过了这一点的浏览器。
TechNyquist

1
请记住,禁用超链接上的制表符会违反可访问性规则(例如,使用屏幕阅读器的人等)。如果您知道这对您的用户群来说不是问题,那么应该没问题。
里卡多·桑切斯

73

现代的,兼容HTML5的浏览器支持[tabindex]属性,其中的值-1会阻止将元素制表到该属性

如果值是负整数
,则用户代理必须允许对元素进行聚焦,但不应允许使用顺序焦点导航来访问元素。


1
文档摘录总是有帮助的。;-)这告诉我们,不支持此功能的人为少数,他们迟早可能会支持它。
罗伯特·科里特尼克

15

您可以将JQuery处理程序应用于要定位多个元素而没有制表符停止的元素。

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

将是这样做的一种方式。


6

我认为您可以通过javascript来做到这一点,您可以覆盖window.onkeypressonkeydown,捕获选项卡按钮,并将焦点设置在所需的顺序。


2
我不知道您是否检查了其他答案,特别是接受了大约一年前回答的答案,并且在使用Javascript的情况下解决了此问题。
罗伯特·科里特尼克

2
我赞赏替代解决方案,即使它不能解决OP以及公认的答案。无需贬低。
安东尼·迪桑蒂

@Anthony DiSanti:是的,但是在这种特殊情况下,我仍然看不到为什么如果有其他更好的方法会使用javascript?因此,如果不是这个问题的答案,那么为什么在这里呢?没关系。如果某些事情无法完成,那么Javascript通常是最后一步。如果我侮辱了你,我很抱歉@Ammosi。我不是无礼的。感谢您的晚答复。
罗伯特·科里特尼克

7
如果有基于标准的HTML或CSS解决方案,我同意避免使用javascript。但是,在这种情况下没有。最初的发布者不需要支持IE8和FF3.5之前的浏览器,但是对于我的工作,我需要支持回到IE6。因此,tabindex解决方案不适用。不建议在浏览器中提供唯一的具有最大市场份额的解决方案。
Anthony DiSanti 2011年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.