HTML5 is 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, Microsoft Silverlight, and Sun JavaFX.
Markup
HTML5 introduces a number of new elements and attributes that reflect typical usage on modernWeb sites. 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 <audio>
and <video>
[9] elements.[10]
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.
HTML5 also introduces a new way of presenting multimedia with such tags as (<audio>
) and (<video>
) as a beginning to standardize the mark up of such content. Although these are new and very useful tags, their use in browsing technologies is still minimal.
New APIs
In addition to specifying markup, HTML5 specifies scripting application programming interfaces(APIs).[11] Existing document object model (DOM) interfaces are extended and de facto features documented. There are also new APIs, such as:
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.[12]
Differences from HTML 4.01 and XHTML 1.x
The following is a cursory 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
dev.w3.org providers the latest Editors Draft (lasted dated 10 March 2010) of HTML5 differences from HTML4[13] which provides complete outline of additions, removals and changes between HTML5.
Error handling
An HTML5 (text/html) browser will be flexible in handling incorrect syntax. HTML5 is designed so that old browsers can safely ignore new HTML5 constructs. In contrast to HTML 4.01, the HTML5 specification gives detailed rules for lexing and parsing, with the intent that different compliant browsers will produce the same result in the case of incorrect syntax.[14] However, although this means HTML5 now defines a consistent behavior for “tag soup” documents, this does not mean that those documents are regarded as conforming to the HTML5 standard.[14]
Peer to Peer connections
- HTML5 [15][16][17][18][19] is designed to handle connections between users (or visitors), with PeerToPeerConnection(), and also withwebsocket. This technology is a direct competitor to the new flash peer to peer technology ([flash stratus])[20][21]. This technology will eliminate bandwidth, cpu and memory costs on all servers.
—
source:en.wikipedia.org
On January 22nd, 2008, W3C published a working draft for HTML 5.
HTML 5 improves interoperability, and reduces development costs, by making precise rules on how to handle all HTML elements, and how to recover from errors.
Some of the new features in HTML 5 are functions for embedding audio, video, graphics, client-side data storage, and interactive documents.
HTML 5 also contains new elements like <nav>, <header>, <footer>, and <figure>.
The HTML 5 working group includes AOL, Apple, Google, IBM, Microsoft, Mozilla, Nokia, Opera, and many hundred other vendors.
Note: HTML 5 is not a W3C recommendation yet!
Ordered Alphabetically
New : New tags in HTML 5.
Tag |
Description |
<!–…–> |
Defines a comment |
<!DOCTYPE> |
Defines the document type |
<a> |
Defines a hyperlink |
<abbr> |
Defines an abbreviation |
<acronym> |
Not supported in HTML 5. |
<address> |
Defines an address element |
<applet> |
Not supported in HTML 5. |
<area> |
Defines an area inside an image map |
<article>New |
Defines an article |
<aside>New |
Defines content aside from the page content |
<audio>New |
Defines sound content |
<b> |
Defines bold text |
<base> |
Defines a base URL for all the links in a page |
<basefont> |
Not supported in HTML 5. |
<bdo> |
Defines the direction of text display |
<big> |
Not supported in HTML 5. |
<blockquote> |
Defines a long quotation |
<body> |
Defines the body element |
<br> |
Inserts a single line break |
<button> |
Defines a push button |
<canvas>New |
Defines graphics |
<caption> |
Defines a table caption |
<center> |
Not supported in HTML 5. |
<cite> |
Defines a citation |
<code> |
Defines computer code text |
<col> |
Defines attributes for table columns |
<colgroup> |
Defines groups of table columns |
<command>New |
Defines a command button |
<datalist>New |
Defines a dropdown list |
<dd> |
Defines a definition description |
<del> |
Defines deleted text |
<details>New |
Defines details of an element |
<dfn> |
Defines a definition term |
<dir> |
Not supported in HTML 5. |
<div> |
Defines a section in a document |
<dl> |
Defines a definition list |
<dt> |
Defines a definition term |
<em> |
Defines emphasized text |
New |
Defines external interactive content or plugin |
<fieldset> |
Defines a fieldset |
<figcaption>New |
Defines the caption of a figure element |
<figure>New |
Defines a group of media content, and their caption |
<font> |
Not supported in HTML 5. |
<footer>New |
Defines a footer for a section or page |
<form> |
Defines a form |
<frame> |
Not supported in HTML 5. |
<frameset> |
Not supported in HTML 5. |
<h1> to <h6> |
Defines header 1 to header 6 |
<head> |
Defines information about the document |
<header>New |
Defines a header for a section or page |
<hgroup>New |
Defines information about a section in a document |
<hr> |
Defines a horizontal rule |
<html> |
Defines an html document |
<i> |
Defines italic text |
<iframe> |
Defines an inline sub window (frame) |
<img> |
Defines an image |
<input> |
Defines an input field |
<ins> |
Defines inserted text |
<keygen>New |
Defines a generated key in a form |
<kbd> |
Defines keyboard text |
<label> |
Defines a label for a form control |
<legend> |
Defines a title in a fieldset |
<li> |
Defines a list item |
<link> |
Defines a resource reference |
<map> |
Defines an image map |
<mark>New |
Defines marked text |
<menu> |
Defines a menu list |
<meta> |
Defines meta information |
<meter>New |
Defines measurement within a predefined range |
<nav>New |
Defines navigation links |
<noframes> |
Not supported in HTML 5. |
<noscript> |
Defines a noscript section |
<object> |
Defines an embedded object |
<ol> |
Defines an ordered list |
<optgroup> |
Defines an option group |
<option> |
Defines an option in a drop-down list |
<output>New |
Defines some types of output |
<p> |
Defines a paragraph |
<param> |
Defines a parameter for an object |
<pre> |
Defines preformatted text |
<progress>New |
Defines progress of a task of any kind |
<q> |
Defines a short quotation |
<rp>New |
Used in ruby annotations to define what to show browsers that to not support the ruby element. |
<rt>New |
Defines explanation to ruby annotations. |
<ruby>New |
Defines ruby annotations. |
<s> |
Not supported in HTML 5. |
<samp> |
Defines sample computer code |
<script> |
Defines a script |
<section>New |
Defines a section |
<select> |
Defines a selectable list |
<small> |
Defines small text |
<source>New |
Defines media resources |
<span> |
Defines a section in a document |
<strike> |
Not supported in HTML 5. |
<strong> |
Defines strong text |
<style> |
Defines a style definition |
<sub> |
Defines subscripted text |
<summary>New |
Defines the header of a “detail” element |
<sup> |
Defines superscripted text |
<table> |
Defines a table |
<tbody> |
Defines a table body |
<td> |
Defines a table cell |
<textarea> |
Defines a text area |
<tfoot> |
Defines a table footer |
<th> |
Defines a table header |
<thead> |
Defines a table header |
<time>New |
Defines a date/time |
<title> |
Defines the document title |
<tr> |
Defines a table row |
<tt> |
Not supported in HTML 5. |
<u> |
Not supported in HTML 5. |
<ul> |
Defines an unordered list |
<var> |
Defines a variable |
<video>New |
Defines a video |
<xmp> |
Not supported in HTML 5. |
The attributes listed below are supported by all HTML 5 tags, with a few exceptions.
HTML 5 Standard Attributes
New : New standard attributes in HTML 5.
Attribute |
Value |
Description |
accesskey |
character |
Specifies a keyboard shortcut to access an element. |
class |
classname |
Specifies a classname for an element (used to specify a class in a style sheet). |
contenteditableNew |
true
false |
Specifies if the user is allowed to edit the content or not. |
contextmenuNew |
menu_id |
Specifies the context menu for an element. |
data-yourvalueNew |
value |
Author defined attributes. Authors of a HTML document can define their own attributes. Must start with “data-“. |
dir |
ltr
rtl |
Specifies the text direction for the content in an element. |
draggableNew |
true
false
auto |
Specifies whether or not a user is allowed to drag an element. |
hiddenNew |
hidden |
Specifies that the element is not relevant. Hidden elements are not displayed. |
id |
id |
Specifies a unique id for an element. |
itemNew |
empty
url |
Used to group elements. |
itempropNew |
url
group value |
Used to group items. |
lang |
language_code |
Specifies a language code for the content in an element. Language code reference |
spellcheckNew |
true
false |
Specifies if the element must have it’s spelling or grammar checked. |
style |
style_definition |
Specifies an inline style for an element. |
subjectNew |
id |
Specifies the element’s corresponding item. |
tabindex |
number |
Specifies the tab order of an element. |
title |
text |
Specifies extra information about an element. |
Standard Event Attributes
HTML 4 added the ability to let events trigger actions in a browser, like starting a JavaScript when a user clicks on an element.
To learn more about programming events, please visit our JavaScript tutorial and our DHTML tutorial.
Below are the standard event attributes that can be inserted into HTML 5 elements to define event actions.
New : New event attributes in HTML 5.
Window Event Attributes
Events triggered for the window object.
Applies to the <body> tag:
Attribute |
Value |
Description |
onafterprintNew |
script |
Script to be run after the document is printed |
onbeforeprintNew |
script |
Script to be run before the document is printed |
onbeforeonloadNew |
script |
Script to be run before the document loads |
onblur |
script |
Script to be run when the window loses focus |
onerrorNew |
script |
Script to be run when an error occur |
onfocus |
script |
Script to be run when the window gets focus |
onhaschangeNew |
script |
Script to be run when the document has change |
onload |
script |
Script to be run when the document loads |
onmessageNew |
script |
Script to be run when the message is triggered |
onofflineNew |
script |
Script to be run when the document goes offline |
ononlineNew |
script |
Script to be run when the document comes online |
onpagehideNew |
script |
Script to be run when the window is hidden |
onpageshowNew |
script |
Script to be run when the window becomes visible |
onpopstateNew |
script |
Script to be run when the window’s history changes |
onredoNew |
script |
Script to be run when the document performs a redo |
onresizeNew |
script |
Script to be run when the window is resized |
onstorageNew |
script |
Script to be run when a document loads |
onundoNew |
script |
Script to be run when a document performs an undo |
onunloadNew |
script |
Script to be run when the user leaves the document |
Form Events
Events triggered by actions inside a HTML form.
Applies to all HTML 5 elements, but is most common in form elements:
Attribute |
Value |
Description |
onblur |
script |
Script to be run when an element loses focus |
onchange |
script |
Script to be run when an element changes |
oncontextmenuNew |
script |
Script to be run when a context menu is triggered |
onfocus |
script |
Script to be run when an element gets focus |
onformchangeNew |
script |
Script to be run when a form changes |
onforminputNew |
script |
Script to be run when a form gets user input |
oninputNew |
script |
Script to be run when an element gets user input |
oninvalidNew |
script |
Script to be run when an element is invalid |
onreset |
script |
Script to be run when a form is reset
Not supported in HTML 5 |
onselect |
script |
Script to be run when an element is selected |
onsubmit |
script |
Script to be run when a form is submitted |
Keybord Events
Events triggered by a keyboard.
Applies to all HTML 5 elements.
Attribute |
Value |
Description |
onkeydown |
script |
Script to be run when a key is pressed |
onkeypress |
script |
Script to be run when a key is pressed and released |
onkeyup |
script |
Script to be run when a key is released |
Mouse Events
Events triggered by a mouse, or similar user actions:
Applies to all HTML 5 elements.
Attribute |
Value |
Description |
onclick |
script |
Script to be run on a mouse click |
ondblclick |
script |
Script to be run on a mouse double-click |
ondragNew |
script |
Script to be run when an element is dragged |
ondragendNew |
script |
Script to be run at the end of a drag operation |
ondragenterNew |
script |
Script to be run when an element has been dragged to a valid drop target |
ondragleaveNew |
script |
Script to be run when an element leaves a valid drop target |
ondragoverNew |
script |
Script to be run when an element is being dragged over a valid drop target |
ondragstartNew |
script |
Script to be run at the start of a drag operation |
ondropNew |
script |
Script to be run when dragged element is being dropped |
onmousedown |
script |
Script to be run when a mouse button is pressed |
onmousemove |
script |
Script to be run when the mouse pointer moves |
onmouseout |
script |
Script to be run when the mouse pointer moves out of an element |
onmouseover |
script |
Script to be run when the mouse pointer moves over an element |
onmouseup |
script |
Script to be run when a mouse button is released |
onmousewheelNew |
script |
Script to be run when the mouse wheel is being rotated |
onscrollNew |
script |
Script to be run when an element’s scrollbar is being scrolled |
Media Events
Events triggered by medias like videos, images and audio.
Applies to all HTML 5 elements, but is most common in media elements, such as audio, embed, img, object, and video:
Attribute |
Value |
Description |
onabort |
script |
Script to be run on an abort event |
oncanplayNew |
script |
Script to be run when media can start play, but might has to stop for buffering |
oncanplaythroughNew |
script |
Script to be run when media can be played to the end, without stopping for buffering |
ondurationchangeNew |
script |
Script to be run when the length of the media is changed |
onemptiedNew |
script |
Script to be run when a media resource element suddenly becomes empty (network errors, errors on load etc.) |
onendedNew |
script |
Script to be run when media has reach the end |
onerrorNew |
script |
Script to be run when an error occurs during the loading of an element |
onloadeddataNew |
script |
Script to be run when media data is loaded |
onloadedmetadataNew |
script |
Script to be run when the duration and other media data of a media element is loaded |
onloadstartNew |
script |
Script to be run when the browser starts to load the media data |
onpauseNew |
script |
Script to be run when media data is paused |
onplayNew |
script |
Script to be run when media data is going to start playing |
onplayingNew |
script |
Script to be run when media data has start playing |
onprogressNew |
script |
Script to be run when the browser is fetching the media data |
onratechangeNew |
script |
Script to be run when the media data’s playing rate has changed |
onreadystatechangeNew |
script |
Script to be run when the ready-state changes |
onseekedNew |
script |
Script to be run when a media element’s seeking attribute is no longer true, and the seeking has ended |
onseekingNew |
script |
Script to be run when a media element’s seeking attribute is true, and the seeking has begun |
onstalledNew |
script |
Script to be run when there is an error in fetching media data (stalled) |
onsuspendNew |
script |
Script to be run when the browser has been fetching media data, but stopped before the entire media file was fetched |
ontimeupdateNew |
script |
Script to be run when media changes its playing position |
onvolumechangeNew |
script |
Script to be run when media changes the volume, also when volume is set to “mute” |
onwaitingNew |
script |
Script to be run when media has stopped playing, but is expected to resume |
—
Source: w3schools.com