← 回到 Blog
前端開發約 3 分鐘閱讀

手機版表單錯誤狀態 QA:不是只看能不能送出

分類前端開發網站經營介面 QA
標籤#Mobile UX#Form QA#Accessibility#Frontend
程式編輯器畫面,象徵手機版表單錯誤狀態與前端互動 QA 檢查

手機版表單最常被低估的測試,不是「送出成功」那一條 happy path,而是使用者填錯、漏填、切換輸入法、被鍵盤擋住、返回上一頁之後,畫面是否還能清楚引導他完成動作。

很多網站的聯絡表單、下載表單、報名表單看起來都能送出;但一旦使用者漏掉必填欄位,錯誤訊息可能跑到畫面外、按鈕被鍵盤遮住、欄位 focus 不明顯,或是錯誤後把原本輸入的資料清空。這些細節不一定會讓工程 build 失敗,卻會讓轉換率慢慢流失。

我會先把表單流程拆成三段

手機版 QA 不要只測最後按鈕,先把流程拆成三段:

  1. 填寫前:欄位標籤、placeholder、必填提示是否清楚。
  2. 填寫中:鍵盤類型、focus 樣式、欄位間距、捲動位置是否正常。
  3. 送出後:錯誤訊息、成功訊息、資料回填與追蹤事件是否一致。

這樣拆的好處是可以快速定位問題:如果使用者不知道欄位要填什麼,是填寫前的資訊架構問題;如果鍵盤一打開就看不到送出按鈕,是填寫中的 viewport 問題;如果送出錯誤後資料消失,則是狀態管理或後端驗證回傳處理問題。

錯誤訊息要離欄位夠近

表單錯誤最常見的壞體驗,是錯誤訊息只出現在頁面最上方,使用者卻停在頁面下方看不到。手機螢幕高度有限,錯誤訊息應該同時滿足兩件事:

  • 欄位旁邊或下方有清楚訊息,讓使用者知道哪裡錯。
  • 送出後若第一個錯誤欄位在畫面外,頁面能捲到合理位置。

文字也不要只寫「格式錯誤」。比較好的提示是「請輸入有效 Email,例如 hello@example.com」或「電話至少需要 10 碼」。這不是文案裝飾,而是減少使用者重試成本。

手機鍵盤會改變真正可見的畫面

桌機測試表單時,畫面高度通常足夠;手機上打開鍵盤後,真正可見的區域會變小。若表單底部有 sticky CTA、聊天浮窗或 cookie banner,送出按鈕就可能被擋住。

我會實際用 390px 左右的 viewport 測幾個狀態:

空白表單 → 點第一個欄位 → 輸入錯誤格式 → 送出 → 修正 → 成功

重點不是截一張漂亮圖,而是確認每一步都還能看到目前欄位、錯誤訊息與下一個可操作按鈕。若欄位很多,也要測中段欄位與最後一個欄位,因為問題常出現在表單下半部。

focus-visible 與 touch target 不能只靠顏色

手機表單也需要可見的 focus 狀態。雖然手指操作不像鍵盤 tab 那麼明顯,但很多使用者會搭配外接鍵盤、螢幕閱讀器或瀏覽器輔助功能;再加上錯誤狀態本身也需要清楚標示。

我會檢查:

  • 可點擊元素是否至少接近 44px 高。
  • focus 樣式是否不是只靠極淡顏色。
  • 錯誤狀態是否同時有文字、邊框或 icon,而不是只靠紅色。
  • label 是否真的綁定到 input,點 label 能把焦點帶到欄位。

這些細節會影響可及性,也會影響一般使用者在小螢幕上的操作穩定度。

錯誤後不要清空使用者已填資料

表單最傷人的情境之一,是使用者填完很長的內容,送出後因為某個欄位錯誤,整張表單被清空。即使技術上可以解釋為驗證失敗或 session 過期,使用者的感受仍然是「網站把我的內容吃掉」。

如果欄位涉及檔案上傳或驗證碼,至少要在畫面上說清楚哪些資料需要重新選擇;文字欄位、Email、電話、備註這類資料,原則上應該保留。

最後要看事件追蹤是不是把錯誤當成功

網站經營角度還要多看一層:表單追蹤事件有沒有把「按了送出」誤當成「送出成功」。如果 analytics 只記錄 button click,就會高估轉換;比較好的做法是分成:

form_submit_click
form_validation_error
form_submit_success
form_submit_failed

這樣日後看到表單轉換下降,才知道是入口流量不足、錯誤率升高、後端失敗,還是使用者在手機版卡住。

UCAMC 之後維護表單會優先看這幾件事

每次調整聯絡、報名、下載或訂閱表單時,我會把手機版錯誤流程列為必要驗收,而不是等到使用者回報才補測。最小可行驗收可以很簡單:

  1. 390px 手機 viewport 跑一次空白送出。
  2. 確認第一個錯誤欄位與錯誤訊息可見。
  3. 修正欄位後資料沒有被清空。
  4. CTA 沒有被鍵盤或浮動元件擋住。
  5. 成功與失敗事件分開記錄。

這類 QA 看起來不是大改版,卻是長期網站經營最需要累積的細節。表單不是只有功能元件,也是使用者願不願意把資料交給網站的信任入口。