aria-label 可以用于什么?

Pat*_*nes 2 html accessibility wcag screen-readers sitefinity

具体可以aria-label用在什么地方呢?

我发现文档显示它可以用于交互式项目(例如)<button>,但它可以用于以下任何项目: <p><span>或?<li><abbr>

我试图在段落中包含特定的单词和缩写,读出为特定的内容(例如:Aussies 读出为“Ozzies”而不是“Ossies”或“NSW”读出为“New South Wales”)

在 Microsoft Edge、Google Chrome、Mozilla Firefox(所有 Windows 10)和 iPhone Safari (iOS) 中进行测试

Jos*_*osh 7

通常不应aria-label在静态内容上使用。它仅适用于交互式元素和一些分区元素。

https://www.w3.org/TR/using-aria/#practical-support-aria-label-aria-labelledby-and-aria-scribedby

  • aria-labelledby并且aria-describedby对交互式内容元素(例如链接和表单控件(包括许多输入类型))提供了强大的支持。

  • 对于大多数辅助技术,可以在, 和元素 上使用aria-label或,但不能在, , , 或上使用。aria-labelledby<nav><main><footer><section><article><header>

  • aria-label对或aria-labelledby的支持不一<aside>

  • aria-labelAndroid 上的 Talkback 会覆盖所有带有或 的地标的内容aria-labelledby

  • 可以在带有, ,的元素上使用aria-labelor ,JAWS 不支持在, , 上使用它们。NVDA、VoiceOver 和 Talkback 都可以aria-labelledbydivrole=navigationrole=searchrole=mainrole=bannerrole=complementaryrole=contentinfo

  • aria-labelaria-labelledby和以及元素aria-describedby上效果良好table,但 NVDA、iOS 上的 VoiceOver 和下一节中讨论的 Talkback 除外。thtd

  • 不要在任何标题元素上使用aria-label或 ,因为它会覆盖 NVDA、VoiceOver 和 Talkback 上的它们。aria-labelledbyJAWS 忽略了他们。

  • 不要在任何其他非交互式内容(例如、、或 )上使用aria-label或,因为它会被忽略。aria-labelledbyplegendliul

  • 不要在 or 上使用aria-labelor ,除非给出了。当或位于交互角色(例如链接或按钮)或 img 角色时,它们会覆盖或的内容。除了地标(如上所述)之外的其他角色将被忽略。aria-labelledbyspandivrolearia-labelaria-labelledbydivspan

请记住,上述指南是在 2018 年编写的,某些浏览器的支持可能有所改善,但上述建议仍然安全,我建议主要遵循它。

感谢 brennanyoung 传递 Steve Faulkner 的这篇精彩文章: https://html5accessibility.com/stuff/2020/11/07/not-so-short-note-on-aria-label-usage-big-table-edition /

值得一提的是,上面的测试结果比我文章开头给出的W3C建议更新,并且在某些地方确实与W3C建议相矛盾。

其他资源:

  • 注意:“aria-label”可用于一些不可操作的元素类型,例如 UL 和 OL。它真正需要出现的另一个地方是 NAV,在存在多个导航地标的情况下,尽管(可以说)NAV 是可操作的,因为它的子项是超链接。`aria-label` **应该**用于为 SVG 提供替代文本,而这些文本通常是不可操作的。SVG 不支持 alt 本身,即使使用 `role=img` 也是如此。“大表”在这里:https://html5accessibility.com/stuff/2020/11/07/not-so-short-note-on-aria-label-usage-big-table-edition/ (4认同)