I have a grid of ~20 checkboxes which users can utilize to select features. Typically, user might have ~15 features selected ~5 unselected for a co configuration.

Deselection of features which a user doesn't have is important for the overall use of application, because removing unnecessary features makes the application easier to use.

As a default configuration if a user doesn't change this setting the app behaves as if the user has all of the features.

Which of these scenarios is better?

Scenario A

  • The question is positive.
  • All checkboxes are checked as default.
  • If user doesn't have some feature he unchecks the checkbox.

Example A - Default state

Which of these features do you have?
[✔️] A [✔️] B [✔️] C [✔️] D [✔️] E
[✔️] F [✔️] G [✔️] H [✔️] I [✔️] J
[✔️] K [✔️] L [✔️] M [✔️] N [✔️] O
[✔️] P [✔️] Q [✔️] R [✔️] S [✔️] T

Example A - User has changed these settings

Which of these features do you have?
[✔️] A [ ] B [✔️] C [✔️] D [✔️] E
[ ] F [✔️] G [✔️] H [✔️] I [✔️] J
[✔️] K [✔️] L [ ] M [✔️] N [ ] O
[ ] P [✔️] Q [✔️] R [✔️] S [✔️] T

Scenario B

  • The question is negative.
  • All checkboxes are unchecked as default.
  • If user doesn't have some feature he checks the checkbox.

Example B - Default state

Which of these features don't you have?
[ ] A [ ] B [ ] C [ ] D [ ] E
[ ] F [ ] G [ ] H [ ] I [ ] J
[ ] K [ ] L [ ] M [ ] N [ ] O
[ ] P [ ] Q [ ] R [ ] S [ ] T

Example B - User has changed these settings

Which of these features don't you have?
[ ] A [✔️] B [ ] C [ ] D [ ] E
[✔️] F [ ] G [ ] H [ ] I [ ] J
[ ] K [ ] L [✔️] M [ ] N [✔️] O
[✔️] P [ ] Q [ ] R [ ] S [ ] T

Scenario C

  • Anything else?

Important note

I can't ask the user for the features he has because if he changes nothing the application has to behave as though he has all of the features. This behaviour can't be changed because of business logic (the customer requires it and doesn't accept any argument).

  • 3
    You are exactly right when you say "auto detecting the features a user has is best" so I don't understand why there is even an option to let the user input what they have if you can already tell without asking? – DaveAlger Apr 9 '15 at 11:57
  • 1
    @DaveAlger I don't understand your comment. I don't have any autodetection, what are you talking about? – Knut Holm Apr 9 '15 at 12:06
  • 2
    @DaveAlger I don't know it. Detection = user tells what features he has (by checkboxes). This is not an autodetection. – Knut Holm Apr 9 '15 at 12:13
  • 1
    Yeah the question confused me as well @tohster - the application ships with all features enabled but some users only use (have to use) a few of those features while other users require all but a few features. It sounds like the business decided to ship with all features enabled and is allowing users to manually select the features they actually use. Asking a user which features they have is misleading here since we already know that every user has every feature and they are all active by default. – DaveAlger Apr 9 '15 at 16:34
  • 2
    @tohster I'm sorry for this mistake, realy I am. But believe me, this is not about want to being unpolite but because of my poor English knowledge. Thank you for your correction. – Knut Holm Apr 9 '15 at 17:17

Scenario C (This is Scenario B with a slight twist)

  • No questions: Turn on/off features is used instead.

  • All checkboxes are unchecked as default.

    • If there are mandatory features that the user can't turn off, they shouldn't be included.
  • If user doesn't have a feature he checks the checkbox.

Example C - Default state.

Turn on/off features:

[□] A [□] B [□] C [□] D [□] E  
[□] F [□] G [□] H [□] I [□] J   
[□] K [□] L [□] M [□] N [□] O  
[□] P [□] Q [□] R [□] S [□] T

Example C - User turns on the features they want.

Turn on/off features:

[□] A [□] B [□] C [□] D [□] E  
[■] F [■] G [□] H [■] I [□] J   
[□] K [□] L [■] M [□] N [■] O  
[■] P [■] Q [□] R [□] S [□] T

I feel this is the least intrusive on the user and gives them the best user experience out of what was given. I wouldn't necessarily want all the features turned on. I'd rather turn on what I want, when I want.

  • 2
    This does not conform to specified requirements. – Taemyr Apr 10 '15 at 8:41
  • 2
    From OP: "As a default configuration if a user doesn't change this setting the app behaves as if the user has all of the features." – Taemyr Apr 10 '15 at 12:12
  • 1
    Scenario B includes all features except the ones he checks. - All checkboxes starts unchecked, and so the default is according to specs. – Taemyr Apr 10 '15 at 12:27
  • 1
    The logic would be the same, but the outcome reversed in that they'd have to check the features they want to turn off. – DA01 Apr 10 '15 at 18:55
  • 1
    Hence a difference Scenario, as was asked for. No reason for a downvote. Why can people not think outside the box here? It's simply another way to do Scenario B. – Code Maverick Apr 10 '15 at 18:57

Show the true state of your application

In your scenario it sounds like Scenario A - Example A is the way to go because it clearly indicates to the user which features are Active and allows them to turn off features that they aren't using. Instead of asking Which of these features do you have? simply show them what is active and allow them to turn some off...

active features

This wording is much more clear since you aren't really asking the person what they have but are simply telling them what is currently active and allowing them to edit it.

When truly asking someone what they have then nothing should be checked by default. Can you imagine going to the doctors and being asked the question -- "Which diseases don't you have?" -- it would be a horrific task trying to answer such a question. It is usually easier for people to recall what they have than determine what they don't have so do something similar to this...

Which of these features do you have?
[] Check all
[] A [] B [] C [] D [] E
[] F [] G [] H [] I [] J
[] K [] L [] M [] N [] O
[] P [] Q [] R [] S [] T

Allow them the option to select all and then uncheck a few if that helps them but don't check everything by default because that is overly presumptuous.

  • Yeah in this case the scenario B is must. – Siva-Dev-Wizard Apr 9 '15 at 11:54
  • @DaveAlger Yes I know but it is not possible becuase "However, the idea is that if user doesn't change this setting the app behaves as if user has all of the features." - it can't be changed because of business logic. – Knut Holm Apr 9 '15 at 12:00
  • 3
    Does the "this is overly presumptuous" apply even when you know that the average user will have 15 of 20 things enabled? – cpast Apr 9 '15 at 13:30
  • 1
    @cpast - even if the majority of users have everything I would still presume nothing and give them an easy way to Check all. – DaveAlger Apr 9 '15 at 15:58
  • 2
    I think everything should be checked by default as the application ships with all features on by default (if I understand correctly). Then you won't even have to bother about the if he changes nothing the application has to behave as though he has all of the features, as all features are still enabled. – AmazingDreams Apr 10 '15 at 13:26

A couple things about checkboxes

  1. The ✓ check mark is associated with positive indications. So using a checkmark to indicate negative option is OK but it creates more cognitive load for users.

  2. Whether or not you use a checkbox, asking users to affirm a negative creates more cognitive load. For example:

    enter image description here

With this in mind, look at your case. You have a lot of options you're asking users to process, which means it would be good to reduce cognitive friction.

Therefore, I would present all options checked and allow users to deselect. This respects the positive convention of the check mark, and also keeps the entire interaction in-the-positive, which simplifies cognition.

  • If deselection is important you can add a suggestion for users, e.g. Deselecting features you don't use will improve the app performance.

As an example, here is a Microsoft configuration dialog with a lot of checkboxes. Note that they try to keep the options positive:

enter image description here

  • 1
    I personally find this super annoying when web apps do this. It forces me to deselect many more features than if I were just selecting the features I wanted. I agree with your cognitive load for asking questions and asking users to decide what to do, but I would contend that defaulting to all features can be just as much of a cognitive load depending on what those features are and if you want them. – Code Maverick Apr 9 '15 at 19:32
  • 2
    @CodeMaverick I think it depends on the app. With this app and the OP's 15/5 ratio it probably makes sense to default to all. If that ratio were reversed it might be better to default to None. But for this case I guess the question is moot because the 'all' default is a hard constraint for the OP – tohster Apr 9 '15 at 19:38
  • I agree with you there on it depending on the app as well as the features, but I don't see the "all" default hard constraint. I see that a typical configuration involves almost all being checked, but not "all." – Code Maverick Apr 9 '15 at 19:42
  • @CodeMaverick it's in the question under 'important note'. I have to apologize here because i was editing the question on mobile to remove some terminology and the note got removed for some reason. I've rolled the edit back: "I can't ask the user for the features he has because if he changes nothing the application has to behave as though he has all of the features. This behaviour can't be changed because of business logic (the customer requires it and doesn't accept any argument)." – tohster Apr 9 '15 at 20:24
  • 1
    Ah no worries. I see. I still think my answer is the best way to go. As it goes away from "asking" the user anything. It allows the user to select what features they want. If they don't select anything, based on the constraint, there should be an error thrown. To me that's like giving someone "sa" privileges on a database so they can do everything. It's just a bad practice. You should go with the least privileges possible first. You understand where I'm coming from? – Code Maverick Apr 9 '15 at 20:53

I would go like this.

If the check boxes are between 1 and 15 (5 x 3), Will go with Scenario A (All are checked)

If it's more than 15, will go with Scenario B (All are unchecked)

Reason: It's easy for a user to grasp 10 check boxes and can uncheck easily without making a mistake.

In case of more than 15, the user can't grasp that many and the chances to make mistake by unchecking wrongly or leaving something checked is more.

Important: Also provide Check All and uncheck All options to the users.

  • I like this answer but it is different than the one above by DaveAlger. So, where is the truth? – Knut Holm Apr 9 '15 at 13:14
  • Actually. What DaveAlger told was for a specific case while the question is more generic – Siva-Dev-Wizard Apr 9 '15 at 15:49

Is it possible to group the features (checkboxes) in any way? From the description this is very similar to a survey or a registration form - information is given only once or rarely.

So I would go with questioning which feature do the user need (not have), decouple the options into feature groups as different roles need different feature sets, and leave the checkboxes empty, forcing the user to actively request a feature which is necessary.

The problem with asking a negative question and give reassuring cues (checkboxes, which means OK, done, exists) is it's confusing. If you must go with B, then turn the checkboxes into something which means absence, preferably an X, or strike the text, turn it grey, etc.

  • Thank you but no, it is not possible to group the features. This isn't a survey either a registration form and it will be filled in quite often. In addition, features are defined by customer's administrator. The feature is a property which defines a subject in some way and every user (= subject) has to provide features (= properties) which he realy has to application. – Knut Holm Apr 9 '15 at 13:06
  • 1
    Agreed. Stay away from Scenario B, the negative one, at all costs, in every project you work on, forever and ever, amen. Checkmarks indicate that something is active/on. Scenario B requires the user to think of checkmarks as inactive/off. That's confusing and requires the user to think about their task more than they should. – Ken Mohnkern Apr 9 '15 at 13:25
  • An "X" in a checkbox isn't enough to indicate negativeness, since that's a fairly common indicator of a checked box in general (positive or negative). – cpast Apr 9 '15 at 13:31
  • @cpast sure, but we're talking about a solution which suck less. :) I mean I wouldn't go with B at all. It seems to me the whole process needs refining to avoid putting this kind of burden on a user to answer this real world problem. If we speak about a plain analytical hypothesis wheter it's A or B I'd suggest just put this in front of some testers and measure reactions and accuracy. – pingween Apr 9 '15 at 14:52

The best solution: Don't give the user any options

Look, let's face it: We're halfway through 2015. Users these days have been subjected to so many pointless options ("Install this program to the default directory?") that they no longer read the options that they pick. You should pick whatever option you think most users want, and then take the choice out of their hands.

If you insist on giving the user some checkboxes to play around with, there's one way to do so without them causing too much damage.

The placebo effect

Even though your users don't actually care about the options, they still want to feel like they're in control. They want to control the software, not the other way around.

Give them some checkboxes that don't actually do anything. They'll mindlessly click the ones that sound good and will (incorrectly) assume that their choice mattered.

enter image description here

After they submit the form, be sure to provide them with some kind of positive feedback. You need to hammer home the idea that they actually changed something.

enter image description here

They probably won't remember what the options were after about 10 minutes or so anyway. If they do, they'll erronously assume that they checked the wrong option, which will cause them to pay closer attention in the future. That's a good thing, because it allows you to get by with a less intuitive interface later on.

  • 5
    Are you serious or are you joking? – Knut Holm Apr 9 '15 at 21:37
  • 2
    Yes, I most certainly am. – Google engineer Apr 10 '15 at 5:36
  • 2
    The saddest thing is that most of this statement is often true. – jazzgot Apr 10 '15 at 8:23
  • 1
    It's a ridiculous answer with a lot of truth in it. I think the serious take-away from this answer is "Really think about the options and cull it down to the absolute minimum of options whenever possible...and then pick the defaults for them." – DA01 Apr 10 '15 at 15:48
  • 2
    Of course they are serious. OP is a google engineer. How many checkboxes do you see on www.google.com? – Federico Poloni Apr 10 '15 at 18:05

Keep in mind the context...

Adding to the other answers: You should have the context in mind...

If your form/checkboxes are somehow related with security purposes (give authorization) you probably want people to check boxes instead uncheck them. You want to be sure that the authorizations given are conscientious and not just by default.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.