HTML5 (original) (raw)
A vocabulary and associated APIs for HTML and XHTML
W3C Working Draft 25 October 2012
This Version:
http://www.w3.org/TR/2012/WD-html5-20121025/
Latest Published Version:
Latest Editor's Draft:
http://dev.w3.org/html5/spec/Overview.html
Previous Versions:
http://www.w3.org/TR/2012/WD-html5-20120329/
http://www.w3.org/TR/2011/WD-html5-20110525/
http://www.w3.org/TR/2011/WD-html5-20110405/
http://www.w3.org/TR/2011/WD-html5-20110113/
http://www.w3.org/TR/2010/WD-html5-20101019/
http://www.w3.org/TR/2010/WD-html5-20100624/
http://www.w3.org/TR/2010/WD-html5-20100304/
http://www.w3.org/TR/2009/WD-html5-20090825/
http://www.w3.org/TR/2009/WD-html5-20090423/
http://www.w3.org/TR/2009/WD-html5-20090212/
http://www.w3.org/TR/2008/WD-html5-20080610/
http://www.w3.org/TR/2008/WD-html5-20080122/
Editors:
Robin Berjon, W3C
Travis Leithead, Microsoft
Erika Doyle Navara, Microsoft
Edward O'Connor, Apple Inc.
Previous Editor:
Ian Hickson, Google, Inc.
This specification is available in the following formats: single page HTML,multipage HTML,web developer edition. This is revision Revision:1.2Revision: 1.2 Revision:1.2.
Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3Cliability,trademark and document use rules apply.
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 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.
This is a work in progress! For the latest updates from the HTML WG, possibly including important bug fixes, please look at the editor's draft instead.
Publication as a Working Draft 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. This specification is the 25 October 2012 Working Draft.
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:
- Commit-Watchers mailing list (complete source diffs): http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org
- Annotated summary with unified diffs: http://html5.org/tools/web-apps-tracker
- Raw Subversion interface:
svn checkout http://svn.whatwg.org/webapps/
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
- 2 Common infrastructure
- 2.1 Terminology
- 2.2 Conformance requirements
- 2.3 Case-sensitivity and string comparison
- 2.4 UTF-8
- 2.5 Common microsyntaxes
- 2.5.1 Common parser idioms
- 2.5.2 Boolean attributes
- 2.5.3 Keywords and enumerated attributes
- 2.5.4 Numbers
1. 2.5.4.1 Signed integers
2. 2.5.4.2 Non-negative integers
3. 2.5.4.3 Floating-point numbers
4. 2.5.4.4 Percentages and lengths
5. 2.5.4.5 Lists of integers
6. 2.5.4.6 Lists of dimensions - 2.5.5 Dates and times
1. 2.5.5.1 Months
2. 2.5.5.2 Dates
3. 2.5.5.3 Yearless dates
4. 2.5.5.4 Times
5. 2.5.5.5 Local dates and times
6. 2.5.5.6 Time zones
7. 2.5.5.7 Global dates and times
8. 2.5.5.8 Weeks
9. 2.5.5.9 Durations
10. 2.5.5.10 Vaguer moments in time - 2.5.6 Colors
- 2.5.7 Space-separated tokens
- 2.5.8 Comma-separated tokens
- 2.5.9 References
- 2.5.10 Media queries
- 2.6 URLs
- 2.7 Fetching resources
- 2.8 Common DOM interfaces
- 2.8.1 Reflecting content attributes in IDL attributes
- 2.8.2 Collections
1. 2.8.2.1 HTMLAllCollection
2. 2.8.2.2 HTMLFormControlsCollection
3. 2.8.2.3 HTMLOptionsCollection - 2.8.3 DOMStringMap
- 2.8.4 Transferable objects
- 2.8.5 Safe passing of structured data
- 2.8.6 DOM feature strings
- 2.8.7 Garbage collection
- 2.9 Namespaces
- 3 Semantics, structure, and APIs of HTML documents
- 3.1 Documents
- 3.2 Elements
- 3.2.1 Semantics
- 3.2.2 Elements in the DOM
- 3.2.3 Global attributes
1. 3.2.3.1 The id attribute
2. 3.2.3.2 The title attribute
3. 3.2.3.3 The lang and xml:lang attributes
4. 3.2.3.4 The translate attribute
5. 3.2.3.5 The xml:base attribute (XML only)
6. 3.2.3.6 The dir attribute
7. 3.2.3.7 The class attribute
8. 3.2.3.8 The style attribute
9. 3.2.3.9 Embedding custom non-visible data with the data-* attributes - 3.2.4 Element definitions
1. 3.2.4.1 Attributes - 3.2.5 Content models
1. 3.2.5.1 Kinds of content
1. 3.2.5.1.1 Metadata content
2. 3.2.5.1.2 Flow content
3. 3.2.5.1.3 Sectioning content
4. 3.2.5.1.4 Heading content
5. 3.2.5.1.5 Phrasing content
6. 3.2.5.1.6 Embedded content
7. 3.2.5.1.7 Interactive content
8. 3.2.5.1.8 Palpable content
2. 3.2.5.2 Transparent content models
3. 3.2.5.3 Paragraphs - 3.2.6 Requirements relating to bidirectional-algorithm formatting characters
- 3.2.7 WAI-ARIA
1. 3.2.7.1 ARIA Role Attribute
2. 3.2.7.2 State and Property Attributes
3. 3.2.7.3 Strong Native Semantics
4. 3.2.7.4 Implicit ARIA Semantics
- 3.3 Interactions with XPath and XSLT
- 3.4 Dynamic markup insertion
- 4 The elements of HTML
- 4.1 The root 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
1. 4.2.5.1 Standard metadata names
2. 4.2.5.2 Other metadata names
3. 4.2.5.3 Pragma directives
4. 4.2.5.4 Other pragma directives
5. 4.2.5.5 Specifying the document's character encoding - 4.2.6 The style element
- 4.2.7 Styling
- 4.3 Scripting
- 4.4 Sections
- 4.4.1 The body element
- 4.4.2 The article element
- 4.4.3 The section element
- 4.4.4 The nav 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.8 The header element
- 4.4.9 The footer element
- 4.4.10 The address element
- 4.4.11 Headings and sections
1. 4.4.11.1 Creating an outline - 4.4.12 Usage summary
- 4.5 Grouping content
- 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.8 Embedded content
- 4.8.1 The img element
1. 4.8.1.1 Requirements for providing text to act as an alternative for images
1. 4.8.1.1.1 General guidelines
2. 4.8.1.1.2 A link or button containing nothing but the image
3. 4.8.1.1.3 A phrase or paragraph with an alternative graphical representation: charts, diagrams, graphs, maps, illustrations
4. 4.8.1.1.4 A short phrase or label with an alternative graphical representation: icons, logos
5. 4.8.1.1.5 Text that has been rendered to a graphic for typographical effect
6. 4.8.1.1.6 A graphical representation of some of the surrounding text
7. 4.8.1.1.7 A purely decorative image that doesn't add any information
8. 4.8.1.1.8 A group of images that form a single larger picture with no links
9. 4.8.1.1.9 A group of images that form a single larger picture with links
10. 4.8.1.1.10 A key part of the content
11. 4.8.1.1.11 An image not intended for the user
12. 4.8.1.1.12 Guidance for markup generators
13. 4.8.1.1.13 Guidance for conformance checkers - 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
1. 4.8.10.1 Error codes
2. 4.8.10.2 Location of the media resource
3. 4.8.10.3 MIME types
4. 4.8.10.4 Network states
5. 4.8.10.5 Loading the media resource
6. 4.8.10.6 Offsets into the media resource
7. 4.8.10.7 Ready states
8. 4.8.10.8 Playing the media resource
9. 4.8.10.9 Seeking
10. 4.8.10.10 Media resources with multiple media tracks
1. 4.8.10.10.1 AudioTrackList and VideoTrackList objects
2. 4.8.10.10.2 Selecting specific audio and video tracks declaratively
11. 4.8.10.11 Synchronising multiple media elements
1. 4.8.10.11.1 Introduction
2. 4.8.10.11.2 Media controllers
3. 4.8.10.11.3 Assigning a media controller declaratively
12. 4.8.10.12 Timed text tracks
1. 4.8.10.12.1 Text track model
2. 4.8.10.12.2 Sourcing in-band text tracks
3. 4.8.10.12.3 Sourcing out-of-band text tracks
4. 4.8.10.12.4 Guidelines for exposing cues in various formats astext track cues
5. 4.8.10.12.5 Text track API
6. 4.8.10.12.6 Text tracks describing chapters
7. 4.8.10.12.7 Event definitions
13. 4.8.10.13 User interface
14. 4.8.10.14 Time ranges
15. 4.8.10.15 Event definitions
16. 4.8.10.16 Event summary
17. 4.8.10.17 Security and privacy considerations
18. 4.8.10.18 Best practices for authors using media elements
19. 4.8.10.19 Best practices for implementors of media elements - 4.8.11 The canvas element
1. 4.8.11.1 Color spaces and color correction
2. 4.8.11.2 Security with canvas elements - 4.8.12 The map element
- 4.8.13 The area element
- 4.8.14 Image maps
1. 4.8.14.1 Authoring
2. 4.8.14.2 Processing model - 4.8.15 MathML
- 4.8.16 SVG
- 4.8.17 Dimension attributes
- 4.8.1 The img element
- 4.9 Tabular data
- 4.9.1 The table element
1. 4.9.1.1 Techniques for describing tables
2. 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.7 The tfoot 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 Processing model
1. 4.9.12.1 Forming a table
2. 4.9.12.2 Forming relationships between data cells and header cells - 4.9.13 Examples
- 4.9.1 The table element
- 4.10 Forms
- 4.10.1 Introduction
1. 4.10.1.1 Writing a form's user interface
2. 4.10.1.2 Implementing the server-side processing for a form
3. 4.10.1.3 Configuring a form to communicate with a server
4. 4.10.1.4 Client-side form validation
5. 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
1. 4.10.7.1 States of the type attribute
1. 4.10.7.1.1 Hidden state (type=hidden)
2. 4.10.7.1.2 Text (type=text) state and Search state (type=search)
3. 4.10.7.1.3 Telephone state (type=tel)
4. 4.10.7.1.4 URL state (type=url)
5. 4.10.7.1.5 E-mail state (type=email)
6. 4.10.7.1.6 Password state (type=password)
7. 4.10.7.1.7 Date and Time state (type=datetime)
8. 4.10.7.1.8 Date state (type=date)
9. 4.10.7.1.9 Month state (type=month)
10. 4.10.7.1.10 Week state (type=week)
11. 4.10.7.1.11 Time state (type=time)
12. 4.10.7.1.12 Local Date and Time state (type=datetime-local)
13. 4.10.7.1.13 Number state (type=number)
14. 4.10.7.1.14 Range state (type=range)
15. 4.10.7.1.15 Color state (type=color)
16. 4.10.7.1.16 Checkbox state (type=checkbox)
17. 4.10.7.1.17 Radio Button state (type=radio)
18. 4.10.7.1.18 File Upload state (type=file)
19. 4.10.7.1.19 Submit Button state (type=submit)
20. 4.10.7.1.20 Image Button state (type=image)
21. 4.10.7.1.21 Reset Button state (type=reset)
22. 4.10.7.1.22 Button state (type=button)
2. 4.10.7.2 Implemention notes regarding localization of form controls
3. 4.10.7.3 Common input element attributes
1. 4.10.7.3.1 The autocomplete attribute
2. 4.10.7.3.2 The dirname attribute
3. 4.10.7.3.3 The list attribute
4. 4.10.7.3.4 The readonly attribute
5. 4.10.7.3.5 The size attribute
6. 4.10.7.3.6 The required attribute
7. 4.10.7.3.7 The multiple attribute
8. 4.10.7.3.8 The maxlength attribute
9. 4.10.7.3.9 The pattern attribute
10. 4.10.7.3.10 The min and max attributes
11. 4.10.7.3.11 The step attribute
12. 4.10.7.3.12 The placeholder attribute
4. 4.10.7.4 Common input element APIs
5. 4.10.7.5 Common event behaviors - 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
1. 4.10.19.1 Naming form controls
2. 4.10.19.2 Enabling and disabling form controls
3. 4.10.19.3 A form control's value
4. 4.10.19.4 Autofocusing a form control
5. 4.10.19.5 Limiting user input length
6. 4.10.19.6 Form submission
7. 4.10.19.7 Submitting element directionality - 4.10.20 APIs for the text field selections
- 4.10.21 Constraints
1. 4.10.21.1 Definitions
2. 4.10.21.2 Constraint validation
3. 4.10.21.3 The constraint validation API
4. 4.10.21.4 Security - 4.10.22 Form submission
1. 4.10.22.1 Introduction
2. 4.10.22.2 Implicit submission
3. 4.10.22.3 Form submission algorithm
4. 4.10.22.4 Constructing the form data set
5. 4.10.22.5 URL-encoded form data
6. 4.10.22.6 Multipart form data
7. 4.10.22.7 Plain text form data - 4.10.23 Resetting a form
- 4.10.1 Introduction
- 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
1. 4.11.4.1 Introduction
2. 4.11.4.2 Building menus and toolbars
3. 4.11.4.3 Context menus
4. 4.11.4.4 Toolbars - 4.11.5 Commands
1. 4.11.5.1 Using the a element to define a command
2. 4.11.5.2 Using the button element to define a command
3. 4.11.5.3 Using the input element to define a command
4. 4.11.5.4 Using the option element to define a command
5. 4.11.5.5 Using the command element to define a command
6. 4.11.5.6 Using the command attribute on command elements to define a command indirectly
7. 4.11.5.7 Using the accesskey attribute on a label element to define a command
8. 4.11.5.8 Using the accesskey attribute on a legend element to define a command
9. 4.11.5.9 Using the accesskey attribute to define a command on other elements - 4.11.6 The dialog element
1. 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 Following hyperlinks
- 4.12.4 Downloading resources
1. 4.12.4.1 Hyperlink auditing - 4.12.5 Link types
1. 4.12.5.1 Link type "alternate"
2. 4.12.5.2 Link type "author"
3. 4.12.5.3 Link type "bookmark"
4. 4.12.5.4 Link type "help"
5. 4.12.5.5 Link type "icon"
6. 4.12.5.6 Link type "license"
7. 4.12.5.7 Link type "nofollow"
8. 4.12.5.8 Link type "noreferrer"
9. 4.12.5.9 Link type "prefetch"
10. 4.12.5.10 Link type "search"
11. 4.12.5.11 Link type "stylesheet"
12. 4.12.5.12 Link type "tag"
13. 4.12.5.13 Sequential link types
1. 4.12.5.13.1 Link type "next"
2. 4.12.5.13.2 Link type "prev"
14. 4.12.5.14 Other link types
- 4.13 Common idioms without dedicated elements
- 4.14 Matching HTML elements using selectors
- 5 Loading Web pages
- 5.1 Browsing contexts
- 5.2 The Window object
- 5.2.1 Security
- 5.2.2 APIs for creating and navigating browsing contexts by name
- 5.2.3 Accessing other browsing contexts
- 5.2.4 Named access on the Window object
- 5.2.5 Garbage collection and browsing contexts
- 5.2.6 Closing browsing contexts
- 5.2.7 Browser interface elements
- 5.2.8 The WindowProxy object
- 5.3 Origin
- 5.4 Sandboxing
- 5.5 Session history and navigation
- 5.6 Browsing the Web
- 5.6.1 Navigating across documents
- 5.6.2 Page load processing model for HTML files
- 5.6.3 Page load processing model for XML files
- 5.6.4 Page load processing model for text files
- 5.6.5 Page load processing model for multipart/x-mixed-replace resources
- 5.6.6 Page load processing model for media
- 5.6.7 Page load processing model for content that uses plugins
- 5.6.8 Page load processing model for inline content that doesn't have a DOM
- 5.6.9 Navigating to a fragment identifier
- 5.6.10 History traversal
1. 5.6.10.1 Event definitions - 5.6.11 Unloading documents
1. 5.6.11.1 Event definition - 5.6.12 Aborting a document load
- 5.7 Offline Web applications
- 5.7.1 Introduction
1. 5.7.1.1 Event summary - 5.7.2 Application caches
- 5.7.3 The cache manifest syntax
1. 5.7.3.1 Some sample manifests
2. 5.7.3.2 Writing cache manifests
3. 5.7.3.3 Parsing cache manifests - 5.7.4 Downloading or updating an application cache
- 5.7.5 The application cache selection algorithm
- 5.7.6 Changes to the networking model
- 5.7.7 Expiring application caches
- 5.7.8 Disk space
- 5.7.9 Application cache API
- 5.7.10 Browser state
- 5.7.1 Introduction
- 6 Web application APIs
- 6.1 Scripting
- 6.1.1 Introduction
- 6.1.2 Enabling and disabling scripting
- 6.1.3 Processing model
1. 6.1.3.1 Definitions
2. 6.1.3.2 Calling scripts
3. 6.1.3.3 Creating scripts
4. 6.1.3.4 Killing scripts
5. 6.1.3.5 Runtime script errors
1. 6.1.3.5.1 Runtime script errors in documents - 6.1.4 Event loops
1. 6.1.4.1 Definitions
2. 6.1.4.2 Processing model
3. 6.1.4.3 Generic task sources - 6.1.5 The javascript: URL scheme
- 6.1.6 Events
1. 6.1.6.1 Event handlers
2. 6.1.6.2 Event handlers on elements, Document objects, and Window objects
3. 6.1.6.3 Event firing
4. 6.1.6.4 Events and the Window object
- 6.2 Base64 utility methods
- 6.3 Timers
- 6.4 User prompts
- 6.5 System state and capabilities
- 6.1 Scripting
- 7 User interaction
- 7.1 The hidden attribute
- 7.2 Inert subtrees
- 7.3 Activation
- 7.4 Focus
- 7.5 Assigning keyboard shortcuts
- 7.6 Editing
- 7.7 Drag and drop
- 7.7.1 Introduction
- 7.7.2 The drag data store
- 7.7.3 The DataTransfer interface
1. 7.7.3.1 The DataTransferItemList interface
2. 7.7.3.2 The DataTransferItem interface - 7.7.4 The DragEvent interface
- 7.7.5 Drag-and-drop processing model
- 7.7.6 Events summary
- 7.7.7 The draggable attribute
- 7.7.8 The dropzone attribute
- 7.7.9 Security risks in the drag-and-drop model
- 8 The HTML syntax
- 8.1 Writing HTML documents
- 8.1.1 The DOCTYPE
- 8.1.2 Elements
1. 8.1.2.1 Start tags
2. 8.1.2.2 End tags
3. 8.1.2.3 Attributes
4. 8.1.2.4 Optional tags
5. 8.1.2.5 Restrictions on content models
6. 8.1.2.6 Restrictions on the contents of raw text and RCDATA elements - 8.1.3 Text
1. 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 byte stream
1. 8.2.2.1 Determining the character encoding
2. 8.2.2.2 Character encodings
3. 8.2.2.3 Changing the encoding while parsing
4. 8.2.2.4 Preprocessing the input stream - 8.2.3 Parse state
1. 8.2.3.1 The insertion mode
2. 8.2.3.2 The stack of open elements
3. 8.2.3.3 The list of active formatting elements
4. 8.2.3.4 The element pointers
5. 8.2.3.5 Other parsing state flags - 8.2.4 Tokenization
1. 8.2.4.1 Data state
2. 8.2.4.2 Character reference in data state
3. 8.2.4.3 RCDATA state
4. 8.2.4.4 Character reference in RCDATA state
5. 8.2.4.5 RAWTEXT state
6. 8.2.4.6 Script data state
7. 8.2.4.7 PLAINTEXT state
8. 8.2.4.8 Tag open state
9. 8.2.4.9 End tag open state
10. 8.2.4.10 Tag name state
11. 8.2.4.11 RCDATA less-than sign state
12. 8.2.4.12 RCDATA end tag open state
13. 8.2.4.13 RCDATA end tag name state
14. 8.2.4.14 RAWTEXT less-than sign state
15. 8.2.4.15 RAWTEXT end tag open state
16. 8.2.4.16 RAWTEXT end tag name state
17. 8.2.4.17 Script data less-than sign state
18. 8.2.4.18 Script data end tag open state
19. 8.2.4.19 Script data end tag name state
20. 8.2.4.20 Script data escape start state
21. 8.2.4.21 Script data escape start dash state
22. 8.2.4.22 Script data escaped state
23. 8.2.4.23 Script data escaped dash state
24. 8.2.4.24 Script data escaped dash dash state
25. 8.2.4.25 Script data escaped less-than sign state
26. 8.2.4.26 Script data escaped end tag open state
27. 8.2.4.27 Script data escaped end tag name state
28. 8.2.4.28 Script data double escape start state
29. 8.2.4.29 Script data double escaped state
30. 8.2.4.30 Script data double escaped dash state
31. 8.2.4.31 Script data double escaped dash dash state
32. 8.2.4.32 Script data double escaped less-than sign state
33. 8.2.4.33 Script data double escape end state
34. 8.2.4.34 Before attribute name state
35. 8.2.4.35 Attribute name state
36. 8.2.4.36 After attribute name state
37. 8.2.4.37 Before attribute value state
38. 8.2.4.38 Attribute value (double-quoted) state
39. 8.2.4.39 Attribute value (single-quoted) state
40. 8.2.4.40 Attribute value (unquoted) state
41. 8.2.4.41 Character reference in attribute value state
42. 8.2.4.42 After attribute value (quoted) state
43. 8.2.4.43 Self-closing start tag state
44. 8.2.4.44 Bogus comment state
45. 8.2.4.45 Markup declaration open state
46. 8.2.4.46 Comment start state
47. 8.2.4.47 Comment start dash state
48. 8.2.4.48 Comment state
49. 8.2.4.49 Comment end dash state
50. 8.2.4.50 Comment end state
51. 8.2.4.51 Comment end bang state
52. 8.2.4.52 DOCTYPE state
53. 8.2.4.53 Before DOCTYPE name state
54. 8.2.4.54 DOCTYPE name state
55. 8.2.4.55 After DOCTYPE name state
56. 8.2.4.56 After DOCTYPE public keyword state
57. 8.2.4.57 Before DOCTYPE public identifier state
58. 8.2.4.58 DOCTYPE public identifier (double-quoted) state
59. 8.2.4.59 DOCTYPE public identifier (single-quoted) state
60. 8.2.4.60 After DOCTYPE public identifier state
61. 8.2.4.61 Between DOCTYPE public and system identifiers state
62. 8.2.4.62 After DOCTYPE system keyword state
63. 8.2.4.63 Before DOCTYPE system identifier state
64. 8.2.4.64 DOCTYPE system identifier (double-quoted) state
65. 8.2.4.65 DOCTYPE system identifier (single-quoted) state
66. 8.2.4.66 After DOCTYPE system identifier state
67. 8.2.4.67 Bogus DOCTYPE state
68. 8.2.4.68 CDATA section state
69. 8.2.4.69 Tokenizing character references - 8.2.5 Tree construction
1. 8.2.5.1 Creating and inserting elements
2. 8.2.5.2 Closing elements that have implied end tags
3. 8.2.5.3 Foster parenting
4. 8.2.5.4 The rules for parsing tokens in HTML content
1. 8.2.5.4.1 The "initial" insertion mode
2. 8.2.5.4.2 The "before html" insertion mode
3. 8.2.5.4.3 The "before head" insertion mode
4. 8.2.5.4.4 The "in head" insertion mode
5. 8.2.5.4.5 The "in head noscript" insertion mode
6. 8.2.5.4.6 The "after head" insertion mode
7. 8.2.5.4.7 The "in body" insertion mode
8. 8.2.5.4.8 The "text" insertion mode
9. 8.2.5.4.9 The "in table" insertion mode
10. 8.2.5.4.10 The "in table text" insertion mode
11. 8.2.5.4.11 The "in caption" insertion mode
12. 8.2.5.4.12 The "in column group" insertion mode
13. 8.2.5.4.13 The "in table body" insertion mode
14. 8.2.5.4.14 The "in row" insertion mode
15. 8.2.5.4.15 The "in cell" insertion mode
16. 8.2.5.4.16 The "in select" insertion mode
17. 8.2.5.4.17 The "in select in table" insertion mode
18. 8.2.5.4.18 The "after body" insertion mode
19. 8.2.5.4.19 The "in frameset" insertion mode
20. 8.2.5.4.20 The "after frameset" insertion mode
21. 8.2.5.4.21 The "after after body" insertion mode
22. 8.2.5.4.22 The "after after frameset" insertion mode
5. 8.2.5.5 The rules for parsing tokens in foreign content - 8.2.6 The end
- 8.2.7 Coercing an HTML DOM into an infoset
- 8.2.8 An introduction to error handling and strange cases in the parser
1. 8.2.8.1 Misnested tags:
2. 8.2.8.2 Misnested tags:
3. 8.2.8.3 Unexpected markup in tables
4. 8.2.8.4 Scripts that modify the page as it is being parsed
5. 8.2.8.5 The execution of scripts that are moving across multiple documents
6. 8.2.8.6 Unclosed formatting elements
- 8.3 Serializing HTML fragments
- 8.4 Parsing HTML fragments
- 8.5 Named character references
- 8.1 Writing HTML documents
- 9 The XHTML syntax
- 10 Rendering
- 10.1 Introduction
- 10.2 The CSS user agent style sheet and presentational hints
- 10.3 Non-replaced elements
- 10.4 Replaced elements
- 10.5 Bindings
- 10.5.1 Introduction
- 10.5.2 The button element
- 10.5.3 The details element
- 10.5.4 The input element as a text entry widget
- 10.5.5 The input element as domain-specific widgets
- 10.5.6 The input element as a range control
- 10.5.7 The input element as a color well
- 10.5.8 The input element as a checkbox and radio button widgets
- 10.5.9 The input element as a file upload control
- 10.5.10 The input element as a button
- 10.5.11 The marquee element
- 10.5.12 The meter element
- 10.5.13 The progress element
- 10.5.14 The select element
- 10.5.15 The textarea element
- 10.5.16 The keygen element
- 10.6 Frames and framesets
- 10.7 Interactive media
- 10.8 Print media
- 11 Obsolete features
- 11.1 Obsolete but conforming features
- 11.2 Non-conforming features
- 11.3 Requirements for implementations
- 12 IANA considerations
- 12.1 text/html
- 12.2 multipart/x-mixed-replace
- 12.3 application/xhtml+xml
- 12.4 application/x-www-form-urlencoded
- 12.5 text/cache-manifest
- 12.6 Ping-To
- 12.7 web+ scheme prefix
- Index
- Elements
- Element content categories
- Attributes
- Element Interfaces
- All Interfaces
- Events
- References
- Acknowledgements