This scenario is better reproduced on a wiki with a fair amount of data, where search results would not return instantaneously. For example, I reproduced it on a wiki with ~8000 pages.
- using the search page - not the quick search, search for a string that would return many results (for example *)
- this will reload the page, so there is no issue at this point yet
- when the search results are loaded, open the facets
- choose a facet that has many results
- click the checkbox next to that facet
- at this point, technically, a reload of the search results will be launched in order to apply that filter
- assume, at this point, a long reload of results (a couple of tenth of seconds)
- even if the search with the new filter was successfully launched and results will load, there is nothing on the UI that changes to tell to the user that his action (change of filter) was correctly taken into account.
- when the loading is done, there is no indication for the user that what they're seeing is the results with the new filter - if they didn't pay attention to the page, they don't see that something has changed
- depending on how the facet is selected (clicking on the box itself or on the value of the facet), the checkbox of the facet may not appear as checked either at this point, even if a loading of results with that facet is ongoing
- there should be some form of visual feedback letting the user know that their filter was taken into account and that new results are being loaded.
- showing an indicator on the screen that 'something is loading' also brings the benefit of allowing the user to know that the loading is 'done', i.e. that they're looking at the latest results, that nothing is still pending.
However, I guess it's reasonable to put the following conditions for this visual feedback:
- it should not prevent using the the search results area - viewing and clicking in it. E.g. replacing the search results area with a spinner would not work because it would not satisfy this constraint.
- it should not prevent viewing and using the facets area
- today, a reload is launched on each click in the facets, even if the intention of the user is to select multiple values for a facet. If this behaviour for the facets is preserved, the solution chosen for the visual feedback should not force the user to wait for the results of one facet value to load before selecting the second one.
Note: this need also applies when the communication between the browser and server is a little slow because of network issues, for example, not only when there are too many results.