在ARIA演示网站上,role="contentinfo"
元素通常会添加footer
。
但是,footers in modern web design可以具有创造性,因此它们还可以包含补充导航链接,社交网站链接甚至简报形式等内容。
以下面的页脚代码为例。应该在role="contentinfo"
还是footer
元素上添加p
?
<footer>
<nav>
<ul>
........
........
........
........
........
</ul>
</nav>
<form>
........
........
........
</form>
<p>© 2012 Website.com. All rights reserved.</p>
</footer>
我还会考虑浏览器如何将页脚元素映射到辅助功能API。
在Firefox中,页脚被映射到ARIA role = contentinfo
在Webkit / safari / chrome中,如果页脚包含在section或article元素中,则页脚将映射到ARIA role = group,否则它将映射到角色= contentinfo
在IE中它没有映射这样做:
&lt; div role =“contentinfo”&gt;
一些内容
&lt; footer&gt;一些内容&lt; / footer&gt;
&LT; / DIV&GT;将导致在已经将页脚映射到contentinfo的浏览器中宣布嵌套的contentinfo地标。
因此我建议将role = contentinfo添加到主页脚,而不要过多地担心您认为可能不适合页脚的内容。
因此,建议的方法是将role="contentinfo"
添加到主footer
。
答案 0 :(得分:10)
我认为它应该在您的案例中的页脚标记上。
它旨在提供有关父文档的信息,因此如果您的页脚元素提供了父文档的良好上下文,我会使用它。
答案 1 :(得分:7)
截至目前,还没有明确的正确答案。
如果您按照规范:http://www.w3.org/TR/wai-aria/roles#contentinfo,contentinfo
被描述为:
“包含父文档信息的大型可感知区域。此页面区域中包含的信息示例是版权和隐私声明的链接。”
因此,在这种情况下,它应该放在您的<p>
标记上。
但是,假装您是使用这些地标的用户。如果每个人都将role="contentinfo"
放在footer
上,那么这就是用户期望的内容。用户不关心“规范”说什么,他们只是想在从网站浏览网站时获得一致的体验。他们可能期待页脚链接,并且可以在contentinfo
部分,因为这是在许多网站上实现的方式,正如您所提到的,这是许多可访问性专家推荐的方式。
我更喜欢迎合用户,因此我会将其应用于footer
元素,但是我会在脑海中留意这违反了规范(或至少我的解释它)并且随着浏览器和其他可访问技术开始以更一致的方式实现可访问性,这种实现可能会发生变化。
答案 2 :(得分:3)
我会使用<p>
元素。我的意思是,HTML的重点是为文本提供上下文。因此,通过适当的标记给出适当的上下文。
将角色赋予最合适的元素,它不是页脚元素的有限属性。
答案 3 :(得分:1)
这是冗余信息,因为语义已经通过HTML5规范传达https://dequeuniversity.com/assets/html/jquery-summit/html5/slides/landmarks.html#the_difference_between_html5_and_aria
通常,如果ARIA角色与HTML5元素的语义理解重叠,则可以跳过ARIA角色。
我认为这是正确的,但需要屏幕阅读器测试以确定这是准确的。