Table of contents

  1. 1 Introduction
    1. 1.1 Is this HTML5?
    2. 1.2 Background
    3. 1.3 Audience
    4. 1.4 Scope
    5. 1.5 History
    6. 1.6 Design notes
      1. 1.6.1 Compliance with other specifications
      2. 1.6.2 Extensibility
    7. 1.7 HTML vs XML syntax
    8. 1.8 Structure of this specification
      1. 1.8.1 Typographic conventions
    9. 1.9 Privacy concerns
      1. 1.9.1 Cross-site communication
    10. 1.10 A quick introduction to HTML
      1. 1.10.1 Writing secure applications with HTML
      2. 1.10.2 Common pitfalls to avoid when using the scripting APIs
      3. 1.10.3 How to catch mistakes when writing HTML: validators and conformance checkers
    11. 1.11 Conformance requirements for authors
      1. 1.11.1 Presentational markup
      2. 1.11.2 Syntax errors
      3. 1.11.3 Restrictions on content models and on attribute values
    12. 1.12 Suggested reading
  2. 2 Common infrastructure
    1. 2.1 Terminology
      1. 2.1.1 Resources
      2. 2.1.2 XML compatibility
      3. 2.1.3 DOM trees
      4. 2.1.4 Scripting
      5. 2.1.5 Plugins
      6. 2.1.6 Character encodings
      7. 2.1.7 Dependencies
      8. 2.1.8 Extensibility
    2. 2.2 Case-sensitivity and string comparison
    3. 2.3 Common microsyntaxes
      1. 2.3.1 Boolean attributes
      2. 2.3.2 Keywords and enumerated attributes
      3. 2.3.3 Numbers
        1. 2.3.3.1 Signed integers
        2. 2.3.3.2 Non-negative integers
        3. 2.3.3.3 Floating-point numbers
        4. 2.3.3.4 Lists of floating-point numbers
      4. 2.3.4 Dates and times
        1. 2.3.4.1 Months
        2. 2.3.4.2 Dates
        3. 2.3.4.3 Yearless dates
        4. 2.3.4.4 Times
        5. 2.3.4.5 Local dates and times
        6. 2.3.4.6 Time zones
        7. 2.3.4.7 Global dates and times
        8. 2.3.4.8 Weeks
        9. 2.3.4.9 Durations
        10. 2.3.4.10 Vaguer moments in time
      5. 2.3.5 Colors
      6. 2.3.6 Space-separated tokens
      7. 2.3.7 Comma-separated tokens
      8. 2.3.8 References
      9. 2.3.9 Media queries
    4. 2.4 URLs
      1. 2.4.1 Terminology
      2. 2.4.2 CORS settings attributes
      3. 2.4.3 Referrer policy attributes
      4. 2.4.4 Nonce attributes
    5. 2.5 Common DOM interfaces
      1. 2.5.1 Reflecting content attributes in IDL attributes
      2. 2.5.2 Collections
        1. 2.5.2.1 The HTMLAllCollection interface
        2. 2.5.2.2 The HTMLFormControlsCollection interface
        3. 2.5.2.3 The HTMLOptionsCollection interface
      3. 2.5.3 The DOMStringList interface
  3. 3 Semantics, structure, and APIs of HTML documents
    1. 3.1 Documents
      1. 3.1.1 The Document object
      2. 3.1.2 Resource metadata management
      3. 3.1.3 DOM tree accessors
    2. 3.2 Elements
      1. 3.2.1 Semantics
      2. 3.2.2 Elements in the DOM
      3. 3.2.3 Element definitions
        1. 3.2.3.1 Attributes
      4. 3.2.4 Content models
        1. 3.2.4.1 The "nothing" content model
        2. 3.2.4.2 Kinds of content
          1. 3.2.4.2.1 Metadata content
          2. 3.2.4.2.2 Flow content
          3. 3.2.4.2.3 Sectioning content
          4. 3.2.4.2.4 Heading content
          5. 3.2.4.2.5 Phrasing content
          6. 3.2.4.2.6 Embedded content
          7. 3.2.4.2.7 Interactive content
          8. 3.2.4.2.8 Palpable content
          9. 3.2.4.2.9 Script-supporting elements
        3. 3.2.4.3 Transparent content models
        4. 3.2.4.4 Paragraphs
      5. 3.2.5 Global attributes
        1. 3.2.5.1 The title attribute
        2. 3.2.5.2 The lang and xml:lang attributes
        3. 3.2.5.3 The translate attribute
        4. 3.2.5.4 The dir attribute
        5. 3.2.5.5 The style attribute
        6. 3.2.5.6 Embedding custom non-visible data with the data-* attributes
      6. 3.2.6 The innerText IDL attribute
      7. 3.2.7 Requirements relating to the bidirectional algorithm
  4. 4 The elements of HTML
    1. 4.1 The document 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
        1. 4.2.4.1 Providing users with a means to follow hyperlinks created using 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
    3. 4.3 Sections
      1. 4.3.1 The body element
      2. 4.3.2 The article element
      3. 4.3.3 The section element
      4. 4.3.4 The nav element
      5. 4.3.5 The aside element
      6. 4.3.6 The h1, h2, h3, h4, h5, and h6 elements
      7. 4.3.7 The hgroup element
      8. 4.3.8 The header element
      9. 4.3.9 The footer element
      10. 4.3.10 The address element
      11. 4.3.11 Headings and sections
        1. 4.3.11.1 Creating an outline
        2. 4.3.11.2 Sample outlines
        3. 4.3.11.3 Exposing outlines to users
      12. 4.3.12 Usage summary
        1. 4.3.12.1 Article or section?
    4. 4.4 Grouping content
      1. 4.4.1 The p element
      2. 4.4.2 The hr element
      3. 4.4.3 The pre element
      4. 4.4.4 The blockquote element
      5. 4.4.5 The ol element
      6. 4.4.6 The ul element
      7. 4.4.7 The menu element
      8. 4.4.8 The li element
      9. 4.4.9 The dl element
      10. 4.4.10 The dt element
      11. 4.4.11 The dd element
      12. 4.4.12 The figure element
      13. 4.4.13 The figcaption element
      14. 4.4.14 The main element
      15. 4.4.15 The div element
    5. 4.5 Text-level semantics
      1. 4.5.1 The a element
      2. 4.5.2 The em element
      3. 4.5.3 The strong element
      4. 4.5.4 The small element
      5. 4.5.5 The s element
      6. 4.5.6 The cite element
      7. 4.5.7 The q element
      8. 4.5.8 The dfn element
      9. 4.5.9 The abbr element
      10. 4.5.10 The ruby element
      11. 4.5.11 The rt element
      12. 4.5.12 The rp element
      13. 4.5.13 The data element
      14. 4.5.14 The time element
      15. 4.5.15 The code element
      16. 4.5.16 The var element
      17. 4.5.17 The samp element
      18. 4.5.18 The kbd element
      19. 4.5.19 The sub and sup elements
      20. 4.5.20 The i element
      21. 4.5.21 The b element
      22. 4.5.22 The u element
      23. 4.5.23 The mark element
      24. 4.5.24 The bdi element
      25. 4.5.25 The bdo element
      26. 4.5.26 The span element
      27. 4.5.27 The br element
      28. 4.5.28 The wbr element
      29. 4.5.29 Usage summary
    6. 4.6 Links
      1. 4.6.1 Introduction
      2. 4.6.2 Links created by a and area elements
      3. 4.6.3 API for a and area elements
      4. 4.6.4 Downloading resources
      5. 4.6.5 Link types
        1. 4.6.5.1 Link type "alternate"
        2. 4.6.5.2 Link type "author"
        3. 4.6.5.3 Link type "bookmark"
        4. 4.6.5.4 Link type "canonical"
        5. 4.6.5.5 Link type "dns-prefetch"
        6. 4.6.5.6 Link type "external"
        7. 4.6.5.7 Link type "help"
        8. 4.6.5.8 Link type "icon"
        9. 4.6.5.9 Link type "license"
        10. 4.6.5.10 Link type "nofollow"
        11. 4.6.5.11 Link type "noopener"
        12. 4.6.5.12 Link type "noreferrer"
        13. 4.6.5.13 Link type "pingback"
        14. 4.6.5.14 Link type "preconnect"
        15. 4.6.5.15 Link type "prefetch"
        16. 4.6.5.16 Link type "preload"
        17. 4.6.5.17 Link type "prerender"
        18. 4.6.5.18 Link type "search"
        19. 4.6.5.19 Link type "stylesheet"
        20. 4.6.5.20 Link type "tag"
        21. 4.6.5.21 Sequential link types
          1. 4.6.5.21.1 Link type "next"
          2. 4.6.5.21.2 Link type "prev"
        22. 4.6.5.22 Other link types
    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 picture element
      2. 4.8.2 The source element
      3. 4.8.3 The img element
      4. 4.8.4 Images
        1. 4.8.4.1 Introduction
          1. 4.8.4.1.1 Adaptive images
        2. 4.8.4.2 Attributes common to source and img elements
          1. 4.8.4.2.1 Srcset attributes
          2. 4.8.4.2.2 Sizes attributes
        3. 4.8.4.3 Requirements for providing text to act as an alternative for images
          1. 4.8.4.3.1 General guidelines
          2. 4.8.4.3.2 A link or button containing nothing but the image
          3. 4.8.4.3.3 A phrase or paragraph with an alternative graphical representation: charts, diagrams, graphs, maps, illustrations
          4. 4.8.4.3.4 A short phrase or label with an alternative graphical representation: icons, logos
          5. 4.8.4.3.5 Text that has been rendered to a graphic for typographical effect
          6. 4.8.4.3.6 A graphical representation of some of the surrounding text
          7. 4.8.4.3.7 Ancillary images
          8. 4.8.4.3.8 A purely decorative image that doesn't add any information
          9. 4.8.4.3.9 A group of images that form a single larger picture with no links
          10. 4.8.4.3.10 A group of images that form a single larger picture with links
          11. 4.8.4.3.11 A key part of the content
          12. 4.8.4.3.12 An image not intended for the user
          13. 4.8.4.3.13 An image in an e-mail or private document intended for a specific person who is known to be able to view images
      5. 4.8.5 The iframe element
      6. 4.8.6 The embed element
      7. 4.8.7 The object element
      8. 4.8.8 The param element
      9. 4.8.9 The video element
      10. 4.8.10 The audio element
      11. 4.8.11 The track element
      12. 4.8.12 Media elements
        1. 4.8.12.1 Error codes
        2. 4.8.12.2 Location of the media resource
        3. 4.8.12.3 MIME types
        4. 4.8.12.4 Network states
        5. 4.8.12.5 Loading the media resource
        6. 4.8.12.6 Offsets into the media resource
        7. 4.8.12.7 Ready states
        8. 4.8.12.8 Playing the media resource
        9. 4.8.12.9 Seeking
        10. 4.8.12.10 Media resources with multiple media tracks
          1. 4.8.12.10.1 AudioTrackList and VideoTrackList objects
          2. 4.8.12.10.2 Selecting specific audio and video tracks declaratively
        11. 4.8.12.11 Timed text tracks
          1. 4.8.12.11.1 Text track model
          2. 4.8.12.11.2 Sourcing in-band text tracks
          3. 4.8.12.11.3 Text track API
          4. 4.8.12.11.4 Best practices for metadata text tracks
        12. 4.8.12.12 Identifying a track kind through a URL
        13. 4.8.12.13 User interface
        14. 4.8.12.14 Time ranges
        15. 4.8.12.15 The TrackEvent interface
        16. 4.8.12.16 Event summary
        17. 4.8.12.17 Best practices for authors using media elements
      13. 4.8.13 The map element
      14. 4.8.14 The area element
      15. 4.8.15 Image maps
      16. 4.8.16 MathML
      17. 4.8.17 SVG
      18. 4.8.18 Dimension attributes
    9. 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 design
      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 Examples
    10. 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 Enabling client-side automatic filling of form controls
        6. 4.10.1.6 Improving the user experience on mobile devices
        7. 4.10.1.7 The difference between the field type, the autofill field name, and the input modality
        8. 4.10.1.8 Date, time, and number formats
      2. 4.10.2 Categories
      3. 4.10.3 The form element
      4. 4.10.4 The label element
      5. 4.10.5 The input element
        1. 4.10.5.1 States of the type attribute
          1. 4.10.5.1.1 Hidden state (type=hidden)
          2. 4.10.5.1.2 Text (type=text) state and Search state (type=search)
          3. 4.10.5.1.3 Telephone state (type=tel)
          4. 4.10.5.1.4 URL state (type=url)
          5. 4.10.5.1.5 E-mail state (type=email)
          6. 4.10.5.1.6 Password state (type=password)
          7. 4.10.5.1.7 Date state (type=date)
          8. 4.10.5.1.8 Month state (type=month)
          9. 4.10.5.1.9 Week state (type=week)
          10. 4.10.5.1.10 Time state (type=time)
          11. 4.10.5.1.11 Local Date and Time state (type=datetime-local)
          12. 4.10.5.1.12 Number state (type=number)
          13. 4.10.5.1.13 Range state (type=range)
          14. 4.10.5.1.14 Color state (type=color)
          15. 4.10.5.1.15 Checkbox state (type=checkbox)
          16. 4.10.5.1.16 Radio Button state (type=radio)
          17. 4.10.5.1.17 File Upload state (type=file)
          18. 4.10.5.1.18 Submit Button state (type=submit)
          19. 4.10.5.1.19 Image Button state (type=image)
          20. 4.10.5.1.20 Reset Button state (type=reset)
          21. 4.10.5.1.21 Button state (type=button)
        2. 4.10.5.2 Common input element attributes
          1. 4.10.5.2.1 The maxlength and minlength attributes
          2. 4.10.5.2.2 The size attribute
          3. 4.10.5.2.3 The readonly attribute
          4. 4.10.5.2.4 The required attribute
          5. 4.10.5.2.5 The multiple attribute
          6. 4.10.5.2.6 The pattern attribute
          7. 4.10.5.2.7 The min and max attributes
          8. 4.10.5.2.8 The step attribute
          9. 4.10.5.2.9 The list attribute
          10. 4.10.5.2.10 The placeholder attribute
        3. 4.10.5.3 Common input element APIs
      6. 4.10.6 The button element
      7. 4.10.7 The select element
      8. 4.10.8 The datalist element
      9. 4.10.9 The optgroup element
      10. 4.10.10 The option element
      11. 4.10.11 The textarea element
      12. 4.10.12 The output element
      13. 4.10.13 The progress element
      14. 4.10.14 The meter element
      15. 4.10.15 The fieldset element
      16. 4.10.16 The legend element
      17. 4.10.17 Form control infrastructure
        1. 4.10.17.1 A form control's value
        2. 4.10.17.2 Mutability
        3. 4.10.17.3 Association of controls and forms
      18. 4.10.18 Attributes common to form controls
        1. 4.10.18.1 Naming form controls: the name attribute
        2. 4.10.18.2 Submitting element directionality: the dirname attribute
        3. 4.10.18.3 Limiting user input length: the maxlength attribute
        4. 4.10.18.4 Setting minimum input length requirements: the minlength attribute
        5. 4.10.18.5 Enabling and disabling form controls: the disabled attribute
        6. 4.10.18.6 Form submission
          1. 4.10.18.6.1 Autofocusing a form control: the autofocus attribute
        7. 4.10.18.7 Input modalities: the inputmode attribute
        8. 4.10.18.8 Autofill
          1. 4.10.18.8.1 Autofilling form controls: the autocomplete attribute
      19. 4.10.19 APIs for the text control selections
      20. 4.10.20 Constraints
        1. 4.10.20.1 Definitions
        2. 4.10.20.2 The constraint validation API
        3. 4.10.20.3 Security
      21. 4.10.21 Form submission
        1. 4.10.21.1 URL-encoded form data
        2. 4.10.21.2 Multipart form data
        3. 4.10.21.3 Plain text form data
    11. 4.11 Interactive elements
      1. 4.11.1 The details element
      2. 4.11.2 The summary element
      3. 4.11.3 Commands
        1. 4.11.3.1 Facets
      4. 4.11.4 The dialog element
    12. 4.12 Scripting
      1. 4.12.1 The script element
        1. 4.12.1.1 Scripting languages
        2. 4.12.1.2 Restrictions for contents of script elements
        3. 4.12.1.3 Inline documentation for external scripts
      2. 4.12.2 The noscript element
      3. 4.12.3 The template element
      4. 4.12.4 The slot element
      5. 4.12.5 The canvas element
        1. 4.12.5.1 The 2D rendering context
          1. 4.12.5.1.1 Implementation notes
          2. 4.12.5.1.2 The canvas state
          3. 4.12.5.1.3 Line styles
          4. 4.12.5.1.4 Text styles
          5. 4.12.5.1.5 Building paths
          6. 4.12.5.1.6 Path2D objects
          7. 4.12.5.1.7 Transformations
          8. 4.12.5.1.8 Image sources for 2D rendering contexts
          9. 4.12.5.1.9 Fill and stroke styles
          10. 4.12.5.1.10 Drawing rectangles to the bitmap
          11. 4.12.5.1.11 Drawing text to the bitmap
          12. 4.12.5.1.12 Drawing paths to the canvas
          13. 4.12.5.1.13 Drawing focus rings and scrolling paths into view
          14. 4.12.5.1.14 Drawing images
          15. 4.12.5.1.15 Pixel manipulation
          16. 4.12.5.1.16 Compositing
          17. 4.12.5.1.17 Image smoothing
          18. 4.12.5.1.18 Shadows
          19. 4.12.5.1.19 Filters
          20. 4.12.5.1.20 Working with externally-defined SVG filters
          21. 4.12.5.1.21 Best practices
          22. 4.12.5.1.22 Examples
        2. 4.12.5.2 The ImageBitmap rendering context
          1. 4.12.5.2.1 Introduction
          2. 4.12.5.2.2 The ImageBitmapRenderingContext interface
        3. 4.12.5.3 The OffscreenCanvas interface
          1. 4.12.5.3.1 The offscreen 2D rendering context
        4. 4.12.5.4 Serializing bitmaps to a file
    13. 4.13 Custom elements
      1. 4.13.1 Introduction
        1. 4.13.1.1 Creating an autonomous custom element
        2. 4.13.1.2 Creating a customized built-in element
        3. 4.13.1.3 Drawbacks of autonomous custom elements
        4. 4.13.1.4 Upgrading elements after their creation
      2. 4.13.2 Requirements for custom element constructors
      3. 4.13.3 Core concepts
      4. 4.13.4 The CustomElementRegistry interface
      5. 4.13.5 Upgrades
      6. 4.13.6 Custom element reactions
    14. 4.14 Common idioms without dedicated elements
      1. 4.14.1 The main part of the content
      2. 4.14.2 Bread crumb navigation
      3. 4.14.3 Tag clouds
      4. 4.14.4 Conversations
      5. 4.14.5 Footnotes
    15. 4.15 Disabled elements
  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 Global identifiers for items
      5. 5.1.5 Selecting names when defining vocabularies
    2. 5.2 Encoding microdata
      1. 5.2.1 The microdata model
      2. 5.2.2 Items
      3. 5.2.3 Names: the itemprop attribute
      4. 5.2.4 Values
      5. 5.2.5 Microdata and other namespaces
    3. 5.3 Sample microdata vocabularies
      1. 5.3.1 vCard
        1. 5.3.1.1 Conversion to vCard
        2. 5.3.1.2 Examples
      2. 5.3.2 vEvent
        1. 5.3.2.1 Conversion to iCalendar
        2. 5.3.2.2 Examples
      3. 5.3.3 Licensing works
        1. 5.3.3.1 Examples
  6. 6 User interaction
    1. 6.1 The hidden attribute
    2. 6.2 Inert subtrees
    3. 6.3 Activation
    4. 6.4 Focus
      1. 6.4.1 Introduction
      2. 6.4.2 Data model
      3. 6.4.3 The tabindex attribute
      4. 6.4.4 Focus management APIs
    5. 6.5 Assigning keyboard shortcuts
      1. 6.5.1 Introduction
      2. 6.5.2 The accesskey attribute
    6. 6.6 Editing
      1. 6.6.1 Making document regions editable: The contenteditable content attribute
      2. 6.6.2 Making entire documents editable: the designMode IDL attribute
      3. 6.6.3 Best practices for in-page editors
      4. 6.6.4 Spelling and grammar checking
    7. 6.7 Drag and drop
      1. 6.7.1 Introduction
      2. 6.7.2 The drag data store
      3. 6.7.3 The DataTransfer interface
        1. 6.7.3.1 The DataTransferItemList interface
        2. 6.7.3.2 The DataTransferItem interface
      4. 6.7.4 The DragEvent interface
      5. 6.7.5 Events summary
      6. 6.7.6 The draggable attribute
  7. 7 Loading Web pages
    1. 7.1 Browsing contexts
      1. 7.1.1 Nested browsing contexts
        1. 7.1.1.1 Navigating nested browsing contexts in the DOM
      2. 7.1.2 Auxiliary browsing contexts
        1. 7.1.2.1 Navigating auxiliary browsing contexts in the DOM
      3. 7.1.3 Browsing context names
    2. 7.2 The Window object
      1. 7.2.1 APIs for creating and navigating browsing contexts by name
      2. 7.2.2 Accessing other browsing contexts
      3. 7.2.3 Named access on the Window object
      4. 7.2.4 Closing browsing contexts
      5. 7.2.5 Browser interface elements
    3. 7.3 Origin
      1. 7.3.1 Relaxing the same-origin restriction
    4. 7.4 Sandboxing
    5. 7.5 Session history and navigation
      1. 7.5.1 The session history of browsing contexts
      2. 7.5.2 The History interface
      3. 7.5.3 The Location interface
    6. 7.6 Browsing the Web
      1. 7.6.1 History traversal
        1. 7.6.1.1 Persisted user state restoration
        2. 7.6.1.2 The PopStateEvent interface
        3. 7.6.1.3 The HashChangeEvent interface
        4. 7.6.1.4 The PageTransitionEvent interface
      2. 7.6.2 Unloading documents
        1. 7.6.2.1 The BeforeUnloadEvent interface
    7. 7.7 Offline Web applications
      1. 7.7.1 Introduction
        1. 7.7.1.1 Supporting offline caching for legacy applications
        2. 7.7.1.2 Event summary
      2. 7.7.2 The cache manifest syntax
        1. 7.7.2.1 Some sample manifests
        2. 7.7.2.2 Writing cache manifests
      3. 7.7.3 Security concerns with offline applications caches
      4. 7.7.4 Application cache API
      5. 7.7.5 Browser state
  8. 8 Web application APIs
    1. 8.1 Scripting
      1. 8.1.1 Introduction
        1. 8.1.1.1 Runtime script errors
        2. 8.1.1.2 Unhandled promise rejections
          1. 8.1.1.2.1 HostPromiseRejectionTracker(promise, operation)
          2. 8.1.1.2.2 The PromiseRejectionEvent interface
        3. 8.1.1.3 HostEnsureCanCompileStrings(callerRealm, calleeRealm)
      2. 8.1.2 Events
        1. 8.1.2.1 Event handlers
        2. 8.1.2.2 Event handlers on elements, Document objects, and Window objects
    2. 8.2 The WindowOrWorkerGlobalScope mixin
    3. 8.3 Base64 utility methods
    4. 8.4 Dynamic markup insertion
      1. 8.4.1 Opening the input stream
      2. 8.4.2 Closing the input stream
      3. 8.4.3 document.write()
      4. 8.4.4 document.writeln()
    5. 8.5 Timers
    6. 8.6 User prompts
      1. 8.6.1 Simple dialogs
      2. 8.6.2 Printing
    7. 8.7 System state and capabilities
      1. 8.7.1 The Navigator object
        1. 8.7.1.1 Client identification
        2. 8.7.1.2 Language preferences
        3. 8.7.1.3 Custom scheme handlers: the registerProtocolHandler() method
        4. 8.7.1.4 Cookies
        5. 8.7.1.5 Plugins
    8. 8.8 Images
    9. 8.9 Animation frames
  9. 9 Communication
    1. 9.1 The MessageEvent interface
    2. 9.2 Server-sent events
      1. 9.2.1 Introduction
      2. 9.2.2 The EventSource interface
      3. 9.2.3 Processing model
      4. 9.2.4 Parsing an event stream
      5. 9.2.5 Interpreting an event stream
      6. 9.2.6 Authoring notes
      7. 9.2.7 Connectionless push and other features
      8. 9.2.8 Garbage collection
      9. 9.2.9 Implementation advice
    3. 9.3 Web sockets
      1. 9.3.1 Introduction
      2. 9.3.2 The WebSocket interface
      3. 9.3.3 Ping and Pong frames
      4. 9.3.4 The CloseEvent interface
    4. 9.4 Cross-document messaging
      1. 9.4.1 Introduction
      2. 9.4.2 Security
      3. 9.4.3 Posting messages
    5. 9.5 Channel messaging
      1. 9.5.1 Introduction
        1. 9.5.1.1 Examples
        2. 9.5.1.2 Ports as the basis of an object-capability model on the Web
        3. 9.5.1.3 Ports as the basis of abstracting out service implementations
      2. 9.5.2 Message channels
      3. 9.5.3 Message ports
      4. 9.5.4 Broadcasting to many ports
      5. 9.5.5 Ports and garbage collection
    6. 9.6 Broadcasting to other browsing contexts
  10. 10 Web workers
    1. 10.1 Introduction
      1. 10.1.1 Scope
      2. 10.1.2 Examples
        1. 10.1.2.1 A background number-crunching worker
        2. 10.1.2.2 Using a JavaScript module as a worker
        3. 10.1.2.3 Shared workers introduction
        4. 10.1.2.4 Shared state using a shared worker
        5. 10.1.2.5 Delegation
        6. 10.1.2.6 Providing libraries
      3. 10.1.3 Tutorials
        1. 10.1.3.1 Creating a dedicated worker
        2. 10.1.3.2 Communicating with a dedicated worker
        3. 10.1.3.3 Shared workers
    2. 10.2 Infrastructure
      1. 10.2.1 The global scope
        1. 10.2.1.1 The WorkerGlobalScope common interface
        2. 10.2.1.2 Dedicated workers and the DedicatedWorkerGlobalScope interface
        3. 10.2.1.3 Shared workers and the SharedWorkerGlobalScope interface
      2. 10.2.2 The event loop
      3. 10.2.3 Runtime script errors
      4. 10.2.4 Creating workers
        1. 10.2.4.1 Properties present on both Worker and SharedWorker
        2. 10.2.4.2 Dedicated workers and the Worker interface
        3. 10.2.4.3 Shared workers and the SharedWorker interface
      5. 10.2.5 Concurrent hardware capabilities
    3. 10.3 APIs available to workers
      1. 10.3.1 The WorkerNavigator interface
      2. 10.3.2 The WorkerLocation interface
  11. 11 Web storage
    1. 11.1 Introduction
    2. 11.2 The API
      1. 11.2.1 The Storage interface
      2. 11.2.2 The sessionStorage attribute
      3. 11.2.3 The localStorage attribute
      4. 11.2.4 The storage event
        1. 11.2.4.1 The StorageEvent interface
    3. 11.3 Disk space
    4. 11.4 Privacy
      1. 11.4.1 User tracking
      2. 11.4.2 Sensitivity of data
    5. 11.5 Security
      1. 11.5.1 DNS spoofing attacks
      2. 11.5.2 Cross-directory attacks
      3. 11.5.3 Implementation risks
  12. 12 The HTML syntax
    1. 12.1 Writing HTML documents
      1. 12.1.1 The DOCTYPE
      2. 12.1.2 Elements
        1. 12.1.2.1 Start tags
        2. 12.1.2.2 End tags
        3. 12.1.2.3 Attributes
        4. 12.1.2.4 Optional tags
        5. 12.1.2.5 Restrictions on content models
        6. 12.1.2.6 Restrictions on the contents of raw text and escapable raw text elements
      3. 12.1.3 Text
        1. 12.1.3.1 Newlines
      4. 12.1.4 Character references
      5. 12.1.5 CDATA sections
      6. 12.1.6 Comments
    2. 12.2 Named character references
  13. 13 The XML syntax
  14. 14 Obsolete features
    1. 14.1 Obsolete but conforming features
    2. 14.2 Non-conforming features
  15. 15 IANA considerations
    1. 15.1 text/html
    2. 15.2 multipart/x-mixed-replace
    3. 15.3 application/xhtml+xml
    4. 15.4 text/cache-manifest
    5. 15.5 text/ping
    6. 15.6 application/microdata+json
    7. 15.7 text/event-stream
    8. 15.8 `Ping-From`
    9. 15.9 `Ping-To`
    10. 15.10 `Refresh`
    11. 15.11 `Last-Event-ID`
    12. 15.12 web+ scheme prefix
  16. Index
    1. Elements
    2. Element content categories
    3. Attributes
    4. Element Interfaces
    5. All Interfaces
    6. Events
    7. MIME Types
  17. References
  18. Acknowledgments

About this specification

This specification is like no other — it has been processed with you, the humble web developer, in mind.

The focus of this specification is readability and ease of access. Unlike the full HTML Standard, this "developer's edition" removes information that only browser vendors need know. It is automatically produced from the full specification by our build tooling, and thus always in sync with the latest developments in HTML.

To read about its conception, construction, and future, read the original press release, and the blog post about its relaunch.

Finally, feel free to contribute on GitHub to make this edition better for everyone!