Html Web可访问性-缺少标题顺序规则<;h2>;

Html Web可访问性-缺少标题顺序规则<;h2>;,html,accessibility,wcag2.0,Html,Accessibility,Wcag2.0,我们继承了一个网站,我们目前正试图使WCAG2.0 AA兼容 其中一页未通过标题顺序规则,因为它有和标记,但没有先前的或 我们正在添加一个标记(因为所有页面都应该有一个),但是没有必要添加标记,并且修改和将涉及对各种jQuery代码和CSS的大量重构 有什么窍门可以让页面变得可访问吗?我讨厌在屏幕上添加一个隐藏的标签,因为屏幕阅读器可能会看到这个标签。还是他们忽略了隐藏的标签,页面就变得兼容了?我以前真的见过这种情况,实际上我自己也掉进了这个陷阱。通过将样式应用于h3和h4,可以使页面以某种方式

我们继承了一个网站,我们目前正试图使WCAG2.0 AA兼容

其中一页未通过标题顺序规则,因为它有
标记,但没有先前的

我们正在添加一个
标记(因为所有页面都应该有一个),但是没有必要添加
标记,并且修改
将涉及对各种jQuery代码和CSS的大量重构


有什么窍门可以让页面变得可访问吗?我讨厌在屏幕上添加一个隐藏的
标签,因为屏幕阅读器可能会看到这个标签。还是他们忽略了隐藏的标签,页面就变得兼容了?

我以前真的见过这种情况,实际上我自己也掉进了这个陷阱。通过将样式应用于h3和h4,可以使页面以某种方式显示。 但是,从标题标记的角度来看,它们的目的是为文档添加语义,这一点我们都知道。因此,有h3但没有h2的文档大纲是否有意义?屏幕阅读器和其他辅助工具使用这些标题信息,有些可能会感到困惑。
我最有影响力的决策点是,“用户将如何消费这些信息?”他们是否能够消费这些信息?跳过标题级别是否有意义?我起初不这么认为,但请让我知道你的不同意见

我认为确保法规遵从性的最佳方法是重构javascript/CSS中的代码。要隐藏元素,可以使用
hidden
属性或aria hidden


您是想满足WCAG 2.0 AA的要求,还是想让页面变得可访问

这些通常是相同的,但有时不是

隐藏的
将通过WCAG,具体取决于您隐藏它的方式。然而,这并不会使页面更容易访问

虽然这可能很糟糕,但最好、最正确的方法是将
修正为正确的级别(这是我的答案,其余部分都是模糊的)。如果您提供一些代码示例并询问有关如何编写正则表达式或在整个继承系统中编写这些替换脚本的提示,您的问题可能更合适


如果有人告诉你没有时间做正确的事情,那么代码示例(或示例站点)可能仍然有助于获得一些指导。

如果你真的关心可访问性,在一些屏幕阅读器中,给出一个空的
h2
(即使是隐式地省略它)可能不会给出任何线索,当用户浏览文档大纲时,向用户提供已公布部分的详细信息(1)

也就是说,我找不到任何地方(无论是WCAG还是HTML5文档)有人说你不能省略一个级别的标题

唯一的官方()要求是使用“级别较低的标题”来开始新的小节,这意味着您可以在
h1
的正下方使用
h3
,但不能使用另一个
h1

甚至WCAG也举了一个例子,说这个例子并不打算规定某一特定部分的水平


(1) HTML5.1提供了一个平台,我们可以在这里阅读“隐含标题”或有标题内容元素时排名的使用

如果您没有2级标题,您当前的3级和4级标题基本上是2级和3级标题。您确定不能简单地在整个代码库中运行
sed s/h3/h2/| sed s/h4/h3/
?为什么不需要h2?如果你要制作本页的目录,h3s和h4s将位于何处?正如齐塔人所提到的,h3实际上可能是h2。如果你说它是h3,因为它的样式是h3,那么你很可能不符合WCAG 1.3.1,其中列出了@Zeta的许多公认的失败标准,3级和4级标题不会自动变成2级和3级标题。这表明文档大纲算法存在,但它不存在。但是,您的搜索和替换建议似乎是最直接的,没有看到此站点的代码。@Mike,您能控制容器吗?如果是这样的话,像这样的JS可能有助于动态更改标题级别,尽管这是一个地狱般的黑客:@aardrian err,我不是指自动。我的意思是:“如果你使用
,你就没有在语义上正确地使用后两个。”手放下,这就是方法。但是,如果它是遗留代码,并且几乎不可能重构(仍然应该!),那么还可以选择将
role=“heading”
aria级别一起使用。这将允许修改语义以反映适当的层次结构…但是,这应该是最后的手段,并在所有受支持的屏幕阅读器上进行测试,以确保它们都支持这一点。