是否有关于何时选择 aria-descriptionby 而不是 aria-labelledby 的指导? [英] Is there any guidance on when to choose aria-describedby instead of aria-labelledby?

查看:22
本文介绍了是否有关于何时选择 aria-descriptionby 而不是 aria-labelledby 的指导?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有关于何时选择 aria-describedby 而不是 aria-labelledby 的指导?

阅读关于这两个属性的 MDN 指南,我觉得它们相似且可以互换.两者似乎都表明它们可用于输入标签和其他内容,但许多合规工具似乎不喜欢输入标签上的 aria-describeby.我讨厌盲目地应用某个特定的属性,因为某个工具说我应该这样做,而且我更愿意知道一些具体的时间和原因

以下是 MDN 上关于两个 aria 属性的条目:

aria-labelledby 属性

aria-描述的属性

解决方案

它们确实非常相似,只有一个关键区别.

aria-labelledby

aria-labelledby覆盖任何现有标签,包括任何语义派生标签.

例如,如果您有一个

aria-描述的

另一方面,

aria-描述的 会将链接的信息作为附加信息读取.它将在按钮语义派生信息之后读取此信息.

因此在下面的示例中,它将读取此文本现在将被读取"、第一个标签"和第一个标签".然后是更多信息".您需要再次聚焦按钮(而不是鼠标悬停)才能看到这种行为.

<button aria-describeby="lbl1 lbl2">现在将阅读此文本</button><p id="lbl1">第一个标签</p><p id="lbl2">更多信息</p>

限制

警告 - 支持aria-labelledbyaria-scribedby 真的没有你想象的那么好.

如果信息真的很重要(即元素没有它就没有意义),那么您应该改用视觉隐藏文本.

我有一个 Stack Overflow 回答关于您应该用于视觉隐藏文本的类,而不是大多数库中内置的 sr-only 类.

请注意,在某些情况下您不能使用它(即在

发送“验证码”获取 | 15天全站免登陆