如何忽略tabindex的HTML元素?

有没有什么方法可以告诉浏览器不要在特定元素上使用标签索引?

在我的页面上,虽然有一个使用jQuery呈现的侧边显示,但是当您通过该窗口进行标记时,在选项卡控件移动到页面上的下一个可见链接之前,您会看到很多标签,因为所有标签页都隐藏用户在视觉上。

你可以使用tabindex="-1"

W3C HTML5规范支持负tabindex值:

如果该值是一个负整数
用户代理必须设置元素的tabindex焦点标志,但不应允许使用顺序焦点导航到达元素。


注意,这是一个HTML5function,可能不适用于旧浏览器。
要符合W3C HTML 4.01标准(从1999年起) ,tabindex需要是正面的。

不要忘了,即使tabindex在规格和HTML中都是小写的,在Javascript / DOM中属性被称为tabIndex

不要失去理智,试图弄清楚为什么你编程改变标签索引调用element.tabindex = -1是行不通的。 使用element.tabIndex = -1

如果这些元素自然是button和锚点的Tab键顺序,那么使用tabindex = -1将它们从Tab键顺序中删除就是一种可访问的气味。 如果他们提供重复的function,将它们从Tab键顺序中移除就可以了,并且考虑为这些元素添加aria-hidden = true,这样辅助技术将会忽略它们。

这样的黑客像“tabIndex = -1”不适用于我的Chrome v53。

这是适用于Chrome和大多数浏览器:

 element.removeAttribute('tabindex'); 

如果你在一个不支持tabindex="-1"的浏览器中工作,那么你只需要给出那些需要跳过的选项索引就可以了。 例如tabindex="500"基本上将对象的标签顺序移动到页面的末尾。

我这样做了一个长的数据input表单,在它的中间抛出一个button。 这不是一个人们经常点击的button,所以我不希望他们不小心选中它并按回车键。 disabled将无法正常工作,因为它是一个button。

只需将disabled的属性添加到元素(或者使用jQuery为您执行)。 禁用防止input被聚焦或被选中。