这更像是一个历史或者为什么的问题。
与按钮不同,链接通常具有默认值为-1
的tabIndex
。我知道这是因为:
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
如果没有指定,则默认值为-1
但是按钮会自动具有tabIndex
,所以问题是:决定链接不需要具有大于0的tabIndex
的原因是什么?因此,Tab键应该忽略默认状态下的链接。
这更像是一个历史或者为什么的问题。
与按钮不同,链接通常具有默认值为-1
的tabIndex
。我知道这是因为:
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
如果没有指定,则默认值为-1
但是按钮会自动具有tabIndex
,所以问题是:决定链接不需要具有大于0的tabIndex
的原因是什么?因此,Tab键应该忽略默认状态下的链接。
tabindex
属性时,用户代理应该执行的操作:
规范建议某些元素应该获得此标志,包括带有用户代理应该遵循平台惯例来确定元素的可聚焦标志 tabindex 是否被设置[…]
href
属性的a
元素和button
元素。a
和button
元素。
tabIndex
IDL属性的规范解释误解?
tabIndex
IDL属性必须反映tabindex
内容属性的值。 对于可聚焦的元素,其默认值为0,对于不可聚焦的元素,其默认值为-1。
¹ HTML 5.1是截至目前为止的最新W3C推荐。但以前的HTML W3C推荐和WHATWG的HTML Living Standard可能不会在a
和button
方面对此进行不同的定义。
² 这不是一个要求,因为规范使用“应该”而不是“必须”。
tabindex
全局属性的定义。这不仅适用于 button
或链接。tabindex
可以有四种类型的值:-1
:元素可以通过编程或鼠标聚焦。
- 0
:元素可以通过编程、键盘或鼠标聚焦。
- 任何值 >0
:不要使用此值。永远不要。不可访问。a[href]
)或其他交互式元素(如表单字段)的默认值为 0
。-1
是错误的。对于这些其他元素,默认情况下不定义此属性。
<button>
和一个<a href...>
因为它们是交互式控件,所以会自动进入选项卡顺序。作者设置tabindex="-1"
,这样它就不在选项卡顺序中,但可以通过脚本添加。 - aardrian<a href...>
并不会自动包含在选项卡顺序中,可以创建一个基本的HTML页面放置一些链接进行测试,如果链接没有href属性,它可能会超出tabindex顺序。 - ncubicahref
,那么它不是链接,而是锚点,并且不存在于选项卡顺序中。 - aardrian