-
Notifications
You must be signed in to change notification settings - Fork 54
Replace asking for users for consent with designing for user intent #584
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
base: main
Are you sure you want to change the base?
Changes from 1 commit
ea96466
c028359
efbf7bc
c8d0fc8
609b59a
9c642d9
67596e2
723632e
e8a9a6c
462df7e
aede8a0
3148189
87bc056
7754dca
6f8fd9c
c7b38c1
12c179a
960856d
63307ee
63450e9
52b7f0d
d500053
bf0f95a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
@@ -158,57 +158,75 @@ This is often used to attempt to trick users into visiting scam websites. | |||||||||
If this feature was proposed today, it would probably not proceed. | ||||||||||
</p> | ||||||||||
|
||||||||||
<h3 id="consent">Ask users for meaningful consent</h3> | ||||||||||
<h3 id="user-intent">Design for user intent</h3> | ||||||||||
|
||||||||||
mharbach marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
In the context of fulfilling a user need, | ||||||||||
a web page may want to make use of a feature | ||||||||||
that has the potential to cause harm. | ||||||||||
Features that have this potential for harm should be designed such that people can give | ||||||||||
[meaningful consent](https://www.w3.org/2001/tag/doc/ethical-web-principles/#control) for that feature to be used, | ||||||||||
and that they can refuse consent effectively. | ||||||||||
|
||||||||||
In order to give *meaningful consent*, the user must: | ||||||||||
- **understand** what permission they may choose whether to grant the web page | ||||||||||
- be able to choose to give or refuse that permission **effectively**. | ||||||||||
|
||||||||||
If a feature is powerful enough to require user consent, | ||||||||||
but it's impossible to explain to a typical user what they are consenting to, | ||||||||||
that's a signal that you may need to reconsider the design of the feature. | ||||||||||
|
||||||||||
If a permission prompt is shown, | ||||||||||
and the user doesn't grant permission, | ||||||||||
the Web page should not be able to do anything | ||||||||||
that the user believes they have refused consent for. | ||||||||||
mharbach marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
|
||||||||||
By asking for consent, | ||||||||||
we can inform the user of what capabilities the web page does or doesn't have, | ||||||||||
reinforcing their confidence that <a href="#safe-to-browse">the web is safe</a>. | ||||||||||
However, the <a href="#priority-of-constituencies">user benefit</a> | ||||||||||
of a new feature must justify the additional burden on users | ||||||||||
to decide whether to grant permission for each feature | ||||||||||
whenever it's requested by a Web page. | ||||||||||
Using such a feature should only be possible | ||||||||||
if the user’s expectation matches the feature’s consequences | ||||||||||
|
||||||||||
(e.g., personal information used, state changed). | ||||||||||
|
||||||||||
Design your API so its behavior matches what people intend and expect. | ||||||||||
Then, in the best case, people don't need to get involved in allowing API access | ||||||||||
and thus can't make decisions they regret later. | ||||||||||
Only ask the user for confirmation in exceptional circumstances. | ||||||||||
|
||||||||||
<p class="example"> | ||||||||||
For example, web pages don’t need to ask for permission to play sounds, | ||||||||||
as they are only able to so when there is enough engagement | ||||||||||
jyasskin marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||
and it is therefore very likely that the user expects this. | ||||||||||
Similarly, PWAs wanting to use [Window Control Overlay](https://wicg.github.io/window-controls-overlay/) don’t need to ask for permission, | ||||||||||
as the user simply toggles this mode on when they need it. | ||||||||||
</p> | ||||||||||
|
||||||||||
<h4 id="user-decisions">Help users make good decisions</h4> | ||||||||||
|
||||||||||
Asking for user approval has been a common way to handle remaining risk. | ||||||||||
martinthomson marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
mharbach marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
mharbach marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||
However, most people can't make good decisions on | ||||||||||
the questions they're asked (e.g., permission prompts, FedCM prompts). | ||||||||||
This is because they lack crucial context and information. | ||||||||||
jyasskin marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||
Being confronted with difficult or annoying questions leads | ||||||||||
to decision fatigue, habitual responses, | ||||||||||
annoyance from frequent interruptions, and regrettable decisions. | ||||||||||
|
||||||||||
When user involvement is unavoidable, | ||||||||||
empower users to make good decisions. | ||||||||||
Use these principles: | ||||||||||
|
||||||||||
* **Limit the consequences from a bad decision by addressing risk at the API level first.** | ||||||||||
Try not to ask users questions where a "bad" decision can lead to severe consequences, | ||||||||||
mharbach marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||
like a compromised device or serious personal data disclosure. | ||||||||||
If you have to, make it harder for abusive sites to trick users into seeing the question. | ||||||||||
mharbach marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
mharbach marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||
If users’ decisions last longer than the current session, | ||||||||||
mharbach marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||
user agents should remind users that their past decision still applies. | ||||||||||
mharbach marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||
* **Ask questions people can understand.** | ||||||||||
mharbach marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||
The associated risks should be obvious from the question for a typical user | ||||||||||
and be directly connected to the feature's or API's utility. | ||||||||||
mharbach marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||
This usually means we can't ask permission to accept fingerprinting risks, | ||||||||||
|
||||||||||
as they are subtle, technical, and commonly have nothing to do with the capability itself. | ||||||||||
* **Provide sufficient context.** | ||||||||||
People need to easily understand who they're dealing with, | ||||||||||
what the decision is about, and how the website will use any information they might share. | ||||||||||
|
||||||||||
* **Let people make decisions when *they* are ready.** | ||||||||||
Websites should not be able to force the decision moment on the user, | ||||||||||
while they're trying to do something else. | ||||||||||
Instead, people should be able to choose the decision moment, | ||||||||||
for example by clicking on a dedicated button like for the file chooser. | ||||||||||
mharbach marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||
|
||||||||||
If you can’t adhere to all of the above principles, | ||||||||||
then there's a "design smell" and asking the user isn't the right mitigation. | ||||||||||
|
If you can’t adhere to all of the above principles, | |
then there's a "design smell" and asking the user isn't the right mitigation. | |
If you can’t adhere to all of the above principles, | |
that is likely an indication that asking the user isn't the right way to manage permission. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the suggestion. I replaced "mitigation" with "approach" instead, as I don't want to frame it as a decision about managing permission but really about managing risk. The following sentence hopefully communicates that. Wdyt?
Uh oh!
There was an error while loading. Please reload this page.