无障碍为什么会读取data-fileid属性,而不读取aria-label属性
在无障碍访问(Accessibility,A11Y)中,屏幕阅读器(Screen Reader)如何读取元素的属性取决于 ARIA(Accessible Rich Internet Applications)规范 和 浏览器的具体实现。
如果发现 屏幕阅读器读取 data-fileid
但忽略 aria-label
,可能是由以下几个原因导致:
1. aria-label
被其他属性覆盖
某些情况下,aria-label
会被更高优先级的属性覆盖,例如:
aria-labelledby
(指向另一个元素的 ID)alt
(对于<img>
)title
属性- 元素的文本内容(
innerText
)
示例:aria-label
被 alt
覆盖
<img src="file.jpg" data-fileid="123" aria-label="图片描述" alt="替代文本">
某些屏幕阅读器(如 NVDA + Firefox)可能会优先读取 alt
而不是 aria-label
。
2. data-fileid
被误认为可访问属性
data-*
属性通常是 自定义数据属性,不应该被屏幕阅读器读取。但如果出现以下情况,可能会被意外读取:
- 元素没有正确的语义化标签(如
<div>
或<span>
缺少role
) - 屏幕阅读器或浏览器存在解析 Bug
- 某些 ARIA 属性(如
aria-describedby
)意外关联到data-fileid
错误示例
<div