Html 图例中的标题有效吗&书信电报;图例>&书信电报;h1>;标题</h1></图例>;

Html 图例中的标题有效吗&书信电报;图例>&书信电报;h1>;标题</h1></图例>;,html,header,legend,Html,Header,Legend,我在VisualStudio中使用了它,但编译器声称h1不能嵌套在legend元素中,但浏览器无论如何都可以呈现它,所以我很困惑这是否有效 <fieldset> <legend> <h1>Caption</h1> </legend> </fieldset> 说明文字 浏览器所做的许多事情都不是标准所要求的:-) 此页面(HTML4)指定图例关键字并声明它可以包含,标题不是其中的一部分。它还有其他可能

我在VisualStudio中使用了它,但编译器声称
h1
不能嵌套在
legend
元素中,但浏览器无论如何都可以呈现它,所以我很困惑这是否有效

<fieldset>
   <legend>
     <h1>Caption</h1>
   </legend>
</fieldset>

说明文字

浏览器所做的许多事情都不是标准所要求的:-)

此页面(HTML4)指定
图例
关键字并声明它可以包含,标题不是其中的一部分。它还有其他可能有用的功能,如
big
strong


此外,的相关页面未将图例列为允许包含在其中的项目之一。您还可以使用图例的
id
class
style
属性来设置基础文本属性。

否它在图例中无效。您可以使用来验证HTML5中的代码组中允许的
元素。根据文件:

措辞内容是文档的文本,以及在段落内标记该文本的元素


如果您检查html标准,它会显示:

<!ELEMENT LEGEND - - (%inline;)*       -- fieldset legend -->


%inline
部分意味着它应该只包含字符级元素和文本字符串。因此,当它确实呈现时,您不应该以这种方式使用它,因为html实际上是无效的。

字段集的图例元素不允许子元素,除非它们被视为“语法内容”。虽然大多数浏览器不会抱怨(因此在实践中它是有效的),但您可能最好使用样式来设置图例元素的外观/感觉,因为这就是css的作用,元素应该用于逻辑分组/标识内容,而不是样式化内容

图例:

措辞内容:


在HTML 5.2中,这似乎是有效的:

4.10.16。传奇元素 内容模型: 措辞内容和标题(h1-h6元素)


这是一个非常好的消息,因为在复杂的表单中,图例与标题具有相同的用途,例如,屏幕阅读器仅在聚焦表单元素时发布图例。

在HTML5中,您可以使用
来实现图例在字段集中的相同用途,因为字段集被视为分段根。因此,如果您想摆脱传奇人物古怪的造型怪癖,请使用以下可访问的标记:

<fieldset role="group" aria-labelledby="heading">
    <h1 id="heading">Caption</h1>
    <p>Other stuff...</p>
</fieldset>

说明文字
其他东西


我发现理解
字段集
图例
除分组字段外的一个主要用途是,视障屏幕阅读器(我一直使用的)将在焦点设置到字段集中的输入控件时读取图例文本,以便用户知道他们正在编辑“个人信息-姓名”、“个人信息-出生日期”如果你需要遵守第508条,你可能需要考虑保留<代码>传说>代码>内容,使用简单的文本,使用CSS来对它进行修改。在代码<>字段> 内,该代码的补充基本上与HTML5中的“代码>图例< /代码>具有相同的语义效果。这是因为
fieldset
被定义为“分段根”,而
h1
定义了分段根的标签/主题。因此,放弃那些无法设置
图例
标记样式的标签,转而选择
h1
。您可以通过使用
role=“group”
完全放弃屏幕阅读器的图例。为了保持向后兼容性,我更喜欢使用“real”HTML标记而不是ARIA属性。group角色与所有屏幕阅读器兼容,自IE8中JAWS支持开始以来。IE7没有屏幕阅读器。此外,它还允许用户不必处理legend元素的奇怪造型怪癖。没错,legend元素令人讨厌。尽管如此,如果可以使用标准元素,我还是不喜欢使用角色。但是很高兴知道,如果HTML