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

Can I reference multiple elements using aria-describedby?

如果我有两个元素共同描述一个元素,我可以像这样在 aria-describedby 属性上使用两个 id 吗?

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

绝对。

https://www.w3.org/TR/wai-aria/#aria-describedby

Identifies the element (or elements) that describes the object

是的。 aria-describedby (and aria-labelledby) attribute expects an ID reference list 的值。可以提供多个 ID,以空格分隔。当您以这种方式关联多个元素时,它们会连接成一个描述字符串。

注意事项:

  • 标点符号。如果 2 个引用的元素打算作为单独的句子,添加句号(句号)会有所帮助,这样屏幕阅读器可以更自然地宣布它。或者,您可以使用多个参考来构建一个句子。这取决于你的场景。
  • aria-describedby 并非对所有元素都有效。在您的示例中,该属性位于 div 元素上,这通常不起作用。当用于交互元素和地标区域时效果更好。请参阅 Short note on aria-label, aria-labelledby, and aria-describedby 以获取指导。
  • 引用的元素将构成可访问描述的一部分,无论它们是否可见。如果以这种方式关联错误消息,请小心。请在此处查看 Hidden or visible – makes no difference 指南。

有关详细信息,请参阅 HTML 辅助功能 API 映射 1.0 中的 Accessible Name and Description Computation 规则。