Ben Myers 在这篇无障碍实战文章中纠正了一个极其常见的反模式:在 静态文本元素(如 <div>、<span>、<p>)上使用 aria-label 或 aria-labelledby。根据 ARIA 规范,这些属性的可访问名称仅对交互元素(按钮、链接、表单控件)和地标区域有效——在静态元素上使用时,大多数屏幕阅读器会直接忽略。文章通过详细的角色映射表列出了所有禁止使用 aria-label 的 HTML 元素,并提供了正确的替代方案。
aria-label 禁止在 generic、paragraph、emphasis、strong 等角色上使用——这意味着 <div>、<p>、<em>、<strong> 默认不支持role="img"),然后再使用 aria-label 才有效<span aria-label="vegetarian">🌱</span> 标注素食图标——屏幕阅读器只看到 emoji,aria-label 被忽略