The options are named by their text. The group has no name of its own, so a reader hearing “Standard, radio button, 2 of 4” does not know 2 of 4 what.
- In a form, the field label does the job. Put the group in a Form.Item with a label, and the question above the options is the group's name.
- Outside a form, aria-label or aria-labelledby on the group works, since aria-* and data-* props land on the div with role="radiogroup". Point aria-labelledby at the heading that already asks the question rather than writing the question twice.
- An option's title is not its name. It lands on the label as a browser tooltip: it does not survive touch, and it is not what the option gets announced as. Put the words in the option.
- Keep the option words parallel and short. They are read one at a time and out of context, so “Standard / Express / Overnight” carries where “Standard / Get it faster / Tomorrow before noon” does not.
- An option built from options with a node label is named by that node's text. Anything the label paints without text (a swatch, a bare glyph) contributes nothing, so keep a word in there.