如何忽略tabindex中的HTML元素?

Tom*_*len 343 html tabindex

HTML中是否有任何方法告诉浏览器不允许对特定元素进行选项卡索引?

在我的页面上虽然有一个使用jQuery呈现的sideshow,但是当你选中它时,你会在标签控件移动到页面上的下一个可见链接之前获得大量的标签按下,因为所有被标记的内容都被隐藏到用户视觉上.

Mar*_*ngs 557

你可以用tabindex="-1".

W3C HTML5规范支持负tabindex的值:

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


请注意,这是HTML5功能,可能无法与旧浏览器一起使用.
要符合W3C HTML 4.01标准(从1999年开始),tabindex需要是积极的.


纯HTML中的示例用法如下.

<input />
<input tabIndex="-1" placeholder="NoTabIndex" />
<input />
Run Code Online (Sandbox Code Playgroud)

  • @Flea从版本23开始,Google Chrome在tabindex上支持-1.不确定多久以前发生过这种情况,也许是在23岁之前.我在Chrome 23,Firefox 18,IE8,IE9和Opera 12.11中测试了"-1",它全面运行. (37认同)
  • 看来谷歌Chrome不支持-1,这是有道理的,因为技术上tabIndex只支持0-32767 [link](http://www.w3.org/TR/html401/interact/forms.html#h- 17.11.1)`W3`.所以当我这样做的时候; 我用了500. Hackish; 但工作. (12认同)
  • 我编辑了链接到更新的HTML5规范的答案.`tabindex`现在允许有负值. (5认同)
  • 从IE 5.01开始支持http://msdn.microsoft.com/en-us/library/ie/ms534654(v=vs.85).aspx (2认同)

Eri*_* L. 109

不要忘记,即使tabindex在规范和HTML中都是小写,在Javascript/DOM中调用属性tabIndex.

不要试图弄清楚为什么你的程序化改变标签索引调用element.tabindex = -1不起作用.使用element.tabIndex = -1.

  • 呃,我很高兴看到它,如果把它作为评论埋葬,我可能会错过它. (41认同)
  • 这似乎应该是评论而不是答案. (29认同)

Mat*_*att 10

如果这些元素在按钮和锚点之类的Tab键顺序中是自然的,那么使用tabindex = -1从Tab键顺序中删除它们就是一种可访问性气味.如果他们提供重复功能,从Tab键顺序中删除它们就可以了,并考虑在这些元素中添加aria-hidden = true,这样辅助技术就会忽略它们.


Jem*_*meh 7

如果您在不支持的浏览器中工作 tabindex="-1",只需给那些需要跳过的事情设置一个很高的标签索引,或许就能摆脱困境。例如,tabindex="500"基本上将对象的选项卡顺序移动到页面的末尾。

我这样做是为了获得一个较长的数据输入表单,并在其中插入了一个按钮。这不是人们经常点击的按钮,所以我不希望他们无意间跳到该按钮并按Enter。disabled因为它是一个按钮,所以不起作用。


Yaa*_*pan 5

只需将属性添加disabled到元素(或使用 jQuery 为您完成)。禁用会阻止输入被聚焦或选择。


Val*_*Val 5

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

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

function removeTabIndex(element) {
    element.removeAttribute('tabindex');
}
Run Code Online (Sandbox Code Playgroud)
<input tabIndex="1" />
<input tabIndex="2" id="notabindex" />
<input tabIndex="3" />
<button tabIndex="4" onclick="removeTabIndex(document.getElementById('notabindex'))">Remove tabindex</button>
Run Code Online (Sandbox Code Playgroud)

  • 我试过没有效果。默认情况下,浏览器允许您按输入出现在页面上的顺序进行 Tab 键切换,即使没有设置 tabindex 也是如此,因此对我来说,仅删除该属性实际上并不会完全禁用 Tab 键对我来说才有意义。此外,我想使用这个输入的开始没有“tabindex”属性。 (2认同)

Nes*_*ric 5

做到这一点的方法是添加tabindex="-1". 通过将其添加到特定元素,键盘导航将无法访问该元素。这里有一篇很棒的文章将帮助您进一步了解tabindex