How to build an accessible Radio in React

Each Radio is a native <input type="radio"> wrapped in a <label>, and RadioGroup applies role="radiogroup" with a shared name so the browser provides roving arrow-key navigation, single-selection, and label association for free.

When to use a Radio

When not to use it

Keyboard interactions

Role radio, verified at WCAG 2.2-AA.

Common mistakes

Avoid: Multiple <Checkbox> where only one may be selected

Prefer: <RadioGroup name="plan"><Radio value="pro" label="Pro" /><Radio value="team" label="Team" /></RadioGroup>

Checkboxes imply multi-select; a radio group communicates and enforces single-choice semantics to assistive tech

Example

<RadioGroup name="plan" defaultValue="pro"><Radio value="pro" label="Pro" /><Radio value="team" label="Team" /></RadioGroup>

See the full Radio reference →