作为一名产品经理,当人们使用你的产品的时候,需要尽可能避免他们犯错误。我们应该留心用户可能犯错误的地方,在合适的地方给他们一个温和的推动,以确保一切都能正常进行。(不要让用户认为自己被指使着做什么事,至少不要用被认为是"粗鲁"和"侵扰式"的) 所以,在系统中我们给予用户的提示既要微妙又要有效。要想获得这种平衡的体验非常困难。幸运的是,交互设计专家Eric Reiss曾在他的书中提出了三种方法可以让用户免于麻烦: 提示(Remind)、警告(Alert) 和 强制(Force) 提示(Remind)可以帮助人们回忆起在不经意间忘记的某项操作,以确保用户的操作是有效的。比如在关闭文档之前提示保存,或是在邮件中粘贴附件。 警告(Alert)则是在界面的部分内容上添加一些标签和标记,来表示这些内容是用户在进行下一步的操作之前必须完成的,以此帮助人们回到正确的步骤上。比如某些表格后面的"※";输入密码;或者安装软件时弹出的 "我接受使用条款" 的复选框。 强制(Force)意味着在用户使用某些功能时消除一些不可用的选项。比如把一些不可用的或者是在某个特定时刻不适用的菜单项变灰。 接下来,我们就一起来探讨一下在不同的场合下这些技术是使用的;而哪些技术是没用的;以及如何改进。 提示 在我看来,软件的提示可以分为两种: 第一种,类似word文档的保存提示,在用户需要的时候他会主动跳出来,询问你是否需要某种帮助。每次看到这样的提示的时候,我一般会心存感激。他大大优化了我的体验。没有人会希望自己辛辛苦苦码了两个小时的字以后因为忘记保存而再从头开始。 第二种提示却会对用户的操作造成一些影响,并且强制用户选择。 比如360杀毒软件(没错我点名了!)提供的清理垃圾提示:用户自己的事情做得好好地,突然一下跳出来一个弹窗,要求用户选择清理垃圾或者暂不清理。我本来就没有想要这项服务,为什么要让我选择?更恐怖的是,当我看电影或玩游戏时,它甚至会强制弹出用户桌面。并且主动开始扫描。我的电影被打断了,我的游戏送人头了。这项功能打断了我的进程,更导致了我原本进程的失败。根本没有任何体验可言。 好走不送! 无论如何,使用提示的关键是要有用。而不是打断事件处理的流畅性,影响人们的工作。那些与用户目前的事件毫不相干的提示(比如清理垃圾)根本就不应该出现。他们只会打断用户原本的进程,叫人厌恶。 除非你的提示与用户的进程直接相关并且能够保证它们出现的时候适宜。否则,取消他们。 现实世界中,大量的不恰当信息会对用户造成干扰。比如反复让人确定是否删除文件;比如音乐切换时跳出来的有声广告。 简而言之,如果提示是不必要和不合时宜的,那就让他们退到一边去。只有在不影响用户体验的前提下提供适当的提示,才能达到双赢的局面。 警告 同上面的提示一样,作者认为警告也可以分为对用户有用的和无用的两种。 警告可以告诉人们有错误存在(如密码错误);状态发生变化(电量不足、被人异地登录);或者其他任何需要用户注意的内容。但是,也有一些警告只是坚持让我去确认电脑已经执行了一些操作,这样的警告就没有必要了。想要避免用户犯错的出发点是好的,但是不厌其烦地去显示那些用户已经知道的东西,万一惹怒了用户就得不偿失了。设计此类警告信息时,非常重要的一点是确保他们的相关性,确保他们能起到应有的作用。 通常来说,关键的任务越多,我们就越需要一种方式来了解是否有故障发生。 另外,作者还有一点要说明的是:如果可以的话,请不要光告诉用户发生了错误。最好再说出哪里出现了错误。不要让用户不知所措地盲目点击。错误警示应该具体而简洁,且容易让人理解。 举个例子:注册表中要填写的信息如果出现错误,不要仅仅告之用户信息不正确。更应该告诉用户究竟是邮箱错了还是用户名不符合格式,应该如何改正? 告诉用户,并帮助用户改正,这才是一个优秀的应用应该有的样子。 "狼来了"综合症 狼来了综合症的意思即发送了太多不相干的警告信息和其他通知,导致用户的注意力疲软。等到有真正重要的事情发生的时候,人们会出于习惯的原因忽略相关信息。,却不知道这次警告可能会带来严重的后果! 如果要给用户看的东西根本不算警告,就不要做出一副好像情况紧急的样子。 在大部分情况下,对话框是在表明某种错误。所以使用对话框来显示一些没有错误的信息可能会造成不必要的焦虑,尤其是让经验不足的用户担心。 强制 强制意味着某个程序、应用或物理对象不允许人们做一些不合适的事。 在电脑世界中,实现强制操作可以使用的技术,是把那些因为某些原因不可用的菜单项置灰。举个例子,如果你已经保存了文档,而又没有再次对文档就行修改的话,那么保存和撤销就会一直不可用。这属于用户可以理解的范畴以内。而另有一些选项被置灰,用户却没有被告之为什么这个选项不可用,这就让人比较郁闷。并且,我确定自己不是唯一一个有这种情况的人。无数次,我看到人们被一些不能访问的菜单搞得非常愤怒,对着电脑大呼小叫。 当然,还有一种选择,就是把一些内容设置为完全不可见。这样用户就会使用应用能提供的功能,而不会对着一个能看见却不能使用的选项感到无能为力。 但是这也不是真正解决问题的办法。用户会奇怪之前看到的功能为什么突然消失了。在这样的情况下,人们会漫无目的地四处点击,期望可能会在某一个偏僻的角落发现自己要找的内容。人们不知道这项功能已经消失,到处乱点只能让人发狂。这可不是良好可用性的体现。 总之,我认为把一些内容置灰也许是一个比较好的选择。但是我更希望程序可以告诉我:为什么这个选项是不可用的;如果我想使用它,我应该怎么做。比如,鼠标悬停在选项上,会有一个小小的弹出框告诉我原因和方法。但遗憾的是,这样做的程序我很少遇到。 我也相信,一定还有更好的方法等着我们去发现。 最后,Eric Reiss还在书中提出了几种让事情变得更简单易用的方式,现摘录下来,以供参考: 你是否可以给人们提供几种不同的响应方式?一旦一种方式不能工作,他们仍有其他方式可以选择。 你是否发现存在需要读两次才能理解的错误信息或说明?如果有,改善它。 你是否可以提高响应时间,让人们不再重复一个操作? 是否存在可能与系统警告混淆的错误信息或警告?如果有,创建独特的信息或完全消除他们。 你是否做了一些自以为"有帮助"的事情,实际上却妨碍了人们完成任务? 你的产品中是否包含了自适应菜单那样的个性化功能,它们是否会记忆一些与下次操作无关的特性,让人不厌其烦? 你是否提供了认知路标和线索,正确引导人们使用你的产品? 你的操作指南是否简单明了,让人们可以快速找到自己需要的内容。 结语 关于易用性,提示、警告和强制可能是目前比较好的解决方法,但它们一定不是最好的。任然有太多的人被它们搞得焦头烂额。作为产品经理,我们有义务找到更好的方法,来帮助用户完成工作。