Abstract
This specification defines the 5th major revision of the core
language of the World Wide Web: the Hypertext Markup Language
(HTML). In this version, new features are introduced to help Web
application authors, new elements are introduced based on research
into prevailing authoring practices, and special attention has been
given to defining clear conformance criteria for user agents in an
effort to improve interoperability.
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 most recently
formally published revision of this technical report can be found in
the W3C technical reports index
at http://www.w3.org/TR/.
The WHATWG
version of this specification is available under a license that
permits reuse of the specification text.
If you wish to make comments regarding this document, please send
them to public-html-comments@w3.org
(subscribe,
archives)
or whatwg@whatwg.org (subscribe,
archives),
or submit them using our
public bug database.
All feedback is welcome.
We maintain a list of all
e-mails that have not yet been considered and a
list of all bug reports that have not yet been resolved.
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.
The publication of this document by the W3C as a W3C Working
Draft does not imply that all of the participants in the W3C HTML
working group endorse the contents of the specification. Indeed, for
any section of the specification, one can usually find many members
of the working group or of the W3C as a whole who object strongly to
the current text, the existence of the section at all, or the idea
that the working group should even spend time discussing the concept
of that section.
The latest stable version of the editor's draft of this
specification is always available on the
W3C CVS server and in the WHATWG Subversion
repository. The latest
editor's working copy (which may contain unfinished text in
the process of being prepared) is also available.
There are various ways to follow the change history for the
specification:
- E-mail notifications of changes
- HTML-Diffs mailing list (diff-marked HTML versions for each change): http://lists.w3.org/Archives/Public/public-html-diffs/latest
- Commit-Watchers mailing list (complete source diffs): http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org
- Real-time notifications of changes:
- Generated diff-marked HTML versions for each change: http://twitter.com/HTML5
- All (non-editorial) changes to the spec source: http://twitter.com/WHATWG
- Browsable version-control record of all changes:
- CVSWeb interface with side-by-side diffs: http://dev.w3.org/cvsweb/html5/spec/Overview.html
- Annotated summary with unified diffs: http://html5.org/tools/web-apps-tracker
- Raw Subversion interface:
svn checkout http://svn.whatwg.org/webapps/
The W3C HTML Working
Group is the W3C working group responsible for this
specification's progress along the W3C Recommendation
track.
This specification is the 12 February 2009 Working Draft.
This specification is also being produced by the WHATWG. The two specifications are
identical from the table of contents onwards.
This specification is intended to replace (be a new version of)
what was previously the HTML4, XHTML 1.0, and DOM2 HTML
specifications.
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.
Stability
Different parts of this specification are at different levels of
maturity.
Some of the more major known issues are marked
like this. There are many other issues that have been raised as
well; the issues given in this document are not the only known
issues! Also, firing of events needs to be unified (right now some
bubble, some don't, they all use different text to fire events,
etc).
Table of contents
- 1 Introduction
- 1.1 Background
- 1.2 Audience
- 1.3 Scope
- 1.4 History
- 1.5 Relationships to other specifications
- 1.5.1 Relationship to HTML 4.01 and DOM2 HTML
- 1.5.2 Relationship to XHTML 1.x
- 1.5.3 Relationship to XHTML2 and XForms
- 1.5.4 Relationship to Flash, Silverlight, XUL
and similar proprietary languages
- 1.6 HTML vs XHTML
- 1.7 Structure of this specification
- 1.7.1 How to read this specification
- 1.7.2 Typographic conventions
- 2 Common infrastructure
- 2.1 Terminology
- 2.1.1 XML
- 2.1.2 DOM trees
- 2.1.3 Scripting
- 2.1.4 Plugins
- 2.1.5 Character encodings
- 2.2 Conformance requirements
- 2.2.1 Dependencies
- 2.2.2 Features defined in other specifications
- 2.2.3 Common conformance requirements for APIs exposed to
JavaScript
- 2.3 Case-sensitivity and string comparison
- 2.4 Common microsyntaxes
- 2.4.1 Common parser idioms
- 2.4.2 Boolean attributes
- 2.4.3 Numbers
- 2.4.3.1 Non-negative integers
- 2.4.3.2 Signed integers
- 2.4.3.3 Real numbers
- 2.4.3.4 Ratios
- 2.4.3.5 Percentages and lengths
- 2.4.3.6 Lists of integers
- 2.4.3.7 Lists of dimensions
- 2.4.4 Dates and times
- 2.4.4.1 Months
- 2.4.4.2 Dates
- 2.4.4.3 Times
- 2.4.4.4 Local dates and times
- 2.4.4.5 Global dates and times
- 2.4.4.6 Weeks
- 2.4.4.7 Vaguer moments in time
- 2.4.5 Colors
- 2.4.6 Space-separated tokens
- 2.4.7 Comma-separated tokens
- 2.4.8 Keywords and enumerated attributes
- 2.4.9 References
- 2.5 URLs
- 2.5.1 Terminology
- 2.5.2 Parsing URLs
- 2.5.3 Resolving URLs
- 2.5.4 Dynamic changes to base URLs
- 2.5.5 Interfaces for URL manipulation
- 2.6 Fetching resources
- 2.6.1 Protocol concepts
- 2.6.2 Encrypted HTTP and related security concerns
- 2.7 Determining the type of a resource
- 2.7.1 Content-Type metadata
- 2.7.2 Content-Type sniffing: Web pages
- 2.7.3 Content-Type sniffing: text or binary
- 2.7.4 Content-Type sniffing: unknown type
- 2.7.5 Content-Type sniffing: image
- 2.7.6 Content-Type sniffing: feed or HTML
- 2.8 Common DOM interfaces
- 2.8.1 Reflecting content attributes in DOM attributes
- 2.8.2 Collections
- 2.8.2.1 HTMLCollection
- 2.8.2.2 HTMLFormControlsCollection
- 2.8.2.3 HTMLOptionsCollection
- 2.8.3 DOMTokenList
- 2.8.4 Safe passing of structured data
- 2.8.5 DOMStringMap
- 2.8.6 DOM feature strings
- 2.8.7 Exceptions
- 2.8.8 Garbage collection
- 3 Semantics and structure of HTML documents
- 3.1 Introduction
- 3.2 Documents
- 3.2.1 Documents in the DOM
- 3.2.2 Security
- 3.2.3 Resource metadata management
- 3.2.4 DOM tree accessors
- 3.3 Elements
- 3.3.1 Semantics
- 3.3.2 Elements in the DOM
- 3.3.3 Global attributes
- 3.3.3.1 The
id
attribute
- 3.3.3.2 The
title
attribute
- 3.3.3.3 The
lang
and xml:lang
attributes
- 3.3.3.4 The
xml:base
attribute (XML only)
- 3.3.3.5 The
dir
attribute
- 3.3.3.6 The
class
attribute
- 3.3.3.7 The
style
attribute
- 3.3.3.8 Embedding custom non-visible data
- 3.4 Content models
- 3.4.1 Kinds of content
- 3.4.1.1 Metadata content
- 3.4.1.2 Flow content
- 3.4.1.3 Sectioning content
- 3.4.1.4 Heading content
- 3.4.1.5 Phrasing content
- 3.4.1.6 Embedded content
- 3.4.1.7 Interactive content
- 3.4.2 Transparent content models
- 3.5 Paragraphs
- 3.6 APIs in HTML documents
- 3.7 Dynamic markup insertion
- 3.7.1 Controlling the input stream
- 3.7.2
document.write()
- 3.7.3
document.writeln()
- 3.7.4
innerHTML
- 3.7.5
outerHTML
- 3.7.6
insertAdjacentHTML()
- 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 Inline documentation for external scripts
- 4.3.2 The
noscript
element
- 4.3.3 The
eventsource
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
header
element
- 4.4.8 The
footer
element
- 4.4.9 The
address
element
- 4.4.10 Headings and sections
- 4.4.10.1 Creating an outline
- 4.4.10.2 Distinguishing site-wide headings from page headings
- 4.5 Grouping content
- 4.5.1 The
p
element
- 4.5.2 The
hr
element
- 4.5.3 The
br
element
- 4.5.4 The
pre
element
- 4.5.5 The
dialog
element
- 4.5.6 The
blockquote
element
- 4.5.7 The
ol
element
- 4.5.8 The
ul
element
- 4.5.9 The
li
element
- 4.5.10 The
dl
element
- 4.5.11 The
dt
element
- 4.5.12 The
dd
element
- 4.5.13 Common grouping idioms
- 4.5.13.1 Tag clouds
- 4.6 Text-level semantics
- 4.6.1 The
a
element
- 4.6.2 The
q
element
- 4.6.3 The
cite
element
- 4.6.4 The
em
element
- 4.6.5 The
strong
element
- 4.6.6 The
small
element
- 4.6.7 The
mark
element
- 4.6.8 The
dfn
element
- 4.6.9 The
abbr
element
- 4.6.10 The
time
element
- 4.6.11 The
progress
element
- 4.6.12 The
meter
element
- 4.6.13 The
code
element
- 4.6.14 The
var
element
- 4.6.15 The
samp
element
- 4.6.16 The
kbd
element
- 4.6.17 The
sub
and sup
elements
- 4.6.18 The
span
element
- 4.6.19 The
i
element
- 4.6.20 The
b
element
- 4.6.21 The
bdo
element
- 4.6.22 The
ruby
element
- 4.6.23 The
rt
element
- 4.6.24 The
rp
element
- 4.6.25 Usage summary
- 4.6.26 Footnotes
- 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.8 Embedded content
- 4.8.1 The
figure
element
- 4.8.2 The
img
element
- 4.8.2.1 Requirements for providing text to act as an alternative for images
- 4.8.2.1.1 A link or button containing nothing but the image
- 4.8.2.1.2 A phrase or paragraph with an alternative graphical representation: charts, diagrams, graphs, maps, illustrations
- 4.8.2.1.3 A short phrase or label with an alternative graphical representation: icons, logos
- 4.8.2.1.4 Text that has been rendered to a graphic for typographical effect
- 4.8.2.1.5 A graphical representation of some of the surrounding text
- 4.8.2.1.6 A purely decorative image that doesn't add any information
- 4.8.2.1.7 A group of images that form a single larger picture with no links
- 4.8.2.1.8 A group of images that form a single larger picture with links
- 4.8.2.1.9 A key part of the content
- 4.8.2.1.10 An image not intended for the user
- 4.8.2.1.11 An image in an e-mail or document intended for a specific person who is known to be able to view images
- 4.8.2.1.12 General guidelines
- 4.8.2.1.13 Guidance for markup generators
- 4.8.3 The
iframe
element
- 4.8.4 The
embed
element
- 4.8.5 The
object
element
- 4.8.6 The
param
element
- 4.8.7 The
video
element
- 4.8.7.1 Video and audio codecs for
video
elements
- 4.8.8 The
audio
element
- 4.8.8.1 Audio codecs for
audio
elements
- 4.8.9 The
source
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 Media 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 The ready states
- 4.8.10.8 Cue ranges
- 4.8.10.9 Playing the media resource
- 4.8.10.10 Seeking
- 4.8.10.11 User interface
- 4.8.10.12 Time ranges
- 4.8.10.13 Event summary
- 4.8.10.14 Security and privacy considerations
- 4.8.11 The
canvas
element
- 4.8.11.1 The 2D context
- 4.8.11.1.1 The canvas state
- 4.8.11.1.2 Transformations
- 4.8.11.1.3 Compositing
- 4.8.11.1.4 Colors and styles
- 4.8.11.1.5 Line styles
- 4.8.11.1.6 Shadows
- 4.8.11.1.7 Simple shapes (rectangles)
- 4.8.11.1.8 Complex shapes (paths)
- 4.8.11.1.9 Text
- 4.8.11.1.10 Images
- 4.8.11.1.11 Pixel manipulation
- 4.8.11.1.12 Drawing model
- 4.8.11.2 Color spaces and color correction
- 4.8.11.3 Security with
canvas
elements
- 4.8.12 The
map
element
- 4.8.13 The
area
element
- 4.8.14 Image maps
- 4.8.14.1 Authoring
- 4.8.14.2 Processing model
- 4.8.15 MathML
- 4.8.16 SVG
- 4.8.17 Dimension attributes
- 4.9 Tabular data
- 4.9.1 Introduction
- 4.9.2 The
table
element
- 4.9.3 The
caption
element
- 4.9.4 The
colgroup
element
- 4.9.5 The
col
element
- 4.9.6 The
tbody
element
- 4.9.7 The
thead
element
- 4.9.8 The
tfoot
element
- 4.9.9 The
tr
element
- 4.9.10 The
td
element
- 4.9.11 The
th
element
- 4.9.12 Attributes common to
td
and th
elements
- 4.9.13 Processing model
- 4.9.13.1 Forming a table
- 4.9.13.2 Forming relationships between data cells and header cells
- 4.10 Forms
- 4.10.1 The
form
element
- 4.10.2 The
fieldset
element
- 4.10.3 The
label
element
- 4.10.4 The
input
element
- 4.10.4.1 States of the
type
attribute
- 4.10.4.1.1 Hidden state
- 4.10.4.1.2 Text state and Search state
- 4.10.4.1.3 URL state
- 4.10.4.1.4 E-mail state
- 4.10.4.1.5 Password state
- 4.10.4.1.6 Date and Time state
- 4.10.4.1.7 Date state
- 4.10.4.1.8 Month state
- 4.10.4.1.9 Week state
- 4.10.4.1.10 Time state
- 4.10.4.1.11 Local Date and Time state
- 4.10.4.1.12 Number state
- 4.10.4.1.13 Range state
- 4.10.4.1.14 Color state
- 4.10.4.1.15 Checkbox state
- 4.10.4.1.16 Radio Button state
- 4.10.4.1.17 File Upload state
- 4.10.4.1.18 Submit Button state
- 4.10.4.1.19 Image Button state
- 4.10.4.1.20 Reset Button state
- 4.10.4.1.21 Button state
- 4.10.4.2 Common
input
element attributes
- 4.10.4.2.1 The
autocomplete
attribute
- 4.10.4.2.2 The
list
attribute
- 4.10.4.2.3 The
readonly
attribute
- 4.10.4.2.4 The
size
attribute
- 4.10.4.2.5 The
required
attribute
- 4.10.4.2.6 The
multiple
attribute
- 4.10.4.2.7 The
maxlength
attribute
- 4.10.4.2.8 The
pattern
attribute
- 4.10.4.2.9 The
min
and max
attributes
- 4.10.4.2.10 The
step
attribute
- 4.10.4.2.11 The
placeholder
attribute
- 4.10.4.3 Common
input
element APIs
- 4.10.4.4 Common event behaviors
- 4.10.5 The
button
element
- 4.10.6 The
select
element
- 4.10.7 The
datalist
element
- 4.10.8 The
optgroup
element
- 4.10.9 The
option
element
- 4.10.10 The
textarea
element
- 4.10.11 The
output
element
- 4.10.12 Association of controls and forms
- 4.10.13 Attributes common to form controls
- 4.10.13.1 Naming form controls
- 4.10.13.2 Enabling and disabling form controls
- 4.10.13.3 A form control's value
- 4.10.13.4 Autofocusing a form control
- 4.10.13.5 Limiting user input length
- 4.10.13.6 Form submission
- 4.10.14 Constraints
- 4.10.14.1 Definitions
- 4.10.14.2 Constraint validation
- 4.10.14.3 The constraint validation API
- 4.10.14.4 Security
- 4.10.15 Form submission
- 4.10.15.1 Implicit submission
- 4.10.15.2 Form submission algorithm
- 4.10.15.3 URL-encoded form data
- 4.10.15.4 Multipart form data
- 4.10.15.5 Plain text form data
- 4.10.16 Resetting a form
- 4.10.17 Event dispatch
- 4.11 Interactive elements
- 4.11.1 The
details
element
- 4.11.2 The
datagrid
element
- 4.11.2.1 The
datagrid
data model
- 4.11.2.2 How rows are identified
- 4.11.2.3 The data provider interface
- 4.11.2.4 The default data provider
- 4.11.2.4.1 Common default data
provider method definitions for cells
- 4.11.2.5 Populating the
datagrid
element
- 4.11.2.6 Updating the
datagrid
- 4.11.2.7 Requirements for interactive user agents
- 4.11.2.8 The selection
- 4.11.2.9 Columns and captions
- 4.11.3 The
command
element
- 4.11.4 The
bb
element
- 4.11.4.1 Browser button types
- 4.11.4.1.1 The make application state
- 4.11.5 The
menu
element
- 4.11.5.1 Introduction
- 4.11.5.2 Building menus and tool bars
- 4.11.5.3 Context menus
- 4.11.5.4 Tool bars
- 4.11.6 Commands
- 4.11.6.1 Using the
a
element to define a command
- 4.11.6.2 Using the
button
element to define a command
- 4.11.6.3 Using the
input
element to define a command
- 4.11.6.4 Using the
option
element to define a command
- 4.11.6.5 Using the
command
element to define
a command
- 4.11.6.6 Using the
bb
element to define a command
- 4.12 Miscellaneous elements
- 4.12.1 The
legend
element
- 4.12.2 The
div
element
- 4.13 Matching HTML elements using selectors
- 5 Web browsers
- 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 Security
- 5.1.5 Groupings of browsing contexts
- 5.1.6 Browsing context names
- 5.2 The
WindowProxy
object
- 5.3 The
Window
object
- 5.3.1 Security
- 5.3.2 APIs for creating and navigating browsing contexts by name
- 5.3.3 Accessing other browsing contexts
- 5.3.4 Garbage collection and browsing contexts
- 5.3.5 Named access on the
Window
object
- 5.3.6 Browser interface elements
- 5.4 Origin
- 5.4.1 Relaxing the same-origin restriction
- 5.5 Scripting
- 5.5.1 Introduction
- 5.5.2 Enabling and disabling scripting
- 5.5.3 Processing model
- 5.5.3.1 Definitions
- 5.5.3.2 Calling scripts
- 5.5.3.3 Creating scripts
- 5.5.3.4 Killing scripts
- 5.5.4 Event loops
- 5.5.4.1 Generic task sources
- 5.5.5 The
javascript:
protocol
- 5.5.6 Events
- 5.5.6.1 Event handler attributes
- 5.5.6.2 Event handler attributes on elements and on
Window
objects
- 5.5.6.3 Event firing
- 5.5.6.4 Events and the
Window
object
- 5.5.6.5 Runtime script errors
- 5.6 User prompts
- 5.6.1 Simple dialogs
- 5.6.2 Printing
- 5.6.3 Dialogs implemented using separate documents
- 5.7 System state and capabilities
- 5.7.1 Client identification
- 5.7.2 Custom protocol and content handlers
- 5.7.2.1 Security and privacy
- 5.7.2.2 Sample user interface
- 5.8 Offline Web applications
- 5.8.1 Introduction
- 5.8.2 Application caches
- 5.8.3 The cache manifest syntax
- 5.8.3.1 A sample manifest
- 5.8.3.2 Writing cache manifests
- 5.8.3.3 Parsing cache manifests
- 5.8.4 Updating an application cache
- 5.8.5 Matching a fallback namespace
- 5.8.6 The application cache selection algorithm
- 5.8.6.1 Changes to the networking model
- 5.8.7 Application cache API
- 5.8.8 Browser state
- 5.9 Session history and navigation
- 5.9.1 The session history of browsing contexts
- 5.9.2 The
History
interface
- 5.9.3 Activating state object entries
- 5.9.4 The
Location
interface
- 5.9.4.1 Security
- 5.9.5 Implementation notes for session history
- 5.10 Browsing the Web
- 5.10.1 Navigating across documents
- 5.10.2 Page load processing model for HTML files
- 5.10.3 Page load processing model for XML files
- 5.10.4 Page load processing model for text files
- 5.10.5 Page load processing model for images
- 5.10.6 Page load processing model for content that uses plugins
- 5.10.7 Page load processing model for inline content that doesn't have a DOM
- 5.10.8 Navigating to a fragment identifier
- 5.10.9 History traversal
- 5.10.10 Unloading documents
- 5.10.10.1 Event definition
- 5.11 Structured client-side storage
- 5.11.1 Storing name/value pairs
- 5.11.1.1 Introduction
- 5.11.1.2 The
Storage
interface
- 5.11.1.3 The
sessionStorage
attribute
- 5.11.1.4 The
localStorage
attribute
- 5.11.1.5 The
storage
event
- 5.11.1.5.1 Event definition
- 5.11.1.6 Threads
- 5.11.2 Database storage
- 5.11.2.1 Introduction
- 5.11.2.2 Databases
- 5.11.2.3 Executing SQL statements
- 5.11.2.4 Database query results
- 5.11.2.5 Errors
- 5.11.2.6 Processing model
- 5.11.3 Disk space
- 5.11.4 Privacy
- 5.11.4.1 User tracking
- 5.11.4.2 Cookie resurrection
- 5.11.5 Security
- 5.11.5.1 DNS spoofing attacks
- 5.11.5.2 Cross-directory attacks
- 5.11.5.3 Implementation risks
- 5.11.5.4 SQL and user agents
- 5.11.5.5 SQL injection
- 5.12 Links
- 5.12.1 Hyperlink elements
- 5.12.2 Following hyperlinks
- 5.12.2.1 Hyperlink auditing
- 5.12.3 Link types
- 5.12.3.1 Link type "
alternate
"
- 5.12.3.2 Link type "
archives
"
- 5.12.3.3 Link type "
author
"
- 5.12.3.4 Link type "
bookmark
"
- 5.12.3.5 Link type "
external
"
- 5.12.3.6 Link type "
feed
"
- 5.12.3.7 Link type "
help
"
- 5.12.3.8 Link type "
icon
"
- 5.12.3.9 Link type "
license
"
- 5.12.3.10 Link type "
nofollow
"
- 5.12.3.11 Link type "
noreferrer
"
- 5.12.3.12 Link type "
pingback
"
- 5.12.3.13 Link type "
prefetch
"
- 5.12.3.14 Link type "
search
"
- 5.12.3.15 Link type "
stylesheet
"
- 5.12.3.16 Link type "
sidebar
"
- 5.12.3.17 Link type "
tag
"
- 5.12.3.18 Hierarchical link types
- 5.12.3.18.1 Link type "
index
"
- 5.12.3.18.2 Link type "
up
"
- 5.12.3.19 Sequential link types
- 5.12.3.19.1 Link type "
first
"
- 5.12.3.19.2 Link type "
last
"
- 5.12.3.19.3 Link type "
next
"
- 5.12.3.19.4 Link type "
prev
"
- 5.12.3.20 Other link types
- 6 User Interaction
- 6.1 Introduction
- 6.2 The
hidden
attribute
- 6.3 Activation
- 6.4 Scrolling elements into view
- 6.5 Focus
- 6.5.1 Sequential focus navigation
- 6.5.2 Focus management
- 6.5.3 Document-level focus APIs
- 6.5.4 Element-level focus APIs
- 6.6 The text selection APIs
- 6.6.1 APIs for the browsing context selection
- 6.6.2 APIs for the text field selections
- 6.7 The
contenteditable
attribute
- 6.7.1 User editing actions
- 6.7.2 Making entire documents editable
- 6.8 Drag and drop
- 6.8.1 Introduction
- 6.8.2 The
DragEvent
and DataTransfer
interfaces
- 6.8.3 Events fired during a drag-and-drop action
- 6.8.4 Drag-and-drop processing model
- 6.8.4.1 When the drag-and-drop operation starts or ends in another
document
- 6.8.4.2 When the drag-and-drop operation starts or ends in another
application
- 6.8.5 The
draggable
attribute
- 6.8.6 Copy and paste
- 6.8.6.1 Copy to clipboard
- 6.8.6.2 Cut to clipboard
- 6.8.6.3 Paste from clipboard
- 6.8.6.4 Paste from selection
- 6.8.7 Security risks in the drag-and-drop model
- 6.9 Undo history
- 6.9.1 The
UndoManager
interface
- 6.9.2 Undo: moving back in the undo transaction history
- 6.9.3 Redo: moving forward in the undo transaction history
- 6.9.4 The
UndoManagerEvent
interface and the undo
and redo
events
- 6.9.5 Implementation notes
- 6.10 Command APIs
- 7 Communication
- 7.1 Event definitions
- 7.2 Server-sent events
- 7.2.1 The
RemoteEventTarget
interface
- 7.2.2 Connecting to an event stream
- 7.2.3 Parsing an event stream
- 7.2.4 Interpreting an event stream
- 7.2.5 Notes
- 7.3 Web sockets
- 7.3.1 Introduction
- 7.3.2 The
WebSocket
interface
- 7.3.3 WebSocket Events
- 7.3.4 Feedback from the protocol
- 7.3.5 The Web Socket
protocol
- 7.3.5.1 Introduction
- 7.3.5.2 Client-side requirements
- 7.3.5.2.1 Handshake
- 7.3.5.2.2 Data framing
- 7.3.5.3 Server-side requirements
- 7.3.5.3.1 Minimal handshake
- 7.3.5.3.2 Handshake details
- 7.3.5.3.3 Data framing
- 7.3.5.4 Closing the connection
- 7.3.5.5 Security considerations
- 7.3.5.6 IANA considerations
- 7.4 Cross-document messaging
- 7.4.1 Introduction
- 7.4.2 Security
- 7.4.2.1 Authors
- 7.4.2.2 User agents
- 7.4.3 Posting messages
- 7.4.4 Posting messages with message ports
- 7.5 Channel messaging
- 7.5.1 Introduction
- 7.5.2 Message channels
- 7.5.3 Message ports
- 7.5.3.1 Ports and garbage collection
- 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 CDATA 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 Parsing HTML documents
- 8.2.1 Overview of the parsing model
- 8.2.2 The input stream
- 8.2.2.1 Determining the character encoding
- 8.2.2.2 Character encoding requirements
- 8.2.2.3 Preprocessing the input stream
- 8.2.2.4 Changing the encoding while parsing
- 8.2.3 Parse state
- 8.2.3.1 The insertion mode
- 8.2.3.2 The stack of open elements
- 8.2.3.3 The list of active formatting elements
- 8.2.3.4 The element pointers
- 8.2.3.5 Other parsing state flags
- 8.2.4 Tokenization
- 8.2.4.1 Data state
- 8.2.4.2 Character reference data state
- 8.2.4.3 Tag open state
- 8.2.4.4 Close tag open state
- 8.2.4.5 Tag name state
- 8.2.4.6 Before attribute name state
- 8.2.4.7 Attribute name state
- 8.2.4.8 After attribute name state
- 8.2.4.9 Before attribute value state
- 8.2.4.10 Attribute value (double-quoted) state
- 8.2.4.11 Attribute value (single-quoted) state
- 8.2.4.12 Attribute value (unquoted) state
- 8.2.4.13 Character reference in attribute value state
- 8.2.4.14 After attribute value (quoted) state
- 8.2.4.15 Self-closing start tag state
- 8.2.4.16 Bogus comment state
- 8.2.4.17 Markup declaration open state
- 8.2.4.18 Comment start state
- 8.2.4.19 Comment start dash state
- 8.2.4.20 Comment state
- 8.2.4.21 Comment end dash state
- 8.2.4.22 Comment end state
- 8.2.4.23 DOCTYPE state
- 8.2.4.24 Before DOCTYPE name state
- 8.2.4.25 DOCTYPE name state
- 8.2.4.26 After DOCTYPE name state
- 8.2.4.27 Before DOCTYPE public identifier state
- 8.2.4.28 DOCTYPE public identifier (double-quoted) state
- 8.2.4.29 DOCTYPE public identifier (single-quoted) state
- 8.2.4.30 After DOCTYPE public identifier state
- 8.2.4.31 Before DOCTYPE system identifier state
- 8.2.4.32 DOCTYPE system identifier (double-quoted) state
- 8.2.4.33 DOCTYPE system identifier (single-quoted) state
- 8.2.4.34 After DOCTYPE system identifier state
- 8.2.4.35 Bogus DOCTYPE state
- 8.2.4.36 CDATA section state
- 8.2.4.37 Tokenizing character references
- 8.2.5 Tree construction
- 8.2.5.1 Creating and inserting elements
- 8.2.5.2 Closing elements that have implied end tags
- 8.2.5.3 Foster parenting
- 8.2.5.4 The "initial" insertion mode
- 8.2.5.5 The "before html" insertion mode
- 8.2.5.6 The "before head" insertion mode
- 8.2.5.7 The "in head" insertion mode
- 8.2.5.8 The "in head noscript" insertion mode
- 8.2.5.9 The "after head" insertion mode
- 8.2.5.10 The "in body" insertion mode
- 8.2.5.11 The "in CDATA/RCDATA" insertion mode
- 8.2.5.12 The "in table" insertion mode
- 8.2.5.13 The "in caption" insertion mode
- 8.2.5.14 The "in column group" insertion mode
- 8.2.5.15 The "in table body" insertion mode
- 8.2.5.16 The "in row" insertion mode
- 8.2.5.17 The "in cell" insertion mode
- 8.2.5.18 The "in select" insertion mode
- 8.2.5.19 The "in select in table" insertion mode
- 8.2.5.20 The "in foreign content" insertion mode
- 8.2.5.21 The "after body" insertion mode
- 8.2.5.22 The "in frameset" insertion mode
- 8.2.5.23 The "after frameset" insertion mode
- 8.2.5.24 The "after after body" insertion mode
- 8.2.5.25 The "after after frameset" insertion mode
- 8.2.6 The end
- 8.2.7 Coercing an HTML DOM into an infoset
- 8.3 Namespaces
- 8.4 Serializing HTML fragments
- 8.5 Parsing HTML fragments
- 8.6 Named character references
- 9 The XHTML syntax
- 9.1 Writing XHTML documents
- 9.2 Parsing XHTML documents
- 9.3 Serializing XHTML fragments
- 9.4 Parsing XHTML fragments
- 10 Rendering
- 10.1 Introduction
- 10.2 The CSS user agent style sheet and presentational hints
- 10.2.1 Introduction
- 10.2.2 Display types
- 10.2.3 Margins and padding
- 10.2.4 Alignment
- 10.2.5 Fonts and colors
- 10.2.6 Punctuation and decorations
- 10.2.7 Resetting rules for inherited properties
- 10.2.8 The
hr
element
- 10.2.9 The
fieldset
element
- 10.3 Replaced elements
- 10.3.1 Embedded content
- 10.3.2 Images
- 10.3.3 Attributes for embedded content and images
- 10.3.4 Image maps
- 10.3.5 Tool bars
- 10.4 Bindings
- 10.4.1 Introduction
- 10.4.2 The
bb
element
- 10.4.3 The
button
element
- 10.4.4 The
datagrid
element
- 10.4.5 The
details
element
- 10.4.6 The
input
element as a text entry widget
- 10.4.7 The
input
element as domain-specific widgets
- 10.4.8 The
input
element as a range control
- 10.4.9 The
input
element as a color well
- 10.4.10 The
input
element as a check box and radio button widgets
- 10.4.11 The
input
element as a file upload control
- 10.4.12 The
input
element as a button
- 10.4.13 The
marquee
element
- 10.4.14 The
meter
element
- 10.4.15 The
progress
element
- 10.4.16 The
select
element
- 10.4.17 The
textarea
element
- 10.5 Frames and framesets
- 10.6 Interactive media
- 10.6.1 Links, forms, and navigation
- 10.6.2 The
mark
element
- 10.6.3 The
title
attribute
- 10.7 Print media
- 10.8 Interaction with CSS
- 11 Obsolete features
- 11.1 Self-contained features
- 11.1.1 The
applet
element
- 11.1.2 The
marquee
element
- 11.2 Other elements and attributes
- 11.3 Other DOM APIs
- 11.4 Conformance checkers
- 12 Things that you can't do with this specification because
they are better handled using other technologies that are further
described herein
- 12.1 Localization
- 12.2 Declarative 2D vector graphics and animation
- 12.3 Declarative 3D scenes
- 12.4 Timers
- 12.5 Rendering and the DOM
- Index
- References
- Acknowledgements