From 5f76741978bd19aa2e92d762847310818a6816a5 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Wed, 17 May 2023 07:08:17 +0400 Subject: [PATCH 01/15] Add IP for blurring results in the frontend --- ...tation_plan_frontend_blurring_sensitive.md | 232 ++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md new file mode 100644 index 00000000000..baa243c1602 --- /dev/null +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -0,0 +1,232 @@ +# 2023-05-06 Implementation Plan: Fetching, blurring sensitive results + +**Author**: @dhruvkb + + + + +## Reviewers + + + +- [ ] @obulat for frontend experience +- [ ] TBD + +## Project links + + + +- [Project Thread](https://github.com/WordPress/openverse/issues/377) +- [Project Proposal](https://docs.openverse.org/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.html) + +## Scope + + + +This plan describes the approach, particularly pertaining to the frontend, for +blurring sensitive content. + +The content safety project has an +[API side](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.md#api), +extensively documented in the project proposal but out of the scope for this IP. +For now, we document what the frontend needs and assume that these needs will be +met by the API. + +## Expected Outcomes + + + +The frontend should not show the user any sensitive material unless the user has +explicitly consented to be exposed to it. Exposure to sensitive material will be +opt-in, meaning that it will be concealed by default. + +## Outlined Steps + + + +### Step 1: Frontend components/features + +The implementation would require the following frontend components to be +developed. + +- Blurrable search result components + + - image cell + - audio (box and row layouts) + +- Single result page + + - Content safety wall + - Hide content button + +#### Blur mechanism + +For the purposes of faster development, we will go with a CSS blur based +approach for this implementation plan. It has the distinct advantage over all +other approaches of being super generalised meaning that it will satisfy the +blurring needs of images (blurring the image), audio (blurring the title) and +even future media types like 3D models (blurring the JS-based preview). + +### Step 2: Feature flag system enhancements + +The feature flag + preferences mechanism will need some new features to support +some of the new use cases proposed for this feature. + +- Ability to store and retrieve preferences from `sessionStorage` instead of + `localStorage`. +- Option to not support `ff_` query parameters for a particular flag. + +These features are needed to support the new feature flag +[`fetch_sensitive`](#fetch_sensitive). + +### Step 3: New feature flags + +```{caution} +Observe the difference between on/off and enabled/disabled. The former refers to +the position/value of the toggle, while the latter refers to whether the toggle +can be interacted with and flipped. +``` + +Two feature flags need to be developed for this feature. One related feature +flag, `fake_sensitive`, already exists. + +#### `fetch_sensitive` + +This is not technically a feature flag, but rather a preference, which is +internally the same API. As a preference, it will always be set to 'switchable' +in all environments, defaulting to 'off', and will be controlled by the user via +the switches in the search results sidebar. + +This flag will not support the use of `ff_` query parameters, to prevent +URL-based malicious action. + +#### `sensitive_content_handling` + +This is the main, real feature flag that enables the entire feature of being +able to get (or avoid) mature content and then see or blur it. This flag will +determine whether the two switches even appear in the sidebar. + +It will be set to 'enabled' in development, 'switchable' in staging and +'disabled' in production till launch, post which it will be 'enabled' +everywhere. + +#### What about the blur toggle? + +The second toggle in the mockups that determines whether to blur the sensitive +results (let's refer to as `blur_sensitive`) is an ephemeral toggle that is +off + disabled when `fetch_sensitive` is off and enabled only when +`fetch_sensitive` is on. It is stored temporarily in the state and resets to off +on a hard refresh. + +### Step 3: Updating search store + +In this step we will update the search mechanism to add support for the +`include_sensitive_results` parameter, which supersedes the existing `mature` +parameter. The list of search results will include mature content if this is set +to `true`. + +Since the API will also send the `sensitivity` field, the types for media items +will need to be updated to account for that. This will boil down to a boolean +value of `is_sensitive` for each media item. + +### Step 4: Blurring in search results + +The approaches to concealment of sensitive content in the search result page is +specific to the media type. For image results, the image itself is blurred; for +audio results, the title is blurred. + +The cell components for search results, i.e. image cell and two layouts (box and +row) of the audio track will be updated to automatically blur the right parts of +the UI, based on the store state of the +[`blur_sensitive` toggle](#what-about-the-blur-toggle) and the `is_sensitive` +value for their respective media item. + +We are currently going with the CSS blur approach. + +### Step 5: Blurring in single result pages + +The single result page will be updated to render a safety wall when the media +item is sensitive. The safety wall will be a full page overlay that will conceal +the entire content of the page. + +It will have a button that will allow the user to proceed to see the content or +to go to a default page. + +There is a difference in the behaviour of this page based on whether the user +has arrived to it from a search result page or directly. In the former case, the +preference for the [`blur_sensitive` toggle](#what-about-the-blur-toggle) will +be carried over to the single result page (as they will be in the same session), +and if the user has opted to see sensitive content unblurred, the wall will not +be shown to them. + +Care must be taken to not show the content at all unless we have the information +about the sensitivity of the media item. A flash of clearly visible sensitive +content before the wall appears will be jarring and will defeat the purpose of +the wall. + +## Design + + + +The necessary designs for this plan were proposed and extensively iterated in +[WordPress/openverse#791](https://github.com/WordPress/openverse/issues/791). + +The finalised designs can be found in Figma document for +[Safe content browsing flow mockups](https://www.figma.com/file/bDTfGzBit8rGRPktOR1cu4/Safe-content-browsing-flow?type=design&node-id=0-1). + +As of writing the document, the design work has been completed. + +## Parallelizable streams + + + +The development of the required components can be parallelized. The last step, +which will be bringing all the code together (to put the sensitive content +behind the wall when the user has not opted, or opted out, of seeing sensitive +material) is the one that will be blocked till all the pieces have come +together. + +## Blockers + + + +This project will need the `include_sensitive_results` parameter to no longer be +unstable so that it can be used by the frontend. The API also needs to supply +the `sensitivity` field which will tell the frontend whether to blur or not. + +This however, is only a blocker for enabling the feature flag in production, and +not a blocker for development and staging deployment. For those, we have the +`fake_sensitive` feature flag to deterministically mark 50% of media as mature. +This is a temporary solution and will be removed once the API is ready to +provide the field. + +## Accessibility + + + +While blurring is purely a visual effect, we are taking it in a more general +sense here that takes into account needs of users who will be using visual aids +like screen-readers. Content-masking would be a more appropriate term for this +and the frontend copy should reflect that. + +While content is blurred visually, it will also not be read to the +screen-readers. In it's place a placeholder text like "Sensitive image" or +"Sensitive audio" can be used. + +Other than the above mentioned, I do not foresee any accessibility concerns +because all other components have clear, well-defined interactions using +standard HTML components. + +## Rollback + + + +Since the work will be behind a feature flag, rollback can be achieved by +disabling the feature. + +## Prior art + + + +The project proposal from @sarayourfriend is very comprehensive and already +covers a lot of potential pitfalls. From 34ba03039bf46bd79f8ba4d002fce94e80920f56 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Wed, 17 May 2023 21:43:11 +0400 Subject: [PATCH 02/15] Add @zackkrida as a reviewer Co-authored-by: Zack Krida --- .../20230506-implementation_plan_frontend_blurring_sensitive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index baa243c1602..fc4142742c7 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -10,7 +10,7 @@ - [ ] @obulat for frontend experience -- [ ] TBD +- [ ] @zackkrida ## Project links From e1ed2009ad0664bfcd572f1d4d16ef109e4665a0 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Thu, 18 May 2023 12:30:57 +0400 Subject: [PATCH 03/15] Update the flag name to match #2121 --- ...0230506-implementation_plan_frontend_blurring_sensitive.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index fc4142742c7..912e8ce9bed 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -10,7 +10,7 @@ - [ ] @obulat for frontend experience -- [ ] @zackkrida +- [ ] @zackkrida ## Project links @@ -100,7 +100,7 @@ the switches in the search results sidebar. This flag will not support the use of `ff_` query parameters, to prevent URL-based malicious action. -#### `sensitive_content_handling` +#### `sensitive_content` This is the main, real feature flag that enables the entire feature of being able to get (or avoid) mature content and then see or blur it. This flag will From 6f35a4f047971fe1aad4a54ed90fd23c965c21e9 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Thu, 18 May 2023 12:31:56 +0400 Subject: [PATCH 04/15] Describe the blur toggle more --- ...-implementation_plan_frontend_blurring_sensitive.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index 912e8ce9bed..e3e89d63c6c 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -115,9 +115,17 @@ everywhere. The second toggle in the mockups that determines whether to blur the sensitive results (let's refer to as `blur_sensitive`) is an ephemeral toggle that is off + disabled when `fetch_sensitive` is off and enabled only when -`fetch_sensitive` is on. It is stored temporarily in the state and resets to off +`fetch_sensitive` is on. + +It will be stored in Pinia so that it can be accessed by the components of +search result cells and blur button in single result view. The UI store would be +a good place to store the value of this toggle. However, unlike other values in +the UI store, it would not be persisted to a cookie and instead would be reset on a hard refresh. +Note that the hide button that appears on an unblurred single result page is +gone if the user has completely disabled blurring from the search sidebar. + ### Step 3: Updating search store In this step we will update the search mechanism to add support for the From 8f0ef90ac40627f753d4d4493076d2e6591400ac Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Thu, 18 May 2023 12:32:18 +0400 Subject: [PATCH 05/15] Add a bit of info about analytics events --- ...tation_plan_frontend_blurring_sensitive.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index e3e89d63c6c..d77a3c63fc0 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -225,6 +225,30 @@ Other than the above mentioned, I do not foresee any accessibility concerns because all other components have clear, well-defined interactions using standard HTML components. +## Analytics + +The proposal suggests +[4 analytics events](https://docs.openverse.org/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.html#id3) +to help us understand the impact and utility of these safety features. + +The first two are sent by the respective toggle buttons in the search sidebar. +Statistics from them will give us an insight into the users preferences for +accessing and viewing (respectively) sensitive content. + +The other two are sent from the single result page, which gives us an idea of +how suggestive/informative the blurred images are when the user has not opted to +see sensitive content from the search results. They will not appear unless the +user has blurred images in search results and then chosen to visit a sensitive +image. The latter two will also give us insight about shared links which lead to +sensitive content. + +| Event | Component | +| -------------------------- | --------------------------------------- | +| `TOGGLE_SENSITIVE_RESULTS` | `fetch_sensitive` toggle | +| `TOGGLE_DO_NOT_BLUR` | `blur_sensitive` toggle | +| `UNBLUR_SENSITIVE_RESULT` | Content safety wall, unblur button | +| `REBLUR_SENSITIVE_RESULT` | Single result page, hide content button | + ## Rollback From 4cc2dbb43c368c29dcca88f62a5c1af70275f937 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Tue, 23 May 2023 10:45:00 +0400 Subject: [PATCH 06/15] Update reviewers to reflect @obulat opting out and @sarayourfriend stepping in Co-authored-by: sarayourfriend <24264157+sarayourfriend@users.noreply.github.com> --- .../20230506-implementation_plan_frontend_blurring_sensitive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index d77a3c63fc0..2d9f65bc54e 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -9,7 +9,7 @@ -- [ ] @obulat for frontend experience +- [ ] @sarayourfriend - [ ] @zackkrida ## Project links From 6ef26c1571240522244c29ebd5bd0ec2a60a2e26 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Tue, 23 May 2023 13:56:46 +0400 Subject: [PATCH 07/15] Replace absolute URLs with Sphinx internal links --- ...0230506-implementation_plan_frontend_blurring_sensitive.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index 2d9f65bc54e..cd4e5fdca21 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -17,7 +17,7 @@ - [Project Thread](https://github.com/WordPress/openverse/issues/377) -- [Project Proposal](https://docs.openverse.org/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.html) +- [Project Proposal](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.md) ## Scope @@ -228,7 +228,7 @@ standard HTML components. ## Analytics The proposal suggests -[4 analytics events](https://docs.openverse.org/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.html#id3) +[4 analytics events](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.md#id3) to help us understand the impact and utility of these safety features. The first two are sent by the respective toggle buttons in the search sidebar. From 15919dbae36586ce9546edc3d006f575f6978620 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Tue, 23 May 2023 13:59:45 +0400 Subject: [PATCH 08/15] Link to the API-side implementation plan --- ...mplementation_plan_frontend_blurring_sensitive.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index cd4e5fdca21..2a664d8d9c3 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -18,6 +18,7 @@ - [Project Thread](https://github.com/WordPress/openverse/issues/377) - [Project Proposal](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.md) +- [API IP](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230330-implementation_plan_filtering_and_designating_results_with_sensitive_textual_content.md) ## Scope @@ -26,11 +27,12 @@ This plan describes the approach, particularly pertaining to the frontend, for blurring sensitive content. -The content safety project has an -[API side](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.md#api), -extensively documented in the project proposal but out of the scope for this IP. -For now, we document what the frontend needs and assume that these needs will be -met by the API. +The content safety project has an API side, that is covered in the +[project proposal](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.md#api) +and +[implementation plan](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230330-implementation_plan_filtering_and_designating_results_with_sensitive_textual_content.md), +and therefore, out of the scope for this IP. For now, we document what the +frontend needs and assume that these needs will be met by the API. ## Expected Outcomes From 7d2e9936288802fe751d4b2544fa4813d28f9a18 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Tue, 23 May 2023 14:09:11 +0400 Subject: [PATCH 09/15] Record the dual purpose of the `sensitivity` array --- ...0506-implementation_plan_frontend_blurring_sensitive.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index 2a664d8d9c3..a323b2cb626 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -136,8 +136,11 @@ parameter. The list of search results will include mature content if this is set to `true`. Since the API will also send the `sensitivity` field, the types for media items -will need to be updated to account for that. This will boil down to a boolean -value of `is_sensitive` for each media item. +will need to be updated to account for that. This field will compute two values: + +- a boolean for whether the media is sensitive and needs to be blurred +- the message to show to the user to help them know why a media is blurred (to + help them decide whether to unblur it) ### Step 4: Blurring in search results From fc24b7d62ffa884263f40535e17c8082fd2113be Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Tue, 23 May 2023 14:34:12 +0400 Subject: [PATCH 10/15] Update position on unstable params being blockers --- ...mentation_plan_frontend_blurring_sensitive.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index a323b2cb626..11b78ce2d88 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -203,15 +203,13 @@ together. -This project will need the `include_sensitive_results` parameter to no longer be -unstable so that it can be used by the frontend. The API also needs to supply -the `sensitivity` field which will tell the frontend whether to blur or not. - -This however, is only a blocker for enabling the feature flag in production, and -not a blocker for development and staging deployment. For those, we have the -`fake_sensitive` feature flag to deterministically mark 50% of media as mature. -This is a temporary solution and will be removed once the API is ready to -provide the field. +There is no blocker for development, we can use the unstable form of the +`include_sensitive_results` parameter for development and there is already a +[PR for the API changes](https://github.com/WordPress/openverse/pull/2057). + +We would ideally want the parameter to be stable before promoting the feature to +GA in production, but since we manage both the API and the frontend, we can +coordinate any breaking changes. ## Accessibility From b83c152effeacd5d95a408a74143e559bdaf1d04 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Tue, 23 May 2023 14:41:32 +0400 Subject: [PATCH 11/15] Add a step for page to explain terms and process --- ...ementation_plan_frontend_blurring_sensitive.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index 11b78ce2d88..f4144dc9795 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -61,6 +61,10 @@ developed. - Content safety wall - Hide content button +- Additonal pages + + - Sensitivity documentation page + #### Blur mechanism For the purposes of faster development, we will go with a CSS blur based @@ -177,6 +181,17 @@ about the sensitivity of the media item. A flash of clearly visible sensitive content before the wall appears will be jarring and will defeat the purpose of the wall. +### Step 6: Sensitivity documentation + +Based on the contents of the `sensitivity` array, the single result page +content-safety wall shows a message to the user to explain why the result is +hidden and to help them decide whether to proceed or not. + +This message contains terms like "sensitive" (from the source), and "sensitive +textual content" whose meaning may not be immediately clear. They should link to +a page explaining our process and that it's currently imperfect and that we are +actively working on improving it. + ## Design From bcf2445f38b84bf5ab290a8d1894fa00a656f991 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Tue, 23 May 2023 14:42:43 +0400 Subject: [PATCH 12/15] Add the sidebar component to the components --- ...30506-implementation_plan_frontend_blurring_sensitive.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index f4144dc9795..f4bb753a030 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -51,6 +51,12 @@ opt-in, meaning that it will be concealed by default. The implementation would require the following frontend components to be developed. +- Sidebar component + + - Two toggle switches + - Fetch sensitive content + - Blur sensitive content + - Blurrable search result components - image cell From b6689ab97e4632d20607add5a74c0723dd94655e Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Tue, 23 May 2023 14:43:11 +0400 Subject: [PATCH 13/15] Record @zackkrida's approval --- .../20230506-implementation_plan_frontend_blurring_sensitive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index f4bb753a030..16bbf03c064 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -10,7 +10,7 @@ - [ ] @sarayourfriend -- [ ] @zackkrida +- [x] @zackkrida ## Project links From eb6d64a818c1d6105061cf36206cbecbaefc4ab9 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Wed, 24 May 2023 13:16:30 +0400 Subject: [PATCH 14/15] Fix internal link --- .../20230506-implementation_plan_frontend_blurring_sensitive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index 16bbf03c064..231e0eadc2b 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -252,7 +252,7 @@ standard HTML components. ## Analytics The proposal suggests -[4 analytics events](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.md#id3) +[4 analytics events](/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230309-project_proposal_detecting_sensitive_textual_content.md#frontend-1) to help us understand the impact and utility of these safety features. The first two are sent by the respective toggle buttons in the search sidebar. From 3b01eef9938b2300b5e0472ac0254554943cfa08 Mon Sep 17 00:00:00 2001 From: Dhruv Bhanushali Date: Wed, 24 May 2023 13:16:50 +0400 Subject: [PATCH 15/15] Record @sarayourfriend's approval --- .../20230506-implementation_plan_frontend_blurring_sensitive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md index 231e0eadc2b..0037b5c4f05 100644 --- a/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md +++ b/documentation/projects/proposals/trust_and_safety/detecting_sensitive_textual_content/20230506-implementation_plan_frontend_blurring_sensitive.md @@ -9,7 +9,7 @@ -- [ ] @sarayourfriend +- [x] @sarayourfriend - [x] @zackkrida ## Project links