CheckBox

ユーザーに「true/false」といった正反対の状態を入力させるコンポーネントです。 input[type='checkbox']の代わりとして使用します。

使用上の注意

ユースケースに応じてコンポーネントを使い分ける

選択肢が複数選択できる場合に使用する

チェックボックスは選択肢を複数選択できる場合に使用します。

  • 複数の選択肢から単一選択しかできず、表示領域に余裕がある場合は原則としてRadioButtonを検討してください。
  • 選択肢が多い場合や表示領域が狭い場合は、MultiComboBoxを検討してください。

ビューの切り替えを操作するUIとして使用しない

チェックボックスは入力後に、送信保存といったtype属性がsubmitのボタンなどを押すことで入力内容が反映される場合に使用してください。
チェックボックスは1クリックで状態が正反対の結果となるため、誤入力によって意図しない結果が反映されてしまう可能性あります。

よくあるテーブルで「表示/非表示」を切り替える場合や、表示領域上submitのボタンの配置が難しい場合など、即時反映を前提とする箇所ではTabBarSegmentedControl、またはSwitchを使用してください。

「ON/OFF」といった2択の切り替え入力に使用しない

チェックボックスは、「ON/OFF」「有効/無効」「はい/いいえ」といった2択の切り替え入力には原則として使用しないでください。

「ON/OFF」などのブール値で制御できる項目にチェックボックスを使用した場合、一方の選択肢が暗黙的になりチェック状態から現在の選択状態が認識しづらくなる場合があります。 こうした場合には、選択肢を明示的に表示できるRadioButtonを使用してください。

Do
Do
すべての選択肢が明示的に表示されているため、現在の状態が把握しやすい
Dont
Don't
「無効」という選択肢が暗黙的であり、現在の状態をラベルとチェック状態から推測しなければならない

例外として、以下のようにユーザーに操作内容の確認を促す手段としてチェックボックスを単独で使用することがあります。

  • 利用規約などユーザーに許諾を得る必要がある内容の確認を促す場合
  • 削除ダイアログなど、重要な操作を行なう場合でユーザーに注意事項の確認を促す場合

削除ダイアログで操作の確認を促す際のチェックボックスの使用例

チェックボックス内に操作可能な要素を含めない

チェックボックス内には、ヘルプページへのリンクやフォームなど、ユーザーが値を選択する以外の操作可能な要素は配置しないでください。 これらを配置してしまうと、ユーザーがフォーム入力するための操作難易度が上がり、誤操作などにつながるためです。(※1

チェックボックスの操作に関連するリンクを置きたい場合は、FieldsethelpMessage propsなどを使用してください。

Do
Do
ユーザーは選択する操作に集中でき、それ以外の操作と区別しやすい
Dont
Don't
ユーザーが選択操作に集中できず、操作難易度が上がる

状態

デフォルト

どの選択肢もチェックされていない状態をデフォルトとしてください。

ユーザーの入力作業が向上したり、ミスを減らせる場合にはデフォルトで選択肢にチェックを入れることを検討します。(参考:デフォルト値

混在(mixed)

テーブル内の一括操作の「一括選択するチェックボックス」など、複数のチェックボックスの状態をまとめて示す必要があるチェックボックスにおいて、選択状態と未選択状態が混ざっている状態を示す場合には、混在選択状態(mixed=true)を採用します。

よくあるテーブルでの混在状態のチェックボックスの使用例

デザインパターン

選択肢のグルーピング

例えば設定画面などで、チェックボックスやラジオボタンのように複数の選択肢を持つ項目を、いくつも並べて表示する場合は、ラベルがかかる範囲や設定項目ごとの選択肢を区別しやすくするためにBaseColumnでグルーピングする場合があります。

共通設定の操作権限項目のデザインパターンもあわせて参考にしてください。

Props

mixed
false true

true のとき、チェック状態を mixed にする

error
false true

チェックボックスにエラーがあるかどうか

関連リンク

参考文献

※1. <label\>: The Label element - HTML: HyperText Markup Language | MDN