表單設計:一頁只做一件事

2020-12-13 人人都是產品經理

一頁只做一件事,並不是一定要在一個頁面上只展示單一的元素或組件(雖然也可以這麼做)。

2008年的時候,我在*Boots.com*工作。他們想做一個單頁的結帳頁面,運用那個年代最新潮的技術,包括手風琴組件、AJAX和客戶端驗證。

每個步驟(寄送地址、寄送選項、信用卡詳細信息)都收在一個手風琴面板中。而每個面板都通過AJAX提交。提交成功後,這個面板就會收起,並且通過滑動動畫展開下一個面板。

看起來就像這樣:

Boots的單頁結帳頁面,使用了手風琴面板展現每一個步驟。

用戶千辛萬苦才完成了下單過程。錯誤難以更正,因為上下滾動並不方便。手風琴面板讓人非常痛苦和分心。不可避免地,客戶要求我們作出改變。

我們進行了改版,讓每個面板單獨成為一個頁面,也就不需要手風琴和AJAX了。不過,我們還是保留了客戶端驗證,防止不必要的伺服器請求。

看起來就像這樣:

Boots的結帳頁面:每一步都是單獨的一個頁面。

這個版本的轉化率好多了。雖然我不記得具體數字了,我知道客戶比較滿意。

6年後(2014年),我在*Just Eat*工作,發生了同樣的事情。我們設計了一個單頁結帳流程,其中每個部分都有獨立頁面。這一次,我記下了相關數據。

結果是每年能增加2百萬訂單。要清楚,這是訂單量,不是利潤。這個數據是基於新版本至少一周後,結帳轉化率提升的比例得出的。這部分轉化成了訂單,數量激增52倍。

這是我們的移動端優先的設計:

Just Eat的結帳分為多個頁面。我們還在設計中進一步簡化了支付頁面:用戶先選擇「現金支付」或「銀行卡支付」,然後才會轉到相關的頁面。可惜我們並沒有對這項優化進行測試。

兩年後(2016年),GDS的Robin Whittleton告訴我,把每一步分為單獨頁面,是一種獨立的設計模式,叫做「一頁只做一件事」。除了它產生的數據效果,這種模式的背後還有充分的合理性,這部分我們很快就會講到。

不過在這之前,我們來仔細看看這種模式到底是什麼。

「一頁只做一件事」到底是什麼意思?

一頁只做一件事,並不是一定要在一個頁面上只展示單一的元素或組件(雖然也可以這麼做)。比如說,很可能仍然會保留頁頭和頁尾。

類似的,也不是說每個頁面上只能有一個輸入框(當然,這麼做也是可以的)。

這種模式是指把複雜的流程分解成多個小碎片,把每個小碎片獨立一頁展示

比如說,與其把地址輸入表單放在寄送選項和支付表單頁面,倒不如把地址輸入放在一個專用頁面。

地址輸入表單有許多輸入框,但它對於用戶來說,實際上是個單一的、獨立的問題。在專用頁面裡回答這個問題是有道理的。

我們看看這種模式到底好在哪裡。

好在哪裡?

雖然這種模式常常能結出碩果(其實就是指訂單和轉化率了),我們最好還是要了解它背後的原理。

1. 減少認知負荷

正如Ryan Holiday在《The Obstacle Is The Way》中所說:

回想一下你第一次看到複雜代數式時的情景。這整個就是一團混亂的未知符號。但是當你將它分解,獨立成各個部分,答案便水落石出。

一步步分解等式,就能輕鬆解決問題。

用戶在填寫表單時也是一樣的道理,或者其他任何重要的事情都一樣。如果屏幕上元素減少,只有唯一的選擇,阻礙就降到最低。因此,用戶會專注於完成任務。

2. 處理錯誤更容易

當用戶填寫小型表單時,錯誤可以很容易被發覺,並儘早呈現出來。如果只有一個錯誤要修正,那就很容易,能降低用戶放棄的可能性。

即使有多個錯誤,Kidly的地址填寫表單也很容易更正。

3. 頁面加載更快

如果頁面的設計很簡單,加載就會更快。更快的加載速度能降低用戶離開的風險,為我們的服務建立起信任。

4. 易於追蹤行為

一頁上內容越多,就越難以了解用戶因為什麼離開。不要誤會我的意思:頁面數據分析不能左右設計,但這是個很不錯的副產品。

5. 易於追蹤過程和返回上一步

如果用戶需要頻繁提交信息,我們可以把它們以更細的顆粒來保存。舉個例子,如果用戶中途退出,我們還可以發送郵件,鼓勵他們完成訂單。

6. 滾動操作減少,甚至被消滅

不要誤會我的意思:滾動不是什麼大問題——用戶的期望中,網頁就是這麼用的。但如果頁面短小,用戶就沒必要滾動了。主操作項就更容易出現在屏幕視野內,能強調它的重要性,易於任務完成。

7. 容易產生分支

有時候,我們需要根據之前的答案,給用戶提供一條不同的路徑。舉個簡單的例子,兩個聯動的下拉菜單,用戶在第一個菜單裡的選擇,會影響第二個菜單中的內容。

一頁只做一件事可以輕鬆處理這種情況:用戶作出選擇並提交,伺服器來決定用戶接下來看到什麼——天然具有簡單和包容的特點。

我們也可以用JavaScript。不過無論是構建還是確保界面的可用性,都需要更高的成本。如果JavaScript出錯,用戶的體驗也就被破壞了。而且,根據所有這些排列組合選項來加載頁面,會顯著加重頁面負擔。

或者,我們可以使用AJAX,但這並沒有避免渲染新頁面(或者部分)。更關鍵的是,它並沒有減輕服務端的數據往返壓力。

還不止這些。我們需要發送更多代碼量,並且發起AJAX請求,還要處理錯誤、顯示加載指示器。這又讓頁面加載變慢了。

自定義加載指示器是有問題的,因為它們並不準確,不像瀏覽器的原生加載進度。用戶也不熟悉它們——相對於整個網站來說,它們是特殊的存在。無論如何,相似性是用戶體驗的慣例,除非真有必要,否則不要打破它。

而且,頁面上有兩個動態更新的聯動輸入項,這會需要用戶按照一定順序來操作。我們也可以通過可用/禁用和顯示/隱藏來控制這些輸入項,但這樣也更加複雜。

最後,用戶的某些更改,可能會導致隨後的元素消失或者變化,這也讓人迷惑。

8. 對使用屏幕閱讀器的用戶更友好

如果頁面上內容減少,屏幕閱讀器就不必長途跋涉穿過許多多餘的次要信息。用戶可以直接前往第一個標題,然後迅速開始操作表單。

9. 易於更改細節

想像一下某人正要確認訂單。關鍵時刻,他發現支付信息裡有一處錯誤。此時回到專用頁面比找到頁面*當中*的某個部分更容易。

用戶點擊「編輯」,會前往支付信息頁面,裡面有專用的標題和相關的表單項目。

深陷一個長頁面中是會令人迷失方向。記住,用戶點擊連結代表他們要執行特定的操作——頁面上的其他東西都是幹擾信息。

長頁面還可能會加重工作量。比如說,如果想要在一個頁面中展開和收起面板,你就需要更多額外的邏輯思考。

一頁只做一件事,這些問題都得到了解決。

10. 用戶對數據更有掌控力

用戶不會只加載一半的頁面。要麼全部,要麼沒有。如果他們需要更多信息,就會點擊連結,他們有選擇能力。只要每一步都更接近目標,用戶並不介意點擊。

11. 解決了性能問題

如果每件事都複雜無比——單頁應用就是一個極端例子——性能問題就很難解決。是因為執行時間問題?內存洩漏?還是AJAX請求導致的?

人們很容易認為AJAX能提升用戶體驗,但增加代碼量很少情況能創造更快的體驗。

複雜性轉移到客戶端,會掩蓋服務端的根本問題。但如果頁面只做一件事情,性能問題就不容易產生。如果真發生了問題,排查原因也很容易。

12. 它有一種在前進的感覺

因為用戶在不停地前往下一步,會產生一種正在前進的感覺,在用戶填寫表單時給他們一種積極的感受。

13. 降低丟失信息的風險

長表單需要更長時間來完成。如果所花時間太長,頁面超時可能導致信息丟失,產生嚴重的挫敗感。

又或者,電腦可能卡死,*《我是布萊克》*裡的主角Daniel就是這樣的例子。他的健康每況愈下,而且第一次用電腦就遇到了死機,然後數據丟失。最終他放棄了。

14. 第二次使用的體驗更順暢

比如,假設我們儲存了用戶的支付信息,我們可以直接跳過那一頁,直接帶他們去「結帳確認」頁面。這會減少阻礙,提升轉化率。

15. 這是移動優先設計的一種補充

移動優先的設計,提倡在小屏幕上只呈現最重要的信息。一頁只做一件事,也遵循著相同的方式。

16. 設計過程很簡單

當我們設計一套複雜流程時,分解成細小頁面和組件,可以讓人更容易理解這些問題。

還可以方便地調換頁面來改變順序。我們一次只研究一件事,這點和用戶一樣,能讓我們更輕鬆地分析問題。

這可以減輕設計負擔——這種模式讓用戶受益的同時,還能有這樣的附加福利。

這種模式適合所有情況嗎?

也不完全是。Caroline Jarrett在2015年寫過一篇文章《一頁只做一件事》,裡面講得很清楚。她解釋道,用戶調研「會告訴你某些問題組合起來放在長頁面裡更合適」。

但是反過來,她也提到了「對於設計師來說『屬於一組』的問題……對於用戶而言,並不一定要放在一個頁面上」。

她提出了一個頗具啟發性的例子,GOV.UK的驗證頁面中,他們嘗試把「創建用戶名」和「創建密碼」先後放在兩個頁面上。

就像許多設計師所認為的,Caroline覺得把這兩者放在不同頁面有點太過了。實際上,用戶對此一點也不介意。

關鍵在於,以一頁只做一件事為出發點,然後通過用戶研究,驗證把其中一些項目編組合併,是否能進一步改善用戶體驗。

這並不代表最終結果一定是把頁面合併——在我經驗中,最好的結果往往是把事情拆分開來,僅此而已。當然,我也希望聽聽你的經驗。

總結

這種低調不起眼的用戶體驗設計模式很靈活、高性能、有包容性。這是真正擁抱網際網路的方式,對於自信滿滿和小心翼翼的用戶而言都很簡單。

一個頁面上展現很多(或者全部)內容可能會營造一種簡單的幻象,但就像代數式問題一樣,除非把它們分解,否則很難處理。

如果把任務看作是用戶想要完成的一筆交易,把它分解為多個小步驟很有必要。這就像我們在用網頁的一磚一瓦來搭建漸進式表單。每一頁背後的隱喻,都給潛意識營造一種正在前進的感覺。

我還沒有遇到過哪種其他的設計模式,能具備這麼多的優點。這就是那種真理時刻——答案總是最簡單的。

原文作者:Adam Silver

原文地址:https://www.smashingmagazine.com/2017/05/better-form-design-one-thing-per-page/

#專欄作家#

可樂橙,微信公眾號:可樂橙(colachangreen)。人人都是產品經理專欄作家,UI/UX設計師,關注網際網路,關注科技。現居杭州,與小夥伴們正在創業途中。或許不是一名優秀的設計師,至少是個快樂的設計師。

本文翻譯發布於人人都是產品經理,未經許可,不得轉載。

相關焦點

  • 表單設計:掌握表單設計方法
    編輯導語:表單是我們比較常見的一個信息錄入工具,糟糕的表單設計會帶來令用戶抓狂的交互體驗。這些都是設計師需要進行全盤考慮的問題,所以在設計表單的時候需要先確定這些框架,由外>內,層層深入,再對細節進行處理。所以接下來我會針對如何由外>內設計表單進行詳細的陳述。
  • PC端表單設計的研究:如何設計一個優秀的表單頁面
    最近身邊的一些小夥伴,總會遇見B端設計工作,對於這種偏後臺設計的B端設計,總會有大量的表單設計需要做,結合以前自己也有過不少表單設計的工作,在這裡給大家分享一下自己對於PC端表單設計的研究,聊一聊表單在PC端中的運用。
  • 表單設計:掌握表單設計方法(表單體驗篇)
    編輯導語:表單是我們比較常見的一個信息錄入工具,糟糕的表單設計會帶來令用戶抓狂的交互體驗。本文作者結合案例對表單的構成及注意事項進行了詳細的說明,相信對表單設計不熟悉的同學看完後肯定會有不少的收穫~
  • 終極表單設計指南
    這只需要花一點心思,就能節省用戶寶貴的時間,不需要他們自己來回切換鍵盤,這還有助於他們了解您期望的輸入類型。4. 使用本機原生輸入谷歌和蘋果都投入了大量研究來設計他們自己的UI控制項。大多數人都見過這些,所以除非你有充分的理由不這樣做,否則請堅持使用本機控制項。使用正確的輸入類型這可能看起來顯而易見,但實際上並不總是那麼容易。
  • 表單設計 | 十個錯誤提示設計指南
    表單設計中的錯誤提示的作用在於幫助用戶修復表單中的錯誤,並給出他們如何避免更多錯誤的建議。以下筆者將與大家討論設計錯誤提示的有用指南,enjoy~在最近的項目中做了一些表格設計,其中牽涉到了一些錯誤提示的內容。於是筆者在下班時間找了一片關於錯誤提示的外文文章,利用空閒時間把它翻譯過來,希望能夠幫助大家在之後的表單設計中有一定的幫助。
  • 你的終極表單設計指南
    這只需要花一點心思,就能節省用戶寶貴的時間,不需要他們自己來回切換鍵盤。這還有助於他們了解您期望的輸入類型。4. 使用本機原生輸入谷歌和蘋果都投入了大量研究來設計他們自己的UI控制項。大多數人都見過這些,所以除非你有充分的理由不這樣做,否則請堅持使用本機控制項。
  • 如何在App表單設計上留住用戶?(上)
    本文中提到的大多數要點,都具有可視化的要做的示例,和不要做的示例,所有這些示例都是使用AdobeXD創建的。接下來分別從這八個方面進行展開細講:輸入域、欄位標籤、布局、操作按鈕、幫助與支持、易接近、測試設計決策、結論。1.
  • 表單設計歸納
    表單設計歸納一、表單解析表單的目的、內容、大小長度等雖然各不相同,但基本元素比較固定;合理組織這些元素有助於用戶輕鬆完成表單填寫
  • 12種表單設計技巧,幫你創建用戶友好型表單
    你知道如何設計出用戶友好型表單嗎?你知道其中需要掌握什麼技巧嗎?筆者將為你仔細介紹其中的要點。在開始這篇譯文之前,先普及下什麼是表單。表單在網頁或 app 中主要負責數據採集的功能。也就是說,大部分起到了數據採集功能的模塊,我們都可以稱其為表單。
  • 界面設計方法(5):表單功能的設計
    編輯導語:在前幾篇系列文章中,作者已經為我們介紹了界面的概念與分類、活動功能、字典功能以及看板功能的設計方法。在系列文章的最後一篇,作者為我們精心總結了表單功能的設計流程,相信認真看完這五篇文章的你,一定會有所收穫。表單功能,是4大業務功能(活動、字典、看板和表單)中的最後一個。
  • 社交網站登錄表單設計
    小夥伴們,今天我們要來探討一下社交登錄表單的那點事。什麼是社交登錄表單?和單純的註冊與登錄不一樣,現在是社會化的合作時代,一切都講究共贏、高效!而社交登錄表單正是為我們提供了一個快速進入網站的入口,通常包括註冊和登錄兩部分。社交登錄入口一般都是facebook、推特、新浪、qq等。
  • OA系統設計(2):表單
    筆者有OA系統的設計經驗,本系列將分篇章總結OA中最核心的功能,希望能儘可能全面地記錄筆者的經驗,和感興趣的讀者交流分享。這次我們探討OA系統裡另一個重要的功能模塊——表單。表單包括行政類單據,如請假單、設備申請單、用車申請單等;統計調查類單據,如人員信息統計表、團建活動報名表、調查問卷等。
  • 表單設計 | 40道題的表單如何優化?
    當需求方給到一堆問題表單時,是不是很頭大?比如,一個教育諮詢的表單,差不多都有40多道題了,直接給用戶填的話用戶體驗太差,或直接嚇跑用戶,但是這些問題又不能做大幅的刪減,怎麼辦?下面來講講我從一個多題表單的出生到上線的工作過程。
  • 表單設計總結
    糟糕的表單設計會帶來令用戶抓狂的交互體驗,極大的影響用戶信息錄入的效率。這篇文章我就來大家梳理一下關於表單設計的一些知識點。常見表單是由多個列表項構成的。而每一個列表項都有最基本的標籤(標題)和輸入框。顧名思義,標籤是用來告訴用戶這個列表項是什麼;輸入框是供用戶輸入用的。標籤根據所處的位置可以分為左標籤,頂部標籤和行內標籤。
  • 終極表單設計指南 - 人人都是產品經理
    這只需要花一點心思,就能節省用戶寶貴的時間,不需要他們自己來回切換鍵盤,這還有助於他們了解您期望的輸入類型。4. 使用本機原生輸入谷歌和蘋果都投入了大量研究來設計他們自己的UI控制項。大多數人都見過這些,所以除非你有充分的理由不這樣做,否則請堅持使用本機控制項。
  • 用戶體驗:表單設計中的注意事項
    在下面的這篇文章中,我們來看看有助於你設計不同可用性表單的10個最佳實踐,希望它對設計人員和開發人員都有用,玩得開心。好吧,讓我們開始吧!「表單」是什麼意思,它在哪裡使用?通常,表單是一個帶有標籤和欄位的框,其中包含一個號召性用語按鈕。
  • 表單≠問卷調查工具,很多人都搞混了!表單能做的事太多了
    很多人對表單太陌生了,請不要將【表單】和【調查問卷】劃等號,它能做的事情太多了!從概念上對比理解表單:其作用和表格差異甚遠,由於表單是在線填寫提交,因此數據可以實時獲取並傳輸至雲端,比如,每月都要收集各個業務部的銷售數據。那麼就可以將表單連結分享給相關人員,大家只需要打開連結,各自提交相關內容,數據便可自動傳輸到雲端。
  • 用了上萬字講清楚了「表單設計」
    表單也是最常用的信息錄入的工具,隨著網際網路興起,很多表單被放到了電子屏上填寫,特別是最近幾年,隨著B端的興起,和表單打交道的人越來越多,那麼作為設計師,我們如果設計出一個糟糕的表單,會極大影響 用戶信息的錄入的效率。
  • OA工作流之表單和報表的設計與應用實例
    在上一篇文章「OA工作流之圖形化流程設計和條件跳轉實例」,我們了解了OA工作流的流程設計特點,本文將繼續在華天動力OA系統的試用版本中進行實例演示,介紹一下表單和報表在工作流中的應用。  一、什麼是表單?什麼是報表?  表單用來顯示查詢或輸入的數據。
  • 表單設計總結:構建有趣的界面「對話」
    無論你是做什麼產品的,我相信表單設計的需求都是非常常見的,但是也是容易被忽略的。跟以往不同的是,寫這篇文章並不是我多有經驗,而是我意識到自己的表單體驗很糟糕,一直以來我覺得表單設計的需求簡單且索然無味,更願意去把精力投入有挑戰性的需求上。後來發現往往是這些糟糕的表單把用戶與平臺溝通的入口堵死了,於是花了一段時間專門研究表單設計,反省下自己。寫完這篇估計可以集齊夏日繽紛全家桶了。