![見出し画像](https://assets.st-note.com/production/uploads/images/44823622/rectangle_large_type_2_38df512ad854586755828215b25e8d46.png?width=1200)
入力フォームの研究
Webサービスやアプリで必ずと言ってもいいほど出てくる入力フォーム。
「なんやこの入力フォーム、まじで意味わからん!もうええわ😱」となってやめてしまった経験が誰でも一度はあるのではないでしょうか?
多くの人がそうした経験をしていることからもわかるように、入力フォームのUI/UXはユーザーがサービスを使い続けてくれるかを左右するような重要な要素です。
特にECサイトなどでは入力項目が多くなりがち&フォームを最後まで入力するかどうかが購入に至るかどうかを左右する大きなポイントになっており、EOF(Entry Form Optimization)として研究されています。
そこで、今回はそんな入力フォームをいかにユーザーフレンドリーにしていけるかを自分なりに研究して、重要だと思うポイントをまとめたのでそちらについてご紹介したいと思います。
(自分なりなのでここは違うんじゃない?みたいなツッコミがあれば大歓迎です👍)
入力フォームの構成要素
まずは入力フォームの構成要素についてまとめます。
![画像1](https://assets.st-note.com/production/uploads/images/44814627/picture_pc_51cd96126bf551bdb0122c92b4c7de4b.jpg)
・ラベル: 何をフォームに入力するかを示すラベルです
・必須可否: フォームが入力必須かどうかを示します。*マークだけではなくて必須と明記した方がよりわかりやすいです。
・フォーム本体: 入力フォーム本体です
・プレースホルダー: 入力値の例を示して、ユーザーが何を入力すれば良いかイメージしやすいようにします。
・メッセージ: 入力にバリデーションをかけている場合は事前に明示します。
・チェックマーク: 入力が完了したかを示すフォームです。こちらは一般的にはないフォームも多いように思いますが、ユーザーがフォームを正しく入力できていると言う確信を持って進めていけるので、あった方がいいと考えています。
入力を補助して負担をできるだけ軽くする
入力をユーザーに全て任せるのではなく、できるだけ負担が軽くなるように入力を補助します。
具体的には
・emailや電話番号などが自動入力、候補の表示が行われるように実装する
・郵便番号から住所を自動で入力する
・全角で入力された文字を自動で半角に変換する
など、こちらで補助してあげられることはできるだけ補助します。
エラーは適切なタイミングで表示する
エラーは適切なタイミングで表示するようにし、不用意にユーザーにストレスを与えないようにします。
実際に入力するときの流れを追いながら見ていきます。
1. 初回入力中
初回の入力中はエラーの表示は行わないようにします。
例えば以下の例のように、1文字目入力した段階で即時バリデーションが走りエラー表示がされると、ユーザーからすれば「今入力してるんや(怒)」と無駄にストレスを与えることになってしまいます。
![画像3](https://assets.st-note.com/production/uploads/images/44817661/picture_pc_81928bde39a05f7a079bf5c7e37d4a34.jpg)
ただしバリデーションが通ったことは前述の通りユーザーが安心感を持って進められることにつながるので、初回入力時でも通ったらすぐに表示するようにします。
![画像3](https://assets.st-note.com/production/uploads/images/44817270/picture_pc_2552395327d21b9f64df93ff8473b8ed.jpg)
2. 初回入力終了時
初回の入力が終了した(フォームからフォーカスが外れた)タイミングで初めてエラーの表示を行います。
(🤔エラーの場合フォーカスを外させないと言う方法もユーザーが再度フォームを選択するという手間を省くためにいいかなと思うのですが、そうするとユーザーの思った通りに動かずに不用意にストレスを与えてしまう可能性があり、悩みどころです。🤔)
こうすることでユーザーは今自分が入力した値に間違いがあったことにすぐに気づくことができます。
![画像4](https://assets.st-note.com/production/uploads/images/44818561/picture_pc_490dba0c37aafcff5ab6a1adeafcf962.jpg)
3. 2回目以降の入力(入力修正時)
エラーがあった項目を修正する際は、即時エラー表示を行うようにします。
初回入力時と異なり、ユーザーはエラーを修正するために入力をしているので、エラーが改善されたのか即時確認できる方が修正が行いやすいためです。
![画像5](https://assets.st-note.com/production/uploads/images/44818708/picture_pc_baf1395efd4bfd0bb806590266646d66.jpg)
入力項目の多いフォームは分割する
ECサイトで買い物をしようと思って以下のようなフォームだったらめちゃくちゃやる気がなくなってしまいますよね。
![画像6](https://assets.st-note.com/production/uploads/images/44819776/picture_pc_5bfeb743c5ce98e99eb1d9e8445ec363.jpg)
(引用 ux.stackexchange.com)
入力項目の数が多くなってしまう場合はフォームを複数に分割し、ステップごとに入力できるようにします。一度に入力するフォームの数が減ることで入力に対するストレスが大きく軽減されます。
また、ステップに分ける際はステップごとにタイトルをつけて、何についての入力なのか明示した上で、現在どのステップにいるのか、あとどのくらいステップがあるのかをユーザーがわかるようにすることで更にUXの良いフォームにすることができます。
![画像7](https://assets.st-note.com/production/uploads/images/44820625/picture_pc_bc865b8ffd734785b781944da8ed4b31.jpg?width=1200)
(引用 dribbble.com)
SubmitボタンをDisableにしない
以下のように入力項目を正しく入力しないと、送信ボタンがDisableになっていて押せないフォームであることがありますが、
こう言ったフォームは
・一見してどのフォームに問題があるのかわからない
・ユーザーにどのフォームに問題があるのか考えさせてしまう
と言った問題があります。
![画像8](https://assets.st-note.com/production/uploads/images/44821400/picture_pc_61386f39606152ff0da69c174cf8e982.jpg)
上記の問題を解決するには入力の正誤にかかわらずSubmitボタンはDisableにせずに常に押せるようにしておきます。
そして、ボタンを押したタイミングで全てのフォームのバリデーションを行い、エラーがある場合はその項目にフォーカスを当てすぐに入力できるようにします。
こうすることでユーザーはあまり何も考えずにとりあえず送信ボタンを押してみて、どれがエラーかをすぐに見つけることができるようになります。
![画像9](https://assets.st-note.com/production/uploads/images/44822263/picture_pc_1a81932593efd7c257a7ad57b1fe9b5c.jpg?width=1200)
例としてAppleの購入フォームの住所入力欄で何も入力せずに続行しようとすると以下のようになります。見事にエラーの最初の項目に自動でフォーカスされます。
![配送の詳細_—_セキュアチェックアウト](https://assets.st-note.com/production/uploads/images/44823935/picture_pc_d65356743ffc2c5abc067d2cdba31c1c.jpg?width=1200)
いかがでしたでしょうか。
フォームに限らずですが一番重要なことは
ユーザーに考えさせないこと
かなと思います。
いかにユーザーに考えさせないかをサービスを開発する側である僕らが深く考えていく必要があるのかなと思います。
自分が重要だと思うポイントのみピックアップしたのでややざっくばらんになってしまいましたが、これらのポイントを押さえるだけでも入力フォームがかなりいいものになるのではないかなと思います。
お試しあれ!
PR
日程調整のニッテという使いやす〜い日程調整ツールを作っております!
ぜひ一度お試しください!
この記事が気に入ったらサポートをしてみませんか?