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!