通知 (設計基本概念)
注意
此設計指南是針對 Windows 7 所建立,但尚未針對較新版本的 Windows 更新。 大部分的指導方針仍適用主體,但簡報和範例不會反映 我們目前的設計指導方針。
通知會短暫顯示通知區域中圖示的方塊,通知使用者事件與目前使用者活動無關。 通知可能是由使用者動作或重大系統事件所產生,或可能會提供來自 Microsoft Windows 或應用程式的潛在實用資訊。
通知中的資訊 很有用且相關,但絕對不重要。 因此,通知不需要立即使用者動作,而且使用者可以自由忽略它們。
一般通知。
在 Windows Vista 和更新版本中,通知會顯示固定持續時間為 9 秒。 當使用者處於非使用中狀態或螢幕保護裝置程式執行時,不會立即顯示通知。 Windows 會在這些時間自動將通知排入佇列,並在使用者繼續一般活動時顯示已排入佇列的通知。 因此,您不需要執行任何動作來處理這些特殊情況。
開發 人員: 您可以使用 SHQueryUserNotificationState API 來判斷使用者何時使用中。
注意: 與 通知區域、 工作列和 方塊 相關的指導方針會顯示在不同的文章中。
這是正確的使用者介面嗎?
若要決定使用時機,請考量下列問題:
在此範例中,[Windows 防火牆例外狀況] 對話方塊會顯示為使用者互動的直接結果。 此處的通知不適當。
- 只有在使用者主動使用您的應用程式時,資訊才相關? 如果是,請在應用程式 的狀態列 或其他狀態區域中顯示資訊。
在此範例中,Outlook 會在其狀態列上顯示其連線和同步處理狀態。
- 資訊是否快速變更、連續、即時資訊? 範例包括處理進度、股票報價和運動分數。 如果是,請勿使用通知,因為它們不適合快速變更的資訊。
- 資訊是否有用且相關? 使用者是否可能會變更其行為,或避免因為收到資訊而造成不便? 如果沒有,請不要顯示資訊,或將它放在狀態視窗或記錄檔中。
- 資訊是否重要? 是否需要立即採取動作? 如果是,請使用需要注意且無法輕易忽略的介面來顯示資訊,例如強制回應對話方塊或訊息方塊。 如果程式沒有作用中,您可以 藉由閃爍程式的工作列按鈕 三次,並將它保持醒目提示,直到程式處於作用中狀態,來吸引注意重要資訊。
- 主要目標使用者是 IT 專業人員嗎? 如果是,請使用替代的意見反應機制,例如 記錄檔 專案或電子郵件訊息。 IT 專業人員強烈建議記錄檔用於非重要資訊。 此外,伺服器通常會從遠端系統管理,而且通常會在沒有任何使用者登入的情況下執行,讓通知無效。
設計概念
提升良好使用者體驗的有效通知如下:
- 非同步: 此事件不是使用者目前與 Microsoft Windows 或應用程式互動的直接結果。
- 有用。 使用者將執行工作或變更其行為是通知結果的合理機會。
- 相關。 通知會顯示使用者關心且不知道的實用資訊。
- 不重要。 通知不是強制回應,而且不需要使用者互動,因此使用者可以自由忽略它們。
- 可行。 對於建議執行動作的通知,按一下通知會起始該動作。 不過,一律可以延後動作。
- 適當呈現。 通知的簡報 (持續時間、頻率、文字、圖示和互動性) 符合其情況。
- 不令人不動! 在對使用者進行事件和防毒處理之間有一條細微的線。
可惜的是,有太多麻煩、不當、無用、不相關的通知。 請考慮來自 Windows XP Hall of 一文的這些通知:
在這些範例中,Windows XP 嘗試協助使用者進行初始設定。 不過,這些通知在使用之後太頻繁且很實用,因此這些通知比未經請求的功能廣告還少。
必須維護使用者流程
在理想情況下,使用者完全不會看到您的通知。 相反地,只有在流程已中斷時,他們才會看到您的通知。
在流程中:最佳體驗的執行時間,Mihaly Csikszentmihalyi 表示使用者在活動中完全吸收時進入流程狀態,讓他們失去時間感並感到滿意。
有效的通知可藉由呈現容易忽略的實用相關資訊,協助使用者維護其流程。 通知會以低鍵、周邊方式呈現,而且不需要互動。
請勿假設如果通知是 無模式 的,則不會造成令人不動的中斷。 通知不會要求使用者注意,但確實會要求通知。 您可以藉由:
- 顯示使用者不關心的通知。
- 太常顯示通知。
- 當單一通知足夠時,請使用數個通知。
- 顯示通知時使用音效。
在 Windows 7 中,使用者最終可以控制通知。 如果使用者發現程式的通知太過令人抱歉,他們可以選擇隱藏該程式的所有通知。 請確定使用者不會透過呈現有用的相關資訊並遵循這些指導方針,來對程式執行這項操作。
通知必須可忽略
通知不需要立即使用者動作,而且使用者可以自由忽略它們。
開發人員和設計工具通常想要以使用者無法忽略的方式呈現其通知。 此目標會完全破壞通知的主要優點,因為它會中斷使用者的流程。 如果使用者因為通知而分心,或覺得有義務閱讀這些通知,您的通知設計就會失敗。
如果您擔心使用者忽略您的通知,請考慮下列事項:
- 如果您已正確使用通知,而且他們不需要立即使用者動作,則讓使用者選擇忽略通知是設計方式。 請勿變更此專案。
- 如果事件需要立即使用者動作,請使用使用者無法忽略的替代使用者介面 (UI) 。 請參閱這是正確的使用者介面嗎?替代專案。
在適用的情況下使用漸進式呈報
如果通知用於使用者一開始可以放心忽略的事件,但最終必須解決,則當情況變得重要時,應該使用替代 UI。 這項技術稱為漸進式擴大。
例如,Windows 電源管理系統一開始會藉由變更其通知區域圖示來指出電池不足。
在這些範例中,Windows 電源管理會使用通知區域圖示來通知使用者逐漸降低電池電力。
當電池計量變低時,Windows 會使用通知警告使用者弱式電池電力。
在此範例中,Windows 電源管理會使用通知來告知使用者電池電力弱。
當使用者仍有數個選項時,就會顯示此通知。 使用者可以插入、變更電源選項、包裝工作並關閉電腦,或忽略通知並繼續運作。 當電池電源繼續清空時,通知的文字和圖示會反映額外的緊急性。 不過,一旦電池電源變低,使用者必須立即採取行動,Windows 電源管理就會使用 強制回應 訊息方塊通知使用者。
在此範例中,Windows 電源管理會使用強制回應訊息框來通知使用者電池計量過低。
如果您只執行三件事...
- 只有在您真的需要時,才使用通知。 當您顯示通知時,您可能會中斷使用者,甚至對使用者造成干擾。 請確定中斷是合理的。
- 針對不需要立即使用者動作的非重大事件或情況使用通知。 對於需要立即使用者動作的重要事件或情況,請使用替代 UI (,例如強制回應對話方塊) 。
- 如果您使用通知,請讓它成為良好的使用者體驗。 請勿嘗試強制使用者查看您的通知。 如果使用者在工作上很沈浸,所以他們看不到您的通知,您的設計就很好。
使用模式
通知有數種使用模式:
標籤 | 值 |
---|---|
動作成功 在非同步、使用者起始的動作成功完成時通知使用者。 |
正確: 在此範例中,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。
- 可能的話,請使用粗體文字格式化標題文字。 否則,只有在需要防止混淆時,才將標題放在引號中。
範例:當 [重大更新] 準備好安裝 通知出現時,請按一下通知以啟動程式。
參考通知區域時:
- 請參閱通知區域作為通知區域,而不是系統匣。