tabindex =" -1"是什么?在bootstrap中

时间:2015-10-02 16:07:30

标签: twitter-bootstrap twitter-bootstrap-3 bootstrap-modal

Bootstrap 3中的tabindex属性是什么?

尽管他们几乎在所有模态中都使用它们,但它的文档并没有说明任何内容。

我只是发现了它的使用方法,但实际上并没有多说

  

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

     

对于使用键盘导航的用户,特别是辅助技术的用户,您应该只使用tabindex =" 0&#34将工具提示添加到键盘可聚焦的元素,例如链接,表单控件或任意元素。 ;属性。

我发现了I can't press esc to hide a modal if the tabindex attribute is not -1

2 个答案:

答案 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。

此属性负责指示元素是否可通过键盘导航访问。

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

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

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

  3. 将负值添加到tabindex(通常为tabindex="-1")时,表示键盘导航无法访问该元素,但可以使用焦点功能进行聚焦在JS。