Checkbox Group
A field whose value is a set: a legend, one checkbox per choice, and an optional hint and error. Every checkbox posts under the group's name, so two checked choices send the name twice.
Examples
Legend and choices
The group is named by a legend rather than a label with a `for` — a `for` needs one control to point at, and a group has one per choice. Each choice's id comes from its index, so a value carrying spaces or punctuation is still a valid id.
Holding a set
`checked` marks the current values. A stored value the group does not offer adds no control: inventing one would let a value the contract no longer has ride back out through the form.
Rejected, with the reason
The message hangs off the fieldset and is announced once, not once per choice — `aria-invalid` is not valid on a fieldset and repeating it on every control would say the same thing three times. The left rule is always present and only changes colour, so nothing shifts.