Standards for Web Applications on Mobile: current state and roadmap

September 2013

Latest version
http://www.w3.org/Mobile/mobile-web-app-state/
This version
http://www.w3.org/2013/09/mobile-web-app-state/ (PDF version)
Previous version
http://www.w3.org/2013/06/mobile-web-app-state/

Web technologies have become powerful enough that they are used to build full-featured applications; this has been true for many years in the desktop and laptop computer realm, but is increasingly so on mobile devices as well.

This document summarizes the various technologies developed in W3C that increase the capabilities of Web applications, and how they apply more specifically to the mobile context. A good subset of these technologies are described and explained in the W3C on-line training on programming Web applications.

  1. Graphics
  2. Multimedia
  3. Device Adaptation
  4. Forms
  5. User interactions
  6. Data storage
  7. Personal Information Management
  8. Sensors and hardware integration
  9. Network
  10. Communication_and_Discovery
  11. Packaging
  12. Performance & Optimization

Status and changes

This document is the eleventh edition of this overview of mobile Web applications technologies. The previous edition was released in June 2013. A live version of this document accepts contributions in the W3C Wiki.

Feedback on every aspect of this document should be sent to the author (dom@w3.org) and will serve as input for the next iteration of the document. The author expects that the next iteration will be endorsed and published by the newly chartered Web and Mobile Interest Group.

This edition adds graphical representations of the editing activity around a given specification, and new icons to represent the various recommendation track stages.

It documents the following changes in the Web platform since June 2013:

Document structure

The features that these technologies add to the Web platform are organized under the following categories: graphics, multimedia, device adaptation, forms, user interactions, data storage, personal information management, sensors and hardware integration, network, communication and discovery, packaging, performance & optimization.

Diagram showing the various components of the Web platform
The Web as an application development platform

In each category, a table summarizes for each feature:

As a reminder, W3C creates Web standards by progressing documents through its Recommendation track, with the following stages:

Prior to starting standardization, a Working Group needs to be chartered, based on input from W3C Members, often through the organization of a workshop, or after the reception of a W3C Member Submission.

W3C has set up Community Groups, a mechanism that allows anyone to do experimental work within the W3C infrastructure, under IPR rules that are compatible to transition the work to the W3C standardization process.

1. Graphics

SVG, Scalable Vector Graphics, provides an XML-based markup language to describe two-dimensions vector graphics. Since these graphics are described as a set of geometric shapes, they can be zoomed at the user request, which makes them well-suited to create graphics on mobile devices where screen space is limited. They can also be easily animated, enabling the creation of very advanced and slick user interfaces.

The integration of SVG in HTML5 opens up new possibilities, for instance applying advanced graphic filters (through SVG filters) to multimedia content, including videos. SVG 2.0 is set to facilitate that integration and complete the set of features in SVG.

In complement to the declarative approach provided by SVG, the <canvas> element added in HTML5 enables a 2D programmatic API that is well-suited for processing graphics in a less memory intensive way. That API not only allows rendering graphics, but can also be used to do image processing and analysis — HTML 5.1 adds the ability to do that processing in a separate Web Worker.

Both SVG and HTML can be styled using CSS (Cascading Style Sheets); in particular, CSS3 (the third level of the specification) is built as a collection of specifications set to offer a large number of new features that make it simple to create graphical effects, such as rounded corners, complex background images, shadow effects (CSS Backgrounds and Borders), rotated content (CSS Transforms, including with 3D effects), animations (CSS Animations, and CSS Transitions).

Animations, which can also be managed via scripting through the API exposed in Web Animations, can be resource intensive — the possibility offered by the Timing control for script-based animations API to manage the rate of updates to animations can help keep them under control.

Fonts play also an important role in building appealing graphical interfaces, but mobile devices are in general distributed with only a limited set of fonts. WOFF (Web Open Font Format) addresses that limitation by making it easy to use fonts that are automatically downloaded through style sheets, while keeping the size of the downloaded fonts limited to what is actually needed to render the interface.

Another important aspect in graphics-intensive applications (e.g. games) is the possibility to use the entire screen to display the said graphics; the Fullscreen API lets a Web application requests and detects full screen display.

Likewise, in these scenarios, it is often useful to be able to lock the orientation of the screen; the Screen Orientation API allows not only to detect orientation change, but also to lock the orientation in a specific state.

NB: a 3D graphic API for HTML5 canvas, called WebGL, has been developed outside of W3C, as part of the Khronos Group; this API has been built to be compatible with OpenGL ES, i.e. for embedded systems, and is intended to work on mobile devices.

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
2D Vector Graphics SVG 1.1
CoreMob 2012
SVG Working Group Recommendation Finished New version of SVG (SVG 2.0) in preparation Widely deployed
Support for svg12, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 3.0, Supported in Opera mobile from version 10.0, Supported in Chrome for Android from version 29.0
SVG Tutorials on WebPlatform Docs High coverage
SVG 2 Working Draft Early draft Regularly updated
Commits activity on editors draft of SVG 2
N/A
Support for svg2, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
N/A
2D Programmatic API HTML Canvas 2D Context
CoreMob 2012
HTML Working Group Candidate Recommendation Stable Updated regularly
Commits activity on editors draft of HTML Canvas 2D Context
Widely deployed
Support for canvas, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 10.0, Supported in Chrome for Android from version 29.0
Canvas tutorial on WebPlatform Docs HTML5 on-line course on W3DevCampus
HTML 5.1 Canvas Proxy Working Draft Early draft Updated regularly
Commits activity on editors draft of HTML 5.1 Canvas Proxy
None
Support for canvasproxy, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
None
Complex layouts CSS Flexible Box Layout Module
CoreMob 2012
CSS Working Group Candidate Recommendation Mostly finished Updated regularly
Commits activity on editors draft of CSS Flexible Box Layout Module
Well deployed
Support for flexbox, Supported in Safari on iOS from version 7.0, Supported in Blackberry browser from version 10.0, Supported in Internet Explorer on Windows Phone from version 11.0, Partial support in Firefox mobile from version 24.0, Partial support in Android browser from version 2.1, Supported in Opera mobile from version 12.1, Supported in Chrome for Android from version 29.0
Well started
Rounded Corners CSS Backgrounds and Borders
CoreMob 2012
Candidate Recommendation Mostly finished Updated regularly
Commits activity on editors draft of CSS Backgrounds and Borders
Well deployed
Support for css-rounded, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Good coverage
Complex background images Well deployed
Support for css-border, Supported in Safari on iOS from version 6.0, Supported in Blackberry browser from version 10.0, Supported in Internet Explorer on Windows Phone from version 11.0, Supported in Firefox mobile from version 24.0, Partial support in Android browser from version 2.1, Supported in Opera mobile from version 14.0, Supported in Chrome for Android from version 29.0
CSS Background images tutorial on WebPlatform Docs
Box shadow effects Widely deployed
Support for css-boxshadow, Supported in Safari on iOS from version 4.0, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 4.0, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
2D Effects CSS Transforms
CoreMob 2012
Working Draft Mostly stable Latest update Jul 2013
Commits activity on editors draft of CSS Transforms
Well deployed
Support for css-2d, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
CSS Transforms tutorial on WebPlatform Docs Good coverage
3D Effects Stabilizing Well deployed
Support for css-3d, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Partial support in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 3.0, Supported in Opera mobile from version 14.0, Supported in Chrome for Android from version 29.0
Animations CSS Animations Module Level 3
CoreMob 2012
Working Draft Early draft Updated regularly
Commits activity on editors draft of CSS Animations Module Level 3
Well deployed
Support for css-animation, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 4.0, Supported in Opera mobile from version 12.1, Supported in Chrome for Android from version 29.0
CSS Animations tutorial on WebPlatform Docs None
CSS Transitions Module Level 3
CoreMob 2012
Working Draft Early draft Latest update Sep 2013
Commits activity on editors draft of CSS Transitions Module Level 3
Well deployed
Support for css-transitions, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 10.0, Supported in Chrome for Android from version 29.0
CSS Transitions tutorial on WebPlatform Docs None
Web Animations CSS Working Group and SVG Working Group Working Draft Early draft Regularly updated
Commits activity on editors draft of Web Animations
None
Support for webanimations, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
None
Timing control for script-based animations API
CoreMob 2012
Web Performance Working Group Last Call Working Draft Stabilizing Last update Feb 2013
Commits activity on editors draft of Timing control for script-based animations API
Well deployed
Support for animation-timing, Supported in Safari on iOS from version 6.0, Supported in Blackberry browser from version 10.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 14.0, Supported in Chrome for Android from version 29.0
Well started
Downloadable fonts WOFF File Format 1.0
CoreMob 2012
WebFonts Working Group Recommendation Finished Finished Good deployment
Support for woff, Supported in Safari on iOS from version 5.0, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Overview of Web fonts on WebPlatform Docs Good coverage
Fullscreen display Fullscreen API
Partially addresses requirements of CoreMob 2012
Web Apps and CSS Working Groups Working Draft Early draft Last update Oct 2012
Commits activity on editors draft of Fullscreen API
Limited
Support for fullscreen, Not supported in Safari on iOS, Partial support in Blackberry browser from version 10.0, Supported in Internet Explorer on Windows Phone from version 11.0, Partial support in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 14.0, Supported in Chrome for Android from version 29.0
Using the full-screen API on WebPlatform Docs None
Orientation Lock The Screen Orientation API
Partially addresses requirements of CoreMob 2012
Web Apps Working Groups Working Draft Early draft Regularly updated
Commits activity on editors draft of The Screen Orientation API
Very limited
Support for screenlock, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile from version 14, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
None

2. Multimedia

HTML5 adds two tags that dramatically improve the integration of multimedia content on the Web: the <video> and <audio> tags. Respectively, these tags allow embedding video and audio content, and make it possible for Web developers to interact much more freely with that content than they would through plug-ins. They make multimedia content first-class citizens of the Web, the same way images have been for the past 20 years.

The playback content can be augmented and completed via Media Source Extensions that lets developers generate media content in JavaScript.

To cater for the needs of some content providers, a proposal to enable playback of protected content, Encrypted Media Extensions is an API that is under consideration in the HTML Working Group.

The Pick Media Intent offers a Web-intent based approach to search and retrieve locally or remotely stored media content, while the Network Service Discovery API opens the door for integrating DLNA-hosted content into Web applications.

While the new HTML5 tags allow to play multimedia content, the HTML Media Capture defines a markup-based mechanism to access captured multimedia content using attached camera and microphones, a very common feature on mobile devices. The Web Real-Time Communications Working Group and the Device APIs Working Group are building together an API (getUserMedia) to directly manipulate streams from camera and microphones, as well as an API to record these streams into files, and another API to use access to cameras to take photos programatically.

Beyond capturing and recording, two additional APIs add multimedia manipulation capabilities to the Web platform. We have already mentioned the Canvas 2D Context API: it enables modifying images, which in turn opens up the possibility of video editing.

In a similar vein, the Audio Working Group is working on an API that that makes it possible to modify audio content, as well as analyze, modify and synthesize sounds, the Web Audio API.

The combination of all these features marks the starting point of the Web as a comprehensive platform for multimedia, both for consuming and producing. The rising interest around bridging the Web and TV worlds (manifested through the W3C Web and TV Interest Group) should strengthen that trend in the coming months. Mobile devices are expected to take a growing role in many users TV experience, providing a “second screen” experience, where users can find more information on or interact with a TV program they're watching via their mobile devices.

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Video playback HTML5 video element
CoreMob 2012
HTML Working Group Candidate Recommendation Mostly stable Updated regularly
Commits activity on editors draft of HTML5 video element
Good deployment
Support for video, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.3, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Video Basics on WebPlatform Docs HTML5 on-line course on W3DevCampus
Audio playback HTML5 audio element
CoreMob 2012
Candidate Recommendation Good deployment
Support for audio, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.3, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Audio tag tutorial on WebPlatform Docs HTML5 on-line course on W3DevCampus
Protected content playback Encrypted Media Extensions Working Draft Early draft Latest update Sep 2013
Commits activity on editors draft of Encrypted Media Extensions
Very limited
Support for drm, Not supported in Safari on iOS, Not supported in Blackberry browser, Supported in Internet Explorer on Windows Phone from version 11, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Multimedia Gallery access Pick Media Intent Device APIs Working Group Working Draft Early Web-intents based approach; stalled due to lack of progress on Web Intents Last updated Aug 2012
Commits activity on editors draft of Pick Media Intent
N/A
Network Service Discovery Working Draft Early draft Last updated Sep 2013
Commits activity on editors draft of Network Service Discovery
None
Support for discovery, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Capturing audio/video HTML Media Capture
CoreMob 2012
Device APIs Working Group Candidate Recommendation Stable Latest update May 2013
Commits activity on editors draft of HTML Media Capture
Growing deployment
Support for inputaccept, Supported in Safari on iOS from version 6.0, Supported in Blackberry browser from version 10, Not supported in Internet Explorer on Windows Phone, Partial support in Firefox mobile from version 9, Partial support in Android browser from version 3.0, Not supported in Opera mobile, Supported in Chrome for Android from version 18
Media Capture and Streams Joint work between Web Real-Time Communications Working Group and Device APIs Working Group Working Draft Stabilizing Regularly updated
Commits activity on editors draft of Media Capture and Streams
Limited but growing
Support for getusermedia, Not supported in Safari on iOS, Supported in Blackberry browser from version 10.0, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 12.0, Supported in Chrome for Android from version 29.0
MediaStream Recording API Working Draft Early draft Updated regularly
Commits activity on editors draft of MediaStream Recording API
None
Support for recording, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Mediastream Image Capture Working Draft Early draft Last updated July 2013
Commits activity on editors draft of Mediastream Image Capture
None
Support for mediacapture, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Generation of media content Media Source Extensions HTML Working Group Last Call Working Draft Stabilizing Regularly updated
Commits activity on editors draft of Media Source Extensions
Limited
Support for mse, Not supported in Safari on iOS, Not supported in Blackberry browser, Supported in Internet Explorer on Windows Phone from version 11, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Supported in Chrome for Android from version 23
None
Image & Video analysis, modification HTML Canvas 2D Context
CoreMob 2012
HTML Working Group Candidate Recommendation Stable Updated regularly
Commits activity on editors draft of HTML Canvas 2D Context
Widely deployed
Support for canvas, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 10.0, Supported in Chrome for Android from version 29.0
Audio analysis, modification Web Audio API Audio Working Group Working Draft Starting to stabilize Regularly updated
Commits activity on editors draft of Web Audio API
Limited
Support for webaudio, Partial support in Safari on iOS from version 6.0, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Partial support in Chrome for Android from version 29.0
An introduction to the Web Audio API on WebPlatform Docs

3. Device Adaptation

Mobile devices not only differ widely from traditional computers, but they also have a lot of variations among themselves, in term of screen size, resolution, type of keyboard, media recording capabilities, etc.

The Device Description Repository API is a unified server-side API that allows Web developers to retrieve data on the devices that are accessing their pages on a variety of device information database.

The Media Capture Streams API exposes some specific information on capabilities of camera and microphones to make it possible to take advantage of the large variety of media capturing devices provided on mobile phones.

CSS Media Queries offer a mechanism that allows adapting the layout and behavior of a Web page based on some of the characteristics of the device, including the screen resolution — to which Media Queries Level 4 proposes to add the availability and type of a pointing device, the ability to hover over elements, and the ambient luminosity. CSS Device Adaptation defines a set of CSS directives to define the size on which this layout should be based, relatively to the size of the underlying device — specifying what has been implemented using the <meta name="viewport"> element so far.

The proposal for a new picture element, initially developed by the Responsive Images Community Group, has been taken up by the HTML Working Group as one of the proposed extensions to HTML. It lets authors define what image to show depending on the rendering context as determined through media queries.

As a complementary approach, the srcset attribute, developed in the WHATWG and also published an extension to HTML, let Web developers define the various existing resolutions of an image, letting the browser pick the best choice for the resolution of the screen. At this time, this approach is the one that seems to be gaining the most momentum among some of the browser vendors.

A brand new proposal made to the Responsive Images Community Group, the srcN attribute, offers to combine the two proposals behind another syntactical approach.

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Device information Device Description Repository Simple API (server-side) Device Description Working Group (now closed) Recommendation finished N/A Limited Good Coverage
Media Capture Capabilities Media Capture and Streams WebRTC and Device APIs Working Group Working Draft Early draft Regularly updated
Commits activity on editors draft of Media Capture and Streams
None
Support for getusermedia-cap, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
CSS-based adaptation Media Queries
CoreMob 2012
CSS Working Group Recommendation Finished Finished Widely deployed
Support for mediaqueries, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 10.0, Supported in Chrome for Android from version 29.0
CSS Mediaqueries presentation on WebPlatform Docs Good coverage
Media Queries Level 4 Editors draft Early draft Regularly updated
Commits activity on editors draft of Media Queries Level 4
None
Support for mediaqueries4, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
None
CSS Device Adaptation
CoreMob 2012
Working Draft Early draft Latest update Mar 2013
Commits activity on editors draft of CSS Device Adaptation
Very limited
Support for css-device-adapt, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Supported in Opera mobile from version 11.1, Not supported in Chrome for Android
Mobile Viewport on WebPlatform Docs N/A
Adaptive images The picture element
Partially addresses requirements of CoreMob 2012
HTML Working Group Working Draft First draft Regularly updated
Commits activity on editors draft of The picture element
None
Support for picture, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
N/A
The srcset attribute
Partially addresses requirements of CoreMob 2012
Working Draft First draft Regularly updated
Commits activity on editors draft of The srcset attribute
None
Support for srcset, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
srcN attributes for responsive images
Partially addresses requirements of CoreMob 2012
Responsive Images Community Group N/A N/A Regularly updated
Commits activity on editors draft of srcN attributes for responsive images
None
Support for srcN, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None

4. Forms

The ability to build rich forms with HTML is the basis for user input in most Web-based applications. Due to their limited keyboards, text input on mobile devices remains a difficult task for most users; HTML5 address parts of this problem by offering new type of form controls that optimize the way users will enter data:

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Date and time entries HTML5 Date and Time state of input element
CoreMob 2012
HTML Working Group Candidate Recommendation Mostly stable, but feature marked at risk Updated regularly
Commits activity on editors draft of HTML5 Date and Time state of input element
Growing
Support for inputdate, Supported in Safari on iOS from version 5.0, Supported in Blackberry browser from version 10.0, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Supported in Opera mobile from version 10.0, Supported in Chrome for Android from version 29.0
HTML5 Form features on WebPlatform Docs HTML5 on-line course on W3DevCampus
Customized text entries (tel, email, url) HTML5 telephone, email and URL state of input element
CoreMob 2012
Candidate Recommendation Stable Updated regularly
Commits activity on editors draft of HTML5 telephone, email and URL state of input element
Growing
Support for inputtext, Partial support in Safari on iOS from version 5, Partial support in Blackberry browser from version 4.7.1, Supported in Internet Explorer on Windows Phone from version 10, Partial support in Firefox mobile from version 4, Partial support in Android browser from version 3, Supported in Opera mobile from version 11, Supported in Chrome for Android from version 18
Input modality HTML 5.1 inputmode attribute Working Draft Early draft Updated regularly
Commits activity on editors draft of HTML 5.1 inputmode attribute
None
Support for inputmode, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
Input pattern HTML5 pattern attribute
CoreMob 2012
Candidate Recommendation Stable Updated regularly
Commits activity on editors draft of HTML5 pattern attribute
Limited but growing
Support for inputpattern, Not supported in Safari on iOS, Supported in Blackberry browser from version 4.7.1, Not supported in Internet Explorer on Windows Phone, Partial support in Firefox mobile from version 4, Not supported in Android browser, Supported in Opera mobile from version 11, Supported in Chrome for Android from version 18
Input hint HTML5 placeholder attribute
CoreMob 2012
Candidate Recommendation Stable Updated regularly
Commits activity on editors draft of HTML5 placeholder attribute
Well deployed
Support for inputhint, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Autocomplete for text entries HTML5 datalist element
CoreMob 2012
Candidate Recommendation Stable Updated regularly
Commits activity on editors draft of HTML5 datalist element
Limited
Support for datalist, Not supported in Safari on iOS, Supported in Blackberry browser from version 10.0, Partial support in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 10.0, Supported in Chrome for Android unknown
HTML 5.1 autocomplete attribute values Working Draft Early draft Regularly updated
Commits activity on editors draft of HTML 5.1 autocomplete attribute values
None
Support for autocomplete, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
None

5. User interactions

An increasing share of mobile devices relies on touch-based interactions. While the traditional interactions recognized in the Web platform (keyboard, mouse input) can still be applied in this context, a more specific handling of touch-based input is a critical aspect of creating well-adapted user experiences, which Touch Events in the DOM (Document Object Model) enable. The work on that specification is now nearly finished.

Meanwhile, the Pointer Events Working Group has made good progress on an alternative approach to handle user input, Pointer Events, that allows to handle mouse, touch and pen events under a single model. This new approach is expected to replace the currently more widely deployed Touch Events.

As more and more content gets rendered as long scrollable lists, more and more logic is attached to scrolling events, and the quality of the user experience of these actions is highly dependent on their performances. The CSSOM View Module determines when scrolling events get fired, and let developers specify the type of scrolling behavior they want.

Many mobile devices use on-screen keyboards to let users type; the Input Method Editor (IME) API makes it possible to coordinate the interactions between that on-screen keyboard and Web applications.

Conversely, many mobile devices use haptic feedback (such as vibration) to create new form of interactions (e.g. in games); work on a vibration API in the Device APIs Working Group is making good progress.

But as the Web reaches new devices, and as devices gain new user interactions mechanisms, it also becomes important to allow Web developers to react to a more abstract set of user interactions: instead of having to work in terms of “click”, “key press”, or “touch event”, being able to react to an “undo” command, or a “next page” command independently of how the user instructed it to the device will prove beneficial to the development of device-independent Web applications. The IndieUI Events specification, developed by a joint task force between the Web Events Working Group and the Indie UI Working Group, aims at addressing this need.

Mobile devices follow their users everywhere, and many mobile users rely on them to remind them or notify them of events, such as messages: the Web Notifications specification proposes to add that feature to the Web environment.

Mobile devices, and mobile phones in particular, are also in many cases well-suited to be used through voice-interactions; the Speech API Community Group is exploring the opportunity of starting standardization work around a JavaScript API that would make it possible for users to interact with a Web page through spoken commands, and a W3C Working Group charter is currently under review by the Advisory Committee.

The hardware constraints of mobile devices, and their different usage context can make mobile users experience similar barriers to people with disabilities. These similarities in barriers mean that similar solutions can be used to cater for them, making a Web site accessible both for people with disabilities and mobile devices a natural goal.

How Web Content Accessibility Guidelines (WCAG) and User Agent Accessibility Guidelines (UAAG) provide guidance on mobile accessibility — that is, making websites and applications more accessible to people with disabilities when they are using mobile phones and a broad range of other devices — is discussed in Mobile Accessibility.

WAI-ARIA provides semantic information on widgets, structures and behaviors hooks to make Web applications more accessible, including on mobile devices.

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Touch-based interactions Touch Events Specification
CoreMob 2012
Web Events Working Group Proposed Recommendation Mostly finished Updated regularly
Commits activity on editors draft of Touch Events Specification
Largely deployed
Support for touchevent, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Mobile Touch on WebPlatform Docs Mobile Web 2: Programming Web Applications on-line course on W3DevCampus Started
Pointer Events
Partially addresses requirements of CoreMob 2012
Pointer Events Working Group Candidate Recommendation Stable Updated regularly
Commits activity on editors draft of Pointer Events
Limited deployment
Support for pointer-events, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone from version 11.0, Supported in Firefox mobile unknown, Supported in Android browser unknown, Not supported in Opera mobile, Supported in Chrome for Android unknown
Pointer Events primer on WebPlatform Docs
Smooth scrolling CSSOM View Module
Partially addresses requirements of CoreMob 2012
CSS Working Group Working Draft Still changing Updated regularly
Commits activity on editors draft of CSSOM View Module
None
Support for smooth-scroll, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
N/A
On-screen keyboard interactions Input Method Editor API Web Applications Working Group Working Draft Still changing Last updated Aug 2013
Commits activity on editors draft of Input Method Editor API
None
Support for ime, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
N/A
Vibration Vibration API Device API Candidate Recommendation Mostly stable Updated regularly
Commits activity on editors draft of Vibration API
Limited but growing
Support for vibration, Not supported in Safari on iOS, Supported in Blackberry browser from version 10, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 11, Not supported in Android browser, Not supported in Opera mobile, Supported in Chrome for Android from version 30b
Intent-based events IndieUI: Events 1.0 Indie UI Working Group and Web Events Working Group Working Draft Early draft Last updated Aug 2013
Commits activity on editors draft of IndieUI: Events 1.0
None
Support for intents, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Notification Web Notifications Web Notifications Working Group Last Call Working Draft Stabilizing Last update Aug 2013
Commits activity on editors draft of Web Notifications
Growing deployment
Support for notification, Not supported in Safari on iOS, Supported in Blackberry browser from version 10.0, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Partial support in Opera mobile from version 14.0, Partial support in Chrome for Android from version 29.0
Notification API tutorial on WebPlatform Docs
Speech-based interactions N/A Speech API Community Group N/A N/A Last update Jan 2013
Commits activity on editors draft of N/A
N/A
Support for speechinput, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
N/A
Accessibility Relationship between Mobile Web Best Practices (MWBP) and Web Content Accessibility Guidelines (WCAG) Mobile Web Best Practices Working Group & Education and Outreach Working Group Working Group Note Finished N/A N/A N/A
Accessible Rich Internet Applications (WAI-ARIA) 1.0 Protocols & Formats Working Group Candidate Recommendation Stable Latest update Aug 2013 Growing deployment
Support for aria, Partial support in Safari on iOS from version 3.2, Not supported in Blackberry browser, Supported in Internet Explorer on Windows Phone from version 8.0, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Partial support in Opera mobile from version 10.0, Partial support in Chrome for Android from version 29.0
Well started

6. Data storage

A critical component of many applications is the ability to save state, export content, as well as integrate data from other files and services on the system.

For simple data storage, the Web Storage specification offers two basic mechanisms, localStorage and sessionStorage, that can preserve data respectively indefinitely, or on a browser-session basis.

For richer interactions, the Web platform has a growing number of APIs to interact with a device filesystem: the File Reader API makes it possible to load the content of a file, the File Writer API allows saving or modifying a file, while the nascent FileSystems API give access to more general file operations, including directory management. Discussions have started on whether these two latter APIs would better be implemented on top of IndexedDB, and a proposal for a new sandboxed filesystem API has been brought forward.

On top of this file-based access, the Indexed Database API (IndexedDB) defines a database of values and hierarchical objects that integrates naturally with JavaScript, and can be queried and updated very efficiently. Note that the work around a client-side SQL-based database, which had been started in 2009, has been abandoned in favor of this new system.

As more and more data need to be stored by the browser (e.g. for offline usage), it becomes critical for developers to get reliable storage space, which the proposed Quota Management API will offer to Web applications.

Likewise, as some of this data need to be encrypted, the emerging Web Cryptography API from the Web Cryptography Working Group exposes strong cryptography primitives to Web applications, and can be bound to pre-provisioned keys via the WebCrypto Key Discovery API.

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Simple data storage Web Storage
CoreMob 2012
Web Applications Working Group Proposed Recommendation Stable Updated regularly
Commits activity on editors draft of Web Storage
Well deployed
Support for webstorage, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 8.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Offline storage tutorial on WebPlatform Docs
File reading File API
CoreMob 2012
Last Call Working Draft Stabilizing Regular updates
Commits activity on editors draft of File API
Getting well deployed
Support for filereader, Supported in Safari on iOS from version 6.0, Supported in Blackberry browser from version 10.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 3.0, Supported in Opera mobile from version 11.1, Supported in Chrome for Android from version 29.0
Mobile Web 2: Programming Web Applications on-line course on W3DevCampus
File writing File API: Writer Working Draft Early draft, unsure future Latest update Mar 2012
Commits activity on editors draft of File API: Writer
Limited but growing
Support for filewrite, Not supported in Safari on iOS, Supported in Blackberry browser from version 10.0, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Supported in Opera mobile from version 14.0, Supported in Chrome for Android from version 29.0
None
Filesystems operations File API: Directories and System Working Draft Early draft, unsure future Latest update Mar 2012
Commits activity on editors draft of File API: Directories and System
Limited but growing
Support for filesystem, Not supported in Safari on iOS, Supported in Blackberry browser from version 10.0, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Supported in Opera mobile from version 14.0, Supported in Chrome for Android from version 29.0
None
N/A N/A N/A Early proposal N/A None
Database query/update Indexed Database API
CoreMob 2012
Candidate Recommendation Stable Regularly updated
Commits activity on editors draft of Indexed Database API
Growing
Support for indexeddb, Not supported in Safari on iOS, Partial support in Blackberry browser from version 10.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 14.0, Supported in Chrome for Android from version 29.0
Offline storage tutorial on WebPlatform Docs HTML5 on-line course on W3DevCampus
Web SQL API Working Group Note Abandoned N/A Somewhat deployed, but won’t be further deployed
Support for websql, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Supported in Android browser from version 2.1, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
N/A
Quota for Storage Quota Management API
CoreMob 2012
Working Draft Early work Last updated Mar 2013
Commits activity on editors draft of Quota Management API
Very limited
Support for quota, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Supported in Chrome for Android from version 18
None
Encrypted storage Web Cryptography API Web Cryptography Working Group Working Draft Early work Regularly updated
Commits activity on editors draft of Web Cryptography API
Limited
Support for crypto, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Partial support in Firefox mobile from version 19, Not supported in Android browser, Not supported in Opera mobile, Partial support in Chrome for Android from version 25
WebCrypto Key Discovery Working Draft Early work Last updated July 2013
Commits activity on editors draft of WebCrypto Key Discovery
None
Support for cryptokey, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None

7. Personal Information Management

Applications can benefit from integrating with existing data records; on mobile devices, the address book and calendar are particularly useful source of information, which the Contacts API and the Calendar API bring access to.

For integration in browser-based Web Apps, Web Intents based approaches have been suggested, but are now stalled due to the lack of progress around that technology.

For Web apps outside of the browser, a purely programmatic approach is part of the System Applications Working Group, with work on a Contacts Manager API in progress.

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Address book data Contacts Manager APISysApps Working GroupWorking DraftEarly draftLast updated Aug 2013
Commits activity on editors draft of Contacts Manager API
None
Support for contacts-sys, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
None
Pick Contacts Intent Device APIs Working Group Working Draft Early Web-intents based approach; stalled due to lack of progress on Web Intents Last updated Aug 2012
Commits activity on editors draft of Pick Contacts Intent
None
Support for contacts, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
Early draft based on previous API
Calendar data Calendar API Working Draft Will likely change significantly Last updated Oct 2012
Commits activity on editors draft of Calendar API
None
Support for calendar, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None

8. Sensors and hardware integration

Mobile devices are packed with sensors, making them a great bridge between the real and virtual worlds: GPS, accelerometer, ambient light detector, microphone, camera, thermometer, etc.

To take full advantage of these sensors in mobile Web applications, Web developers need to be provided with hooks to interact with them.

The Geolocation API provides a common interface for locating the device, independently of the underlying technology (GPS, WIFI networks identification, triangulation in cellular networks, etc.). Work towards a new version of the API that would include geofencing and indoor location is under consideration.

Web applications can also now access orientation and acceleration data via the DeviceOrientation Event Specification.

The work on a generic Sensor API has been put on hold in favor to designing APIs for specific sensors, such as the Proximity Events API, the Ambient Light Events API or the proposed Ambient Humidity Events API.

As already mentioned in the section on multimedia, there is ongoing work on APIs to open up access to camera and microphone streams.

The opportunity for Web applications to use Near-Field Communications (NFC) mechanisms have led to the chartering of the NFC Working Group to develop a Web NFC API.

A more global access to sensors and hardware (including USB and bluetooth) is in scope for the System Applications Working Group.

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Geolocation Geolocation API
CoreMob 2012
Geolocation Working Group Proposed Recommendation Mostly finished Last update Sep 2013
Commits activity on editors draft of Geolocation API
Widely deployed
Support for geolocation, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 9.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Introduction to Geolocation API on WebPlatform Docs Mobile Web 2: Programming Web Applications on-line course on W3DevCampus Good coverage
Motion sensors DeviceOrientation Event Specification
CoreMob 2012
Last Call Working Draft Stabilizing Last update Jun 2012
Commits activity on editors draft of DeviceOrientation Event Specification
Well deployed
Support for accelerometer, Partial support in Safari on iOS from version 4.2, Partial support in Blackberry browser from version 10.0, Partial support in Internet Explorer on Windows Phone from version 11.0, Partial support in Firefox mobile from version 24.0, Partial support in Android browser from version 3.0, Supported in Opera mobile from version 12.0, Partial support in Chrome for Android from version 29.0
Using device orientation on WebPlatform Docs Mobile Web 2: Programming Web Applications on-line course on W3DevCampus Started
Battery Status Battery Status API Device APIs Working Group Candidate Recommendation Stable Last update Apr 2013
Commits activity on editors draft of Battery Status API
Very limited
Support for battery, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 10, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
Proximity sensors Proximity Events Last Call Working Draft Stable Regularly updated
Commits activity on editors draft of Proximity Events
Very limited
Support for proximity, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 15, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
Ambient Light sensor Ambient Light Events Last Call Working Draft Stable Regularly updated
Commits activity on editors draft of Ambient Light Events
Very limited
Support for ambientlight, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 22, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
Humidity sensor Ambient Humidity Events N/A Unofficial draft Last updated Aug 2012
Commits activity on editors draft of Ambient Humidity Events
None
Support for humidity, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
N/A
Camera & Microphone streams Media Capture Streams Web Real-Time Communications Working Group and Device APIs Working Group Working Draft Stabilizing Regularly updated
Commits activity on editors draft of Media Capture Streams
Limited but growing
Support for getusermedia, Not supported in Safari on iOS, Supported in Blackberry browser from version 10.0, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 12.0, Supported in Chrome for Android from version 29.0
NFC Web NFC API NFC Working Group Editors draft Very early draft Last update Aug 2013
Commits activity on editors draft of Web NFC API
None
Support for nfc, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None

9. Network

Network connectivity represents a major asset for mobile devices: the Web is an immense store of content, as well as an almost endless source of processing power, overcoming two of the limitations of mobile devices.

The Web platform is growing a number of APIs that facilitate establishing network connectivity in different contexts.

XMLHttpRequest (the “X” in AJAX) is a widely deployed API to load content from Web servers using the HTTP and HTTPs protocol: the W3C specification (formerly known as XMLHttpRequest Level 2) completes the existing deployed API with the ability to make requests on servers in a different domain, programmatic feedback on the progress of the network operations, and more efficient handling of binary content. The work on documenting the currently deployed API (XMLHttpRequest Level 1) has been abandoned in favor of getting the new API developed more quickly.

By default, browsers do not allow to make request across different domains (or more specifically, across different origins, a combination of the protocol, domain and port) from a single Web page; this rule protects the user from having a Web site abusing their credentials and stealing their data on another Web site. Sites can opt-out of that rule by making use of the Cross-Origin Resource Sharing mechanism, opening up much wider cooperation across Web applications and services.

XMLHttpRequest is useful for client-initiated network requests, but mobile devices with their limited network capabilities and the cost that network requests induce on their battery (and sometimes on their users bill) can often make better use of server-initiated requests. The Server-Sent Events API allows triggering DOM events based on push notifications (via HTTP and other protocols.)

Early work on a Push API would allow Web applications to receive server-sent messages whether or not the said Web app is active in a browser window. As patents have been disclosed on that API, a Patent Advisory Group is being formed to assess how to make further progress possible on this work item.

The WebSocket API, built on top of the IETF WebSocket protocol, offers a bidirectional, more flexible, and less resource intensive network connectivity than XMLHttpRequest.

The work on Web Real-Time Communications will also provide direct peer-to-peer data connections between browsers with real-time characteristics, opening the way to collaborative multi-devices Web applications.

Of course, an important part of using network connectivity relies on being able to determine if such connectivity exists, and the type of network available. The HTML5 onLine DOM flag (and its associated change event, ononline) signals when network connectivity is available to the Web environment.

The network-information API addresses discovery of the network characteristics, allowing to determine for instance the rough bandwidth of the current connection. The Resource Timing API offers to measure precisely the impact of the network on the time needed to load various resources, offering another approach to adapt a Web app to its network environment.

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
HTTP(s) network API XMLHttpRequest
CoreMob 2012
Web Applications Working Group Working Draft Still changing, but starting to stabilize Latest update May 2013
Commits activity on editors draft of XMLHttpRequest
Very broad for level 1 features, growing for level 2
Support for xhr2, Supported in Safari on iOS from version 5.0, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 3.0, Supported in Opera mobile from version 12.0, Supported in Chrome for Android from version 29.0
Cross-domain requests Cross-Origin Resource Sharing
CoreMob 2012
Web Applications Working Group and Web Applications Security Working Group Candidate Recommendation Stable Latest update June 2012
Commits activity on editors draft of Cross-Origin Resource Sharing
Getting well-deployed
Support for cors, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 12.0, Supported in Chrome for Android from version 29.0
Using CORS on WebPlatform Docs
Server-pushed requests Server-Sent Event Web Applications Working Group Candidate Recommendation Stable Regularly updated
Commits activity on editors draft of Server-Sent Event
Getting well-deployed
Support for eventsource, Supported in Safari on iOS from version 4.0, Supported in Blackberry browser from version 7.0, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 11.1, Supported in Chrome for Android from version 29.0
Streaming updates with server-sent events on WebPlatform Docs
Commits activity on editors draft of Server-Sent Event
Push API Working Draft Early draft; Under review by a Patent Advisory Group Last updated Aug 2013
Commits activity on editors draft of Push API
None
Support for push, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
N/A
Bidirectional connections The WebSocket API Candidate Recommendation Stable Regularly updated
Commits activity on editors draft of The WebSocket API
Good deployment
Support for websockets, Supported in Safari on iOS from version 6.0, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 12.1, Supported in Chrome for Android from version 29.0
Using WebSockets on WebPlatform Docs Mobile Web 2: Programming Web Applications on-line course on W3DevCampus
P2P data connections WebRTC 1.0: Real-time Communication Between Browsers Web Real-Time Communications Working Group Working Draft Early draft Regularly updated
Commits activity on editors draft of WebRTC 1.0: Real-time Communication Between Browsers
Limited but growing
Support for p2p, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Not supported in Opera mobile, Supported in Chrome for Android from version 29.0
WebRTC Introduction on WebPlatform Docs None
on-line state onLine DOM state
CoreMob 2012
HTML Working Group Candidate Recommendation Mostly stable regularly updated
Commits activity on editors draft of onLine DOM state
Limited
Support for online, Not supported in Safari on iOS, Not supported in Blackberry browser, Partial support in Internet Explorer on Windows Phone from version 8, Not supported in Firefox mobile, Supported in Android browser from version 2.2, Not supported in Opera mobile, Supported in Chrome for Android from version 18
Network characteristics The Network Information API Device APIs Working Group Working Draft Early draft, not getting much traction Last update Nov 2012
Commits activity on editors draft of The Network Information API
Very limited
Support for networkapi, Not supported in Safari on iOS, Supported in Blackberry browser from version 10, Not supported in Internet Explorer on Windows Phone, Partial support in Firefox mobile from version 10, Partial support in Android browser from version 2.2, Not supported in Opera mobile, Not supported in Chrome for Android
None
Resource Timing Web Performance Working Group Candidate Recommendation Stable Last updated Aug 2013
Commits activity on editors draft of Resource Timing
Very limited
Support for res-timing, Not supported in Safari on iOS, Not supported in Blackberry browser, Supported in Internet Explorer on Windows Phone from version 10, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Supported in Chrome for Android from version 26
Early start

10. Communication and Discovery

Beyond connection to on-line services, allowing communications between users, but also between devices and between applications is an important aspect of a good mobile development platform. To communicate with unknown devices or pre-existing services, a discovery component is critical.

For Web apps not in a browser, the System Applications Working Group is working on a complete Messaging API.

The postMessage API of HTML5 Web Messaging allows for Web Applications to communicate between each other.

A joint task force of the Device APIs and Web Apps Working Groups had been looking at a mechanism called Web Intents: it aimed at closer integration of Web applications, as well as of Web applications with native applications. Some of the initial use cases for Web Intents have proved hard to expose through the regular Web browser UI, and discussions on how to properly scope that technology are on-going. In the mean time, progress on Web Intents and derived APIs has stalled.

The Network Service Discovery API offers to discover services on the local network (such as the ones offered via DLNA), enabling mobile Web applications to integrate seamlessly with these services. An alternative approach based on Web Intents has also been under exploration, but is unlikely to progress due to Web Intents being stalled.

The Web Real-Time Communications Working Group is the host of specifications for a wider set of communication opportunities:

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Emails, SMS and MMS with generated attachments Messaging API System Applications Working Group Working Draft First draft Regularly updated
Commits activity on editors draft of Messaging API
None
Support for messaging-sys, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
None
Inter-app communications HTML5 Web Messaging
CoreMob 2012
Web Applications Working Group Candidate Recommendation Stable Regularly updated
Commits activity on editors draft of HTML5 Web Messaging
Well deployed
Support for postmessage, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 11.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 10.0, Supported in Chrome for Android from version 29.0
Inter-app triggers Web Intents Device APIs Working Group and Web Apps Working Group Working Group Note Early draft; currently stalled regularly updated
Commits activity on editors draft of Web Intents
Experimental
Support for intents, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Network services discovery Web Intents Addendum - Local Services Working Draft Very early draft; based on Web Intents that is currently stalled Latest updated Oct 2012
Commits activity on editors draft of Web Intents Addendum - Local Services
None
Support for wi-local, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Network Service Discovery Device APIs Working Group Working Draft Early draft Last updated Sep 2013
Commits activity on editors draft of Network Service Discovery
None
Support for discovery, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
P2P connections WebRTC 1.0: Real-time Communication Between Browsers Web Real-Time Communications Working Group Working Draft Early draft Regularly updated
Commits activity on editors draft of WebRTC 1.0: Real-time Communication Between Browsers
None
Support for p2p, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Not supported in Opera mobile, Supported in Chrome for Android from version 29.0
WebRTC Introduction on WebPlatform Docs None
P2P Video/Audio streams

11. Packaging

An important aspect of the user experience of applications is linked to how the user perceives the said application is available permanently (even when off-line, which is particularly important on mobile devices), as well as how it can be shared and distributed, typically through purchases via applications stores — this is adequately addressed by packaging the application.

The Web platform offers two complementary approaches to packaging Web applications:

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Offline Web apps HTML5 Application Cache
CoreMob 2012
HTML Working Group Candidate Recommendation Feature at risk (Possibly major overhaul under consideration) Regularly updated
Commits activity on editors draft of HTML5 Application Cache
Well deployed
Support for manifest, Supported in Safari on iOS from version 3.2, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Introduction to using the application cache on WebPlatform Docs Mobile Web 2: Programming Web Applications on-line course on W3DevCampus
Service Worker
Partially addresses requirements of CoreMob 2012
Web Applications Working Group N/A Early draft Updated regularly
Commits activity on editors draft of Service Worker
None
Support for serviceworker, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Packaged Web App Web Manifest
Partially addresses requirements of CoreMob 2012
Web Applications Working Group Editors draft N/A Last update Aug 2013
Commits activity on editors draft of Web Manifest
N/A
Support for manifestjson, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
N/A
Runtime and Security Model for Web Applications System Applications Working Group Working Draft Early draft, will likely be replaced by a different approach Latest update Sep 2013
Commits activity on editors draft of Runtime and Security Model for Web Applications
N/A
Support for runtime, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
N/A

12. Performance & Optimization

Due to their limited CPU, and more importantly to their limited battery, mobile devices require a lot of attention in terms of performance.

The work started by the Web Performance Working Group on Navigation Timing, Resource Timing, Performance Timeline and User Timing, gives tools to Web developers for optimizing their Web applications.

Early work on a Resource Priorities specification, part of the Web Performance Working Group new charter, would let developers indicate which network requests should be prioritzed.

The proposed work on Efficient Script Yielding offers the opportunity to Web developers to use more efficiently asynchronous programming, but has some far gained very limited traction.

The API to determine whether a Web page is being displayed (Page Visibility API) can also be used to adapt the usage of resources to the need of the Web application, for instance by reducing network activity when the page is minimized. Likewise, the Timing control for script-based animations API can help reduce the usage of resources needed for playing animations.

The battery API allows adjusting the use of resources to the current level of power available in the battery of a mobile device.

Beyond optimization of resources, the perceived reactivity of an application is also a critical aspect of the mobile user experience. The thread-like mechanism made possible via Web Workers allows keeping the user interface responsive by offloading the most resource-intensive operations into a background process.

The Mobile Web Application Best Practices provide general advice on how to build Web applications that work well on mobile devices, taking into account in particular the needs for optimization.

Feature Specification Working Group Maturity Stability Latest editors draft Current implementations Developers doc Test suite
Network prioritization Resource Priorities Web Performance Working Group Editors draft Proposal Last updated Aug 2013
Commits activity on editors draft of Resource Priorities
Experimental
Support for lazy, Not supported in Safari on iOS, Not supported in Blackberry browser, Partial support in Internet Explorer on Windows Phone from version 11, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Timing hooks Navigation Timing Recommendation Finished Finished
Resource timing Candidate Recommendation Stable Last updated Aug 2013
Commits activity on editors draft of Resource timing
None
Support for res-timing, Not supported in Safari on iOS, Not supported in Blackberry browser, Supported in Internet Explorer on Windows Phone from version 10, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Supported in Chrome for Android from version 26
Early start
Performance Timeline Candidate Recommendation Stabilizing Regularly updated
Commits activity on editors draft of Performance Timeline
None
Support for perf-timeline, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
User timing Candidate Recommendation Stable Regularly updated
Commits activity on editors draft of User timing
None
Support for user-timing, Supported in Safari on iOS unknown, Supported in Blackberry browser unknown, Supported in Internet Explorer on Windows Phone unknown, Supported in Firefox mobile unknown, Supported in Android browser unknown, Supported in Opera mobile unknown, Supported in Chrome for Android unknown
Priority handling Efficient Script Yielding Editors draft Early draft Last update Apr 2013
Commits activity on editors draft of Efficient Script Yielding
Very limited
Support for setimmediate, Not supported in Safari on iOS, Not supported in Blackberry browser, Supported in Internet Explorer on Windows Phone from version 10, Not supported in Firefox mobile, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
None
Page Visibility detection Page visibility API Recommendation Finished Finished Well deployed
Support for visibilitychange, Supported in Safari on iOS from version 7.0, Supported in Blackberry browser from version 10.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 12.1, Supported in Chrome for Android from version 29.0
Animation optimization Timing control for script-based animations
CoreMob 2012
Last Call Working Draft Stabilizing Last update Feb 2013
Commits activity on editors draft of Timing control for script-based animations
Well deployed
Support for animation-timing, Supported in Safari on iOS from version 6.0, Supported in Blackberry browser from version 10.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Not supported in Android browser, Supported in Opera mobile from version 14.0, Supported in Chrome for Android from version 29.0
Well started
Threading Web Workers
CoreMob 2012
Web Applications Working Group Candidate Recommendation Stable Regularly updated
Commits activity on editors draft of Web Workers
Well deployed
Support for webworkers, Supported in Safari on iOS from version 5.0, Supported in Blackberry browser from version 7.0, Supported in Internet Explorer on Windows Phone from version 10.0, Supported in Firefox mobile from version 24.0, Supported in Android browser from version 2.1, Supported in Opera mobile from version 11.0, Supported in Chrome for Android from version 29.0
Introduction to Web Workers on WebPlatform Docs Mobile Web 2: Programming Web Applications on-line course on W3DevCampus
Battery Status Battery Status Events Device APIs Working Group Candidate Recommendation Stable Last update Apr 2013
Commits activity on editors draft of Battery Status Events
Very limited
Support for battery, Not supported in Safari on iOS, Not supported in Blackberry browser, Not supported in Internet Explorer on Windows Phone, Supported in Firefox mobile from version 10, Not supported in Android browser, Not supported in Opera mobile, Not supported in Chrome for Android
Optimization Best Practices Mobile Web Application Best Practices Mobile Web Best Practices Working Group (now closed) Recommendation Finished N/A N/A Mobile Web 1: Best Practices on-line course on W3DevCampus N/A