HTML5 introduces lots of new and exciting things for web authors, among these are new APIs. Here are some of them.
An API to interact with the application cache, which is a set of cached resources.
You can do
window.applicationCache to get the
ApplicationCache object that applies to
the active document of that window. More on application caches
DataTransfer objects are used to expose the drag data store that underlies a
drag-and-drop operation. More on drag and drop
A command is the abstraction behind menu items, buttons, and links. They are defined to have facets (label, hint, icon, etc.) and are exposed on elements using this API.
As of this writing, there is no proper definition to this. But we can assume it'll extend our client-side validation tool arsenal.
History objects provide a representation of the pages in the session history
of browsing contexts.
For example, you can go back (
window.history.back) and forward (
More on session history here.
An API to interact with the
You can do things like play (
controller.play) and pause (
More on media elements
An API to interact with the
<video> associated text tracks,
like subtitles or captions.
You can get a
media element and get a track from it like
(for the first one).
textTrack element has it's own API which can return things like the language,
readyState, mode, etc. More on media elements
textarea text elements define an API for handling their selection.
You can select everything in a text field with the
select function, or use
selectionEnd to get the currently selected text.
By the way, this is not it. There are, of course, other interfaces and current elements that are being extended with new properties and functions.
Now I present to you:
- Specs that were originally in the HTML5 spec, but were later moved out into their own.
- Specs worked on by the Web Apps Working Group (in charge of HTML5).
- Other related/interesting specs.
Defines the 2D Context for the HTML
Describes APIs for clipboard operations such as copy, cut and paste in web applications.
Defines commands to edit HTML documents programmatically.
This specification provides an API for representing file objects in web applications, as well as programmatically selecting them and accessing their data.
This specification defines an API to navigate file system hierarchies.
This specification defines an API for writing to files from web applications.
Defines two mechanisms for communicating between browsing contexts in HTML documents.
Formerly WebSimpleDB API, this document defines APIs for a database of records holding simple values and hierarchical objects.
This specification defines an API for opening an HTTP connection for receiving push notifications from a server in the form of DOM events.
This specification defines an API that enables Web pages to use the WebSocket protocol for two-way communication with a remote host.
This specification defines an API for persistent data storage of key-value pair data in Web clients.
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.
XMLHttpRequest object with new features, such as cross-origin
requests, progress events, and the handling of byte streams for both sending and
And, again, these are not it. There are other working groups in the W3C besides the Web Apps one, each one with specifications they're working on. It's crazy, I know, but hopefully this will give you an idea of what's coming. I strongly recommend you to research more about it and experiment.