Device APIs Requirements

W3C Working Group Note 15 October 2009

This Version:
Latest Published Version:
Latest Editor's Draft:
Previous version:
Robin Berjon, Vodafone
Daniel Coloma, Telefónica de España
Max Froumentin, Opera
Marcin Hanclik, Access
Jere Käpyaho, Nokia
이강찬 (Kangchan Lee), ETRI
Bryan Sullivan, AT&T
Dzung Tran, Intel


These are the requirements intended to be met in the development of client-side APIs that enable the creation of Web Applications and Web Widgets that interact with devices services such as Calendar, Contacts, Camera, etc.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This document was published by the Device APIs and Policy Working Group as a Working Group Note. If you wish to make comments regarding this document, please send them to public-device-apis@w3.org (subscribe, archives). All feedback is welcome.

This is the first publication of this document and it reflects the current vision of the Working Group on the APIs it plans to develop. There are open issues listed in the body of the document on which feedback would be particularly appreciated. The group plans to update that document as these issues get resolved.

Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

Table of Contents

1. Introduction

This section is non-normative.

The requirements in this document are produced in a high-level, functionally oriented fashion in order to provide sufficient ground on which to build without going through the full landscape analysis process given that the APIs being produced concern domains in which industry experience is already solid.

This document is not currently considered to be complete, but rather represents a snapshot of the DAP WG's thinking at the time of its publication.

2. Global Requirements

These requirements apply to all APIs produced by the DAP WG.

Should the APIs be made available on navigator, navigator.device, or straight off a window.device?

3. Application Configuration

Due to overlapping with Widgets: The widget Interface [WIDGETS-APIS] and with Web Storage [WEBSTORAGE], this deliverable has been dropped.

4. Application Launcher

The following requirements have been expressed.

The following requirements, while they could be considered to be functionally part of this API, are already addressed as part of the HTML5 [HTML5] Custom scheme and content handlers:

5. Calendar

This interface:

The above suggests support for only VEVENT. However Andrew McMillan makes the following point:

"Given that the differences between VEVENT & VTODO are trivial in comparison to the complexity of their common elements, and that VJOURNAL is entirely a subset of those, it seems to me there is very little to gain by removing VTODO and VJOURNAL from this specification. Removal might restrict clients from implementing some potentially useful functionality. The other supporting components of the specification like VALARM and VTIMEZONE seem to me so essential in any reasonable implementation of VEVENT that they don't even merit discussion."

5.1 May be considered in future versions

6. Camera

This interface:

Given support for capturing video, we need to take sound capture into account. Once that's supported, is there any reason not to support capturing sound on its own? If we go there, isn't this a Capture API, with the ability to list mikes?

If the user requests a given capture size which isn't available, do we refuse or do we fall back? If the latter (which is likely) what is the algorithm that is used to find the fallback? It could be (given a request for 1000x50):

We could very easily get bogged down in specifying camera capabilities and format feature variants — how do we decide which ones are reasonably in?

7. Communications Log

This interface:

8. Contacts

This interface:

Are there convincing use cases for supporting multiple address books in v1 (as opposed to just a default one, and maybe exposing more later)?

Do we need support for groups in v1?

9. File System

This interface:

11. Messaging

This interface:

12. System Information & Events

This interface:

This mixes system information and sensors — should they be separate? Should we have some system information and a universal sensor API? How do we get interoperability out of that?

13. Tasks

This interface:

See the issues that are part of the Calendar API.

14. User Interface

This interface:

A. Acknowledgements

The editors would like to extend special thanks to Nokia, OMTP BONDI, and PhoneGap for providing the foundation of the working group's requirements discussion.

B. References

B.1 Normative references

Robin Berjon. File Upload. 18 October 2006. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/2006/WD-file-upload-20061018
B. Desruisseaux. Internet Calendaring and Scheduling Core Object Specification (iCalendar). September 2009. Internet RFC 5545. URL: http://www.rfc-editor.org/rfc/rfc5545.txt

B.2 Informative references

Ian Hickson; David Hyatt. HTML 5. 23 April 2009. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/2009/WD-html5-20090423/
Ian Hickson. Web Storage. 10 September 2009. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/2009/WD-webstorage-20090910/
Marcos Caceres; Robin Berjon; Arve Bersvendsen. Widgets 1.0: APIs and Events. 18 August 2009. W3C Working Draft. (Work in progress.) URL: http://www.w3.org/TR/2009/WD-widgets-apis-20090818/