インプット
component名前やメールアドレスなど、1 行のテキストを入力する欄です。
size × state
valid (isInvalid=false)
isInvalid=true
bg negative/50 · border 2px negative/500 (hover 600 / disabled 200)
使用例
Label Control と組み合わせて
ログインに使用します
8文字以上で入力してください
機能
このコンポーネントの用途
1 行のテキスト入力。
検索特化なら search-input、選択肢からの選択は selector、複数行は textarea。
使用法
推奨される使い方と、やりがちな NG パターン
OK
- ✓サイズは input-{sm,md,lg}、エラー時は input-error を付ける。
- ✓ラベルは label-control と組み合わせる。
NG
- ✕エラー色を直書きしない → input-error を使う。
- ✕プレースホルダーをラベル代わりにしない → label-control でラベルを置く。
ラベルは可視ラベルで(placeholder に頼らない)
ラベル又は説明文可視ラベルを for/id で関連付ける。placeholder は入力例にとどめる。
<label for="email">メールアドレス</label> <input id="email" type="email" class="input input-md" placeholder="you@example.com" />
placeholder をラベル代わりにしない。入力すると消え、コントラストも低く、SR でも安定して読まれない。
<input type="email" class="input input-md" placeholder="メールアドレス" /> <!-- ラベルなし -->
インプットのアクセシビリティ
ネイティブ <input> を土台に、DS が境界色・フォーカス・エラー表現を担保します。可視ラベルの関連付けと autocomplete はプロダクト側で付与します。WCAG 2.2 全基準は アクセシビリティ ページを参照。
期待される配慮
Presentation / Adaptability / Interaction / Assistive Technology
ラベルは常に可視。エラーは色だけでなく境界色+テキストで伝え、サポート文で補う。placeholder はラベル代わりにしない。
サイズは rem / トークンで拡大に追従。lg は 48px(md は 40px)。高さ固定で文字を切らない。
Tab で移動して直接入力。フォーカス時に境界色が強調され位置が分かる。
ラベルの関連付け(for/id か aria-labelledby)で名前が確立。サポート/エラーは aria-describedby、エラーは aria-invalid で伝える。
DS が担保する機能
追加実装なしで満たされる
- ✓ネイティブ
<input>ベース — 役割・値が標準で確立し、autocompleteをそのまま透過 - ✓フォーカス時に境界色を強調(フォーカスの可視化)
- ✓エラーは
input-errorの境界色+背景で表現(色+テキスト併用を前提) - ✓
label-controlが見出し・必須/任意バッジ・サポート文の下地を提供 - ✓
lg(48px)はターゲット拡張(WCAG 2.5.5)を満たす
実装時の必須対応
プロダクト側で担保する
- !可視ラベルを
for/id(またはaria-labelledby)で関連付ける。placeholder をラベルにしない - !サポート文・エラー文を
aria-describedbyで結び付ける - !エラー時は
aria-invalid="true"。必須はrequired+label-badge-required - !氏名・メール・電話・住所などは
autocompleteトークンを付与(email/tel/name…) - !入力目的に合う
type(email/tel/password)を選ぶ
テスト方法
キーボード / スクリーンリーダー / 自動チェック
| キー | 動作 |
|---|---|
| Tab / Shift+Tab | 入力欄へ移動する |
| 文字キー | 直接入力する |
- SRラベル・必須・サポート文/エラー文が名前と説明として読まれる
- 操作ブラウザの自動入力候補が正しく提案される(autocomplete)
- 自動axe / Lighthouse でラベル関連付け・
aria-invalid・autocomplete・コントラストを確認
エラーは色+テキスト+ARIA で伝える
達成基準:WCAG 3.3.1 エラーの特定 / 1.4.1 色の使用8 文字以上で入力してください
境界色+エラーテキストを aria-describedby/aria-invalid で関連付ける。
<input class="input input-md input-error" aria-invalid="true" aria-describedby="err" /> <p id="err">8 文字以上で入力してください</p>
赤い境界線だけでは、色を区別できない人に何が問題か伝わらない。
<input class="input input-md input-error" value="abc" /> <!-- エラー文も aria もない -->