HTML tabindex 属性

HTML tabindex 语法

在 HTML 中,tabindex 是一个全局属性,它用于设置元素在按下 Tab 键时的导航顺序。通过 tabindex,你可以控制用户在浏览网页时使用键盘 Tab 键切换元素的顺序。

tabindex 属性可以应用于任何 HTML 元素,但最常用于表单元素、链接和图像。

语法:

<element tabindex="整数"></element>

说明:

element 是要设置 tabindex 属性的元素。tabindex 属性取值是一个整数(负整数、0 或正整数),用于表示导航的顺序。

tabindex 主要用于以下 3 个方面。

  • 更改 Tab 键导航顺序:我们可以通过设置不同的 tabindex 值,控制元素在按下 Tab 键时的切换顺序。
  • 使原本不可聚焦的元素可聚焦:例如,普通的 div 元素默认不可获得焦点,但通过设置 tabindex 属性,可以使它变得可聚焦。
  • 创建自定义的键盘导航体验:在需要特别键盘操作的场景中,通过 tabindex 使元素按特定顺序聚焦,提升用户体验。

tabindex 最佳实践

在无障碍(Accessibility)最佳实践中,我们强烈推荐使用小于 0 的 tabindex 值。这是因为如果手动设置了大于 0 的 tabindex(比如1、2、3 等),一旦在页面顶部新增了一个链接,我们需要把下面几百个元素的 tabindex 全部改一遍,维护起来简直是噩梦。

因此在实际开发中,我们应该尽量不要使用大于 0 的 tabindex 值。因此这会导致键盘导航顺序与页面视觉顺序不一致,给用户带来困扰,并且极难维护。

此外需要清楚的是,如果 tabindex 属性取值是一个负整数,此时该元素将无法获得焦点,但可以使用 JavaScript 使其可聚焦。这也正是 “负 tabindex” 的作用。

HTML tabindex 摘要

属于 HTML 属性
使用频率 高
兼容性 查看
官方文档 查看
MDN 查看

HTML tabindex 示例

接下来,我们通过几个简单的例子来讲解一下 HTML tabindex 属性是如何使用的。

示例 1:tabindex 属性修改键盘导航顺序

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <input type="text" tabindex="3"><br>
    <input type="text" tabindex="1"><br>
    <input type="text" tabindex="2">
</body>
</html>

页面效果如下图所示。

HTML tabindex示例1

分析:

默认情况下,按下键盘 Tab 键时会按照文本框的先后顺序进行切换。但这里使用了 tabindex 属性修改了文本框的顺序,此时切换顺序就不一样了。小伙伴们可以自行测试一下。

示例 2:tabindex 属性使元素可聚焦

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <div tabindex="0">绿叶网</div>
    <input type="text">
</body>
</html>

页面效果如下图所示。

HTML tabindex示例2

分析:

默认情况下,div 元素是无法聚焦的。但这里我们给 div 加上了 tabindex="0",它就变成了一个可聚焦元素。

上一篇:

下一篇:

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号