OOjs UI should have a CheckboxMultiselectWidget (and CheckboxMultiselectInputWidget), which is a single field with a number of selectable checkboxes.
Implementation should probably be generally inspired by:
- CapsuleMultiselectWidget for the Multiselect part. Note that CapsuleMultiselectWidget also allows for inputting and selecting arbitrary values, which will be impossible with CheckboxMultiselectWidget. (T108489 is probably good to do first, but might not be a blocker.)
- RadioSelectWidget for the styles and DOM layout and such. Note how labels are laid out.
- RadioSelectInputWidget for the InputWidget part. (Especially the PHP version, which uses multiple inputs, like CheckboxMultiselectInputWidget will have to. The JS version might do the same, or maybe use <select multiple>.)