Z
ZHANK
HTML5 进阶

可访问性

aria-label/role 无障碍属性、alt 文本、语义化、键盘导航

可访问性

Web 可访问性(A11y) 确保所有用户(包括残障人士)都能正常使用你的网页。

学完本章你将: 掌握 aria 属性、alt 文本、语义化、键盘导航。


alt 文本

html
<!-- ✅ 有用的描述 -->
<img src="chart.png" alt="2024年Q4销售额增长30%的柱状图">

<!-- ✅ 纯装饰图片用空 alt -->
<img src="decoration.png" alt="">

<!-- ❌ 无 alt -->
<img src="chart.png">

aria 属性

html
<!-- aria-label:给屏幕阅读器提供标签 -->
<button aria-label="关闭弹窗"></button>
<nav aria-label="主导航">
  <a href="/">首页</a>
</nav>

<!-- aria-hidden:对屏幕阅读器隐藏 -->
<span aria-hidden="true">🎉</span> 恭喜!

<!-- role:标记元素角色 -->
<div role="alert">操作成功!</div>
<div role="navigation">...</div>

表单可访问性

html
<!-- ✅ label 关联 input -->
<label for="name">姓名:</label>
<input type="text" id="name" name="name">

<!-- ✅ fieldset 分组 -->
<fieldset>
  <legend>选择你的兴趣:</legend>
  <input type="checkbox" id="coding" name="interest" value="coding">
  <label for="coding">编程</label>
</fieldset>

<!-- ✅ 错误提示 -->
<input type="email" aria-describedby="email-hint" required>
<span id="email-hint">请输入有效的邮箱地址</span>

键盘导航

html
<!-- ✅ 原生可聚焦元素(a/button/input/select/textarea)无需额外处理 -->

<!-- ✅ 用 tabindex 控制 Tab 键顺序 -->
<div tabindex="0">可通过 Tab 键聚焦</div>

<!-- ✅ skip link:跳过导航直达内容 -->
<a href="#main-content" style="position: absolute; top: -40px; /* 聚焦时显示 */">
  跳转到主内容
</a>
<main id="main-content">...</main>