关于焦点:即使使用tabindex,哪些HTML元素也不可标签?

What HTML elements are not tabbable even with tabindex?

即使指定了tabindex,是否有人拥有不可标签的HTML(HTML5)元素列表? (通过Tabbable,我的意思是他们可以通过反复按" tab "键来获得焦点。)

我们知道默认情况下有一些元素是可制表的,例如inputtextarea。我们还知道有些元素只有在显式指定了tabindex时才是可Tabable的,例如divspan元素。

根据W3Schools,"在HTML5中,tabindex属性可以在任何HTML元素上使用"。但是,肯定有一些元素即使具有tabindex也不是可制表的。例如,param元素或head元素是可标签的就没有意义。我也不太认为option元素是可选项,但我不而且,我对map之类的东西甚至还不确定,这些东西可以包含可tabable元素,但通常它们本身都不是tabbable的。

有人可以给我列出所有即使有tabindex也无法获得焦点的元素的列表吗?


由于还没有人提出任何明确的列表,因此我在相当新的Chrome版本上进行了一些测试,并提出了以下根本无法列出的元素列表:

  • <base>
  • <basefont>
  • <head>
  • <link>
  • <meta>
  • <object>
  • <param>
  • <source>
  • <style>
  • <title>
  • <track>

不幸的是,由于我只花了几个小时尝试编写此列表,因此有一些警告:

  • 未在Chrome以外的任何其他浏览器上进行测试
  • 我跳过了大多数我认为可能会出现的元素(因为它们将显示正常的内容)
  • 我没有尝试设置要显示的任何内容(除了<title>以外,如我的评论所述)
  • 我最惊讶的是以下元素是可以表述的:

    • <video>(惊讶的是,因为<object>不是)
    • <wbr>
    • <col><colgroup>
    • <frame><frameset>(尽管它们在特殊情况下还是比较特殊的,因为它们在HTML中始终不是技术上有效的元素)
    • <html>(从制表的angular来看,此和<body>之间几乎没有区别)
    • <optgroup><option>(尽管在它们之间进行制表并不能提供任何视觉指示-即选择框不会打开)


    HTML规范列出了可聚焦元素以及如何解释tabindex的条件。

    • 元素的tabindex焦点标志已设置。
    • 该元素正在被渲染,或者是表示嵌入内容的canvas元素的后代。
    • 该元素或其任何祖先都不是惰性的。
    • 元素未禁用。

    定义依赖于要渲染的元素,使用CSS可以使任何元素都渲染。例如,可聚焦的<param>甚至<title><basefont>

    1
    2
    3
    4
    5
    6
    7
    8
    <!DOCTYPE>
    <title tabindex=0>Test
    <basefont tabindex=0>
    <style>
    head, title {display:block}
    basefont, param {content: url(image.png);}
    </style>
    <object><param tabindex=0></object>

    顺便说一句:忽略W3Schools —通常这不是可靠/权威的来源。