我们其实还可以做得更多……
我在这里说无障碍或者亲和力,即 accessibility, 似乎有点尴尬。商业应用需要吗?除非我们的受众有残障,否则没有利润就不需要。没错,商业。但是,作为公共服务,天赋人权,应该保证信息的受众,无论在何种情况下(当然不是绝对的)都能获取。我们天天吹啊吹「以人为本」,其实政府应该立类似 section 508 的法了,使我们的政府网站建设有法可依,这才是真正的人文关怀。遗憾的是,作为 accessibility 的最重要的第一步,即 web standards,我们的政府网站不仅还没开始,很多还是 ie only 的……路,漫漫兮……
虽说商业应用不能太过于关注无障碍,但是,如果不妨碍当前的应用,花点力气,不说为残障人士服务,在某些受限情况下,比如浏览器 JavaScript 关闭的情况下依然可用或者传达可用信息,那么用户顿生好感,对您的商业应用并非没好处。另外,值得一提的是,搜索引擎其实就是最大的盲人,做好无障碍,您其实就是做好 SEO 的根基工作。So,why not...,对不起,是所以,为什么不在项目开始的时候,就应该做做无障碍的工作呢?完全按照现有规范 WCAG2(WCAG1 中译版),商业环境,预算等都不允许,但并不是不做点无障碍工作的借口。记住,Web 2.0 并不是不能用。
比方说,现在我们的网站,在没有 CSS 的情况下,ul
标记的导航一般都会很长,对于我们来说,没问题,拖拖鼠标就 ok,但是使用手机的家伙们呢?使用阅读器的家伙们呢(中国有么 -_-)?如果能有一个跳到内容的连接,那么就可以帮助许多人,迅速地跳到她/他所关心的内容上。我们加个连接并不困难吧?那你为什么不加?在我的上一个项目(无须保密,请访问 HiThere)中,即使这是个十足的商业网站,我都加上了这个貌似没意义的连接。相信我,努力就有回报,您不能排除您的用户有一天会感动 ^_^。
当我们步入这个号称2的时代,CSS 和 JavaScript 终有发飙之日。忽如一夜春风来,设计师,开发者不断分享各种各样的技巧,是的,有时候甚至是不择手段,目标只有一个,实现项目需求。然而,我们的产品经理不让我们考虑无障碍,right, boy, 你给我实现就是了。这并没有错,但是作为前端最终实现者的我们,在不影响实现的前提下依然可以有所作为。举两个例子,然后结束我们的文章,有所作为并非是为所欲为无所不为。
比如,以图代字的经典方法有两种,无外乎是使用 `display: none;` 和 `text-indent` 两种办法,那么,您考虑过如何选择吗?它们除了技术以外还有什么不同吗?事实上,很多客户端会忽略掉 display: none;
的元素,当其不存在?不存在?!是的,在我们的视觉中,它是存在的,但其实是它的父元素存在。它的父元素?呃,它是个空元素,它只是一个为 CSS 而存在的钩子(hook),对视觉有意义。但对屏幕阅读器呢?将会是空白一片,因为文本被 display: none;
掉了。
Ajax 让 JavaScript 得以复兴,我们很多网站都做了很多漂亮的应用,可以说,极大地提高了用户体验和可用性,但是在无障碍方面,却是不升反降的。您可以亲自去试一下,关闭掉您浏览器的 JavaScript,看看还能有多少网站,我不要求能用,能提供出错信息不让用户迷茫的网站能有多少个?在此,我严重推荐 ppk 的一篇文章,Hide And Seek in The Head。看看人家的 JavaScript 是怎么用的,您的又是怎么用的?但是,其实您也可以做到,只要多一点点无障碍的考虑,对不?
对!所以,为什么不现在就开始?
P.S. 最近抽空练习了一下 Rails,终于能够写一些小应用了,呵呵,我觉得这是我 2006 最大的进步。欢迎看看:http://www.dup2.net/realazy/,感谢 qyb 提供的空间,让我也学会了一点点的 Rails 部署。