网页内容无障碍的文档调研

最近组内成立了无障碍化虚拟小组,目标是推进淘宝网的无障碍化访问。

作为前期调研,我查阅了不少无障碍(Web Accessibility)的文档。w3c内的无障碍文档体系非常庞大,它们的关系错综复杂,包含了众多的专有名词。

在这里,我尝试梳理这些名词和文档,给有兴趣参与web无障碍的同学提供指引。同时我们看看这些文档可以如何帮助我们开启网页无障碍的工作。

Web Accessibility Initiative (WAI) 网页无障碍倡议

网址:http://www.w3.org/WAI/

作为w3c的web无障碍工作信息汇总网站,在这里你可以找到所有web无障碍相关的策略,指南和资源。文档的面向受众非常广泛,有Web设计者和开发者,政策制定者,采购人员,教师和学生等。作为开发者,我们更关注的内容应该是以下这些:

  1. 《Introduction to Web Accessibility 网页无障碍介绍》
  2. 《Essential Components of Web Accessibility 网页无障碍的基本组件》
  3. 《Web Content Accessibility Guidelines (WCAG) 网页内容无障碍指南》

The WCAG 2.0 Documents 网页无障碍指南2.0的支持文档

WCAG 2.0的支持文档有四个,在《The WCAG 2.0 Documents》 有所介绍(但是它所画的第一个关系图让人有些难以理解)。

  1. 《WCAG 2.0 网页无障碍指南》
  2. 《How to Meet WCAG 2.0 如何符合网页无障碍指南》
  3. 《Understanding WCAG 2.0 如何理解网页无障碍指南》
  4. 《Techniques for WCAG 2.0 网页无障碍指南的技巧》

它们的关系如下:

WCAG 2.0 文档关系图

其中箭头所在为引用方。例如 How to Meet WCAG 2.0 —-> Understanding WCAG 2.O 即代表前者被后者引用。

从图中的关系我们可以得出结论,如果需要阅读 WCAG 2.0 的相关文档,最全面的是__《Understanding WCAG 2.O》__。

Techniques for WCAG 2.0 网页无障碍指南的技巧

对于web开发者而言,我们更关注的是“如何使得我们的网页更符合《网页无障碍指南》”。因此我们可以参考《网页无障碍指南的技巧》中的技巧去优化我们的前端代码。

但是直接通过该文案,无法理解技巧是如何与指南中的准则相对应。我们可以通过阅读《如何理解网页无障碍指南》,针对每一个准则查看 Techniques and Failures for Success 章节,理解每个技巧是如何服务于准则的。

通过查阅技巧章节,我们可以总结出一份技巧列表,列出技巧对于无障碍访问的优先级。针对优先级进行工具排查,确定我们的网页是否符合《网页无障碍指南》。

Accessible Rich Internet Applications (WAI-ARIA) 可访问的富交互应用

除了简单的图片/文字/超链接,随着前端技术的发展,在应用中出现了越来越多的富交互。 这些交互通常是由js和相关技术来实现的,例如浮出层,对话框弹出,下拉列表以及伪元素等。通过Accessible Rich Internet Applications (WAI-ARIA)规范,可以实现应用交互的可访问性,以帮助残疾人以及其他访问障碍者实现对交互的感知。

ARIA定义了一套属性,属性分为role以及对应的states和properties。 ARIA将html元素分为六种role,每种有对应的states和properties。web开发者和无障碍工具厂商共同遵循规范:开发在应用中使用这些属性,无障碍工具厂商读取这些属性,即可达到应用交互的可访问性。

Introduction ARIA attributes

例子

举个伪元素例子。

我们有这样一段html代码:<div role="radio" aria-checked="true" aria-label="单选2" tabindex="0">单选tabindex="0"</div>

这个div模拟了radio的功能,在平时读屏软件是分辨不出来的。但是加上role及aria-checked状态,在读屏软件(NVDA)中读出来就是:

读屏文字

结论

ARIA是web开发中常用的无障碍编程技巧,通过对它的学习和运用,使得我们的应用具备无障碍访问的能力。

Published: October 30 2014