
HTML5: Edition for Web Authors
W3C Working Group Note 28 May 2013
- This Version:
- http://www.w3.org/TR/2013/NOTE-html5-author-20130528/
- Latest Published Version:
- http://www.w3.org/TR/html5-author/
- Latest Editor's Draft:
- http://dev.w3.org/html5/spec-author-view/
- Previous Versions:
- http://www.w3.org/TR/2012/WD-html5-author-20121025/
- http://www.w3.org/TR/2012/WD-html5-author-20120329/
- http://www.w3.org/TR/2011/WD-html5-author-20110809/
- Editors:
- Robin Berjon, W3C
- Travis Leithead,
Microsoft
- Silvia
Pfeiffer
- Erika Doyle
Navara, Microsoft
- Theresa O'Connor, Apple
Inc.
- Previous Editor:
- Ian Hickson, Google,
Inc.
Copyright © 2013 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark and document use rules apply.
Abstract
This document has been discontinued and is only made available for historical purposes.
The HTML specification includes a style
switcher that will hide implementer-oriented content.
This document is a strict subset of
the
full HTML5 specification
that omits user-agent (UA) implementation details. It is
targeted toward Web authors and others who are not UA
implementors and who want a view of the HTML
specification that focuses more precisely on details relevant to
using the HTML language to create Web documents and Web applications.
Because this document does not provide implementation conformance
criteria, UA implementors should not rely on it, but should instead
refer to the
full HTML5 specification.
This document is an automated redaction of the
full HTML5 specification.
As such, the two documents are supposed to agree on normative matters
concerning Web authors. However, if the documents disagree, this is a
bug in the redaction process and the unredacted full HTML
specification takes precedence. Readers are encouraged to report such
discrepancies as bugs in the bug tracking system of the HTML Working
Group.
Status of
This document
This section describes the status of this document at the
time of its publication. Other documents may supersede this
document. A list of current W3C publications and the latest
revision of this technical report can be found in the W3C technical reports index at
http://www.w3.org/TR/.
If you wish to make comments regarding this document in a manner
that is tracked by the W3C, please submit them via using our
public bug database. If you cannot do this then you can also
e-mail feedback to public-html-comments@w3.org
(subscribe,
archives),
and arrangements will be made to transpose the comments to our
public bug database. All feedback is welcome.
The bulk of the text of this specification is also
available in the WHATWG Web
Applications 1.0 specification, under a license that permits
reuse of the specification text.
The working groups maintains
a list of all bug reports that the editors have not yet tried to
address and a list of issues for
which the chairs have not yet declared a decision. These bugs
and issues apply to multiple HTML-related specifications, not just
this one.
Implementors should be aware that this specification is not
stable. Implementors who are not taking part in the
discussions are likely to find the specification changing out from
under them in incompatible ways. Vendors interested in
implementing this specification before it eventually reaches the
Candidate Recommendation stage should join the aforementioned
mailing lists and take part in the discussions.
Publication as a Working Group Note does not imply endorsement by the
W3C Membership. This is a draft document and may be updated,
replaced or obsoleted by other documents at any time. It is
inappropriate to cite this document as other than work in
progress.
The latest stable version of the editor's draft of this
specification is always available on the W3C CVS server. There are
various ways to follow the change history for this
specification:
- Browsable version-control record of all changes:
- Github repository (real-time updates): https://github.com/w3c/html/commits/master
- CVSWeb interface (hourly updates): http://dev.w3.org/cvsweb/html5/spec/
- E-mail notifications of changes:
- HTML-Commits mailing list (commit notifications for
dev.w3.org/html5): http://lists.w3.org/Archives/Public/public-html-commits/latest
The W3C HTML Working
Group is the W3C working group responsible for this
specification's progress along the W3C Recommendation track.
Work on this specification is also done at the WHATWG. The W3C HTML working group
actively pursues convergence with the WHATWG, as required by the
W3C HTML
working group charter. There are various ways to follow this
work at the WHATWG:
This document was produced by a group operating under the
5
February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in
connection with the deliverables of the group; that page also
includes instructions for disclosing a patent. An individual who
has actual knowledge of a patent which the individual believes
contains
Essential Claim(s) must disclose the information in accordance
with
section 6 of the W3C Patent Policy.
Table of Contents
- 1
Introduction
- 1.1
Background
- 1.2
Audience
- 1.3 Scope
- 1.4
History
- 1.5 Design
notes
- 1.5.1 Serializability of script execution
- 1.5.2 Compliance with other specifications
- 1.6 HTML vs
XHTML
- 1.7 Structure of this specification
- 1.7.1 How to read this specification
- 1.7.2 Typographic conventions
- 1.8 Privacy
concerns
- 1.9 A quick introduction to HTML
- 1.9.1 Writing secure applications with HTML
-
1.9.2 Common pitfalls to avoid when using the scripting
APIs
- 1.10 Conformance requirements for authors
- 1.10.1 Presentational markup
- 1.10.2
Syntax errors
-
1.10.3 Restrictions on content models and on attribute
values
- 1.11
Recommended reading
- 2 Common
infrastructure
- 2.1
Terminology
- 2.1.1
Resources
- 2.1.2 XML
- 2.1.3 DOM
trees
- 2.1.4
Scripting
- 2.1.5
Plugins
- 2.1.6
Character encodings
- 2.2 Conformance requirements
- 2.2.1
Extensibility
- 2.3 Case-sensitivity and string comparison
- 2.4
Common microsyntaxes
- 2.4.1
Boolean attributes
- 2.4.2 Keywords and enumerated attributes
- 2.4.3 Numbers
- 2.4.3.1
Signed integers
- 2.4.3.2 Non-negative integers
- 2.4.3.3 Floating-point numbers
- 2.4.3.4
Lists of integers
- 2.4.4
Dates and times
- 2.4.4.1
Months
- 2.4.4.2
Dates
- 2.4.4.3
Yearless dates
- 2.4.4.4
Times
- 2.4.4.5 Local dates and times
- 2.4.4.6 Time
zones
- 2.4.4.7 Global dates and times
- 2.4.4.8
Weeks
- 2.4.4.9
Durations
- 2.4.4.10 Vaguer moments in time
- 2.4.5
Colors
- 2.4.6 Space-separated tokens
- 2.4.7 Comma-separated tokens
- 2.4.8
References
- 2.4.9 Media
queries
- 2.5 URLs
- 2.5.1
Terminology
- 2.5.2 Base
URLs
- 2.5.3
Resolving URLs
- 2.5.4 Interfaces for URL manipulation
- 2.5.5 CORS settings attributes
- 2.6
Common DOM interfaces
- 2.6.1 Reflecting content attributes in IDL
attributes
- 2.6.2
Collections
- 2.6.2.1
HTMLAllCollection
- 2.6.2.2 HTMLFormControlsCollection
- 2.6.2.3 HTMLOptionsCollection
- 2.6.3
DOMStringMap
- 2.6.4 Transferable objects
- 2.6.5
DOM feature strings
- 2.7
Namespaces
- 3 Semantics,
structure, and APIs of HTML documents
- 3.1
Documents
- 3.1.1
The
Document object
- 3.1.2
Security
- 3.1.3 Resource metadata management
- 3.1.4 DOM
tree accessors
- 3.2 Elements
- 3.2.1
Semantics
- 3.2.2
Elements in the DOM
- 3.2.3 Global
attributes
- 3.2.3.1 The
id attribute
- 3.2.3.2 The
title
attribute
- 3.2.3.3 The
lang and
xml:lang attributes
- 3.2.3.4 The
translate attribute
- 3.2.3.5 The
xml:base attribute (XML
only)
- 3.2.3.6 The
dir attribute
- 3.2.3.7
The
class attribute
- 3.2.3.8
The
style attribute
-
3.2.3.9 Embedding custom non-visible
data with the
data-*
attributes
- 3.2.4
Element definitions
- 3.2.4.1
Attributes
- 3.2.5 Content
models
- 3.2.5.1
Kinds of content
- 3.2.5.1.1 Metadata content
- 3.2.5.1.2
Flow content
- 3.2.5.1.3 Sectioning content
- 3.2.5.1.4
Heading content
- 3.2.5.1.5 Phrasing content
- 3.2.5.1.6 Embedded content
- 3.2.5.1.7 Interactive content
- 3.2.5.1.8 Palpable content
- 3.2.5.2 Transparent content models
- 3.2.5.3
Paragraphs
-
3.2.6 Requirements relating to
bidirectional-algorithm formatting characters
- 3.2.7 WAI-ARIA
- 3.2.7.1 ARIA Role Attribute
- 3.2.7.2 State and Property Attributes
- 3.2.7.3 Strong Native Semantics
- 3.2.7.4 Implicit ARIA Semantics
- 3.3
Dynamic markup insertion
- 3.3.1 Opening the input stream
- 3.3.2 Closing the input stream
- 3.3.3
document.write()
- 3.3.4
document.writeln()
- 4 The elements
of HTML
- 4.1 The
root element
- 4.1.1 The
html element
- 4.2
Document metadata
- 4.2.1 The
head element
- 4.2.2 The
title element
- 4.2.3 The
base element
- 4.2.4 The
link element
- 4.2.5
The
meta element
- 4.2.5.1 Standard metadata names
- 4.2.5.2 Other metadata names
- 4.2.5.3
Pragma directives
- 4.2.5.4 Other pragma directives
- 4.2.5.5
Specifying the document's character encoding
- 4.2.6 The
style element
- 4.2.7 Styling
- 4.3
Scripting
- 4.3.1
The
script element
- 4.3.1.1 Scripting languages
- 4.3.1.2 Restrictions for contents of
script elements
- 4.3.1.3 Inline documentation for external
scripts
- 4.3.2 The
noscript element
- 4.4 Sections
- 4.4.1 The
body element
- 4.4.2 The
section element
- 4.4.3 The
nav element
- 4.4.4 The
article element
- 4.4.5 The
aside element
- 4.4.6 The
h1, h2,
h3, h4, h5, and
h6 elements
- 4.4.7 The
hgroup element
- 4.4.10 The
address element
- 4.4.11
Headings and sections
- 4.4.11.1
Creating an outline
- 4.5
Grouping content
- 4.5.1 The
p element
- 4.5.2 The
hr element
- 4.5.3 The
pre element
- 4.5.4 The
blockquote element
- 4.5.5 The
ol element
- 4.5.6 The
ul element
- 4.5.7 The
li element
- 4.5.8 The
dl element
- 4.5.9 The
dt element
- 4.5.10 The
dd element
- 4.5.11 The
figure element
- 4.5.12
The
figcaption element
- 4.5.13 The
div element
- 4.6
Text-level semantics
- 4.6.1 The
a element
- 4.6.2 The
em element
- 4.6.3 The
strong element
- 4.6.4 The
small element
- 4.6.5 The
s element
- 4.6.6 The
cite element
- 4.6.7 The
q element
- 4.6.8 The
dfn element
- 4.6.9 The
abbr element
- 4.6.10 The
time element
- 4.6.11 The
code element
- 4.6.12 The
var element
- 4.6.13 The
samp element
- 4.6.14 The
kbd element
- 4.6.15 The
sub and sup
elements
- 4.6.16 The
i element
- 4.6.17 The
b element
- 4.6.18 The
u element
- 4.6.19 The
mark element
- 4.6.20 The
ruby element
- 4.6.21 The
rt element
- 4.6.22 The
rp element
- 4.6.23 The
bdi element
- 4.6.24 The
bdo element
- 4.6.25 The
span element
- 4.6.26 The
br element
- 4.6.27 The
wbr element
- 4.6.28
Usage summary
- 4.7 Edits
- 4.7.1 The
ins element
- 4.7.2 The
del element
- 4.7.3 Attributes common to
ins and
del elements
- 4.7.4 Edits and paragraphs
- 4.7.5
Edits and lists
- 4.7.6
Edits and tables
- 4.8
Embedded content
- 4.8.1 The
img element
- 4.8.1.1 Requirements
for providing text to act as an alternative for images
- 4.8.1.1.1 General guidelines
- 4.8.1.1.2 A link or button containing nothing but
the image
-
4.8.1.1.3 A phrase or paragraph with an
alternative graphical representation: charts, diagrams, graphs,
maps, illustrations
-
4.8.1.1.4 A short phrase or label with
an alternative graphical representation: icons, logos
-
4.8.1.1.5 Text that has been rendered to
a graphic for typographical effect
-
4.8.1.1.6 A graphical representation of some of the
surrounding text
-
4.8.1.1.7 A purely decorative image that doesn't add any
information
-
4.8.1.1.8 A group of images that form a
single larger picture with no links
-
4.8.1.1.9 A group of images that form a single larger
picture with links
- 4.8.1.1.10 A key part of the content
- 4.8.1.1.11 An image not intended for the
user
- 4.8.2 The
iframe element
- 4.8.3 The
embed element
- 4.8.4 The
object element
- 4.8.5 The
param element
- 4.8.6
The
video element
- 4.8.7
The
audio element
- 4.8.8 The
source element
- 4.8.9 The
track element
- 4.8.10
Media elements
- 4.8.10.1
Error codes
- 4.8.10.2 Location of the media resource
- 4.8.10.3 MIME
types
- 4.8.10.4
Network states
- 4.8.10.5 Loading the media resource
- 4.8.10.6 Offsets into the media resource
- 4.8.10.7
Ready states
- 4.8.10.8 Playing the media resource
- 4.8.10.9
Seeking
- 4.8.10.10 Media resources with multiple media
tracks
- 4.8.10.10.1
AudioTrackList and
VideoTrackList objects
-
4.8.10.10.2 Selecting specific audio and video tracks
declaratively
- 4.8.10.11 Synchronising multiple media elements
- 4.8.10.11.1 Introduction
- 4.8.10.11.2 Media controllers
- 4.8.10.11.3 Assigning a media controller
declaratively
- 4.8.10.12 Timed text tracks
- 4.8.10.12.1 Text track model
- 4.8.10.12.2 Sourcing in-band text tracks
- 4.8.10.12.3 Text track API
- 4.8.10.12.4 Text tracks describing chapters
- 4.8.10.13
User interface
- 4.8.10.14
Time ranges
- 4.8.10.15 Event definitions
- 4.8.10.16
Event summary
- 4.8.10.17 Best practices for authors using media
elements
- 4.8.11
The
canvas element
- 4.8.12 The
map element
- 4.8.13 The
area element
- 4.8.14 Image
maps
- 4.8.15
MathML
- 4.8.16 SVG
- 4.8.17
Dimension attributes
- 4.9 Tabular
data
- 4.9.1 The
table element
- 4.9.1.1 Techniques for describing tables
- 4.9.1.2 Techniques for table layout
- 4.9.2 The
caption element
- 4.9.3 The
colgroup element
- 4.9.4 The
col element
- 4.9.5 The
tbody element
- 4.9.6 The
thead element
- 4.9.8 The
tr element
- 4.9.9 The
td element
- 4.9.10 The
th element
- 4.9.11 Attributes common to
td and
th elements
- 4.9.12
Examples
- 4.10 Forms
- 4.10.1
Introduction
- 4.10.1.1 Writing a form's user interface
- 4.10.1.2 Implementing the server-side processing for
a form
- 4.10.1.3 Configuring a form to communicate with a
server
- 4.10.1.4 Client-side form validation
- 4.10.1.5 Date, time, and number formats
- 4.10.2
Categories
- 4.10.3 The
form element
- 4.10.4 The
fieldset element
- 4.10.5 The
legend element
- 4.10.6 The
label element
- 4.10.7 The
input element
- 4.10.7.1 States of the
type attribute
- 4.10.7.1.1 Hidden state (
type=hidden)
-
4.10.7.1.2 Text (
type=text) state and
Search state (type=search)
- 4.10.7.1.3 Telephone state (
type=tel)
- 4.10.7.1.4 URL state (
type=url)
- 4.10.7.1.5 E-mail state (
type=email)
- 4.10.7.1.6 Password state (
type=password)
- 4.10.7.1.7 Date and Time state (
type=datetime)
- 4.10.7.1.8 Date state (
type=date)
- 4.10.7.1.9 Month state (
type=month)
- 4.10.7.1.10 Week state (
type=week)
- 4.10.7.1.11 Time state (
type=time)
-
4.10.7.1.12 Local Date and Time state (
type=datetime-local)
- 4.10.7.1.13 Number state (
type=number)
- 4.10.7.1.14 Range state (
type=range)
- 4.10.7.1.15 Color state (
type=color)
- 4.10.7.1.16 Checkbox state (
type=checkbox)
- 4.10.7.1.17 Radio Button state (
type=radio)
- 4.10.7.1.18 File Upload state (
type=file)
- 4.10.7.1.19 Submit Button state (
type=submit)
- 4.10.7.1.20 Image Button state (
type=image)
- 4.10.7.1.21 Reset Button state (
type=reset)
- 4.10.7.1.22 Button state (
type=button)
- 4.10.7.2 Common
input element
attributes
- 4.10.7.2.1 The
autocomplete attribute
- 4.10.7.2.2 The
dirname attribute
- 4.10.7.2.3 The
list attribute
- 4.10.7.2.4 The
readonly attribute
- 4.10.7.2.5 The
size attribute
- 4.10.7.2.6 The
required attribute
- 4.10.7.2.7 The
multiple attribute
- 4.10.7.2.8 The
maxlength attribute
- 4.10.7.2.9 The
pattern attribute
- 4.10.7.2.10 The
min and max attributes
- 4.10.7.2.11 The
step attribute
- 4.10.7.2.12 The
placeholder attribute
- 4.10.7.3 Common
input element
APIs
- 4.10.8 The
button element
- 4.10.9 The
select element
- 4.10.10
The
datalist element
- 4.10.11
The
optgroup element
- 4.10.12 The
option element
- 4.10.13
The
textarea element
- 4.10.14 The
keygen element
- 4.10.15 The
output element
- 4.10.16
The
progress element
- 4.10.17 The
meter element
- 4.10.18 Association of controls and forms
- 4.10.19 Attributes common to form controls
- 4.10.19.1 Naming form controls
- 4.10.19.2 Enabling and disabling form
controls
- 4.10.19.3 Autofocusing a form control
- 4.10.19.4 Limiting user input length
- 4.10.19.5
Form submission
- 4.10.19.6 Submitting element directionality
- 4.10.20 APIs for the text field selections
- 4.10.21
Constraints
- 4.10.21.1
Definitions
- 4.10.21.2 The constraint validation API
- 4.10.21.3
Security
- 4.10.22 Form
submission
- 4.10.22.1 URL-encoded form data
- 4.10.22.2 Plain text form data
- 4.11
Interactive elements
- 4.11.1 The
details element
- 4.11.2 The
summary element
- 4.11.3 The
command element
- 4.11.4
The
menu element
- 4.11.4.1
Introduction
- 4.11.5
Commands
- 4.11.6 The
dialog element
- 4.11.6.1
Anchor points
- 4.12 Links
- 4.12.1
Introduction
- 4.12.2 Links created by
a and
area elements
- 4.12.3 Downloading resources
- 4.12.4 Link
types
- 4.12.4.1
Link type "
alternate"
- 4.12.4.2
Link type "
author"
- 4.12.4.3
Link type "
bookmark"
- 4.12.4.4 Link
type "
help"
- 4.12.4.5 Link type "
icon"
- 4.12.4.6
Link type "
license"
- 4.12.4.7
Link type "
nofollow"
- 4.12.4.8
Link type "
noreferrer"
- 4.12.4.9
Link type "
prefetch"
- 4.12.4.10
Link type "
search"
- 4.12.4.11 Link type
"
stylesheet"
- 4.12.4.12 Link
type "
tag"
- 4.12.4.13 Sequential link types
- 4.12.4.13.1
Link type "
next"
- 4.12.4.13.2
Link type "
prev"
- 4.12.4.14 Other link types
- 4.13 Common
idioms without dedicated elements
- 4.13.1 The main part of the content
- 4.13.2 Bread crumb
navigation
- 4.13.3 Tag
clouds
- 4.13.4
Conversations
- 4.13.5
Footnotes
- 5 Loading Web
pages
- 5.1 Browsing
contexts
- 5.1.1 Nested browsing contexts
- 5.1.1.1 Navigating nested browsing contexts in the
DOM
- 5.1.2 Auxiliary browsing contexts
- 5.1.2.1 Navigating auxiliary browsing contexts in
the DOM
- 5.1.3 Secondary browsing contexts
- 5.1.4 Browsing context names
- 5.2 The
Window object
-
5.2.1 APIs for creating and navigating browsing contexts by
name
- 5.2.2 Accessing other browsing contexts
- 5.2.3 Named access on the
Window
object
- 5.2.4 Browser interface elements
- 5.3 Origin
- 5.3.1 Relaxing the same-origin restriction
- 5.4
Sandboxing
- 5.5 Session
history and navigation
- 5.5.1
The session history of browsing contexts
- 5.5.2 The
History interface
- 5.5.3 The
Location interface
- 5.6
Browsing the Web
- 5.6.1
History traversal
- 5.6.2
Unloading documents
- 5.7 Offline Web
applications
- 5.7.1
Introduction
- 5.7.1.1
Event summary
- 5.7.2 The cache
manifest syntax
- 5.7.2.1 Some sample manifests
- 5.7.2.2 Writing cache manifests
- 5.7.3 Application cache API
- 5.7.4
Browser state
- 6 Web
application APIs
- 6.1
Scripting
- 6.1.1
Introduction
- 6.1.2 Events
-
6.1.2.1 Event handlers on elements,
Document objects, and Window
objects
- 6.2 Base64 utility
methods
- 6.3
Timers
- 6.4 User
prompts
- 6.4.1
Simple dialogs
- 6.4.2
Printing
- 6.4.3 Dialogs implemented using separate
documents
- 6.5 System state and capabilities
- 6.5.1 The
Navigator object
- 6.5.1.1 Client identification
- 6.5.1.2
Custom scheme and content handlers
- 6.5.1.3 Manually releasing the storage
mutex
- 6.5.2 The
External interface
- 7 User interaction
- 7.1 The
hidden attribute
- 7.2 Inert
subtrees
- 7.3
Activation
- 7.4 Focus
-
7.4.1 Sequential focus navigation and the
tabindex attribute
- 7.4.2 Document-level focus APIs
- 7.4.3 Element-level focus APIs
- 7.5 Assigning keyboard shortcuts
- 7.5.1
Introduction
- 7.5.2
The
accesskey attribute
- 7.6 Editing
- 7.6.1
Making document regions editable: The
contenteditable content
attribute
-
7.6.2 Making entire documents editable: The
designMode IDL attribute
- 7.6.3 Best practices for in-page editors
- 7.6.4
Editing APIs
- 7.6.5 Spelling and grammar checking
- 7.7 Drag and drop
- 7.7.1
Introduction
- 7.7.2
The drag data store
- 7.7.3 The
DataTransfer interface
- 7.7.3.1 The
DataTransferItemList
interface
- 7.7.3.2 The
DataTransferItem
interface
- 7.7.4 The
DragEvent interface
- 7.7.5 Events
summary
- 7.7.6
The
draggable attribute
- 7.7.7 The
dropzone attribute
- 8 The HTML syntax
- 8.1 Writing HTML
documents
- 8.1.1 The
DOCTYPE
- 8.1.2
Elements
- 8.1.2.1 Start
tags
- 8.1.2.2 End
tags
- 8.1.2.3
Attributes
- 8.1.2.4
Optional tags
- 8.1.2.5 Restrictions on content models
- 8.1.2.6 Restrictions on the contents of raw text and
RCDATA elements
- 8.1.3 Text
- 8.1.3.1
Newlines
- 8.1.4 Character references
- 8.1.5
CDATA sections
- 8.1.6
Comments
- 8.2
Named character references
- 9 The
XHTML syntax
- 10 Obsolete
features
- 10.1 Obsolete but conforming features
- 10.2 Non-conforming features
- 11 IANA
considerations
- 11.1
text/html
- 11.2
multipart/x-mixed-replace
- 11.3
application/xhtml+xml
- 11.4
application/x-www-form-urlencoded
- 11.5
text/cache-manifest
- 11.6
web+ scheme prefix
- Index
- Elements
- Element
content categories
- Attributes
- Element
Interfaces
- All
Interfaces
- Events
- Index of
terms
- References
- Acknowledgements