9

我们有时需要通知用户有关警告或问题的信息。但很多时候,特别是如果这是一个常见问题,用户只会忽略警告并继续。很多时候用户甚至不会记得看到警告,但我们检查他们的日志并看到显示了几个。那么,当你试图告诉他们一些重要的事情时,你如何让用户注意呢?

这不像强迫用户在允许他们保存之前解决所有问题那么简单。由于各种原因(通常是因为无法立即解决或根本无法解决的问题),他们经常需要保存我们的业务规则并不严格允许的数据。

我们有一个更好的警告/错误处理系统,我认为这将有很大帮助,但我想看看其他人做了什么。

4

15 回答 15

22

如果您希望用户注意警告,请适度使用它们!

Vista 中 UAC 的最大问题是人们收到太多通知,他们不再阅读到底是在请求访问什么,他们只是不假思索地给予许可。

另一个例子是将文件发送到回收站时资源管理器中的删除确认。我已经习惯了在按下“删除”后立即点击“确定”,以至于我错过了对话框告诉我文件不会被移动到垃圾箱,而是立即删除的事实,无论出于何种原因。

我的个人修复:我禁用了回收站的删除确认。如果有些东西不能移到垃圾箱,我仍然会收到一条消息,这一次我知道它可能很重要,所以我注意了。

结论:不要向用户发送垃圾邮件,否则重要的警告会在噪音中消失。

于 2009-02-24T15:08:50.307 回答
8

您的警告质量不会阻止用户提交无效数据。如果您允许提交无效数据,它将是。

如果您有必须提交给规则系统的数据,那么该数据在提交之前必须是有效的。但是,允许用户保存他们的工作是一个单独的问题。您应该允许用户保存他们的工作,然后在数据有效时将数据提交给规则引擎。

于 2009-02-24T14:59:09.287 回答
7

根本问题是用户不喜欢阅读,他们只想一个人呆着做他们的工作:)。

解决这个问题的最佳方法如下:

  • 除非绝对必要,否则不要弹出窗口
  • 如果这样做,请使错误或警告消息尽可能简短和简洁

长的错误/警告消息根本不会被阅读。用户将到达大约第五个单词并认为“这花费了太多时间,我只想回去工作”。

于 2009-02-24T15:21:39.403 回答
5

我的建议归结为三件事。

  1. 重新评估您认为对用户了解的重要内容。
  2. 不要偷懒,并要求用户解决您的程序可以自行解决的问题。
  3. 不要用愚蠢的(是的,他们很愚蠢)消息打断用户正在做的事情。

如果您有一个包含所需数据的表单,则将该字段颜色编码为红色或用星号突出显示它以指示它是必需的。禁用“确定”或“确认”按钮,直到他们填写所有必填字段。

对于数据不完整或不一致的字段,请显示工具提示或对字段进行颜色编码,以便用户知道可能有问题。您还可以在表单的某处显眼地显示警告列表。但不要停止数据输入。你只会让你的用户感到沮丧和愤怒。

于 2009-02-24T16:06:23.507 回答
2

我必须承认,我经常点击“确定”或任何我习惯于做的事情,让对话不假思索地消失。通常当它们太多时会发生这种情况。

不自称是任何类型的心理学家,我认为关注不寻常的事情并过滤掉重复的事情是很自然的。
考虑到这一点,也许值得考虑减少不太重要的对话,让真正重要的对话得到更多关注。

我认为烤面包机消息和谷歌在其在线应用程序中处理消息的方式是如何通知用户无关紧要的事情的真正好例子。

--编辑--
现在我重新阅读了我的帖子,我记得在“不要让我思考”中读过这篇文章。一本很棒的小书(几十页),里面充满了很好的和易于理解的可用性的东西。有点侧重于在线可用性,但也适用于离线应用程序。

于 2009-02-24T15:01:20.467 回答
2

这是我们已经计划好的。本质上,创建一些类似于 Bugzilla 的东西来存储这些错误/警告/任何东西。但它也与其他一些答案齐头并进。

不要使用简单的 MessageBox,而是在类似 Visual Studio 的错误窗口中显示警告/错误。只要有问题,就会显示在这个窗口中。

如果数据已保存,请将所有警告/错误保存到数据库中。现在任何人都可以看到当前的问题是什么 - 奖金!此外,这些问题可以从数据库中加载,而不是一直在应用程序中检测它们,这将有很大帮助——有些问题检测起来并不容易。

允许用户执行多项操作,例如:

  • 确认问题,因此不再显示。
  • 将问题分配给其他用户
  • 将问题标记为“不是真正的问题”
  • 设置“必须解决”日期
  • (可能是其他人,设计还没有完全考虑好)

将所有这些操作记录到数据库中,以便我们负责

简而言之就是这样。现在问题一直存在,所以它们一直存在于用户面前,直到它们得到解决。问题可以被跟踪,所以如果我们被咬了,我们就可以知道球掉在了哪里。我希望它有效!

于 2009-02-24T16:33:25.237 回答
1

虽然我从来没有在以前的站点上实现这一点,但我想创建一个自定义对话框,用户必须在其中选中一个框,说明他们已阅读并确认消息(然后记录该响应)。这是针对一家 ISO-xxxx 公司的,因此这种官僚作风是对此类错误的合乎逻辑的反应。

我的另一个更险恶的想法是让“否”或“取消”成为默认选项。最终,他们将按下 Tab-Enter 键击,然后您只需将其切换回来。

于 2009-02-24T15:14:19.623 回答
1

破坏系统!

老实说,我的经验是,如果您不希望最终用户在没有明确理解的情况下做某事,请阻止他们这样做......

就像整个“Windows 错误/警告消息”一样令人讨厌,直到程序告诉我我不能做某事,我才注意到......然后我不得不问自己“为什么不”

是时候用谷歌搜索答案了……或 RTFM

我知道使用这种方法并不总是可行的,但如果可以的话……他们会听的!

于 2009-02-24T16:05:13.307 回答
1

我喜欢那些暗示存在问题的程序,同时尽可能长时间地忽略它——这听起来很像你正在努力争取的东西。我一直在考虑的一件事(但含糊不清,因为我没有使用它)是为错误/警告设置一个状态指示器(有点像网络浏览器无所不在的抖动,但用于错误)。这个图标会改变状态,有点像红绿灯,表明程序有问题迟早必须解决——如果数据问题可以稍后更正并且不会解决,则可能是黄色的警告导致任何重大问题,红色表示在完成当前工作之前必须解决的任何问题(对于表单数据,这意味着整个事务,而不是当前表单)。明显颜色不够用 必须有一些对色盲的人的支持,但你明白了。单击指示器将显示问题列表(可能还有关于为什么这是一个问题——这样人们可以指出代码的假设什么时候是无用的或错误的),并且选择一个问题可以让你跳到可以修复它的领域。

无论您最终采用哪种方法,您可能应该做的一件事是查看您的警告并确定它们是否真的有必要。我见过太多的程序警告我完全合理的输入然后被接受,或者警告我程序的通常行为。这就是帮助人们点击警告的那种东西。如果您有警告日志,您可能会从那里开始 - 为什么人们会点击它们?他们可能是有条件的,或者可能真的没有问题,并且没有人告诉你事情已经改变了。

于 2009-02-24T16:08:17.700 回答
0

我非常喜欢安装插件时的 firefox 方法:ok 按钮被禁用并显示倒计时 5 秒。之后用户可以选择忽略它。

于 2009-02-24T15:00:01.250 回答
0

对于 Web 应用程序,alert() 和 confirm() javascript 方法虽然有些基本,但可以达到阻止用户做某事或确保他们清楚地同意他们被警告过的某事的效果。

对于其他情况,如果该操作不会对业务流程造成相当大的干扰,我们通常会在提交表单后在页面顶部显示一个小警告框。

例如,我们的应用程序需要在多个地方(有效的城市/州/邮编)进行位置验证。

  • 如果该位置是绝对关键的,我们将在表格上注明。

  • 如果应用程序的某些方面需要位置,我们将使用 confirm() 来确保他们明白如果没有有效的位置,他们将无法使用某些功能。

  • 在某些情况下,我们使用默认位置。在这种情况下,我们会在下一页顶部提供消息/警告框,指示正在使用默认位置。

于 2009-02-24T15:00:12.887 回答
0

我发现如果您生成日志消息供自己使用(即使这种使用直接使用户自己受益),让用户报告问题的唯一方法是让应用程序为他们做这件事。

在处理可能错误的用户输入时,您是否考虑过使用诸如拼写检查使用的红色波浪线之类的东西,或者在用户工作时对问题区域进行某种突出显示?大多数用户都接受过使用有缺陷的软件来忽略对话框的培训,但这种消息可能会清楚地表明错误是用户需要修复的。

于 2009-02-24T15:32:47.443 回答
0

您知道为什么会出现每种异常情况吗?您尝试通过以下每条消息实现什么目标:

  • 让用户检查数据是否有明显的错别字或错误

  • 当有更多信息可用时,让其他人在稍后阶段查看数据

  • 通知该用户和任何其他在稍后阶段查看数据的人所做的任何假设

  • 确保用户了解其行为的后果

能否以不同的方式更有效地实现这些目标?

一些想法(没有一个会自动成为灵丹妙药):

  • 保持消息简短和相关,排除任何不提供额外信息的语言(例如“请”等),告诉用户对他们的期望(即,而不是“邮政编码为空”使用“输入邮政编码”。)。

  • 使用用户可以理解的语言,始终提供足够的信息,尽可能具体。

  • 针对不同类型的警告和错误使用不同外观的消息(使用字体、颜色、图像,可能还有动画和声音)。

  • 重新审视整个过程,以便稍后有人必须处理提交的任何带有警告的信息。

  • 下次信息显示在屏幕上时可视化警告(即突出显示有问题的区域),以便稍后在有更多信息可用时解决它们。

  • 为警告添加一个标志,例如,每次需要解除警告时要求用户输入密码。

  • 使操作可撤消,因此您实际上不需要警告

于 2009-02-24T15:41:29.217 回答
0

不要试图用编程来解决。看看是否可以更改数据输入过程。

于 2009-02-26T15:41:04.083 回答
0

使用颜色和图标。

绿色 - 一切正常(或确认发生了预期的事情)

黄色 - 警告。您的用户可能想也可能不想调查这个问题

红色 - 错误。需要用户交互才能解决的问题。

我还建议(正如其他人在此线程上所做的那样)谨慎使用。

于 2009-07-29T01:46:08.833 回答