什么是HTML tabindex属性?
什么是在HTML中使用的tabindex
属性?
tabindex
是一个全局属性,负责两件事情:
- 它设置了“可调焦”元素的顺序
- 它使元素“可以聚焦” 。
在我看来,第二件事情比第一件更重要。 有很less的元素是默认可聚焦的(例如<a>和表单控件)。 开发人员经常在不可聚焦元素(<div>,<span>等)上添加一些JavaScript事件处理程序(如“onclick”)。 而且,让你的界面不仅仅响应鼠标事件而且响应键盘事件(例如“onkeypress”)的方式也是使这些元素变得可以聚焦的。 而在最后一种情况下,如果你不想设置顺序,只是让你的元素集中使用所有这些元素的tabindex="0"
:
<div tabindex="0"></div>
另外,如果你不希望它通过tab键可以聚焦,那么使用tabindex="-1"
。 例如下面的链接将不会集中使用标签键来遍历。
<a href="#" tabindex="-1">Tab key cannot reach here!</a>
当用户按下选项卡button时,用户将按照以下示例中所示的顺序通过表格1,2和3。
例如:
Name: <input name="name" tabindex="1" /> Age: <input name="age" tabindex="3" /> Email: <input name="email" tabindex="2" />
tabindex用于定义用户在使用Tab键浏览页面时遵循的顺序。 默认情况下,自然选项卡顺序将与标记中的源顺序匹配。
tabindex内容属性允许作者控制元素是否应该是可以聚焦的,是否应该使用顺序聚焦导航到达,以及为了顺序聚焦导航的目的,元素的相对顺序是什么。 名称“标签索引”来自通常使用的“标签”键来浏览可聚焦的元素。 术语“标签”是指通过使用顺序聚焦导航可达到的可聚焦元素向前移动。
W3Cbuild议:HTML5
7.4.1节连续焦点导航和tabindex属性
tabindex
从0开始或任何正整数向上递增。 通常看到值0被避免,因为在旧版本的Mozilla和IE中,tabindex将从1开始,移动到2,并且仅在2之后才会变为0,然后是3. tabindex
的最大整数值是32767
。 如果元素具有相同的tabindex
则tabindex将与标记中的源顺序匹配。 一个负值将从标签索引中删除元素,所以它永远不会被聚焦。
如果一个元素被分配了一个-1
的tabindex
,它将删除该元素,它永远不会被聚焦,但是可以使用element.focus()
以编程方式将焦点赋予该元素。
如果您指定没有值或空值的tabindex
属性,它将被忽略。
如果在具有tabindex
的元素上设置了disabled
属性,则该元素将被忽略。
如果tabindex
在页面中的任何位置被设置,而不pipe它与代码的其余部分(它可能在页脚,内容区域,在哪里)相关,如果存在定义的tabindex
那么Tab键顺序将从该元素明确地指定了大于0的最低tabindex
值。然后,它将循环通过定义的元素,并且仅在明确的tabindex
元素已经被标记通过之后,它将返回到文档的开始并且遵循自然标签顺序。
在HTML4规范中,只有以下元素支持tabindex属性: anchor , area , button , input , object , select和textarea 。 但是,考虑到可访问性的HTML5规范允许为所有元素分配tabindex
。
–
例如
<ul tabindex="-1"> <li tabindex="1"></li> <li tabindex="2"></li> <li tabindex="3"></li> </ul>
是相同的
<ul tabindex="-1"> <li tabindex="1"></li> <li tabindex="1"></li> <li tabindex="1"></li> </ul>
因为不pipe事实上他们都被分配了tabindex="1"
,他们仍然按照相同的顺序,第一个是第一个,最后一个是最后一个。 这也是一样的..
<div> <a></a> <a></a> <a></a> </div>
因为如果它是默认行为,则不需要显式定义tabIndex。 默认情况下div
不会被关注, anchor
标签将会。
在页面内控制Tab键(按Tab键移动焦点)的顺序。
参考: http : //www.w3.org/TR/html401/interact/forms.html#h-17.11.1
您设置的值决定了您的键盘焦点将在网站上的元素之间移动的顺序。
在下面的例子中,当你第一次按Tab时,你的光标将移动到#foo,然后#awesome,然后#bar
<input id="foo" tabindex="1" /> <input id="bar" tabindex="3" /> <input id="awesome" tabindex="2" />
如果您没有在任何位置定义选项卡索引,则键盘焦点将按照您在HTML文档中定义的顺序跟随您的页面的HTML标记。
如果选项卡的选项卡比指定tabindexes的次数多,则焦点将移动,就好像没有tabindexes一样,即按照HTML标签出现的顺序
它可以用来改变默认的表单元素焦点导航序列。
所以如果你有:
text input A text input B submit button C
通过使用Tab键你可以通过A-> B-> C导航。 Tabindex允许你改变这个stream程。
通常情况下,当用户在表单中从一个字段到另一个字段(在允许标签的浏览器中,而不是所有的浏览器都是这样做)时,顺序是这些字段在HTML代码中出现的顺序。
但是,有时您希望Tab键顺序稍有不同。 在这种情况下,您可以使用TABINDEX编号字段。 然后选项卡按从最低TABINDEX到最高的顺序stream动。
更多信息可以在这里findw3
另一个很好的例子可以在这里find
简单地说, tabindex
用于关注元素。 语法: tabindex="numeric_value"
这个numeric_value
是元素的权重。 较低的值将首先被访问。
通过控件选项卡通常顺序发生在HTML代码上。
使用tabindex,标签将从tabindex最低的控件stream向tabindex最高的tabindex控件