什么是 ARIA?它如何帮助提升网页的可访问性?

ARIA 通过添加语义信息增强 Web 应用的可访问性,使辅助技术能够更准确地解读页面内容。

HTML 中等 可访问性 ARIA

ARIA 是指 Accessible Rich Internet Applications,它是一组由 W3C 制定的标准属性,用于增强 Web 应用的可访问性。其目标是通过添加语义信息,帮助辅助技术(如屏幕阅读器)更准确地解读页面内容,特别是在处理动态 UI 组件时。

在前端开发中使用 ARIA 的方法

  1. 核心原则:补充而非取代
    • ARIA 应用以原生 HTML 语义元素为基础。只有当元素(如自定义 div)无法完全表达语义时,才用 ARIA 补充角色和属性。
    • 示例:优先用 <button> 而非 <span role="button">,但自定义元素中可用 ARIA 增强。
  2. 添加属性关键类型
    • Role 属性:定义元素的类型或功能。
      • 示例:<div role="checkbox"> 将 div 标识为复选框。
      • 常见角色包括 "navigation""button""alert"
    • 状态和属性
      • States:描述元素动态状态,如 aria-checked="true"(用于模拟复选框状态)或 aria-expanded="false"(表示下拉菜单收起状态)。
      • Properties:提供额外语义,如 aria-labelledby="labelId"(引用标签)、aria-hidden="true"(标记内容不可见)。
  3. 具体实现步骤和示例
    • 对于自定义控件:使用 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>
      
      
  4. 使用中的注意事项
    • 测试必要性:验证兼容性(支持主流辅助工具)。
    • 避免滥用:仅在自定义组件时使用,确保 role 和属性真实反映交互方式。
    • 语义一致性:ARIA 不会改变视觉外观,只影响辅助技术解读。目标是使内容在任何设备上都可读.

此方法已在多个项目验证,并依循 W3C ARIA 规范指导以提升可访问性评级。