什么是 ARIA?它如何帮助提升网页的可访问性?
ARIA 通过添加语义信息增强 Web 应用的可访问性,使辅助技术能够更准确地解读页面内容。
ARIA 是指 Accessible Rich Internet Applications,它是一组由 W3C 制定的标准属性,用于增强 Web 应用的可访问性。其目标是通过添加语义信息,帮助辅助技术(如屏幕阅读器)更准确地解读页面内容,特别是在处理动态 UI 组件时。
在前端开发中使用 ARIA 的方法
- 核心原则:补充而非取代:
- ARIA 应用以原生 HTML 语义元素为基础。只有当元素(如自定义 div)无法完全表达语义时,才用 ARIA 补充角色和属性。
- 示例:优先用
<button>
而非<span role="button">
,但自定义元素中可用 ARIA 增强。
- 添加属性关键类型:
- Role 属性:定义元素的类型或功能。
- 示例:
<div role="checkbox">
将 div 标识为复选框。 - 常见角色包括
"navigation"
、"button"
和"alert"
。
- 示例:
- 状态和属性:
- States:描述元素动态状态,如
aria-checked="true"
(用于模拟复选框状态)或aria-expanded="false"
(表示下拉菜单收起状态)。 - Properties:提供额外语义,如
aria-labelledby="labelId"
(引用标签)、aria-hidden="true"
(标记内容不可见)。
- States:描述元素动态状态,如
- Role 属性:定义元素的类型或功能。
- 具体实现步骤和示例:
- 对于自定义控件:使用 ARIA 增强 UI(如自定义下拉菜单)。
<!-- 示例 1: 自定义下拉菜单 --> <div role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-owns="options-list"> <button aria-expanded="false">选择选项</button> <ul id="options-list" role="listbox"> <li role="option" aria-selected="true">选项 1</li> <li role="option" aria-selected="false">选项 2</li> </ul> </div>
- 解释:
role="combobox"
定义角色,aria-expanded
状态跟踪展开程度,aria-haspopup
说明弹出内容类型。
- 解释:
- 一般用法:确保元素有清晰的标识:
<!-- 示例 2: ARIA for span-based button --> <span role="button" tabindex="0" aria-label="保存设置">保存</span>
- 对于自定义控件:使用 ARIA 增强 UI(如自定义下拉菜单)。
- 使用中的注意事项:
- 测试必要性:验证兼容性(支持主流辅助工具)。
- 避免滥用:仅在自定义组件时使用,确保
role
和属性真实反映交互方式。 - 语义一致性:ARIA 不会改变视觉外观,只影响辅助技术解读。目标是使内容在任何设备上都可读.
此方法已在多个项目验证,并依循 W3C ARIA 规范指导以提升可访问性评级。