brave / brave-browser

Brave browser for Android, iOS, Linux, macOS, Windows.
https://brave.com
Mozilla Public License 2.0
17.88k stars 2.34k forks source link

Detect when a user might be experiencing a webcompat issue and help turn off Shields #4247

Open karenkliu opened 5 years ago

karenkliu commented 5 years ago

Description

Currently, users in the general audience attribute webcompat issues to the browser or website not working correctly and don't identify it as a Shields setting issue. Help the user fix webcompat issues on their own by detecting when they are possibly experiencing a webcompat issue and surfacing instructions to fix it.

Designs should solve for:

Designs

Scenario Detect when a user may be experiencing a webcompat issue based on this behavior:

Once detected, surface a tooltip pointing to Shields icon instructing user to turn off Shields:

report an issue

The user clicks on the link in the tooltip, which opens the Shields panel for them, and has the Shields off toggle highlighted:

detect webcompat issue - closeup

Play around with the prototype on your own here (it'll be higher res): https://framer.cloud/ihOau/

The text should say "Site not working? Try bringing Shields down. [ ] Don't show this again."

tooltip

Add an option to show the help tip again in Settings if the user selects "Don't show this again."

settings

user flows - reporting webcompat issue

Interaction Notes

This is the animation I used for the highlight: circle1animationshow = circle1.animate({ properties: {scale: 1.2, opacity:1} time: 0.5 curve: "ease-in" }) circle1animationgrow = circle1.animate({ properties: {scale:1.625, opacity:0} time: 1 curve: "ease-out" }) circle1animationreset = circle1.animate({ properties: {scale:1} time: 0 }) circle2animationshow = circle2.animate({ properties: {scale: 1.2, opacity:1} time: 0.5 curve: "ease-in" }) circle2animationgrow = circle2.animate({ properties: {scale:1.8, opacity:0} time: 1 curve: "ease-out" }) circle2animationreset = circle2.animate({ properties: {scale:1, opacity: 0} time: 0 })

karenkliu commented 5 years ago

@cezaraugusto Is this technically feasible?

bsclifton commented 5 years ago

@karenkliu I know @too4words and others have been looking at webcompat. I think we'd need to lean on the work they're doing, as there isn't a clear indicator from the browsers perspective on whether it's working correctly or not.

There are folks doing analysis for shields up/down to find differences which may be webcompat problems

karenkliu commented 5 years ago

@bsclifton Yep - this is more of a stopgap solution while they are working on getting a fully automated webcompat solution up and running. We are hoping that in the future the user does not need to interact with the Shields panel at all, because Shields is smart enough to have the right settings per the work the research team is doing. However, in the meantime we still need to provide the user with something because the worst case scenario is that they assume Brave Browser is glitchy and switch right back to Chrome. Right now the small percentage of self-selected users who reach out to Brave support are typically met with a first line instruction of "have you tried turning it off?". The design can use this temporary solution to take care of those cases and help retention for new users.

bsclifton commented 5 years ago

cc: @snyderp

pes10k commented 5 years ago

I think this is a great idea. Would also be good to incorporate it with the "report this site is broken to brave" feature that @antonok-edm and @alexwykoff are working on

karenkliu commented 5 years ago

@snyderp That's the plan! They are working on the MVP version of what is to become https://github.com/brave/brave-browser/issues/4262; this future design details out what the "report this site is broken to brave" flow looks like integrated into the Shields panel.