Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

13
  • 40
    @Bananenaffe Even if the question is not mandatory, it depends on how you want to treat the negative. With a single check box, you combine the "I have answered the question, and the answer is no" response with the "I have not answered this question" response into a single observable (no check in the box). While that may be fine in some cases, in others you do want to be able to separate out an active "no" from a passive "no answer", especially if the question is not mandatory. Commented Mar 1, 2019 at 16:22
  • 2
    @wscourge – Note: While the answer may solve the problem in your specific website, it should not be applied as an universal principle for all future work. There is more than the above single factor to consider when deciding between check boxes and radio buttons even in case of simple yes/no answers. Commented Mar 3, 2019 at 9:06
  • 36
    [ ] Male (leave unchecked if female) Commented Mar 3, 2019 at 18:50
  • 21
    I'd like to make a suggestion here that if your initial state is neither yes nor no, then the radio button should have three visible states, e.g. Not answered yet (•) Yes ( ) No ( ). With only two options, the user may click "yes", then think "ooh, actually I'm not sure", and there's no way for them to restore the "neither option is selected" state; so the validation of "user has positively affirmed this choice" is lost. Commented Mar 4, 2019 at 13:41
  • 4
    @Clonkex I'm not a fan of that either, because it's non-standard, and therefore surprising to users; and it relies on fragile scripts to capture the user's interaction with the control. A group of radio buttons is trivial to implement, supported everywhere, and users will know at a glance how it's going to behave. Commented Mar 5, 2019 at 9:40