如何做网页无障碍审计

199 阅读6分钟

前言

我所在的公司从事跨境业务,为了符合美国《美国残疾人法案》(ADA)和相关的无障碍法规要求,且部分客户也提出了相应的诉求,要求提供无障碍报告。

因此,在年初的时候完成了业务的无障碍审计,并修正了部分问题,使得网页达到了 AA 标准,在这把之前研究的笔记做个整理,希望可以帮助到有需要的朋友~

1. 什么是网页无障碍

Web accessibility 为 Web 无障碍环境,指所有用户(包括残障人士)都可以轻松的访问 Web。

2. 残障人士如何访问网页

身体缺陷包含多种类型,可以分为听觉、视觉、认知、和运动四类。身体缺陷的人通常借助辅助设备访问网页。例如,盲人使用屏幕阅读器,运动障碍者(如手臂骨折无法操作鼠标)则可通过语音控制。

简单介绍辅助工具的使用

2.1 屏幕阅读器

苹果系统自带了 voice over 的辅助功能,可以通过 command + F5 进行开启。

具体使用可以参考 youtube 的教程

3. 如何实现网页无障碍

实现网页无障碍需要多部门合作,包括研发、设计和产品。

  • 研发:给网页内容增加补充标签,使得辅助工具可以工作。
  • 设计:例如 UI 设计时考虑颜色对比度是否对色弱人群友好、可操作按钮的大小和布局是否对运动障碍人群(癫痫、手抖)友好等等。
  • 产品:产品功能是否清晰,有认知障碍的人能否正确理解并使用

实现网页无障碍化需要考虑各个人群的需求,需要知道各类残障人士以何种方式访问网页。

3.1 最佳实践

目前大家公认的最佳实践是遵循 WCAG 的指导,所谓 WCAG,是 Web Content Accessibility Guidelines,是 W3C 指定的 Web Accessibility 的参考指南。

WCAG 最近版本是 2.2,提供了 xx 条实现 Web accessibility 的需要考虑的点,包含了三个级别的要求,分别是 A、AA 和 AAA, A 是最低要求,如果网站满足了 A level 的所有标准,那么网站到达了 A 级别的可访问性。

需要注意的是,在实现网站可访问性时,不需要要求达到 AAA 的等级,在细看了 WCAG 的标准就知道,AAA 对网站的要求太过严苛,甚至会影响到正常的页面呈现,因此只需要达到 AA 即可。

3.2 出示报告

当网站最终评测 Web Accessibility 时,用 VPAT 去记录网站在 WCAG 各个点达到了什么等级。VPAT 记录好后,可以提供给客户,证明网站是 accessible 的。

VPAT : Voluntary Product Accessibility Template,是一个模板,标明产品的可访问性达到什么级别。

"用 VPAT 去记录网站在 WCAG 各个点达到了什么等级" 这个行为,也就是审计的过程。

4. 如何审计

如果网站有多个页面,并不需要检查所有的页面,需要确定检查范围

  1. 首页
  2. 主要基于文本的页面
  3. 有图片等媒体图片
  4. 表单类交互组件
  5. 动态内容例如 pop up、modal
  6. 包括登录功能的页面

从上面的条件中,挑取一些页面作为样本进行

4.1 文本内容

4.1.1 标题

如果是标题类的文本,不要仅仅通过 css 样式进行加粗放大,这样子屏幕阅读器无法识别出是标题。

可以通过 DigitalA11Y Tublets Chrome Extension 的谷歌插件去检查是否设置了正确的 heading role 或者语义化标签。

4.1.2 内容表述合理

需要保证指令的内容是不依赖于用户的视觉能力,例如内容为:“点击红色按钮”,“点击如下的按钮”,视障人群无法感知。

4.1.3 链接是否有意义

页面的链接确保表述正确,视障人群通过链接跳转时,丢失了上下文信息,需要清晰告知链接的作用。

4.1.4 颜色对比度

文本与文字背景的颜色对比度是否符合条件,色弱人群也可以清晰阅读文字。

tips:火狐浏览器提供了色弱模式,可以开启这个模式,更直观的带入色弱、色盲人群的视角。

image.png

4.2 图片、音频、视频内容

4.2.1 图片是否有描述

检查图片是否有描述信息,即使用户看不到图片,也可以访问信息。

检查 img 标签是否有 alt 属性。

同样可以使用 DigitalA11Y Tublets Chrome Extension 的谷歌插件

4.2.2 图像文本

检查网页中是否有转成图像的文本,如果是图像文本,视力有限人群不能通过更改字体大小、间距等操作来提高可读性。

4.2.3 音频视频是否提供描述信息

  1. 听力障碍人群:音频提供字幕或者画面描述
  2. 视力障碍人群:提供音频等替代媒体

4.3 交互

4.3.1 表单是否提供 label、表述是否清晰

表单元素是否有提供正确的 label,视障人群需要通过屏幕阅读器读取表单控件并进行交互,因此需要提供正确的 label 属性进行说明,

4.3.2 表单结构是否一致

同样的内容,在不同的页面,定义是否一致,例如同样的输入框,其 label 是否在一个页面为 A,在另一个页面为 B

4.3.3 超时提醒

一些页面会在 session 超时后,进行页面跳转,会导致用户数据丢失,此时应该有一个模式,在超时前让用户感知问题,并延长使用时间。

4.3.4 错误信息

表单输入错误后可能会有错误提示,错误提示需要清晰并让屏幕阅读器识别。

4.3.5 review before submit

在提交表单之前,让用户可以进行 review 操作。

场景:金融交易 或 法律合同签订。

4.4 可操作性

检查用户是否能以他们的方式进行交互

4.4.1 移动端、电脑端

在移动、PC 端都可以正常访问页面,即使方向翻转、放大或者缩小网页,网页都可以正常使用,不丢失内容。

4.4.2 键盘操作

可以使用键盘在页面进行跳转、操作。

涉及到:

  • 键盘聚焦时样式处理
  • 面包屑、导航栏结构
  • 可交互元素例如 modal 等,可以通过键盘关闭
  • 表单元素通过键盘操作完成

4.5 代码检查

通过工具,看标签是否正确被标记

总结

这篇文章更偏向于如何去做无障碍的审计,具体如何满足上诉内容,可以参考 WCAG 的官方指南,里面会提供一些场景的 best practice。

顺带一提,在做审计的时候,对比了国内网站和国外网站,感觉国内在无障碍这条路上,还是需要提高重视度的。

除此之外,强推 apple 官网,无障碍做的很好。