HTML中有什么方法可以告诉浏览器不允许对特定元素进行标签索引?
在我的页面上,虽然有一个用 jQuery 呈现的杂项,但是当您通过它进行选项卡时,在选项卡控件移动到页面上的下一个可见链接之前,您会得到很多选项卡按下,因为所有被选项卡通过的东西都被隐藏到用户视觉上。
您可以使用tabindex="-1"
.
W3C HTML5 规范支持tabindex
负值:
如果值为负整数
用户代理必须设置元素的 tabindex 焦点标志,但不应允许使用顺序焦点导航到达该元素。
请注意,这是一项 HTML5 功能,可能不适用于旧浏览器。
要符合W3C HTML 4.01 标准(从 1999 年开始),tabindex 必须是正数。
下面是纯 HTML 中的示例用法。
<input />
<input tabindex="-1" placeholder="NoTabIndex" />
<input />
不要忘记,即使tabindex
在规范和 HTML 中都是小写,在Javascript / DOM 中该属性被调用tabIndex
。
不要失去理智,试图弄清楚为什么以编程方式更改的选项卡索引调用element.tabindex = -1
不起作用。使用element.tabIndex = -1
.
如果这些是标签顺序中自然的元素,例如按钮和锚点,那么将它们从标签顺序中删除tabindex="-1"
是一种可访问性的味道。如果他们提供重复的功能,将它们从标签顺序中删除是可以的,并考虑添加aria-hidden="true"
到这些元素中,以便辅助技术将忽略它们。
如果您在不支持的浏览器中工作 tabindex="-1"
,您可能可以只为需要跳过的内容提供一个非常高的标签索引。例如tabindex="500"
,基本上将对象的标签顺序移动到页面的末尾。
我为一个长的数据输入表单做了这个,中间有一个按钮。这不是人们经常点击的按钮,所以我不希望他们不小心点击它并按下回车键。disabled
不起作用,因为它是一个按钮。
这样做的方法是添加tabindex="-1"
. 通过将此添加到特定元素,键盘导航将无法访问它。这里有一篇很棒的文章可以帮助您进一步了解tabindex。
只需将属性添加disabled
到元素(或使用 jQuery 为您完成)。禁用可防止输入被聚焦或选择。