尼尔森十大交互原则思考心得(三)

05 防错原则(Error prevention):

Even better than good error messages is a careful design which prevents a problem from occurring in the first place. Either eliminate error-prone conditions or check for them and present users with a confirmation option before they commit to the action.

与其在错误发生后提供一个非常棒的出错信息提示,还不如一开始就设计一种能够阻止这种错误发生的机制。要么消除容易发生错误的隐患,要么在用户操作后,系统预见到可能存在的严重后果时给予用户确认选项以提醒存在的风险。

防错原则在工业设计领域又被称为“防呆机制”,百度百科是这么解释这个机制的:

防呆是一种预防矫正的行为约束手段,运用避免产生错误的限制方法,让操作者不需要花费注意力、也不需要经验与专业知识即可直接无误地完成正确的操作。在工业设计上,为了避免使用者的操作失误造成机器或人身伤害(包括无意识的动作或下意识的误动作或不小心的肢体动作),会有针对这些可能发生的情况来做预防措施。

防呆机制主要包括三个原则:

1. 具有即使有人为疏忽也不会发生错误的构造──不需要注意力。

2. 具有外行人来做也不会错的构造──不需要经验与直觉

3. 具有不管是谁或在何时工作都不会出差错的构造──不需要专门知识与高度的技能。

常见的SIM卡设计一个缺角、内存条上居于一侧的凹槽、

在软件和App设计领域,用户错误的操作行为虽然一般情况下不会对应用或者用户造成伤害,但却有可能给用户体验带来极大伤害,严重情况下甚至增加用户跳出率,影响品牌形象。

移动端输入电话号码时弹出的数字键盘就是防呆机制在App设计领域应用的一个很好范例:

数字键盘防呆


举个防错原则做得有问题的简单的例子:

有些应用提供的上传图片不支持某些格式的图形文件,按照防错原则应该从源头判断,不允许上传,而不是loading结束后弹框提示用户上传失败。

违反防错原则的案例


使用临时状态进行重要操作

对于某些编辑、修改系统信息内容且行为不可逆的操作,可以使用“临时状态”的保护机制防止用户犯错。普通状态只提供用户基本的浏览、查看等基础

编辑是临时状态


执行重要操作时,提供确认操作(Require Confirmation )

基于系统原因和一些限制因素,某些会有严重后果的系统操作如删除、修改、覆盖等操作是不可逆的,所以系统需要在用户做出这类指令时,明确预见到了自己操作的后果,但基于系统对用户自由度和控制性的支持(即第3条法则),系统不需要在用户做出指令之前给予用户意见建议,但在用户做出指令后,要用对话框的形式告知用户该指令产生的后果并让用户自主决定是否继续执行。

确认操作


06 易取原则(Recognition rather than recall):

Minimize the user's memory load by making objects, actions, and options visible. The user should not have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate.

通过让控件、动作、选项变得可见来减少用户记忆负担。用户无需记住所有对话框里的信息以备不时之需。在用户需要时,系统帮助应该是可见的并容易获取的。

尽可能减少用户记忆负担,把需要记忆的内容作为辅助信息提供给用户,要始终记住,用户来使用我们的系统,不是为了找虐的,而是为了完成既定任务,帮助用户快捷高效地完成既定任务,才是系统应该首先考虑的。

除非我们是出于测试用户记忆的目的,否则对于用户来说需要杀死很多脑细胞才能回忆起的信息,正是智能设备的强项,系统调出保存信息的成本可以忽略不计,既然这样,何必为难用户呢?让系统多做一步,让用户少些记忆负担,是一种双赢的选择。

用户搜索时,提供一个专门的场景,即搜索关键字匹配状态,就是关于这一原则的最佳应用范例,如用户想买一款耳机,他只记得有一款四个字的耳机质量很好,名字好像是叫“*海**”,就凭着这一点点线索,用户在电商网站搜索,就能按图索骥,完成自己的任务。

搜索时用“易取原则”帮助用户

用户的关于名称和专有名词的记忆是不连贯的,有时候只能记起其中的一个或几个关键字,所以在专有名词和名称搜索时,搜索关键字匹配能做成全局匹配的,就不要仅做首字母匹配。

怎样保证系统提供给用户的信息正好是用户当前需要参考的信息?这就需要综合考虑场景和当前情境综合设计。如在编程工具里,用户输入某个关键字时,系统应该提供与该关键字相关的所有字段、函数、Class等名称让用户选择,这可以极大提升编程效率并减少因拼写错误而造成的BUG。

编程工具的提示功能

我们假设一个使用场景:用户想要通过我们的系统为自己的朋友转账一笔钱,这个用户以前曾经使用我们的系统为这个朋友转账过。传统的没有做过体验优化的转账界面就是让用户输入卡号和姓名,选择对方银行卡所属银行,用户在这个过程中,要么手里拿着对方的卡号和所属银行,要么有超强的记忆力,而习惯了“大店欺客”我们也很难对这样的系统有什么指摘。但如果系统针对转账场景做过调研和用户体验优化,能做到在用户输入对方姓名时,自动在转账记录里进行匹配,并把对用户有用的提示信息呈现给用户,用户虽然不能完全记住朋友银行卡账号,但对尾号和开户行会有一个粗略的印象,而呈现的信息帮用户做的,正是“Recognition”的工作,使用户不需要耗费太多精力就能轻松完成任务。

两相比较,孰优孰劣,则一目了然,面对用户需求不积极改变的平台,一定会被用户抛弃。

如平安银行的转账界面就做得比较贴心:

平安银行的转账界面

而帮助用户参考的信息,出现时机和内容也要根据场景综合考虑,恰当的提示信息在恰当的时候出现,是贴心,不恰当的信息在不恰当的时候出现,是干扰。

在搜索场景下,关键字匹配提示需要把用户当前搜索场景中数据库所有信息都向用户开放并呈现权重最高的。但用户在浏览器地址栏输入网址的场景中,关键字匹配提示如果还是按照搜索场景的模式来提示用户,对用户就是一种干扰,因为此时用户已经基本确定了自己的输入目标网址,此时把数据库中热门的权重高的网址提示呈现给用户,对用户没有任何帮助。相反,把用户最常使用的、收藏夹中的、历史记录中的匹配内容呈现给用户,才能真正帮到用户。

两种不同场景的提示信息

好的信息提示就如同训练有素的服务人员,无处不在却又不打扰顾客,一旦顾客有任何需求,会马上出现在顾客面前并提供相应的服务。好的信息提示也应该是这样。

推荐阅读更多精彩内容