在表格单元格中,我有一个<span>
元素,其格式为图像,并根据其颜色显示界面状态(启用/禁用/错误)。
对于视力正常的用户,它结构紧凑,易于理解。我不想改变它。但由于此跨度中没有文本,因此屏幕阅读器无法读取。 (可以理解,但问题)
为屏幕阅读器处理此类元素的正确方法是什么?
预期的解决方案是为屏幕阅读器添加带文本的aria-label,但正如我在其他主题中所发现的那样,“aria-label不适用于<div>
或<span>
”。正如我在JAWS 15上测试的那样,这是真的,但是在JAWS 18中这样的标签被正确读取了(为什么?)。
此外,我尝试在此范围内添加role="img"
,并在aria-label
和/或alt
和/或title
中添加文字而JAWS 15中没有结果。
答案 0 :(得分:1)
“普通用户”是什么意思?与低视力用户相比,您是在谈论视力正常的用户吗?后者也是普通用户。
对于低视力用户,是的,aria-label
通常是要走的路。感谢您考虑可访问性问题。
但是对于色彩不足的用户,你也会遇到问题。那些无法区分某些颜色的。颜色是传达物体状态的唯一方法吗?是否有相关的图标?缺少颜色的用户将不会使用屏幕阅读器,因此不会受益于aria-label
。
关于<span>
的默认角色的html或aria规范尚不清楚。 aria-label
应该在accessible name calculation中使用,而第二步只有当元素是表示元素(意味着role='presentation'
或role='none'
)时才应该忽略aria-label。因此,如果<span>
被视为具有表现形式,则其aria-label
将被忽略。 JAWS似乎是这样解释它,但NVDA没有。 Firefox中的NVDA将读取aria-label
的{{1}}。
因此,您最好的选择可能是为<span>
提供一个角色,例如<span>
或role='img'
,这样您就可以给它role='note'
,但是也将导致宣布跨度的作用。
或者如上所述,使用真实的aria-label
和<img>
文字。