网页无障碍设计

1,113 阅读7分钟

盲人如何上网

翻译
原文:How Blind People See The Internet

目光落在网页,现在你正逐字看到我写下的内容。这便是通过网络的阅读方式,我们习以为常。但如果你看不见东西呢?

当下最广为使用的信息载体——电子屏幕,给了我们想要的一切,只通过视觉,我们不用开口,当然电子屏幕也不用。

这便是问题所在。互联网把无数信息,以文字、图片、视频的形式,透过电子设备屏幕、眼镜片、视网膜、视神经,最终成功送入我们大脑。互联网应有尽有,但这只是对于大部分人而言。

对于数百万的视觉障碍者,互联网完全不同:文字变成了声音,布局排版毫无意义,图片最多能成为一句介绍。即便如此,视觉障碍者也和我们一样每天上着网,用的是跟我们一样的电子设备,并且很轻松。这是怎么做到的?

不使用眼睛上网

视觉障碍者最普遍的上网方式是,外加一个文字转语言的软件。你可能或多或少接触过一些,Windows和Mac OS都有自带的软件(Microsoft Narrator和VoiceOver)。这类工具帮数百万的视觉障碍者接触到了互联网。

但听觉并不能帮助视觉障碍者获取完整信息:文字和图片的视觉体验自然是没有的,但更重要的是“浏览”这种最基本的体验也缺失了。

现在,先别继续往下看,想想你看到这篇文章的全过程是怎样的?顶上的大标题很显眼——说明它们很重要;横幅广告被一扫而过,你会直接进入文章主体;拨动鼠标滚轮,文字被一行行扫过;边缘可能还有些小广告,你几乎忽略了它们。

视觉很玄妙,虽然是快速浏览,但你会被关键信息吸引住,你下意识知道,该往哪里看。

但借助文字转语音工具,便没有了这种“浏览”。它只是在转译——从头到尾梳理一段段地文字,机械地把它们串起来,然后转化成语音,读出来。没有图片,没有加粗,没有斜体。

如果网页内容太多,通过文字转语音工具,很难找到想要的信息。

好在现在的语音转文字工具比较智能,能提取到网页的结构,比如它会告诉你一个网页是两行三列的布局。

对于网页设计者,要避免使用“加粗”、“斜体”这样的标签,因为会影响这些工具的运作。此外,不要把标题摆在正文中,图片要标上注释。这是现在大多数网站都没能做到的。诚然,这些网站的设计都是符合W3C规范的,但W3C规范没有充分满足视障群体的需求。

对于推特这样的社交网站,它的内容过于复杂。但一来视障群体可以使用移动版,获得更简洁的界面,二来使用这类网站的视障人群数量不会太多。

对于普通网站,规范的代码,智能软件,和一些快捷的工具能让视觉障碍者得到更好的体验。做到这些不容易,但实现它们这些之后,在某些情况下,能让视障群体比常人更快获得信息。

美国残疾权益法案的立法一直悬而未决,但人们一直在努力,并且科技的发展总是快得超乎想象。有人说,web已死,接下来是移动端的天下。

触屏移动设备的盲人模式

上月Wired杂志的封面故事介绍了web——杂烩着无数网站在浏览器中。web依存的W3C的标准正在没落,给移动应用让出了大道。

我并不完全认可,但移动应用,以及它的载体移动设备,随处可见。如果未来真的是属于移动端的,会带给视障群体什么改变呢?

这个问题其实要被拆成两部分。我们先从有趣的那部分说起。这些扁平的触屏移动设备,对视障人群,比实体按键设备更好用。这是黑莓说的——那个满身按键的手机。

问题的另一部分在于软件。无论是苹果还是安卓,都有着自带的文字转语音的功能。先不谈对于视障人群,它们是否实用。但黑莓确实没有这个功能。

RIM新发布了一款实体按键手机,主打卓越的屏幕和阅读体验,但无论如何,还是无法与触屏手机比肩。

如果你使用黑莓,或者PC,你的体验感完全被视觉所支配。点击时候的颜色变化,复杂的布局排版,但这些对视障群体,没有任何作用。指示光标的变化和实体按键输入更是糟透了。但使用触屏设备,你的体验感更多来自你的手指。苹果设备的用户可以开启盲人模式,无论点击屏幕什么位置,都可以发声,点击屏幕左上角可以后退,右上角调节音量,它还能识别声音,“打开相机”,像这样。如果是实体按键,键盘或者是鼠标,这些实现起来会很困难。还好有触屏设备和智能软件,这些功能变得让人容易记忆,容易使用。

一切变得简洁方便了。但这只是美好的愿景,智能手机的制造商并不乐观。苹果和谷歌做的很好,把语音转文字功能内置在手机操作系统中。但其他公司拖了后退。应用软件被做得千人前面,在iPhone中,只有小部分软件支持盲人模式。

W3C规范似乎变得越来越容易实现,它有一个及格线的指南。但所有的移动应用,以及应用商店,把自己的标准设得更低。一时间,盲人想体验应用软件好像成了每个开发者的馈赠,或是寄希望于某个公司提供一个通用的小工具。这不是一个无解的问题,但确实是一个问题。

无论你是软件的开发者,网页的设计者,抑或是偶尔写写博客的爱好者,请记住,世界的某个角落,某个人正听着你写下的内容。所以,别忘了给配图加上文字注释。

网页的无障碍设计规范

查了一下相关的内容,只写我熟悉一点的前端部分:

不要用css改变dom显示时的的排列顺序。(比如实际顺序是123,可以通过css让他显示成312)。因为视障人群使用tab切换聚焦的dom。

弹出框使用tabindex属性。tabindex=-1,表示当前元素必须要被聚焦。

不要设置outline:none,outline用于聚焦时的标识,如果觉得组件库自带的样式不好看,可以自己重写。

文字和背景对比度至少4.5:1

安卓的TalkBack和iOS的VoiceOver

今天体验了一下TalkBack,真的好神奇,没想到盲人也可以使用手机,(建议尝试之前先查清楚怎么退出这个模式...)兼容性好的软件不多,最差的的是手机自带的浏览器......并且因为手势冲突没办法使用全面屏。

VoiceOver应该会好很多,毕竟全面屏开创者嘛。

其他

大学之后才切实体会到“无障碍”的存在意义,校园里经常会碰到坐着轮椅的同学,但学校的教学楼设计的很巧妙,任何一层楼都是一楼,有楼梯的地方就会有斜坡。他们平常地上课下课,去食堂吃饭,完全不需要专人辅助。

操作系统在努力实现无障碍,软件开发者写代码不规范让无障碍地难度攀升,可能很多人都不知道要考虑这些,至少我在今天偶然翻到W3C文档之前从没想过会有盲人阅读者我写的网页,更谈不上实现了。

前端要做的不只是实现逻辑功能,然后写出一个好看的页面。国际化、无障碍、考虑用户体验、性能优化,这大概才是前端工程化的意义所在。现在勉强到第二关了吧,写的界面我觉得还挺好看的。