tabindex 将键盘焦点添加到元素中 , 以及获取焦点的顺序

HTML 的 tabindex 属性有三种与标签焦点相关的功能。 当它在一个元素上时,表示该元素可以获得焦点。 tabindex 的值(可以是零、负整数或正整数)定义了行为。

当用户使用键盘浏览页面时,诸如链接、表单控件等元素可以自动获得焦点。 它们获得焦点的顺序与它们出现在 HTML 文档流中的顺序一致。 我们可以通过将其他标签(如 divspanp 等)的 tabindex 属性值设为 0 来让它们实现类似的效果。 比如:

<div tabindex="0">I need keyboard focus!</div>

注意: tabindex 属性值为负整数(通常为 -1)的标签也是可以获得焦点的,只是不可以通过键盘操作(如 tab 键)来获得焦点。 这种方法通常用于以编程的方式使内容获得焦点(如:将焦点设置到用 div 实现的弹出框上)的场景。 只是这部分内容已经超出了当前挑战的范围。

 

tabindex 属性还可以指定元素的 tab 键焦点顺序, 将它的值设置为大于等于 1 的整数,就可以实现这个功能。

给元素设置 tabindex="1",键盘将首先把焦点放在这个元素上。 然后它按照指定的 tabindex 值(2、3 等等)顺序循环,再移动到默认值和 tabindex="0" 项目。

需要注意的是,使用这种方式设置 tab 键焦点顺序会覆盖默认顺序,其中默认顺序为标签在文档流中出现的顺序。 这可能会让那些希望从页面顶部开始导航的用户感到困惑。 使用 tabindex 在某些情况下是必要的,但在使用时要充分考虑到页面的可访问性。

举个例子:

<div tabindex="1">I get keyboard focus, and I get it first!</div>
<div tabindex="2">I get keyboard focus, and I get it second!</div>

 

posted @ 2021-09-25 16:14  小薇的前端学习日记  阅读(415)  评论(0)    收藏  举报