我可以使用aria-describedby引用多个元素吗?

19

如果我有两个元素,它们一起描述一个元素,我能否在aria-describedby属性上使用两个id,就像这样?

<div id="description-1"></div>
<div id="description-2"></div>
<div aria-describedby="description-1 description-2"></div>
2个回答

25
是的。aria-describedby(和aria-labelledby)属性期望其值为ID引用列表。可以提供多个ID,用空格分隔。当以这种方式关联多个元素时,它们将连接成一个单一的描述字符串。
需要注意以下几点:
- 标点符号。如果两个引用的元素被视为单独的句子,最好包含一个句号,这样屏幕阅读器可以更自然地宣读它。或者,您可以使用多个引用来构建一个句子。这取决于您的情况。 - aria-describedby对所有元素都不是有效的。在您的示例中,该属性位于一个
元素上,通常不起作用。当用于交互式元素和地标区域时,它的效果更好。请参见关于aria-label、aria-labelledby和aria-describedby的简短说明以获取指导。 - 无论这些被引用的元素是否可见,它们都将成为可访问描述的一部分。如果以这种方式关联错误消息,请小心。请参见隐藏或可见-没有区别以获取相关指导。

更多细节请参见《HTML无障碍API映射1.0》中的可访问名称和描述计算规则。


当我试图弄清楚“ID引用列表”是以空格分隔还是逗号分隔时,我发现了这个链接:https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute - FrancisA
不错的观点@FrancisA-我的答案没有说分隔符是什么。它确实是一个以空格分隔的列表。我会编辑我的答案来说明这一点。 - andrewmacpherson
有趣的是,ARIA建议也没有说明要使用什么分隔符!值得向W3C ARIA提交问题以澄清这一点。 - andrewmacpherson
啊,原来“以空格分隔”的格式已经在 ARIA 1.1 推荐标准中解释过了,在附录 B 中:将 WAI-ARIA 值类型映射到语言。我会编辑我的回答并链接到那里。 - andrewmacpherson

3

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