# 新型應用 - 新型應用的可用性做法
作者:[Rachel Appel](https://msdn.microsoft.com/zh-cn/magazine/mt149362?author=Rachel+Appel)?| September 2015

可用性是應用程序開發的一個重要因素,但往往會被忽視。開發人員往往會將可用性留給 UX 專家和 UI 設計人員。但是,有一些可用性技巧(或大或小)可供開發人員使用,為他們帶來很大影響。
主要動機是開發實際易于使用的軟件。這意味著常用命令非常醒目,并且隨時可用。對于不太常用的命令,通過幾次單擊即可使用。我們將回顧幾個可用性技巧,這些技巧可幫助您構建出色的新型應用。
很多開發人員不喜歡“最佳做法”這個術語。 它似乎暗示有問題的做法是執行某些操作的唯一方式,但您知道并非如此。有很多做法在大多數方案中非常適用,大量的技巧不一定會正常運行。這就是大多數人不愿意使用術語“最佳做法”的原因。 相反,我會使用術語“良好做法”。 這些做法可能談不上更好,但是總的來說和其他做法一樣適用。然而這并不意味著您應該在每種方案中都應用這些做法。
通常,不好的做法的缺陷非常明顯。這些做法是設計或開發技術,對于它們來說有更好的方法來執行相應操作。當糟糕的做法顯示在令人沮喪的軟件中時,可以很容易發現。您每次抓狂大都因為無法使用軟件,而錯誤的做法則是罪魁禍首。
## 良好的可用性實踐
第一個無疑也是最重要的可用性做法是可訪問性。軟件越易于訪問,就越易于使用。對于幾種類型的用戶來說,可訪問性是一項挑戰。您必須考慮聽力受限或無聽力者、視覺障礙者、行動不便者和認知障礙者。開發合并了可訪問設計的網站和應用相對較容易。很多技術包括對 HTML 或 CSS 的小幅修改。有關可訪問設計技巧的更多詳細信息,請參閱我的專欄“設計和開發可訪問的新型應用”([msdn.microsoft.com/magazine/dn913189](https://msdn.microsoft.com/magazine/dn913189))。
常用命令應該突出顯示。不要讓您的用戶苦苦尋找信息。相反,使用 Visual Studio 快速啟動等功能,讓用戶通過鍵入名稱或命令的同義詞來搜索命令。將快速啟動功能添加到常規菜單和導航中。與此同時,不能讓用戶過于費勁地執行任務。當用戶無法輕松地完成任務時,將面對障礙停止不前,并消極地在應用商店中查看應用。
一致性是構建優秀軟件的關鍵。在應用本身以及應用及其操作系統之間使用一致性美學。每個人都可以告訴您,嘗試在 Android 或 Windows 設備上使用試圖展現 iPhone 應用的相似外觀和行為的應用,這種體驗是多么令人沮喪。人們購買設備的部分原因是喜歡其樣式。保留主機操作系統的樣式模式,然后添加自己的風格。這意味著您需要單獨的代碼庫,但您仍可以在應用之間共享后端代碼。
一致的導航也很重要。在整個網站或應用中使用相同的導航樣式。作為優秀的導航設計的一部分,確保用戶可以快速訪問他們常用的命令。每次用戶啟動時,可以通過記錄來確定這些命令。確保窗體中的按鈕和控件等元素具有一致的標簽。如果您正在編寫一部小說,獲取同義詞庫和混合同義詞可以提升您的文章質量。在軟件中,對相同的操作或字段使用替換字詞或詞組只會困惑用戶。
每個人都已經有太多的登錄名。其副作用是很多用戶為其所有的資源使用相同的密碼。這就是安全專家想要提醒您不要做的事情。然后,開發人員通過讓您堅持編寫自己的安全基礎結構,而不使用 OAuth、Microsoft 或 Google 等受信任的安全提供程序,從而設計出鼓勵此類不良行為的網站。Facebook 或 Twitter 身份驗證都優于您自己創建的身份驗證。
盡可能讓用戶進行選擇。雖然您可以創建自己的登錄系統,但是您必須維護該系統,并且負責監視數據是否曾遭到破壞。與受信任的提供商協作即可將責任轉移給他們。他們擁有整個團隊來維護和確保用戶數據的安全。將安全問題交給安全專家,這種做法可以為您留出時間成為業務專家的,從而解決您的軟件業務問題。
正確的默認設置對訪問性大有助益。雖然現在已是 2015 年,但是很多網站和應用仍強制您輸入城市和省份,而不是要求提供郵政編碼并自動填寫詳細信息。對于用戶來說,輸入較小的數字序列非常容易,而從較小的下拉列表中的大量項中進行選擇則比較困難。請參閱我的專欄“新型應用開發的移動先行方法” ([msdn.microsoft.com/magazine/dn948114](https://msdn.microsoft.com/magazine/dn948114)),了解有關使用移動先行設計構建軟件的更多詳細信息。
響應性 UI 可以向上和向下擴展,以適應特定設備的外形規格和功能。顯然,針對設備量身定制軟件對于用戶來說是一件好事。響應性 UI 往往能夠移動先行。與傳統軟件相比,移動先行設計往往更便于使用。有關構建響應性 UI 的更多信息,請參閱“使用 CSS 為 WinJS 應用構建響應性新型 UI”([msdn.microsoft.com/magazine/dn451447](https://msdn.microsoft.com/magazine/dn451447))。
簡約設計是新型應用的另一個特點。用戶將會摒棄包含大量很少使用的選項的應用。他們會根據情況使用直觀和提供選項的應用。在 Windows 8 和更高版本的應用中,您可以使用當用戶在應用中進行操作時可以隱藏的應用欄,然后根據需要顯示選項。
## 糟糕的可用性做法
很多網站和應用都包括要求用戶兩次輸入電子郵件的窗體。如果用戶無法獲取正確的電子郵件,為什么所有人都會認為他將正確輸入地址、城市、省份或其他信息? 為什么不復制所有這些字段?
要求用戶重新輸入電子郵件令人不快。這是因為人類是習性動物。類似于其他習慣,容易出現鍵入和拼寫錯誤。用戶同樣有可能在兩個框中出現相同的拼寫錯誤。
“驗證碼”這個概念非常難得。網站或應用將顯示包含數字、字詞或詞組的圖像。然后,用戶輸入該數字、字詞或詞組。通常,圖像中的數字、字詞或詞組在某種程度上會被遮蓋,因此計算機無法識別該圖片。問題是,目前 AI 系統可以執行圖像識別并輕松地識別驗證碼。諷刺的是,大多數人覺得難以識別。當查看模糊的圖案時,肉眼和計算機并無區別。有時,看上去不錯的想法最終可能并非如此。
無限滾動和自動頁面刷新也會出現問題,對于依賴屏幕文本閱讀等輔助技術的用戶尤其如此。雖然 Facebook 以及 Twitter 最近在無限滾動方面做得很棒,但是當新內容出現并將舊內容擠到一旁時,仍然有很多問題。如果您正要實現這些功能,請考慮嘗試替代輸入和可訪問設備。
即使是操作熟練的用戶,極小的關閉按鈕也會令其抓狂。通常,擁有觸屏設備的用戶甚至無法使用這些按鈕,因為極小的區域無法響應點擊操作。如果關閉按鈕非常醒目,情況就不會那么糟糕。但是,很多對話框只包含一個按鈕用于繼續,而無法返回。響應性新型應用始終提供簡便的方法執行后退操作。
糟糕的格式編排是精美網站設計的夢魘。很多用戶在窗體中看到一個電話號碼字段時,會心生畏懼。您永遠不會知道將要進行哪種惱人的身份驗證。此字段是否需要提供國家/地區代碼? 我是應該隨數字輸入括號和短劃線,還是只輸入數字? 通常,用戶會嘗試輸入他們認為格式正確的數字,將會彈出一個模式對話框提示警告消息,然后中斷他們的工作流。
與令人生畏的電話號碼字段類似的是 URL 字段。很多 URL 不會自動以 http:// 格式填入。除非您單擊提交,驗證失敗且窗體字段自動重置,否則這些相同的網站和應用從不會告訴您需要填寫 http://。
關于窗體故障有一系列不良做法。窗體存在的全部原因是為了捕獲數據。然而,開發人員通常使顯示的窗體難以理解且混亂。如果您忘記輸入某些內容或某些內容輸入錯誤,則嘗試填充不斷需要清除其數據的窗體非常令人惱火。很多網站和應用還在繼續著這樣的情形。完成這些操作需要花費兩倍的時間。
如果您的應用嘗試賺錢,這不是一個值得一試的好方法。您將阻止用戶進行購買。應用執行類似于清除窗體的操作的可能性越大,填寫窗體所花的時間也就越多。花的時間越多,開發人員決定清除信任用戶的窗體的可能性越大。
另一種窗體故障是指沒有實現正確的默認設置。您的用戶主要都是來自您的國家/地區嗎? 然后默認設置為該國家/地區,但同時也顯示其他國家/地區。這同樣適用于省份、郵政編碼或任何特定字段的最常用的值。如果已部署您的應用,則可以檢查數據庫是否存在這些值。如果仍處于開發階段,請詢問您的用戶。盡管一個默認的網站似乎從來不會錯過要查看的新聞稿或產品信息,但也會設置相關選項來接收這些內容。
許多網站和應用未提供正確的搜索功能。一些網站和應用根本不提供搜索功能。Search Engine Watch 表明,多達 92% 的 Web 用戶至少隨時會使用一個搜索引擎。
在易于使用的摘要中以清晰一致的方式呈現搜索結果。將廣告放在搜索結果或內容的周圍,而不是其頂部。當用戶在一組搜索結果內看到廣告,他們可能認為已到達搜索結果的結尾而離開,因為找不到任何內容。
UI 設計在審美方面要注意以下幾個事項。我喜歡將它們稱為“UI 障礙”。 這包括很多內容:需要放大才能閱讀的極小字體、廣告過多或廣告中包含廣告。許多網站和應用依賴廣告收入,因此廣告是相當棘手的問題。但是,如果廣告中包含廣告(這種情況確實存在),這堪稱災難。
另一種流行的可用性反模式是按鈕顏色和布局。通常,旨在表示執行操作或繼續操作的按鈕以鮮紅色顯示。此顏色指示停止或取消操作。這類似于交通燈,綠色、黃色和紅色分別表示“繼續”、“注意”和“停止”。
## 其他可用性做法
導航屬于“其他可用性原則”,因為有些導航類型有助于簡便操作,而有些則不然。在設計導航方案時,應保持清晰一致。通常,最好使用主機操作系統模式。對于用戶來說,可以更輕松地維護應用和操作系統之間的一致性。這尤其適用于新用戶或不怎么使用技術的用戶。不過,這仍適用于在模式一致性基礎上喜歡快捷方式的經驗豐富的用戶。
通常,選項卡式菜單更適用且更易于導航。但是,如果選項卡行數過多,導航將變得非常困難。雖然桌面應用非常適合傳統的下拉式菜單結構,但 Web 應用和本機設備應用通常需要不同的方案。例如,Windows Phone 通過提供較大的易于點擊的區域來啟動應用或導航,使用動態磁貼來增強用戶體驗。
據技術媒體網站 TechCrunch 報道,漢堡包菜單顯著降低了應用或網站的參與度。如果您選擇漢堡包菜單,則需要及時了解使用情況統計信息。有關導航可用性基礎知識的更多信息,請參閱“在 Windows 應用商店應用程序中導航的基礎知識”([msdn.microsoft.com/magazine/dn342878](https://msdn.microsoft.com/magazine/dn342878))。
## 總結
一般說來,越易于訪問的軟件,其可用性也越高。通過實現微小的更改,就可以增加 20% 的用戶群。從行業標準來說,這是一個巨大的數字,而且任何一個稱職的經理(甚至是“尖頭發老板”級別的領導)都會為之振奮。因此,結合可訪問性和更好的可用性的絕佳方法是自行嘗試使用可訪問性技術。蒙住自己的眼睛并嘗試通過屏幕閱讀器來使用頁面。使用語音設備。
雖然此處一些做法被列為“良好”或“糟糕”,但并沒有對號入座。您始終可以打破不良做法的常規,使內容更具可用性。即使是良好的做法也極易出錯。詢問用戶喜歡什么,但不能總是相信他們,因為他們有時可能是錯誤的。監視應用使用情況是了解應用實際上正在執行的操作的良好方式。使用您的最佳判斷力。
* * *
Rachel Appel?*是一位顧問、作家、導師和前 Microsoft 員工,在 IT 行業有 20 多年的經驗。她常在 Visual Studio Live!、DevConnections、MIX 等頂級行業大會上發言。她的專業是開發側重于 Microsoft 系列開發技術和開放式 Web 并且符合業務和技術需要的解決方案。有關 Appel 的詳細信息,請訪問她的網站?[rachelappel.com](http://rachelappel.com/)。*
- 介紹
- 云連接移動應用 - 借助身份驗證和離線支持構建 Xamarin 應用
- 崛起 - 自由 Internet 廣播
- Microsoft Azure - 云中的容錯問題和解決方法
- 最前沿 - 適合常見應用程序的事件源
- Azure 深入了解 - 跨云平臺創建統一的 Heroku 式工作流
- 借助 C++ 進行 Windows 開發 - Windows 運行時中的高級類型
- 編譯器優化 - 借助按本機配置優化來簡化代碼
- 數據點 - 再探 JavaScript 數據綁定(現在包含 Aurelia)
- 云安全 - 借助 Azure 密鑰保管庫保護敏感信息的安全
- 測試運行 - 借助人工尖峰神經元進行計算
- 開發運營 - 在 Microsoft 堆棧上啟用開發運營
- 孜孜不倦的程序員 - 如何成為 MEAN: Node.js
- 新型應用 - 提升新型應用的易用性的做法
- 別讓我打開話匣子 - Darwin 的照相機
- 編輯寄語 - 汽車 Internet 發生故障