HTML5:
HTML5 is currently being developed as
the next major revision of HTML (HyperText Markup Language), the core
markup language of the World Wide Web.
HTML5 is the proposed next standard for HTML 4.01, XHTML 1.0 and DOM
Level 2 HTML. It aims to reduce the need for proprietary plug-in-based
rich internet application (RIA)
technologies such as Adobe Flash and Microsoft Silverlight. In common
usage, HTML5 may also refer to the additional use of CSS3, as both
technologies are under development in parallel. See the colourful infographic called “WTF is HTML5?”created by Focus.com.
W3C Standardization Process:
The Web Hypertext Application Technology Working Group
(WHATWG) started work on the specification in June 2004 under the name
Web Applications 1.0. As of March 2010, the specification is in the Draft Standard state at the WHATWG, and in Working Draft state at the W3C. Ian Hickson of Google, Inc. is the editor of HTML5.
The HTML5 specification was adopted as the starting point of the work of the new HTML working group of the World Wide Web
Consortium (W3C) in 2007. This working group published the First Public
Working Draft of the specification on January 22, 2008. The
specification is an ongoing work, and is expected
to remain so for many years, although parts of HTML5 are going to be
finished and implemented in browsers before the whole specification
reaches final Recommendation status.
According to the W3C timetable, it is
estimated that HTML5 will reach W3C Recommendation by late 2010.
However, the First Public Working Draft estimate was missed by 8 months,
and Last Call and Candidate
Recommendation were expected to be reached in 2008, but as of May 2010
HTML5 is still at Working Draft stage in the W3C. HTML5 has been at Last Call
in the WHATWG since October 2009. Ian Hickson, editor of the HTML5
specification, expects the specification to reach the W3C Candidate
Recommendation stage during 2012, and W3C Recommendation in the year
2012 or later.
Markup
HTML5 introduces a number of new
elements and attributes that reflect typical usage on modern websites.
Some of them are semantic replacements for common uses of generic block
(<div>) and inline (<span>) elements, for example
<nav> (website navigation block) and <footer> (usually refer
to bottom of web page or to last lines of html code).
Other elements provide new functionality through a standardized
interface, such as the multimedia elements <audio> and
<video>. Some deprecated elements from HTML 4.01 have been
dropped, including purely presentational elements such as <font>
and <center>, whose effects are achieved using Cascading Style Sheets. There is also a renewed emphasis on the importance of DOM scripting (e.g., JavaScript) in Web behavior.
The HTML5 syntax is no longer based on
SGML despite the similarity of its markup. It has, however, been
designed to be backward compatible with common parsing of older versions
of HTML. It comes with a new introductory line that looks like an SGML
document type declaration, <!DOCTYPE html>, which enables
standards-compliant rendering in all browsers that use “DOCTYPE
sniffing”.
HTML5 also incorporates Web Forms 2.0, another WHATWG specification.
New APIs
In addition to specifying markup, HTML5
specifies scripting application programming interfaces (APIs). Existing
document object model (DOM) interfaces are extended and de facto
features documented. There are also new APIs, such as:
- The canvas element for immediate mode 2D drawing
- Timed media playback
- Offline storage database (offline web applications)
- Document editing
- Drag-and-drop
- Cross-document messaging (web messaging)
- Browser history management
- MIME type and protocol handler registration.
- Microdata
Some of the new features are part of
HTML5 mainly because there are no volunteers to split HTML5 and maintain
separate specifications of these features.
Differences from HTML 4.01 and XHTML 1.x
The following is a list of differences and some specific examples:
- New parsing rules: oriented towards flexible parsing and compatibility; not based on SGML;
- Ability to use inline SVG and MathML in text/html;
- New elements: article, aside, audio, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark, meter, nav, output, progress, rp, rt, ruby, section, source, summary, time, video
- New types of form controls: dates and times, email, url, search;
- New attributes: ping (on a and area), charset (on meta), async (on script);
- Global attributes (that can be applied for every element): id, tabindex, hidden, data-* (custom data attributes);
- Forms will get support for PUT and DELETE methods too instead of just GET and POST (see Representational State Transfer for use cases);
- Deprecated elements will be dropped altogether: acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, s, strike, tt, u. [HTML5 via Wiki and Focus]