semantically-meaningful (i.e. describe the content they contain)
header
footer
nav
article
hgroup

A general rule is that the section element is appropriate only if the element’s contents would be listed explicitly in the document’s outline


document.createElement("article");
document.createElement("footer");
document.createElement("header");
document.createElement("hgroup");
document.createElement("nav");

New tags in HTML5

Tag Description
<!--...--> Defines a comment
<!DOCTYPE>  Defines the document type
<a> Defines a hyperlink
<abbr> Defines an abbreviation
<acronym> Not supported in HTML5
<address> Defines an address element
<applet> Not supported in HTML5
<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 HTML5
<bdo> Defines the direction of text display
<big> Not supported in HTML5
<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 HTML5
<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 HTML5
<div> Defines a section in a document
<dl> Defines a definition list
<dt> Defines a definition term
<em> Defines emphasized text 
<embed>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 HTML5
<footer>New Defines a footer for a section or page
<form> Defines a form 
<frame> Not supported in HTML5
<frameset> Not supported in HTML5
<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 a scalar measurement within a known range
<nav>New Defines navigation links
<noframes> Not supported in HTML5
<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 Represents the progress of a task
<q> Defines a short quotation
<rp>New Used in ruby annotations to define what to show if a browser does not support the ruby element
<rt>New Defines explanation to ruby annotations
<ruby>New Defines ruby annotations
<s> Defines text that is no longer correct
<samp> Defines sample computer code
<script> Defines a script
<section>New Defines a section
<select> Defines a selectable list
<small> Defines smaller text
<source>New Defines media resources
<span> Defines a section in a document
<strike> Not supported in HTML5
<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 HTML5
<u> Not supported in HTML5
<ul> Defines an unordered list
<var> Defines a variable
<video>New Defines a video
<wbr>New Defines a possible line-break
<xmp> Not supported in HTML5

HTML5 Global Attributes

Attribute Value Description
accesskey character Specifies a shortcut key to access an element
class classname Refers to a class specified in a style sheet
contenteditableNew true
false
inherit
Specifies whether a user can edit the content of an element or not
contextmenuNew menu_id Specifies a context menu for an element. The value must be the id of a <menu> element
dir ltr
rtl
auto
Specifies the text direction for the content in an element
draggableNew true
false
auto
Specifies whether a user is allowed to drag an element or not
dropzoneNew copy
move
link
Specifies what happens when dragged items/data is dropped in the element
hiddenNew hidden Specifies that an element should be hidden
id id Specifies a unique id for an element
lang language_code Specifies the language of the element's content
spellcheckNew true
false
Specifies if the element must have its spelling and grammar checked
style style_definitions Specifies an inline style for an element
tabindex number Specifies the tab order of an element
title text Specifies extra information about an element

HTML5 Event Attributes

Global 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 global event attributes that can be added to HTML5 elements to define event actions.

New : New event attributes in HTML5.


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 changed
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 the document loads
onundoNew script Script to be run when the 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 HTML5 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 HTML5
onselect script  Script to be run when an element is selected
onsubmit script Script to be run when a form is submitted


Keyboard Events

Events triggered by a keyboard (applies to all HTML5 elements):

Attribute Value Description
onkeydown script  Script to be run when a key is pressed down
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 HTML5 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 HTML5 elements, but is most common in media elements, like audio, embed, img, object, and video):

Attribute Value Description
onabort script  Script to be run on abort
oncanplayNew script Script to be run when a file is ready to start playing (when it has buffered enough to begin)
oncanplaythroughNew script Script to be run when a file can be played all the way to the end without pausing for buffering
ondurationchangeNew script  Script to be run when the length of the media changes
onemptiedNew script  Script to be run when something bad happens and the file is suddenly unavailable (like unexpectedly disconnects)
onendedNew script  Script to be run when the media has reach the end (a useful event for messages like "thanks for listening")
onerrorNew script  Script to be run when an error occurs when the file is being loaded
onloadeddataNew script Script to be run when media data is loaded
onloadedmetadataNew script Script to be run when meta data (like dimensions and duration) are loaded
onloadstartNew script Script to be run just as the file begins to load before anything is actually loaded
onpauseNew script  Script to be run when the media is paused either by the user or programmatically
onplayNew script  Script to be run when the media is ready to start playing
onplayingNew script  Script to be run when the media actually has started playing
onprogressNew script  Script to be run when the browser is in the process of getting the media data
onratechangeNew script  Script to be run each time the playback rate changes (like when a user switches to a slow motion or fast forward mode)
onreadystatechangeNew script  Script to be run each time the ready state changes (the ready state tracks the state of the media data)
onseekedNew script  Script to be run when the seeking attribute is set to false indicating that seeking has ended
onseekingNew script  Script to be run when the seeking attribute is set to true indicating that seeking is active
onstalledNew script  Script to be run when the browser is unable to fetch the media data for whatever reason
onsuspendNew script Script to be run when fetching the media data is stopped before it is completely loaded for whatever reason
ontimeupdateNew script Script to be run when the playing position has changed (like when the user fast forwards to a different point in the media)
onvolumechangeNew script Script to be run each time the volume is changed which (includes setting the volume to "mute")
onwaitingNew script Script to be run when the media has paused but is expected to resume (like when the media pauses to buffer more data)