Is a default radio button necessary?

I recall reading somewhere that all radio button groups should have a default selected button. Is this the correct way to do things?

The reason I am asking is I have a form for an accommodation listing site and there are quite a few sets of radio buttons asking the accommodation owner for information about their hotel. If I have a default value set, then if the person filling in the form accidentally misses this form element, the default value will be saved to the database.

By having no radio button chosen, the user is forced to choose one of the buttons otherwise the client side form validation will alert them!

I would appreciate the opinion of the experts on the best approach here.

The following is an example of one of my radio button groupings

<legend>Internet Access</legend>
<input id="internetAccess1" name="internetAccess"
class="radio" type="radio" value="1" />
<label for="internetAccess1">None</label>

<input id="internetAccess2" name="internetAccess"
class="radio" type="radio" value="2" />
<label for="internetAccess2">Available in lobby</label>

<input id="internetAccess3" name="internetAccess"
class="radio" type="radio" value="3" />
<label for="internetAccess3">Available in all rooms</label>


A default radiobutton is not necessary from a technical point of view, but it is a good idea to have one. If you don’t have a default, at least make sure that there is an applicable option for every user.

For example, it would be acceptable to only have a ‘male’ and ‘female’ option when asking the user for their gender. Asking about whether a user prefers Kosher meals, however, you would need more than a ‘yes’ and ‘no’ option, since you can’t assume that everyone knows what Kosher means or that they have an oppinion on the matter.

Thanks for the reply. Yeah I just googled it again and found a usability page saying the following:

Always offer a default selection for radio button lists. By definition, radio buttons always have exactly one option selected, and you therefore shouldn’t display them without a default selection.

I do appreciate that the very nature of radio buttons is that there is always one selected - just seems to be a flaw that the form will submit without the user having to confirm their choice.

just seems to be a flaw that the form will submit without the user having to confirm their choice.

I don’t see that as being any different than leaving a checkbox with its default value.

A radio button group represents a ‘one of many’ selection, just like a single-select list box or drop-down. That’s why it’s definitely a good idea, from a usability point of view, to always have exactly one radio button selected.

If you need to make sure the user makes an active choice, you could let the pre-selected choice be ‘Not specified’ or similar. That’s analogous to have an empty or a ‘–Select one–’ first element in a drop-down.

Not having a pre-selected choice is a bit weird, since you then have a state to which the user cannot go back. Once he has made a choice, he can’t undo it.

This will always depend on the question being asked, but since you seem to state that this is a required field, I would make the most common answer the default. If the person is missing the form element, you may need to work on some visual design to have each form element stand out or clearly separated - watching people fill this out will probably give you an idea on what is needed.

You may want to make the form element you are showing a checkbox - I’ve been to a few hotels that have Internet access available in the lobby AND all rooms.

If you set up a hidden field with the same name as the radio buttons and have that precede the buttons then that will be the default selection if they don’t choose one. By making that an obvious value it then becomes much easier to test if they selected a proper answer or left it as the default without having to check if the field was even passed from the form.

I think your case is one where the rule of thumb doesn’t necessarily apply. With a large number of radio sets there is a chance the user could inadvertently miss one, so I think it’s reasonable to leave them blank to begin with. As Autistic Cuckoo said that does create a state they can’t go back to, but that seems to be inline with your business logic where a non-decision is not valid.

Thanks for the example , It bring me a new idea for my site!

Hmm, I kinda like felgall’s idea. Mostly because it’s hidden.

If you need to make sure the user makes an active choice, you could let the pre-selected choice be ‘Not specified’ or similar.

Knowing our customers, they’re going to get confused because first there’s a radio button called “unspecified” and then they’ll wonder why anyone would ever select it, esp if they leave it as such (thinking it means not required) and getting a server validation error. Then they’ll call and ask why we ask such strange questions with options available that aren’t valid.

I would not want someone to be labelled as “male” because that was the default and they missed the question. I’d rather they explicitly choose one (and these are questions where they’d better have a pretty strong opinion like sex… even if you’re a hemaphrodite you end up choosing a sex at the very least for forms). I was explicitly NOT setting selected radio buttons for that reason. If neither is picked, the validator in the back end can see it as “unanswered” and can bug the user to double check.

For forms where someone had to accept the conditions, we went with a single checkbox saying “I agree” so, not checked, form does not go through. We were advised by lawyers to force the user to explicitly say they agreed, instead of radio buttons with yes/no. Somehow explicit user action made a legal difference. This wouldn’t work for either-or’s like sex, because someone somewhere will select both of them (lawlz).

We were forced to have a few selects with options like
<option value=" ">----</option> as the first option simply because people were skipping them (they needed to set monetary values in those). If we could get feedback from users maybe we could find out the reason why they are skipping them, but for now we have to hack it.

Not having a pre-selected choice is a bit weird, since you then have a state to which the user cannot go back. Once he has made a choice, he can’t undo it.

Unless there’s a reset button. That would set the form back to its default values-- does that also go for selections (selected=“selected”)?

I disagree with going outside best practices in this matter. If you need an option that holds no value, to validate against, then a select menu is a much better choice. The gender choice is a good example. A “no choice” radio is a much less desireable solution. There is nothing wrong with having a <option value=“”>Select One</option> position in your dropdown.

IMO this is about using the right tool for the right job. If you are not going to let the user get past submission without some sort of choice, but you don’t want a false choice imposed on the user, then a radio button isn’t the right tool.

You should always have a default radio button, even if its’ value relates to “nothing selected” for one simple reason.

Once you select a radio button from a group, you’re stuck with that choice and in order to unselect it after an accidental selection, you have to start over.
There’s probably at least one browser that will unselect a radio button via CTRL+CLICK, but having that “None” option is much more intuitive than a message explaining the CTRL+CLICK method.

If you’re worried about them accidently missing one, maybe a following summary page would be helpful? To display their choices and give them the option to change some selections if necessary.

I can’t speak for everyone, but I know when I accidently click a button or something more times than not I immediately look for a way to rectivy the situation. I would probably end up reloading the page to start over, or just closing it and leaving, before I thought about correcting accidents on a summary page.

Once you select a radio button from a group, you’re stuck with that choice and in order to unselect it after an accidental selection, you have to start over.

If these are questions like sex or yes-no questions, I don’t see why someone would need to “undo” the question. If you accidentally chose female but you’re male, you don’t “undo” it, you select the other one.

If these are questions that one should only answer if they said “yes” to something else, drop downs might make more sense, with the first option as “no” (this makes them selected in our forms, which is why I wouldn’t want them for things like sex unless we had a “select one” option as Hammer mentioned above).

I suppose how you’ve configured the back end matters a lot in how this should work. For instance if someone with one of our insurance forms for scooters picks “Casco” (full/total coverage) then the user MUST answer two more questions. While they are indeed hidden with Javascript, those like me don’t have it on and will see those questions anyway. If someone first said “Casco” by accident, then changing the answer back to one of the other two types of insurance not only makes those extra questions hidden again, but also even with JS off, answering them doesn’t matter-- their inputs are ignored if the “parent” question isn’t “Casco”. That way, someone could first accidentally make the wrong choice, and if they answered the child questions, and then changed their mind, it doesn’t matter that they have clicked one of the radio’s-- they’re ignored.

Of course, a user who doesn’t know that and worries about it… I’m thinking the overall design of the form, front-end and back-end here is very important. Everything really should be both intuitive to the user and as self-explanatory as possible. Which my forms likely aren’t : )

We do have a “results” page which shows back everything the user has chosen or typed in. They can use the back button to revisit the form, make a change, and resend-- in fact this is encouraged as it’s usually getting a quote. A lot of people like to change the inputs to see how it affects their premiums. They can go back and forth as they please. After deciding they want to go through with insurance, they have to fill in more information and pay (or tell us how they’ll pay). After hitting submit, again they get a “results” page, telling them Check What You’ve Filled In, and again the amount. Again, they can hit the back button and change anything they want.
It’s only after they’ve agreed to everything and filled everything in and checked it all that they reach the point of no return-- so the last page, thanking them, also has a link to all the ways to reach us, in case there was a problem or a question, so they can talk to a human if they need to.

Not sure that makes up for any craziness in how the form is written though.

its better u have a default radio button. doesnt take as much effort as u think. just have a go!

That’s exactly what I was thinking. Questions where everyone should answer something, leaving it blank should not be an option, but where it wouldn’t be appropriate to offer a default selection.

If it would be OK for people to leave the question blank and you’re using radio buttons, you should have an option for “blank”, otherwise if people click on it by accident, there’s no way for them to remove that selection without wiping the form and starting again.

I don’t understand why there should be a default radio button option. There is no need for it.

Having the two(or three for that matter) radio button options with nothing pre-selected is the way forward. If people don’t make a choice, have both JavaScript and backend validation to tell people that they must make a selection.

Is it good that people submit the form with the default option on without noticing it? Absolutey not. The form gets submitted regardless because the radio button have an option checked. It is worth noting that the pre-selected option is not what the user wanted. In fact, they did not notice. And the validation let it pass. You see what I mean? Usability-wise, it is not a good idea.

Behind radio button’s this behavior there is a logic…
It is not obvious that you have a default value in all the case…
But in this case you have to do a lots at programming end that if there is not any selected then what goes in the database…

The radio button’s behavior of selecting only “one to many” is due to its same name or ID attribute if you chose it different then it act like check box too…
And if you use check box with the same name and ID attribute then it acts like radio button too, then in this case you didn’t need to have a default value but you must have check at programming end that what is gona passed to database when there is not any option is selected…

I hope you understand…

Then you probably don’t quite understand radio buttons.

That depends on the form, of course, but generally it’s not desirable. But the solution is not to have an ‘undefined’ state for a radio button group, casting aside a well-established user interface metaphor.

You can mark the pre-selected choice as ‘Unselected’ and test for that in your validation code, just as well as you can test for the ‘undefined’ state.

You can also use a list instead of a radio button group, with an empty or ‘Please select’ default option.

Usability-wise it’s still better than having an ‘undefined’ state for the radio button group, which I doubt many users have encountered in a non-web based UI.