刷 FB 時看到這篇出自純靠北工程師 的貼文。
在討論如何防止使用者犯錯之前,得先了解使用者為什麼會犯錯,可能會犯哪些種類的錯。
失誤 Slip
失誤指的是當一個人打算做一個動作,結果做了別的動作。被執行的動作和原來想做的動作不一致。 可分成「行動性」和「記憶性」兩種。
- 行動性失誤:進行錯誤的動作。
- 記憶性失誤:記憶有問題所以預定的動作沒有完成。
「我想把商品從購物車裡挪到下次再買清單,卻誤把商品刪掉了」就是行動性失誤。
「以為手機被偷了到處東翻西找卻在自己包包裡響起鈴聲」是記憶性失誤。
失誤的發生往往來自於「不專心」,所以熟練的人會比新手更容易犯下「失誤」。這些動作對他們來說十分熟悉而依賴下意識的反應。
錯誤 Mistake
錯誤指的是使用者定了錯誤的目標或計劃、或評估錯誤(即使行動的執行和計劃相符合)。
- 規則性錯誤:對狀況的判斷,導致遵循規則後卻發生錯誤。
- 知識性錯誤:因知識不足或知識有誤,所以對問題產生錯誤認知。
- 記憶性錯誤:因為干擾而忘掉行動目的、計劃、目前狀態的評估。
「設了靜音模式的鬧鐘在音樂會上響起」、「用次氯酸鈉消毒雙手」、「衣服燙到一半跑去接電話,聊起天…」等等都是錯誤。
新手因為知識不足、對狀況掌握不全等有意識的思考判斷,比較容易犯下錯誤。
(以上參考設計的心理學 一書。)
如果以「刪除文章」這個例子來說,尤於刪除文章是個很普遍常見的功能,比起「因為新手導致犯下錯誤」的可能性較低,較像是「無意識犯下失誤」的狀況。
對於無意識犯下失誤,很重要的一點是「喚回使用者的注意力」,讓使用者從無意識的操作變成意識到自己在幹嘛。
再次跳出「確認刪除」效果不大,因為「刪除文章」就是當時該使用者想做的事,就算跳出再次確認訊息「你真的要刪掉文章嗎?」,他回答的也會是「對啊我要刪啊不然咧?」。
必需要讓他知道他刪除文章的嚴重後果。但不能是「警告,刪除此文後再也救不回來。」這種罐頭。
(我也知道清空資源回收桶後,扔在桶裡那份寫到一半的論文會永久消失啊!還不是手滑幹掉了orz)
另外,還得考慮提示的頻率和出錯的嚴重度。
頻率指的是是否經常需要跳出這個再次確認訊息,嚴重度指的是萬一出錯了是否能用較低的代價挽回。
如果我只是加錯商品進購物車,要把商品從購物車裡刪掉,每刪一項就跳個提醒要我輸入身份證字號,這也太常出現而且也太小題大作。誤刪了個商品,再加回來就好了啊很嚴重嗎?
但如果是把 PS4 重置洗白又沒備份…這很嚴重啊為啥不提醒我、強烈地轟炸我、告訴我所有遊戲進度都沒了!!!??
範例 Github
Github 弄了一個「危險操作區」,把所有危險的操作功能都放在一起加個紅框。
當你真的要刪掉 Repository ,會看到再次確認視窗,要你輸入這個 Repository 的名稱。
但是以「刪除文章」來說,要求輸入文章名稱才能刪的話,想想一篇文章的標題大約多少個字?允不允許特殊符號或 emoji?使用者會怎麼輸入?複製貼上?
喚回使用者的注意力、告訴使用者後果、考慮提示的頻率、萬一出錯的嚴重度…在如何防止使用者「誤刪文章」有很多作法。
當然這完全沒有標準答案,本文只提個思考方向。畢竟不同用途的產品、面向的使用者類型不同,不能也不該用同一種作法。