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).