訓練
學習路徑
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
注意
此設計指南是針對 Windows 7 所建立,尚未針對較新版本的 Windows 進行更新。 大部分的指導方針仍以原則方式套用,但簡報和範例不會反映 我們目前的設計指導方針。
Windows 7 中的錯誤訊息會警示使用者已發生的問題。 相反地,警告訊息會警示使用者未來可能造成問題的條件。 您可以使用強制回應對話方塊、就地訊息、通知或氣球來呈現錯誤訊息。
典型的強制回應錯誤訊息。
有效的錯誤訊息會通知使用者發生問題、說明發生原因,並提供解決方案,讓使用者可以修正問題。 使用者應該執行動作,或因錯誤訊息而變更其行為。
撰寫良好的實用錯誤訊息對於品質使用者體驗至關重要。 撰寫不佳的錯誤訊息會導致產品滿意度偏低,而且是可避免技術支援成本的前置原因。 不必要的錯誤訊息會中斷使用者的流程。
注意: 與 對話方塊、 警告訊息、 確認、 標準圖示、 通知和 版面配置 相關的指導方針會顯示在不同的文章中。
若要決定使用時機,請考量下列問題:
錯誤訊息不佳的特性
應該不會令人意外,許多令人不小心、無説明且撰寫不佳的錯誤訊息。 由於錯誤訊息通常會使用強制回應對話方塊來呈現,因此會中斷使用者的目前活動,並要求在允許使用者繼續之前予以認可。
問題的一部分是有許多方式可以執行錯誤。 請考慮來自錯誤訊息大廳的下列範例:
不必要的錯誤訊息
不正確:
來自 Windows XP 的這個範例可能是最差的錯誤訊息。 它表示程式無法啟動,因為 Windows 本身正在關機。 使用者無法對此執行任何動作,甚至想要在使用者選擇關閉 Windows 之後, (執行此) 動作。 而且藉由顯示此錯誤訊息,Windows 會防止自己關閉!
問題: 錯誤訊息本身是問題。 除了關閉錯誤訊息之外,使用者不會執行任何動作。
前置原因: 報告所有錯誤案例,不論使用者的目標或觀點為何。
建議的替代方法: 不要回報使用者不關心的錯誤。
「成功」錯誤訊息
不正確:
此錯誤訊息是由使用者選擇不要在程式移除之後立即重新開機 Windows 所產生。 從使用者的觀點來看,程式移除成功。
問題: 使用者的觀點沒有錯誤。 除了關閉錯誤訊息之外,使用者不會執行任何動作。
前置原因: 工作已從使用者的觀點成功完成,但從卸載程式的觀點來看失敗。
建議的替代方法: 請勿針對使用者認為可接受的條件回報錯誤。
完全無用的錯誤訊息
不正確:
使用者瞭解發生錯誤,但不知道錯誤是什麼或該怎麼做。 否,沒關係!
問題: 錯誤訊息不會提供特定問題,而且使用者無法執行任何動作。
前置原因: 程式最有可能的錯誤處理不佳。
建議的替代方法: 在程式中設計良好的錯誤處理。
無法理解的錯誤訊息
不正確:
在此範例中,問題陳述清楚,但補充說明完全不小心。
問題: 問題陳述或解決方案不合理。
前置原因: 從程式碼的觀點來說明問題,而不是使用者。
建議的替代方法: 撰寫目標使用者可以輕鬆地瞭解的錯誤訊息文字。 提供使用者實際可執行檔解決方案。 設計程式的錯誤訊息體驗沒有程式設計人員在現場撰寫錯誤訊息。
過度分配的錯誤訊息
不正確:
在此範例中,錯誤訊息顯然會嘗試說明每個疑難排解步驟。
問題: 太多資訊。
前置原因: 提供太多詳細資料,或嘗試在錯誤訊息中說明複雜的疑難排解程式。
建議的替代方法: 避免不必要的詳細資料。 此外,請避免疑難排解員。 如果需要疑難排解員,請專注于最可能的解決方案,並透過連結至 [說明] 中的適當主題來說明其餘部分。
不必要的嚴重錯誤訊息
不正確:
程式無法尋找物件很難聽起來很嚴重。 假設它是重大的,為什麼回應沒問題?
問題: 程式的語調不必要或非常嚴重。
前置原因: 問題是因為從程式的觀點來看,出現嚴重錯誤的錯誤。
建議的替代方法: 根據使用者的觀點仔細選擇語言。
歸責使用者的錯誤訊息
不正確:
為什麼讓使用者覺得是犯罪?
問題: 錯誤訊息會以要求使用者進行錯誤的方式進行片語。
前置原因: 不區分的片語著重于使用者的行為,而不是問題。
建議的替代方法: 將焦點放在問題上,而不是視需要使用被動語音的使用者動作。
Silly 錯誤訊息
不正確:
在此範例中,問題聲明相當具名,而且不會提供任何解決方案。
問題: 錯誤訊息語句,這些語句是無聲或非 sequitor。
前置原因: 建立錯誤訊息而不需注意其內容。
建議的替代方法: 讓寫入器製作並檢閱您的錯誤訊息。 檢閱錯誤時,請考慮內容和使用者的想法。
程式設計人員錯誤訊息
不正確:
在此範例中,錯誤訊息指出程式中有錯誤。 此錯誤訊息只對程式設計人員有意義。
問題: 旨在協助程式開發人員發現 Bug 的訊息會保留在程式的發行版本中。 這些錯誤訊息對使用者沒有意義或值。
前置原因: 使用一般 UI 自行建立訊息的程式設計人員。
建議的替代方法: 開發人員必須有條件地編譯所有這類訊息,使其自動從產品的發行版本中移除。 請勿浪費時間嘗試對使用者進行類似這種理解的錯誤,因為其唯一的物件是程式設計人員。
錯誤訊息呈現不佳
不正確:
此範例有許多常見的簡報錯誤。
問題: 在錯誤訊息簡報中取得所有詳細資料錯誤。
前置原因: 不知道並套用錯誤訊息指導方針。 不使用寫入器和編輯器來建立和檢閱錯誤訊息。
錯誤處理的本質是讓其中許多錯誤很容易發生。 請注意,大部分的錯誤訊息可能都可能是聖地大會的名詞。
良好錯誤訊息的特性
相較于先前的錯誤範例,良好的錯誤訊息有:
此外,良好的錯誤訊息會以下列方式呈現:
藉由將錯誤處理體驗設計為具有這些特性,您可以將程式的錯誤訊息保留在 [錯誤訊息大廳] 中。
避免不必要的錯誤訊息
錯誤訊息通常不是錯誤訊息。 許多錯誤可以透過更好的設計來避免,而且錯誤訊息的替代方式通常更好。 通常最好避免發生錯誤,而不是報告錯誤。
要避免的最明顯錯誤訊息是無法採取動作的錯誤訊息。 如果使用者可能會關閉訊息而不執行或變更任何動作,請省略錯誤訊息。
有些錯誤訊息可以排除,因為它們不是使用者的觀點的問題。 例如,假設使用者嘗試刪除已在刪除過程中的檔案。 雖然這可能是來自程式碼觀點的非預期案例,但使用者不會考慮此錯誤,因為達到所需的結果。
不正確:
由於動作從使用者的觀點來看成功,因此應該排除此錯誤訊息。
例如,假設使用者明確取消工作。 針對使用者的觀點,下列條件不是錯誤。
不正確:
由於動作從使用者的觀點來看成功,因此也應該排除此錯誤訊息。
有時候可以藉由專注于使用者的目標而非技術來消除錯誤訊息。 如此一來,請重新考慮錯誤是什麼。 使用者的目標或您的程式是否能夠滿足這些目標的問題? 如果使用者的動作在真實世界中很合理,在軟體中也應該合理。
例如,假設在電子商務程式中,使用者嘗試使用搜尋來尋找產品,但常值搜尋查詢沒有相符專案,而且所需的產品已不足。 技術上,這是錯誤,但不會提供錯誤訊息,程式可以:
只要使用者的要求合理,設計良好的電子商務計畫應該傳回合理的結果而非錯誤。
避免錯誤訊息的另一個絕佳方式是避免第一次發生問題。 您可以透過下列方式防止錯誤:
提供必要的錯誤訊息
有時候,您真的需要提供錯誤訊息。 使用者發生錯誤、網路和裝置停止運作、找不到或修改物件、無法完成工作,而且程式有 Bug。 在理想情況下,這些問題會較不常發生,例如,我們可以設計軟體來防止許多類型的使用者錯誤,但無法實際防止所有這些問題。 當其中一個問題確實發生時,有用的錯誤訊息會讓使用者快速回到自己的腳上。
常見的信念是錯誤訊息是最差的使用者體驗,應該避免所有成本,但表示使用者混淆是最差的體驗,而且應該避免所有成本。 有時候,成本是有用的錯誤訊息。
請考慮停用的控制項。 在大部分情況下,停用控制項的原因很明顯,因此停用控制項是避免錯誤訊息的絕佳方式。 不過,如果控制項停用的原因並不明顯,該怎麼辦? 使用者無法繼續,而且沒有意見反應可判斷問題。 現在使用者停滯,必須推論問題或取得技術支援。 在這種情況下,最好讓控制項保持啟用狀態,並改為提供有用的錯誤訊息。
不正確:
為什麼這裡停用 [下一步] 按鈕? 最好讓它保持啟用狀態,並藉由提供有用的錯誤訊息來避免使用者混淆。
如果您不確定是否應該提供錯誤訊息,請從撰寫您可能會提供的錯誤訊息開始。 如果使用者可能執行動作或變更其行為,請提供錯誤訊息。 相較之下,如果使用者可能關閉訊息而不執行或變更任何動作,請省略錯誤訊息。
設計良好的錯誤處理
雖然製作良好的錯誤訊息文字可能很困難,但有時不可能,而不需要程式良好的錯誤處理支援。 請考慮此錯誤訊息:
不正確:
可能的原因是,問題真的是未知的,因為程式的錯誤處理支援缺少。
雖然這是撰寫得很差的錯誤訊息,但更可能反映基礎程式碼缺少良好的錯誤處理,但沒有任何已知問題的特定資訊。
若要建立特定、可採取動作、使用者中心的錯誤訊息,程式的錯誤處理常式代碼必須提供特定的高階錯誤資訊:
良好的錯誤訊息不只是 UI 問題,它們是軟體設計問題。 良好的錯誤訊息體驗不是稍後可以攔截的內容。
疑難排解 (以及如何避免)
使用單一錯誤訊息回報數個不同原因的問題時,針對結果進行疑難排解。
不正確:
正確:
使用單一錯誤訊息回報數個問題時,針對結果進行疑難排解。
在下列範例中,無法移動專案,因為該專案已經移動或刪除,或拒絕存取。 如果程式可以輕鬆地判斷原因,為什麼會對使用者造成負擔來判斷特定原因?
不正確:
正確,這是哪一項? 現在使用者必須進行疑難排解。
程式可以判斷存取是否遭到拒絕,因此應該以特定的錯誤訊息回報此問題。
正確:
有特定原因,就不需要進行疑難排解。
只有在無法判斷特定原因時,才使用具有多個原因的訊息。 在此範例中,程式很難判斷專案是否已移動或刪除,因此可能會在這裡使用具有多個原因的單一錯誤訊息。 不過,使用者不太可能在意,例如,他們無法移動已刪除的檔案。 針對這些原因,甚至不需要錯誤訊息。
處理未知的錯誤
在某些情況下,您真正不會知道問題、原因或解決方案。 如果隱藏錯誤並不明智,最好是預先瞭解缺少資訊,而不是呈現問題、原因或可能不正確的解決方案。
例如,如果您的程式有未處理的例外狀況,則適用下列錯誤訊息:
如果您無法隱藏未知的錯誤,最好是預先瞭解缺少資訊。
另一方面,如果可能大部分時間都很有説明,請提供特定且可採取動作的資訊。
如果網路連線通常發生問題,這個錯誤訊息適用于未知的錯誤。
判斷適當的訊息類型
視強調和片語而定,某些問題可能會顯示為錯誤、警告或資訊。 例如,假設網頁無法根據目前的 Windows Internet Explorer 設定載入未簽署的 ActiveX 控制項:
若要判斷適當的訊息類型,請專注于使用者需要知道或採取行動之問題最重要的層面。 一般而言,如果問題封鎖使用者繼續,您應該將它顯示為錯誤;如果使用者可以繼續,請將它呈現為警告。 根據該焦點製作 主要指令 或其他對應的文字,然後選擇圖示 (標準 或其他符合文字的) 。 主要指令文字和圖示應該一律相符。
錯誤訊息簡報
Windows 程式中大部分的錯誤訊息都是使用強制回應對話方塊來呈現 (,如同本文) 中大部分的範例,但還有其他選項:
將錯誤訊息放在強制回應對話方塊中的好處是要求使用者立即注意和通知。 不過,如果不需要注意,這也是其主要缺點。
您真的需要中斷使用者,才能按一下 [關閉] 按鈕嗎? 如果沒有,請考慮使用強制回應對話方塊的替代方案。
當使用者在繼續之前必須立即認可問題,但通常是不佳的選擇時,強制回應對話方塊是很好的選擇。 一般而言,您應該偏好使用最輕量型的簡報,以妥善執行工作。
避免過度認可
一般而言, 使用者不會讀取,他們會掃描。 文字越多,文字掃描越困難,使用者可能完全不會讀取文字。 因此,請務必減少文字到其基本資訊,並在必要時使用漸進式揭露和說明連結來提供其他資訊。
有許多極端的範例,但讓我們看看一個更典型的範例。 下列範例具有良好錯誤訊息的大部分屬性,但其文字並不簡潔,而且需要動機才能閱讀。
不正確:
此範例是良好的錯誤訊息,但過度認可。
此文字真正說出什麼? 就像這樣:
正確:
此錯誤訊息基本上具有相同的資訊,但更簡潔。
藉由使用 [說明] 提供詳細資料,此錯誤訊息具有 反轉的金字塔圖呈現樣式 。
如需過度通訊的指導方針和範例,請參閱 使用者介面文字。
如果您只執行八件事
使用模式
錯誤訊息有數種使用模式:
標籤 | 值 |
---|---|
系統問題 作業系統、硬體裝置、網路或程式失敗或未處於執行工作所需的狀態。 |
使用者可以解決許多系統問題:
![]() 在此範例中,程式找不到執行使用者工作的相機。 ![]() 在此範例中,必須開啟執行工作所需的功能。 |
檔案問題 找不到使用者起始之工作所需的檔案或資料夾、已在使用中,或沒有預期的格式。 |
![]() 在此範例中,找不到檔案或資料夾,因此無法刪除。 ![]() 在此範例中,程式不支援指定的檔案格式。 |
安全性問題 使用者沒有存取資源的許可權,或有足夠的許可權可執行使用者起始的工作。 |
![]() 在此範例中,使用者沒有存取資源的許可權。 ![]() 在此範例中,使用者沒有執行工作的許可權。 |
工作問題 執行使用者所起始的工作有特定問題, (系統、找不到檔案、檔案格式或安全性問題) 。 |
![]() 在此範例中,剪貼簿資料無法貼到 Paint 中。 ![]() 在此範例中,使用者無法安裝軟體升級。 |
使用者輸入問題 使用者輸入的值不正確或與其他使用者輸入不一致。 |
![]() 在此範例中,使用者輸入了不正確的時間值。 ![]() 在此範例中,使用者輸入的格式不正確。 |
不正確:
在此範例中,未受限制的文字方塊用於限制輸入。 請改用滑杆。
在此範例中,批註方塊表示在控制項中仍發生輸入問題。
在此範例中,就地錯誤是用於按一下認可按鈕找到的錯誤。
強制回應錯誤訊息對話方塊沒有標題列圖示。 標題列圖示是用來做為主要視窗與次要視窗之間的視覺區別。
使用錯誤圖示。 例外狀況:
如果錯誤是使用強制回應對話方塊或批註方塊顯示的使用者輸入問題,請勿使用圖示。 這樣做是與鼓勵的 Windows 語調相反。 不過,就地錯誤訊息應該使用小型錯誤圖示, (16x16 圖元) 明確地將它們識別為錯誤訊息。
在這些範例中,使用者輸入問題不需要錯誤圖示。
在此範例中,就地錯誤訊息需要一個小錯誤圖示,才能清楚地將其識別為錯誤訊息。
如果問題適用于具有圖示 (,而不是使用者輸入問題) 的功能,您可以使用功能圖示搭配錯誤重迭。 如果您這樣做,也請使用功能名稱作為錯誤的主體。
在此範例中,功能圖示有錯誤重迭,而功能是錯誤的主旨。
請勿針對錯誤使用警告圖示。 這通常是為了讓簡報感覺較不嚴重。 錯誤不是警告。
不正確:
在此範例中,警告圖示不正確地用來使錯誤感覺較不嚴重。
如需更多指導方針和範例,請參閱 標準圖示。
在此範例中,漸進式揭露按鈕可協助使用者向下切入,以取得更多詳細資料,或如果不想這麼做,請簡化 UI。
如需標籤指導方針,請參閱 漸進式揭露控制項。
不要再顯示此訊息
如需更多指導方針,請參閱 對話方塊。
如需更多指導方針,請參閱 說明。
不正確:
在此範例中,錯誤碼會用來取代解決方案文字。
正確:
1234
0xC0001234
不正確:
-1
-67113524
<error code>
。
在此範例中,錯誤碼可用來補充可受益于進一步資訊的錯誤訊息。
一般
不正確:
正確:
在這些範例中,正確的版本會說出使用者的語言,而不正確的版本則過度技術。
這些詞彙不必要,與 Windows 的鼓勵語調相反。 正確使用時,錯誤圖示會充分傳達發生問題。
不正確:
正確:
在不正確的範例中,「重大」和「失敗」詞彙是不必要的。
不正確:
正確:
不正確的範例會使用作用中的語音來歸責使用者。
不正確:
找不到檔案。
磁碟已滿。
超出範圍的值。
字元無效。
裝置無法使用。
使用特定名稱、位置和值,這些問題會更容易解決。
正確:
Windows 將檔案複製到您的電腦時,請稍候。
正確:
很抱歉,Fabrikam Backup 偵測到無法復原的問題,並已關閉以保護您電腦上的檔案。
不正確:
正確:
在不正確的範例中,會使用完整的產品名稱和商標符號。
正確:
在此範例中,如果物件名稱不是以引號括住,則錯誤訊息會令人混淆。
如需更多指導方針和範例,請參閱 樣式和音調。
標題
不正確:
在此範例中,標題不正確地用來說明問題。
主要指示
不正確:
在此範例中,整個錯誤訊息會放在主要指令中,使其難以閱讀。
在此範例中,只有檔案名位於主要指令中。 完整路徑位於補充指示中。
在此範例中,使用者正在從 Windows 檔案總管重新命名檔案。 在此情況下,不需要完整的檔案路徑,因為從內容中很明顯。
主要指示範本
雖然片語沒有嚴格的規則,但請盡可能嘗試使用下列主要指示範本:
當然,視需要進行變更,讓主要指示以文法正確且符合主要指示指導方針。
補充指示
不正確:
在此範例中,雖然問題及其建議的解決方案可能,但不太可能。
在此範例中,不需要補充指示;解決方案可以從問題語句中簡單推論。
正確:
若要重新開機 Windows,請按一下 [確定]。
不正確:
按一下 [確定] 重新開機 Windows。
在不正確的範例中,使用者更可能會意外按一下 [確定]。
不正確:
在此範例中,最有可能是使用者網路連線的問題,因此不值得連絡系統管理員。
不正確:
在此範例中,錯誤訊息不正確地建議連絡技術支援。
認可按鈕
參考錯誤時:
例子: 如果您收到 磁片磁碟機訊息中沒有 CD 光碟,請在磁片磁碟機 中插入新的 CD 光碟,然後再試一次。
訓練
學習路徑
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization