【发布时间】:2021-09-13 20:33:01
【问题描述】:
当鼠标悬停在菜单栏中的“故事”按钮上时,我希望屏幕阅读器能够阅读文本“故事,菜单项”。我尝试在span 中添加aria-label 和aria-describedby,但屏幕阅读器仍在阅读“故事”文本,而不是“故事、菜单项”文本。
原码:
<li role="menuitem">
<span class="">Stories</span>
</li>
我尝试过但不起作用的事情:
(1) 添加aria-label
<li role="menuitem">
<span class="" aria-label="stories, menu item">Stories</span>
</li>
(2) 添加aria-describedby
<li role="menuitem">
<span class="" aria-describedby="stories, menu item">Stories</span>
</li>
【问题讨论】:
-
@AryanBeezadhur 谢谢,但
title也不起作用,它仍在为屏幕阅读器阅读“故事” -
您是否注意到上面
aria-describedby的示例在标签内仍然有aria-label?这只是您复制/粘贴到您的问题中的错误,还是您的实际代码中的错误? -
@jontlymon 不,这是我的实际代码。它们不应该在
span标签内吗? -
@jontlymon 对不起,这是一个错字。我已经编辑了代码
-
这看起来好像你陷入了反模式。如果屏幕阅读器没有读出有关角色的上下文,这可能表明您没有正确连接它。我建议看看this answer that recommends against trying to create a
menuitem。它的要点是这种类型的菜单遵循您需要遵循和实施的特定规则和行为 - 如果您不准备这样做,请不要使用此角色。请记住,没有 ARIA 比糟糕的 ARIA 更好。
标签: html accessibility screen-readers accessible