标签归档:预留退路

关于“预留退路”的思考

在支付宝UED博客上看到了老鱼的“浅谈产品设计中的可用性和可访问性”。全文中心思想是“国内大部分Web产品在设计时往往忽略可用性和可访问性问题”,对于这点我基本上是认同的,但是对于文章里举的例子,一个“支付宝登录界面如果禁用JS就无法正常工作”的例子,也就是一个“预留退路”的例子,我有话要说。

“预留退路”这个概念我最早是从《网站重构》上看到的,简单来说,预留退路是指当访问者禁用CSS或JavaScript时,网页仍然能正常显示内容。当时对这个概念印象深刻,并且在之后一段时间内也一直以此为标杆。但随着对互联网、对web的理解越来越深,随着项目开发越做越多,我逐渐开始动摇。不可否认,“预留退路”在安全性方面是十分必须的,服务器端必须把好最后一道关,不能相信客户端、不能相信任何用户输入。但在用户体验方面,在可用行方面,我认为预留退路的重要性远不如许多UE设计师们声称的那么重要。

首先,目前的网站,已经不再是以前那种“网页文档”的集合了。以前的网页的主体是内容,单向性很强。JS等交互功能只是内容上的调料。而现在大量兴起的web应用,已经把网站推向了“软件”的境界。浏览器只是一个容器,网页只是一种呈现方式,交互才是真正的重头戏。虽然交互的目的仍然是内容,但这里的内容已不再是传统意义上的html代码,而是数据,交互是获得数据的必经手段,缺少交互,数据(内容)无从谈起。在这种情况下,预留退路显然不是一条不可打破的禁忌。

其次,预留退路的提出是在浏览器大战的年代。在那个时候,主流浏览器对JS的支持十分混乱,保证一个网站在所有浏览器上都做出正常的表现很难。开发者们在恶劣的开发环境下学会了自我约束,限制js的使用,预留退路作为下策,以防万一。而在现在,web标准日趋普及,浏览器们的支持标准也渐渐统一,跨浏览器平台的交互功能实现将越来越简单。虽然移动设备那边可能还不是很完善,但统一的标准必然是未来的趋势。

最后,尽管如老鱼所说,“很多交互设计师都会想当然的认为,类似这样的应用场景受重群体是很小的,也许真实的数据会让你大吃一惊!”,可我至今没有见过实际的统计数据。我身边有用Opera的,有用Linux的,可至今没有禁用JS上网的。倒是在豆瓣上见过一个,不过他是个Geek,关闭JS是有他自己的目的的,并且他也很清楚这样做的后果。相信那些不开JS上网的人,大部分都是像这个豆瓣用户那样的中高级用户,他们很清楚自己在做什么,以及这样做之后可能会遇到的情况。而预留退路真正需要照顾到的,那些无法使用JS自己却一无所知的无助的用户们,我绝不认为其总量会是个“让人大吃一惊”的数字。

综上,我认为“预留退路”不是个应该鼓吹的概念,更不是个不可打破的标准。中国没有408条例,所以更多的时候要根据实际需要来抉择,不要一味迷信传统。

最后,感谢土豆网的Dexter.YY,您的回信让我受益匪浅。