[DRAFT] Devices and Sensors Working Group Charter

This is a draft revised Devices and Sensors Working Group charter for discussion. It has no standing. See also the charter under which the Devices and Sensors Working Group currently operates.

The mission of the Devices and Sensors Working Group (DAS WG) is to create secure and privacy-preserving client-side APIs that enable the development of web applications that interact with device capabilities.

Join the Devices and Sensors Working Group.

Charter Status See the group status page and detailed change history.
Start date TBD
End date [dd monthname yyyy] (Start date + 2 years)
Chairs Anssi Kostiainen (Intel), Reilly Grant (Google)
Team Contact
(FTE %: 10)
Atsushi Shimono
Usual Meeting Schedule Teleconferences: topic-specific calls may be held
Face-to-face: 1 or 2 per year (only as needed)

Scope

The Devices and Sensors WG defines client-side APIs that allow web applications to make use of widely available device capabilities that enable modern, context-aware, and interactive application experiences. These capabilities include:

To fulfill its mission and to encourage broader engagement from implementers and web developers alike, this WG is committed to security and privacy focused and use case-driven specification development.

As per the commitment to secure and privacy-preserving specifications, APIs in scope that expose sensitive data will define normative mitigations to address any known security and privacy threats. These mitigations are developed and reviewed together with the security and privacy community and incorporated normatively into the respective specifications. In addition, the WG produces non-normative security and privacy explainers that describe concrete best practices, design patterns, and mitigation strategies that cater to web developers to raise awareness.

The group will document use cases and requirements that inform the scope of the technical work to ensure the APIs limit their functionality and data exposure to the minimum required to implement real-world use cases adhering to the principles of data minimization. Applicability of mitigation strategies such as data quantization and permissions grants will be assessed on a use-case basis considering the requirements derived from real-world use cases.

The WG will reuse existing security and privacy-focused web features and APIs developed in other groups where applicable. If the existing solutions do not provide the level of protection required, the WG will explore innovative new security and privacy mechanisms.

Out of Scope

Hardware security services are out of scope for this WG.

Deliverables

Normative Specifications

The Working Group will deliver the following W3C normative specifications:

Battery Status API

An API to react to a device power status

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2022/WD-battery-status-20220203/

Reference Draft: http://www.w3.org/TR/2016/CR-battery-status-20160707/

Produced under Working Group Charter: https://www.w3.org/2016/03/device-sensors-wg-charter.html

Screen Wake Lock API

An API to prevent the screen from turning off

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2023/WD-screen-wake-lock-20230719/

Reference Draft: https://www.w3.org/TR/2017/CR-wake-lock-20171214/

Produced under Working Group Charter: https://www.w3.org/2016/03/device-sensors-wg-charter.html

Note: This work is a joint deliverable with the Web Applications Working Group.

System Wake Lock API

An API to prevent the CPU from entering a deep power state

Draft state: ED

Adopted Draft: https://www.w3.org/TR/2017/CR-wake-lock-20171214/

Reference Draft: https://www.w3.org/TR/2017/CR-wake-lock-20171214/

Produced under Working Group Charter: https://www.w3.org/2016/03/device-sensors-wg-charter.html

Generic Sensor API

An API that serves as a basis for APIs that retrieve data from sensors

Draft state: Candidate Recommendation

Adopted Draft: https://www.w3.org/TR/2023/CRD-generic-sensor-20230810/

Reference Draft: https://www.w3.org/TR/2019/CR-generic-sensor-20191212/

Produced under Working Group Charter: https://www.w3.org/2019/03/devices-sensors-wg-charter.html

Proximity Sensor

An API to monitor the presence of nearby objects without physical contact

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2023/WD-proximity-20230130/

Reference Draft: http://www.w3.org/TR/2012/WD-proximity-20121206/

Produced under Working Group Charter: http://www.w3.org/2011/07/DeviceAPICharter.html

Ambient Light Sensor

An API to monitor the ambient light level of the device’s environment

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2023/WD-ambient-light-20230721/

Reference Draft: https://www.w3.org/TR/2018/CR-ambient-light-20180320/

Produced under Working Group Charter: https://www.w3.org/2016/03/device-sensors-wg-charter.html

Accelerometer

An API to monitor acceleration in the device's three primary axes

Draft state: Candidate Recommendation

Adopted Draft: https://www.w3.org/TR/2023/CRD-accelerometer-20230130/

Reference Draft: https://www.w3.org/TR/2019/CR-accelerometer-20191212/

Produced under Working Group Charter: https://www.w3.org/2019/03/devices-sensors-wg-charter.html

Gyroscope

An API to monitor the rate of rotation around the device’s three primary axes

Draft state: Candidate Recommendation

Adopted Draft: https://www.w3.org/TR/2023/CRD-gyroscope-20230130/

Reference Draft: https://www.w3.org/TR/2019/CR-gyroscope-20191212/

Produced under Working Group Charter: https://www.w3.org/2019/03/devices-sensors-wg-charter.html

Magnetometer

An API to measure the magnetic field around the device’s three primary axes

Draft state: Candidate Recommendation

Adopted Draft: https://www.w3.org/TR/2023/WD-magnetometer-20230130/

Reference Draft: https://www.w3.org/TR/2018/CR-magnetometer-20180320/

Produced under Working Group Charter: https://www.w3.org/2016/03/device-sensors-wg-charter.html

Orientation Sensor

An API to monitor the device’s physical orientation in relation to a stationary three dimensional Cartesian coordinate system

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2023/WD-orientation-sensor-20230801/

Reference Draft: https://www.w3.org/TR/2019/CR-orientation-sensor-20191212/

Produced under Working Group Charter: https://www.w3.org/2019/03/devices-sensors-wg-charter.html

DeviceOrientation Event specification

An event-based API that provides information about the physical orientation and motion of a hosting device

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2023/WD-orientation-event-20230421/

Reference Draft: https://www.w3.org/TR/2016/CR-orientation-event-20160818/

Produced under Working Group Charter: https://www.w3.org/2016/03/device-sensors-wg-charter.html

Note: This work is a joint deliverable with the Web Applications Working Group.

Geolocation Sensor

An API for obtaining geolocation reading from the hosting device, based on the Generic Sensor API

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2022/WD-geolocation-sensor-20220316/

Reference Draft: https://www.w3.org/TR/2018/WD-geolocation-sensor-20180821/

Produced under Working Group Charter: https://www.w3.org/2018/06/devices-sensors-wg-charter.html

Device Posture API

An API that allows web applications to request and be notified of changes of the posture of a foldable device. (Formerly the Fold Angle Sensor API.)

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2023/WD-device-posture-20230404/

Reference Draft: https://www.w3.org/TR/2020/WD-screen-fold-20201217/

Produced under Working Group Charter: https://www.w3.org/2020/11/das-wg-charter.html

Contact Picker API

An API to give one-off access to a user’s contact information with full control over the shared data

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2023/WD-contact-picker-20230308/

Reference Draft: https://www.w3.org/TR/2022/WD-contact-picker-1-20221220/

Produced under Working Group Charter: https://www.w3.org/2022/11/das-wg-charter.html

Note: This work is a joint deliverable with the Web Applications Working Group.

Compute Pressure

An API that conveys the utilization of CPU resources on the user's device

Draft state: Working Draft

Adopted Draft: https://www.w3.org/TR/2023/WD-compute-pressure-20230831/

Reference Draft: https://www.w3.org/TR/2022/WD-compute-pressure-20221220/

Produced under Working Group Charter: https://www.w3.org/2022/11/das-wg-charter.html

Tentative Deliverables

Depending on the progress, including consideration for adequate implementation experience, the Group may also produce W3C Recommendations for the following documents:

Network Information API

An API to discover the current network characteristics

Note: the group will determine in collaboration with the WICG whether the existing implementations of this API on mobile warrant restarting the standardization process

Draft state: Draft Community Group Report

Adopted Draft: Adopted from WICG (see also Working Group Note that predates the WICG Draft Report)

Idle Detection API

An API for observing system-wide user presence signals

Draft state: Draft Community Group Report

Adopted Draft: Adopted from WICG

Maintenance

The Working Group will maintain errata and new editions, as necessary, for the Geolocation API, Vibration API, and HTML Media Capture W3C Recommendations.

Note: The Geolocation API is a joint deliverable with the Web Applications Working Group.

Since HTML Media Capture extends the HTML Living Standard, the Working Group may propose to W3C to upstream the spec, to the WHATWG HTML LS for maintenance, as anticipated by Section 10.2 of the Memorandum of Understanding Between W3C and WHATWG.

Adding new Recommendation-track deliverables

If additional in-scope Recommendation-track deliverables need to be added to the Charter before the Charter expires, the Working Group will prepare an updated Charter that differs only in deliverables.

The Working Group will not adopt new proposals until they have matured through the Web Platform Incubator Community Group or another similar incubation phase.

Other Deliverables

Use cases and requirements that inform the scope of the technical work to ensure the APIs limit their functionality and data exposure to the minimum required to implement real-world use cases adhering to the principles of data minimization.

Security and privacy explainers that describe concrete best practices, design patterns, and mitigation strategies that cater to web developers to raise awareness.

Timeline

Milestones
Specification FPWD CR PR Rec
Battery Status API 26 Apr 2011 7 Jul 2016 Q3 2024 Q4 2024
Screen Wake Lock API 12 Feb 2015 14 Dec 2017 Q3 2024 Q4 2024
System Wake Lock API 12 Feb 2015 14 Dec 2017
Generic Sensor API 15 Oct 2015 12 Dec 2019 Q3 2024 Q4 2024
Proximity Sensor 12 July 2012 01 October 2013 Q3 2024 Q4 2024
Ambient Light Sensor 2 Aug 2012 20 Mar 2018 Q3 2024 Q4 2024
Accelerometer 13 September 2016 12 Dec 2019 Q3 2024 Q4 2024
Gyroscope 13 September 2016 12 Dec 2019 Q3 2024 Q4 2024
Magnetometer 13 September 2016 20 Mar 2018 Q3 2024 Q4 2024
Orientation Sensor 11 May 2017 12 Dec 2019 Q3 2024 Q4 2024
Device Posture API 17 December 2020 Q2 2024
DeviceOrientation Event specification 28 June 2011 18 August 2016 Q3 2024 Q4 2024
Geolocation Sensor 21 August 2018 Q2 2024
Network Information API Q3 2024 Q4 2024
Contact Picker API 20 December 2022 Q4 2024
Idle Detection API Q3 2024 Q4 2024
Compute Pressure 20 December 2022 Q4 2024

Note: The actual production of some of the deliverables may follow a different timeline. The group documents any schedule changes on the group home page.

Success Criteria

To advance to Proposed Recommendation, each specification must have two independent implementations of all defined features, at least one of which is on a mobile device.

Comprehensive test suites will be developed for each specification to ensure interoperability, and the group will create interoperability reports. The group will also maintain errata as required for the continued relevance and usefulness of the specifications it produces.

Each specification must contain a section on accessibility that describes the benefits and impacts, including ways specification features can be used to address them, and recommendations for maximising accessibility in implementations.

Each specification must detail all known security and privacy implications for implementers, Web authors, and end users.

APIs that cannot be demonstrated to be implementable securely within the default browser context will not be released.

The specifications produced by this WG must mitigate disclosure of data when possible and seek meaningful user consent in other cases. If the WG decides that one or more of its specifications cannot be usefully implemented while simultaneously allowing users to meaningfully consent to the use of sensitive data, it should not advance those specifications.

The Devices and Sensors WG will follow a test as you commit approach to specification development, for specifications in CR or above.

All normative spec changes are generally expected to have a corresponding pull request in web-platform-tests, either in the form of new tests or modifications to existing tests, or must include the rationale for why test updates are not required for the proposed update.

Typically, both pull requests (spec updates and tests) will be merged at the same time. If a pull request for the specification is approved but the other needs more work, add the 'needs tests' label or, in web-platform-tests, the 'status:needs-spec-decision' label. Note that a test change that contradicts the specification should not be merged before the corresponding specification change.

If testing is not practical due to web-platform-tests limitations, please explain why and if appropriate file an issue with the 'type:untestable' label to follow up later.

Coordination

For all specifications, this Working Group will seek horizontal review for accessibility, internationalization, privacy, and security with the relevant Working and Interest Groups, and with the TAG. Invitation for review must be issued during each major standards-track document transition, including FPWD. The Working Group is encouraged to engage collaboratively with the horizontal review groups throughout development of each specification. The Working Group is advised to seek a review at least 3 months before first entering CR and is encouraged to proactively notify the horizontal review groups when major changes occur in a specification following a review.

Additional technical coordination with the following Groups will be made, per the W3C Process Document:

W3C Groups

Web Application Security Working Group
The Web Application Security Working Group is developing guidance on APIs that expose sensitive information, and an API to manage permissions, both of which matter to several of this group’s specifications.
Privacy Community Group
Both the Devices and Sensors WG and Privacy CG are committed to privacy-focused web features and APIs. This WG may reuse proposals developed in the Privacy CG to improve user privacy through enhanced browser behavior.
Web Applications Working Group
This group defines relevant specifications including the File API and Web App Manifest.
The Screen Wake Lock API, the DeviceOrientation Event specification, the Contact Picker API, and the Geolocation API are joint deliverables with the Web Applications Working Group.
Web Real Time Communications Working Group
Both the Devices and Sensors and WebRTC Working Groups develop capture-related APIs.
Web of Things Working Group
The WoT group defines a Web-based abstract architecture and a data model based on JSON-LD for IoT interoperability. Coordination on terminology and vocabulary of sensor data, e.g., geolocation information, is expected.
Cascading Style Sheets (CSS) Working Group
The CSS Working Group develops media queries for the authors to query and respond to changes in the user environment, which may be related to the sensors on the user's device and the APIs developed in this group.
Accessible Platform Architectures (APA) Working Group
Coordinate on accessibility of user interface features implied by the APIs.

External Organizations

The following is a tentative list of external bodies the Working Group should collaborate with:

Ecma International Technical Committee 39 (TC39)
This is the group responsible for EcmaScript standardization, and related EcmaScript features. As this Working Group is developing EcmaScript APIs, it should collaborate with TC39.
IETF
The IETF has created specifications that are related to some of the APIs in this WG’s scope.
WHATWG
The WHATWG maintains the HTML Living Standard, which some of the specifications in this WG’s scope extend.

Participation

To be successful, this Working Group is expected to have 6 or more active participants for its duration, and to have the participation of the industry leaders in fields relevant to the specifications it produces.

The Chair(s) and specification Editors are expected to contribute one to two days per week towards the Working Group. There is no minimum requirement for other participants.

Based on the input from the group participants, the Chairs may also decide to create task forces that allow more focused discussions for topics that require specific expertise.

This Working Group will also allocate the necessary resources for building Test Suites for each specification.

The group encourages questions and comments on its public mailing lists and document repositories, as described in Communication.

The group also welcomes non-Members to contribute technical submissions for consideration upon their agreement to the terms of the W3C Patent Policy.

Participants in the group are required (by the W3C Process) to follow the W3C Code of Ethics and Professional Conduct.

Communication

Technical discussions for this Working Group are conducted in public: the meeting minutes from teleconference and face-to-face meetings will be archived for public review, and technical discussions and issue tracking will be conducted in a manner that can be both read and written to by the general public. Working Drafts and Editor's Drafts of specifications will be developed on a public repository, and may permit direct public contribution requests. The meetings themselves are not open to public participation, however.

Information about the group (for example, details about deliverables, issues, actions, status, participants) is available from the Devices and Sensors Working Group home page.

The Working Group’s Teleconferences focus on discussion of particular specifications, and are conducted on an as-needed basis.

This group primarily conducts its technical work on the public-device-apis@w3.org and on Github issues. The public is invited to review, discuss and contribute to this work.

The group uses a Member-confidential mailing list for administrative purposes and, at the discretion of the Chairs and participants of the group, for Member-only discussions in special cases when a particular participant requests such a discussion.

Decision Policy

This group will seek to make decisions through consensus and due process, per the W3C Process Document (section 5.2.1, Consensus). Typically, an editor or other participant makes an initial proposal, which is then refined in discussion with members of the group and other reviewers, and consensus emerges with little formal voting being required.

However, if a decision is necessary for timely progress, but consensus is not achieved after careful consideration of the range of views presented, the Chairs may call for a group vote, and record a decision along with any objections.

To afford asynchronous decisions and organizational deliberation, any resolution (including publication decisions) taken in a face-to-face meeting or teleconference will be considered provisional. A call for consensus (CfC) will be issued for all resolutions (for example, via email and/or web-based survey), with a response period from 5 to 10 working days, depending on the chair's evaluation of the group consensus on the issue. If no objections are raised on the mailing list by the end of the response period, the resolution will be considered to have consensus as a resolution of the Working Group.

All decisions made by the group should be considered resolved unless and until new information becomes available, or unless reopened at the discretion of the Chairs.

This charter is written in accordance with the W3C Process Document (Section 5.2.3, Deciding by Vote), and includes no voting procedures beyond what the Process Document requires.

Patent Policy

This Working Group operates under the W3C Patent Policy (Version of 15 September 2020). To promote the widest adoption of Web standards, W3C seeks to issue Recommendations that can be implemented, according to this policy, on a Royalty-Free basis. For more information about disclosure obligations for this group, please see the licensing information.

Licensing

This Working Group will use the W3C Software and Document license for all its deliverables.

About this Charter

This charter has been created according to section 3.4 of the Process Document. In the event of a conflict between this document or the provisions of any charter and the W3C Process, the W3C Process shall take precedence.

Charter history

The following table lists details of all changes from the initial charter, per the W3C Process Document (section 4.3, Advisory Committee Review of a Charter):

Charter Period Start Date End Date Changes
Initial Charter 3 July 2009 31 July 2011 N/A
Rechartered 19 August 2011 March 31 2016 Rechartered under the name "Device APIs Working Group". Thomas Roessler stepped down as team contact. Robin Berjon stepped down as co-chair in September 2012.
Rechartered 31 March 2016 30 June 2018 Rechartered under the name "Device and Sensors Working Group". Added Fuqiao Xue as team contact in September 2017. Chair changed from Frederick Hirsch to Anssi Kostiainen in September 2017.
Rechartered 30 June 2018 30 June 2020 Rechartered under the name "Devices and Sensors Working Group". Dominique Hazael-Massieux stepped down as team contact. Added Reilly Grant as co-chair. Added gyroscope, magnetometer, DeviceOrientation Event, and geolocation APIs to the group's deliverables. Removed media capture, address books, messaging applications, and similar non-sensor APIs from the group's scope of work. Reduced team support from 0.2 FTE to 0.1 FTE. Added a requirement to mitigate disclosures and/or get user consent.
Rechartered 15 March 2019 30 June 2020 Added Geolocation API for maintenance.
Charter Extension 30 June 2020 31 October 2020 none
Charter Extension 31 October 2020 30 November 2020 none
Rechartered 1 December 2020 30 November 2022 Updated Scope to describe the WG's security and privacy focused and use case-driven specification development model. Split Wake Lock API into Screen Wake Lock API and System Wake Lock API, and added Fold Angle Sensor deliverable. Noted HTML Media Capture may be upstreamed to WHATWG HTML Living Standard for maintenance.
Rechartered 1 December 2022 30 November 2024 Added Contact Picker API, Idle Detection API, and Compute Pressure to the group's tentative deliverables. Changed the Fold Angle Sensor API from a tentative to a normative deliverable, renaming it as the Device Posture API.
Rechartered [YYYY-MM-DD] [YYYY-MM-DD] Marked Screen Wake Lock API, DeviceOrientation Event specification, Contact Picker API, and Geolocation API as joint deliverables with the Web Applications Working Group. Note: Contact Picker API was published as a joint deliverables already under the 2022-12-01 charter, following an agreement with Web Applications Working Group.

Change log

Changes to this document are documented in this section.