div上的咏叹调标签被称为图像

时间:2018-03-28 11:07:37

标签: html wai-aria screen-readers jaws-screen-reader

在表格单元格中,我有一个<span>元素,其格式为图像,并根据其颜色显示界面状态(启用/禁用/错误)。

对于视力正常的用户,它结构紧凑,易于理解。我不想改变它。但由于此跨度中没有文本,因此屏幕阅读器无法读取。 (可以理解,但问题)

为屏幕阅读器处理此类元素的正确方法是什么?

预期的解决方案是为屏幕阅读器添加带文本的aria-label,但正如我在其他主题中所发现的那样,“aria-label不适用于<div><span>”。正如我在JAWS 15上测试的那样,这是真的,但是在JAWS 18中这样的标签被正确读取了(为什么?)。

此外,我尝试在此范围内添加role="img",并在aria-label和/或alt和/或title中添加文字而JAWS 15中没有结果。

1 个答案:

答案 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>文字。