瞬間設計是什麼?
良好的用戶體驗,全在於那些完美的瞬間。在第一個瞬間,假設當一位用戶從購物搜尋結果頁面跳轉到某個店鋪的時候,他此刻可能是想看看這個店鋪的風格及其信用;而下一個瞬間可能就開始琢磨如何使用頁面中的導航來觀看某個寶貝介紹。再然後則可能是詢問怎驗購買,從哪裡註冊,者看看商品是否打折,或者嘗試聯繫這個賣家。
若想完成優秀的設計,我們就需要時刻自問:在希望用戶做些什麼,界面應該如何鼓勵他們完成這些任務?每一個瞬間對於完整的用戶體驗來說,都是不可或缺的一部分,因為他們都有可能加強也可能摧毀用戶對某個產品或公司的信心。為什麼這么說呢?因為每個人在每時每刻所要完成的任務,對於此時此刻的他而言,那就是重要的任務。
設計師要做什麼?
我們的工作不是設計花哨的頁面,而是要設計美好的瞬間,確保每時每刻都完美,是設計師的職責和價值所在。在用戶進行選擇的瞬間,我們要幫助他們做出正確的決定,我們要留意創建怎樣的互動行為以及鼓勵人們輸入,編輯,搜尋和共享,激勵他們完成所有的他們希望做的事情,我們還應該設計各種手段幫助人們提高工作效率——即使他們天生忘性大,老出錯,或者總是三心二意。可以說設計師的工作就是考慮所有這些瞬間——設計一些東西來支持用戶達成每一個目標,而不會干擾或者妨礙到他們,同時,把這些完全不同的部分凝成為一個整體。只有這樣他們才能相信我們產品,喜歡我們的服務。
從一個例子開始
如何設計美好的瞬間?在開始之前,請大家先回想一下igoogle界面,這個產品大家一定很熟悉,有的設計師幾乎每天都用到它。igoogle有很多關於拖拽的操作,而拖拽這個複雜的互動行為需要不同的狀態(我們稱之為瞬間)來表現其互動事件(Event),yahoo模式庫曾對其進行詳細的劃分,他們分別是:
頁面載入(Page Load)
滑鼠懸停在拖動目標上(Mouse Hover Over Drag Object)
滑鼠按下拖動目標區域(Mouse Down On Drag Region of Drag Object)
拖動發起(Drag Initiate)
拖動原位置(Drag Over Original Location)
拖動離開原位置(Drag Leaves Original Location)
拖動重新進入原位置(Drag Re-enters Original Location)
拖動有效區域(Drag Over Valid Target)
拖動進入有效的區域(Drag Enters Valid Target)
拖動懸停於有效的區域(Drag Hovers Over Valid Target)
拖動推出有效的區域(Drag Exits Valid Target)
拖動非操作區域(Drag Over Invalid Target)
拖動進入無效的區域(Drag Enters Invalid Target)
拖動懸停於無效的區域(Drag Hovers Over Invalid Target)
拖動退出無效區域(Drag Exits Invalid Target)
拖動非具體目標(Drag Over No Specific Target)
接受放置(Drop Accepted)
接受放置起始(Drop Accepted Begins)
接受放置結束(Drop Accepted Ends)
拒絕放置(Drop Rejected)
放置於原位置(Drop On Original Location)
此外,拖動的目標模組包含了以下界面元素(Actor),用於展示以上互動事件的種種有趣的瞬間,他們分別是:
頁面(靜態文字,圖片)Page (static text, images provided)
游標(Cursor)
工具提示(Tool Tip)
模組(Drag module)
模組存放區(Drag module's Parent Container)
模組放置區(Drop Target)
針對每個界面元素所表現的互動事件不同,我們就可以得到很多有趣的互動瞬間,如以下表格所示:
細心的你也許會發現,為什麼這裡只列舉了少數的事件和元素,而沒有都列舉出來。其實這是因為部分特殊的互動事件非常複雜,很難一一列舉。僅僅“拖動進入到無效的區域”這個互動事件就有很多種情況,比如:把模組拖動到瀏覽器地址欄里的情況;把模組移動到toolbar下方時的情況;還有“移動模組到有效的區域”過程中,該有效區內的模組會被擠到其他的區域內,什麼時候作為判斷來移動呢?嘗試後你會發現當被拖動模組超出了原有模組尺寸的1/2時,就會發生跳轉等等。
由這個例子我們不難看出要設計美好的瞬間,要做到以下幾點:
1.關注分秒的回響(比如說我們要考慮到頁面的載入效果)
2.關注微妙的細節(滑鼠hover上去的游標顯示效果,移到哪裡顯示等等)
3.想像各種可能性