如何让用户阅读错误消息?

时间:2010-03-01 15:08:55

标签: user-interface runtime-error error-reporting ui-design

如果您为非技术人员编程,您会发现自己面临的风险很高,用户不会阅读您措辞谨慎且具有启发性的错误消息,只需点击第一个按钮即可沮丧地使用。

所以,我想知道你可以推荐哪些好的做法来帮助用户真正阅读你的错误信息,而不是简单地放弃它。我能想到的想法会落在:

  • 课程帮助的格式;也许是一条简单的短消息,带有“了解更多”按钮,可以生成更长,更详细的错误消息
  • 将所有错误消息链接到用户指南的某些部分(有些难以实现)
  • 只是不发出错误消息,只是拒绝执行任务(有点“Apple”处理用户输入的方式)

编辑:我想到的受众是一个相当广泛的用户群,不经常使用该软件而且不是专属软件(即没有内部软件或狭窄的社区)。在slashdot上询问了这个问题的更通用形式,因此您可能希望check there获得一些答案。

26 个答案:

答案 0 :(得分:65)

答案 1 :(得分:16)

向他们展示消息。尽职尽责,但将每个错误记录到文件中。用户无法记住他们正在做什么或事件发生后几秒钟的错误信息,就像每个人的目击者账户一样。

提供一种允许他们通过电子邮件发送日志或将日志上传给您的好方法,以便您可以协助他们协调问题。如果它是一个Web应用程序:更好的是,您甚至可以在报告问题之前收到有关情况的信息。

答案 2 :(得分:11)

简短的回答:你不能。

简短回答:让它们变得可见,相关和具体化(突出显示它们搞砸了)。但是,你仍然在打一场失败的战斗。人们不会在电脑屏幕上阅读,他们会扫描,并且他们已经接受过点击按钮的培训,直到对话框消失为止。

答案 3 :(得分:10)

根据您的用户群,编写有趣/粗鲁/个人错误消息可能会很有效。

例如,我写了一个应用程序,允许我们的HR人更好地跟踪员工的雇用/开除日期。 [我们是一家小公司,非常悠闲]。

当他们输入错误的日期时,我会写:

  

嘿笨笨的屁股,学习如何输入日期!

编辑:当然更有用的信息是:“请输入日期为mm / dd / yyyy”或者可能在代码中尝试找出他们输入的内容以及他们是否输入“blahblah”以显示错误。然而,这对于我个人认识的人力资源专家来说是一个非常小的应用程序。因此,人们再次阅读本文的第一行:取决于您的用户群......

我最近参与了一个艺术学院项目,所以错误信息面向观众,例如:

  

巴洛克时期之前的大多数艺术都是   无符号。但是,我们已经超越了   巴洛克时期现在,所有领域都必须   完成。

如果可能的话,基本上会将它传递给您的观众,并避免因为所有一般性错误而感到无聊,例如:“请输入电子邮件”或“请输入有效的电子邮件”。

答案 4 :(得分:10)

警报/弹出窗口令人讨厌,这就是为什么每个人都会点击他们看到的第一个按钮。

烦人。示例:如果用户输入的日期不正确,或输入了预期数字的文本,则不要弹出消息,只需突出显示该字段并在其周围写一条消息。

制作自定义消息框。不要使用系统的默认消息框,例如Windows XP消息框自行烦人。制作一个新的彩色消息框,背景颜色与系统默认值不同。

非常重要:不要坚持。有些消息框使用模态对话框并坚持让你读它,这非常烦人。如果您可以将消息框显示为警告消息,那么更好,例如,堆栈溢出消息显示在页面顶部,通知但不烦人。

<强>更新
使邮件更有意义且更有帮助。例如,不要写“未找到键盘,按F1继续”。

答案 5 :(得分:10)

我们在错误框中放置了一个简单的令人难忘的图形:不是图标,相当大的位图,没有像标准的Windows消息图标。没有人能记住消息框的措辞(如果盒子有一个“OK”按钮,大多数人甚至都不会读它),但是大多数人都记得他们看过的照片。因此,我们的支持人员可以问客户“你看到喝咖啡的人吗?”或者“你看到空桌子了吗?”至少我们大致知道出了什么问题。

答案 6 :(得分:8)

最好的UI设计将是您几乎从不显示错误消息的地方。该软件应适应用户。通过这种设计,错误消息将是新颖的并且将吸引用户的注意力。如果你用那种无意义的对话框给用户加油,那么你明确地训练他们忽略你的信息。

答案 7 :(得分:6)

在我看来和经验中,是高级用户,他们不会阅读错误消息。我认识的非技术观众最仔细地阅读屏幕上的每条消息,此时的问题主要是:他们不理解。

这一点可能是你体验的原因,因为在某些时候他们会停止阅读,因为“他们无论如何都不理解”,所以你的任务很简单:

使错误信息尽可能易于理解,并将技术部分保留在幕后。

例如,我传输了这样的消息:

  

ORA-00237:禁止快照操作:新创建的控制文件   原因:尝试使用CREATE CONTROLFILE新创建的当前安装的控制文件调用cfileMakeAndUseSnapshot。   操作:装入当前控制文件并重试该操作。

类似于:

  

由于数据库的瞬间问题,无法处理此步骤。请联系(您的管理员|帮助台|任何可以联系开发人员或管理员以解决问题的人)。很抱歉给您带来不便。

答案 8 :(得分:5)

向用户显示错误消息具有含义,并且这是向他们提供帮助的方式,他们会阅读它。如果它只是行话或一般的废话,他们将学习如何快速地解雇它们。

我已经了解到,包含一个错误对话框以及发送(例如通过电子邮件)详细诊断信息的默认操作是非常好的做法,如果您快速回复这些包含有价值信息或解决方法的电子邮件,他们会敬拜您。< / p>

这也是一个很好的学习工具。在将来的版本中,您可以解决已知问题或至少提供就地解决方法信息。在此之前,用户将了解到此消息是由X引起的,并且问题可以通过Y解决 - 所有这些都是因为有人向他们解释过。

当然,这不适用于大规模应用程序,但在具有数百个用户的企业应用程序中非常有效,并且在精简敏捷,通常是早期发布环境中。

编辑:

由于您拥有广泛的用户群,我建议您提供能够完成用户/期望用户的软件,例如。如果电话号码格式不正确,请不要向他们显示eroror消息,如果他们没有重新格式化。

我个人喜欢does not make me think的软件,偶尔你(开发人员)无法解释我的意图,提供一个非常好的(并由实际用户评论)消息。

众所周知,人们不会阅读文档(当您插入家用电器时,您是否读过背靠背的说明?),他们尝试了一种快速获得结果的方法失败你必须通过有意义的有用的信息吸引他们的注意力(例如,禁用默认按钮一段时间)。他们不关心你的软件故障,他们现在想要得到结果。

答案 9 :(得分:3)

Make them fun。 (考虑到我们所在的网站,它似乎很相关:))

答案 10 :(得分:2)

首先,编写用户可以真正理解的错误消息。 “错误:1023”不是一个很好的例子。我认为更好的方法是记录错误,而不是用一些“花哨”代码向用户显示错误。或者,如果无法进行日志记录,请为用户提供正确的方法将错误详细信息发送给支持部门。

另外,要简短明了。不包括一些技术细节。不要向他们展示他们无法使用的信息。如果可能,请为错误提供解决方法。如果没有提供默认路由,则应采取此措施。

如果您的应用程序是Web应用程序,那么设计自定义错误页面是个好主意。他们对用户的压力较小,例如以SO为例。您可以在此处获得如何设计好的错误页面的一些想法:http://www.smashingmagazine.com/2007/07/25/wanted-your-404-error-pages/

答案 11 :(得分:2)

我学到的一个好建议是你应该写一个像报纸文章的对话框。不是在大小意义上,而是在重要性意义上。让我解释一下。

您应该首先编写最重要的内容,然后再提供更详细的信息。

换句话说,这不好:

There was a problem loading the file, the file might have been deleted, or
it might be present on a network share that you don't have access to at
your present location.

Do you want to retry opening the file?

相反,请更改顺序:

Problem loading file, do you want to retry?

There was a problem loading the file, the file might have been deleted, or
it might be present on a network share that you don't have access to at
your present location.

通过这种方式,用户可以阅读他想要的内容,或者烦恼,并且仍然可以了解所询问的内容。

答案 12 :(得分:2)

我想补充一点。

使用动作按钮来关闭错误消息而不是惊叹号,例如不要使用“确定!” “关闭”等。

答案 13 :(得分:2)

另请参阅Slashdot的用户回复here

答案 14 :(得分:2)

除非您能为用户提供一些简单的解决方法,否则请不要向用户显示错误消息。没有意义,因为90%的用户不关心它的含义。

另一方面,如果您 CAN 实际上向用户显示了一个有用的解决方法,那么强制他们阅读它的一种方法是在10秒左右后启用OK按钮。在您尝试安装新插件时,Firefox会如何处理它。

如果是完全无法正常恢复的崩溃,请以非常外行的方式通知用户:

我很抱歉我们搞砸了,我们想发一些关于此次崩溃的信息,你能否允许我们这样做?是/否

此外,尽量不要使错误消息长于句子。当人们(包括我)看到整个段落谈论错误时,我的思绪就会关闭。

由于社交媒体和信息过多,人们在看到一面文字时就会冻结。

编辑:

最近有人曾建议使用漫画以及您想要展示的任何消息。例如来自Dilbert的某些内容可能与您可能遇到的错误类型相近。

答案 15 :(得分:2)

根据我的经验:您让用户(尤其是非技术用户)阅读错误消息。无论多么清晰易懂,大胆,红色和闪烁的信息,你所显示的,大多数用户只需点击他们不习惯的任何东西,即使它是“你真的想要删除所有内容吗?”。我看到用户单击“关闭窗口” - 图标而不是“确定”或“取消”,即使他们甚至不知道他们选择了哪个选项...

如果你真的需要强迫用户阅读你正在显示的内容,我建议使用JavaScript-Countdown直到可以点击一个按钮。这样,用户将有希望使用等待时间来真正阅读他应该做的事情。但要小心:大多数用户会更加恼火:)

我更喜欢你的“阅读更多”链接的想法,虽然我怀疑这会让用户更感兴趣,只是想通过各种方式摆脱消息......

仅供记录:有些用户会阅读错误消息但却害怕他们不会对此做任何事情。我曾经有一个支持电话,客户会向我读一条错误信息,问我,他应该做什么。 “嗯,你有什么选择?”,我问道。 “窗户只有一个'OK'按钮。”他回答道。 ......嗯,辛苦的一个:)

答案 16 :(得分:2)

我经常以红色显示错误(当设计允许时)。

红色代表“警报”等,因此更经常阅读。

答案 17 :(得分:1)

我们告诉用户他们的经理已被联系(这是谎言)。它运作得有点好,不得不被删除。

答案 18 :(得分:1)

好吧,直接回答你的问题:不要让你的程序员写下你的错误信息。如果您遵循这一条建议,您将累计节省数千小时的用户焦虑和工作效率以及数百万美元的技术支持成本。

然而,真正的目标应该是设计您的应用程序,以便用户不会犯错误。不要让他们采取导致错误按摩的行动并要求他们备份。举一个简单的例子,在一个需要填写所有字段的Web表单中,而不是在用户单击“发送”按钮时弹出错误消息,在所有字段都包含有效内容之前不要启用“发送”按钮。这意味着更多的工作在背面,但它会带来更好的用户体验。

当然,这是一个理想的世界。有时,程序错误是不可避免的。当它们发生时,您需要提供清晰,完整和有用的信息,最重要的是,不要将系统暴露给用户,也不要责怪用户的行为。

一条好的错误消息应该包含:

  1. 问题是什么以及为什么会发生。
  2. 如何解决问题。
  3. 您可以做的最糟糕的事情之一就是将系统错误消息传递给用户。例如,当您的Java程序抛出异常时,不要简单地将程序员传递给UI并将其公开给用户。抓住它,并由您的用户协助开发人员创建一个明确的消息,您可以将其呈现给您的用户。

    我很幸运,在我上一份工作中,与一个不会想到编写自己的错误消息的程序员团队合作。任何时候他们发现自己处于需要一个人并且程序无法避免它的情况下(通常是因为资源有限),他们总是来找我,解释他们需要什么,让我创建一个错误信息,很明确,遵循公司风格。如果这是每个程序员的默认思维模式,那么计算世界将是一个远远更好的地方。

答案 19 :(得分:1)

减少错误

如果一个应用程序定期向你吐出呕吐物,你就会对它产生免疫力,并且错误会成为烦人的背景muzak。如果错误是罕见的事件,它将获得更多的关注。

搜索任何不是重大交易的内容,抛弃所有这些警告,找到理解用户意图的方法,尽可能地做出决定。我有一些应用程序,我继续以这种方式简化。开发人员认为每个错误都很重要,但从用户角度来看并非如此。查找用户对问题的常见响应并捕获该问题,将其部署为您的响应。

如果你确实需要提出错误:简短,简洁,低恐怖因素,没有感叹号。段落失败

没有灵丹妙药,但你需要进行社会工程设计才能使错误变得重要。

答案 20 :(得分:1)

添加一个“高级”按钮,可以提供更多技术细节,这将激励他们为那些认为自己是技术的目标受众阅读它

答案 21 :(得分:0)

我建议你在犯错之后立即给出反馈(说明用户犯了错误)。 (例如,输入日期字段的值时,请检查该值,如果错误,则使输入字段在视觉上不同)。

如果页面上有错误(我更喜欢Web开发,因此我将其称为“页面”,但它也可以称为“表单”),显示“错误摘要”,解释有错误和错误发生的错误列表。但是,如果每封邮件超过5-6个单词,则不会读取/理解这些单词。

答案 22 :(得分:0)

按钮状态如何“点击此处与技术支持人员联系,他们将协助解决此问题。”

有许多网站提供与真人交谈的选项。

答案 23 :(得分:0)

我读了一篇关于slashdot最恐怖解决方案的候选人:

  

我们发现了唯一的方法   让用户承担责任   错误是给他们一个惩罚   迫使错误消失。对于   在可能的情况下,启动者,错误   除非我们,否则他们不会真正关闭他们   输入管理员密码以使其运行   离开,如果他们重新启动摆脱   它(任务管理器已全部禁用   客户端PC)机器无法打开   崩溃的应用程序为15   分钟。当然,这一切都取决于   关于您正在交易的用户类型   用作技术更熟练的用户   不会接受这种系统,   但在尝试了字面上的YEARS之后   让用户承担责任   崩溃并确保IT   部门按顺序了解它们   在问题出现之前解决问题   难以管理,这些是唯一的   有效的步骤。现在,我们所有人都结束了   用户知道如果他们忽略了   错误,他们将受苦   它本身。

答案 24 :(得分:0)

“注意!注意!如果您没有阅读错误消息,您将会死!”

答案 25 :(得分:0)

尽管接受了答案中的所有建议,但我的用户仍然会点击他们可以找到的第一个按钮。所以现在我说明了这个:

Read this!

用户 在出现确定按钮之前做出选择

Chose the correct option

如果他选择第3个选项,他可以继续,否则应用程序退出。