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",它就变成了一个可聚焦元素。

上一篇: style

下一篇: title

给站长反馈

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

邮箱:lvyenet@vip.qq.com

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