[w3ctag/design-reviews] Vibration API (Issue #971)

こんにちは TAG-さん!

I'm requesting a TAG review of the Vibration API.

This specification defines an API that provides access to the vibration mechanism of the hosting device. Vibration is a form of tactile feedback.

The API is specifically designed to address use cases that require simple tactile feedback only. Use cases requiring more fine-grained control are out of scope for this specification. This API is not meant to be used as a generic notification mechanism. Such use cases may be handled using the Notifications API that has a normative dependency on this specification. In addition, determining whether vibration is enabled is out of scope for this specification.

  - Explainer¹ (minimally containing user needs and example code): This feature predates the explainer era, but its [MDN entry](https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API) serves as a good starting point.
  - Specification URL: https://w3c.github.io/vibration/ (Why ED? For details on history of this specification, see "You should also know...")
  - Tests: https://wpt.live/vibration/
  - User research: [url to public summary/results of research]
  - Security and Privacy self-review²: https://github.com/w3c/vibration/issues/36
  - GitHub repo: https://github.com/w3c/vibration
  - Primary contacts (and their relationship to the specification):
      - Anssi Kostiainen (@anssiko, Intel, editor, co-chair)
      - Reilly Grant (@reillyeon, Google, co-chair)
  - Organization(s)/project(s) driving the specification: Intel, Google, [initially](https://w3c.github.io/vibration/#acknowledgements) Mozilla (currently unsupportive i.e. implementation stubbed out or no-op)
  - Key pieces of existing multi-stakeholder (e.g. developers, implementers, civil society) support, review or discussion of this specification: The Working Group is aware of positive feedback from the disabled community https://github.com/w3c/vibration/issues/37 and web developer community.
  - Key pieces of multi-implementer support:
    - Chromium comments: enabled by default in Chrome 32, also enabled by default in other Chromium-based browsers per https://caniuse.com/vibration
    - Mozilla comments: https://github.com/mozilla/standards-positions/issues/907
    - WebKit comments: https://github.com/WebKit/standards-positions/issues/267
    - etc...
  - External status/issue trackers for this specification (publicly visible, e.g. Chrome Status): https://caniuse.com/vibration, https://chromestatus.com/feature/5698768766763008

Further details:

  - [x] I have reviewed the TAG's [Web Platform Design Principles](https://www.w3.org/TR/design-principles/)
  - Relevant time constraints or deadlines: We'd like to discuss TAG review feedback latest at TPAC 2024.
  - The group where the work on this specification is currently being done: Devices and Sensors Working Group
  - Major unresolved issues with or opposition to this specification: This specification is republished to address a process issue related to an outdated Recommendation.
  - This work is being funded by:

You should also know that...

Chrome shipped this API in 2013, following the initial implementation in Firefox in 2012. To prevent unintended use of the feature, Firefox made a change to its implementation in 2016 to gate the feature behind a permission prompt. During 2016-2017 Chrome solicited feedback from users and enabled user activation gating for the feature, first for third-party iframes only, then also for top-level, inspired by conceptually analogous web audio and video autoplay also gated by a user activation. Later, Firefox decided to make the API act as no-op, presumably due to inability to find a satisfactory explicit user consent mechanism, a decision predating user activation gating being incorporated into the specification.

Due to complexity of revising a Recommendation under the old process, TR for this specification did not receive these latest updates informed by implementation experience, but they were incorporated into the Editor's Draft instead. This caused some unfortunate confusion among readers not closely watching the specification. To clear this confusion, supported by reinvigorated interest and process improvements for revising a Recommendation, this API is now being revived on the Recommendation Track to allow bringing the updates from the ED back to TR and to allow for further improvements using the modern streamlined publication flow.

Since the latest [published version](https://www.w3.org/TR/2016/REC-vibration-20161018/) the Working Group has gathered further implementation experience, added new privacy protections and improved reuse of definitions in other specifications.

The group [decided](https://lists.w3.org/Archives/Public/public-device-apis/2024Jun/0006.html) to publish the specification as a new Candidate Recommendation Snapshot to bring updates that align with implementations from the ED to the TR.

Please see the [commit history](https://github.com/w3c/vibration/commits/gh-pages/) for details and the [changes section](https://labs.w3.org/spec-generator/?type=respec&url=https%3A%2F%2Fraw.githubusercontent.com%2Fw3c%2Fvibration%2Fchanges%2Findex.html#changes) for an overview of the changes since the latest published version. Diff between the [latest published version](https://www.w3.org/TR/2016/REC-vibration-20161018/) and the [staged snapshot](https://labs.w3.org/spec-generator/?type=respec&url=https%3A%2F%2Fraw.githubusercontent.com%2Fw3c%2Fvibration%2Fchanges%2Findex.html) is available at [htmldiff](https://services.w3.org/htmldiff?doc1=https%3A%2F%2Fwww.w3.org%2FTR%2F2016%2FREC-vibration-20161018%2F&doc2=https%3A%2F%2Flabs.w3.org%2Fspec-generator%2F%3Ftype%3Drespec%26url%3Dhttps%253A%252F%252Fraw.githubusercontent.com%252Fw3c%252Fvibration%252Fchanges%252Findex.html).

Thank you for your review!

-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3ctag/design-reviews/issues/971
You are receiving this because you are subscribed to this thread.

Message ID: <w3ctag/design-reviews/issues/971@github.com>

Received on Friday, 28 June 2024 05:09:49 UTC