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