通知(设计基础知识)

注意

此设计指南是为 Windows 7 创建的,尚未针对较新版本的 Windows 进行更新。 大部分指导原则上仍然适用,但演示和示例并不反映我们 当前设计指南

通知通过简要显示通知区域中图标的气球,通知用户与当前用户活动无关的事件。 通知可能是由用户作或重大系统事件引起的,或者可能会从 Microsoft Windows 或应用程序提供有用的信息。

通知中的信息 有用且相关,但从不关键。因此, 通知不需要即时用户作,用户可以自由忽略它们。

标题屏幕截图

典型的通知。

在 Windows Vista 及更高版本中,将显示固定持续时间为 9 秒的通知。 当用户处于非活动状态或屏幕保护程序运行时,不会立即显示通知。 Windows 会在这些时间自动对通知进行排队,并在用户恢复常规活动时显示排队通知。 因此,无需执行任何作来处理这些特殊情况。

开发人员: 可以使用 SHQueryUserNotificationState API 确定用户何时处于活动状态。

注意: 有关 通知区域任务栏以及 气球 的指南,请参阅单独的文章。

这是正确的用户界面吗?

若要决定,请考虑以下问题:

  • 信息是否是用户与应用程序交互的直接直接结果? 如果是这样,请直接在应用程序中显示此同步信息,而是使用 对话框消息框气球就地 UI。 通知仅适用于异步信息。

windows 安全警报屏幕截图

在此示例中,Windows 防火墙例外对话框显示为用户交互的直接结果。 此处的通知不适用。

  • 仅当用户主动使用应用程序时,信息是否相关? 如果是这样,请在应用程序的 状态栏 或其他状态区域中显示信息。

outlook 状态栏屏幕截图

在此示例中,Outlook 在其状态栏上显示其连接和同步状态。

  • 信息是否快速变化、持续、实时? 示例包括处理进度、股票报价和体育分数。 如果是这样,请不要使用通知,因为它们不适合快速更改的信息。
  • 信息是否有用且相关? 用户是否可能会更改其行为或避免因收到信息而导致的不便? 如果没有,则不显示信息或将其置于状态窗口或日志文件中。
  • 信息是否至关重要? 是否需要立即执行作? 如果是这样,请使用需要注意且无法轻松忽略的接口(例如模式对话框或消息框)显示信息。 如果程序未处于活动状态,可以通过 闪烁程序的任务栏按钮 三次,并在程序处于活动状态之前将其突出显示,从而吸引人们对关键信息的关注。
  • 主要目标用户是 IT 专业人员吗? 如果是,请使用备用反馈机制,例如 日志文件 条目或电子邮件。 IT 专业人员强烈建议日志文件用于非关键信息。 此外,服务器通常以远程方式进行管理,通常无需任何用户登录即可运行,从而使通知无效。

设计概念

提升良好用户体验的有效通知包括:

  • 异步。 该事件不是用户与 Microsoft Windows 或应用程序的当前交互的直接直接结果。
  • 有用。 用户执行任务或更改其行为作为通知的结果是合理的。
  • 相关。 通知显示用户关心且尚不知道的有用信息。
  • 不关键。 通知不是模式通知,不需要用户交互,因此用户可以自由忽略它们。
  • 可行。 对于建议执行作的通知,通过单击通知启动该作。 但是,作始终可以推迟。
  • 适当地呈现。 通知的演示文稿(持续时间、频率、文本、图标和交互性)与其情况相匹配。
  • 不烦人! 轻轻通知用户事件和害虫之间有一条细线。

不幸的是,那里有很多令人恼火、不恰当、无用、无关的通知。 请考虑来自 Windows XP 耻辱大厅的以下通知:

屏幕截图

屏幕截图

在这些示例中,Windows XP 表面上试图帮助用户完成初始配置。 但是,这些通知在它们有用后经常弹出,因此它们只是未经请求的功能广告。

必须维护用户流

理想情况下,沉浸于其工作的用户根本看不到你的通知。 相反,只有当通知流已损坏时,他们才会看到通知。

在《流:最佳体验的心理学》中,Mihaly Csikszentmihalyi说,当用户在活动中完全吸收时进入流状态,在此期间他们失去时间感,并有极大的满足感。

有效的通知通过提供有用的相关信息来帮助用户维护其流,这些信息很容易被忽略。 通知以低键、外围方式显示,不需要交互。

不要假设通知 无模式 则它们无法令人恼火的中断。 通知并不要求用户注意,但他们当然会请求通知。 可以通过以下方式中断用户流:

  • 显示用户不关心的通知。
  • 太频繁地显示通知。
  • 当单个通知足够时,使用多个通知。
  • 显示通知时使用声音。

在 Windows 7 中,用户对通知拥有最终控制权。 如果用户发现程序的通知太烦人了,他们可以选择禁止来自该程序的所有通知。 通过演示有用的相关信息并遵循这些准则,确保用户不会对程序执行此作。

通知必须可忽略

通知不需要即时用户作,用户可以自由忽略它们。

开发人员和设计人员通常希望以用户无法忽略的方式显示其通知。 此目标完全破坏了通知的主要优势,因为它会破坏用户的流。 如果用户因通知而分心或觉得有义务阅读通知,则通知设计失败。

如果担心用户忽略通知,请考虑以下事项:

  • 如果正确使用通知,并且他们不需要立即执行用户作,则让用户选择忽略通知是设计造成的。 不要更改此更改。
  • 如果事件需要即时用户作,请使用用户无法忽略的替代用户界面(UI)。 请参阅这是正确的用户界面吗?用于替代项。

使用渐进式升级(如果适用)

如果通知用于用户最初可以安全忽略的事件,但最终必须解决,则当情况变得严重时,应使用替代 UI。 此方法称为渐进式升级。

例如,Windows 电源管理系统最初只是通过更改其通知区域图标来指示电池电量不足。

显示电池状态屏幕截图

在这些示例中,Windows 电源管理使用通知区域图标通知用户逐步降低电池电量。

当电池电量变低时,Windows 会使用通知警告用户电池电量不足。

低电量 通知的屏幕截图

在此示例中,Windows 电源管理使用通知告知用户电池电量较弱。

当用户仍有多个选项时,将显示此通知。 用户可以插入、更改电源选项、结束工作并关闭计算机,或者忽略通知并继续工作。 随着电池电量继续耗尽,通知的文本和图标反映了额外的紧迫性。 但是,一旦电池电量变低,用户必须立即采取行动,Windows 电源管理会通知用户使用 模式 消息框。

严重低电池电量警告的屏幕截图

在此示例中,Windows 电源管理使用模式消息框通知用户电池电量低。

如果你只做三件事...

  1. 仅当真正需要时才使用通知。 当你显示通知时,可能会中断用户,甚至惹恼他们。 确保中断是合理的。
  2. 对不需要立即用户作的非关键事件或情况使用通知。 对于需要立即用户作的关键事件或情况,请使用备用 UI(如模式对话框)。
  3. 如果使用通知,请使其成为良好的用户体验。 不要尝试强制用户查看通知。 如果用户对工作如此沉浸,以至于他们看不到你的通知,你的设计很好。

使用模式

通知有多个使用模式:

标签 价值
作成功
在异步用户启动的作成功完成时通知用户。
正确:
显示成功更新的气球屏幕截图
在此示例中,Windows 更新会在计算机成功更新时通知用户。
不正确:
显示文件检查完成屏幕截图
在此示例中,Microsoft Outlook 会在数据文件检查完成后通知用户。 用户现在应该做什么? 为什么警告用户成功完成?
显示时间:完成异步任务后。 仅当用户可能等待完成或最近失败后,才通知用户成功作。
显示方式: 使用实时选项,以便在用户运行全屏应用程序或未主动使用其计算机时,这些通知不会排队。
显示频率: 一次。
恼人因素: 如果由于最近失败而无法成功,则成功率较低,则成功是在关键或高度异常的失败之后,因此用户需要额外的反馈,或者用户正在等待完成;高(如果不是)。
替代方法: 在执行作时在通知区域中显示图标(或更改现有图标)来“按需”提供反馈;删除作完成后的图标(或还原上一个图标)。
作失败
通知用户异步启动的作失败时。
正确:
安装 失败通知的屏幕截图
在此示例中,Windows 激活通知用户失败。
不正确:
更新屏幕截图
在此示例中,Microsoft Outlook 用于通知用户他们不太可能关心的故障。
显示时间:异步任务失败时
显示频率: 一次。
烦恼因素: 低(如果有用且相关);如果问题将立即解决自身或用户,则为高,否则不关心。
替代方法: 如果用户必须立即解决故障,请使用模式对话框。
非关键系统事件
通知用户可以安全地忽略的重要系统事件或状态,至少暂时忽略。
低电量 通知的屏幕截图
在此示例中,Windows 警告用户电池电量不足,但在用户采取行动之前仍有大量时间。
显示时间: 事件发生且用户处于活动状态或条件继续存在。 如果由于问题导致,请在解决问题后立即删除当前显示的通知。 与作通知一样,仅当用户可能正在等待事件或在最近失败后通知用户成功系统事件。
显示频率:首次发生事件时 一次。 如果这是用户需要解决的问题,请每天重新显示一次。
烦恼因素: 低,只要通知不经常显示。
替代方法: 如果用户最终必须解决问题,请在解决方案变为必需时,通过最终显示模式对话框来使用渐进式升级。
可选用户任务
通知用户他们应执行的异步任务。 无论是可选任务还是必需任务,都可以安全地推迟任务。
可用更新通知的屏幕截图
在此示例中,Windows 更新通知用户新的安全更新。
显示时间: 确定需要执行任务且用户处于活动状态的时间。
显示频率:每天 最多三次。
烦躁因素: 低,只要用户认为任务重要且通知不经常显示。
替代方法: 如果用户最终必须执行该任务,请在任务变为必需时,通过最终显示模式对话框来使用渐进式升级。
FYI
通知用户可能有用的相关信息。 如果信息是可选的,并且用户选择加入,则可以通知用户边际相关性信息。
正确:
新电子邮件通知的屏幕截图
在此示例中,收到新电子邮件时,系统会通知用户。
正确:
登录 联系人通知的屏幕截图
在此示例中,用户在联系人联机时收到通知,他们选择接收此可选信息。
不正确:
通知屏幕截图,以提高性能
在此示例中,仅当用户已安装高速 USB 端口时,该信息才有用。 否则,用户不太可能执行任何不同的作,因为它的结果。
显示时间: 触发事件发生时。
显示方式: 使用实时选项,以便在用户运行全屏应用程序或未主动使用其计算机时,这些通知不会排队。
显示频率: 一次。
厌烦因素: 中到高,具体取决于用户对有用性和相关性的看法。 如果用户兴趣概率较低,则不建议这样做。
替代方法: 不通知用户。
功能播发
通知用户新安装的未使用系统或应用程序功能。
不要对功能播发使用通知! 请改用另一种方法使该功能可发现,例如:
  • 设计功能,以便更轻松地在需要该功能的上下文中发现。
  • 不要执行任何特殊作,让用户自行发现该功能。
不正确:
屏幕截图
不要对功能播发使用通知。

指引

常规

  • 根据通知模式的使用情况选择通知模式。 有关每个使用模式的说明,请参阅上表。
  • 在初始 Windows 体验期间不要使用任何通知。 为了改进其第一次体验,Windows 7 禁止显示前几个小时使用的所有通知。 设计程序,假设用户不会看到任何此类通知。

要通知的内容

  • 不要通知成功作,但以下情况除外:

    • 安全。 用户认为安全作的重要性最高,因此通知用户成功执行安全作。
    • 最近失败。 如果用户之前立即失败,则不会对成功作进行授权,因此在作最近失败时通知用户成功。
    • 防止不便。 这样做时报告成功作可能会避免不方便用户。 因此,以意外方式执行成功作时通知用户,例如作时间过长或早于预期完成时。
  • 在其他情况下,不提供成功反馈或“按需”提供反馈。 假定用户已获得成功作。 可以在执行作时显示通知区域中的图标(或更改现有图标),并在作完成后删除图标(或还原上一个图标),从而按需提供反馈。

  • 对于 FYI 模式,如果用户可以继续正常工作,或者由于通知而不太可能执行任何不同作,则 不会提供通知。

    不正确:

    通知屏幕截图,以提高性能

    在此示例中,仅当用户已安装端口时才有用。 否则,用户不太可能执行任何不同的作,因为它的结果。

    • 异常:如果信息是可选的,并且用户选择加入,则可以通知用户可疑的相关性信息。

      正确:

      已登录屏幕截图

      在此示例中,用户在联系人联机时收到通知,他们选择接收此可选信息。

  • 对于非关键系统事件和 FYI 模式,对单个事件使用完整的通知。 不要显示多个部分部分。

    不正确:

    这些示例仅显示 Windows XP 在用户附加特定 USB 键盘时显示的八个通知中的四个,每个通知都以增量方式呈现更多信息。

    正确:

    安装状态通知的 屏幕截图

    在此示例中,附加 USB 键盘会导致两个完整通知。

何时通知

  • 基于其设计模式显示通知:
模式 何时通知
作成功
异步任务完成后。 仅当用户可能等待完成或最近失败后,才通知用户成功作。
作失败
异步任务失败后。
非关键系统事件
事件发生并且用户处于活动状态时,或条件继续存在。 如果此问题导致此问题,请在解决问题后立即删除当前显示的通知。
可选用户任务
确定需要执行任务并且用户处于活动状态时。
FYI
触发事件发生时。
  • 对于作失败模式,如果问题可能在几秒钟内自行更正,请延迟故障通知以适当的时间。 如果问题自行解决,则不报告任何内容。 仅在足够时间过后通知失败是明显的。 如果报告太早,最有可能的用户不会注意到报告的问题,但他们会注意到不必要的通知。

不正确:

未屏幕截图

紧随其后:

连接成功通知屏幕截图

在此示例中,在 Windows Vista 中,没有无线连接的通知还为时过早,因为它通常紧跟良好连接的通知。

  • 对于作成功和 FYI 模式,使用实时选项,以便在用户运行全屏应用程序或未主动使用其计算机时,过时通知不会排队
  • 对于非关键系统事件模式,不会通过与已知事件(如用户登录)关联的事件来产生通知风暴的可能性。 相反,将事件绑定到事件后的某个时间段。 例如,可以提醒用户在用户登录后五分钟注册产品。

通知时长

在 Windows Vista 及更高版本中,将显示固定持续时间为 9 秒的通知。

通知的频率

  • 显示通知的次数基于其设计模式:
模式 通知的频率
作成功
一次。
作失败
一次。
非关键系统事件
事件发生时一次。 如果这是用户需要解决的问题,请每天重新显示一次。
可选用户任务
每天最多三次。
FYI
一次。
  • 对于可选的用户任务,请勿通过不断显示通知来尝试将用户提交到提交中。 如果需要任务,请立即显示模式对话框,而不是使用通知。

通知升级

  • 不要假定用户会看到通知。 用户在以下情况下看不到它们:
    • 他们沉浸于他们的工作中。
    • 他们没有注意。
    • 他们远离计算机。
    • 它们正在运行全屏应用程序。
    • 他们的管理员已关闭其计算机的所有通知。
  • 如果用户最终必须采取某种作,请使用渐进式升级 显示用户无法忽略的替代 UI。

互动

    • 用户应执行作。 单击通知应显示一个窗口,用户可以在其中执行该作。 此方法是作失败和可选的用户任务设计模式的首选方法。
    • 用户可能想要查看详细信息。 单击通知应显示一个窗口,用户可以在其中查看其他信息。
  • 当用户单击以执行作时,始终显示一个窗口。 无需直接单击即可执行作。
  • 单击以显示更多信息应始终显示更多信息。 不要只重新声明通知中已有的信息。

图标

  • 对于作失败模式,请使用标准错误图标。
  • 对于非关键系统事件模式,请使用标准警告图标。
  • 对于其他模式,请使用显示与主题相关的对象或建议主题的图标,例如安全盾牌或电源电池。
  • 如果你的目标用户能够识别它们,则根据应用程序或公司品牌使用图标,并且没有更好的选择。
  • 对于渐进式升级,考虑使用具有渐进式外观的图标,因为情况变得更加紧迫。
  • 请勿使用标准信息图标。 通知是信息,不言而喻。
  • 当以下情况下,考虑使用大图标(32x32 像素
    • 用户将快速理解图标而不是文本。
    • 大图标比标准 16x16 像素图标更清晰有效地传达了它们的含义。
    • 该图标使用 航空风格的

屏幕截图

在此示例中,用户可以快速理解通知的性质,并一目了然地查看大图标。

通知队列

注意: 通知在无法立即显示时(例如显示另一个通知时、用户正在运行全屏应用程序或用户未主动使用计算机)排队。 实时通知仅停留在队列中 60 秒。

  • 对于作成功和 FYI 模式,请使用实时选项,以便通知不会排队很长时间。 仅当这些通知可以立即显示时,这些通知才具有值。
  • 不再相关时删除排队通知。
  • 开发人员: 可以通过在 uFlags 中设置NIF_INFO标志并将 szInfo 设置为空字符串来执行此作。 如果通知不再在队列中,则这样做不会造成任何损害。

系统集成

  • 如果应用程序在运行时 通知区域中始终没有图标,在导致通知的异步任务或事件期间暂时显示图标。

发短信

标题文本

  • 使用标题文本,简要总结你需要以清晰、简单、简洁、特定语言传达给用户的最重要信息。 用户应能够快速、最少地了解通知信息的目的。
  • 使用文本片段或完整句子而不结束标点符号。
  • 使用句子样式大写。
  • 使用不超过 48 个字符(英语)来适应本地化。 标题的最大长度为 63 个字符,但翻译英语文本时必须允许 30% 的扩展。

正文文本

  • 使用提供说明(无需重复标题中的信息)的正文文本,以及(可选)提供有关通知的特定详细信息,还允许用户知道可用的作。

  • 使用具有结束标点符号的完整句子。

  • 使用句子样式大写。

  • 使用不超过 200 个字符(英语)来适应本地化。 正文文本的最大长度为 255 个字符,但在翻译英语文本时,必须允许 30% 的扩展。

  • 在正文文本中包含基本信息,例如特定对象名称。 (示例:用户名、文件名或 URL。)用户不必打开另一个窗口才能查找此类信息。

  • 在对象名称周围放置双引号。

    • 异常: 在以下情况下不要使用引号:
      • 对象名称始终使用 标题样式大写,例如用户名。
      • 对象名称与冒号相偏移(例如:打印机名称:我的打印机)。
      • 可以从上下文轻松确定对象名称。
  • 如果必须将对象名称截断为固定的最大大小以适应本地化,请使用省略号来指示截断。

    包含缩短名称的消息的屏幕截图

    在此示例中,使用省略号截断对象名称。

  • 如果通知可作,请使用以下措辞:

    • 如果用户可以单击通知来执行作:

      < 基本信息> 简要说明

      > <可选详细信息

      单击 <执行>。

      消息的屏幕截图:“单击以查看进度”

      在此示例中,用户可以单击以执行作。

    • 如果用户可以单击通知以查看详细信息:

      < 基本信息> 简要说明

      > <可选详细信息

      单击以获取详细信息。

      消息的屏幕截图:单击以获取详细信息

      在此示例中,用户可以单击以获取详细信息。

  • 不要说用户“必须”在通知中执行作。 通知适用于用户可以自由忽略的非关键信息。 如果用户确实必须执行作,请不要使用通知。

  • 如果用户应执行作,请明确重要性。

  • 对于作失败和非关键系统事件模式,用纯语言描述问题。

    不正确:

    长、复杂消息 的屏幕截图

    在此示例中,使用技术过度但非特定语言来描述问题。

    正确:

    清晰简洁的消息的屏幕截图

    在此示例中,以纯语言描述问题。

  • 以与目标用户相关的方式描述事件。 如果用户在执行任务或更改其行为作为通知的结果,则通知是相关的。 通常可以通过描述用户目标而不是技术问题来描述通知来实现此目的。

文档

引用通知时:

  • 使用确切的标题文本,包括其大写。
  • 将组件称为通知,而不是气球或警报。
  • 若要描述用户交互,请使用单击。
  • 如果可能,请使用加粗文本设置标题文本的格式。 否则,仅当需要防止混淆时,才将标题置于引号中。

示例:当 关键更新准备好安装 通知时,请单击通知以启动该过程。

引用通知区域时:

  • 将通知区域称为通知区域,而不是系统托盘。