[h6 aria-level="7"] 是创建 [h7] 元素的可靠方法吗?
Is [h6 aria-level="7"] a reliable way to create a [h7] element?
通常,HTML 个标题在失效之前只能上升到 <h6>
个。据我所知,以下是在 HTML 中创建 <h7>
元素的完全有效方法:
<h6 aria-level="7">This is a heading level 7 element</h6>
我已经在 Chrome、Firefox 和 Internet Explorer 的 NVDA 中对此进行了测试,它按预期工作。
不过我真的无权访问任何其他屏幕 reader。可以访问大量屏幕 reader / 浏览器组合的人能否确认以上内容是否作为 <h7>
元素始终如一地传达给用户?
如果您知道屏幕 reader / 浏览器组合在这种情况下 肯定 不起作用,请让我知道。
Is [h6 aria-level=“7”] a reliable way to create a [h7] element?
没有
这违背了 second rule of ARIA:
Do not change native semantics, unless you really have to.
如果你想定义一个新的标题级别,你应该使用
<div role="heading" aria-level="7">
参见 WAI ARIA 示例:
编辑:
WCAG 规范中的另一个示例 ARIA12: Using role=heading to identify headings(感谢 @Daniel-tonon 指出这一点)
请注意,无论您使用 h6
还是 div
(请参阅@QuentinC 回答)
,JAWS 对 6 以上的任何 aria-level
的支持都不好
虽然 <div role="heading" aria-level="7">
似乎是定义 H7 元素的有效方式,但屏幕阅读器并不普遍将其视为 H1-H6。
我至少可以确认它不适用于 Jaws。有了大白鲨就更糟了,被当成了H2!
在 Firefox、chrome 和 IE11 上使用 Jaws 进行测试。
还测试了级别 8、9、10、11 和 12。指定 aria-level="X"
和 X>6
总是将其转换为 H2。
所以,千万不要用这个技巧来制作一种H7元素。它没有得到普遍支持。
你最好再考虑一下你的页面结构。您真的需要 7 级标题吗?
人们常说一份好的文档不应该超过3层,对于很长或很重的技术文档可能是4层,5层除外。鉴于H1的特殊地位,让我们添加一个。所以,6级肯定绰绰有余了。
你是不是跳过了一些关卡?
跳过标题级别在语义上是不正确的,您不应该仅仅因为视觉外观而这样做。
事实上,the ARIA specification 从未明确声明允许指定高于 6 的级别。
aria-level 的默认值为 2。这解释了 Jaws 在遇到 aria-level 的无效值时的合法行为。
通常,HTML 个标题在失效之前只能上升到 <h6>
个。据我所知,以下是在 HTML 中创建 <h7>
元素的完全有效方法:
<h6 aria-level="7">This is a heading level 7 element</h6>
我已经在 Chrome、Firefox 和 Internet Explorer 的 NVDA 中对此进行了测试,它按预期工作。
不过我真的无权访问任何其他屏幕 reader。可以访问大量屏幕 reader / 浏览器组合的人能否确认以上内容是否作为 <h7>
元素始终如一地传达给用户?
如果您知道屏幕 reader / 浏览器组合在这种情况下 肯定 不起作用,请让我知道。
Is [h6 aria-level=“7”] a reliable way to create a [h7] element?
没有
这违背了 second rule of ARIA:
Do not change native semantics, unless you really have to.
如果你想定义一个新的标题级别,你应该使用
<div role="heading" aria-level="7">
参见 WAI ARIA 示例:
编辑: WCAG 规范中的另一个示例 ARIA12: Using role=heading to identify headings(感谢 @Daniel-tonon 指出这一点)
请注意,无论您使用 h6
还是 div
(请参阅@QuentinC 回答)
aria-level
的支持都不好
虽然 <div role="heading" aria-level="7">
似乎是定义 H7 元素的有效方式,但屏幕阅读器并不普遍将其视为 H1-H6。
我至少可以确认它不适用于 Jaws。有了大白鲨就更糟了,被当成了H2!
在 Firefox、chrome 和 IE11 上使用 Jaws 进行测试。
还测试了级别 8、9、10、11 和 12。指定 aria-level="X"
和 X>6
总是将其转换为 H2。
所以,千万不要用这个技巧来制作一种H7元素。它没有得到普遍支持。
你最好再考虑一下你的页面结构。您真的需要 7 级标题吗? 人们常说一份好的文档不应该超过3层,对于很长或很重的技术文档可能是4层,5层除外。鉴于H1的特殊地位,让我们添加一个。所以,6级肯定绰绰有余了。
你是不是跳过了一些关卡? 跳过标题级别在语义上是不正确的,您不应该仅仅因为视觉外观而这样做。
事实上,the ARIA specification 从未明确声明允许指定高于 6 的级别。 aria-level 的默认值为 2。这解释了 Jaws 在遇到 aria-level 的无效值时的合法行为。