Bootstrap 3中的tabindex
属性是什么?
尽管他们几乎在所有模态中都使用它们,但它的文档并没有说明任何内容。
我只是发现了它的使用方法,但实际上并没有多说
键盘和辅助技术用户可访问的工具提示
对于使用键盘导航的用户,特别是辅助技术的用户,您应该只使用tabindex =" 0&#34将工具提示添加到键盘可聚焦的元素,例如链接,表单控件或任意元素。 ;属性。
我发现了I can't press esc
to hide a modal if the tabindex
attribute is not -1
。
答案 0 :(得分:116)
tabindex
属性明确定义页面中可聚焦元素(通常是链接和表单控件)的导航顺序。它还可以用于定义元素是否应该是可聚焦的。[Both]
tabindex="0"
和tabindex="-1"
具有特殊含义,并在HTML中提供不同的功能。值0
表示该元素应按默认导航顺序放置。这允许不可本机聚焦的元素(例如<div>
,<span>
和<p>
)接收键盘焦点。当然,通常应该为所有交互元素使用链接和表单控件,但这确实允许其他元素可聚焦并触发交互。
tabindex="-1"
值会从默认导航流中删除该元素(即,用户无法向其添加标签),但允许其接收程序化焦点,意思是焦点可以通过链接或脚本来设置。**这对于不应该被选中的元素非常有用,但可能需要设置焦点。一个很好的例子是模态对话框窗口 - 打开时,焦点应设置为对话框,以便屏幕阅读器开始阅读,键盘将开始在对话框中导航。因为默认情况下对话框(可能只是
<div>
元素)不可聚焦,所以指定它tabindex="-1"
可以在呈现时通过脚本将焦点设置为它。值
-1
在使用箭头键或其他快捷键的复杂小部件和菜单中也很有用,以确保小部件中只有一个元素可以使用Tab键导航,但仍允许在窗口小部件中的其他组件上设置焦点。
来源: http://webaim.org/techniques/keyboard/tabindex
这就是您需要tabindex="-1"
模式<div>
的原因,因此用户可以访问常用的鼠标和键盘快捷键。希望有所帮助。
答案 1 :(得分:6)
tabindex属性与HTML 相关联,它不是特定于Bootstrap。
此属性负责指示元素是否可通过键盘导航访问。
您需要注意三种不同的情况:
将tabindex = "0"
添加到元素时,这意味着键盘导航可以访问它,但订单是由文档源顺序定义的。
当向tabindex属性添加正值时(例如tabindex = "1", tabindex = "2"
),这些元素可通过键盘导航访问,而的顺序则由属性。
当将负值添加到tabindex(通常为tabindex="-1"
)时,表示键盘导航无法访问该元素,但可以使用焦点功能进行聚焦在JS。