首页 > 其他分享 >tabindex属性有什么作用?

tabindex属性有什么作用?

时间:2024-12-13 09:20:57浏览次数:4  
标签:顺序 正整数 聚焦 元素 Tab tabindex 作用 属性

tabindex 属性控制网页元素是否可以获得键盘焦点,以及它们获得焦点的顺序。它在创建可访问的网页和改善用户体验方面起着至关重要的作用。

以下是 tabindex 属性值的含义:

  • tabindex="0": 这使得元素可以通过键盘获得焦点,并按照其在文档源代码中出现的顺序进行 tab 导航。 这是使原本不可聚焦的元素(例如 <div>, <span>, <p> 等)可聚焦的最常用方法。

  • tabindex="-1": 这使得元素可以通过 JavaScript 或链接(例如,通过 #element-id)获得焦点,但不能通过 Tab 键顺序获得焦点。这对于创建自定义键盘导航或通过 JavaScript 管理焦点非常有用,例如在模态窗口或下拉菜单中。

  • tabindex="1" 或其他正整数: 这允许您明确定义 Tab 键的导航顺序。tabindex="1" 的元素将首先获得焦点,然后是 tabindex="2" 的元素,以此类推。 不建议使用正整数的 tabindex,因为它会破坏预期的 Tab 键顺序,并使键盘导航难以预测,尤其是对于使用屏幕阅读器的用户。 尽量只使用 tabindex="0"tabindex="-1"

一些使用场景:

  • 使非交互式元素可交互: 您可以使用 tabindex="0" 使通常不可聚焦的元素(如 <div><span>)可聚焦,例如,如果您想将键盘事件附加到这些元素上。

  • 创建自定义 Tab 顺序: 虽然不推荐,但您可以使用正整数 tabindex 值来创建自定义 Tab 顺序。

  • 从 Tab 顺序中移除元素: 使用 tabindex="-1" 可以将元素从 Tab 顺序中移除,例如,如果您有一个在特定上下文中不应获得焦点的元素。

  • 改进可访问性: tabindex 属性对于创建可访问的 Web 应用程序至关重要,因为它允许键盘用户与所有交互式元素进行交互。

  • 动态更改 Tab 顺序: 您可以使用 JavaScript 动态更改 tabindex 值,以响应用户交互或其他事件。

示例:

<div tabindex="0">可通过 Tab 键聚焦的 div</div>
<button>可通过 Tab 键聚焦的按钮</button>
<span tabindex="-1" id="off-tab">无法通过 Tab 键聚焦,但可以通过 JavaScript 聚焦的 span</span>
<a href="#off-tab">聚焦到 span</a>
<div tabindex="2">不推荐:使用正整数 tabindex</div>
<div tabindex="1">不推荐:使用正整数 tabindex</div>

在这个例子中,divbutton 和两个带有正整数 tabindexdiv 都可以通过 Tab 键聚焦。带有 tabindex="-1"span 不能通过 Tab 键聚焦,但可以通过链接聚焦。 注意,即使第二个带有正整数 tabindexdiv 的值较小,带有 tabindex="1"div 会先获得焦点,这突出了为什么不推荐使用正整数 tabindex 值。

总之,tabindex 属性是一个强大的工具,可以控制键盘焦点,并在正确使用时可以极大地提高 Web 应用程序的可访问性和可用性。 尽量坚持使用 tabindex="0"tabindex="-1",以避免创建混乱和难以访问的 Tab 顺序。

标签:顺序,正整数,聚焦,元素,Tab,tabindex,作用,属性
From: https://www.cnblogs.com/ai888/p/18604145

相关文章

  • html的属性值有规定要使用单引号还是双引号吗?
    HTML属性值可以使用单引号或双引号,甚至在某些情况下可以省略引号。最佳实践是保持一致性,并选择一种风格坚持下去。双引号("):这是最常见和推荐的做法。它更具可读性,并且与其他编程语言(如JavaScript)的约定一致。如果属性值本身包含单引号,则必须使用双引号,例如:<pclas......
  • 为什么有时候给元素设置宽度不起作用呢?
    在前端开发中,给元素设置宽度有时不起作用,原因有很多。以下是一些常见的情况和解决方法:1.元素的display属性:display:inline和display:inline-block:内联元素默认宽度由其内容决定。虽然inline-block允许设置宽度和高度,但如果内容超过了设置的宽度,元素仍然会扩展。......
  • 11 UFS 4.0 UFS描述符、标志和属性
    14UFS描述符、标志和属性14.1UFS描述符描述符是一种具  有定义格式的数据结构。描述符通过QUERYREQUESTUPIU数据包进行访问。描述符是独立可寻址的数据结构。描述符可以是每个设备独立存在且唯一的,也可以通过顶级描述符中定义的参数以层次化方式与其他描述符相互关联......
  • Day45--“ZWSP” 字符的作用
    Day45--“ZWSP”字符的作用在TestPanel里面,创建main方法,创建Frame、Panel的对象。​ Frame不使用默认的布局管理器​ 设置frame的坐标、颜色​设置panel的坐标、颜色​ frame中添加panel​ 可见当我把上面的话复制粘贴到IDEA里面,效果是图片上......
  • Vue 组件样式作用域和深度选择器详解
    1.问题背景在Vue项目中使用第三方组件库(如ElementUI)时,经常会遇到需要覆盖组件默认样式的情况。但是当我们在组件中使用<stylescoped>时,会发现样式无法生效。比如以下场景:<template><div><el-message-box>...</el-message-box></div></template><styles......
  • 转载:【AI系统】AI 框架作用
    深度学习范式主要是通过发现经验数据中,错综复杂的结构进行学习。通过构建包含多个处理层的计算模型(网络模型),深度学习可以创建多个级别的抽象层来表示数据。例如,卷积神经网络CNN可以使用大量图像进行训练,例如对猫狗分类去学习猫和狗图片的特征。这种类型的神经网络通常从所采集图......
  • 易基因:WGBS揭示Vpr蛋白在HIV-1感染中对CD4+ T细胞DNA甲基化变化的作用|项目文章
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。全球约有3800万HIV-1感染者,每年新增感染者约150万。HIV-1主要攻击CD4+T细胞,导致其耗竭,最终发展为艾滋病和死亡。尽管抗逆转录病毒治疗有效抑制HIV-1复制,但由于病毒在潜伏感染细胞中的持续存在,这种病毒仍然是一个重大......
  • EtherNet/IP 转 Modbus 网关作用下 AB PLC 控制变频器的案例呈现
     在工业自动化控制系统中,常常会遇到不同品牌和通信协议的设备需要协同工作的情况。本案例中,客户现场采用了ABPLC,但需要控制的变频器仅支持Modbus协议。为了实现ABPLC对变频器的有效控制与监控,引入了捷米特JM-EIP-RTU网关来完成EtherNet/IP与Modbus之间的协议转换,......
  • 说说你对制表符的理解,它有什么作用?
    在前端开发中,制表符(Tab)主要扮演两个角色:代码缩进和格式化:这是制表符最主要的作用。它可以用来创建代码的视觉层次结构,使代码更易读和易于理解。合适的缩进可以清晰地展现代码块之间的关系,例如循环、条件语句和函数定义。HTML中的特殊字符:在HTML中,制表符会被渲染成一......
  • 请解释下outline-offset属性有什么作用?
    outline-offset属性在前端开发中用于控制元素轮廓(outline)与其边缘之间的距离。它允许你创建在元素边界之外或之内的轮廓,有效地增加了或减少了轮廓的“偏移量”。作用:设置轮廓偏移量:outline-offset接受一个长度值(例如像素、em、rem等)或auto关键字。正值将轮廓向外推,创建......