顾名思义,这个界面是为出错时的状况所准备的。错不单行,总是以意想不到的方式组合出现,因此,光一个界面是不够的。
出错状况千变万化——数据无效或缺失;应用无法连接到服务器;在上传尚未成功时进行下一步操作;在信息尚未提交时离开界面等等。
报错状态应起到安抚人心的作用,让用户知道你的产品会保证他们的信息安全,不会撤销、损坏或删除用户在出错时所输入或上传的信息。
“系统应以神圣的态度来面对用户输入的信息,以阿西莫夫的机器人第一定律来理解,便是’机器人不应伤害人类,或因其未采取任何行动而致使人类受到伤害。’界面设计的第一定律应该是:计算机不应伤害你的操作内容,或因其未采取任何行动而致使你的工作内容受到伤害。” ——Jef Raskin《人性化界面》
Jef Raskin 是原始苹果机的创造者,在此处引用 Jef Raskin 的话再合适不过了,
理想的报错状态是不会损坏用户所输入的任何信息的。
如果出错后必须要刷新页面,请务必,一定一定保存所有数据,即使填写有误,也请保留。
另外,报错状态不应过于戏剧化,也不应表达得太模糊。还记得“蓝屏死机”么?或者苹果唬人的内核报错?如果你是计算机老手,那一定不会对“中止,重试以及失败”命令感到陌生。所有这些报错状态都是因为系统出现重大错误而要求重启或重试,而我们至今对这些界面仍记忆犹新,正是因为它们惊吓到所有用户,令其不知所措。
微软的死机蓝屏如此声名狼籍,正是因为它吓到了所有人。如此唐突,还伴有恐怖声效。即使这些都有效地达到了调试的目的,但还是很难让人接受。

报错状态必须传达简明友善的指导信息,让用户知道下一步该做什么。其实原则很简单,尽可能把报错信息呈现得人性化,而非技术性,这样更适合受众。试想一下,如果遇到出错的情况,你想要得到些什么信息?
报错状态十分普遍,也是设计师们最不愿意设计的界面。不过,如果在设计这个状态的时候,也重视对待,你的产品将拥有愉悦的使用体验。更重要的是,你会预见用户可能会遇到的问题,并提前准备解决方案。
当你的应用正在载入数据,等待网络连接,或进入下个页面的途中,诸如此类的情况都需要好好费心思考,应当如何在接入数据的过程中,合适地展现这些界面。
设计师们经常用空白界面和转动条解决,这就将所有的重担放在了尚未出现的内容上。就好比让用户看着时针在钟表上缓缓移动。
Luke Wroblewski 是一名产品设计专家,他带领团队为eBay、Yahoo!以及谷歌制作项目,他在出售了自己的移动投票应用Polar后,加入了谷歌。
Wroblewski 和他的团队发现,在每个民意投票项目都使用载入转动条后,就有用户投诉说“页面的刷新和载入要等太久,没有之前的版本快。”
Wroblewski意识到:“使用进度提示器只能让用户感到在看着钟等待。”
“结果就不言而喻,时间好像走得特别慢,连同我们的应用也慢了下来,那是因为我们的注意力都停留在了提示器本身。
如果聚焦换作真正的进度,让用户知道离目标的距离,就没有干等着那么焦躁了。
在意识到那些问题后,就有了个被称为“界面架构”的解决方案。这一技术已为Pinterest和脸书所用,大家可以在他们的网站以及移动应用中见到。
界面架构是对载入状态的革新,因为它已经载入,可以令焦点聚集在内容上,它的表现方式是先载入页面基础架构,再逐渐下载其中缺失部分。这一技术的一大优势就是完全摆脱了转动条,并能让用户更好地理解你的产品。
Luke Wroblewski的应用 Polar利用界面架构来载入内容。
Pinterest在使用界面架构的同时,加入了自己的独特小心思:在图片载入之前,先用它的“平均色”来作为背景色块,可谓是一种特别的预览方式。
脸书在他们的应用Paper上发明了一种类似的技术,并在网络版上也同步了。他们将这一技术结合独有的“闪光效果”——界面在展示架构的同时,会载入与内容空间相似的图形,并以闪动的方式来告诉用户内容正在加载。


假定张三和李四刚交换了电话号码,张三想给李四发一个信息,告诉他自己在街道上看见了什么。
因为现在界面中没有任何信息,我们就要利用空白状态来鼓励用户以希望的方式进行操作——在这个案例中,便是发一条信息。
当信息发出后是什么状态呢?我们需要优雅地从空白状态转入局部状态:在这里,就是当张三发出第一条信息的时候。
让我们快进到李四已经回复了的状态。他回复了一条信息,但是仍然在继续回复!因此,出现了正在输入的指示器,也就是载入状态的另一种形式。
当输入完毕,信息发出后,输入指示器便消失,取而代之的是新信息以弹入,推动其它信息的方式呈现。
那么,张三想要回复的时候要怎么办呢?首先,我们需要创建状态意识——当输入框中有文字时,“发送”按钮就会从灰色(禁用状态)转为蓝色(激活状态)。然后,当我们发送信息时,发送进程的载入状态就出现了。此时,信息显示为暗沉的颜色,因为发送尚未成功。只有当“发送成功”的确认标记出现后,才为正式完成。
如果信息未发送成功呢?于是我们便进入了报错状态。红色的标记就取代了载入转动条,我们还会收到一条报错信息,并且信息本身也是“未发送”的灰暗状态。点击未成功发送的信息会自动重新发送。当我们幸运地发送成功后,红色的感叹号会消失,信息颜色也随之显示正常,再有一条发送成功的信息提示。
这就是交互界面堆栈的操作方式了。屏幕状态之间的无缝转换才是真正的重点。如果没有这些转换元素,用户就可能会对新状态的出现和消失感到困惑或吃惊。
最后,这些状态的执行需要设计和开发的密切合作。在这两者上都需要花足时间,只有在他们紧密结合后,才能为用户创造出最佳的全面体验。
不要只关注理想状态,临时补上其它状态。作为一款完善的解决方案,每一屏都要引导用户抵达最终目标的。
把载入界面加入到原型制作的一部分,它们是产品体验的一部分,不应成为最后补加的界面。和工程师们紧密交流,找到实现效果的理想方式,甚至是优化的方式。
花时间好好想想可以造成出错的极端状况,如何解决?怎样才能以友好的方式提示用户?这是一个成本和得益之间的权衡,但我们至少应当解决最恼人的错误,尽最大努力来保存用户的数据。



