可访问性测试失败:元素必须将其可见文本作为其可访问名称的一部分

accessibility test fails: Elements must have their visible text as part of their accessible name

我有一个带有可见文本的按钮 'Make default',例如下面的按钮

我想使用 aria-label 提供易于访问的名称 'Click to make this your default card'(为按钮提供上下文) 大白鲨屏幕 reader 完美阅读。但可访问性测试规则 (https://www.w3.org/WAI/WCAG21/Techniques/general/G208) 失败并出现以下错误:

“严重:元素必须将其可见文本作为其可访问名称的一部分”

由于可访问名称 (aria-label) 不包含显示名称 ('Make default'),因此导致了问题。

但我无法更改可访问文本以包含显示文本(我必须使用可访问文本:'Click to make this your default card',因为要求就是这样)

所以,有什么办法可以解决这个问题。这样我就可以指定可访问的文本和显示名称,而不会出现上述可访问性问题。

我希望,我已经把问题解释清楚了。

非常感谢。

WCAG 标准制定这些规则是有原因的。但是可以使用 aria-labelledby 解决方法。将您的帮助文本插入隐藏标签,并将该标签的 id 赋给 aria-labelledby。像这样:

<button type="button" aria-labelledby="button_message"> Make Default </button>
<label id="button_message" class="hiddenlabel">Click to make this your default card</label>

标签可能被

隐藏
.hiddenlabel {
  display: none;
}

注意:可见文本应匹配或包含在 aria-label 中。如果再次出现,您可以修改可见文本