可访问性测试失败:元素必须将其可见文本作为其可访问名称的一部分
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 中。如果再次出现,您可以修改可见文本
我有一个带有可见文本的按钮 '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 中。如果再次出现,您可以修改可见文本