这更像是一个历史或问题。
与按钮不同,链接往往具有tabIndex
-1
作为默认值。我知道这是因为:
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
如果未指定,则默认值为-1
但是按钮会自动tabIndex
,所以问题是:决定链接不需要大于0 tabIndex
的原因是什么?因此,Tab键应该忽略默认状态下的链接。
答案 0 :(得分:3)
HTML5.1¹定义了省略tabindex
attribute时用户代理应该做什么:
用户代理应遵循平台约定来确定元素的tabindex focus flag是否已设置[...]
该规范建议应该获得此标记的一些元素,包括a
元素(只要它们具有href
属性)和button
元素。
因此,遵循规范建议的用户代理不会区分a
和button
元素与默认焦点行为。
我不确定为什么链接的MDN页面包含引用的语句(似乎是错误的)。也许这是对规范关于tabIndex
IDL属性的说法的误解?
tabIndex
IDL属性必须反映tabindex
内容属性的值。对于可聚焦的元素,其默认值为0;对于不可聚焦的元素,其默认值为-1。
¹HTML5.1是截至目前的最新W3C推荐标准。但是之前的HTML W3C建议和WHATWG的HTML生活标准可能并没有以不同的方式定义这个方面w.r.t.到a
和button
。
²这不是必需的,因为规范使用应该而不是必须。
答案 1 :(得分:2)
您引用的MDN页面是tabindex
全局属性的定义。这不适用于button
或链接。
事实上,tabindex
可以有四种类型的值:
-1
:可以通过编程方式或使用鼠标0
:可以使用键盘或鼠标以编程方式聚焦元素>0
:不要使用此值。决不。无法访问。链接(a[href]
和button
)或其他互动元素(例如表单字段)的默认值为0
断言任何其他元素的默认值为-1
为false。默认值"值"对于那些其他元素,不要定义此属性