【问题标题】:What should be the expected behavior on this user decision?这个用户决定的预期行为应该是什么?
【发布时间】:2025-12-06 04:45:01
【问题描述】:

我有这个应用程序,用户可以在其中更改文本文件,当他们忘记保存它们时,会弹出一条小消息提醒他们更改未保存并询问他们是否要使用两个按钮保存更改“是”和“否”。它还有一个小复选框,上面写着“禁用此警告”。同样的说,如果用户检查它,当文本文件有未保存的更改时,该消息将永远不会再次弹出。

几个问题:

1)如果用户只选择“是”、只选择“否”或其中任何一个,是否应该记住复选框值(如果他们选中了)?

2) 假设用户选中了复选框,因此不会再次收到有关未保存更改的警告。下次用户忘记保存更改时,预期的行为应该是什么?

在用户禁用警告后,我是否应该始终采用默认操作(是:保存更改,否:放弃更改)?如果有,采取什么行动?

或者我应该始终保存更改,还是在他禁用警告后始终根据用户的最后一次操作丢弃更改?

【问题讨论】:

  • 附带说明,当您可以提供更明确的按钮时,您应该避免“是/否/取消”。在这种情况下,您可以使用显示“您尚未保存更改(...)”的框消息:“立即保存”/“不保存”。

标签: user-interface behavior design-decisions


【解决方案1】:

您正在做的是一种常见的 UI 模式,但恕我直言,我认为这不是一个好的用户体验。这是我认为更好的替代方法:

  • 新文件每分钟左右自动保存一次(根据保存时间而定);
  • 它保存到一个临时文件中;
  • 如果用户保存文件,则为其命名并将其保存到该位置;
  • 如果程序崩溃,那么临时文件仍然存在。程序应该在你启动时询问你想用它做什么;
  • 关闭程序应该有一个简单的复选框“现在保存?” (是/否)。这些“你确定要……”都不是垃圾。不保存应将文件保留为临时文件;
  • 删除临时文件需要选择丢弃操作(确认“立即丢弃?”);
  • 除了保存到临时文件之外,打开现有文件具有相同的每分钟保存功能。除非用户明确保存文件,否则切勿修改原始文件,此时将临时文件复制到原始文件。
  • 临时文件应在可折叠窗格(或等效)上可见,包括上次编辑的日期,最好是预览以提醒用户它是什么;
  • 应该没有禁用此行为的选项。它不是侵入性或侵入性的。正如乔尔所说,每次你给用户一个选项时,你都会强迫他们做出决定。选项被过度使用了。

具体回答您的问题:除非用户要求,否则您永远不应该丢弃任何东西。

Controlling Your Environment Makes You Happy 是关于可用性的必读书籍。 Don't Make me Think!也是。

【讨论】:

  • 最后一点+1:除非用户要求,否则永远不要丢弃任何东西。很好的建议。
  • 这可能是某些应用程序的最佳解决方案,但不适用于我的应用程序。就像我在上面的评论中所说的那样,这不是您的典型应用程序,它有一个菜单,您可以在其中创建新文件、打开文件、保存它们或另存为、打印等......所做的一切都超出了这个应用程序是关于。
【解决方案2】:

由于复选框显示“禁用此警告”,这正是它应该做的。不要对您向用户展示的内容抱有幻想,只要按照您所说的去做!

如果他们忘记保存更改并且没有收到警告,那么他们不应该选中该框。当警告被禁用时,您总是放弃更改是正确的。

【讨论】:

  • 然而,一个真正友好的界面会继续保存更改,可能会保存到一个临时文件中。然后可能会有一个“恢复上次更改”命令来加载这些自动保存的更改。
  • 我同意,这样会更友好。不过,IMO 用户不应该指望这种行为。
  • 这遵循了不让用户感到惊讶的想法,但会因用户的错误而惩罚用户。即使保存到临时文件也只是一个半途而废的解决方案,除非您可以轻松恢复到该临时文件。
  • 目前自动保存文件不是一个选项,它可能会在未来出现,但就目前而言,这是我不想打扰的功能。此外,这不是您的典型应用程序,顶部有一个菜单,您可以在其中打开、创建、保存、另存为、打印等......
  • 同意自动保存“只是一个半途而废的解决方案,除非您可以轻松还原”的说法。恢复是自动保存可以成为有效解决方案的全部原因。我不建议只是自动保存,您需要使整个生态系统正常工作——自动保存,并且易于理解自动保存的效果。真正易于使用的界面没有简单的解决方案,它需要工作。不过,抄袭并抛出一个对话框也可以说是一个半途而废的解决方案(许多应用程序都在做这个解决方案,但同样半途而废)。
【解决方案3】:

使复选框说“[]并且总是这样做”。

那么很明显,如果他们选择“否”并检查它,它将始终选择“否”,反之亦然。

【讨论】:

  • 很清楚,但只是在几秒钟之后。我认为用户通常会单击该框而不会考虑只是为了使该框消失而产生的影响。如果用户改变主意,你如何允许他们解决它?
  • 它应该可以在偏好区域中更改。他们不需要点击复选框来让对话框消失;它肯定是一个可选组件吗?
  • 这是我可能会考虑的事情,当然,会有一个首选项对话框,用户可以在其中更改所有内容。如果用户“通常单击框而不考虑后果只是为了使框消失”,那是他的错,他应该阅读警告,它们的存在是有原因的。
  • 如果他们不阅读它,那么他们不应该检查警告。如果他们检查它,如果他们没有阅读检查的目的,那是他们的错。
  • Nazgulled,不管你的态度如何,用户不阅读对话是一个公认的事实。如果你愿意,你可以责怪用户,但自鸣得意的态度不会让你的软件更容易使用。请记住,我们首先编写软件的原因是为了让用户更容易实现目标。总的来说,对话框是用户必须克服的障碍。更少的障碍==更快乐的用户。但请对这个问题中的所有建议持保留态度——我们都不了解您的实际客户。
【解决方案4】:

或者我应该总是保存更改或 始终相应地丢弃更改 到最后一个用户操作之后 他禁用了警告吗?

我相信这应该是预期的行为。如果您在屏幕上有将要发生的默认操作的提示,那就太好了。

我推荐这本书 About Face 3: The Essentials of Interaction Design 以获得一些非常好的 GUI 设计理念。

【讨论】:

  • +1 推荐 About Face。任何设计任何类型的 UI 的人都应该阅读它。
【解决方案5】:

1) 您还应该有一个“取消”按钮来中止退出,允许用户返回到文档以查看她/他是否想要保存它。

2) “禁用此警告”有点太令人讨厌了。试试,“不要再显示这个警告。”这告诉用户不会显示警告,并暗示在未来的情况下不会发生保存。这可能不是一个好主意,您应该重新考虑提供这样的警告抑制功能。

3) 在这种情况下,用户想要保存东西的情况要多得多,所以如果没有警告,这就是你的应用真正应该做的事情。这种情况下的复选框应该是“退出时始终自动保存更改”。这意味着在未来的情况下不会显示任何警告。

4) 如果您执行第 3 步,您还需要另一种方法让用户从完全搞砸文件和 想要保存的情况中恢复。它可能是一个 Undo 对话框,允许用户向后大跳,也可能是一个菜单项,如“返回上一个保存的版本”。理想情况下,即使在用户退出并重新打开文件后,此功能也应该可用。

5) 如果可以让用户了解 4),请考虑将 3) 作为默认选项或唯一选项——根本没有警告。

所有这些都假设定期隐式储蓄不是一种选择。

【讨论】:

    【解决方案6】:

    更好的选择是自动将文档保存到草稿中。可以异步执行此操作。

    【讨论】:

      【解决方案7】:

      我说,总是自动保存。忘记对话框。如果他们想退出而不保存,请在文件菜单上进行明确的操作。

      想想您想要保存的频率与不想保存的时间。这个比率可能是 100 比 1 甚至 1000 比 1。你想给用户带来 999 次的不便来保护他们一次?

      【讨论】:

      • 如果它完全符合用户的期望,那将是明智的。给用户带来不便是不好的,但让他们感到惊讶更糟糕
      • 再一次,不是带有菜单的典型应用程序,我的应用程序上没有主菜单。它的工作方式不同。
      • 不知道真正的用户是谁,就无法说它是否符合用户的期望。我在一定程度上同意该评论,但有些例子证明有时这样的方案有效(例如,想想 gmail 和 google 文档)
      • 如果没有菜单,我认为这就是始终自动保存的更多理由,因为这可能是用户 90% 的时间想要的。如果大部分时间他们可能会点击“是,请保存”,为什么还要通过对话给他们带来不便?
      最近更新 更多