iOS 12 人機互動指南:App架構(Accessibility)
要想釋出一款能夠位於App Store排行榜之首的產品,產品在質量和功能上的高標準表現是必不可少的,而為了達到這種高度,我們應該如何做呢?本文主要講述的是 iOS 12 介面互動設計指南中的App架構部分,一起來看看~
一、輔助功能(Accessibility)
iOS 提供了大量的輔助功能來幫助失明、失聰以及其他殘疾群體。大部分以UIKit為基礎的應用能夠輕易地具有輔助性,讓更多的使用者來使用你的應用,此舉可謂網際網路行業對眾生平等所盡微薄之力。
(1)降低透明度
通過降低透明的的方式來提高殘障人士的認知度。
(2)提示音
通過提示音的方式來輔助失聰認識進行互動認知。
(3)按鈕形狀化
通過形狀化按鈕的方式提高按鈕的可識別程度。
(4)為圖片、圖示和介面元素提供可選擇的文字標籤
可選擇的文字標籤在螢幕上是不可見的,但是他們讓VoiceOver能夠通過聲音描述螢幕上有什麼,讓失明使用者能夠輕易地使用導航。
(5)相應輔助功能的偏好設定
如果你的應用使用UIKit來實現使用者介面,文字、介面元素就會自動調整至相應輔助功能的偏好設定,譬如:加粗並且更大的文字。你的應用也應當在適當的時候檢查並相應輔助功能的偏好設定,譬如:當減弱動態效果(reduce motion)的開關被開啟時。採用自定義字型的應用應該力圖和系統字型的輔助特性保持一致。
(6)測試應用的輔助功能
除了文字和動態效果的變化,輔助功能選項還能改變對比度,反轉顏色,降低透明度以及更多。為那些需要這些功能的使用者啟用設定並觀察你的應用將會變成什麼樣並且如何運作。
(7)包含隱藏式字幕和口述影像
隱藏式字母幫助失聰以及重聽使用者明白視訊中的對話和其它音訊內容,口述影像為視覺受損的使用者提供了關鍵視訊內容的口頭解說。
二、載入(Loading)
當某些內容正在載入時,一個空白或者靜止螢幕會使你的應用看上去像卡死了,那麼使用者便自然的會感到困惑以及沮喪,最終的結果也就將導致使用者離開你的應用。
(1)更清晰的去表現載入狀態
至少,你需要在應用載入時去展示一個動態的載入器。如果想做得更好,那麼你可以去展示當前任務明確的進度用以告知使用者他們預計需要等待的時長。
(2)引導或者是娛樂使用者用以填充載入時間
可以考慮展示一些遊戲攻略,有趣的視訊或者是一些有趣的影象。
(3)自定義載入頁面
儘管標準的系統應用載入器一般來說還是不錯的,但是其有時也會與應用上下文有所脫離。所以你可以考慮設計一個更符合你的遊戲或者應用的自定義動畫或其它元素,用以完整一個更沉浸式的使用者體驗。
(4)儘可能快的顯示內容
不要使使用者在看到他們所期望看到的螢幕內容前,就直接去等待內容的載入。立要即顯示螢幕,同時用一些像文字、影象或者動畫等來告訴使用者當前內容還沒有準備完成。並且在內容載入完成後立即取代前面所述佔位元素。
如果可能的話,在後臺事先載入接下來將要在螢幕出現的內容,例如:當前正在播放某個動畫或者使用者正在操作導航欄的某一層級或者選單時。
三、特殊情景狀態(Modality)
特殊情景狀態通過創造一個焦點,來防止使用者在完成一個任務或者關閉資訊/檢視之前去做其它的操作。比如:活動列表、警告框、活動檢視等均存在這種特殊的情景狀態。具體為當一個情景狀態檢視出現後,使用者必須通過主動的點選按鈕來進行選擇(除非使用者直接退出當前狀態)。
有些應用即存在這類應用場景,如:正在編輯狀態的日曆應用或者正在新增書籤的Safari應用。一個特殊場景狀態檢視是可以佔據整個螢幕或者說上層檢視的,如:浮層或者彈出框。
一個特殊場景狀態檢視通常包含一個“完成”按鈕和一個用來退出當前狀態的“退出”按鈕。
警告框
狀態檢視
(1)儘可能少的使用特殊情景狀態
一般來說,使用者更喜歡沒有太多限制的與應用進行互動。儘可能只有在非常緊急的需要引起使用者注意,或當一個任務必須被完成或捨棄才能繼續使用應用,或保持一些重要資料的時候再去考慮創造一個特殊情景狀態。
(2)提供一個明顯且安全的退出機制
確保使用者瞭解到他們關閉或取消特殊情景模式可能會帶來的後果。
(3)確保狀態簡短且高度集中
不要在你的應用中建立一另一個應用。如果一個模態任務太過複雜,使用者在進入模態檢視時就會看不到視他們本想執行的任務。當建立一個包含多層級檢視的模態任務時請格外謹慎,因為使用者可能會在多個檢視中迷失並不知道如何返回。如果一個模態任務必須含有次檢視,那麼請提供單級的跳轉路徑以及清楚的完成路徑,除非完成任務否則不要使用標有“完成”的按鈕。
(4)恰當的時候為模式定義並設定一個標題
你也可能在檢視的其它部分,提供詳細描述任務的文字或是提供指導。
(5)只在需要傳達關鍵必要資訊的時候再去使用警告框
警告框干擾體驗,並且需要單擊才能關閉,所以必須要讓使用者認為這個打斷是有理由的。
(6)尊重使用者的通知偏好設定
在設定裡,使用者明確規定了他們想要如何地接受來自你應用的通知。遵循這些個人偏好,這樣他們就不會想要完全地關閉來自你應用的通知推送。
(7)不要讓特殊情景狀態檢視出現在浮層上
除了警告框,任何元素都不應該覆蓋在浮出層之上。在極少數情況下,你需要讓模態檢視在使用者完成浮出層內的任務之後彈出,那麼請先關閉浮出層再展示模態檢視。
(8)統一特殊情景檢視與應用的視覺風格
一個模態檢視可能包含一個導航欄。在這種情況下,請使用與你應用內的導航欄一樣的視覺風格。
(9)選擇合適的特殊情景狀態檢視樣式
你可以使用到以下任何一種樣式:
全屏,覆蓋整個螢幕,通常用來進行比較複雜的特殊情景狀態檢視展示。
分屏,在大螢幕裝置或裝置橫屏時遮蓋下層其中一部分內容,對於未被遮蓋的區域進行模糊處理避免使用者與之進行互動,在小螢幕裝置或豎屏時遮蓋整個螢幕。
分塊,通常在螢幕中心展示,鍵盤彈出時位置可能會有所改變。所有未被遮蓋的區域進行模糊處理避免使用者與之進行互動,小螢幕裝置中可能會直接這個整個螢幕。
等屏,與父級檢視大小一致,用以在分塊檢視,浮出層或其它非全屏檢視中進行特殊請教狀態的展示。
(10)選擇一個合適的顯示特殊情景狀態檢視的過渡方式
使用與應用風格相符的過渡方式,來加強使用者對當前內容轉變的認知。預設的過渡方式讓特殊情景狀態檢視垂直地從螢幕底部向上滑出,然後在被關閉時下滑。彈出樣式的過渡是指當前檢視水平滑出,顯示出特殊情景狀態檢視,看起來就好像特殊情景狀態檢視藏在當前檢視的背後。
當特殊情景狀態檢視被關閉時,原先的檢視便重新滑回來,在你的應用內容部使用統一的特殊情景狀態過渡方式。
四、導航(Navigation)
使用者通常更趨向於忽略應用的導航除非當某些操作沒有達到他們預期的時候,因此我們的工作也更趨向於在不被引起注意的前提下去設計一個結構清晰,目的明確的導航。導航應該要顯得自然以及熟悉,而且不應該搶走主頁面的風頭亦或是主導應用。
對於iOS來講,主要有三種風格的導航:
(1)層級導航
每一屏只做一個選擇,直到到達你想的位置。如果想到達另外的位置,你必須原路一級級返回並且從最開始的位置再次依次做出選擇。像系統原生的設定及郵件應用便是典型的層級導航模式。
(2)平級導航
在不同內容類別間進行切換。像音樂和APP Store便是典型的平級導航模式。
(3)內容驅動或體驗驅動導航
在應用的不同內容間切換,或者由應用本身來定義導航。像遊戲,書籍或者其它沉浸式應用一般都使用這種導航模式。
有些應用會結合採用多種導航模式,如一個採用平級導航的應用,也可能同樣包含用於不同類別跳轉的層級導航。
a. 永遠提供一個清晰的路徑
使用者應該能隨時知道他們當前所處應用位置,並且知道如何能夠到達下一個目標位置。所以在考慮導航風格的同時,不同內容間合理的、可預期的、容易追溯的路徑也是非常必要的。
一般來說,對於每一螢幕內容給予其唯一入口。如果使用者需要在多種情景下看到一個螢幕內容,可以考慮使用操作列表,警告框,浮層或者特殊情景狀態等形式來展示這些內容。
b. 設計一個可以快速容易達到具體內容的資訊結構
組織一個能夠通過最少點選,滑動以及螢幕便可以訪問相應內容的資訊結構。
c. 使用手勢操作提升應用的操作流暢度
讓使用者以最小的阻力輕鬆在你的應用介面間進行跳轉,如可以使用螢幕右滑操作去進行上一螢幕的返回。
d. 使用標準系統導航元件
儘可能的使用標準導航控制元件,如頁面控制元件、標籤欄、分段控制元件、表格控制元件、集合檢視以及拆分檢視等;使用者對於這類控制元件以及非常熟悉,這樣便能夠更輕鬆的使用你的應用。
e. 使用導航欄聯通層級資料
導航欄的標題通常可以展示當前位置,返回按鈕則可以使使用者可以很容易的返回上一位置。
f. 使用標籤欄來展示不同類別的內容或功能
標籤欄可以使使用者可以在當前位置進行不同類別內容等的快速切換,詳情請參考Tab Bars章節。
g. 同一型別頁面不同內容時可以使用頁面控制元件
頁面控制元件能夠清楚的展示總頁面數量以及當前頁面的位置。天氣應用通常使用頁面控制元件來展示不同地理位置的天氣情況。
小竅門:分段工具和工具欄並不具備導航功能,通常使用分段控制元件來組織將資訊放入不同的類別,使用工具欄來為當前內容提供互動控制元件。
五、應用啟動體驗(Onboarding)
應用的啟動第一次與新使用者以及再一次與老使用者接觸的機會。所以請設計一個快速,有趣甚至是有教育意義的啟動頁。
(1)提供啟動畫面
啟動畫面在應用開啟時出現,在載入應用初始內容的同時,讓人感覺你的應用的響應速度很快。因為這個畫面很快就會被應用的首屏替代,所以它應該儘量與首屏相似,除非出現可定位的文字和可互動的元素。瞭解更多,請參閱Launch Screen。
(2)選擇合適的方向啟動
如果你的應用同時支援豎屏和橫屏模式,那麼應該以裝置目前的方向啟動。如果你的應用只在一個方向執行,那它只能在相同方向啟動並在需要時允許使用者旋轉裝置。除非有迫不得已的原因,否則處於橫屏模式的應用正確地選擇方向,無論Home鍵是在左側還是右側。瞭解更多資訊,請參閱Layout。
(3)快速使用
儘量避免出現會使應用的啟動畫面、選單和說明等延遲顯示的情況,也就是說應該允許使用者快速進入應用內。如果你的應用需要教學或是介紹步驟,為使用者提供一個跳過的選項並且不要對老使用者展示這些。
(4)提前設想使用者可能會需要的幫助
經常主動地考慮使用者何時會遇到麻煩,比如:一個遊戲,能夠在暫停或是角色很難升級時提供一些訣竅。當用戶錯過啟動畫面的內容時,允許他們之後重新觀看教程。
(5)只在教程中展示最關鍵的內容
雖然為新使用者提供引導沒錯,但是教學不能成為優秀的應用設計的代替品。更重要的是,確保你的應用是直觀的。如果你的應用需要過多的引導,那麼請重新審視你的設計。
(6)學習變得有趣而且易於學習
通過操作來學習比閱讀一長串說明來的更有趣和有效。 在上下文環境中,通過動畫和可互動性循序漸進地教導,避免展示看起來似乎可互動的螢幕截圖。
(7)避免在最開始要求使用者進行設定
使用者期待應用能夠馬上工作,為大多數人設計你的應用,然後讓餘下少部分需要不同配置的人自己調整引數來滿足他們的需求。儘可能的,從裝置設定和預設中獲取設定資訊,或者通過同步服務,比如:iCloud。如果應用一定要求設定資訊,那麼可以最初在應用內提示使用者,但應該允許使用者稍後在應用設定中修改。
(8)避免展示應用內的接受許可協議和免責宣告
在你的應用被下載之前,直接在蘋果商店展示接受許可協議和免責宣告。如果你必須將這些東西放在你的應用裡,那麼以和諧融入它們,以避免干擾使用者體驗。
(9)在你的應用重新啟動時恢復之前的狀態
不要讓使用者重新操作來回到之前的應用定位,儲存並且復原應用的狀態,這樣使用者就能從他們上次離開的位置繼續。
(10)不要太快或是太頻繁地要求使用者對你的應用評分
太快或是太頻繁地要求評分會讓使用者惱怒,並且減少最終收到的有用反饋的數量。為了鼓勵考慮周到的反饋,在要求評分之前,給使用者足夠的時間直到他們形成對應用的看法。總是提供跳出評分提示的選項,並且永遠都不要強迫使用者對你的應用評分。
(11)不要鼓勵重啟
重新啟動耗費時間並且讓你的應用看起來即不可靠又不可用,如果你的應用出現儲存或者其它問題,導致它無法執行只能系統重啟,那麼你應該解決這些問題。
六、請求許可(Requesting Permission)
使用者必須對應用進行授權以期獲得使用者的個人資訊,如:當前位置、日曆、聯絡人資訊、提醒以及照片等。儘管使用者可能會對於通過應用去獲取個人資訊的行為感到很方便,但是其依然希望對於其私人資料進行自我管控。例如:使用者會很喜歡系統自動的對照片標註具體的地理位置或尋找附近的朋友,但是他們依然希望系統提供關閉這些功能的選項。
(1)只在應用真的需要時才向用戶請求獲得個人資料
使用者會質疑個人資訊的請求是很自然的,尤其是他們發現當前的請求沒有明顯的必要時。確保允許請求只在使用者真的在使用某些需要個人資料的功能時才出現,比如:一個應用只有在啟用一個位置跟蹤的功能時才請求獲得當前的位置。
(2)在不明確的時候,向用戶解釋為什麼應用需要這些資訊是非常必要的
你可以在系統提供的允許請求警告框上新增自定義的文字,,使用明確且有禮貌的文字,這樣使用者就不會感到有壓力。使用簡短文字,並且使用句子,沒有必要包含你的應用名字,系統已經替你在警告框上說明了應用的名字。
(3)僅在應用啟動時請求允許那些對執行你的應用至關重要的資訊
如果使用者明確地知道你的應用只有獲得這些個人資訊才能執行,那麼他們就不會反感。
(4)不必要時不要請求位置資訊
在獲得位置資訊之前,檢查系統以檢視位置服務是否已經被開啟。於此,可以延遲提醒,直到使用需要該資訊的功能時才進行提醒,甚至可能完全避擴音醒。
學習如何實現定位功能,請參閱Location and Maps Programming Guide。
七、設定(Settings)
有一部分的應用可能需要一開始就讓使用者決定設定或佈局選項,但是大部分應用避免或是延遲這麼做。成功的應用能夠一開始就讓使用者很好地使用,並且同時提供了一個便捷的途徑去調整體驗。當你的應用被設計成滿足大部分使用者的需求,你就可以減少他們對對設定的需要。
(1)推斷你可以從系統中得到什麼
如果你需要關於使用者、裝置或是環境的資訊,那麼儘可能地向系統請求而不是直接詢問使用者。比如:如果你想要知道使用者的郵編來提供本地的選項時,可以向用戶請求獲取他們的當前位置。
(2)在你的應用中對配置選項的優先排序深思熟慮
應用的主屏是一個放置關鍵或是常用選項的絕佳位置,次屏則適合放置只偶爾才更改的選項。
(3)適當時提供去設定的快捷路徑
如果你的應用包含引導使用者去設定的文字,比如:“去設定>我的應用>隱私>定位服務”,請提供一個能夠自動開啟該介面的按鈕。瞭解如果實現這個行為,請參閱Settings Launch URL 中的 UIApplication。
(4)把不經常更改的配置選項放到系統設定裡
系統的設定(Settings)應用是更改系統配置的核心地帶,但是使用者必須離開的應用才能到達那裡,因此在你的應用中直接調節設定更加方便。
如果你的應用必須提供很少改動的設定選項,請參閱Preferences and Settings Programming Guide中的Implementing an iOS Settings Bundle部分。
本文由 @沸騰 翻譯釋出於人人都是產品經理。未經許可,禁止轉載
題圖來源於網路