引导中的tabindex =“-1”是什么


100

tabindexBootstrap 3 的属性是什么?

尽管他们实际上在所有模态中都使用它们,但它的文档中没有提及它们。

我只发现了有关它的用法,实际上并没有说太多

键盘和辅助技术用户可访问的工具提示

对于使用键盘导航的用户,特别是使用辅助技术的用户,应仅将工具提示添加到可键盘聚焦的元素,例如链接,表单控件或任何具有tabindex =“ 0”属性的任意元素。

而且我发现如果属性不是的我不能按下esc隐藏模态tabindex-1

Answers:


159

tabindex属性显式定义页面内可聚焦元素(通常是链接和表单控件)的导航顺序。它也可以用来定义元素是否应该是可聚焦的。

[Both] tabindex="0"和[Both] tabindex="-1"具有特殊含义,并提供HTML的独特功能。值0表示元素应按默认导航顺序放置。这允许本身不可聚焦元件(例如<div><span><p>),以接收键盘焦点。当然,通常应该对所有交互式元素使用链接和表单控件,但这确实允许其他元素成为焦点并触发交互。

tabindex="-1"去除从默认导航流动的元件(即,一个用户不能标签的话),但它允许它接收方案重点,这意味着焦点可以从链接或脚本被设置到它。**这可以是非常对于不应使用标签的元素很有用,但可能需要将焦点设置到它们

模态对话框窗口就是一个很好的例子-打开对话框时,应将焦点设置在对话框上,以便屏幕阅读器开始阅读,键盘将开始在对话框中导航。由于<div>默认情况下该对话框(可能只是一个元素)是无法聚焦的,因此,在分配对话框tabindex="-1"时,可以通过显示脚本来设置焦点。

值a -1在使用箭头键或其他快捷键的复杂小部件和菜单中也很有用,以确保使用Tab键可导航小部件内的一个元素,但仍允许将焦点设置在小部件内的其他组件上。

资料来源: http //webaim.org/techniques/keyboard/tabindex

这就是为什么您需要tabindex="-1"使用modal的原因<div>,以便用户可以访问常见的鼠标和键盘快捷键。希望能有所帮助。


1
该属性是HTML的一部分,它与Bootstrap无关。
Lutz Prechelt '16

8
是的,这正是这里所说的,它是“ HTML中的独特功能”,与Bootstrap无关。
凯尔·安德森

1
为了能够使用JavaScript专注于<div>,必须在此元素上定义tabindex属性(任何值,例如tabindex = -1)。如果div上没有tabindex,则无法进行聚焦。这就是BS向模式div添加tabindex = -1的原因。请参阅developer.mozilla.org/en-US/docs/Web/Accessibility/…:如果不存在tabindex,则JS的可聚焦对象将遵循元素的平台约定(对于表单控件,链接等,是)。这意味着如果没有tabindex,则<div>是不可操作的。
加拿大Wan

值得一提的是,单击tabindex =“-1”的元素也可以使其聚焦。
Black Mantha

13

的tabindex属性与HTML相关的,它不是特定于引导。

此属性负责指示元素是否可以通过键盘导航到达。

您需要注意三种不同的情况:

  1. 当添加tabindex = "0"到元素时,这意味着可以通过键盘导航访问它,但是该顺序是由文档源顺序定义的。

  2. tabindex属性添加正值时(例如tabindex = "1", tabindex = "2"),这些元素可以通过键盘导航访问,并且顺序由属性的值定义。

  3. 添加一个负值到的tabindex(通常tabindex="-1")这意味着该元件不通过键盘导航可达,而是可以在使用JS对焦功能被聚焦。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.