Closed fcoveram closed 1 year ago
cc @WordPress/gutenberg-design, @WordPress/openverse
.github/subscribe-to-label.json
configuration file.
[Learn more.](https://github.com/bytecodealliance/subscribe-to-label-action)
Some accessibility notes from reviewing the accessibility of the search results page:
1) If content type filters are applied, the count of results is visible in the search field, but it was very difficult to retrieve that information in a screen reader. The process to find the number of search results is:
- Tab forward to the 'Content type filters'.
- Arrow up to find the number of results.
This is only findable if you already know it's there. It's not findable using the down arrow because arrow interactions are taken over by the application when the search UX elements are active.
Recommendation: add the number of search results to the page
2) The licensing for a given item is presented as icons visible on hover/focus. This information is not read to screen readers. Those SVG icons should have accessible names so screen readers get equivalent information to sighted users.
3) Results are presented in divs, so there's no semantic count available of list position. This is particular important when loading more results, because there's no mechanism for finding any particular position in the results collection.
4) Load more results button doesn't provide audible feedback to screen readers that new results have loaded. With this model, where focus stays on the load more button, there should be an audible notification e.g. "[number] results loaded above." It would be more helpful if there was a navigation tool to quickly jump to the first new item or if new items loaded below the button. Right now, a screen reader user must navigate through all items twice (reversing 20 steps, then forward 20 steps) to view all items and then load another set.
5) External sources: opening in a new tab is not indicated audibly. There is a visible icon, but not accessible text label.
6) Scroll to top only changes visual scroll position and does not move focus.
7) Scroll to top does not have a visible focus state.
Thank you for your detailed comment, @joedolson !
I'd like to comment on the state of the identified problems.
Point 1. I think we need to open a new issue for your first point, the accessibility of the search results count (title and h1). That problem was identified before in a larger accessibility issue (#448), and will probably require some design changes. Point 2, accessibility of SVG license icons - will open an issue for that. Point 3, the semantic count in the list, should be solved by #1979 that was deployed yesterday. Point 4, the Load more button, is on our to-do list. #2101 is the issue for it. Point 5, indication of the page opening a new tab. We have an issue for it: #496, and even had a really good community PR. However, there were problems with it adding unnecessary spacing to the links, so we could not merge it at the time. I'll prioritize it after the Core UI improvements project is finished. Points 6 and 7: I will open issues for the scroll to top problems.
This looks nice and elegant. It seems like an excellent way to introduce this feature without too many changes.
I have three questions related to the overall flow:
Really excited for these views! I have several comments:
I think we should adjust the wording. "Results" seems to imply that those are the "search results". However, we are not searching here, but are displaying all items within the selected category. Is there a better word for these collections?
For the tag pages, I would expect to see the tags that look like tags instead of headings. However, I looked at other sites, and they do not look like tags either. I realized that I'm more used to seeing several tags as a way of filtering results, for example, on ecommerce sites, and we only display results for a single selected tag. So, I'm undecided whether I'd prefer the tag to look like a tag or not :)
What about providers that have several media types, such as Wikimedia and Europeana? Internally, we use separate names for them such as wikimedia_image
and wikimedia_audio
, but would the users expect to see both media types when they click on Wikimedia?
These look great, I'm so excited for these!
Presently the only restriction on our character name is that it can be no longer than 2000 character, meaning it can have any number of spaces in it. For example, we have creators like I named my technique CONTEXTING and Department of Visual Arts, Western University (we even have some with 'in' in it, like Michael in San Diego, California and this absurdly long creator name I stumbled upon 😅). That said, maybe it might make sense to visually distinguish the creator name from the provider in some way? Perhaps @zackkrida's suggestion about linking to the creator might be enough!
@fcoveram a thought I had for your consideration:
Should these views live in a modal, once implement modals for single results? Since they are not filterable or searchable, putting them in a modal over could be a way to indicate to users that they are scoped views and not the full Openverse search experience.
Coming back here to share a new version based on all feedback shared. Thanks for all your fruitful thoughts, and thanks @obulat for addressing the a11y points shared by @joedolson.
Before describing the changes and replying to comments, here is the new idea (i2).
Note: Some content displayed in the videos attached below are inconsistent as they were made for mockup and prototype purposes.
xl
flowhttps://github.com/WordPress/openverse/assets/895819/f9b027be-d010-4257-ba1d-b1148dcc625b
xs
flowhttps://github.com/WordPress/openverse/assets/895819/ff14a4e7-ca71-4657-a2a6-1ee36b901a0a
xl |
xs |
|
---|---|---|
Single result page. Image | ||
Single result page. Audio | ||
Creator content | ||
Source content | ||
Tag results |
In this new version there are four main changes:
For the creator's long labels pointed out by @AetherUnbound, I think we can do something like the following.
To @zackkrida's points
Is it clear enough to users that they are in a "special" scoped view of Openverse, not the standard search flow?
Based on the UX flow where first step is from the single result page, I would say yes. The page is intentionally similar to keep the search result essence. Nonetheless, I reinforce the page variant with an icon
What is the best way for users to return to the standard search flow? Just the homepage link?
For this release, we decided to keep the browsing simple and not provide search settings. That being said, the way to start a search is by going back to the homepage.
Should these views live in a modal, once implement modals for single results? Since they are not filterable or searchable, putting them in a modal over could be a way to indicate to users that they are scoped views and not the full Openverse search experience.
This view does behave like filtered results, it just this first release where we decided to restrict the header from searching. But in the future, we can include more tools to allow users filtering from the search bar directly. I have some ideas for this that are in line with what Lightroom does (image attached).
Because of the above, keeping the modal layout for content details and the white results grid for search results would keep the browsing simple.
To @obulat’s points
I think we should adjust the wording. "Results" seems to imply that those are the "search results". However, we are not searching here.
I think it makes sense to keep “results” for tag views, but I agree could sound odd for Source and Creator. For the latter, I replaced it with “content”. This copy improvement is open to suggestions.
What about providers that have several media types, such as Wikimedia and Europeana?
Perhaps it wasn’t fully clear in the Project Proposal. The document describes the feature as “Results page shows the creator’s name and the source where the content comes from.” In that vein, and following the Wikimedia example, if the single result page is an image, then the results should be images only.
Thanks @AetherUnbound for the input. It took me a while to figure out how to solve it, but it was nice having it now to stress out the interaction idea.
I think it makes sense to keep “results” for tag views, but I agree could sound odd for Source and Creator. For the latter, I replaced it with “content”. This copy improvement is open to suggestions.
Just my 2¢ (and this is totally a nit, only sharing because you asked!), "Works provided by this source" or "Works by this creator" sounds more natural than "Source content" and "Creator content" . Our about page uses both in similar places, so "Content provided by this source" etc would also be an improvement.
"Results tagged with
In that vein, and following the Wikimedia example, if the single result page is an image, then the results should be images only.
In light of that, rather than "works" or "content", the specific media type would be clearer: "Images provided by this source" etc. Would tags include mixed media or also be restricted to the content type of the result page they were clicked from? If restricted, then "Images tagged with
I also want to say again how excited I am about this feature :slightly_smiling_face:. It's one I've felt we should have for as long as I've worked on the project.
Oh, another thing from the technical side: "Images tagged with" or any "tagged with" could be read (in fact, I would read it this way) as an exact match on the tag, but that's not how we query them. The tags view might indeed need API work to change it to query the tags.name.raw
field if we want it to be a true "exact" match. We probably want some kind of stemming though. It'd be weird to show tags for "bird" exactly and not include works tagged "birds".
Oh, another thing from the technical side: "Images tagged with" or any "tagged with" could be read (in fact, I would read it this way) as an exact match on the tag, but that's not how we query them. The tags view might indeed need API work to change it to query the
tags.name.raw
field if we want it to be a true "exact" match. We probably want some kind of stemming though. It'd be weird to show tags for "bird" exactly and not include works tagged "birds".
This is an interesting point. At first, I was thinking that we should only include the exact match. Because that's what I expect, for example, from an ecommerce site. However, our tags are different in that they do not describe mutually exclusive categories (such as "dress" and "shoes", for instance), so I do agree that we can use stemming. So, if the user clicks on a "bird" tag, they would get all images tagged "bird", "birds" and "birding". Which should be Okay, but the text "images tagged with bird" would be a bit misleading. One thing I wonder about tag stemming is whether we stem the query, too. If the user searches for "birds", do we return only images tagged "birds"? Or do we stem the query to the singular "bird" and return items tagged "bird", "birds" and "birding"?
One thing I wonder about tag stemming is whether we stem the query
Query strings are subject to text analysis @obulat, and are therefore stemmed as well, yes:
The query string is processed using the same analyzer that was applied to the field during indexing.
Even if part of the query is quoted, this only enables the PHRASE
option of ES's query string parsing (see PHRASE
here, which we have enabled through the default of ALL
). Components of the phrase are still stemmed and searched for in sequence (as far as I understand how the phrase feature works).
My initial thinking is that stemming will be okay here. While they're currently tag pages, they'll be functioning more like "topic" or subject pages which is probably more useful to users in most cases anyway. Choosing to search by tag rather than an exact term inherently implies, to some extent, that the user is looking for generalized results on a particular subject.
Thanks for all the great replies. I tried different ideas based on the feedback shared and other suggestions I received internally.
Before showing the new version, here is a list with the changes applied.
I'm attaching XL
and XS
breakpoints in the same image to reduce the comment's length.
Page | Mockup |
---|---|
Single result view. Image | |
Single result view. Audio | |
Creator results | |
Source results | |
Tag results |
To interact with Creator and Source filters in single result page, the area is now contained within the content wrapper and left and right arrows show up to move alongside the section. Buttons has the same style as "Tag" buttons to reinforce the filtering reference.
In line with #424 and #425 projects, and in response to folks thoughts on the future of these pages, I think there is room for pushing Creator and Source pages to surface content more appealingly.
The draft attached above has the following ideas:
All these ideas need deep thought and several tests to pass a feasible check, but I envision big potential of these views to reinforce Source and Creator views, and to expand the search tools.
This iteration looks like a great place to begin work on this functionality. It's a pragmatic and attractive "minimum viable product" for these views and establishes a great baseline for the future enhancements you've already mentioned. 👍 from me.
@WordPress/openverse-frontend could someone else review and approve these designs, as if it were a project proposal?
I am in agreement with Zack.
We've concluded these designs are ready for implementation! @fcoveram is going to share final assets here, close the issue, and update the project thread.
I updated the Figma file with the last changes and it is ready for development 🎉
A few days ago, Figma introduced a new feature, Dev Mode. It's a new workspace view that aims to provide dev needs, this doc page gives more details.
I started exploring the design features in the Design Library, and in this case, I applied spacing variables in all mockups.
Here are the mockups in dev mode.
@fcoveram I'll close this so we can consider the design work done! Awesome job.
I'm late with this but wanted to say that these look fantastic and I'm so excited for this feature! I'm also glad you were able to figure out a solution for the long creator names 😄
Project and issues related
562
Proposal
Single result page
The single result page allows users to land in results by tag, source, and creator. Mockups for each view are attached below.
xl
xs
As part of the design updates this project involves, the following changes were applied:
12px
to ensure target area for a11y.Results by tag
To land on this page, user needs to click on one of the tag components in the single result page.
xl
xs
Results by source
To land on this page, user needs to click on one of the following elements in the single result page:
xl
xs
Results by creator
To land on this page, user needs to click on one creator’s username in the single result page.
xl
xs
Mockups
Figma file
What do you think of this idea?