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 [email protected] (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 HTML Living Standard, under a license that permits reuse of the specification text.

Publication as a Candidate Recommendation 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.

For this specification to exit the CR stage, the conditions detailed in the CR Exit Criteria (Public Permissive version 3) document will have to be met.

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

This document was published by the HTML Working Group as a Candidate Recommendation. This document is intended to become a W3C Recommendation. W3C publishes a Candidate Recommendation to indicate that the document is believed to be stable and to encourage implementation by the developer community. This Candidate Recommendation is expected to advance to Proposed Recommendation no earlier than 01 September 2014. All feedback is welcome.

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:

The following features are at risk and may be removed due to lack of implementation.

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. 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 HTML vs XHTML
    7. 1.7 Structure of this specification
      1. 1.7.1 How to read this specification
      2. 1.7.2 Typographic conventions
    8. 1.8 Privacy concerns
    9. 1.9 A quick introduction to HTML
      1. 1.9.1 Writing secure applications with HTML
      2. 1.9.2 Common pitfalls to avoid when using the scripting APIs
    10. 1.10 Conformance requirements for authors
      1. 1.10.1 Presentational markup
      2. 1.10.2 Syntax errors
      3. 1.10.3 Restrictions on content models and on attribute values
    11. 1.11 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 Conformance classes
      2. 2.2.2 Dependencies
      3. 2.2.3 Extensibility
    3. 2.3 Case-sensitivity and string comparison
    4. 2.4 UTF-8
    5. 2.5 Common microsyntaxes
      1. 2.5.1 Common parser idioms
      2. 2.5.2 Boolean attributes
      3. 2.5.3 Keywords and enumerated attributes
      4. 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
      5. 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
      6. 2.5.6 Colors
      7. 2.5.7 Space-separated tokens
      8. 2.5.8 Comma-separated tokens
      9. 2.5.9 References
      10. 2.5.10 Media queries
    6. 2.6 URLs
      1. 2.6.1 Terminology
      2. 2.6.2 Parsing URLs
      3. 2.6.3 Base URLs
      4. 2.6.4 Resolving URLs
      5. 2.6.5 URL manipulation and creation
      6. 2.6.6 Dynamic changes to base URLs
      7. 2.6.7 Interfaces for URL manipulation
    7. 2.7 Fetching resources
      1. 2.7.1 Terminology
      2. 2.7.2 Processing model
      3. 2.7.3 Encrypted HTTP and related security concerns
      4. 2.7.4 Determining the type of a resource
      5. 2.7.5 Extracting character encodings from meta elements
      6. 2.7.6 CORS settings attributes
      7. 2.7.7 CORS-enabled fetch
    8. 2.8 Common DOM interfaces
      1. 2.8.1 Reflecting content attributes in IDL attributes
      2. 2.8.2 Collections
        1. 2.8.2.1 HTMLAllCollection
        2. 2.8.2.2 HTMLFormControlsCollection
        3. 2.8.2.3 HTMLOptionsCollection
      3. 2.8.3 DOMStringMap
      4. 2.8.4 Transferable objects
      5. 2.8.5 Safe passing of structured data
      6. 2.8.6 DOM feature strings
      7. 2.8.7 Garbage collection
    9. 2.9 Namespaces
  3. 3 Semantics, structure, and APIs of HTML documents
    1. 3.1 Documents
      1. 3.1.1 The Document object
      2. 3.1.2 Security
      3. 3.1.3 Resource metadata management
      4. 3.1.4 DOM tree accessors
      5. 3.1.5 Loading XML documents
    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 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
      4. 3.2.4 Element definitions
        1. 3.2.4.1 Attributes
      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
          8. 3.2.5.1.8 Palpable content
        2. 3.2.5.2 Transparent content models
        3. 3.2.5.3 Paragraphs
      6. 3.2.6 Requirements relating to bidirectional-algorithm formatting characters
      7. 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
      8. 3.3 Interactions with XPath and XSLT
      9. 3.4 Dynamic markup insertion
        1. 3.4.1 Opening the input stream
        2. 3.4.2 Closing the input stream
        3. 3.4.3 document.write()
        4. 3.4.4 document.writeln()
      10. 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 Restrictions for contents of script elements
            3. 4.3.1.3 Inline documentation for external scripts
            4. 4.3.1.4 Interaction of script elements and XSLT
          2. 4.3.2 The noscript element
        4. 4.4 Sections
          1. 4.4.1 The body element
          2. 4.4.2 The article element
          3. 4.4.3 The section element
          4. 4.4.4 The nav 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
          12. 4.4.12 Usage summary
        5. 4.5 Grouping content
          1. 4.5.1 The p element
          2. 4.5.2 The hr element
          3. 4.5.3 The pre element
          4. 4.5.4 The blockquote element
          5. 4.5.5 The ol element
          6. 4.5.6 The ul element
          7. 4.5.7 The li element
          8. 4.5.8 The dl element
          9. 4.5.9 The dt element
          10. 4.5.10 The dd element
          11. 4.5.11 The figure element
          12. 4.5.12 The figcaption element
          13. 4.5.13 The div element
        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 s element
          6. 4.6.6 The cite element
          7. 4.6.7 The q element
          8. 4.6.8 The dfn element
          9. 4.6.9 The abbr element
          10. 4.6.10 The time element
          11. 4.6.11 The code element
          12. 4.6.12 The var element
          13. 4.6.13 The samp element
          14. 4.6.14 The kbd element
          15. 4.6.15 The sub and sup elements
          16. 4.6.16 The i element
          17. 4.6.17 The b element
          18. 4.6.18 The u element
          19. 4.6.19 The mark 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 bdi element
          24. 4.6.24 The bdo element
          25. 4.6.25 The span element
          26. 4.6.26 The br element
          27. 4.6.27 The wbr element
          28. 4.6.28 Usage summary
        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
          6. 4.7.6 Edits and tables
        8. 4.8 Embedded content
          1. 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
            2. 4.8.2 The iframe element
            3. 4.8.3 The embed element
            4. 4.8.4 The object element
            5. 4.8.5 The param element
            6. 4.8.6 The video element
            7. 4.8.7 The audio element
            8. 4.8.8 The source element
            9. 4.8.9 The track 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 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 as text 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
            11. 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
            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
          2. 4.9 Tabular data
            1. 4.9.1 The table element
              1. 4.9.1.1 Techniques for describing tables
              2. 4.9.1.2 Techniques for table layout
            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
          3. 4.10 Forms
            1. 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
            2. 4.10.2 Categories
            3. 4.10.3 The form element
            4. 4.10.4 The fieldset element
            5. 4.10.5 The legend element
            6. 4.10.6 The label element
            7. 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
            8. 4.10.8 The button element
            9. 4.10.9 The select element
            10. 4.10.10 The datalist element
            11. 4.10.11 The optgroup element
            12. 4.10.12 The option element
            13. 4.10.13 The textarea element
            14. 4.10.14 The keygen element
            15. 4.10.15 The output element
            16. 4.10.16 The progress element
            17. 4.10.17 The meter element
            18. 4.10.18 Association of controls and forms
            19. 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
            20. 4.10.20 APIs for the text field selections
            21. 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
            22. 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
            23. 4.10.23 Resetting a form
          4. 4.11 Interactive elements
            1. 4.11.1 The details element
            2. 4.11.2 The summary element
            3. 4.11.3 The command element
            4. 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
            5. 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
            6. 4.11.6 The dialog element
              1. 4.11.6.1 Anchor points
            7. 4.12 Links
              1. 4.12.1 Introduction
              2. 4.12.2 Links created by a and area elements
              3. 4.12.3 Following hyperlinks
              4. 4.12.4 Downloading resources
                1. 4.12.4.1 Hyperlink auditing
              5. 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
              6. 4.13 Common idioms without dedicated elements
                1. 4.13.1 The main part of the content
                2. 4.13.2 Bread crumb navigation
                3. 4.13.3 Tag clouds
                4. 4.13.4 Conversations
                5. 4.13.5 Footnotes
              7. 4.14 Matching HTML elements using selectors
                1. 4.14.1 Case-sensitivity
                2. 4.14.2 Pseudo-classes
              8. 5 Loading Web pages
                1. 5.1 Browsing contexts
                  1. 5.1.1 Nested browsing contexts
                    1. 5.1.1.1 Navigating nested browsing contexts in the DOM
                  2. 5.1.2 Auxiliary browsing contexts
                    1. 5.1.2.1 Navigating auxiliary browsing contexts in the DOM
                  3. 5.1.3 Secondary browsing contexts
                  4. 5.1.4 Security
                  5. 5.1.5 Groupings of browsing contexts
                  6. 5.1.6 Browsing context names
                2. 5.2 The Window object
                  1. 5.2.1 Security
                  2. 5.2.2 APIs for creating and navigating browsing contexts by name
                  3. 5.2.3 Accessing other browsing contexts
                  4. 5.2.4 Named access on the Window object
                  5. 5.2.5 Garbage collection and browsing contexts
                  6. 5.2.6 Closing browsing contexts
                  7. 5.2.7 Browser interface elements
                  8. 5.2.8 The WindowProxy object
                3. 5.3 Origin
                  1. 5.3.1 Relaxing the same-origin restriction
                4. 5.4 Sandboxing
                5. 5.5 Session history and navigation
                  1. 5.5.1 The session history of browsing contexts
                  2. 5.5.2 The History interface
                  3. 5.5.3 The Location interface
                    1. 5.5.3.1 Security
                  4. 5.5.4 Implementation notes for session history
                6. 5.6 Browsing the Web
                  1. 5.6.1 Navigating across documents
                  2. 5.6.2 Page load processing model for HTML files
                  3. 5.6.3 Page load processing model for XML files
                  4. 5.6.4 Page load processing model for text files
                  5. 5.6.5 Page load processing model for multipart/x-mixed-replace resources
                  6. 5.6.6 Page load processing model for media
                  7. 5.6.7 Page load processing model for content that uses plugins
                  8. 5.6.8 Page load processing model for inline content that doesn't have a DOM
                  9. 5.6.9 Navigating to a fragment identifier
                  10. 5.6.10 History traversal
                    1. 5.6.10.1 Event definitions
                  11. 5.6.11 Unloading documents
                    1. 5.6.11.1 Event definition
                  12. 5.6.12 Aborting a document load
                7. 5.7 Offline Web applications
                  1. 5.7.1 Introduction
                    1. 5.7.1.1 Supporting offline caching for legacy applications
                    2. 5.7.1.2 Event summary
                  2. 5.7.2 Application caches
                  3. 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
                  4. 5.7.4 Downloading or updating an application cache
                  5. 5.7.5 The application cache selection algorithm
                  6. 5.7.6 Changes to the networking model
                  7. 5.7.7 Expiring application caches
                  8. 5.7.8 Disk space
                  9. 5.7.9 Application cache API
                  10. 5.7.10 Browser state
                8. 6 Web application APIs
                  1. 6.1 Scripting
                    1. 6.1.1 Introduction
                    2. 6.1.2 Enabling and disabling scripting
                    3. 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. 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
                      7. 6.1.5 The javascript: URL scheme
                      8. 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
                      9. 6.2 Base64 utility methods
                      10. 6.3 Timers
                      11. 6.4 User prompts
                        1. 6.4.1 Simple dialogs
                        2. 6.4.2 Printing
                        3. 6.4.3 Dialogs implemented using separate documents
                      12. 6.5 System state and capabilities
                        1. 6.5.1 The Navigator object
                          1. 6.5.1.1 Client identification
                          2. 6.5.1.2 Custom scheme and content handlers
                          3. 6.5.1.3 Security and privacy
                          4. 6.5.1.4 Sample user interface
                          5. 6.5.1.5 Manually releasing the storage mutex
                        2. 6.5.2 The External interface
                      13. 7 User interaction
                        1. 7.1 The hidden attribute
                        2. 7.2 Inert subtrees
                        3. 7.3 Activation
                        4. 7.4 Focus
                          1. 7.4.1 Sequential focus navigation and the tabindex attribute
                          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 Assigning keyboard shortcuts
                          1. 7.5.1 Introduction
                          2. 7.5.2 The accesskey attribute
                          3. 7.5.3 Processing model
                        6. 7.6 Editing
                          1. 7.6.1 Making document regions editable: The contenteditable content attribute
                          2. 7.6.2 Making entire documents editable: The designMode IDL attribute
                          3. 7.6.3 Best practices for in-page editors
                          4. 7.6.4 Editing APIs
                          5. 7.6.5 Spelling and grammar checking
                        7. 7.7 Drag and drop
                          1. 7.7.1 Introduction
                          2. 7.7.2 The drag data store
                          3. 7.7.3 The DataTransfer interface
                            1. 7.7.3.1 The DataTransferItemList interface
                            2. 7.7.3.2 The DataTransferItem interface
                          4. 7.7.4 The DragEvent interface
                          5. 7.7.5 Drag-and-drop processing model
                          6. 7.7.6 Events summary
                          7. 7.7.7 The draggable attribute
                          8. 7.7.8 The dropzone attribute
                          9. 7.7.9 Security risks in the drag-and-drop model
                        8. 8 The HTML syntax
                          1. 8.1 Writing HTML documents
                            1. 8.1.1 The DOCTYPE
                            2. 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
                            3. 8.1.3 Text
                              1. 8.1.3.1 Newlines
                            4. 8.1.4 Character references
                            5. 8.1.5 CDATA sections
                            6. 8.1.6 Comments
                          2. 8.2 Parsing HTML documents
                            1. 8.2.1 Overview of the parsing model
                            2. 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
                            3. 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
                            4. 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
                            5. 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
                            6. 8.2.6 The end
                            7. 8.2.7 Coercing an HTML DOM into an infoset
                            8. 8.2.8 An introduction to error handling and strange cases in the parser
                              1. 8.2.8.1 Misnested tags: <b><i></b></i>
                              2. 8.2.8.2 Misnested tags: <b><p></b></p>
                              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
                            9. 8.3 Serializing HTML fragments
                            10. 8.4 Parsing HTML fragments
                            11. 8.5 Named character references
                          3. 9 The XHTML syntax
                            1. 9.1 Writing XHTML documents
                            2. 9.2 Parsing XHTML documents
                            3. 9.3 Serializing XHTML fragments
                            4. 9.4 Parsing XHTML fragments
                          4. 10 Rendering
                            1. 10.1 Introduction
                            2. 10.2 The CSS user agent style sheet and presentational hints
                            3. 10.3 Non-replaced elements
                              1. 10.3.1 Hidden elements
                              2. 10.3.2 The page
                              3. 10.3.3 Flow content
                              4. 10.3.4 Phrasing content
                              5. 10.3.5 Bidirectional text
                              6. 10.3.6 Quotes
                              7. 10.3.7 Sections and headings
                              8. 10.3.8 Lists
                              9. 10.3.9 Tables
                              10. 10.3.10 Form controls
                              11. 10.3.11 The hr element
                              12. 10.3.12 The fieldset element
                            4. 10.4 Replaced elements
                              1. 10.4.1 Embedded content
                              2. 10.4.2 Images
                              3. 10.4.3 Attributes for embedded content and images
                              4. 10.4.4 Image maps
                              5. 10.4.5 Toolbars
                            5. 10.5 Bindings
                              1. 10.5.1 Introduction
                              2. 10.5.2 The button element
                              3. 10.5.3 The details element
                              4. 10.5.4 The input element as a text entry widget
                              5. 10.5.5 The input element as domain-specific widgets
                              6. 10.5.6 The input element as a range control
                              7. 10.5.7 The input element as a color well
                              8. 10.5.8 The input element as a checkbox and radio button widgets
                              9. 10.5.9 The input element as a file upload control
                              10. 10.5.10 The input element as a button
                              11. 10.5.11 The marquee element
                              12. 10.5.12 The meter element
                              13. 10.5.13 The progress element
                              14. 10.5.14 The select element
                              15. 10.5.15 The textarea element
                              16. 10.5.16 The keygen element
                            6. 10.6 Frames and framesets
                            7. 10.7 Interactive media
                              1. 10.7.1 Links, forms, and navigation
                              2. 10.7.2 The title attribute
                              3. 10.7.3 Editing hosts
                              4. 10.7.4 Text rendered in native user interfaces
                            8. 10.8 Print media
                            9. 10.9 Unstyled XML documents
                          5. 11 Obsolete features
                            1. 11.1 Obsolete but conforming features
                              1. 11.1.1 Warnings for obsolete but conforming features
                            2. 11.2 Non-conforming features
                            3. 11.3 Requirements for implementations
                              1. 11.3.1 The applet element
                              2. 11.3.2 The marquee element
                              3. 11.3.3 Frames
                              4. 11.3.4 Other elements, attributes and APIs
                            4. 12 IANA considerations
                              1. 12.1 text/html
                              2. 12.2 multipart/x-mixed-replace
                              3. 12.3 application/xhtml+xml
                              4. 12.4 application/x-www-form-urlencoded
                              5. 12.5 text/cache-manifest
                              6. 12.6 Ping-To
                              7. 12.7 web+ scheme prefix
                            5. Index
                              1. Elements
                              2. Element content categories
                              3. Attributes
                              4. Element Interfaces
                              5. All Interfaces
                              6. Events
                            6. References
                            7. Acknowledgements

                            Follow Lee on X/Twitter - Father, Husband, Serial builder creating AI, crypto, games & web tools. We are friends :) AI Will Come To Life!

                            Check out: eBank.nz (Art Generator) | Netwrck.com (AI Tools) | Text-Generator.io (AI API) | BitBank.nz (Crypto AI) | ReadingTime (Kids Reading) | RewordGame | BigMultiplayerChess | WebFiddle | How.nz | Helix AI Assistant