windows:Messages/notifications

出自UXGuide.net

跳转到:导航, 搜索

通知
Notifications

目录


“通知”用于提醒用户那些与用户当前活动无关的事件,它会简单地显示一个指向通知区域图标的气球状提示。通知可能由用户操作或重大系统事件引发,也可能提供来自于 Microsoft® Windows® 或某个应用程序的可能有用的信息。

通知中的信息是有用且相关的,但绝不是关键的。因此,通知并不需要用户立即操作,且用户可以完全将其忽略。

Aa511497_notifications01(en-us,MSDN_10).png

典型的通知

在 Windows Vista® 中,通知显示的时长固定为 9 秒。如果用户处于非活动状态、应用程序正以全屏方式运行、或屏幕保护程序正在运行等等的话,通知不会立即显示。Windows 会在这段时间内自动将通知排入队列,待用户恢复正常活动时再依次显示。因此,你无须对这些特殊情形进行任何处理。

致开发人员:你可以使用 SHQueryUserNotificationState API 来确定用户是否处于活动状态。

注:通知区域任务栏气球状提示相关的设计规范请参考各自相应的章节。


它用在这里合适吗?

考虑下列问题以进行判断:

Aa511497_notifications02(en-us,MSDN_10).png
在这个示例中,Windows 防火墙例外对话框以因用户交互而直接显示的。通知在这里并不合适。
Aa511497_notifications03(en-us,MSDN_10).png
在这个示例中,Outlook 将其连接与同步状态显示在状态栏中。


设计理念

能够有效提高用户体验的通知具有下列特点:

可惜,有太多令人厌烦的、不恰当的、没有用的、缺乏实际意义的通知存在。比如下面这些荣登 Windows XP 耻辱榜的通知:

Aa511498_notifications15(en-us,MSDN_10).png

Aa511498_notifications102(en-us,MSDN_10).png

Aa511498_notifications101(en-us,MSDN_10).png

在这些示例中,Windows XP 看起来是希望协助用户完成初始设置,然而,这些通知在用户已经知道该怎么做之后还频频冒出来,只不过是些会主动弹出的功能广告罢了。


必须维持用户操作流程的顺畅

理想情况下,沉浸于其工作中的用户应当根本看不到你的通知。或者说,他们仅当操作流程已经中断时才会看到你的通知。

在《Flow: The Psychology of Optimal Experience》一书中,Mihaly Csikszentmihalyi 指出,当用户全神贯注入某项活动中,从而忘记了时间并感到极大的满足时,即进入了流畅心理状态(flow state)。

高效的通知会呈现能够很容易被忽略的有用、相关的信息,有助于维持用户操作流程的顺畅。这类通知以低调、并不太显眼的方式呈现,且不需要操作。

不要假设无模式的通知就不会打扰用户。虽然用户并非必须关注通知,但通知显然需要用户的关注。你可能会以下列方式干扰用户的操作流程:


通知必须是可以忽略的

通知不需要用户立即采取行动,用户可以将其完全忽略。

开发和设计人员经常想让“他们的”通知以一种用户无法忽略的方式呈现。这种目标完全破坏了通知主要的优点,因为它打断了用户的操作流程。如果用户因你的通知而分心,觉得是被迫阅读的话,你通知的设计就是失败的。

如果你担心用户会忽略你的通知,考虑以下两点:


需要时使用逐步提升的方式

如果某通知用于一开始用户可以安全地予以忽略,但最终必须进行强调的事件的话,就需要在情况变得紧急的时候使用另外的 UI。该技术被称为“逐步提升(progressive escalation)”。

例如,Windows 电源管理系统起初只是简单地通过改变通知区域图标来指示电池电量低。

Aa511497_notificationsConcepts04(en-us,MSDN_10).png

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

当电池电量继续减时,Windows 使用通知来警告用户电池电量不足。

Aa511497_notificationsConcepts05(en-us,MSDN_10).png

在这个示例中,Windows 电源管理使用通过来告诉用户其电池电量不足。

此通知出现时,用户仍然还有一些选择。用户可以接上外接电源、更改电源选项、迅速完成工作并关闭计算机、或者忽略通知继续工作。当电池电量即将耗尽之时,通知的文本和图标则显得更加紧急。然而,一旦电池电量低到用户必须立即采取操作时,Windows 电源管理就会用模式消息框来通知用户。

Aa511497_notificationsConcepts07(en-us,MSDN_10).png

在这个示例中,Windows 电源管理使用一个模式消息框来通知用户电池电量严重不足。

最重要的三点:

  1. 仅当你确实需要通知的时候再使用它。当你显示通知时,你便有可能打断用户甚至造成侵扰。确保这种打断是经过权衡的。
  2. 通知应当用于非关键事件或者不需要用户立即采取行动的情况。对于关键事件或者需要用户立即采取行动的情况,应当使用其他的 UI(如模式对话框)。
  3. 如果你使用通知,应当使其成为好的用户体验。不要试图强迫用户看到你的通知。如果沉浸于工作中的用户没有看到你的通知,你这就是好的设计。


使用模式

通知具有下列使用模式:

操作成功
当由用户触发的异步操作成功完成时通知用户。

正确:
Aa511497_notifications04(en-us,MSDN_10).png

在这个示例中,Windows Update 当用户的计算机成功更新之后通知用户。
错误:
Aa511497_notifications05(en-us,MSDN_10).png

在这个示例中,Microsoft Outlook® 当数据文件检查完成时通知用户。用户现在应该做什么?为什么成功完成之后要警告用户?
显示时机:当异步任务完成时。仅当用户可能会等待操作完成,或者刚刚失败之后才通知用户操作成功。
显示方式:使用实时选项,以使这类通知在用户运行全屏应用程序或当前并未使用计算机时不会排入队列。
显示频率:一次。
侵扰程度:如果由于之前的失败而用户不确定是否成功,或者成功是发生在严重的或非常偶然的失败之后,用户需要额外的反馈时,侵扰程度较低。反之则高。
其他方案:当操作完成时,通过在通知区域中显示图标(或者更换已有的图标)来提供“按需”反馈。当操作完成时再移除图标(或换回先前的图标)。

操作失败
当由用户触发的异步操作失败后通知用户。

正确:
Aa511497_notifications06(en-us,MSDN_10).png

在这个示例中,Windows 激活程序通知用户激活失败。
错误:
Aa511497_notifications07(en-us,MSDN_10).png

在这个示例中,Microsoft Outlook 通知用户一项他们可能并不关心的失败。
显示时机:当异步任务失败时。
显示频率:一次。
侵扰程度:如果内容实用仅相关的话则低,如果问题能够很快自行解决或者用户根本不关心的话则高。
其他方案:如果用户必须立即注意该失败状况的话,则应使用模式对话框。

非关键系统事件
通知用户发生可以被安全忽略、至少是临时忽略的重要系统事件或状态。

Aa511497_notifications09(en-us,MSDN_10).png

在这个示例中,Windows 警告用户电池电量低,但用户仍然有足够的时间来采取行动。
显示时机:当事件发生且用户处于活动状态时,或出现持续存在的情形时。如果是由某问题引起的话,那么一旦该问题解决,当前显示的通知就应当立即移除。和操作通知一样,仅当用户可能在等待该事件或刚刚经历失败之后才向用户通知那些成功的系统事件。
显示频率:当事件首次发生时显示一次。如果是由用户能够解决的问题引起的话,那么如果用户必须在一小时内解决,则每 10 分钟显示一次;如果用户必须在一天内解决,则每小时显示一次。
侵扰程度:低,只要通知显示得不太频繁。
其他方案:如果用户最后必须解决某问题,则应使用逐步升级的方式,直到必须强制进行时显示一个模式对话框。

可选用户任务
通知用户他们应当完成的异步任务。如何可选的还是必须的,该任务都能够完全地推迟。

Aa511497_notifications10(en-us,MSDN_10).png

在这个示例中,Windows Update 通知用户有新的安全更新。
显示时机:当决定某任务需要完成且用户当前处于活动状态时。
显示频率:对于安全相关的任务来说,每小时一次。其他所有情况,每天一次,一共最多三次。
侵扰程度:低,只要用户觉得任务很重要且通知显示不太频繁的话。
其他方案:如果用户最后必须完成该任务的话,则应使用逐步升级的方式,直到任务不得不完成时显示一个模式对话框。

供参考(FYI)
通知用户一些可能有用、相关的信息。你可以将一些可选的、用户能够选择性参与(opt-in)的不太有关的信息通知给用户。

正确:
Aa511497_notifications11(en-us,MSDN_10).png

在这个示例中,收到新的电子邮件消息时将通知用户。
正确:
Aa511497_notifications12(en-us,MSDN_10).png

在这个示例中,联系人上线且用户选择接受此可选信息时将会通知用户。
错误:
Aa511497_notifications13(en-us,MSDN_10).png

在这个示例中,该信息仅当用户已经装有高速 USB 端口时才有用。否则,即便有了该提示,用户也做不了什么。
显示时机:当触发事件发生时。
显示方式:使用实时选项,以使这类通知在用户运行全屏应用程序或当前并未使用计算机时不会排入队列。
显示频率:一次。
侵扰程度:中等到高,取决于用户觉得其实用和相关的程度。如果用户感兴趣的可能性很低的话,则不推荐使用。
其他方案:不要通知用户。

功能广告
通知用户新安装的、不常用的系统或应用程序功能。仅当关键的、难于发现的功能与用户当前活动相关,且没有其他方法能够让用户注意到该功能时才可使用功能广告。

不要将通知用作功能广告!相反,应当使用其他的方式使该功能易于发现,比如:

  • Design the feature to be easier to discover in contexts where it is needed.
  • Don't do anything special and let users discover the feature on their own.

错误:
Aa511497_notifications14(en-us,MSDN_10).png

不要将通知用作功能广告。


设计规范

常规


通知的内容

错误:
Aa511497_notifications15(en-us,MSDN_10).png
在这个示例中,该信息仅当用户已经装有此端口时才有用。否则,即便有了该提示,用户也做不了什么。
正确:
Aa511497_notifications16(en-us,MSDN_10).png
在这个示例中,联系人上线且用户选择接受此可选信息时将会通知用户。
错误:
Aa511497_notifications17(en-us,MSDN_10).png
这些示例只给出了当用户接上某种 USB 键盘时,Windows XP 会显示的八个通知中的四个,每个通知只增加了一点点信息。
正确:
Aa511497_notifications18(en-us,MSDN_10).png
在这个示例中,接上 USB 键盘只会产生一个单独、完整的通知。


通知的时机


通知时长

在 Windows Vista 中,通知显示的时间固定为 9 秒。


通知频率


通知升级


交互


图标

Aa511497_notifications23(en-us,MSDN_10).png
在这个示例中,用户看一眼大图标即可快速理解该通知的性质。


通知队列

注:当通知无法立即显示时即会进入队列,比如当正在显示其他通知、用户正在运行全屏应用程序、或者用户当前并没有在使用计算机的时候。实时通知只会在队列中存在 60 秒。

致开发人员:你可以通过在 uFlags 中设置 NIF_INFO 标志并将 szInfo 置为空串来实现。如果通知已经不在队列中,这么做也不会有问题。


系统集成


文本

标题文本


正文文本

Aa511497_notifications24(en-us,MSDN_10).png
在这个示例中,对象名称被截断,并使用了省略号。
<基础信息的简介>
<可选的细节信息>
Click to <do something>.(单击以 <做某事>。)
Aa511497_notifications25(en-us,MSDN_10).png
在这个示例中,用户能够通过单击执行某操作。
<基础信息的简介>
<可选的细节信息>
Click to see more information.(单击以查看更多信息。)
Aa511497_notifications26(en-us,MSDN_10).png
在这个示例中,用户能够通过单击查看更多信息。
错误:
Aa511497_notifications27(en-us,MSDN_10).png
在这个示例中,问题是以过分技术化而又不明确的语言进行描述的。
正确:
Aa511497_notifications28(en-us,MSDN_10).png
在这个示例中,问题是以平实的语言进行描述的。


文档编写

当提及通知时:

示例:When the Critical updates are ready to install notification appears, click the notification to start the process.(当出现“现在可以安装关键更新了”通知时,单击通知以继续。)

当提及通知区域时:

导航
工具箱