Web 可访问性名称推导(Accessibility Name Calculation)
字数 801 2025-11-26 16:01:44
Web 可访问性名称推导(Accessibility Name Calculation)
-
基础概念
Web 可访问性名称是辅助技术(如屏幕阅读器)向用户描述的界面元素标识。它不同于视觉显示的文本标签,而是通过算法从多个属性中推导出的语义化名称。例如一个按钮可能包含图标和aria-label,其可访问性名称优先使用aria-label而非图标内容。 -
名称推导优先级规则
根据 W3C 的可访问性 API 映射规范,名称推导按固定顺序检测属性,一旦找到有效值即停止:- 步骤1:检测
aria-labelledby属性,引用其他元素的文本内容作为名称 - 步骤2:检测
aria-label属性提供的直接描述 - 步骤3:检测原生 HTML 属性(如
<img>的alt、<input>关联的<label>) - 步骤4:提取元素内部的文本内容(如
<button>提交</button>) - 步骤5:最后回退到元素的
title属性
- 步骤1:检测
-
复合场景处理
当多个名称源共存时,推导规则需处理复杂情况:- 若
aria-labelledby引用多个元素,按 DOM 顺序拼接文本 - 隐藏元素(
aria-hidden="true")的内容会被忽略 - 递归推导:被引用的元素若自身需要名称推导,会先计算其名称
- 若
-
实际应用示例
分析以下代码的可访问性名称:<div id="desc">验证身份</div> <button aria-labelledby="desc" aria-label="开始验证">点击这里</button>- 根据优先级,
aria-labelledby引用的 "验证身份" 成为名称,忽略aria-label和内部文本 - 屏幕阅读器将朗读 "验证身份" 而非 "开始验证"
- 根据优先级,
-
跨框架实现差异
不同浏览器/辅助技术对规范的支持程度可能影响最终名称。开发者需通过浏览器开发者工具的 Accessibility 面板验证推导结果,并优先使用显式声明(如aria-label)避免依赖隐式推导。