无障碍, WCAG·

Web 无障碍访问指南

让每个人都能访问和使用你的网站

Web 无障碍访问确保所有用户,包括有残障的用户,都能访问和使用你的网站。

什么是无障碍访问

Web 无障碍访问是指让所有人都能感知、理解、导航和交互 Web 内容。

WCAG 原则

WCAG(Web 内容无障碍指南)基于四个原则:

  1. 可感知 - 信息和用户界面组件必须以用户能感知的方式呈现
  2. 可操作 - 用户界面组件和导航必须可操作
  3. 可理解 - 信息和用户界面操作必须可理解
  4. 健壮性 - 内容必须足够健壮,能被可靠地被各种用户代理(包括辅助技术)解读

语义化 HTML

使用正确的 HTML 元素:

<!-- 正确 -->
<header>
  <nav>
    <ul>
      <li><a href="/">首页</a></li>
      <li><a href="/about">关于</a></li>
    </ul>
  </nav>
</header>

<main>
  <article>
    <h1>文章标题</h1>
    <p>文章内容...</p>
  </article>
</main>

<footer>
  <p>&copy; 2024 网站名称</p>
</footer>

图片替代文本

为所有图片提供有意义的 alt 文本:

<!-- 有意义的图片 -->
<img src="dog.jpg" alt="一只金毛犬在草地上奔跑">

<!-- 装饰性图片 -->
<img src="decorative.png" alt="" role="presentation">

<!-- 信息图片 -->
<img src="chart.png" alt="销售额同比增长 30%">

表单标签

为表单元素提供标签:

<form>
  <label for="email">邮箱地址</label>
  <input type="email" id="email" name="email" required>

  <fieldset>
    <legend>性别</legend>
    <input type="radio" id="male" name="gender" value="male">
    <label for="male"></label>

    <input type="radio" id="female" name="gender" value="female">
    <label for="female"></label>
  </fieldset>
</form>

键盘导航

确保所有交互元素都可以通过键盘访问:

/* 焦点样式 */
a:focus, button:focus, input:focus {
  outline: 3px solid #005fcc;
  outline-offset: 2px;
}

/* 跳过导航链接 */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: #000;
  color: #fff;
  padding: 8px;
  z-index: 100;
}

.skip-link:focus {
  top: 0;
}
<a href="#main-content" class="skip-link">跳到主要内容</a>

ARIA 属性

使用 ARIA 属性增强可访问性:

<!-- 按钮 -->
<button aria-label="关闭" onclick="closeDialog()">×</button>

<!-- 展开和折叠 -->
<button aria-expanded="false" aria-controls="content1">展开</button>
<div id="content1">内容...</div>

<!-- 进度条 -->
<div role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100">
  75%
</div>

<!-- 模态框 -->
<div role="dialog" aria-modal="true" aria-labelledby="dialog-title">
  <h2 id="dialog-title">对话框标题</h2>
  <p>对话框内容...</p>
</div>

颜色对比度

确保文本和背景之间有足够的对比度:

  • 正常文本:至少 4.5:1
  • 大文本(18pt+ 或 14pt+ 加粗):至少 3:1

使用工具检查:

最佳实践

  1. 语义化 HTML - 使用正确的 HTML 元素
  2. 键盘支持 - 确保键盘导航
  3. 焦点管理 - 清晰的焦点指示
  4. 颜色对比度 - 足够的对比度
  5. 替代文本 - 为图片提供 alt 文本
  6. 表单标签 - 使用 label 和 fieldset
  7. 测试工具 - 使用无障碍测试工具

测试工具

学习资源

让所有人都能访问你的网站!