フォーム入力時の「エラーメッセージ」を正しく配置する方法|現場で使える実践テクニック

C
クリオ
Web制作ディレクター / フロントエンジニア

こんにちは!

今日は「フォーム入力時のエラーメッセージ配置」について解説します。
これ、めっちゃ大事なのにおろそかにされてることが多いんですよ。

エラーメッセージの配置で失敗した話

正直に話すと、僕も最初はエラーメッセージのことを深く考えずにやってました。
お問い合わせフォームで「メールアドレスが正しくありません」というエラーメッセージを、フォーム全体の上に表示させてたんです。

そしたら、ユーザーテストを見ててびっくりしました。
ユーザーが下にスクロールしてからエラーに気づいて、またフォームまでスクロール戻ってくるんです。
めっちゃ不便やん…ほんまにそう感じました。

それからというもの、「エラーメッセージはどこに置くか」っていうのは、単なるデザインの問題じゃなくて、UX全体を左右する大事な要素なんだってことに気づきました。
現場でもこういう失敗はよく見るんですよ。

フォームのどこにエラーメッセージを置くべきか

基本ルール:入力欄のすぐ下に配置する

エラーメッセージの正解は、シンプルです。
エラーが発生した入力欄のすぐ下に配置するんですよ。

理由は簡単で、ユーザーの目線の流れを邪魔しないから。
ユーザーは入力欄を見て、その直下を見る。
この自然な視線の流れに沿ってメッセージを置くことで、ユーザーが迷わずに修正できます。

HTML構造としては、こんな感じが理想的です:

<div class="form-group">
<label for="email">メールアドレス</label>
<input type="email" id="email" name="email">
<p class="error-message" role="alert">正しいメールアドレスを入力してください</p>
</div>

複数フィールドのエラーはフォーム上部に集約もあり

でもね、複数のフィールドでエラーが出た場合は、少し工夫が必要です。
全部のエラーをそれぞれの入力欄の下に置くと、画面がめっちゃごちゃごちゃになっちゃいます。

こういう時は、フォーム上部に「エラーサマリー」を置くパターンも有効です。
例えば:

  • フォーム上部:「3つのエラーがあります」という一覧
  • 各入力欄の下:そのフィールド特有のエラーメッセージ + 視覚的な警告(赤い枠線とか)

こうすると、ユーザーはまず全体的な問題を把握できて、その後各フィールドで修正できるんです。
ほんまに効果的ですよ。

色と文字だけに頼らない

あと、よくある勘違いが「赤い色でメッセージを表示すればいい」って思ってることなんです。
でも色覚異常のユーザーがいるので、色だけじゃダメなんです。

僕がよく使う方法は:

  • 赤い枠線を入力欄に付ける
  • アイコン( !マークみたいな)を使う
  • テキストで「エラー:」って明示的に書く

こういう複数の手法を組み合わせることで、誰もが気づけるようになります。

アクセシビリティを考慮した実装のコツ

role=”alert”を使って画面リーダーに伝える

HTMLにrole="alert"を入れることで、スクリーンリーダーのユーザーにエラーが発生したことを知らせることができます。
これめっちゃ大事です。

例えば:
<p class="error-message" role="alert">このフィールドは必須です</p>

こうすると、スクリーンリーダーが「アラート:このフィールドは必須です」って読み上げてくれるんです。

aria-describedbyで入力欄とエラーを紐付ける

さらに踏み込むなら、入力欄とエラーメッセージを明示的に関連付けるといいですよ。

<label for="email">メールアドレス</label>
<input type="email" id="email" aria-describedby="email-error">
<p id="email-error" class="error-message" role="alert">正しいメールアドレスを入力してください</p>

こうすると、スクリーンリーダーが入力欄を読む時に自動的にエラーメッセージも読み上げるんです。
ユーザー体験が格段に良くなります。

エラーメッセージのテキストは明確に

「エラーが発生しました」とか「入力が正しくありません」みたいな曖昧なメッセージはNGです。
現場では時々見かけるんですけど、ユーザーは何を直せばいいか分からないんですよ。

良いエラーメッセージは:

  • 「メールアドレスは@を含む必要があります」
  • 「電話番号は10〜11桁の数字で入力してください」
  • 「パスワードは8文字以上である必要があります」

こんな感じで、何が問題で、どう直せばいいのかを具体的に書くんです。
そうするとユーザーはストレスなく修正できます。

まとめ

エラーメッセージの配置は、本当に重要なUXなんです。
単なる「エラーを表示する」じゃなくて、「ユーザーが気づきやすく、修正しやすい配置」を考える必要があります。

おさらいすると:

  • 基本は入力欄のすぐ下に配置する
  • 複数エラーの場合はサマリーも上部に置く
  • 色だけに頼らず、複数の視覚的手法を使う
  • HTMLでrole="alert"とaria-describedbyを使う
  • エラーメッセージは具体的で、修正方法が分かるテキストにする

最初は手間に感じるかもしれませんが、こういう細かい配慮がユーザー満足度を大きく上げるんですよ。
ぜひ試してみてください!