引入

HTML 可访问性是为了让更多人都能正常使用网页,包括使用屏幕阅读器、键盘操作、弱视或色弱的用户。

它不是额外的高级功能,而是写网页时应该考虑的基础体验。

正文

定义

定义

可访问性是指网页内容和功能对不同能力、不同设备、不同使用方式的用户都尽量可用。

简单说,就是网页不只给“鼠标正常点击、眼睛正常观看”的用户使用,也要尽量照顾其他使用场景。

使用语义化标签

语义化标签能帮助浏览器和辅助工具理解页面结构。

<header>
  <h1>网站标题</h1>
</header>
 
<main>
  <article>
    <h2>文章标题</h2>
    <p>文章内容。</p>
  </article>
</main>

比起全部使用 <div>,语义化标签更容易被屏幕阅读器理解。

图片替代文本

alt 用于给图片提供替代描述文本

<img src="cat.jpg" alt="一只躺在沙发上的橘猫">

如果图片加载失败,或者用户使用屏幕阅读器,alt 就能说明图片内容。

如果图片只是装饰,可以使用空 alt

<img src="line.png" alt="">

表单标签

<label> 可以把说明文字和表单控件关联起来。

<label for="email">邮箱:</label>
<input id="email" type="email" name="email">

这样点击“邮箱”文字时,也能聚焦到输入框,对鼠标和触屏用户都更友好。

标题层级

标题应该按结构使用,而不是只为了字体大小。

<h1>网页主标题</h1>
<h2>第一部分</h2>
<h3>第一部分的小节</h3>

清晰的标题层级能帮助用户快速理解页面结构。

链接文字

链接文字应该说明点击后去哪里。

<a href="about.html">查看关于我们</a>

不建议大量使用没有说明性的链接文字。

<a href="about.html">点击这里</a>

“点击这里”单独看不出链接目标,不利于理解。

键盘操作

网页功能尽量不要只能用鼠标操作。

按钮、链接、输入框等元素默认支持键盘聚焦。

<button type="button">打开菜单</button>

如果用普通 <div> 假装按钮,就可能影响键盘和辅助工具使用。

iframe 标题

<iframe> 建议添加 title,说明嵌入内容是什么。

<iframe src="map.html" title="公司地址地图"></iframe>

否则使用辅助工具的用户可能不知道这个 iframe 的作用。

视频字幕

视频内容可以通过 <track> 添加字幕。

<video src="lesson.mp4" controls>
  <track src="lesson.vtt" kind="subtitles" srclang="zh" label="中文">
</video>

字幕可以帮助听力障碍用户,也方便静音观看。

特点

  • 可访问性关注的是更多用户能不能顺利使用网页
  • 语义化标签能帮助辅助工具理解页面结构
  • 图片应根据情况提供合适的 alt
  • 表单控件应配合 <label> 使用
  • 链接文字应该清楚说明目标
  • 页面功能尽量支持键盘操作
  • 字幕、标题层级、清晰结构都能提升可访问性

注意事项

  • 不要把重要信息只放在图片里,图片应有文字说明或 alt
  • 不要用 <div> 随便模拟按钮,能用 <button> 就用 <button>
  • 不要跳级乱用标题,例如从 <h1> 直接跳到 <h5>
  • 链接文字不要都写“点击这里”
  • 颜色不要作为唯一提示方式,色弱用户可能分不清
  • 自动播放声音可能影响用户体验
  • 可访问性不是只给少数人用,好的结构对所有用户都有帮助

理解

可以把可访问性理解为“让网页更容易被所有人使用”。

它不是只关注页面好不好看,而是关注用户能不能看懂、听懂、点到、输入、导航。

HTML 写得清楚,很多可访问性问题一开始就能避免。

引出

理解可访问性之后,可以继续学习 HTML 语义化标签HTML SEO 基础,它们都依赖清晰的页面结构。