415

HTML中有什么方法可以告诉浏览器不允许对特定元素进行标签索引?

在我的页面上,虽然有一个用 jQuery 呈现的杂项,但是当您通过它进行选项卡时,在选项卡控件移动到页面上的下一个可见链接之前,您会得到很多选项卡按下,因为所有被选项卡通过的东西都被隐藏到用户视觉上。

4

6 回答 6

668

您可以使用tabindex="-1".

W3C HTML5 规范支持tabindex负值:

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


请注意,这是一项 HTML5 功能,可能不适用于旧浏览器。
要符合W3C HTML 4.01 标准(从 1999 年开始),tabindex 必须是正数。


下面是纯 HTML 中的示例用法。

<input />
<input tabindex="-1" placeholder="NoTabIndex" />
<input />

于 2011-03-04T11:07:37.513 回答
141

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

不要失去理智,试图弄清楚为什么以编程方式更改的选项卡索引调用element.tabindex = -1不起作用。使用element.tabIndex = -1.

于 2014-02-28T16:35:29.593 回答
12

如果这些是标签顺序中自然的元素,例如按钮和锚点,那么将它们从标签顺序中删除tabindex="-1"是一种可访问性的味道。如果他们提供重复的功能,将它们从标签顺序中删除是可以的,并考虑添加aria-hidden="true"到这些元素中,以便辅助技术将忽略它们。

于 2014-06-13T10:42:18.197 回答
9

如果您在不支持的浏览器中工作 tabindex="-1",您可能可以只为需要跳过的内容提供一个非常高的标签索引。例如tabindex="500",基本上将对象的标签顺序移动到页面的末尾。

我为一个长的数据输入表单做了这个,中间有一个按钮。这不是人们经常点击的按钮,所以我不希望他们不小心点击它并按下回车键。disabled不起作用,因为它是一个按钮。

于 2015-11-16T17:34:46.077 回答
3

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

于 2018-05-04T09:08:32.337 回答
2

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

于 2015-10-11T02:24:53.883 回答