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