Column

Column制作会社・広告会社向け

赤枠だけのフォーム入力エラー表示を直すHTML/JS実装と操作検証

フォームの入力エラーを赤枠だけで終えず、説明文・入力欄との関連付け・戻り先まで実装します。架空フォームの修正前後をPC・390px幅・キーボードで試し、検収項目と未確認の範囲を整理します。

入力エラーは、赤枠だけでなく「どの欄を、どう直すか」を文章で示します。入力欄と説明を関連付け、キーボードでもエラー箇所へ戻れることまで確認すると、デザインと実装の検収条件をそろえられます。

制作会社・広告会社の実装担当者に向け、メール欄一つの架空フォームを使って、問題例から修正版までを検証しました。フォームの項目選びや送信メールの保守とは分け、今回は入力を間違えた後の直しやすさを扱います。

赤枠だけのエラーを、説明と操作へ分けて直す

問題例は、空欄で「入力を確認」を押すと枠だけが赤くなる作りです。サンプルはnovalidateで標準の吹き出しを止め、validityで入力を判定します。独自の支援を実装しないまま標準表示を止めないよう注意します。試すと赤枠は出ましたが、何が不足したかを示す文章も、エラーの概要へ移る動作もありませんでした。色だけを変更して終わると、修正する項目や方法が伝わりません。

if (!mail.validity.valid) {
  mail.classList.add('invalid'); // 赤枠だけ
  return;
}

W3CのWCAG 2.2解説では、3.3.1は自動検出したエラーの項目を特定し、文章で説明すること、3.3.3は修正方法が分かる場合に提案することを扱います。概要から各欄へリンクする構成は実装方法の一つで、これだけが唯一の必須手法ではありません。

ラベル・エラー文・入力欄をHTMLでつなぐ

修正版ではlabelを入力欄に結び付け、通常の入力例はmail-hint、エラー文はmail-errorに分けました。下はHTMLと、検証に失敗した際の処理の要点です。エラー文は空欄用と形式不正用に分岐させます。

<label for="mail">メールアドレス(必須)</label>
<input id="mail" type="email" required
  aria-describedby="mail-hint">
<p id="mail-hint">例:sample@example.com</p>
<p id="mail-error" hidden></p>
// messageは検証結果に応じた具体的な説明
error.textContent = message;
error.hidden = false;
mail.setAttribute('aria-invalid', 'true');
mail.setAttribute('aria-describedby', 'mail-hint mail-error');
summary.hidden = false;
summary.focus();

概要はtabindex="-1"でフォーカスを受け取れる要素にし、メール欄へ戻るリンクを置きます。今回の全体コードでは、そのリンクからmail.focus()を呼びます。検証前からaria-invalidをtrueにせず、次の試行時には古いエラーを解除します。正しい入力なら属性を外し、aria-describedbyをmail-hintへ戻します。

入力するたびに先頭へ戻す作りにはしていません。確認ボタンを押して不正があったときに概要へ移し、入力値は消さずに修正できるようにしました。コードは要点の抜粋で、実案件では複数項目の検証やサーバー側のエラーにも同じ対応関係を用意します。

PC・スマートフォン幅・キーボードで試した結果

2026年10月27日、macOS上のCodex内蔵ブラウザで実行しました。ローカルHTTPで観測したUser-AgentはChrome/156.0.0.0、配信はMAMP PHP 8.5.2です。HTML・CSS・JavaScriptだけの再現用サンプルで、WordPressや特定フォームプラグインの動作試験ではありません。

試した操作修正版の観測結果
空欄で確認入力必須の文章を表示し、概要へフォーカス
sampleを入力形式の修正案を表示。入力値は画面に保持
概要からTab→Enterエラーのリンクを経由してメール欄へ復帰
sample@example.comへ修正古いエラーと属性を解除し、確認完了を表示
1280px/390px幅横はみ出しなし。PCのボタンfocus枠は3px
架空の入力を使ったローカル検証。外部通信・メール送信は実行していません。

正しい形式でも表示は「送信していません」です。今回確認したのは画面上の入力支援までで、メールの到達、受付成立、実在するメールアドレスかどうかは検証していません。390pxは表示幅の再現で、実機iPhone・Androidの試験ではありません。読み上げソフトでの聞こえ方とWCAG全体への適合も未評価です。

エラー状態のデザインも検収条件に含める

  • 通常・未入力・形式不正・修正後の表示と文言をデザイン時にそろえる。
  • 入力値が残ること、概要と各欄の対応、キーボードの戻り先を実際に操作して確かめる。
  • 本番に組み込む前に、サーバー側検証・送信処理・読み上げ・実機も別項目で確認する。

GreenCodingへ実装を相談する際は、通常画面だけでなく、エラー文と表示位置、入力条件、対象ブラウザ、検収担当を共有してください。制作会社・広告会社向けのコーディング・WordPress実装で、デザインからの実装と確認工程をご相談いただけます。

Web案件の進め方が未確定でも、
ご相談いただけます。

支給資料と現在決まっている範囲を確認し、必要な工程、役割分担、実装・検証範囲を整理します。

制作パートナー向けサービスを見る