HTML5 is more a movement (or maybe it's more appropriate to call it a brand
) than it is a technology. it says more power to the browser
and mostly means more power to the browser as a programming platform
. given this focus of HTML5, it is surprisingly hard to find a good place where all the APIs under development are listed. this page is an attempt to collect that information in one place. since the HTML5 landscape is changing fairly quickly, it is likely that some information on this page is outdated. if that is the case, please get in touch so that i can update the page. thanks!
here is a list of the functionality and APIs currently under development as standalone documents in the W3C (all links are to the latest version, the order is more or less random):
- The Contacts API: This specification defines an API that provides access to a user's unified address book.
- Selectors API Level 2: The Selectors API specification defines methods for retrieving element nodes from the DOM by matching against a group of selectors, and for testing if a given element matches a particular selector.
- Indexed Database API: This document defines APIs for a database of records holding simple values and hierarchical objects. Each record consists of a key and some value. Moreover, the database maintains indexes over records it stores. An application developer directly uses an API to locate records either by their key or by using an index. A query language can be layered on this API. An indexed database can be implemented using a persistent B-tree data structure.
- Web Workers: This specification defines an API that allows Web application authors to spawn background workers running scripts in parallel to their main page. This allows for thread-like operation with message-passing as the coordination mechanism.
- Web Storage: This specification defines an API for persistent data storage of key-value pair data in Web clients.
- The Web Sockets API: This specification defines an API that enables Web pages to use the Web Sockets protocol for two-way communication with a remote host.
- Selectors API Level 1: The Selectors API specification defines methods for retrieving Element nodes from the DOM by matching against a group of selectors.
- Server-Sent Events: This specification defines an API for opening an HTTP connection for receiving push notifications from a server in the form of DOM events. The API is designed such that it can be extended to work with other push notification schemes such as Push SMS.
- XMLHttpRequest: The XMLHttpRequest specification defines an API that provides scripted client functionality for transferring data between a client and a server.
- File API: This specification provides an API for representing file objects in web applications, as well as programmatically selecting them and accessing their data.
- File API: Writer: This specification defines an API for writing to files from web applications. This API is designed to be used in conjunction with, and depends on definitions in, other APIs and elements on the web platform. Most relevant among these are File API and Web Workers.
- File API: Directories and System: This specification defines an API to navigate file system hierarchies, and defines a means by which a user agent may expose sandboxed sections of a user's local filesystem to web applications. It builds on
File API: Writer
, which in turn built onFile API
, each adding a different kind of functionality. - XMLHttpRequest Level 2: The XMLHttpRequest Level 2 specification enhances the XMLHttpRequest object with new features, such as cross-origin requests, progress events, and the handling of byte streams for both sending and receiving.
- Geolocation API Specification: This specification defines an API that provides scripted access to geographical location information associated with the hosting device.
- HTML Canvas 2D Context: This specification defines the 2D Context for the HTML canvas element.
- HTML Microdata: This specification defines the HTML microdata mechanism. This mechanism allows machine-readable data to be embedded in HTML documents in an easy-to-write manner, with an unambiguous parsing model. It is compatible with numerous other data formats including RDF and JSON.
- HTML Media Capture: This specification defines HTML form enhancements that provide access to the audio, image and video capture capabilities of the device.
- Messaging API: This specification defines an API that provides access to messaging functionality in the device, including SMS, MMS and email.
- HTML5 Web Messaging: This specification defines two mechanism for communicating between browsing contexts in HTML documents.
- Web Notifications: This document defines an API for displaying simple notifications to the user.
- Clipboard API and Events: This document describes APIs for clipboard operations such as copy, cut and paste in web applications.
- Calendar API: The Calendar API defines the high-level interfaces required to obtain read access to a user's calendaring service.
- Battery Status Event Specification: This specification defines a new DOM event type that provides information about the battery status of the hosting device and associated auxiliary devices.
- Touch Events Specification: The Touch Interface specification defines a set of low-level events that represent one or more points of contact with a touch-sensitive surface, and changes of those points with respect to the surface and any DOM elements displayed upon it (e.g. for touch screens) or associated with it (e.g. for drawing tablets without displays). It also addresses pen-tablet devices, such as drawing tablets, with consideration toward stylus capabilities.
- Page Visibility: This specification defines a means for site developers to programmatically determine the current visibility state of the page in order to develop power and CPU efficient web applications.
- Timing Control for Script-Based Animations: This document defines an API web page authors can use to write script-based animations where the user agent is in control of limiting the update rate of the animation. The user agent is in a better position to determine the ideal animation rate based on whether the page is currently in a foreground or background tab, what the current load on the CPU is, and so on. Using this API should therefore result in more appropriate utilization of the CPU by the browser.
- Navigation Timing: This specification defines an interface for web applications to access timing information related to navigation and elements.
- Resource Timing: This specification defines an interface for web applications to access timing information related to HTML elements.
- The Network Information API: The Network Information API provides an interface for Web Applications to access the underlying network information (connection info) of the device.
- DeviceOrientation Event Specification: This specification defines several new DOM event types that provide information about the physical orientation and motion of a hosting device.
- User Timing: This specification defines an interface to help web developers measure the performance of their applications by giving them access to high precision timestamps.
- Performance Timeline: This specification defines an interface for web applications to access timing information related to navigation and elements.
- WebRTC 1.0: Real-time Communication Between Browsers: This document defines a set of APIs that allow local media, including audio and video, to be requested from a platform, media to be sent over the network to another browser or device implementing the appropriate set of real-time protocols, and media received from another browser or device to be processed and displayed locally. This specification is being developed in conjunction with a protocol specification developed by the IETF RTCWEB group.
- Vibration API: This specification defines an API that provides access to the vibration mechanism of the hosting device. Vibration is a form of tactile feedback.
- Web Audio API: This specification describes a high-level JavaScript API for processing and synthesizing audio in web applications. The primary paradigm is of an audio routing graph, where a number of AudioNode objects are connected together to define the overall audio rendering. The actual processing will primarily take place in the underlying implementation (typically optimized Assembly/C/C++ code), but direct JavaScript processing and synthesis is also supported. This API is designed to be used in conjunction with other APIs and elements on the web platform, notably: XMLHttpRequest (using the responseType and response attributes). For games and interactive applications, it is anticipated to be used with the canvas 2D and WebGL 3D graphics APIs.
- Audio Processing API: This specification introduces and compares two client-side APIs for processing and synthesizing real-time audio streams in the browser.
- High Resolution Time: This specification defines a JavaScript interface that provides the current time in sub-millisecond resolution and such that it is not subject to system clock skew or adjustments.
- Screen Orientation API: The Screen Orientation API's goal is to provide an interface for web applications to be able to read the screen orientation state, to be informed when this state changes and to be able to lock the screen orientation to a specific state.
- URL: This specification defines the term URL, various algorithms for dealing with URLs, and an API for constructing, parsing, and resolving URLs.
here is a list of specifications that have been officially deprecated or where development has been discontinued:
- Media Capture API: This specification defines an Application Programming Interface (API) that provides access to the audio, image and video capture capabilities of the device.
- Web SQL Database: This specification defines an API for storing data in databases that can be queried using a variant of SQL.
- Programmable HTTP Caching and Serving: This document defines APIs for off-line serving of requests to HTTP resources using static and dynamic responses. It extends the function of application caches defined in HTML5.
change log (latest first):
- May 24, 2012: added
URL
- May 23, 2012: added
Screen Orientation API
- March 27, 2012: moved
Media Capture API
from active to inactive list - March 13, 2012: added
High Resolution Time
- December 15, 2011: added
Web Audio API
andAudio Processing API
- November 19, 2011: added
Vibration API
- October 27, 2011: added
WebRTC 1.0: Real-time Communication Between Browsers
- August 14, 2011: added
User Timing
andPerformance Timeline
- July 1, 2011: added
DeviceOrientation Event Specification
- June 7, 2011: added
The Network Information API
- June 2, 2011: added
Page Visibility
,Timing Control for Script-Based Animations
,Navigation Timing
, andResource Timing
- May 5, 2011: added
Touch Events Specification
- April 26, 2011: added
Battery Status Event Specification
- April 19, 2011: added
Calendar API
- April 14, 2011: added
Clipboard API and Events
- April 5, 2011: marked
Programmable HTTP Caching and Serving
as deprecated - March 1, 2011: added
Web Notifications
- November 19, 2010: added
HTML5 Web Messaging
, markedWeb SQL Database
as deprecated - October 26, 2010: added
File API: Directories and System
- September 28, 2010: added
HTML Media Capture
and changed title and permalink ofMedia Capture API
(previouslyCapture API
) - August 19, 2010: updated abstract for
Indexed Database API
- August 10, 2010: added
Messaging API
- April 6, 2010: added
File API: Writer
- April 1, 2010: added
Capture API
- March 4, 2010: added
HTML Canvas 2D Context
andHTML Microdata
- January 21, 2010: initial version