Skip to content
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

Definition of Powerful Features #451

Open
torgo opened this issue Jun 5, 2024 · 2 comments
Open

Definition of Powerful Features #451

torgo opened this issue Jun 5, 2024 · 2 comments

Comments

@torgo
Copy link

torgo commented Jun 5, 2024

Hi folks - this is in reference to our design principles issue which is about harmonizing what we say in design principles with what you're saying here - to avoid confusion and make sure we're in sync. In §3.3 of your doc you state:

A powerful feature is a web platform feature (usually an API) for which a user gives express permission before the feature can be used."

We say in §2.2 of design principles

Some powerful APIs can produce intrusive UI (eg. auto-playing audio), expose user data (eg. interacting with the clipboard), perform a background activity without an obvious indicator to the user (eg. accessing local storage), or prompt the user to interact with trusted UI (eg. permission prompts, device hardware features). These APIs should be designed to require some indication of user intention (such as user activation) in order to function. This indicates that the user is intentionally interacting with the web page in question.

Do y'all agree that this is a good definition of powerful features? Could we coalesce on one definition which we could both reference? Also we are saying "user activation" and you're saying "express permission". Maybe this indicates there are two different levels of powerful features we're talking about? Or should design principles strengthen our recommendation to also recommend express permission?

@annevk
Copy link
Member

annevk commented Jun 5, 2024

I wonder if there's a better term that can be used to describe these than "powerful". For instance, SharedArrayBuffer doesn't fit this definition, yet it is definitely considered quite powerful and adding it in a secure fashion required a lot of web platform integration work.

@jyasskin
Copy link
Member

jyasskin commented Jun 5, 2024

Overall, +1 to unifying the definitions. The one here is primarily just so we had a term for "features that need permission".

Some history:

I think there's a useful distinction between the sort of features that Permissions and Design Principles are talking about, and features like SharedArrayBuffer which aren't supposed to expose the user's information but that do require care in their design to make sure that goal is achieved. I've always felt that "powerful" isn't quite the right word, but it's always been the best we could come up with.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants