前端可访问性(a11y)实战指南
可访问性不仅是合规要求,更是产品质量的一部分。本文给出语义化、键盘、ARIA 的实用清单。
可访问性(Accessibility,简称 a11y)常被忽视,却关乎真实用户的体验。本文给出可落地的实战清单。
为什么值得做
- 合规:多国法规要求网站具备可访问性;
- 包容:视力、运动、认知障碍的用户也应有完整体验;
- 共赢:语义化、键盘友好的页面,对 SEO 和所有用户都更友好。
语义化 HTML:a11y 的地基
正确使用语义标签,比任何 ARIA 都重要:
- 用
<button>而非div实现按钮; - 用
<nav>、<main>、<article>标注结构; - 图片必须提供有意义的
alt(装饰图留空alt="")。
键盘可访问性
所有交互都应能只用键盘完成:
- 焦点可见且顺序合理;
- 自定义组件要处理 Tab、Enter、方向键;
- 避免键盘陷阱(焦点进入后出不来)。
合理使用 ARIA
ARIA 是在 HTML 语义不足时「补充」信息,而非替代语义:
<div role="dialog" aria-modal="true" aria-labelledby="title">
<h2 id="title">标题</h2>
</div>
原则:能不用 ARIA 就不用,先检查是否有原生语义可用。
实用检查清单
- 页面是否只有一个
<h1>,标题层级是否合理? - 色彩对比度是否达标(正文至少 4.5:1)?
- 表单是否有
<label>关联? - 是否尊重
prefers-reduced-motion?
结语
可访问性不是「最后再补」的加分项,而是从一开始就融入的基本功。把清单纳入代码审查,让 a11y 成为团队的默认习惯。