使用aria-describedby引用含非纯文本内容的描述是否合法?
关于aria-describedby包含元素的合法性问题
你的代码示例如下:
<label for="input">Description<label> <textarea id="input" aria-describedby="help"></textarea> <div id="help"> <kbd>Enter<kbd> to create a new line </div>
MDN相关说明翻译如下:
注意:aria-describedby 的内容应仅为文本字符串。如果内容中存在重要的底层语义,请考虑使用 aria-details。
针对你的问题,解答如下:
- 语法层面:这种写法不会触发语法错误,多数屏幕阅读器仍会读取
<kbd>元素内的文本内容,不会直接导致功能失效。 - 最佳实践层面:这不符合WAI-ARIA的设计意图。aria-describedby的定位是提供纯文本描述,
<kbd>元素携带的“键盘按键”语义属于重要的底层语义信息,这类内容更适合通过aria-details来引用。 - 实际影响:若继续使用aria-describedby,屏幕阅读器只会提取纯文本,
<kbd>的特殊语义会丢失,辅助技术用户无法感知到这是一个键盘操作提示;改用aria-details则能保留并传递<kbd>的语义,让用户准确理解提示内容。
内容的提问来源于stack exchange,提问作者darkhorse
相关产品推荐
相关产品推荐

