共用方式為


通知 (設計基本概念)

注意

此設計指南是針對 Windows 7 所建立,但尚未針對較新版本的 Windows 更新。 大部分的指導方針仍適用主體,但簡報和範例不會反映 我們目前的設計指導方針

通知會短暫顯示通知區域中圖示的方塊,通知使用者事件與目前使用者活動無關。 通知可能是由使用者動作或重大系統事件所產生,或可能會提供來自 Microsoft Windows 或應用程式的潛在實用資訊。

通知中的資訊 很有用且相關,但絕對不重要。 因此,通知不需要立即使用者動作,而且使用者可以自由忽略它們。

標題中含有「新更新」的批註方塊螢幕擷取畫面

一般通知。

在 Windows Vista 和更新版本中,通知會顯示固定持續時間為 9 秒。 當使用者處於非使用中狀態或螢幕保護裝置程式執行時,不會立即顯示通知。 Windows 會在這些時間自動將通知排入佇列,並在使用者繼續一般活動時顯示已排入佇列的通知。 因此,您不需要執行任何動作來處理這些特殊情況。

開發 人員: 您可以使用 SHQueryUserNotificationState API 來判斷使用者何時使用中。

注意:通知區域工作列方塊 相關的指導方針會顯示在不同的文章中。

這是正確的使用者介面嗎?

若要決定使用時機,請考量下列問題:

  • 使用者與應用程式互動的立即直接結果是否為資訊? 如果是,請直接在您的應用程式內顯示此同步資訊,而不要使用 對話方塊訊息方塊批註方塊就地 UI。 通知僅適用于非同步資訊。

Windows 安全性警示的螢幕擷取畫面

在此範例中,[Windows 防火牆例外狀況] 對話方塊會顯示為使用者互動的直接結果。 此處的通知不適當。

  • 只有在使用者主動使用您的應用程式時,資訊才相關? 如果是,請在應用程式 的狀態列 或其他狀態區域中顯示資訊。

outlook 狀態列的螢幕擷取畫面

在此範例中,Outlook 會在其狀態列上顯示其連線和同步處理狀態。

  • 資訊是否快速變更、連續、即時資訊? 範例包括處理進度、股票報價和運動分數。 如果是,請勿使用通知,因為它們不適合快速變更的資訊。
  • 資訊是否有用且相關? 使用者是否可能會變更其行為,或避免因為收到資訊而造成不便? 如果沒有,請不要顯示資訊,或將它放在狀態視窗或記錄檔中。
  • 資訊是否重要? 是否需要立即採取動作? 如果是,請使用需要注意且無法輕易忽略的介面來顯示資訊,例如強制回應對話方塊或訊息方塊。 如果程式沒有作用中,您可以 藉由閃爍程式的工作列按鈕 三次,並將它保持醒目提示,直到程式處於作用中狀態,來吸引注意重要資訊。
  • 主要目標使用者是 IT 專業人員嗎? 如果是,請使用替代的意見反應機制,例如 記錄檔 專案或電子郵件訊息。 IT 專業人員強烈建議記錄檔用於非重要資訊。 此外,伺服器通常會從遠端系統管理,而且通常會在沒有任何使用者登入的情況下執行,讓通知無效。

設計概念

提升良好使用者體驗的有效通知如下:

  • 非同步: 此事件不是使用者目前與 Microsoft Windows 或應用程式互動的直接結果。
  • 有用。 使用者將執行工作或變更其行為是通知結果的合理機會。
  • 相關。 通知會顯示使用者關心且不知道的實用資訊。
  • 不重要。 通知不是強制回應,而且不需要使用者互動,因此使用者可以自由忽略它們。
  • 可行。 對於建議執行動作的通知,按一下通知會起始該動作。 不過,一律可以延後動作。
  • 適當呈現。 通知的簡報 (持續時間、頻率、文字、圖示和互動性) 符合其情況。
  • 不令人不動! 在對使用者進行事件和防毒處理之間有一條細微的線。

可惜的是,有太多麻煩、不當、無用、不相關的通知。 請考慮來自 Windows XP Hall of 一文的這些通知:

[導覽 windows xp] 通知的螢幕擷取畫面

[未使用的圖示] 通知的螢幕擷取畫面

[新增 .net passport] 通知的螢幕擷取畫面

在這些範例中,Windows XP 嘗試協助使用者進行初始設定。 不過,這些通知在使用之後太頻繁且很實用,因此這些通知比未經請求的功能廣告還少。

必須維護使用者流程

在理想情況下,使用者完全不會看到您的通知。 相反地,只有在流程已中斷時,他們才會看到您的通知。

在流程中:最佳體驗的執行時間,Mihaly Csikszentmihalyi 表示使用者在活動中完全吸收時進入流程狀態,讓他們失去時間感並感到滿意。

有效的通知可藉由呈現容易忽略的實用相關資訊,協助使用者維護其流程。 通知會以低鍵、周邊方式呈現,而且不需要互動。

請勿假設如果通知是 無模式 的,則不會造成令人不動的中斷。 通知不會要求使用者注意,但確實會要求通知。 您可以藉由:

  • 顯示使用者不關心的通知。
  • 太常顯示通知。
  • 當單一通知足夠時,請使用數個通知。
  • 顯示通知時使用音效。

在 Windows 7 中,使用者最終可以控制通知。 如果使用者發現程式的通知太過令人抱歉,他們可以選擇隱藏該程式的所有通知。 請確定使用者不會透過呈現有用的相關資訊並遵循這些指導方針,來對程式執行這項操作。

通知必須可忽略

通知不需要立即使用者動作,而且使用者可以自由忽略它們。

開發人員和設計工具通常想要以使用者無法忽略的方式呈現其通知。 此目標會完全破壞通知的主要優點,因為它會中斷使用者的流程。 如果使用者因為通知而分心,或覺得有義務閱讀這些通知,您的通知設計就會失敗。

如果您擔心使用者忽略您的通知,請考慮下列事項:

  • 如果您已正確使用通知,而且他們不需要立即使用者動作,則讓使用者選擇忽略通知是設計方式。 請勿變更此專案。
  • 如果事件需要立即使用者動作,請使用使用者無法忽略的替代使用者介面 (UI) 。 請參閱這是正確的使用者介面嗎?替代專案。

在適用的情況下使用漸進式呈報

如果通知用於使用者一開始可以放心忽略的事件,但最終必須解決,則當情況變得重要時,應該使用替代 UI。 這項技術稱為漸進式擴大。

例如,Windows 電源管理系統一開始會藉由變更其通知區域圖示來指出電池不足。

顯示電池狀態的六個圖示螢幕擷取畫面

在這些範例中,Windows 電源管理會使用通知區域圖示來通知使用者逐漸降低電池電力。

當電池計量變低時,Windows 會使用通知警告使用者弱式電池電力。

低電池電源通知的螢幕擷取畫面

在此範例中,Windows 電源管理會使用通知來告知使用者電池電力弱。

當使用者仍有數個選項時,就會顯示此通知。 使用者可以插入、變更電源選項、包裝工作並關閉電腦,或忽略通知並繼續運作。 當電池電源繼續清空時,通知的文字和圖示會反映額外的緊急性。 不過,一旦電池電源變低,使用者必須立即採取行動,Windows 電源管理就會使用 強制回應 訊息方塊通知使用者。

嚴重低電池電源警告的螢幕擷取畫面

在此範例中,Windows 電源管理會使用強制回應訊息框來通知使用者電池計量過低。

如果您只執行三件事...

  1. 只有在您真的需要時,才使用通知。 當您顯示通知時,您可能會中斷使用者,甚至對使用者造成干擾。 請確定中斷是合理的。
  2. 針對不需要立即使用者動作的非重大事件或情況使用通知。 對於需要立即使用者動作的重要事件或情況,請使用替代 UI (,例如強制回應對話方塊) 。
  3. 如果您使用通知,請讓它成為良好的使用者體驗。 請勿嘗試強制使用者查看您的通知。 如果使用者在工作上很沈浸,所以他們看不到您的通知,您的設計就很好。

使用模式

通知有數種使用模式:

標籤
動作成功
在非同步、使用者起始的動作成功完成時通知使用者。
正確:
顯示成功更新的批註螢幕擷取畫面
在此範例中,Windows Update成功更新電腦時通知使用者。
不正確:
顯示檔案檢查完成的批註螢幕擷取畫面
在此範例中,Microsoft Outlook 會在資料檔案檢查完成時通知使用者。 使用者現在應該怎麼做? 為什麼會警告使用者成功完成?
顯示時機: 非同步工作完成時。 只有在使用者可能等候完成或最近失敗之後,才通知使用者成功執行動作。
示範如何: 使用即時選項,讓使用者在執行全螢幕應用程式或未主動使用其電腦時,這些通知不會排入佇列。
顯示頻率: 一旦。
令人不覺的因素: 如果由於最近失敗而未預期成功,成功會在重大或高度不尋常的失敗之後,因此使用者需要額外的意見反應,或使用者正在等候完成;否則,成功會是;如果不是,則為 high。
選擇: 藉由在執行作業時,顯示圖示 (或變更通知區域中的現有圖示) ,以「隨選」提供意見反應;移除 (圖示,或在作業完成時還原上一個圖示) 。
動作失敗
在非同步使用者起始動作失敗時通知使用者。
正確:
安裝失敗通知的螢幕擷取畫面
在此範例中,Windows 啟用會通知使用者失敗。
不正確:
更新失敗通知的螢幕擷取畫面
在此範例中,Microsoft Outlook 用來通知使用者不太可能關心的失敗。
顯示時機: 非同步工作失敗時。
顯示頻率: 一旦。
令人不覺的因素: 如果實用且相關,則為低;如果問題會立即解決,或使用者不小心,則為高。
選擇: 如果使用者必須立即解決失敗,請使用強制回應對話方塊。
非重大系統事件
至少暫時通知使用者可放心忽略的重要系統事件或狀態。
低電池電源通知的螢幕擷取畫面
在此範例中,Windows 會警告使用者電池計量不足,但仍有足夠時間才能採取行動。
顯示時機: 事件發生且使用者處於作用中狀態時,或條件會繼續存在。 如果因問題而產生,請在解決問題後立即移除目前顯示的通知。 如同動作通知,只有在使用者可能等候事件或最近失敗之後,才會通知使用者成功系統事件。
顯示頻率: 第一次發生事件時一次。 如果這會導致使用者需要解決的問題,請每天重新顯示一次。
令人不覺的因素: 低,只要通知未太常顯示。
選擇: 如果使用者最終必須解決問題,請在解決變成必要時,使用漸進式呈報,藉此顯示強制回應對話方塊。
選擇性使用者工作
通知使用者應該執行的非同步工作。 無論是選擇性還是必要,工作都可以安全地延後。
可用更新通知的螢幕擷取畫面
在此範例中,Windows Update通知使用者新的安全性更新。
顯示時機: 決定執行工作的需求且使用者為使用中時。
顯示頻率: 一天最多三次。
令人不覺的因素: 低,只要使用者考慮工作很重要,且通知不會太常顯示。
選擇: 如果使用者最終必須執行工作,請在工作變成強制時,最終顯示強制模式對話方塊,以使用漸進式呈報。
FYI
通知使用者可能有用的相關資訊。 如果資訊是選擇性的,而且使用者加入宣告,您可以通知使用者有關臨界相關性的資訊。
正確:
新電子郵件訊息通知的螢幕擷取畫面
在此範例中,收到新的電子郵件訊息時,使用者會收到通知。
正確:
已登入連絡人通知的螢幕擷取畫面
在此範例中,使用者會在連絡人上線時收到通知,而且他們選擇接收此選擇性資訊。
不正確:
通知的螢幕擷取畫面,以加快效能
在此範例中,只有在使用者已安裝高速 USB 埠時,此資訊才有用。 否則,使用者不太可能因為結果而執行任何不同動作。
顯示時機: 觸發事件發生時。
示範如何: 使用即時選項,讓使用者在執行全螢幕應用程式或未主動使用其電腦時,這些通知不會排入佇列。
顯示頻率: 一旦。
令人不覺的因素: 中至高,視使用者對於實用性和相關性的認知而定。 如果使用者感興趣的機率很低,則不建議使用。
選擇: 請勿通知使用者。
功能公告
通知使用者新安裝的未使用系統或應用程式功能。
請勿對功能廣告使用通知! 請改用另一種方式讓功能可供探索,例如:
  • 在需要的功能內容中設計更容易探索的功能。
  • 不要執行任何特殊動作,讓使用者自行探索此功能。
不正確:
新功能通知的螢幕擷取畫面
請勿針對功能廣告使用通知。

指導方針

一般

  • 根據通知模式的使用方式選取通知模式。 如需每個使用模式的描述,請參閱上表。
  • 在初始 Windows 體驗期間,請勿使用任何通知。 為了改善其第一次體驗,Windows 7 會隱藏前幾小時內顯示的所有通知。 假設使用者不會看到任何這類通知,請設計您的程式。

要通知的內容

  • 除非在下列情況下,否則請勿通知成功的作業:

    • 安全性。 使用者會將安全性作業視為最高重要性,因此請通知使用者成功執行安全性作業。
    • 最近的失敗。 如果使用者在之前立即失敗,則不會對成功執行作業,因此在作業最近失敗時通知使用者成功。
    • 避免造成不便。 這麼做時回報成功的作業可能會避免使用者不方便。 因此,以非預期的方式執行成功作業時通知使用者,例如當作業太長或早或晚于預期時。
  • 在其他情況下,不提供任何成功意見反應,或「隨選」提供意見反應。 假設使用者成功執行授與的作業。 您可以在執行作業時顯示圖示 (或變更通知區域中的現有圖示) ,並在作業完成時移除圖示 (或還原上一個圖示) 來提供意見反應。

  • 針對 FYI 模式, 如果使用者可以正常運作,或不太可能因為通知而執行任何不同動作,請勿提供通知。

    不正確:

    通知的螢幕擷取畫面,以加快效能

    在此範例中,只有在使用者已安裝埠時才有用。 否則,使用者不太可能因為結果而執行任何不同動作。

    • 例外狀況: 如果資訊是選擇性的,而且使用者加入宣告,您可以通知使用者有問題相關性的資訊。

      正確:

      已登入連絡人通知的螢幕擷取畫面

      在此範例中,使用者會在連絡人上線時收到通知,而且他們選擇接收此選擇性資訊。

  • 針對非重大系統事件和 FYI 模式, 請使用單一事件的完整通知。 不要顯示數個部分部分。

    不正確:

    [找到新硬體] 通知的螢幕擷取畫面

    這些範例只會顯示 Windows XP 在使用者附加特定 USB 鍵盤時所顯示的八個通知中的四個,每個通知都會以累加方式呈現更多資訊。

    正確:

    安裝狀態通知的螢幕擷取畫面

    在此範例中,連結 USB 鍵盤會產生兩個完整的通知。

何時通知

  • 根據其設計模式顯示通知:
模式 何時通知
動作成功
非同步工作完成時。 只有在使用者可能等候完成或最近失敗之後,才通知使用者成功執行動作。
動作失敗
非同步工作失敗時。
非重大系統事件
事件發生且使用者處於作用中狀態時,或條件會繼續存在。 如果發生問題,請在解決問題後立即移除目前顯示的通知。
選擇性使用者工作
決定執行工作的需求且使用者為使用中時。
FYI
觸發事件發生時。
  • 針對動作失敗模式, 如果問題可能會在幾秒鐘內自行更正,請延遲適當時間的失敗通知。 如果問題自行修正,則不會回報任何內容。 只有在有足夠的時間通過之後,才會通知失敗是明顯的。 如果您太早回報,最有可能的使用者不會注意到回報的問題,但會注意到不必要的通知。

不正確:

沒有網路連線通知的螢幕擷取畫面

緊接在後面時:

連線成功通知的螢幕擷取畫面

在此範例中,在 Windows Vista 中,沒有無線連線的通知是提前的,因為它通常緊接著良好的連線通知。

  • 針對動作成功和 FYI 模式,請使用即時選項,讓使用者在執行全螢幕應用程式或未主動使用其電腦時,不會 將過時的通知排入佇列
  • 針對非重大系統事件模式, 請勿藉由交錯與使用者登入等已知事件相關的事件來建立通知 Storm 的可能性。 相反地,將事件系結至事件之後的一段時間。 例如,您可以提醒使用者在使用者登入後五分鐘註冊產品。

通知的時間長度

在 Windows Vista 和更新版本中,通知會顯示固定持續時間為 9 秒。

通知的頻率

  • 顯示通知的次數是根據其設計模式:
模式 通知的頻率
動作成功
一次。
動作失敗
一次。
非重大系統事件
第一次發生事件時一次。 如果這會導致使用者需要解決的問題,請每天重新顯示一次。
選擇性使用者工作
一天最多三次。
FYI
一次。
  • 對於選擇性的使用者工作,請勿透過持續顯示通知,嘗試將使用者複製到提交。 如果需要工作,請立即顯示強制回應對話方塊,而不是使用通知。

通知呈報

  • 請勿假設使用者會看到您的通知。 使用者不會在下列情況下看到這些使用者:
    • 他們深浸于其工作。
    • 它們不會注意。
    • 他們離開電腦。
    • 它們正在執行全螢幕應用程式。
    • 其系統管理員已關閉其電腦的所有通知。
  • 如果使用者最終必須採取某種動作,請使用漸進式擴大 來顯示使用者無法忽略的替代 UI。

互動

  • 在:
    • 使用者應該執行動作。 按一下通知應該會顯示使用者可以執行動作的視窗。 對於動作失敗和選擇性的使用者工作設計模式,最好使用此方法。
    • 使用者可能會想要查看詳細資訊。 按一下通知應該會顯示一個視窗,讓使用者可以檢視其他資訊。
  • 當使用者按一下以執行動作時,一律顯示視窗。 沒有按一下即可直接執行動作。
  • 按一下以顯示更多資訊應該一律會顯示更多資訊。 不要只重新寫通知中的資訊。

圖示

  • 針對動作失敗模式,請使用標準錯誤圖示。
  • 針對非重大系統事件模式,請使用標準警告圖示。
  • 針對其他模式,請使用圖示來顯示與主旨相關的物件或建議物件,例如安全性防護板或電源電池。
  • 如果您的目標使用者會辨識這些圖示,而且沒有更好的替代方案,請使用以您的應用程式或公司商標為基礎的圖示。
  • 針對漸進式呈報, 請考慮使用具有漸進式外觀的圖示,因為情況變得更緊急。
  • 請勿使用標準資訊圖示。 該通知是資訊,不需要說出。
  • 請考慮在下列情況下使用大型圖示 (32x32 圖元) :
    • 使用者會快速理解圖示,而不是文字。
    • 大型圖示會比標準 16x16 圖元圖示更清楚且有效地傳達其意義。
    • 此圖示會使用 登入樣式

[重要訊息] 通知的螢幕擷取畫面

在此範例中,使用者可以快速理解通知的本質,並大致瞭解大型圖示。

通知佇列

注意: 每當無法立即顯示通知時,通知都會排入佇列,例如顯示另一個通知、使用者正在執行全螢幕應用程式,或使用者未主動使用電腦。 即時通知只會保留在佇列中 60 秒。

  • 針對動作成功和 FYI 模式,請使用即時選項 ,讓通知不會排入佇列很長。 這些通知只有在可以立即顯示時才會有值。
  • 當已不再相關通知時,請移除已排入佇列的通知。
  • 開發 人員: 您可以藉由在 uFlags 中設定NIF_INFO旗標,並將 szInfo 設定為空字串來執行此動作。 如果通知不再位於佇列中,則不會造成任何損害。

系統整合

  • 如果您的應用程式在執行時不一定會有 通知區域中 的圖示,請在 造成通知的非同步工作或事件期間暫時顯示圖示。

Text

標題文字

  • 使用標題文字,簡短摘要說明您需要以清楚、純明、簡潔、特定語言傳達給使用者的最重要資訊。 使用者應該能夠快速且最少地瞭解通知資訊的目的。
  • 使用文字片段或完整句子而不結束標點符號。
  • 使用句型大寫。
  • 在英文) 中使用不超過 48 個字元 (,以容納當地語系化。 標題的長度上限為 63 個字元,但翻譯英文文字時,您必須允許 30% 的擴充。

本文

  • 使用提供描述的本文 (,而不重複標題) 中的資訊,並選擇性地提供通知的特定詳細資料,並讓使用者知道可用的動作。

  • 使用完整句子搭配結尾標點符號。

  • 使用句型大寫。

  • 在英文) 中使用不超過 200 個字元 (,以容納當地語系化。 本文的長度上限為 255 個字元,但您必須在翻譯英文文字時允許 30% 的擴充。

  • 在本文中包含基本資訊,例如特定物件名稱。 (範例:使用者名稱、檔案名或 URL.) 使用者不應該開啟另一個視窗來尋找這類資訊。

  • 將雙引號放在物件名稱周圍。

    • 例外: 請勿在下列情況下使用引號:
      • 物件名稱一律使用 標題樣式大寫,例如搭配使用者名稱。
      • 物件名稱與冒號位移 (範例:印表機名稱:我的印表機) 。
      • 物件名稱可以輕鬆地從內容判斷。
  • 如果您必須將物件名稱截斷為固定大小上限以容納當地語系化,請使用省略號來表示截斷。

    包含縮短名稱之訊息的螢幕擷取畫面

    在此範例中,物件名稱會使用省略號截斷。

  • 如果通知可採取動作,請使用下列片語:

    • 如果使用者可以按一下通知來執行動作:

      < 基本資訊的簡短描述>

      <選擇性詳細資料>

      按一下即可 < 執行某些動作 > 。

      訊息的螢幕擷取畫面:[按一下以檢視進度]

      在此範例中,使用者可以按一下以執行動作。

    • 如果使用者可以按一下通知以查看詳細資訊:

      < 基本資訊的簡短描述>

      <選擇性詳細資料>

      按一下以取得詳細資訊。

      訊息的螢幕擷取畫面:按一下以取得詳細資訊

      在此範例中,使用者可以按一下以取得詳細資訊。

  • 請勿說使用者「必須」在通知中執行動作。 通知適用于使用者可以自由忽略的非重要資訊。 如果使用者真的必須執行動作,請勿使用通知。

  • 如果使用者應該執行動作,請清楚顯示重要性。

  • 針對動作失敗和非重大系統事件模式, 請以純文字描述問題。

    不正確:

    冗長、複雜訊息的螢幕擷取畫面

    在此範例中,問題會使用過度的技術性但非特定語言來描述。

    正確:

    清楚、簡潔的訊息螢幕擷取畫面

    在此範例中,問題會以純文字描述。

  • 以與目標使用者相關的方式描述事件。 如果使用者在通知結果中執行工作或變更其行為有合理的機率,則通知會相關。 您可以藉由描述使用者目標而非技術問題來描述通知,以達成此目的。

文件

參考通知時:

  • 使用確切的標題文字,包括其大寫。
  • 以通知的形式參考元件,而非氣球或警示。
  • 若要描述使用者互動,請使用 click。
  • 可能的話,請使用粗體文字格式化標題文字。 否則,只有在需要防止混淆時,才將標題放在引號中。

範例:當 [重大更新] 準備好安裝 通知出現時,請按一下通知以啟動程式。

參考通知區域時:

  • 請參閱通知區域作為通知區域,而不是系統匣。