-
Notifications
You must be signed in to change notification settings - Fork 218
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Safe content browsing flow #791
Comments
Subscribe to Label Actioncc @WordPress/gutenberg-design, @WordPress/openverse
This issue or pull request has been labeled: "🖼️ aspect: design"
Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
I feel like the icon is not making sense in the footer. The component out of the filter area and the functionality are great but There are "browsing settings" and "browsing options", I don't think that blurring sensitive content should be treated as a setting but as an option, the user chooses to see/not see sensitive content and when. |
This is awesome. There are so many great refinements here. I'll split up my thoughts into sections: Single resultsI love the look of the blur here with the 80% opacity white. In the future, we hope to have specific reasons why an image was marked as sensitive, for example:
For the first version of this blurring, I think the approach you've shared is perfect. The "hide content" button is also a very nice detail, as it lets someone change their mind quickly without leaving Openverse. Search resultsI like the solution for the two toggles. I would propose the following copy for those:
The second checkbox, "blur sensitive results", should be enabled by default. The actual blur looks good. I like the amount of blur and the amount of the image which remains. Safe browsing placementThe footer doesn't feel right to me for the placement of these settings. I definitely understand the motivation for putting it there and what would draw you to that choice. It isn't exactly a filter:
For a few reasons, I would prefer that we keep the "Safe browsing" section in the filter sidebar:
I think making a big change to the placement of these settings will be a big project. It also relates to a few other initiatives. What, for example, if we add sorting in the future? I could see these settings living in the sidebar, for now, but duplicated in a user settings popup in the future, like the design you showed. |
Here are some accessibility comments: Multiple result view
Single item view
|
I definitely agree long-term with @joedolson that we'd like to give a specific content label when explaining why an image is marked sensitive. I do not think we'll have that information initially, on the first pass of this feature. As a solution while we build those specific content labels, could we link the "marked as sensitive" label to a page where we explain sensitive content? |
I'd agree. I do understand that in the future this component will likely contain additional settings but, for now, it only contains the Safe Browsing settings. I'm not sure the gear icon is appropriate for that. Moreover, from an accessibility perspective, icons should be avoided and only be used when there's no space in the UI to use visible text. Using an icon is already a compromise in terms of accessibility. Re: placement in the footer: I'm not sure that's the ideal place. A footer is meant to be used tor ancillary information e.g. copyright, privacy, about us and the like. It's not a place for functionality. In this specific case there are two more considerations:
GivenI get this is going to evolve in a 'User settings popover' that contains preferences and account settings: The popover button will also use the user's avatar. As such, I'd like to suggest to place this component in the top right of the screen. Most (all?) of the web applications I can think of place the User/Account settings there. Users are familiar with that pattern and the placement at the top right would also solve some of the issues mentioned above. |
Thanks for all your thoughts ✨ I will summarize the suggestions to iterate on the idea and address your points. Conveying the featureReplace the gear icon with a component that prioritizes text information. Setting positionMoving the action out of the footer as it is not reachable and lacks of context. I will explore a version in the sidebar where it fits better with modifying the results.
To the point mentioned above by @zackkrida, I wonder how clearing filters could work then. There is a risk of resetting the options selected and showing up unsolicited content in the results area when visitors want to clear the sources chosen. A solution to this could be putting apart this setting from the “clear” action, and adding a separator that splits the sidebar into two separated areas. For the tab navigation point mentioned by @afercia, placing the setting between filters and the content area will make it more reachable. Action labels
To your point @zackkrida, I tested different ways of describing the action. Since the first toggle is disabled and hides content by default, the enable state shows more content. For the blur toggle, I followed the same logic: the disabled state hides content while the enable state shows the content (by removing the blur effect.) The flow of enabling the 1st action to then disable the 2nd one felt odd in the prototype test. I can make a quick video showing the interaction. In that vein, when @joedolson says
It makes sense to me to enable one feature after another to show up more content. Sensitive content reasonI will explore another solution to communicate more clearly why this content is hidden. I like @zackkrida’s idea of linking to a rationale page explaining the reason behind this while we build the content labels. Hidden content effect
QuestionTo @joedolson’s point
Which interaction do you think suits better for this kind of setting? I can only think of adding an interaction layer to confirm the change. |
Re: interaction. Any user interface component that has a clear 'on' and 'off' state. E.g., a checkbox is clearly selected or not selected: it either has a check or it does not have a check. A toggle like this is ambiguous. How are you supposed to know whether left or right is 'on', or whether a light dot on a dark background means 'on' or 'off'? |
An additional note on having a clear on and off state - Yoast does this well in their settings, by changing the icon within the toggle from a check to an x based on state; this is a more clear visual cue. |
I would hate for Openverse to diverge from Gutenberg as far as the componentry goes. Ultimately they are all WordPress core related projects. In the case of Gutenberg, we actually tried on/off helpers, inspired by the iOS toggle you can flip to enable those. Little I/O icons for on/off. It turned out to be noisy in cases of multiple controls side by side, with the more complicated silhouette, so we ended up reverting that. What's a visual aid for some becomes stressful noise for others, especially dyslexics. In that light, I'd keep the toggle sans additional iconography, for consistency with core. However, for both OV and Gutenberg, and similar to how iOS handles it, I would welcome a toggle in preferences that let you choose whether to have this extra iconography present or not, just like we have one for text labels instead of icons. |
Thanks for commenting Sara. You shared great thoughts. Suggestions for initial or fast-follow improvements to copy
Note: The third point was taken from another paragraph in the same comment and added to the list by me. This suggestion makes total sense to me. Same with your point about matching the sensitive disclaimer and the page content. Otherwise, the warning context would confuse people. The design change is very easy to make, so the note sounds more like documenting the implementation plan or any other dev input to include these different disclaimer messages.
Not sure about this idea. I did a quick search for “cat” and the first eight results are titled “cat”, except for one that is “Cat bliss”. Showing the title sounds more useful for audio results where the sentence might collect more info what the audio is about. QuestionsAudioI completely missed audio in this proposal, and that might have happened because my first explorations were only about blurring images. Given the impact that this project has on the user experience, I think we should tackle audio case now and not wait until releasing the image browsing. I would appreciate participant folks sharing similar cases from other products that add a safety layer to text and audio results. Accessibility
I agree with this. And would like to hear what other folks think. In that vein, and out of curiosity, does it make more sense for screen readers to read the alt text instead? If it exists in the image indeed. But asking this as the alt text describes what’s in the image while the title doesn’t necessarily need to. |
@joedolson any suggestions for this sensitive content concern? If an image or audio file is marked as sensitive, and the title may contain sensitive/profane words, should we replace the announced text for the result? With something like "Image: This result is potentially sensitive. Click to reveal." or something to that effect? The idea is that this would be the non-visual equivalent of blurring sensitive results. |
I'm so glad to see the accessibility questions here! Maybe for the alt-text, rather than the title or no on blurred images, we could include the provider and creator names with the standard message about why it is blurred? That's my best guess at some info but not much. I'm not aware of times when the alt-text for an image is not the title. Is that just when a description is available from the provider? Do we know how often that happens? Also, I wonder a bit about how to fit filter-specific accessibility concerns with existing features and accessibility on the site. For example, this stuff about keyboard focus seems like it could maybe provide another opportunity for differentiating safe/unsafe content, but then I realized that I couldn't (at least with my current Firefox settings) tab-key through the specific search results at all. Similarly, maybe audio transcripts could start with the warning message, if we offered them, but do we? Are they part of our audio provider APIs? I guess I imagine that ultimately we would want the content filters to fit with the overall design, and that that should apply across accessibility features as well. Is there a mechanism for closing those loops? |
Right now the alt text for works is always the title: https://github.com/wordpress/openverse/blob/5ca56c9f9270fc02eea7c125942a0d5e33caaa87/frontend/src/components/VSearchResultsGrid/VImageCell.vue#L23 It is also used as the link title: https://github.com/wordpress/openverse/blob/5ca56c9f9270fc02eea7c125942a0d5e33caaa87/frontend/src/components/VSearchResultsGrid/VImageCell.vue#L4 And on the single result: https://github.com/wordpress/openverse/blob/439c8749289ebf118c6b79fcdbcc30dd2fa13ef5/frontend/src/pages/image/_id/index.vue#L12
The difficulties for screen reader users will also be managing the experience. Directing a screen reader user to "click to reveal" is kind of meaningless. "Clicking" is a single type of interaction that mouse users use but screen reader and keyboard users generally have to use different interactions for different types of elements. I'm sure screen reader users are probably used to things like that, but it's almost certainly better to say "Type R to reveal", or some such. And what is being revealed? The image? That might be useful for sighted screen reader users but for people who rely entirely on the screen reader, we should be telling them what will be revealed so that they know what to expect: just like a sighted user knows what will happen if they click "unblur".
@rwidom if you're on macOS you probably need to enable keyboard navigation at the OS level: https://www.a11yproject.com/posts/macos-browser-keyboard-navigation/
I think we need to be careful to consider that we need to address the present need: presenting all users, regardless of interaction method, with sufficient information to know that a work has sensitive textual content or was marked sensitive by the provider. I want to make sure that the scope of this isn't blown out of proportion to the solution that's needed, particularly as this project can be iterated on and expanded to include additional resources. For audio results, sighted users do not have additional information about the result than a keyboard user (assuming both are able to hear the audio). Adding text to the existing interaction that can be accessed by both works for audio. For images, we just need to indicate to screen reader users that the image is blurred: they won't have that visual context. If we can give them useful hints (which sighted people have through the blurred image) then we should, but it's also not a necessary problem to solve beforehand. Just the fact that the broad context of the sensitivity of the result, indicated by the blurring of the image, needs to be communicated to screen reader users. Anyway, I just say that, again, to make sure that we're keeping scope in mind and avoiding going down rabbit holes that would make for good projects on their own, rather than additional requirements to the existing project. We need to make the experiences commiserate with the understanding that neither will actually be the best it could be right now. |
There should be a control surface that a screen reader user will interact with to reveal the image; this would be the appropriate place to have text along the lines of "This [content type] contains sensitive content. Reveal the [content type] information." This would unblur the image, as well as restoring the alt attribute/title/other content fields that have been hidden; all of that information should also be hidden for content that's hidden. I don't think it's important to disclose the mechanism by which the information is obscured; just 'hidden' or 'obscured.' I also don't think we need to worry significantly about giving non-sighted users the equivalent information of a blurred image; that's an extremely imprecise point to match, as it can range from "it's totally obvious what this image is" to "I have absolutely no idea". Using a keyboard command is possible, but will require a lot of testing, as screen readers frequently override keyboard commands. It would be better if there was a control that could receive focus that provided that information and action. 'R', for example, is "Next landmark region" in Jaws 16+. |
Thanks @joedolson. That direction is very helpful, especially the context about keyboard commands.
Definitely not, I'm not sure if it's even possible with our current resources. I meant that we need to give screen reader users the context that the blurred image communicates (that the result may be sensitive), not that we need to communicate the blurred image somehow via text. A good clarification to make, to be sure. |
Hmmm, I guess that's what was confusing was that I was able to tab around the site, I just wasn't able to use tab to get to the individual results themselves. I'm a total newbie without sensory impairments, so it may be a non-issue for the pros, but on the search results page, when I first hit tab a "Skip to content" button popped up (not a text box or list), and then if I hit tab, it went to the search form and when I kept hitting tab it eventually went to the bottom of the page, but never the results themselves. And if I hit return from the "Skip to content" button, it went to the "Load more results" button at the bottom of the page. But I haven't been able to figure out how to get to the individual images, and I don't see those controls on Big Sur. :/ (These are the results I was playing around with: https://openverse.org/search/?q=orangutan ) |
Update to add that I did find a relevant firefox setting ("Always use the cursor keys to navigate within pages") that allowed me to tab to the beginning of the heading for the results (i.e. the word Orangutan), but when I used my keyboard arrows to try to get to the results themselves I got stuck on "See all images" and from there, the right arrow no longer worked, and tab brought me to the bottom of the page again. Sorry if this feels like an irrelevant rabbit hole, happy to make an issue if that would be helpful. |
@rwidom pinged in Slack to move the conversation out of this thread. |
@panchovm welcome back! I think the only remaining questions here, after the excellent follow-up discussion about accessibility, and refinements to language, are:
Once we answer these, perhaps we only need a final revision made to the mockups before this is ready for development. |
Iteration 3 (i3)Thanks for all your thoughts. Very fruitful discussion. I’ve been working on a new iteration that you can find below. Search resultsIn this version I included the three results pages: All content, Images, and Audio. All these pages have the same interaction as in i2 to surface sensitive content: open the filters to enable/disable the feature in the settings area. Here you can see the default and the sensitive included version per content type. Put attention to the blurred items.
Since this version includes audio content type, texts in the settings area were updated to cover image and text contents. This is open to change, so please leave your thoughts about the copy. Image results have two very similar component variants. Aspect ratio is the only change, box in All content results and rectangle in Image results. However, audio component has four variants that mix image and text content, cover image for the former, and title and author for the latter. Here is a diagram of the variants with the possible sensitive content blurred. Plus the above, global player also faces a similar situation. Unblur/blur individual itemsAs pointed out in the implementation plan, users should be able to unblur/blur individual results. This requires adding a feature for each component variant listed above. While exploring a design for the 3D model integration project (#558), I thought about setting content and actionable areas in the box section of each component. This rule would help us to address interaction and content needs and sets the baseline for future designs. But after testing some ideas, I encountered four reasons to put this feature aside and tackle it in the future:
These reasons do not diminish the value of the feature, and I see benefits on browsing blurred results and unblurring individual items. But due to the above, I would pause this feature for now. What do you think? Single result pageFor the single result page, users opening a link or clicking on a blurred result, the page remains almost the same. The only changes applied were three:
Hidden contentVisible content |
This sounds good to me. I agree that it is not worth delaying the feature to solve the complexities of what is a "nice to have" rather than a core necessity. This is definitely something we can revisit in the future, probably after user testing and finding out if it is something people even actually want to be able to do. The solution for audio on the search results page also seems fine to me. My only small question is whether playback should be disabled on the search results page for sensitive audio results. The single results page also looks great to me. The only note is probably that for keyboard navigation, we'll want to make sure that the reblur/hide button is what is focused when the blur is disabled. Where will the reblur/hide button go for audio single result pages?
I don't think we need to sort all of this out now, but in revising the implementation plan for the API side of this project (#996), I realised that we can further disambiguate between content marked sensitive by the provider and content that was reported (and confirmed) as sensitive by users of Openverse. Luckily this won't require adding a new clause/phrase to the copy more complicated because provider supplied and user reported sensitivity are mutually exclusive. We'll just need slightly different wording for each and only ever show one or the other. |
Something I failed to note in the earlier drafts was the use of 'read more' under the Safe Browsing header. That should use meaningful link text built into the context of the sentence; or the heading could be linked. |
+1 to this idea
I don't think we should disable it. For image results, landing in the page shows the content immediately, whereas in audio results, text is shown immediately (and that's why it's blurred) but audio requires an action to toggle and listen to it. In this vein, the flow that feels odd to me is:
If a user plays an audio (step 3) and then wants to see the audio details (step 4), landing on a blurred page (step 5) feels clunky as playing the audio by clicking on the play button is a consent action. This thought comes from the idea that from all content in an audio file (title, author, cover image, audio) the audio itself is more important than the others. In other words, a "good" audio is judged by its sound than the file title. I don't think the flow described is critical and blocks the i3 designs. But I'd like to see your thoughts. Single result view
I thought the opposite was considered a good practice. Thanks for the input. After showing the page, I tested the "hide content" action inside the audio component, but the interaction becomes complex and doesn't set a long-term approach for future integrations. And since we plan to tackle the modal integration (#429) it makes sense to set the action out of the content area. Here are the mockups for
|
Page | Mockup |
---|---|
Hidden page | |
Image | |
Audio | |
Audio. Playing |
xs
Hidden page | Image | Audio | Audio. Playing | |
---|---|---|---|---|
Mockup |
Modal (early draft)
Sharing two ideas I was testing for this feature
The Mockups page was updated with the last changes. All assets are ready ✨ |
Shall we close this issue and continue further discussions when the implementation plan is published? |
That sounds good to me |
Problem
The current browsing experience hides content marked as mature to allow a safe experience when displaying results. However, and as defined in project #377, we decided to allow visitors to opt-in browsing and seeing results marked as sensitive.
Issues related
Project #377
PR
Proposal
Before diving into details, here is a flow for the search results and landing in a single result in both
xl
andxs
breakpoints.Search results
xl
breakpointContent.safety.Results.XL-02.mp4
xs
breakpointContent.safety.Results.XS.mp4
Single result page
xl
breakpointContent.safety.Page.XL.mp4
xs
breakpointContent.safety.Page.XS.mp4
Description
Opt-in settings in footer
Even when the safe browsing settings do narrow the results, placing the toggles in the filter sidebar felt without much context during the prototype tests. Because of that, and since browsing mode sets a site-wise experience, putting the component out of the filter section made more sense.
This design proposes updating the footer again. I acknowledge the efforts of simplifying this component, but this design goes further in simplicity by reducing its height and making the WordPress mention more simple. The idea is open to discussion so please leave your thoughts.
On small devices, the popover behaves as a modal. Same as other modals but revamping it with updated styles.
Having this component in the footer would also allow us to add other opt-in settings like privacy and, in the future, replace the area with a user settings one once we start exploring the collection feature. Note the exploration below.
Blurring page
As noted in the user stories (#362), the single result page blurs all content area with white at 80% plus a noise texture as it keeps the header and footer clean. The CTA area is fixed in the center, and the Go to search button takes you to the homepage. I kept the page height to avoid hiding the footer as some visitors might want to click on any of those links or change the site language.
As discussed in other tickets, the switcher and filters are disabled, and "back to results" action is not visible as no search term was applied.
You can find below a version that only blurs the image area, in case we want to take that path.
Feedback
What do you think of this idea? Please share all your thoughts
Mockups
Figma: Content safety browsing flow.
The text was updated successfully, but these errors were encountered: