是否有人列出了不可列表的HTML(HTML5)元素,即使指定了tabindex? (通过tabbable,我的意思是他们可以通过反复按“tab”键来获得焦点。)
我们知道默认情况下有些元素可以列表,例如input
或textarea
。我们还知道,如果明确指定了tabindex,则某些元素只能是tabbable,例如div
和span
元素。
根据W3Schools的说法,“在HTML5中,tabindex属性可用于任何HTML元素”。但是,肯定有一些元素即使它们有tabindex也不能表示。例如,param
元素可以是tabbable或head
元素是没有意义的。我也不认为option
元素可能是可能的,但我不确定。而且我对map
之类的东西更不确定,它们可以包含可列表元素但通常不会自行列表。
有人可以给我一个列表,列出即使有tabindex也无法获得焦点的所有元素吗?
答案 0 :(得分:8)
由于还没有人提出任何明确的清单,我在一个相当新版本的Chrome上做了一些测试,并提出了以下无法列表的元素列表:
<base>
<basefont>
<embed>
<head>
<link>
<meta>
<object>
<param>
<source>
<style>
<title>
<track>
不幸的是,由于我只花了几个小时试图写这个清单,所以有一些注意事项:
<title>
,如我的评论中所述)我非常惊讶以下元素 可标记:
<audio>
和<video>
(感到惊讶,因为<embed>
和<object>
不是)<br>
和<wbr>
<col>
和<colgroup>
<frame>
和<frameset>
(虽然它们更像是一种特殊情况,因为它们在HTML中并不是技术上有效的元素)<html>
(从标签的角度来看,这与<body>
几乎没有区别)<optgroup>
和<option>
(虽然标签不会给出任何视觉指示 - 即选择框无法打开)答案 1 :(得分:7)
The HTML spec lists conditions under which elements are focusable和how tabindex is interpreted。
该定义依赖于呈现的元素,使用CSS可以使呈现任何元素。例如,可聚焦<param>
甚至<title>
和<basefont>
:
<!DOCTYPE>
<title tabindex=0>Test</title>
<basefont tabindex=0>
<style>
head, title {display:block}
basefont, param {content: url(image.png);}
</style>
<object><param tabindex=0></object>
BTW:忽略W3Schools - 通常不是一个可靠/权威的来源。