大家好!
这是一份简要报告。我刚刚在另一个帖子中发现,“点赞”按钮有时缺少无障碍标签。我尚未找到具体规律,但这可能与帖子是否已收到一个或多个点赞,或尚未收到任何点赞有关,此时控件会被拆分以显示该状态。随后我会看到两个按钮:其中一个显示计数,另一个则没有标签。
Marco
大家好!
这是一份简要报告。我刚刚在另一个帖子中发现,“点赞”按钮有时缺少无障碍标签。我尚未找到具体规律,但这可能与帖子是否已收到一个或多个点赞,或尚未收到任何点赞有关,此时控件会被拆分以显示该状态。随后我会看到两个按钮:其中一个显示计数,另一个则没有标签。
Marco
啊,我想这是因为我们正在 Meta 上测试我们的 Discourse Reactions 插件(https://meta.discourse.org/t/notice-testing-discourse-reactions-here-on-meta-for-1-week/183672)。我们需要修复这个问题!感谢你的反馈。
@Ahmed_Gagan 供参考,请务必查看一下。
我已尝试并用多种不同情况进行了测试,但无法复现该问题。标签始终会显示,只是首次显示会有些许延迟,这是 title 属性的通用行为。
我推测问题出在“点赞”按钮提供的工具提示上。我们是否对问题有一致的理解?
我指的是屏幕阅读器在按下“点赞”按钮时播报的内容。或者,您或许可以添加其他反应,但我的屏幕阅读器对此完全没有任何提示。唯一有标签的元素是显示当前点赞数的控件(当点赞数为1或更高时)。如果点赞数为0,该控件甚至不会出现。然而,在 Windows、Mac 和 iOS 上,我用来添加“点赞”反应的按钮对屏幕阅读器而言没有任何标签。
我是盲人,因此不使用鼠标。此外,title 属性本身对于触控交互来说就存在问题,因为通常没有简单的方法来触发鼠标悬停。
希望这能有所帮助……
为明确起见,我指的是按钮 #discourse-reactions-actions-916340 > div > div.discourse-reactions-reaction-button.my-likes > button。该按钮没有 title 或 aria-label,内部仅包含一个被标记为 aria-hidden 的 SVG。即使它未被隐藏,该 SVG 及其子元素也不包含任何屏幕阅读器可利用的信息。因此,解决方案如下:
#discourse-reactions-counter-916340 应提供更清晰的信息,说明具体是谁使用了哪种反应。我不确定视力正常者如何获取这些信息(例如点击该数字后是否会弹出某个窗口),但这一功能也必须对屏幕阅读器和键盘用户可访问。目前,至少对我来说,该小部件似乎仅支持“点赞”反应。
抱歉发了多条消息,但这表明有时要找到问题根源需要多么细致。当前,非本人帖子的 title 属性位于实际“点赞”按钮的父级 div 上。然而,为了让屏幕阅读器能够识别,title 必须直接设置在按钮元素上。屏幕阅读器不会从任意元素中读取 title 属性。过去 25 年中,这一特性已被过度滥用,导致无法泛化适用。因此,如果您将 title 属性移动到 <button> 子元素上,屏幕阅读器就能正确识别它。
感谢 @MarcoZehe 指出你需要标题的确切位置。
我已在此处提交了一个拉取请求(PR),将解决你的问题。
@MarcoZehe,该 PR 现已合并,你可以拉取最新的插件并试用。
谢谢!我会等待该实例拉取插件的最新代码。我并没有运行自己的 Discourse 实例,因此无法将插件拉取到任何地方。感谢您快速的修复!
非常感谢,Marco。
我刚刚重新部署了反应功能(大约 15 分钟后生效)。
如果问题已解决,请告诉我们。
嗨 @Sam,这个问题在我看来肯定已经解决了。谢谢!
非常感谢你,Marco,帮忙测试!