openculinary / frontend

The RecipeRadar Frontend is a recipe search and meal planning application
GNU Affero General Public License v3.0
13 stars 2 forks source link

Usability issue: filter-by-domain is impractical with more than a certain number of domains #219

Closed jayaddison closed 1 year ago

jayaddison commented 1 year ago

Is your feature request related to a problem? Please describe. It's tricky to put a precise upper-bound on the problem here, and it affects navigation on desktop and mobile slightly differently.

On mobile, with a large number of domain icons presented above recipe search results, the results themselves may be obscured from view and require a page-or-more worth of scrolling to reach.

On desktop, although the list of domains will typically fit onto the page just fine, and recipe search results will still appear 'above the fold' in display viewport terms, it's impractical from a functionality perspective to filter specific domains on-and-off in a large list-- even finding them in a list of more than, say, 10 items can take a few moments.

Describe the solution you'd like We should configure an upper-bound on the number of domains to display in the domain filter list. If the number of domains returned by a recipe search exceeds the limit, we shouldn't display the filtering options.

Describe alternatives you've considered Providing an 'expand' button that would allow some domains to appear, but also providing a way for the user to explore further to see the full list and make adjustments as necessary.

This would have even worse usability properties on mobile, I expect -- because not only would the list only be partially visible much of the time, it'd also require a lot of repetitive open-find-select-close user interactions in order to achieve a (likely rarely required) successful filter.

jayaddison commented 1 year ago

Let's begin with 10 as the threshold for the maximum number of website domains to display. If the recipe search results facets.length is greater than that, let's not display the website domain filtering option.