Web 网页可访问性和h1-h6标题-所有内容必须在这些标签下吗?

Web 网页可访问性和h1-h6标题-所有内容必须在这些标签下吗?,web,accessibility,w3c,wcag,Web,Accessibility,W3c,Wcag,在web应用程序的许多页面顶部,我们有错误消息和通知、“保存”和其他按钮,然后是带有内容标题的h1标记。在使web应用程序可访问时,是否可以像我们在这里所做的那样将内容置于顶级结构标记之上?是(您可以将内容置于它们之上)。H只是指航向。我想这是一个标题与什么有关的问题 我唯一的警告是,H2不应该真的高于H1,H3不应该高于H2。但我不认为这是一个实际的规则。网站有菜单,警告,通知。把它们放在其他内容之上是可以接受的。只要你的内容是按逻辑顺序排列的,我看不出它会如何影响可访问性。看看CSS关闭的页

在web应用程序的许多页面顶部,我们有错误消息和通知、“保存”和其他按钮,然后是带有内容标题的h1标记。在使web应用程序可访问时,是否可以像我们在这里所做的那样将内容置于顶级结构标记之上?

是(您可以将内容置于它们之上)。H只是指航向。我想这是一个标题与什么有关的问题

我唯一的警告是,H2不应该真的高于H1,H3不应该高于H2。但我不认为这是一个实际的规则。网站有菜单,警告,通知。把它们放在其他内容之上是可以接受的。只要你的内容是按逻辑顺序排列的,我看不出它会如何影响可访问性。看看CSS关闭的页面。这看起来合乎逻辑吗?这是可访问性最重要的部分


尽管有些人确实做了额外的努力,将菜单作为标记中的最后一项,并使用CSS将其恢复到顶部。就我个人而言,我发现这个解决方案适得其反。菜单仍然很重要,它位于页面顶部您也可以使用不使用样式的文本浏览器,它应该看起来像带有适当标题的文档。

作为屏幕阅读器用户,我不喜欢主标题上方的内容。通常我按标题导航,因此会错过错误消息。更好的解决方案是在错误消息上方输出一个h1标题,然后将其余标题保留为两个h1标题。

标题标签用于指示其下方内容的层次结构。你应该只有一个h1标签,它应该是第一个出现在你的页面上的内容(这通常是网站的名称)。此外,在深入浏览不同层次的内容时,不应跳过标题标记


在您的例子中,您仍然可以使用CSS将项目定位在h1标记上方,只要它在html中的顺序正确。

我假设标题上方的元素由JavaScript使用。在这种情况下,最好是由JavaScript创建,而不是包含在页面源代码中

回到你原来的问题,最好把它们放在页面的底部。但是,如果它们是使用CSS“display:none;”或“visibility:hidden;”属性隐藏的,那么大多数(也许所有?)屏幕阅读器或许多其他辅助技术将看不到它们,因此不应成为问题。我写了一份相当详细的报告

当然,如果有人禁用CSS,事情会变得相当混乱。如果页面上的内容即使在禁用CSS和/或JavaScript时也可以使用,那么将这些元素放在页面底部至少可以减少混乱