Checkbox

チェックボックス

プレビュー

使いどころ

使う場面

  • 送信ボタンで確定するフォームでの、オン・オフの選択(利用規約への同意、通知を受け取る)
  • 複数の選択肢から、0 個以上を選ぶとき(複数選択)
  • 「同意する」のように、チェックしていないとき送信できない確認

使わない場面

  • 切り替えた瞬間に設定が反映される項目。Switch を使う
  • 選択肢から 1 つだけを選ぶとき。Radio か Select を使う
  • 一覧の絞り込み条件。FilterPill のほうが、並べて見せるときに場所を取らない
  • 操作の実行。Button を使う

使い方

<Checkbox label="同意する" />

プロパティ

名前型デフォルト説明
labelstringなしチェックボックスのラベルテキスト
errorbooleanなしエラー状態にする(aria-invalid が付く)。aria-invalid を直接渡してもよい
checkedbooleanfalse選択状態
onChange(e: ChangeEvent) => voidなし変更時のコールバック
idstringなし要素のID(labelとの紐付けに使用)

型と必須かどうかはソースの型定義から自動で生成しています。表にない HTML 標準の属性(className や aria-* など)も、ルート要素にそのまま渡せます。

キーボード操作

キー動作
Tabチェックボックスにフォーカスを移す
Spaceオンとオフを切り替える

アクセシビリティ

  • ブラウザ標準の checkbox を使っているので、状態の読み上げはブラウザに任せられる
  • label を渡すとクリックできる範囲がラベル全体に広がる。ラベルのない単独利用では aria-label を付ける
  • error で aria-invalid が付く。理由は近くに文言で書き、aria-describedby で結ぶ

文言

  • 「メールで通知を受け取る」のように、オンにしたときの状態を肯定形で書く。「受け取らない」の否定形は避ける
  • 同意は「利用規約に同意する」のように、何に同意するかをラベルに入れる

関連するコンポーネント