如何使用智能默认值来减少认知负担

作者:Nick Babich

翻译 :吴祺深

欢迎访问网易云社区,了解更多网易技术产品运营经验。

如果你问UX设计师们他们的工作目标是什么,他们可能会说,他们的目标是让用户的生活变得简便。当用户体验设计师设计一款产品,他们会尽最大努力提供能够实现最终结果的最直接的操作路径。虽然这个目标可能听起来很简单,但在现实生活中存在着许多妨碍用户达成目的的障碍。其中一个便让用户停下来思考接下来该如何进行的东西。

Steve Krug有句名言:“不要让我思考”。如果你想听从他的建议,就需要专注于减少认知负担。其中一种方法便是使用智能默认值。

什么是认知负担?

认知负担,是影响用户操作效率的一种特性。在UX设计中,认知负担指示了使用一个产品所需的脑力能耗。

能耗这个概念,在计算机世界中会更加清晰。大多用户都清楚,同时运行太多的程序,会使电脑变慢甚至让系统崩溃,因而当我们用完一个程序时,我们就把它关掉。而当一台电脑的性能不足以处理我们的需求时,我们就会升级这台电脑。

类似于电脑,我们人类的大脑的处理能力也是有限的。但遗憾的是,我们无法简单升级我们的大脑的性能。因而,如果我们在使用一款产品时需要密集思考(即高认知负担),我们常常就直接放弃了相应操作乃至这款产品。

产品设计师们试图通过投入时间和精力来减少用户的认知负担来让产品适应我们大脑的局限性。尽管有很多技巧可以让设计人员实现这一目标,但就本文而言,我们将专注于其中的一种方法:智能默认值。

什么是默认值

当用户执行一项作业时,他们会有许多关于如何操作的疑问。这些疑问的数量和认知负担之间存在着直接的联系——他们的疑问越多,认知负担就越重。

默认值即“开箱即用”的值或设置。默认值可以减轻认知负担——通过免除各种繁重的选择劳动,让作业的过程更加流畅。

默认值有多种形式。最常见的是固定的“一刀切”默认值。在知道大多数用户都会以某种特定模式回答时,设计师们会使用此类默认值。而大多数用户都会熟悉“一刀切”这种模式,因为它常见于各种安装向导之中。

在配置产品时,Dropbox将典型设置(Typical)作为默认选项

当然,还有智能默认值这种东西——对用户可能会选择什么进行的智能的预测。智能默认值是定制的默认值——应用程序会使用用户数据来精准预测他们的回答。

使用默认值的基本规则

要真正有效地使用默认值,需要遵循一条重要规则:确保你在帮助用户,而不是在阻碍用户。此规则即始终将默认值设置为绝大多数用户(例如,95%)在必须作出选择时会选择的选项。

在构思默认设置时,产品设计者需要了解用户的能力以及他们使用产品的环境。只有当产品团队花费足够多的时间进行了用户研究和测试,了解了用户并根据用户的历史数据和使用习惯调整了默认值时,才有可能实现这一点。

在表单中使用预填充的字段

在各种用户界面中,表单是排名第一的适合于使用默认值的地方。填写表格永远是枯燥无味的,特别是当它是一个很长的表格时。要求用户填写大量数据可能是他们使用竞品的好理由,因为这个过程要更加容易。

这就是为什么在表单中使用预填充对于高转化率至关重要。不管是创建帐户,进行购买还是加入某电子邮件组,用户操作体验都应尽可能平滑。

默认值对表单的完成情况有很大的影响,因为它们能减少用户的工作量。而通过提供精心设计的默认值,可以避免用户需要选择所有相关选项的麻烦。

让我们定义一些在表单中使用默认值的基本准则。

利用你拥有的用户信息

APP和服务器中有很多关于其使用者的数据,将这些数据用于创造更好的用户体验至关

重要。例如,假设你正在重构用于网银APP中的转账表单。用户将使用此表单向他们的朋友和家人汇款。你最初的想法可能是将“转账金额”字段留空,以便用户输入正确的值。但是在默认设置这个主题下考虑这个字段,你可能会采用不同的手法。因为你很可能拥有用户所做的历史交易记录,你可以因此转而根据以前输入的金额来提示适当的值。

不要向用户索取他们已经提供的数据

向用户索取他们过去已提供的数据是最常见的(也是最可怕的)UX设计错误之一。如果数据可以显而易见地在整个UI的多个位置通用,设计师应该任何抓住机会这样做。在表单字段中预加载数据并要求用户验证数据是一种更好得多的用户体验,而不是要求他们从头开始一一输入所有数据。请记住,费力的事越少越好。

不要在需要用户注意的控件上使用默认值

当人们与数字产品交互时,他们不会去细读——他们只会扫一眼。人们快速浏览表单,却不会花时间去思考所有的选择项。因此,当你使用数据预填充一个字段时,用户通常会认为对应问题已经有了答案而跳过它不细看。

如果这是一个重要的问题,这也许并不是理想的情形。这里最大的问题所在,是如果已经有预加载信息,问题本身可能根本没能在用户脑海中停留。而输入或选择的过程本身,却能迫使用户阅读并思考问题。

不要出于自身利益预填充控件

出于自身利益,而非用户的利益来预填充控件,通常会适得其反。例如,很少有用户会对在填写注册类表格时自动选中“订阅促销优惠”而感到开心,而这种默认选中行为也违反了GDPR合规指南

如果你持续默认选中符合你的利益,而不是用户利益的选项,你将失去用户信赖。而提升用户利益的默认值才是更好的选择。

默认设置也为所谓的“灰暗模式”提供了机会。灰暗模式常用于推升转化率,但这种奇淫巧技通常会产生可怕的用户体验,尤其是当用户注意到APP或网站试图欺骗他们时。一个例子是瑞安航空,它提供了一些在欧洲最便宜的航班,但它不断尝试让用户购买保险。

当你在瑞安航空上订机票时,这家航司会提供飞行保险选项,却隐藏了拒绝购买保险的选项。用户需要滚动列表来找到“不要保险”的选项——在丹麦和芬兰中间那个。

避免对敏感字段使用默认设置

如果答案可能是敏感的或政治性的,例如性别或国籍,则应避免提供默认值。预填充这些字段,很容易使用户感到不舒服乃至愤怒。

在表单之中使用默认值

虽然你应该已经了解了不合适使用默认值的一些情况,但在表单中的一些地方使用默认值几乎总是能帮助用户。以下便是一些例子。

重用付款细节

也许填写付款细节不是什么复杂的事情,但仍需要占用部分用户精力。在每次都使用同一项服务时,用户不会喜欢每次都需要填写付款细节的设计。

当今市场上的许多服务都知道重用付款细节很重要。其中一项服务便是UberEats。UberEats知道如果用户在结账流程中的付款细节可以被保存下来,他们将获得更多的订单。该服务是通过将用户最后使用的银行卡作为默认支付方式,来实现这一目的的。

根据用户的地理位置数据预选字段

这种默认设置与网商领域有特别的联系。APP或网站可以尝试根据用户的当前位置智能地选择地址,而不是让用户自己提供有关她/他的地址信息。

一个很好的例子是Skyscanner。当用户在搜索航班时,Skyscanner会将出发机场设置为最靠近用户当前位置的机场。

Skyscanner使用用户的位置来自动填充出发地点字段(From),因为用户是比较可能从离当前位置最近的机场出发的

类似地,如果需要询问用户的电话号码等信息,则应根据用户的位置设置默认区码。通过遵循这一规则,WhatsApp使电话号码的输入过程变得非常简单。默认情况下,国家区码是根据位置服务的信息预先填写的。

WhatsApp预填写了国家码这一栏,但在用户需要时也可以修改

捐赠类表单中的建议值

建议值,是一种可以帮助用户了解网站所期待响应的默认值。这种默认值的一个典型情况是捐赠类界面。 当用户看到捐赠类表单中的捐赠金额是空值的时候,大多数人将不确定

他们应该捐多少钱。然而通过提供默认值,可以使用户更惬意地完成捐赠操作。例如,Michael J. Fox Foundation提供了一系列按钮对应常见捐赠金额以作选择,并且其中一个按钮是默认选上的。当然,用户也可以根据需要设置其他金额。

很多人并不清楚典型的和适合的捐赠金额应该是多少。但通过提供一些代表性选项,设计师可以引导用户捐赠合适的金额。图引用自michaeljfox

搜索结果的自动填充

默认值与自动填充功能搭档,不仅可以显著提高用户的操作效率,还可以作为用户搜索某种主题时的一种提示或指引。一个很好的例子便是Twitter,它通过在搜索结果中放入建议词和匹配的用户主页的链接,让用户可以直接转到他们想访问的用户主页来提高搜索效率。

Twitter使用自动完成来提供建议结果

APP和网站中的默认设置

设计人员和开发人员都知道让产品开箱即用有多么重要。默认设置在此过程中起着至关重要的作用,可以说是产品创作人员需要作出的最重要的决定之一。

当产品创作人员选择了恰当的默认设置时,用户会惊喜地发现产品有多么好用。 但是,当这些默认值不适宜时,创作人员则会看到一堆关于该产品的抱怨。

紧箍咒般的默认设置

哈佛大学的一项研究发现,当提供默认选项时,大多数人都不会去改变它。在他的文章《用户是否更改了他们的设置?》中,Jared Spool说,根据他的观察,只有不到5%的用户会更改默认设置。

出现这种情况有两个原因。首先,做出明确决定需要精力——要更改特定设置,用户需要弄清楚这个设置的真正含义。而用户通常不愿意花费额外时间来这样做。一般来说,人们更愿意使用阻力最小的方式。此外,一些用户对改变有恐惧心理,特别是当他们不确定这些设置会如何影响产品功能时。用户通常会假定默认设置代表着最佳选择,他们会认为产品设计师已经把用户的利益最大化放在了心上。

由于人们可能会保留默认选择,因此设计人员必须确保默认值与大多数用户的想法一致。默认值应尽可能适合尽可能多的人,因此,设计人员执行以下操作非常重要:

* 研究人们会如何使用你的产品的。不要只假设用户需要什么,而是要找出他们实现目的的最佳方式并因此构思你的默认设置

* 将所有关键设置设置为最安全(也是最有用)的值。例如,默认情况下应启用文本编辑器中的自动保存等功能。

让用户可以轻松更改默认设置

即使你的默认设置设计得十分巧妙并且是经过了完备研究的,总有用户会想要其他东西。 当用户想要更改设置时,你的产品应该允许他们轻松地完成。例如,你的APP可能会根据位置服务的信息自动检测地点,但也应允许用户根据需要进行更改。

如上所述,自动检测当前位置节省了用户时间,但是也有用户需要选择其他位置的时候。图源:Google

提供恢复默认设置的选项 Jakob Nielsen的《用户界面设计的10个可用性启示》之一便是用户经常错误地选择了某些系统功能,而需要一个“紧急出口”来恢复原状。

这就是为什么即使是那些是经过了精心设计的用户界面也需要支持撤消和重做选项的原因。界面应支持“恢复默认值”选项,这样才可以轻松地从自定义设置返回到默认设置。 这样的选项将允许用户进行一些尝试,而无需担心破坏系统。

Google Chrome允许用户将设置恢复成默认值。

使用默认值来构建可用性

乍一看,默认值不过是UI中的一个看似巧妙却不起眼的元素。作为用户,我们通常不会注意到它们。但这些小东西却拥有巨大的力量。它们可以使产品的使用更加快捷,甚至影响到我们的行为。因此,在设计产品时,必须尽可能确保所有默认值有用和实用。

免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

更多网易技术、产品、运营经验分享请点击

相关文章:
【推荐】 从互联网+角度看云计算的现状与未来(1)
【推荐】 演讲实录!谷得技术总监陈镇洪教你打造游戏研发流水线

原文地址:https://www.cnblogs.com/zyfd/p/10130595.html

时间: 2024-11-08 05:09:46

如何使用智能默认值来减少认知负担的相关文章

spring @Value 设置默认值

@Value 的作用不用说 大家都知道 注解模式下 读取配置文件 注入属性值 /** * MQ地址 */ @Value("${NamesrvAddr}") private String namesrvAddr;   上面的是一个标着的 @Value 注解 如果配置文件中没有设置 NamesrvAddr Spring 在启动的时候讲报错. 设置默认值很简单 @Value("${NamesrvAddr:192.168.0.1}") private String name

数据字典生成工具之旅(8):SQL查询表的约束默认值等信息

上一篇代码生成工具里面已经用到了读取表结构的SQL,这篇将更加详细的介绍SQL SERVER常用的几张系统表和视图! 阅读目录 系统表视图介绍 实际应用 本章总结 工具源代码下载 学习使用 回到顶部 系统表视图介绍 1.sys.tables(用户表) SELECT name,object_id FROM sys.tables 上面SQL是用来查询数据库里面所有用户创建的表,name为表名,object_id为表的对象id.其中object_id的值也可以用系统函数OBJECT_ID()来取 SE

Oracle中表添加带有默认值列的讨论(包括12C新特性)

这个问题是我一直都在关注的问题. 11G关于这个问题已经有了改善,到了12C更是多了一些新特性 关于11G的新特性讨论,参考我这篇博客http://blog.csdn.net/dbcrocodile/article/details/21170407 12C关于这方面是在11G新特性上进行添加的. 11G中添加一列并设置默认值,不会对表中实际数据做更改,而是通过对数据字典中做标记 我们查询的时候,会对新列做一个类似nvl()之类的操作,如果是null,则返回默认的数值. 但是,看如下语句 SQL>

Android中如何修改编译的资源ID值(默认值是0x7F...可以随意改成0x02~0x7E)

一.技术准备 今天我们来看一下如何修改Android中编译时的资源Id的值,在讲解这内容之前,我们需要先了解一下Android中的资源编译之后的结构和编译过程,这里就不多说了,具体可以查看这篇文章: http://blog.csdn.net/jiangwei0910410003/article/details/50628894 这篇文章中,介绍了如何解析Android中编译之后的resource.arsc文件,这里就介绍了Android中资源文件编译之后的类型和格式,其实Android中资源编译

【C#】妈妈再也不用担心自定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚

标题有点那啥,但确实能表达我掌握此法后的心情. 写自定义控件时往往会有一个需求,就是给属性指定一个默认值(就是可以在VS中右键该属性→重置),如果该属性的类型是内置值类型还好,直接使用DefaultValue特性就好,例如: [DefaultValue(false)] public bool CanSelect { get; set; } 对于能够根据字符串常量转换得到的类型也还好,可以这样: [DefaultValue(typeof(Font), "宋体, 9pt")] public

jQuery 隐藏与显示 input 默认值

分享下jQuery如何隐藏和显示 input 默认值的例子. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <

memcached 异常 : 单数据项超过默认值1m

众所周知, Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.     最近自己开发的一个小网站 www.dmvcd.com 也使用上了它. 主要是用于保存动漫和漫画信息, 可以方便快速查询和搜索, 减少DB交互, 以提高搜索性能. 但是最近发生了异常, 虽然不会导致网站挂掉, 但是对数据方面还是有影响的. 异常信息如下: [2015-05-24 11:36:46] ERROR ~ Error:  Too large. [2015-05-24 11:3

自定义控件如何给特殊类型的属性添加默认值 z(转)

自定义控件如何给特殊类型的属性添加默认值 z 定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚 标题有点那啥,但确实能表达我掌握此法后的心情. 写自定义控件时往往会有一个需求,就是给属性指定一个默认值(就是可以在VS中右键该属性→重置),如果该属性的类型是内置值类型还好,直接使用DefaultValue特性就好,例如: [DefaultValue(false)] public bool CanSelect { get; set; } 对于能够根据字符串常量转换得到的类型也还

asp.net EF model中的默认值设置

在做数据库规划时,通常会规划一些系统字段,也就是由数据库本身自行指定默认值到这个字段上,创建新的“创建时间(CreateDate)”字段就会常常这样设计. 如果希望能有默认值,且让.net 程序在新增信息到数据库时不用指定的值的话,那么你需要在你的该属性(property)上面加上一个DatabaseGenerated属性(Attribute),并传入DatabbaseGeneratedOption.Computed参数到DatabaseGenerated 属性中. 在调用DatabaseGen