Radio

ラジオボタン

プレビュー

お支払い方法
配送方法

使いどころ

使う場面

  • 選択肢が 2 件から 5 件で、全部を見せて 1 つだけ選ばせるとき(プラン、支払い方法)
  • 送信ボタンで確定するフォームの項目。選んだ時点では何も反映されない
  • 選択肢の説明が長いとき。ラベルの下に補足を置ける

使わない場面

  • 選択肢が 6 件以上。Select か Combobox を使う
  • 選んだ瞬間に表示が切り替わる操作(一覧の表示形式)。SegmentedControl を使う
  • 複数選択。Checkbox を使う
  • オン・オフ。Checkbox か Switch を使う

使い方

<RadioGroup label="選択肢">
  <Radio label="選択肢A" name="choice" value="a" />
  <Radio label="選択肢B" name="choice" value="b" />
</RadioGroup>

プロパティ

名前型デフォルト説明
labelstringなしラジオボタンのラベル
orientation"horizontal" | "vertical"なし並べる向き(horizontal は横、vertical は縦)
errorbooleanfalseエラー状態
errorMessagestringなしグループの下に出すエラー文言

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

キーボード操作

キー動作
Tabグループに入る。選択済みの項目、なければ先頭へ
↑ / ↓ / ← / →グループ内の選択を移す(ブラウザ標準の操作)
Spaceフォーカス中の項目を選ぶ

アクセシビリティ

  • RadioGroup は fieldset と legend で、複数の Radio を 1 つのまとまりとして伝える。label が legend になる
  • error と errorMessage を渡すと、各 Radio に aria-invalid と aria-describedby が付き、メッセージが結ばれる
  • 同じ name を持つ Radio だけが 1 つのグループになる。RadioGroup の中でも各 Radio に同じ name を付ける
  • 初期値を選んでおくか、未選択のまま送信を許すかを決める。一度選ぶと未選択には戻せない

文言

  • 選択肢は互いに重ならない言葉にする。「その他」を置くなら最後
  • グループの label は「支払い方法」のように、何を選ぶかを名詞で書く

関連するコンポーネント