See T281186 for previous review of different implementations.
Wikimedia Design Style Guide links:
I would recommend we stick with the WVUI approach for Radio and Checkbox for a few reasons:
- They require the use of v-model on the end-user side, a standard Vue pattern I would like to encourage for many form elements
- They use a compasable that wraps v-model values so they can be reused on an input that's not at the root of the template
- They wrap the input in a label, which gives us a11y features for free