Recently while filling out a bank form online, I had the option to receive emailed statements rather than dead trees in the mail. The checkbox looked like this:
Receive email statements
I preferred the dead trees, so I left the box unchecked and clicked “submit.” The page came back with an error and pointed out that checkbox actually looked like this:
Receive email statements *
Of course, I wasn’t being given the option to receive emailed statements, but rather the bank needed me to acknowledge that I would receive emailed statements, despite my preference.
It doesn’t make sense when you think about it. A checkbox field is always a required field, whether or not it has a little red asterisk. It only returns true or false; it can’t return null. It doesn’t make sense to give the user an error saying they didn’t give an answer for the checkbox, because not checking it is an answer.
My grievance is not that the bank was forcing me into emailed statements (though I am miffed about it). Rather, it annoys me that requiredness is not consistent among field types. Making any other kind of field required means that the user must give some answer. Making a checkbox required means that the user must give a particular answer.
I realize that using a checkbox is the normal way for a user to agree to some stipulation, but usually there’s an explanation such as, “Please indicate that you have read our terms and conditions by checking the box.” In this example, the box was mixed in with other input fields, and I don’t think that the red asterisk was sufficient to replace that instruction.
It would be great if browsers were more consistent about what required input means. In the meantime, if you must use a “required” checkbox, don’t expect your users to understand that from a red asterisk alone.