首页 文章

如何忽略tabindex中的HTML元素?

提问于
浏览
293

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

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

7 回答

  • 86

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

    W3C HTML5 specification支持负 tabindex 值:

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


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

  • 0

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

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

  • 8

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

  • 4

    如果您在不支持 tabindex="-1" 的浏览器中工作,您可能只需提供需要跳过的内容 a really high tab index 即可 . 例如 tabindex="500" 基本上将对象的Tab键顺序移动到页面的末尾 .

    我这样做了一个长数据输入表单,其中间有一个按钮 . 它's not a button people click very often so I didn' t希望他们不小心标记到它并按Enter键 . disabled wouldn 't work because it'是一个按钮 .

  • 466

    使用Chrome v53这样的“tabIndex = -1”这样的黑客行为对我不起作用 .

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

    element.removeAttribute('tabindex');
    
  • 1

    只需将属性 disabled 添加到元素中(或使用jQuery为您执行此操作) . 禁用可防止输入被聚焦或选择 .

  • 4

    这样做的方法是添加 tabindex="-1" . 通过将其添加到特定元素,它将通过键盘导航变为 unreachable . 有一篇很棒的文章here将帮助您进一步了解 tabindex .

相关问题