Checkbox is a 20pt box, filled with the brand colour and a check when checked, or a dash when indeterminate. A tap anywhere on the row, label included, toggles it. See the web Checkbox for the same component in the browser.
Pass checked and update it in onToggle, which gets the next state.
Leave out checked and the checkbox keeps its own state, starting from defaultChecked.
indeterminate shows a dash, for a "select all" box when only some items are checked. Screen readers read it as mixed.
- The handler is onToggle(checked). There is no name, value or form submission.
- A checkbox without a label takes taps from 44pt around it. Give it ariaLabel so screen readers can name it.