通知(設計基本概念)
通知會透過簡短顯示通知區域中圖示的批註方塊,通知使用者與目前用戶活動無關的事件。 通知可能是由用戶動作或重大系統事件所產生,或可能會從 windows 或應用程式Microsoft提供可能有用的資訊。
通知中的資訊 實用且相關,但絕不重要。 因此,通知不需要立即用戶動作,而且使用者可以自由地忽略它們。
標題螢幕快照
一般通知。
在 Windows Vista 和更新版本中,通知會顯示 9 秒的固定持續時間。 當使用者處於非使用中狀態或螢幕保護程式執行時,不會立即顯示通知。 Windows 會在這些時間自動將通知排入佇列,並在用戶繼續一般活動時顯示已排入佇列的通知。 因此,您不需要執行任何動作來處理這些特殊情況。
開發人員: 您可以使用SHQueryUserNotificationState API來判斷使用者何時使用中。
附注:通知區域、任務列,以及 氣球 的相關指導方針會分別顯示在個別文章中。
這是正確的使用者介面嗎?
若要決定,請考慮下列問題:
windows 安全性警示的
在此範例中,[Windows 防火牆例外狀況] 對話框會顯示為用戶互動的直接結果。 此處的通知不適用。
- 只有在用戶主動使用您的應用程式時,資訊才相關? 如果是,請在應用程式 狀態列 或其他狀態區域中顯示資訊。
outlook 狀態列的
在此範例中,Outlook 會在狀態列上顯示其連線和同步處理狀態。
- 資訊是否快速變更、連續、實時資訊? 範例包括處理進度、股票報價和運動分數。 若是如此,請勿使用通知,因為它們不適合快速變更的資訊。
- 資訊是否有用且相關? 使用者是否可能會變更其行為,或避免因為收到資訊而造成不便? 如果沒有,則不會顯示資訊,或將其放在狀態視窗或記錄檔中。
- 資訊是否重要? 是否需要立即採取動作? 如果是,請使用需要注意且無法輕易忽略的介面來顯示資訊,例如強制回應對話框或消息框。 如果程式沒有作用中,您可以 將程式的任務欄按鈕閃爍 三次,並將它醒目提示,直到程式處於作用中狀態,以吸引人們對重要資訊的注意。
- 主要目標使用者IT專業人員嗎? 如果是,請使用替代的意見反應機制,例如 記錄檔 專案或電子郵件訊息。 IT 專業人員強烈建議記錄檔用於非重要資訊。 此外,伺服器通常會從遠端管理,而且通常會在沒有任何使用者登入的情況下執行,使通知無效。
設計概念
提升良好用戶體驗的有效通知如下:
- 異步。 事件不是使用者目前與 windows 或應用程式互動Microsoft的直接結果。
- 有用。 使用者有合理的機會執行工作,或因通知而變更其行為。
- 相關。 通知會顯示使用者關心且不知道的實用資訊。
- 不重要。 通知不是強制回應,不需要用戶互動,因此使用者可以自由地忽略它們。
- 可行。 對於建議執行動作的通知,按兩下通知會起始該動作。 不過,動作一律可以延後。
- 適當呈現。 通知的簡報(持續時間、頻率、文字、圖示和互動性)符合其情況。
- 不煩人! 輕輕地通知使用者事件和糾纏他們之間有一條細線。
不幸的是,那裡有太多的令人惱火,不適當,無用,無關緊要的通知。 請考慮來自 Windows XP 的恥辱大廳的這些通知:
[導覽 windows xp] 通知的螢幕快照
在這些範例中,Windows XP 顯然嘗試協助用戶進行初始設定。 不過,這些通知在很有用之後經常出現,因此它們只不過是未經請求的功能廣告。
必須維護使用者流程
在理想情況下,沉浸於其工作的使用者完全不會看到您的通知。 相反地,只有在流程已中斷時,他們才會看到您的通知。
在流程:最佳體驗的心理學,Mihaly Csikszentmihalyi說,使用者在完全吸收活動時進入流動狀態,在此期間,他們失去了他們的時間感,並有極大的滿足感。
有效的通知可藉由呈現容易忽略的實用相關信息,協助用戶維護其流程。 通知會以低調、周邊方式呈現,而且不需要互動。
請勿假設通知 無模式,則不會造成令人惱火的中斷。 通知不需要使用者的注意,但他們當然會要求通知。 您可以藉由:
- 顯示使用者不關心的通知。
- 太常顯示通知。
- 當單一通知足夠時,使用數個通知。
- 顯示通知時使用音效。
在 Windows 7 中,使用者對通知有最終控制權。 如果用戶發現程式的通知太煩人了,他們可以選擇隱藏來自該程式的所有通知。 請確定使用者不會藉由提供有用的相關信息並遵循這些指導方針,來對您的程序執行這項作。
通知必須可忽略
通知不需要立即用戶動作,而且使用者可以自由地忽略它們。
開發人員和設計工具通常想要以用戶無法忽略的方式呈現其通知。 此目標完全破壞通知的主要優點,因為它會中斷使用者的流程。 如果使用者因通知而分心,或覺得有義務閱讀通知,您的通知設計就會失敗。
如果您擔心使用者忽略您的通知,請考慮下列事項:
- 如果您正確使用通知,且不需要立即用戶動作,則讓用戶選擇忽略通知是設計方式。 請勿變更此設定。
- 如果事件需要立即使用者動作,請使用使用者無法忽略的替代使用者介面 (UI)。 請參閱這是正確的使用者介面嗎?替代專案。
在適用的情況下使用漸進式呈報
如果通知用於使用者一開始可以安全地忽略的事件,但最終必須加以解決,則當情況變得嚴重時,應該使用替代UI。 這項技術稱為漸進式呈報。
例如,Windows 電源管理系統一開始只要變更其通知區域圖示,即表示電池電量過低。
六個圖示的螢幕快照
在這些範例中,Windows 電源管理會使用通知區域圖示來通知用戶逐漸降低電池電量。
隨著電池電量變低,Windows 會使用通知警告使用者電池電力不足。
通知的螢幕快照
在此範例中,Windows 電源管理會使用通知來告知使用者電池電量較弱。
當使用者仍有數個選項時,就會顯示此通知。 使用者可以插入、變更電源選項、包裝工作並關閉計算機,或忽略通知並繼續運作。 當電池電源繼續耗盡時,通知的文字和圖示會反映額外的緊迫性。 不過,一旦電池電量變低,用戶必須立即採取行動,Windows 電源管理會使用 強制回應 消息框通知使用者。
在此範例中,Windows 電源管理會使用強制回應消息框通知使用者電池電量過低。
如果您只做三件事...
- 只有在您真的需要時才使用通知。 當您顯示通知時,您可能會中斷使用者,甚至惹惱使用者。 請確定中斷是合理的。
- 針對不需要立即用戶動作的非重大事件或方式使用通知。 針對需要立即用戶動作的重要事件或情況,請使用替代 UI(例如強制回應對話框)。
- 如果您使用通知,請讓它成為良好的用戶體驗。 請勿嘗試強制使用者查看您的通知。 如果使用者是如此沉浸於他們的工作,他們看不到您的通知,您的設計很好。
使用模式
通知有數種使用模式:
標籤 | 價值 |
---|---|
動作成功 在異步的使用者起始動作成功完成時通知使用者。 |
正確:![]() 在此範例中,Windows Update 會在電腦成功更新時通知使用者。 不正確: ![]() 在此範例中,Microsoft Outlook 會在數據文件檢查完成時通知使用者。 用戶現在應該做什麼? 為什麼會警告使用者成功完成? 顯示時機:完成異步工作時。 只有在使用者可能等待完成或最近失敗之後,才通知使用者成功動作。 顯示方式: 使用即時選項,讓使用者在執行全螢幕應用程式或未主動使用其計算機時,不會排入佇列。 顯示頻率: 一次。 煩人因素: 由於最近的失敗而未預期成功,成功是在重大或高度不尋常的失敗之後,所以使用者需要額外的意見反應,或使用者正在等待完成;如果不是,則為 high。 替代方案: 在執行作業時,在通知區域中顯示圖示(或變更現有圖示),以「視需要」提供意見反應;當作業完成時,請移除圖示(或還原上一個圖示)。 |
動作失敗 在異步的使用者起始動作失敗時通知使用者。 |
正確:![]() 在此範例中,Windows 啟用會通知用戶失敗。 不正確: ![]() 在此範例中,Microsoft Outlook 用來通知用戶他們不太可能關心的失敗。 顯示時機:異步工作失敗時。 顯示頻率: 一次。 煩惱因素:如果有用且相關, 低:如果問題會立即解決,或使用者不關心,則為 high。 替代方案:如果用戶必須立即解決失敗問題, 使用強制回應對話方塊。 |
非重大系統事件 通知使用者可以放心忽略的重要系統事件或狀態,至少暫時忽略。 |
![]() 在此範例中,Windows 會警告使用者低電池電量,但仍有足夠的時間才採取行動。 顯示時機: 事件發生且用戶處於作用中狀態,或條件繼續存在。 如果因問題而產生,請在解決問題后立即移除目前顯示的通知。 如同動作通知,只有在使用者可能正在等候事件或最近失敗之後,才通知使用者成功系統事件。 顯示事件第一次發生的頻率: 一次。 如果這會導致使用者需要解決的問題,請每天重新播放一次。 煩人因素: 低,只要通知不經常顯示。 替代方案: 如果使用者最終必須解決問題,請在解決變成強制時,最終顯示強制回應對話方塊,以使用漸進式呈報。 |
選擇性使用者工作 通知用戶他們應該執行的異步工作。 無論是選擇性還是必要,都可以安全地延後工作。 |
![]() 在此範例中,Windows Update 會通知使用者新的安全性更新。 顯示時機: 決定執行工作並作用中用戶的時間。 顯示頻率:每天 最多三次。 煩人因素: 低,只要用戶考慮工作很重要,而且通知不會太常顯示。 替代方案: 如果使用者最終必須執行工作,請在工作變成強制時,最終顯示強制回應對話方塊,以使用漸進式呈報。 |
FYI 通知使用者可能有用的相關信息。 如果這是選擇性資訊,而且使用者選擇加入,您可以通知使用者資訊是否具有臨界相關性。 |
正確:![]() 在此範例中,使用者會在收到新的電子郵件訊息時收到通知。 正確: ![]() 在此範例中,使用者會在聯繫人上線時收到通知,他們選擇接收此選擇性資訊。 不正確: ![]() 在此範例中,只有在使用者已安裝高速 USB 埠時,資訊才有用。 否則,使用者不會因為結果而執行任何不同動作。 顯示時機: 觸發事件發生時。 顯示方式: 使用即時選項,讓使用者在執行全螢幕應用程式或未主動使用其計算機時,不會排入佇列。 顯示頻率: 一次。 煩惱因素: 中到高,取決於使用者對實用性和相關性的看法。 如果使用者感興趣的機率較低,則不建議使用。 替代方案: 不要通知使用者。 |
功能廣告 通知使用者新安裝、未使用的系統或應用程式功能。 |
請勿對功能廣告使用通知! 請改用另一種方式讓功能可供探索,例如:
![]() 請勿針對功能公告使用通知。 |
指引
常規
- 根據通知模式的使用方式選取通知模式。 如需每個使用模式的描述,請參閱上表。
- 在初始 Windows 體驗期間請勿使用任何通知。 為了改善其第一次體驗,Windows 7 會隱藏在使用前幾個小時內顯示的所有通知。 設計您的程式,假設使用者不會看到任何這類通知。
要通知的內容
請勿通知成功的作業,但下列情況除外:
- 安全。 使用者會將安全性作業視為最重要的作業,因此請通知使用者成功執行安全性作業。
- 最近的失敗。 如果使用者在之前立即失敗,則不會將成功作業視為理所當然,因此在最近作業失敗時通知使用者成功。
- 避免不便。 執行此動作時回報成功的作業可能會避免使用者不方便。 因此,以非預期的方式執行成功作業時,通知使用者,例如當作業比預期早或晚完成時。
在其他情況下,不提供成功的意見反應,或「視需要提供意見反應」。 假設使用者接受成功的作業獲得授權。 您可以在執行作業時顯示通知區域中的圖示(或變更現有圖示),並在作業完成時移除圖示(或還原上一個圖示),以視需要提供意見反應。
針對 FYI 模式,如果使用者可以正常運作,或不太可能因為通知而執行任何不同動作,則 不會提供通知。
不正確:
在此範例中,只有在使用者已安裝埠時,資訊才有用。 否則,使用者不會因為結果而執行任何不同動作。
例外狀況:您可以選擇性且使用者選擇加入時,可以通知使用者可疑相關性的資訊。
正確:
已登入螢幕快照
在此範例中,使用者會在聯繫人上線時收到通知,他們選擇接收此選擇性資訊。
對於非關鍵系統事件和 FYI 模式,針對單一事件使用完整的通知。 不要顯示數個部分部分。
不正確:
這些範例只會顯示 Windows XP 在使用者附加特定 USB 鍵盤時所顯示的八個通知中的四個,每個通知都會以累加方式呈現更多資訊。
正確:
在此範例中,連結USB鍵盤會產生兩個完整的通知。
通知的時機
- 根據其設計模式顯示通知:
模式 | 通知的時機 |
---|---|
動作成功 |
異步工作完成時。 只有在使用者可能等待完成或最近失敗之後,才通知使用者成功動作。 |
動作失敗 |
異步工作失敗時。 |
非重大系統事件 |
事件發生且用戶處於作用中狀態時,或條件會繼續存在。 如果發生問題,請在解決問題后立即移除目前顯示的通知。 |
選擇性使用者工作 |
判斷需要執行工作且用戶為作用中時。 |
FYI |
觸發事件發生時。 |
- 針對動作失敗模式,如果問題可能在幾秒鐘內自行更正,請延遲適當的時間失敗通知。 如果問題自行修正,則不會回報任何專案。 只有在經過足夠的時間之後才會通知失敗是明顯的。 如果您回報太早,最有可能的使用者不會注意到回報的問題,但他們會注意到不必要的通知。
不正確:
沒有網路連線通知的
緊接在後面時:
線上成功通知的
在此範例中,在 Windows Vista 中,沒有無線連線的通知還為時過早,因為它通常緊接著良好連線的通知。
- 針對動作成功和 FYI 模式,使用即時選項,讓使用者在執行全螢幕應用程式或未主動使用其計算機時,不會將過時的通知排入佇列。
- 針對非關鍵系統事件模式,不會藉由將系結至已知事件,例如使用者登入等已知事件,來建立通知風暴的潛力。 相反地,將事件系結至事件之後的一段時間。 例如,您可以在使用者登入后五分鐘提醒使用者註冊產品。
通知的時間長度
在 Windows Vista 和更新版本中,通知會顯示 9 秒的固定持續時間。
通知的頻率
- 顯示通知的次數是以其設計模式為基礎:
模式 | 通知的頻率 |
---|---|
動作成功 |
一次。 |
動作失敗 |
一次。 |
非重大系統事件 |
第一次發生事件時一次。 如果這會導致使用者需要解決的問題,請每天重新播放一次。 |
選擇性使用者工作 |
一天最多三次。 |
FYI |
一次。 |
- 針對選擇性的使用者工作,請勿透過持續顯示通知來嘗試讓使用者提交。 如果需要工作,請立即顯示強制回應對話方塊,而不是使用通知。
通知呈報
- 請勿假設使用者會看到您的通知。 使用者不會在下列情況下看到它們:
- 他們沉浸在他們的工作中。
- 他們沒有注意。
- 他們遠離他們的計算機。
- 它們正在執行全螢幕應用程式。
- 其系統管理員已關閉其電腦的所有通知。
- 如果使用者最終必須採取某種動作,請使用漸進式呈報 來顯示使用者無法忽略的替代UI。
互動
-
:
- 用戶應該執行動作。 按兩下通知應該會顯示使用者可以執行動作的視窗。 對於動作失敗和選擇性的使用者工作設計模式,建議使用此方法。
- 使用者可能會想要查看詳細資訊。 按兩下通知應該會顯示一個視窗,讓使用者可以檢視其他資訊。
- 當使用者按兩下以執行動作時,一律顯示視窗。 不直接按下 [執行動作]。
- 按兩下以顯示更多資訊應該一律會顯示更多資訊。 不要只重新重寫通知中已經的資訊。
圖示
- 針對動作失敗模式,請使用標準錯誤圖示。
- 針對非重大系統事件模式,請使用標準警告圖示。
- 對於其他模式,請使用顯示與主體相關或建議物件的圖示,例如安全性盾牌或電源電池。
- 如果您的目標用戶會辨識這些圖示,而且沒有更好的替代方案,請使用以您的應用程式或公司商標為基礎的圖示。
- 對於漸進式升級,考慮使用圖示,隨著情況變得更加緊迫,會逐漸強調外觀。
- 請勿使用標準信息圖示。 該通知是資訊不言而喻。
-
考慮使用大型圖示 (32x32 像素) 時:
- 使用者將快速理解圖示,而不是文字。
- 大型圖示會比標準 16x16 像素圖示更清楚且有效地傳達其意義。
- 圖示會使用 Aero 樣式。
在此範例中,使用者可以快速理解通知的性質,並快速查看大型圖示。
通知佇列
注意:每當無法立即顯示通知時, 通知就會排入佇列,例如顯示另一個通知、使用者正在執行全螢幕應用程式,或使用者未主動使用計算機。 即時通知只會保留在佇列中 60 秒。
- 針對動作成功和 FYI 模式,請使用即時選項 讓通知不會排入佇列很長。 這些通知只有在可以立即顯示時,才會有值。
- 不再相關時移除已排入佇列的通知。
- 開發人員: 您可以在 uFlags 中設定NIF_INFO旗標,並將 szInfo 設定為空字串來執行此動作。 如果通知不再位於佇列中,則這樣做不會造成任何傷害。
系統整合
- 如果您的應用程式在執行時,通知區域中不一定有圖示,在造成通知的異步工作或事件期間暫時顯示圖示。
發簡訊
標題文字
- 使用簡短摘要說明您需要以清楚、簡單、簡潔、特定語言傳達給使用者的最重要資訊的標題文字。 用戶應該能夠快速且最少地瞭解通知資訊的目的。
- 使用文字片段或完整的句子,而不結束標點符號。
- 使用句子樣式大寫。
- 使用不超過 48 個字元(英文)來容納當地語系化。 標題的長度上限為 63 個字元,但翻譯英文文字時,您必須允許 30% 的擴充。
本文
使用提供描述的內文文字(而不重複標題中的資訊),以及選擇性地提供通知的特定詳細數據,也讓使用者知道可用的動作。
使用完整句子搭配結尾標點符號。
使用句子樣式大寫。
使用不超過 200 個字元(英文)來容納當地語系化。 本文長度上限為 255 個字元,但翻譯英文文字時,您必須允許 30% 的擴充。
在本文中包含基本資訊,例如特定物件名稱。 (範例:使用者名稱、檔名或 URL。)用戶不應該開啟另一個視窗來尋找這類資訊。
將雙引號放在物件名稱周圍。
-
例外狀況: 不要在下列情況下使用引號:
- 物件名稱一律使用 標題樣式大寫,例如用戶名稱。
- 物件名稱是以冒號位移(例如:印表機名稱:我的印表機)。
- 您可以從內容輕鬆判斷物件名稱。
-
例外狀況: 不要在下列情況下使用引號:
如果您必須將物件名稱截斷為固定大小上限以容納當地語系化,請使用省略號來表示截斷。
包含縮短名稱
在此範例中,物件名稱會使用省略號截斷。
如果通知可採取動作,請使用下列片語:
如果使用者可以按下通知來執行動作:
< 基本資訊> 簡短描述
<選擇性詳細數據>
按兩下即可 <>執行某些動作。
在此範例中,使用者可以按下以執行動作。
如果使用者可以按下通知來查看詳細資訊:
< 基本資訊> 簡短描述
<選擇性詳細數據>
按兩下以取得詳細資訊。
在此範例中,使用者可以按兩下以取得詳細資訊。
不要說使用者「必須」在通知中執行動作。 通知適用於使用者可以自由忽略的非重要資訊。 如果使用者真的必須執行動作,請勿使用通知。
如果使用者應該執行動作,請清楚說明重要性。
針對動作失敗和非關鍵系統事件模式,以純文本描述問題。
不正確:
螢幕快照
在此範例中,使用過於技術但非特定語言來描述問題。
正確:
在此範例中,問題會以純文本描述。
以與目標用戶相關的方式描述事件。 如果使用者有合理的機會執行工作,或因通知而變更其行為,則通知是相關的。 您通常可以藉由描述用戶目標而非技術問題來描述通知來達成此目的。
文件
參考通知時:
- 使用確切的標題文字,包括其大寫。
- 將元件稱為通知,而不是氣球或警示。
- 若要描述用戶互動,請使用 click。
- 可能的話,請使用粗體文字來格式化標題文字。 否則,只有在需要防止混淆時,才將標題放在引號中。
範例:當 重大更新準備好安裝 通知出現時,請按下通知以啟動程式。
參考通知區域時:
- 將通知區域稱為通知區域,而不是系統匣。