Draft Standard — 13 September 2009
<snip/>
Abstract
This specification evolves HTML and its related APIs to ease the authoring of Web-based applications. Additions include context menus, a direct-mode graphics canvas, a full duplex client-server communication channel, more semantics, audio and video, various features for offline Web applications, sandboxed iframes, and scoped styling. Heavy emphasis is placed on keeping the language backwards compatible with existing legacy user agents and on keeping user agents backwards compatible with existing legacy documents.
<snip/>
Table of contents
1. 1 Introduction
1. 1.1 Background
2. 1.2 Audience
3. 1.3 Scope
4. 1.4 History
5. 1.5 Design notes
1. 1.5.1 Serializability of script execution
2. 1.5.2 Compliance with other specifications
6. 1.6 Relationships to other specifications
1. 1.6.1 Relationship to HTML4 and DOM2 HTML
2. 1.6.2 Relationship to XHTML1
7. 1.7 HTML vs XHTML
8. 1.8 Structure of this specification
1. 1.8.1 How to read this specification
2. 1.8.2 Typographic conventions
9. 1.9 A quick introduction to HTML
10. 1.10 Recommended reading
2. 2 Common infrastructure
1. 2.1 Terminology
1. 2.1.1 Resources
2. 2.1.2 XML
3. 2.1.3 DOM trees
4. 2.1.4 Scripting
5. 2.1.5 Plugins
6. 2.1.6 Character encodings
2. 2.2 Conformance requirements
1. 2.2.1 Dependencies
2. 2.2.2 Extensibility
3. 2.3 Case-sensitivity and string comparison
4. 2.4 Common microsyntaxes
1. 2.4.1 Common parser idioms
2. 2.4.2 Boolean attributes
3. 2.4.3 Keywords and enumerated attributes
4. 2.4.4 Numbers
1. 2.4.4.1 Non-negative integers
2. 2.4.4.2 Signed integers
3. 2.4.4.3 Real numbers
4. 2.4.4.4 Ratios
5. 2.4.4.5 Percentages and lengths
6. 2.4.4.6 Lists of integers
7. 2.4.4.7 Lists of dimensions
5. 2.4.5 Dates and times
1. 2.4.5.1 Months
2. 2.4.5.2 Dates
3. 2.4.5.3 Times
4. 2.4.5.4 Local dates and times
5. 2.4.5.5 Global dates and times
6. 2.4.5.6 Weeks
7. 2.4.5.7 Vaguer moments in time
6. 2.4.6 Colors
7. 2.4.7 Space-separated tokens
8. 2.4.8 Comma-separated tokens
9. 2.4.9 Reversed DNS identifiers
10. 2.4.10 References
5. 2.5 URLs
1. 2.5.1 Terminology
2. 2.5.2 Dynamic changes to base URLs
3. 2.5.3 Interfaces for URL manipulation
6. 2.6 Fetching resources
1. 2.6.1 Protocol concepts
2. 2.6.2 Encrypted HTTP and related security concerns
3. 2.6.3 Determining the type of a resource
7. 2.7 Common DOM interfaces
1. 2.7.1 Reflecting content attributes in IDL attributes
2. 2.7.2 Collections
1. 2.7.2.1 HTMLCollection
2. 2.7.2.2 HTMLAllCollection
3. 2.7.2.3 HTMLFormControlsCollection
4. 2.7.2.4 HTMLOptionsCollection
5. 2.7.2.5 HTMLPropertyCollection
3. 2.7.3 DOMTokenList
4. 2.7.4 DOMSettableTokenList
5. 2.7.5 Safe passing of structured data
6. 2.7.6 DOMStringMap
7. 2.7.7 DOM feature strings
8. 2.7.8 Exceptions
9. 2.7.9 Garbage collection
3. 3 Semantics, structure, and APIs of HTML documents
1. 3.1 Documents
1. 3.1.1 Documents in the DOM
2. 3.1.2 Security
3. 3.1.3 Resource metadata management
4. 3.1.4 DOM tree accessors
2. 3.2 Elements
1. 3.2.1 Semantics
2. 3.2.2 Elements in the DOM
3. 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 xml:base attribute (XML only)
5. 3.2.3.5 The dir attribute
6. 3.2.3.6 The class attribute
7. 3.2.3.7 The style attribute
8. 3.2.3.8 Embedding custom non-visible data
4. 3.2.4 Element definitions
5. 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
2. 3.2.5.2 Transparent content models
3. 3.2.5.3 Paragraphs
6. 3.2.6 Annotations for assistive technology products
3. 3.3 APIs in HTML documents
4. 3.4 Interactions with XPath and XSLT
5. 3.5 Dynamic markup insertion
1. 3.5.1 Opening the input stream
2. 3.5.2 Closing the input stream
3. 3.5.3 document.write()
4. 3.5.4 document.writeln()
5. 3.5.5 innerHTML
6. 3.5.6 outerHTML
7. 3.5.7 insertAdjacentHTML()
4. 4 The elements of HTML
1. 4.1 The root element
1. 4.1.1 The html element
2. 4.2 Document metadata
1. 4.2.1 The head element
2. 4.2.2 The title element
3. 4.2.3 The base element
4. 4.2.4 The link element
5. 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
6. 4.2.6 The style element
7. 4.2.7 Styling
3. 4.3 Scripting
1. 4.3.1 The script element
1. 4.3.1.1 Scripting languages
2. 4.3.1.2 Inline documentation for external scripts
2. 4.3.2 The noscript element
4. 4.4 Sections
1. 4.4.1 The body element
2. 4.4.2 The section element
3. 4.4.3 The nav element
4. 4.4.4 The article element
5. 4.4.5 The aside element
6. 4.4.6 The h1, h2, h3, h4, h5, and h6 elements
7. 4.4.7 The hgroup element
8. 4.4.8 The header element
9. 4.4.9 The footer element
10. 4.4.10 The address element
11. 4.4.11 Headings and sections
1. 4.4.11.1 Creating an outline
5. 4.5 Grouping content
1. 4.5.1 The p element
2. 4.5.2 The hr element
3. 4.5.3 The br element
4. 4.5.4 The pre element
5. 4.5.5 The dialog element
6. 4.5.6 The blockquote element
7. 4.5.7 The ol element
8. 4.5.8 The ul element
9. 4.5.9 The li element
10. 4.5.10 The dl element
11. 4.5.11 The dt element
12. 4.5.12 The dd element
13. 4.5.13 Common grouping idioms
1. 4.5.13.1 Tag clouds
6. 4.6 Text-level semantics
1. 4.6.1 The a element
2. 4.6.2 The em element
3. 4.6.3 The strong element
4. 4.6.4 The small element
5. 4.6.5 The cite element
6. 4.6.6 The q element
7. 4.6.7 The dfn element
8. 4.6.8 The abbr element
9. 4.6.9 The time element
10. 4.6.10 The code element
11. 4.6.11 The var element
12. 4.6.12 The samp element
13. 4.6.13 The kbd element
14. 4.6.14 The sub and sup elements
15. 4.6.15 The i element
16. 4.6.16 The b element
17. 4.6.17 The mark element
18. 4.6.18 The progress element
19. 4.6.19 The meter element
20. 4.6.20 The ruby element
21. 4.6.21 The rt element
22. 4.6.22 The rp element
23. 4.6.23 The bdo element
24. 4.6.24 The span element
25. 4.6.25 Usage summary
26. 4.6.26 Footnotes
7. 4.7 Edits
1. 4.7.1 The ins element
2. 4.7.2 The del element
3. 4.7.3 Attributes common to ins and del elements
4. 4.7.4 Edits and paragraphs
5. 4.7.5 Edits and lists
8. 4.8 Embedded content
1. 4.8.1 The figure element
2. 4.8.2 The img element
1. 4.8.2.1 Requirements for providing text to act as an alternative for images
1. 4.8.2.1.1 A link or button containing nothing but the image
2. 4.8.2.1.2 A phrase or paragraph with an alternative graphical representation: charts, diagrams, graphs, maps, illustrations
3. 4.8.2.1.3 A short phrase or label with an alternative graphical representation: icons, logos
4. 4.8.2.1.4 Text that has been rendered to a graphic for typographical effect
5. 4.8.2.1.5 A graphical representation of some of the surrounding text
6. 4.8.2.1.6 A purely decorative image that doesn't add any information
7. 4.8.2.1.7 A group of images that form a single larger picture with no links
8. 4.8.2.1.8 A group of images that form a single larger picture with links
9. 4.8.2.1.9 A key part of the content
10. 4.8.2.1.10 An image not intended for the user
11. 4.8.2.1.11 An image in an e-mail or private document intended for a specific person who is known to be able to view images
12. 4.8.2.1.12 General guidelines
13. 4.8.2.1.13 Guidance for markup generators
14. 4.8.2.1.14 Guidance for conformance checkers
3. 4.8.3 The iframe element
4. 4.8.4 The embed element
5. 4.8.5 The object element
6. 4.8.6 The param element
7. 4.8.7 The video element
8. 4.8.8 The audio element
9. 4.8.9 The source element
10. 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 The ready states
8. 4.8.10.8 Playing the media resource
9. 4.8.10.9 Seeking
10. 4.8.10.10 User interface
11. 4.8.10.11 Time ranges
12. 4.8.10.12 Event summary
13. 4.8.10.13 Security and privacy considerations
11. 4.8.11 The canvas element
1. 4.8.11.1 The 2D context
1. 4.8.11.1.1 The canvas state
2. 4.8.11.1.2 Transformations
3. 4.8.11.1.3 Compositing
4. 4.8.11.1.4 Colors and styles
5. 4.8.11.1.5 Line styles
6. 4.8.11.1.6 Shadows
7. 4.8.11.1.7 Simple shapes (rectangles)
8. 4.8.11.1.8 Complex shapes (paths)
9. 4.8.11.1.9 Text
10. 4.8.11.1.10 Images
11. 4.8.11.1.11 Pixel manipulation
12. 4.8.11.1.12 Drawing model
13. 4.8.11.1.13 Examples
2. 4.8.11.2 Color spaces and color correction
3. 4.8.11.3 Security with canvas elements
12. 4.8.12 The map element
13. 4.8.13 The area element
14. 4.8.14 Image maps
1. 4.8.14.1 Authoring
2. 4.8.14.2 Processing model
15. 4.8.15 MathML
16. 4.8.16 SVG
17. 4.8.17 Dimension attributes
9. 4.9 Tabular data
1. 4.9.1 The table element
2. 4.9.2 The caption element
3. 4.9.3 The colgroup element
4. 4.9.4 The col element
5. 4.9.5 The tbody element
6. 4.9.6 The thead element
7. 4.9.7 The tfoot element
8. 4.9.8 The tr element
9. 4.9.9 The td element
10. 4.9.10 The th element
11. 4.9.11 Attributes common to td and th elements
12. 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
13. 4.9.13 Examples
10. 4.10 Forms
1. 4.10.1 The form element
2. 4.10.2 The fieldset element
3. 4.10.3 The label element
4. 4.10.4 The input element
1. 4.10.4.1 States of the type attribute
1. 4.10.4.1.1 Hidden state
2. 4.10.4.1.2 Text state and Search state
3. 4.10.4.1.3 Telephone state
4. 4.10.4.1.4 URL state
5. 4.10.4.1.5 E-mail state
6. 4.10.4.1.6 Password state
7. 4.10.4.1.7 Date and Time state
8. 4.10.4.1.8 Date state
9. 4.10.4.1.9 Month state
10. 4.10.4.1.10 Week state
11. 4.10.4.1.11 Time state
12. 4.10.4.1.12 Local Date and Time state
13. 4.10.4.1.13 Number state
14. 4.10.4.1.14 Range state
15. 4.10.4.1.15 Color state
16. 4.10.4.1.16 Checkbox state
17. 4.10.4.1.17 Radio Button state
18. 4.10.4.1.18 File Upload state
19. 4.10.4.1.19 Submit Button state
20. 4.10.4.1.20 Image Button state
21. 4.10.4.1.21 Reset Button state
22. 4.10.4.1.22 Button state
2. 4.10.4.2 Common input element attributes
1. 4.10.4.2.1 The autocomplete attribute
2. 4.10.4.2.2 The list attribute
3. 4.10.4.2.3 The readonly attribute
4. 4.10.4.2.4 The size attribute
5. 4.10.4.2.5 The required attribute
6. 4.10.4.2.6 The multiple attribute
7. 4.10.4.2.7 The maxlength attribute
8. 4.10.4.2.8 The pattern attribute
9. 4.10.4.2.9 The min and max attributes
10. 4.10.4.2.10 The step attribute
11. 4.10.4.2.11 The placeholder attribute
3. 4.10.4.3 Common input element APIs
4. 4.10.4.4 Common event behaviors
5. 4.10.5 The button element
6. 4.10.6 The select element
7. 4.10.7 The datalist element
8. 4.10.8 The optgroup element
9. 4.10.9 The option element
10. 4.10.10 The textarea element
11. 4.10.11 The keygen element
12. 4.10.12 The output element
13. 4.10.13 Association of controls and forms
14. 4.10.14 Attributes common to form controls
1. 4.10.14.1 Naming form controls
2. 4.10.14.2 Enabling and disabling form controls
3. 4.10.14.3 A form control's value
4. 4.10.14.4 Autofocusing a form control
5. 4.10.14.5 Limiting user input length
6. 4.10.14.6 Form submission
15. 4.10.15 Constraints
1. 4.10.15.1 Definitions
2. 4.10.15.2 Constraint validation
3. 4.10.15.3 The constraint validation API
4. 4.10.15.4 Security
16. 4.10.16 Form submission
1. 4.10.16.1 Introduction
2. 4.10.16.2 Implicit submission
3. 4.10.16.3 Form submission algorithm
4. 4.10.16.4 URL-encoded form data
5. 4.10.16.5 Multipart form data
6. 4.10.16.6 Plain text form data
17. 4.10.17 Resetting a form
18. 4.10.18 Event dispatch
11. 4.11 Interactive elements
1. 4.11.1 The details element
2. 4.11.2 The command element
3. 4.11.3 The menu element
1. 4.11.3.1 Introduction
2. 4.11.3.2 Building menus and tool bars
3. 4.11.3.3 Context menus
4. 4.11.3.4 Tool bars
4. 4.11.4 Commands
1. 4.11.4.1 Using the a element to define a command
2. 4.11.4.2 Using the button element to define a command
3. 4.11.4.3 Using the input element to define a command
4. 4.11.4.4 Using the option element to define a command
5. 4.11.4.5 Using the command element to define a command
6. 4.11.4.6 Using the accesskey attribute on a label element to define a command
7. 4.11.4.7 Using the accesskey attribute on a legend element to define a command
8. 4.11.4.8 Using the accesskey attribute to define a command on other elements
12. 4.12 Miscellaneous elements
1. 4.12.1 The legend element
2. 4.12.2 The div element
13. 4.13 Matching HTML elements using selectors
5. 5 Microdata
1. 5.1 Introduction
1. 5.1.1 Overview
2. 5.1.2 The basic syntax
3. 5.1.3 Typed items
4. 5.1.4 Selecting names when defining vocabularies
5. 5.1.5 Predefined vocabularies
6. 5.1.6 Using the microdata DOM API
2. 5.2 Encoding microdata
1. 5.2.1 The microdata model
2. 5.2.2 Items: the item attribute
3. 5.2.3 Associating names with items
4. 5.2.4 Names: the itemprop attribute
5. 5.2.5 Values
3. 5.3 Microdata DOM API
4. 5.4 Predefined vocabularies
1. 5.4.1 General
2. 5.4.2 vCard
1. 5.4.2.1 Examples
3. 5.4.3 vEvent
1. 5.4.3.1 Examples
4. 5.4.4 Licensing works
1. 5.4.4.1 Examples
5. 5.5 Converting HTML to other formats
1. 5.5.1 JSON
2. 5.5.2 RDF
3. 5.5.3 vCard
4. 5.5.4 iCalendar
5. 5.5.5 Atom
6. 6 Web browsers
1. 6.1 Browsing contexts
1. 6.1.1 Nested browsing contexts
1. 6.1.1.1 Navigating nested browsing contexts in the DOM
2. 6.1.2 Auxiliary browsing contexts
1. 6.1.2.1 Navigating auxiliary browsing contexts in the DOM
3. 6.1.3 Secondary browsing contexts
4. 6.1.4 Security
5. 6.1.5 Groupings of browsing contexts
6. 6.1.6 Browsing context names
2. 6.2 The WindowProxy object
3. 6.3 The Window object
1. 6.3.1 Security
2. 6.3.2 APIs for creating and navigating browsing contexts by name
3. 6.3.3 Accessing other browsing contexts
4. 6.3.4 Named access on the Window object
5. 6.3.5 Garbage collection and browsing contexts
6. 6.3.6 Browser interface elements
4. 6.4 Origin
1. 6.4.1 Relaxing the same-origin restriction
5. 6.5 Scripting
1. 6.5.1 Introduction
2. 6.5.2 Enabling and disabling scripting
3. 6.5.3 Processing model
1. 6.5.3.1 Definitions
2. 6.5.3.2 Calling scripts
3. 6.5.3.3 Creating scripts
4. 6.5.3.4 Killing scripts
4. 6.5.4 Event loops
1. 6.5.4.1 Definitions
2. 6.5.4.2 Processing model
3. 6.5.4.3 Generic task sources
5. 6.5.5 The javascript: protocol
6. 6.5.6 Events
1. 6.5.6.1 Event handler attributes
2. 6.5.6.2 Event handler attributes on elements, Document objects, and Window objects
3. 6.5.6.3 Event firing
4. 6.5.6.4 Events and the Window object
5. 6.5.6.5 Runtime script errors
6. 6.6 Timers
7. 6.7 User prompts
1. 6.7.1 Simple dialogs
2. 6.7.2 Printing
3. 6.7.3 Dialogs implemented using separate documents
8. 6.8 System state and capabilities
1. 6.8.1 Client identification
2. 6.8.2 Custom scheme and content handlers
1. 6.8.2.1 Security and privacy
2. 6.8.2.2 Sample user interface
3. 6.8.3 Manually releasing the storage mutex
9. 6.9 Offline Web applications
1. 6.9.1 Introduction
1. 6.9.1.1 Event summary
2. 6.9.2 Application caches
3. 6.9.3 The cache manifest syntax
1. 6.9.3.1 A sample manifest
2. 6.9.3.2 Writing cache manifests
3. 6.9.3.3 Parsing cache manifests
4. 6.9.4 Updating an application cache
5. 6.9.5 Matching a fallback namespace
6. 6.9.6 The application cache selection algorithm
7. 6.9.7 Changes to the networking model
8. 6.9.8 Expiring application caches
9. 6.9.9 Application cache API
10. 6.9.10 Browser state
10. 6.10 Session history and navigation
1. 6.10.1 The session history of browsing contexts
2. 6.10.2 The History interface
3. 6.10.3 Activating state object entries
4. 6.10.4 The Location interface
1. 6.10.4.1 Security
5. 6.10.5 Implementation notes for session history
11. 6.11 Browsing the Web
1. 6.11.1 Navigating across documents
2. 6.11.2 Page load processing model for HTML files
3. 6.11.3 Page load processing model for XML files
4. 6.11.4 Page load processing model for text files
5. 6.11.5 Page load processing model for images
6. 6.11.6 Page load processing model for content that uses plugins
7. 6.11.7 Page load processing model for inline content that doesn't have a DOM
8. 6.11.8 Navigating to a fragment identifier
9. 6.11.9 History traversal
10. 6.11.10 Unloading documents
1. 6.11.10.1 Event definition
12. 6.12 Links
1. 6.12.1 Hyperlink elements
2. 6.12.2 Following hyperlinks
1. 6.12.2.1 Hyperlink auditing
3. 6.12.3 Link types
1. 6.12.3.1 Link type "alternate"
2. 6.12.3.2 Link type "archives"
3. 6.12.3.3 Link type "author"
4. 6.12.3.4 Link type "bookmark"
5. 6.12.3.5 Link type "external"
6. 6.12.3.6 Link type "feed"
7. 6.12.3.7 Link type "help"
8. 6.12.3.8 Link type "icon"
9. 6.12.3.9 Link type "license"
10. 6.12.3.10 Link type "nofollow"
11. 6.12.3.11 Link type "noreferrer"
12. 6.12.3.12 Link type "pingback"
13. 6.12.3.13 Link type "prefetch"
14. 6.12.3.14 Link type "search"
15. 6.12.3.15 Link type "stylesheet"
16. 6.12.3.16 Link type "sidebar"
17. 6.12.3.17 Link type "tag"
18. 6.12.3.18 Hierarchical link types
1. 6.12.3.18.1 Link type "index"
2. 6.12.3.18.2 Link type "up"
19. 6.12.3.19 Sequential link types
1. 6.12.3.19.1 Link type "first"
2. 6.12.3.19.2 Link type "last"
3. 6.12.3.19.3 Link type "next"
4. 6.12.3.19.4 Link type "prev"
20. 6.12.3.20 Other link types
7. 7 User Interaction
1. 7.1 The hidden attribute
2. 7.2 Activation
3. 7.3 Scrolling elements into view
4. 7.4 Focus
1. 7.4.1 Sequential focus navigation
2. 7.4.2 Focus management
3. 7.4.3 Document-level focus APIs
4. 7.4.4 Element-level focus APIs
5. 7.5 The accesskey attribute
6. 7.6 The text selection APIs
1. 7.6.1 APIs for the browsing context selection
2. 7.6.2 APIs for the text field selections
7. 7.7 The contenteditable attribute
1. 7.7.1 User editing actions
2. 7.7.2 Making entire documents editable
8. 7.8 Spelling and grammar checking
9. 7.9 Drag and drop
1. 7.9.1 Introduction
2. 7.9.2 The DragEvent and DataTransfer interfaces
3. 7.9.3 Events fired during a drag-and-drop action
4. 7.9.4 Drag-and-drop processing model
1. 7.9.4.1 When the drag-and-drop operation starts or ends in another document
2. 7.9.4.2 When the drag-and-drop operation starts or ends in another application
5. 7.9.5 The draggable attribute
6. 7.9.6 Copy and paste
1. 7.9.6.1 Copy to clipboard
2. 7.9.6.2 Cut to clipboard
3. 7.9.6.3 Paste from clipboard
4. 7.9.6.4 Paste from selection
7. 7.9.7 Security risks in the drag-and-drop model
10. 7.10 Undo history
1. 7.10.1 Introduction
2. 7.10.2 Definitions
3. 7.10.3 The UndoManager interface
4. 7.10.4 Undo: moving back in the undo transaction history
5. 7.10.5 Redo: moving forward in the undo transaction history
6. 7.10.6 The UndoManagerEvent interface and the undo and redo events
7. 7.10.7 Implementation notes
11. 7.11 Editing APIs
8. 8 Communication
1. 8.1 Event definitions
2. 8.2 Cross-document messaging
1. 8.2.1 Introduction
2. 8.2.2 Security
1. 8.2.2.1 Authors
2. 8.2.2.2 User agents
3. 8.2.3 Posting messages
4. 8.2.4 Posting messages with message ports
3. 8.3 Channel messaging
1. 8.3.1 Introduction
2. 8.3.2 Message channels
3. 8.3.3 Message ports
1. 8.3.3.1 Ports and garbage collection
9. 9 The HTML syntax
1. 9.1 Writing HTML documents
1. 9.1.1 The DOCTYPE
2. 9.1.2 Elements
1. 9.1.2.1 Start tags
2. 9.1.2.2 End tags
3. 9.1.2.3 Attributes
4. 9.1.2.4 Optional tags
5. 9.1.2.5 Restrictions on content models
6. 9.1.2.6 Restrictions on the contents of raw text and RCDATA elements
3. 9.1.3 Text
1. 9.1.3.1 Newlines
4. 9.1.4 Character references
5. 9.1.5 CDATA sections
6. 9.1.6 Comments
2. 9.2 Parsing HTML documents
1. 9.2.1 Overview of the parsing model
2. 9.2.2 The input stream
1. 9.2.2.1 Determining the character encoding
2. 9.2.2.2 Character encodings
3. 9.2.2.3 Preprocessing the input stream
4. 9.2.2.4 Changing the encoding while parsing
3. 9.2.3 Parse state
1. 9.2.3.1 The insertion mode
2. 9.2.3.2 The stack of open elements
3. 9.2.3.3 The list of active formatting elements
4. 9.2.3.4 The element pointers
5. 9.2.3.5 Other parsing state flags
4. 9.2.4 Tokenization
1. 9.2.4.1 Data state
2. 9.2.4.2 Character reference data state
3. 9.2.4.3 Tag open state
4. 9.2.4.4 Close tag open state
5. 9.2.4.5 Tag name state
6. 9.2.4.6 Before attribute name state
7. 9.2.4.7 Attribute name state
8. 9.2.4.8 After attribute name state
9. 9.2.4.9 Before attribute value state
10. 9.2.4.10 Attribute value (double-quoted) state
11. 9.2.4.11 Attribute value (single-quoted) state
12. 9.2.4.12 Attribute value (unquoted) state
13. 9.2.4.13 Character reference in attribute value state
14. 9.2.4.14 After attribute value (quoted) state
15. 9.2.4.15 Self-closing start tag state
16. 9.2.4.16 Bogus comment state
17. 9.2.4.17 Markup declaration open state
18. 9.2.4.18 Comment start state
19. 9.2.4.19 Comment start dash state
20. 9.2.4.20 Comment state
21. 9.2.4.21 Comment end dash state
22. 9.2.4.22 Comment end state
23. 9.2.4.23 Comment end bang state
24. 9.2.4.24 Comment end space state
25. 9.2.4.25 DOCTYPE state
26. 9.2.4.26 Before DOCTYPE name state
27. 9.2.4.27 DOCTYPE name state
28. 9.2.4.28 After DOCTYPE name state
29. 9.2.4.29 Before DOCTYPE public identifier state
30. 9.2.4.30 DOCTYPE public identifier (double-quoted) state
31. 9.2.4.31 DOCTYPE public identifier (single-quoted) state
32. 9.2.4.32 After DOCTYPE public identifier state
33. 9.2.4.33 Before DOCTYPE system identifier state
34. 9.2.4.34 DOCTYPE system identifier (double-quoted) state
35. 9.2.4.35 DOCTYPE system identifier (single-quoted) state
36. 9.2.4.36 After DOCTYPE system identifier state
37. 9.2.4.37 Bogus DOCTYPE state
38. 9.2.4.38 CDATA section state
39. 9.2.4.39 Tokenizing character references
5. 9.2.5 Tree construction
1. 9.2.5.1 Creating and inserting elements
2. 9.2.5.2 Closing elements that have implied end tags
3. 9.2.5.3 Foster parenting
4. 9.2.5.4 The "initial" insertion mode
5. 9.2.5.5 The "before html" insertion mode
6. 9.2.5.6 The "before head" insertion mode
7. 9.2.5.7 The "in head" insertion mode
8. 9.2.5.8 The "in head noscript" insertion mode
9. 9.2.5.9 The "after head" insertion mode
10. 9.2.5.10 The "in body" insertion mode
11. 9.2.5.11 The "in RAWTEXT/RCDATA" insertion mode
12. 9.2.5.12 The "in table" insertion mode
13. 9.2.5.13 The "in table text" insertion mode
14. 9.2.5.14 The "in caption" insertion mode
15. 9.2.5.15 The "in column group" insertion mode
16. 9.2.5.16 The "in table body" insertion mode
17. 9.2.5.17 The "in row" insertion mode
18. 9.2.5.18 The "in cell" insertion mode
19. 9.2.5.19 The "in select" insertion mode
20. 9.2.5.20 The "in select in table" insertion mode
21. 9.2.5.21 The "in foreign content" insertion mode
22. 9.2.5.22 The "after body" insertion mode
23. 9.2.5.23 The "in frameset" insertion mode
24. 9.2.5.24 The "after frameset" insertion mode
25. 9.2.5.25 The "after after body" insertion mode
26. 9.2.5.26 The "after after frameset" insertion mode
6. 9.2.6 The end
7. 9.2.7 Coercing an HTML DOM into an infoset
8. 9.2.8 An introduction to error handling and strange cases in the parser
1. 9.2.8.1 Misnested tags: <b><i></b></i>
2. 9.2.8.2 Misnested tags: <b><p></b></p>
3. 9.2.8.3 Unexpected markup in tables
4. 9.2.8.4 Scripts that modify the page as it is being parsed
3. 9.3 Namespaces
4. 9.4 Serializing HTML fragments
5. 9.5 Parsing HTML fragments
6. 9.6 Named character references
10. 10 The XHTML syntax
1. 10.1 Writing XHTML documents
2. 10.2 Parsing XHTML documents
3. 10.3 Serializing XHTML fragments
4. 10.4 Parsing XHTML fragments
11. 11 Rendering
1. 11.1 Introduction
2. 11.2 The CSS user agent style sheet and presentational hints
1. 11.2.1 Introduction
2. 11.2.2 Display types
3. 11.2.3 Margins and padding
4. 11.2.4 Alignment
5. 11.2.5 Fonts and colors
6. 11.2.6 Punctuation and decorations
7. 11.2.7 Resetting rules for inherited properties
8. 11.2.8 The hr element
9. 11.2.9 The fieldset element
3. 11.3 Replaced elements
1. 11.3.1 Embedded content
2. 11.3.2 Images
3. 11.3.3 Attributes for embedded content and images
4. 11.3.4 Image maps
5. 11.3.5 Tool bars
4. 11.4 Bindings
1. 11.4.1 Introduction
2. 11.4.2 The button element
3. 11.4.3 The details element
4. 11.4.4 The input element as a text entry widget
5. 11.4.5 The input element as domain-specific widgets
6. 11.4.6 The input element as a range control
7. 11.4.7 The input element as a color well
8. 11.4.8 The input element as a check box and radio button widgets
9. 11.4.9 The input element as a file upload control
10. 11.4.10 The input element as a button
11. 11.4.11 The marquee element
12. 11.4.12 The meter element
13. 11.4.13 The progress element
14. 11.4.14 The select element
15. 11.4.15 The textarea element
16. 11.4.16 The keygen element
17. 11.4.17 The time element
5. 11.5 Frames and framesets
6. 11.6 Interactive media
1. 11.6.1 Links, forms, and navigation
2. 11.6.2 The title attribute
3. 11.6.3 Editing hosts
7. 11.7 Print media
8. 11.8 Interaction with CSS
1. 11.8.1 Selectors
12. 12 Obsolete features
1. 12.1 Obsolete but conforming features
1. 12.1.1 Warnings for obsolete but conforming features
2. 12.2 Non-conforming features
3. 12.3 Requirements for implementations
1. 12.3.1 The applet element
2. 12.3.2 The marquee element
3. 12.3.3 Frames
4. 12.3.4 Other elements, attributes and APIs
13. 13 Things that you can't do with this specification because they are better handled using other technologies that are further described herein
1. 13.1 Localization
2. 13.2 Declarative 3D scenes
14. IANA considerations
1. 13.1 text/html
2. 13.2 application/xhtml+xml
3. 13.3 text/cache-manifest
4. 13.4 text/ping
5. 13.5 application/microdata+json
15. Index