可聚焦元素(按钮)上的 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,并且还分配了一个意想不到的角色。