Should the UI show all courses [Chemistry 101, English 142, Anthropology 256, Biology 128, Geology 308] or an empty set [ ]? Which is more accurate and will make more sense to the average user?
The honest answer is -- it depends -- on the initial state of the checkboxes when the page is loaded.
We have 2 scenarios:
Scenario A:
On page load: Nothing is checked; all results are displayed;
All results are already displayed even when all the checkboxes are unchecked. Any checkbox selected will filter for that specific semester. As soon as the first checkbox is selected, your result set will drastically reduce to that match that selection alone. As the user checks more and more checkboxes, the result set gradually expands, until finally all boxes are checked, and therefore, all results are displayed. Note here:
- The checkboxes represent
"filtration"
.
Select All
activates all filters and therefore brings all matches, which equates to the full result set.
Deselect All
removes all filtering, and therefore leaves behind the unfiltered result set, which also equates to the full result set.
- So, performing either
Deselect All
or Select All
will lead to the same output -- ALL RESULTS
.
Here's a real world example:
All flights are displayed by default, and the option to filter by Departure Time
is available:

When filtered, only matching flights are displayed:

When filtered for all, all matching flights are displayed, which is the same as all flights:

Scenario B:
On page load: all checkboxes are checked; all courses are displayed;
If the page is initially loaded with all checkboxes checked, your results should show all matches. As the checkboxes are unchecked, one by one, the result set will start to diminish, until finally, you are left with no checkboxes checked, and therefore, an empty result set. This is the most natural progression to a user, who understands that their actions caused all results to disappear. Perhaps your result screen can print a message like Pick a semester to see available courses
. to make the next action clearer.
Note here:
- The checkboxes represent
"segmentation"
.
Select All
activates all segments and therefore shows results from all.
Deselect All
activates no segment, and hence there are no results.
- Performing
Deselect All
and Select All
will lead to the opposite outputs.
Here's the same flight example with a different ideology:
All flight operators are included by default, and the option to remove selected Airlines
is available:

When filtered, only matching flights are displayed:

When no operators are selected, the system alerts for a selection:

And yes, it is possible to mix the two kinds of filter ideologies, as long as they have clearly defined behaviours as detailed above.
On ClearTrip, a website for booking flights, you can see both types of filters present simultaneously side-by-side.

This is a summary of the points covered:
