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) 中进行测试
通常不应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-label
Android 上的 Talkback 会覆盖所有带有或 的地标的内容aria-labelledby
。可以在带有, ,的元素上使用
aria-label
or ,JAWS 不支持在, , 上使用它们。NVDA、VoiceOver 和 Talkback 都可以aria-labelledby
div
role=navigation
role=search
role=main
role=banner
role=complementary
role=contentinfo
aria-label
、aria-labelledby
和以及元素aria-describedby
上效果良好table
,但 NVDA、iOS 上的 VoiceOver 和下一节中讨论的 Talkback 除外。th
td
不要在任何标题元素上使用
aria-label
或 ,因为它会覆盖 NVDA、VoiceOver 和 Talkback 上的它们。aria-labelledby
JAWS 忽略了他们。不要在任何其他非交互式内容(例如、、或 )上使用
aria-label
或,因为它会被忽略。aria-labelledby
p
legend
li
ul
不要在 or 上使用
aria-label
or ,除非给出了。当或位于交互角色(例如链接或按钮)或 img 角色时,它们会覆盖或的内容。除了地标(如上所述)之外的其他角色将被忽略。aria-labelledby
span
div
role
aria-label
aria-labelledby
div
span
请记住,上述指南是在 2018 年编写的,某些浏览器的支持可能有所改善,但上述建议仍然安全,我建议主要遵循它。
感谢 brennanyoung 传递 Steve Faulkner 的这篇精彩文章: https://html5accessibility.com/stuff/2020/11/07/not-so-short-note-on-aria-label-usage-big-table-edition /
值得一提的是,上面的测试结果比我文章开头给出的W3C建议更新,并且在某些地方确实与W3C建议相矛盾。
其他资源: