4

I have various list pages where I want to provide a drop down filter.

Is there a general rule for whether the drop down filter should contain all values or only the values that will actually return a result?

For example for a list of users, I might want to filter the list of users by their user permissions. Where the system only contains 'Full Admin' users, should the drop down filter contain:

  • 'Full Admin'

OR

  • 'Full Admin'
  • 'Read Only'

Selecting 'Read Only' would return no results, but would it be confusing if the option wasn't there to select?

2

(1) Always show all the options to not confuse the users. If a user is aware of the read only permission group he or she might think that the group has been removed by the programmers. If the users are not aware of the option they get a wrong picture of the (usually) available options. Worst case is that the dropdown shows only one value (Full admin in your example), which results in an useless filter then and the user won't use it in the future anymore.

(2a) Disable the selection of the dropdown option and explain it. This has several benefits, such as showing the actual state of the application, keeping the consistency, not confusing the users as described above and saving time and bandwidth. Make sure that the user understands why this option is disabled (see mockup below).

mockup

download bmml source – Wireframes created with Balsamiq Mockups

(2b) Only show a hint that the selection of the dropdown value does return no results. If the selection of filter values modifies an URL you probably would not want to disable any options as the users might want to share or bookmark their selection. In this case it is even worse to not show all values as it confuses a visitor following such an URL with the filter values selected that (currently) return no results.


When to remove such options

After having a look at how some of my daily used applications handle this, I came across an example where the list of options should definitely be filtered from options that return no search results: GitHub language filter (not implemented as dropdown but still suitable as example).
This probably is always an option if it is obvious to the user that some filtering on the dropdown options took place and if the user knows that the filter options depend on the current search.

  • It's a good solution, however if certain selection won't return any results, why make it selectable? I would list those selection as disabled (washed-out) in the drop down box. – Mike Apr 11 '17 at 12:52
  • This is described in 2b (an alternative to 2a), in case the filter values are represented in an URL. If at any other time the selection could return search results you might want to select the option which currently does not return any result just to get an updated URL that can be shared or saved for later uses. In addition, if today I select an option that is enabled and share the URL with you and you visit my shared link when there is no search result for that filter value, what would the dropdown show to you? – Marvin Apr 11 '17 at 12:57
  • I see that now. I focused on the picture instead of on the text. – Mike Apr 11 '17 at 13:02
  • 1
    +1 It is a very good solution. It is not universal, though, I can feel there would be some cases when it would be better to disable some options. But in general yes, this is exactly how it its. Going further, and of course: should it not cause technological problems, an information could be provided near every option in the dropdown, e.g. All results (56), Full (42), Read only (14), Special (0) etc. – Dominik Oslizlo Apr 11 '17 at 13:08
  • 1
    @DominikOslizlo I agree with you; that could further improve the dropdown. I would also say that there are cases where you definitely shoud remove such options (I've updated my answer). – Marvin Apr 11 '17 at 13:25

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.