html 元素的可访问性

Accessibility for html elements

我一直在四处寻找更明确的答案,但似乎我发现的内容已经过时,或者论坛对正确答案存在争议。

我正在构建一个没有 bootstrap 的 React Web 应用程序。 在什么地方使用 alt vs 标题 vs aria-label 属性?

*根据我收集到的信息:

a 和 Link 标签使用标题和 aria-label
img 标签使用 alt 和 aria-label
按钮标签使用标题

属性 aria-label 用于 交互式元素 的上下文中,可以通过某些方式单击或操作。 对于链接、按钮和表单元素,以及通过 tabindex=0 人工聚焦的元素尤其如此。

如果您尝试标记的元素 不是交互式的,不可聚焦的,您最好使用视觉隐藏文本而不是咏叹调标签。 前者更普遍地被认可,而后者在非交互元素的情况下不能保证被阅读。

alt 属性特定于 images,即 <img> 标签,以及图像按钮 <input type="image">. 在其他任何地方,它都不存在。它可用于交互式和非交互式图像。 避免在同一个可聚焦元素上使用 alt 和 aria-label 以避免宣布一个而不是另一个的任何可能性(通常一个完全取代另一个)。

现在很少推荐 title 属性,因为它的支持非常多变,具体取决于 运行 屏幕 reader 和浏览器,以及使用哪个元素。 它仍然经常在许多地方工作,尤其是链接和表单元素。 再次强调,避免在同一元素上同时使用 title 和 aria-label 以避免宣布一个而不是另一个的可能性(通常一个完全取代另一个)。