可聚焦元素(按钮)上的 Tabindex 0
Tabindex 0 on focusable element (button)
我在我目前正在处理的代码库中多次注意到以下模式:
<button tabindex="0">A button</button>
<ul tabindex="-1">...
当然,ul
上的 tabindex="-1"
会阻止焦点,但是在按钮上设置 tabindex=0
有什么意义呢?默认情况下这个元素不是已经可以聚焦了吗?
tabindex
的两种用法都是多余的。
只是详细说明 tabindex 的使用及其在这种情况下的含义:
Tabindex="0" 表示:可使用 tab 键和脚本(使用 element.focus()
)聚焦,并插入自然制表符(也就是逻辑上遵循 DOM 的顺序)。由于这是按钮的默认行为,您可以将 <button tabindex="0">
视为废话和臃肿代码。
大于 0 的 Tabindex 指定自定义标签顺序。因此,如果您说 <button tabindex="1">
,则无论 DOM 结构如何,在使用制表符时按钮总是首先获得焦点。不鼓励使用这种方法。
Tabindex="-1" 表示您不能使用 Tab 使其聚焦,但 JavaScript element.focus()
功能可以。在 ul
上,只有当您想在某个时刻从脚本中聚焦它时,这才有意义。否则这也是 bloatcode,并且还分配了一个意想不到的角色。
我在我目前正在处理的代码库中多次注意到以下模式:
<button tabindex="0">A button</button>
<ul tabindex="-1">...
当然,ul
上的 tabindex="-1"
会阻止焦点,但是在按钮上设置 tabindex=0
有什么意义呢?默认情况下这个元素不是已经可以聚焦了吗?
tabindex
的两种用法都是多余的。
只是详细说明 tabindex 的使用及其在这种情况下的含义:
Tabindex="0" 表示:可使用 tab 键和脚本(使用 element.focus()
)聚焦,并插入自然制表符(也就是逻辑上遵循 DOM 的顺序)。由于这是按钮的默认行为,您可以将 <button tabindex="0">
视为废话和臃肿代码。
大于 0 的 Tabindex 指定自定义标签顺序。因此,如果您说 <button tabindex="1">
,则无论 DOM 结构如何,在使用制表符时按钮总是首先获得焦点。不鼓励使用这种方法。
Tabindex="-1" 表示您不能使用 Tab 使其聚焦,但 JavaScript element.focus()
功能可以。在 ul
上,只有当您想在某个时刻从脚本中聚焦它时,这才有意义。否则这也是 bloatcode,并且还分配了一个意想不到的角色。