Web 可访问性值(Accessibility Value)
字数 1148 2025-11-28 15:35:19
Web 可访问性值(Accessibility Value)
-
基础概念
Web 可访问性值(Accessibility Value)是 WAI-ARIA 规范中定义的属性,用于描述可交互组件的当前数值状态。它通常应用于进度条、滑块、滚动条、旋钮等需要表达数值范围的元素。例如,一个音量滑块的最小值为 0,最大值为 100,当前值可能为 75。该值通过辅助技术(如屏幕阅读器)向用户宣告,帮助视障用户理解组件的状态。 -
核心属性与关联角色
可访问性值主要通过aria-valuenow、aria-valuemin、aria-valuemax三个属性定义:aria-valuenow:当前数值(必需)aria-valuemin:最小值(默认 0)aria-valuemax:最大值(默认 100)
这些属性需与支持值的 ARIA 角色结合使用,例如:role="slider"(滑块)role="progressbar"(进度条)role="scrollbar"(滚动条)role="spinbutton"(数字输入框)
-
值的动态更新机制
当用户操作导致数值变化时,必须通过 JavaScript 实时更新aria-valuenow。例如拖动滑块时,应触发以下流程:- 监听用户输入事件(如
mousemove或touchmove) - 计算新值并更新
aria-valuenow - 同步更新组件的视觉表现(如滑块位置)
- 屏幕阅读器会自动读取变化后的值(部分需配合
aria-live区域)
- 监听用户输入事件(如
-
与 HTML 原生元素的协作
若使用原生 HTML 元素(如<input type="range">),浏览器会自动管理可访问性值,无需额外添加 ARIA 属性。但在自定义组件中(如用<div>实现的滑块),必须显式声明 ARIA 值属性,否则辅助技术无法识别数值范围。 -
值格式与国际化考量
数值可包含单位(如aria-valuetext="75%"),通过aria-valuetext属性替代纯数字显示。例如温度滑块可设置为aria-valuetext="25摄氏度"。需注意单位描述的本地化,确保屏幕阅读器以用户语言播报。 -
辅助技术交互示例
屏幕阅读器遇到以下代码:<div role="slider" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100" aria-label音量控制">会播报:“音量控制滑块,50”。若用户用键盘箭头调整值至 75,屏幕阅读器将实时播报:“75”。
-
无障碍测试验证
开发中需通过以下方式验证值是否正确传递:- 使用浏览器开发者工具的“无障碍检查器”
- 配合 NVDA、VoiceOver 等屏幕阅读器实际操作测试
- 确保键盘操作时值的变化符合
aria-valuenow更新逻辑