多个Aria角色"导航"和"补充"?

5
在一个文档中,有多个<nav><aside>元素。我应该在所有的<nav>上添加role="navigation",在所有的<aside>上添加role="complementary"吗?
换句话说,在文档中有多个<nav role="navigation">...</nav>和多个<aside role="complementary">...</aside>是否更有益还是更冗余?
1个回答

11
根据HTML5规范<nav>元素默认具有role="navigation"属性,<aside>元素默认具有role="complementary"属性。因此,根据规范,您不需要添加它们。
问题是有多少AT(辅助技术)实际上遵循了这个规范,因此如果您想保险起见,可以添加这些角色,这不会有任何坏处。
另外,请记住,某些<aside>元素应该标记为role=note
另一个需要考虑的因素是,HTML5规范允许将多个独立的<ul>分组放置在一个<nav>下。我不确定这是否意味着只在<nav>上标记role="navigation"就足够了,还是每个<ul>都应该被标记。我无法找到任何相关信息。

谢谢@Evert。所以如果 <aside> 是一个注释,我们必须将其标记为 role="note",否则 ATs 将会认为它是一个 role="complementary"?您能否提供一下规范,指示 <nav> 可以包含多个 <ul>? - Ian Y.
1
我知道你提问已经有一段时间了(我有一段时间没空,之后就忘记了这个问题),但为了完整性,现在我来回答。抱歉。 是的,如果您没有明确使用role="note",辅助技术(如果支持)将恢复默认的“complementary”。 规范告诉我们NAV元素可以包含流元素,因此它几乎可以包含任何东西(除了MAIN)。 - Bert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接