I am wondering if there are any known good ways to concisely convey to users that they must must choose at least one option.
- Check boxes convey that the user can select 0 or more items.
- Radio buttons convey the user can only choose exactly 1 item.
I could not find any existing convention to convey that the user MUST choose at least one option -- other than explicitly stating "Choose at least 1".
I have thought of 2 potential solutions but wanted to know what others think,and if they have any other solutions.
Option 1: Mix Radio Buttons and Check Boxes
- When zero items are selected show all un-checked radio buttons, indicating that the user MUST select an option (this option would only be for an initial state where a default selection CAN NOT be made for them).
- When one item is selected show the selected item as a checked radio button with the other options appearing as un-checked check boxes, (hopefully) indicating that the user CAN NOT un-check their current selection, but can select more options (the user is unable to un-check the radio button).
- When there are 2 or more selections all selected options become checked check boxes, and un-selected options become un-checked check boxes -- indicating that the user can deselect any option.
Option 2: Use Check Boxes and Errors
- Everything functions as check boxes
- Allow user to deselect ALL check boxes
- As soon as 0 check boxes are selected, show an error message and highlight the group (ex: changing the color to red, or draw a red box around it)
- NOTE: this option would probably be best if the user can see text ahead of time that tells them they must choose at least one.
Bonus Points -- for answers that answer the initial question and go above and beyond
- Bonus Points for also discussing how to best indicate this accessibly for users that don't use a visual interface (HTML)
- Bonus Points for discussing some of the other "complex" number of selections like "choose at least 2", "choose between 3 and 5", "choose at most 7", etc. (I will probably have to change the question title if people answer this). NOTE it looks like "0 or 1" is already covered here here and here.