这是一个有效的场景:
代码:
<html>
<div role = "main">
<div role = "main">
</div>
</div>
</html>
在具有角色main的div中具有角色main。它会在屏幕阅读器中引起任何问题吗?
答案 0 :(得分:3)
作者不得在文档中包含多个主要元素。
(术语“文件”很重要,必须正确理解,见下文)
话虽如此:
会导致屏幕阅读器出现任何问题吗?
是。它可能会导致问题,因为main
元素是“跳到主要内容”链接的非突兀的替代。因此,拥有两个main
节点可能会导致未指定的行为。
编辑:关于ARIA文档
注意:因为文档和应用程序元素可以嵌套在DOM中,所以它们可能有多个主要元素作为DOM后代,假设每个元素与不同的文档节点相关联,或者通过DOM嵌套(例如,文档中的文档)或使用aria-owns属性。
只要HTML标准网页只有一个document
节点(body
的默认角色),那么绝不能包含多个{{} {1}}(或main
)元素。但您仍然可以将文档节点嵌套在role=main
标记内,并且每个文档只能有一个body
元素。
答案 1 :(得分:1)
docs are pretty clear on this(注意:应该,而不是必须)
在任何文档或应用程序中,作者应该只标记一个具有主要角色的元素。
这是否会导致屏幕阅读器出现问题可能会有所不同。
HTML spec在这里也很有启发性。
修改:update in the HTML 5.2 spec:
文档中不得有多个可见的主要元素。如果文档中存在多个主要元素,则必须使用§5.1隐藏属性隐藏所有其他实例。