如何忽略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被聚焦或被选中。