Edition for Web Developers — Last Updated 21 November 2024
This specification depends on Infra. [INFRA]
This specification refers to both HTML and XML attributes and IDL attributes, often in the same context. When it is not clear which is being referred to, they are referred to as content attributes for HTML and XML attributes, and IDL attributes for those defined on IDL interfaces. Similarly, the term "properties" is used for both JavaScript object properties and CSS properties. When these are ambiguous they are qualified as object properties and CSS properties respectively.
Generally, when the specification states that a feature applies to the HTML syntax or the XML syntax, it also includes the other. When a feature specifically only applies to one of the two languages, it is called out by explicitly stating that it does not apply to the other format, as in "for HTML, ... (this does not apply to XML)".
This specification uses the term document to refer to any use of HTML,
ranging from short static documents to long essays or reports with rich multimedia, as well as to
fully-fledged interactive applications. The term is used to refer both to Document
objects and their descendant DOM trees, and to serialized byte streams using the HTML syntax or the XML syntax, depending
on context.
In the context of the DOM structures, the terms HTML
document and XML document are used as defined in
DOM, and refer specifically to two different modes that Document
objects
can find themselves in. [DOM] (Such uses are always hyperlinked to their
definition.)
In the context of byte streams, the term HTML document refers to resources labeled as
text/html
, and the term XML document refers to resources labeled with an XML
MIME type.
For simplicity, terms such as shown, displayed, and visible might sometimes be used when referring to the way a document is rendered to the user. These terms are not meant to imply a visual medium; they must be considered to apply to other media in equivalent ways.
The specification uses the term supported when referring to whether a user agent has an implementation capable of decoding the semantics of an external resource. A format or type is said to be supported if the implementation can process an external resource of that format or type without critical aspects of the resource being ignored. Whether a specific resource is supported can depend on what features of the resource's format are in use.
For example, a PNG image would be considered to be in a supported format if its pixel data could be decoded and rendered, even if, unbeknownst to the implementation, the image also contained animation data.
An MPEG-4 video file would not be considered to be in a supported format if the compression format used was not supported, even if the implementation could determine the dimensions of the movie from the file's metadata.
What some specifications, in particular the HTTP specifications, refer to as a representation is referred to in this specification as a resource. [HTTP]
A resource's critical subresources are those that the resource needs to have available to be correctly processed. Which resources are considered critical or not is defined by the specification that defines the resource's format.
For CSS style sheets, we tentatively define here that
their critical subresources are other style sheets imported via @import
rules, including those indirectly imported by other imported style sheets.
This definition is not fully interoperable; furthermore, some user agents seem to count resources like background images or web fonts as critical subresources. Ideally, the CSS Working Group would define this; see w3c/csswg-drafts issue #1088 to track progress on that front.
To ease migration from HTML to XML, user agents conforming to this
specification will place elements in HTML in the http://www.w3.org/1999/xhtml
namespace, at least for the purposes of the DOM and
CSS. The term "HTML elements" refers to any element in that namespace, even in
XML documents.
Except where otherwise stated, all elements defined or mentioned in this specification are in
the HTML namespace ("http://www.w3.org/1999/xhtml
"), and all
attributes defined or mentioned in this specification have no namespace.
The term element type is used to refer to the set of elements that have a given
local name and namespace. For example, button
elements are elements with the element
type button
, meaning they have the local name "button
" and
(implicitly as defined above) the HTML namespace.
Attribute names are said to be XML-compatible if they match the Name
production defined in XML and they contain no U+003A COLON
characters (:). [XML]
When it is stated that some element or attribute is ignored, or treated as some other value, or handled as if it was something else, this refers only to the processing of the node after it is in the DOM.
A content attribute is said to change value only if its new value is different than its previous value; setting an attribute to a value it already has does not change it.
The term empty, when used for an attribute value, Text
node,
or string, means that the length of the text is zero (i.e., not even containing controls or U+0020 SPACE).
An HTML element can have specific HTML element insertion steps, HTML element post-connection steps, and HTML element removing steps, all defined for the element's local name.
The insertion steps for the HTML Standard, given insertedNode, are defined as the following:
If insertedNode is an element whose namespace is the HTML namespace, and this standard defines HTML element insertion steps for insertedNode's local name, then run the corresponding HTML element insertion steps given insertedNode.
If insertedNode is a form-associated element or the ancestor of a form-associated element, then:
If the form-associated element's parser inserted flag is set, then return.
Reset the form owner of the form-associated element.
If insertedNode is an Element
that is not on the
stack of open elements of an HTML parser, then
process internal resource links given insertedNode's
node document.
The post-connection steps for the HTML Standard, given insertedNode, are defined as the following:
If insertedNode is an element whose namespace is the HTML namespace, and this standard defines HTML element post-connection steps for insertedNode's local name, then run the corresponding HTML element post-connection steps given insertedNode.
The removing steps for the HTML Standard, given removedNode and oldParent, are defined as the following:
Let document be removedNode's node document.
If document's focused area is removedNode, then set document's focused area to document's viewport, and set document's relevant global object's navigation API's focus changed during ongoing navigation to false.
This does not perform the unfocusing steps,
focusing steps, or focus update steps, and thus no blur
or change
events are
fired.
If removedNode is an element whose namespace is the HTML namespace, and this standard defines HTML element removing steps for removedNode's local name, then run the corresponding HTML element removing steps given removedNode and oldParent.
If removedNode is a form-associated element or the ancestor of a form-associated element, then:
If the form-associated element has a form owner and the form-associated element and its form owner are no longer in the same tree, then reset the form owner of the form-associated element.
If removedNode's popover
attribute is not in
the no popover state, then run the hide
popover algorithm given removedNode, false, false, and false.
A node is inserted into a document when the insertion steps are invoked with it as the argument and it is now in a document tree. Analogously, a node is removed from a document when the removing steps are invoked with it as the argument and it is now no longer in a document tree.
A node becomes connected when the insertion steps are invoked with it as the argument and it is now connected. Analogously, a node becomes disconnected when the removing steps are invoked with it as the argument and it is now no longer connected.
A node is browsing-context connected when it is connected and its shadow-including root's browsing context is non-null. A node becomes browsing-context connected when the insertion steps are invoked with it as the argument and it is now browsing-context connected. A node becomes browsing-context disconnected either when the removing steps are invoked with it as the argument and it is now no longer browsing-context connected, or when its shadow-including root's browsing context becomes null.
The construction "a Foo
object", where Foo
is
actually an interface, is sometimes used instead of the more accurate "an object implementing the
interface Foo
".
An IDL attribute is said to be getting when its value is being retrieved (e.g. by author script), and is said to be setting when a new value is assigned to it.
If a DOM object is said to be live, then the attributes and methods on that object operate on the actual underlying data, not a snapshot of the data.
The term plugin refers to an implementation-defined set of content
handlers used by the user agent that can take part in the user agent's rendering of a
Document
object, but that neither act as child
navigables of the Document
nor introduce any Node
objects to the
Document
's DOM.
Typically such content handlers are provided by third parties, though a user agent can also designate built-in content handlers as plugins.
One example of a plugin would be a PDF viewer that is instantiated in a navigable when the user navigates to a PDF file. This would count as a plugin regardless of whether the party that implemented the PDF viewer component was the same as that which implemented the user agent itself. However, a PDF viewer application that launches separate from the user agent (as opposed to using the same interface) is not a plugin by this definition.
This specification does not define a mechanism for interacting with plugins, as it is expected to be user-agent- and platform-specific. Some UAs might opt to support a plugin mechanism such as the Netscape Plugin API; others might use remote content converters or have built-in support for certain types. Indeed, this specification doesn't require user agents to support plugins at all. [NPAPI]
A character encoding, or just encoding where that is not ambiguous, is a defined way to convert between byte streams and Unicode strings, as defined in Encoding. An encoding has an encoding name and one or more encoding labels, referred to as the encoding's name and labels in the Encoding standard. [ENCODING]
This specification relies on several other underlying specifications.
The following terms are defined in Infra: [INFRA]
The Unicode character set is used to represent textual data, and Encoding defines requirements around character encodings. [UNICODE]
This specification introduces terminology based on the terms defined in those specifications, as described earlier.
The following terms are used as defined in Encoding: [ENCODING]
Implementations that support the XML syntax for HTML must support some version of XML, as well as its corresponding namespaces specification, because that syntax uses an XML serialization with namespaces. [XML] [XMLNS]
Data mining tools and other user agents that perform operations on content without running scripts, evaluating CSS or XPath expressions, or otherwise exposing the resulting DOM to arbitrary content, may "support namespaces" by just asserting that their DOM node analogues are in certain namespaces, without actually exposing the namespace strings.
In the HTML syntax, namespace prefixes and namespace declarations do not have the same effect as in XML. For instance, the colon has no special meaning in HTML element names.
The attribute with the name space
in the XML namespace is defined by
Extensible Markup Language (XML). [XML]
The Name
production is defined in XML.
[XML]
This specification also references the <?xml-stylesheet?>
processing instruction, defined in Associating Style Sheets with XML documents.
[XMLSSPI]
This specification also non-normatively mentions the XSLTProcessor
interface and its transformToFragment()
and transformToDocument()
methods.
[XSLTP]
The following terms are defined in URL: [URL]
application/x-www-form-urlencoded
formatapplication/x-www-form-urlencoded
serializerA number of schemes and protocols are referenced by this specification also:
about:
scheme
[ABOUT]blob:
scheme
[FILEAPI]data:
scheme
[RFC2397]http:
scheme
[HTTP]https:
scheme
[HTTP]mailto:
scheme [MAILTO]sms:
scheme
[SMS]urn:
scheme
[URN]Media fragment syntax is defined in Media Fragments URI. [MEDIAFRAG]
The following terms are defined in the HTTP specifications: [HTTP]
Accept
` headerAccept-Language
` headerCache-Control
` headerContent-Disposition
` headerContent-Language
` headerContent-Range
` headerLast-Modified
` headerRange
` headerReferer
` headerThe following terms are defined in HTTP State Management Mechanism: [COOKIES]
The following term is defined in Web Linking: [WEBLINK]
Link
` headerLink
` field valueThe following terms are defined in Structured Field Values for HTTP: [STRUCTURED-FIELDS]
The following terms are defined in MIME Sniffing: [MIMESNIFF]
The following terms are defined in Fetch: [FETCH]
about:blank
User-Agent
` valueOrigin
` headerCross-Origin-Resource-Policy
` headerRequestCredentials
enumerationRequestDestination
enumerationfetch()
methodThe following terms are defined in Referrer Policy: [REFERRERPOLICY]
Referrer-Policy
` HTTP headerReferrer-Policy
` header algorithmno-referrer
",
"no-referrer-when-downgrade
",
"origin-when-cross-origin
", and
"unsafe-url
" referrer policiesThe following terms are defined in Mixed Content: [MIX]
The following terms are defined in Subresource Integrity: [SRI]
The following terms are defined in Paint Timing: [PAINTTIMING]
The following terms are defined in Navigation Timing: [NAVIGATIONTIMING]
NavigationTimingType
and its
"navigate
",
"reload
", and
"back_forward
" values.The following terms are defined in Resource Timing: [RESOURCETIMING]
The following terms are defined in Performance Timeline: [PERFORMANCETIMELINE]
PerformanceEntry
and its
name
,
entryType
,
startTime
, and
duration
attributes.The following terms are defined in Long Animation Frames: [LONGANIMATIONFRAMES]
The following terms are defined in Long Tasks: [LONGTASKS]
The IDL fragments in this specification must be interpreted as required for conforming IDL fragments, as described in Web IDL. [WEBIDL]
The following terms are defined in Web IDL:
[Global]
[LegacyFactoryFunction]
[LegacyLenientThis]
[LegacyNullToEmptyString]
[LegacyOverrideBuiltIns]
[LegacyTreatNonObjectAsNull]
[LegacyUnenumerableNamedProperties]
[LegacyUnforgeable]
Web IDL also defines the following types that are used in Web IDL fragments in this specification:
ArrayBuffer
ArrayBufferView
boolean
DOMString
double
Function
long
object
Promise
Uint8ClampedArray
unrestricted double
unsigned long
USVString
VoidFunction
The term throw in this
specification is used as defined in Web IDL. The DOMException
type and the following exception names are defined by Web IDL and used by this
specification:
IndexSizeError
"HierarchyRequestError
"InvalidCharacterError
"NoModificationAllowedError
"NotFoundError
"NotSupportedError
"InvalidStateError
"SyntaxError
"InvalidAccessError
"SecurityError
"NetworkError
"AbortError
"QuotaExceededError
"DataCloneError
"EncodingError
"NotAllowedError
"When this specification requires a user agent to create a Date
object
representing a particular time (which could be the special value Not-a-Number), the milliseconds
component of that time, if any, must be truncated to an integer, and the time value of the newly
created Date
object must represent the resulting truncated time.
For instance, given the time 23045 millionths of a second after 01:00 UTC on
January 1st 2000, i.e. the time 2000-01-01T00:00:00.023045Z, then the Date
object
created representing that time would represent the same time as that created representing the
time 2000-01-01T00:00:00.023Z, 45 millionths earlier. If the given time is NaN, then the result
is a Date
object that represents a time value NaN (indicating that the object does
not represent a specific instant of time).
Some parts of the language described by this specification only support JavaScript as the underlying scripting language. [JAVASCRIPT]
The term "JavaScript" is used to refer to ECMA-262, rather than the official term ECMAScript, since the term JavaScript is more widely known.
The following terms are defined in the JavaScript specification and used in this specification:
Atomics
objectAtomics.waitAsync
objectDate
classFinalizationRegistry
classRegExp
classSharedArrayBuffer
classSyntaxError
classTypeError
classRangeError
classWeakRef
classeval()
functionWeakRef.prototype.deref()
functionimport()
import.meta
typeof
operatordelete
operatorUsers agents that support JavaScript must also implement the Dynamic Code Brand Checks proposal. The following terms are defined there, and used in this specification: [JSDYNAMICCODEBRANDCHECKS]
Users agents that support JavaScript must also implement ECMAScript Internationalization API. [JSINTL]
User agents that support JavaScript must also implement the Import Attributes proposal. The following terms are defined there, and used in this specification: [JSIMPORTATTRIBUTES]
User agents that support JavaScript must also implement the JSON modules proposal. The following terms are defined there, and used in this specification: [JSJSONMODULES]
User agents that support JavaScript must also implement the Resizable ArrayBuffer and growable SharedArrayBuffer proposal. The following terms are defined there, and used in this specification: [JSRESIZABLEBUFFERS]
User agents that support JavaScript must also implement the Temporal proposal. The following terms are defined there, and used in this specification: [JSTEMPORAL]
The following term is defined in WebAssembly JavaScript Interface: [WASMJS]
The Document Object Model (DOM) is a representation — a model — of a document and its content. The DOM is not just an API; the conformance criteria of HTML implementations are defined, in this specification, in terms of operations on the DOM. [DOM]
Implementations must support DOM and the events defined in UI Events, because this specification is defined in terms of the DOM, and some of the features are defined as extensions to the DOM interfaces. [DOM] [UIEVENTS]
In particular, the following features are defined in DOM: [DOM]
Attr
interfaceCharacterData
interfaceComment
interfaceDOMImplementation
interfaceDocument
interface and its
doctype
attribute
DocumentOrShadowRoot
interfaceDocumentFragment
interfaceDocumentType
interfaceChildNode
interfaceElement
interfaceattachShadow()
method.Node
interfaceNodeList
interfaceProcessingInstruction
interfaceShadowRoot
interfaceText
interfaceRange
interfaceHTMLCollection
interface, its
length
attribute, and its
item()
and
namedItem()
methodsDOMTokenList
interface, and its
value
attribute and
supports
operationcreateDocument()
methodcreateHTMLDocument()
methodcreateElement()
methodcreateElementNS()
methodgetElementById()
methodgetElementsByClassName()
methodappend()
methodappendChild()
methodcloneNode()
methodimportNode()
methodpreventDefault()
methodid
attributesetAttribute()
methodtextContent
attributeslotchange
eventCharacterData
node and its
replace data algorithmEvent
interfaceEvent
and derived interfaces constructor behaviorEventTarget
interfaceEventInit
dictionary typetype
attributecurrentTarget
attributebubbles
attributecancelable
attributecomposed
attributeisTrusted
attributeinitEvent()
methodaddEventListener()
methodEventListener
callback interfaceDocument
Node
, and the concept of
cloning steps used by that algorithmis
valueMutationObserver
interface and mutation observers in generalAbortController
and its
signalAbortSignal
The following features are defined in UI Events: [UIEVENTS]
MouseEvent
interfaceMouseEvent
interface's relatedTarget
attributeMouseEventInit
dictionary typeFocusEvent
interfaceFocusEvent
interface's relatedTarget
attributeUIEvent
interfaceUIEvent
interface's view
attributeauxclick
eventbeforeinput
eventclick
eventcontextmenu
eventdblclick
eventinput
eventmousedown
eventmouseenter
eventmouseleave
eventmousemove
eventmouseout
eventmouseover
eventmouseup
eventwheel
eventkeydown
eventkeypress
eventkeyup
eventThe following features are defined in Touch Events: [TOUCH]
Touch
interfacetouchend
eventThe following features are defined in Pointer Events: [POINTEREVENTS]
PointerEvent
interfacePointerEvent
interface's pointerType
attributepointerdown
eventpointerup
eventpointercancel
eventThe following events are defined in Clipboard API and events: [CLIPBOARD-APIS]
This specification sometimes uses the term name to refer to the event's
type; as in, "an event named click
" or "if the event name is keypress
". The terms
"name" and "type" for events are synonymous.
The following features are defined in DOM Parsing and Serialization: [DOMPARSING]
The following features are defined in Selection API: [SELECTION]
User agents are encouraged to implement the features described in execCommand. [EXECCOMMAND]
The following features are defined in Fullscreen API: [FULLSCREEN]
requestFullscreen()
fullscreenchange
High Resolution Time provides the following features: [HRT]
This specification uses the following features defined in File API: [FILEAPI]
Blob
interface and its
type
attributeFile
interface and its
name
and
lastModified
attributesFileList
interfaceBlob
's snapshot stateThe following terms are defined in Indexed Database API: [INDEXEDDB]
The following terms are defined in Media Source Extensions: [MEDIASOURCE]
The following terms are defined in Media Capture and Streams: [MEDIASTREAM]
The following terms are defined in Reporting: [REPORTING]
The following features and terms are defined in XMLHttpRequest: [XHR]
XMLHttpRequest
interface, and its
responseXML
attributeProgressEvent
interface, and its
lengthComputable
,
loaded
, and
total
attributesFormData
interface, and its associated
entry listThe following features are defined in Battery Status API: [BATTERY]
getBattery()
methodImplementations must support Media Queries. The <media-condition> feature is defined therein. [MQ]
While support for CSS as a whole is not required of implementations of this specification (though it is encouraged, at least for web browsers), some features are defined in terms of specific CSS requirements.
When this specification requires that something be parsed according to a particular CSS grammar, the relevant algorithm in CSS Syntax must be followed, including error handling rules. [CSSSYNTAX]
For example, user agents are required to close all open constructs upon
finding the end of a style sheet unexpectedly. Thus, when parsing the string "rgb(0,0,0
" (with a missing close-parenthesis) for a color value, the close
parenthesis is implied by this error handling rule, and a value is obtained (the color 'black').
However, the similar construct "rgb(0,0,
" (with both a missing
parenthesis and a missing "blue" value) cannot be parsed, as closing the open construct does not
result in a viable value.
The following terms and features are defined in Cascading Style Sheets (CSS): [CSS]
The basic version of the 'display' property is defined in CSS, and the property is extended by other CSS modules. [CSS] [CSSRUBY] [CSSTABLE]
The following terms and features are defined in CSS Box Model: [CSSBOX]
The following features are defined in CSS Logical Properties: [CSSLOGICAL]
The following terms and features are defined in CSS Color: [CSSCOLOR]
The following terms are defined in CSS Images: [CSSIMAGES]
The term paint source is used as defined in CSS Images Level 4 to define the interaction of certain HTML elements with the CSS 'element()' function. [CSSIMAGES4]
The following features are defined in CSS Backgrounds and Borders: [CSSBG]
CSS Backgrounds and Borders also defines the following border properties: [CSSBG]
Top | Bottom | Left | Right | |
---|---|---|---|---|
Width | 'border-top-width' | 'border-bottom-width' | 'border-left-width' | 'border-right-width' |
Style | 'border-top-style' | 'border-bottom-style' | 'border-left-style' | 'border-right-style' |
Color | 'border-top-color' | 'border-bottom-color' | 'border-left-color' | 'border-right-color' |
The following features are defined in CSS Box Alignment: [CSSALIGN]
The following terms and features are defined in CSS Display: [CSSDISPLAY]
The following features are defined in CSS Flexible Box Layout: [CSSFLEXBOX]
The following terms and features are defined in CSS Fonts: [CSSFONTS]
The following features are defined in CSS Grid Layout: [CSSGRID]
The following terms are defined in CSS Inline Layout: [CSSINLINE]
The following terms and features are defined in CSS Box Sizing: [CSSSIZING]
The following features are defined in CSS Lists and Counters. [CSSLISTS]
The following features are defined in CSS Overflow. [CSSOVERFLOW]
The following terms and features are defined in CSS Positioned Layout: [CSSPOSITION]
The following features are defined in CSS Multi-column Layout. [CSSMULTICOL]
The 'ruby-base' value of the 'display' property is defined in CSS Ruby Layout. [CSSRUBY]
The following features are defined in CSS Table: [CSSTABLE]
The following features are defined in CSS Text: [CSSTEXT]
The following features are defined in CSS Writing Modes: [CSSWM]
The following features are defined in CSS Basic User Interface: [CSSUI]
The algorithm to update animations and send events is defined in Web Animations. [WEBANIMATIONS]
Implementations that support scripting must support the CSS Object Model. The following features and terms are defined in the CSSOM specifications: [CSSOM] [CSSOMVIEW]
Screen
interfaceLinkStyle
interfaceCSSStyleDeclaration
interfacestyle
IDL attributecssText
attribute of CSSStyleDeclaration
StyleSheet
interfaceCSSStyleSheet
interfaceCSSStyleSheet
CSSStyleSheet
resize
eventscroll
eventscrollend
eventThe following features and terms are defined in CSS Syntax: [CSSSYNTAX]
The following terms are defined in Selectors: [SELECTORS]
The following features are defined in CSS Values and Units: [CSSVALUES]
The following features are defined in CSS View Transitions: [CSSVIEWTRANSITIONS]
ViewTransition
The term style attribute is defined in CSS Style Attributes. [CSSATTR]
The following terms are defined in the CSS Cascading and Inheritance: [CSSCASCADE]
The CanvasRenderingContext2D
object's use of fonts depends on the features
described in the CSS Fonts and Font Loading specifications, including
in particular FontFace
objects and the font source concept.
[CSSFONTS] [CSSFONTLOAD]
The following interfaces and terms are defined in Geometry Interfaces: [GEOMETRY]
DOMMatrix
interface, and associated
m11 element,
m12 element,
m21 element,
m22 element,
m41 element, and
m42 elementDOMMatrix2DInit
and
DOMMatrixInit
dictionariesDOMMatrix
from a dictionary
and create a DOMMatrix
from a 2D dictionary
algorithms for DOMMatrix2DInit
or DOMMatrixInit
DOMPointInit
dictionary, and associated
x and
y membersThe following terms are defined in the CSS Scoping: [CSSSCOPING]
The following terms and features are defined in CSS Color Adjustment: [CSSCOLORADJUST]
The following terms are defined in CSS Pseudo-Elements: [CSSPSEUDO]
The following terms are defined in CSS Containment: [CSSCONTAIN]
The following terms are defined in CSS Anchor Positioning: [CSSANCHOR]
The following term is defined in Intersection Observer: [INTERSECTIONOBSERVER]
The following terms are defined in Resize Observer: [RESIZEOBSERVER]
The following interfaces are defined in the WebGL specifications: [WEBGL]
WebGLRenderingContext
interfaceWebGL2RenderingContext
interfaceWebGLContextAttributes
dictionaryThe following interfaces are defined in WebGPU: [WEBGPU]
GPUCanvasContext
interfaceImplementations may support WebVTT as a text track format for subtitles, captions, metadata, etc., for media resources. [WEBVTT]
The following terms, used in this specification, are defined in WebVTT:
The role
attribute is defined in
Accessible Rich Internet Applications (ARIA), as are the following
roles: [ARIA]
In addition, the following aria-*
content
attributes are defined in ARIA: [ARIA]
Finally, the following terms are defined ARIA: [ARIA]
ARIAMixin
interface, with its associated
ARIAMixin
getter steps and
ARIAMixin
setter steps hooksThe following terms are defined in Content Security Policy: [CSP]
report-uri
directiveframe-ancestors
directivesandbox
directiveSecurityPolicyViolationEvent
interfacesecuritypolicyviolation
eventThe following terms are defined in Service Workers: [SW]
The following algorithms are defined in Secure Contexts: [SECURE-CONTEXTS]
The following terms are defined in Permissions Policy: [PERMISSIONSPOLICY]
The following feature is defined in Payment Request API: [PAYMENTREQUEST]
PaymentRequest
interfaceWhile support for MathML as a whole is not required by this specification (though it is encouraged, at least for web browsers), certain features depend upon small parts of MathML being implemented. [MATHML]
The following features are defined in Mathematical Markup Language (MathML):
annotation-xml
elementmath
elementmerror
elementmi
elementmn
elementmo
elementms
elementmtext
elementWhile support for SVG as a whole is not required by this specification (though it is encouraged, at least for web browsers), certain features depend upon parts of SVG being implemented.
User agents that implement SVG must implement the SVG 2 specification, and not any earlier revisions.
The following features are defined in the SVG 2 specification: [SVG]
SVGElement
interfaceSVGImageElement
interfaceSVGScriptElement
interfaceSVGSVGElement
interfacea
elementdesc
elementforeignObject
elementimage
elementscript
elementsvg
elementtitle
elementuse
elementtext-rendering
propertyThe following features are defined in Filter Effects: [FILTERS]
The following features are defined in Compositing and Blending: [COMPOSITE]
The following features are defined in Cooperative Scheduling of Background Tasks: [REQUESTIDLECALLBACK]
The following terms are defined in Screen Orientation: [SCREENORIENTATION]
The following terms are defined in Storage: [STORAGE]
The following features are defined in Web App Manifest: [MANIFEST]
The following terms are defined in WebAssembly JavaScript Interface: ESM Integration: [WASMESM]
The following features are defined in WebCodecs: [WEBCODECS]
The following terms are defined in WebDriver: [WEBDRIVER]
The following terms are defined in WebDriver BiDi: [WEBDRIVERBIDI]
The following terms are defined in Web Cryptography API: [WEBCRYPTO]
The following terms are defined in WebSockets: [WEBSOCKETS]
The following terms are defined in WebTransport: [WEBTRANSPORT]
The following terms are defined in Web Authentication: An API for accessing Public Key Credentials: [WEBAUTHN]
The following terms are defined in Credential Management: [CREDMAN]
The following terms are defined in Console: [CONSOLE]
The following terms are defined in Web Locks API: [WEBLOCKS]
This specification uses the following features defined in Trusted Types: [TRUSTED-TYPES]
The following terms are defined in WebRTC API: [WEBRTC]
The following terms are defined in Picture-in-Picture API: [PICTUREINPICTURE]
The following terms are defined in Idle Detection API:
The following terms are defined in Web Speech API:
The following terms are defined in WebOTP API:
The following terms are defined in Web Share API:
The following terms are defined in Web Smart Card API:
The following terms are defined in Web Background Synchronization:
The following terms are defined in Web Periodic Background Synchronization:
The following terms are defined in Background Fetch:
The following terms are defined in Keyboard Lock:
The following terms are defined in Web MIDI API:
The following terms are defined in Generic Sensor API:
The following terms are defined in WebHID API:
The following terms are defined in WebXR Device API:
This specification does not require support of any particular network protocol, style sheet language, scripting language, or any of the DOM specifications beyond those required in the list above. However, the language described by this specification is biased towards CSS as the styling language, JavaScript as the scripting language, and HTTP as the network protocol, and several features assume that those languages and protocols are in use.
A user agent that implements the HTTP protocol must implement HTTP State Management Mechanism (Cookies) as well. [HTTP] [COOKIES]
This specification might have certain additional requirements on character encodings, image formats, audio formats, and video formats in the respective sections.
Vendor-specific proprietary user agent extensions to this specification are strongly discouraged. Documents must not use such extensions, as doing so reduces interoperability and fragments the user base, allowing only users of specific user agents to access the content in question.
When vendor-neutral extensions to this specification are needed, either this specification can be updated accordingly, or an extension specification can be written that overrides the requirements in this specification. When someone applying this specification to their activities decides that they will recognize the requirements of such an extension specification, it becomes an applicable specification for the purposes of conformance requirements in this specification.
Someone could write a specification that defines any arbitrary byte stream as conforming, and then claim that their random junk is conforming. However, that does not mean that their random junk actually is conforming for everyone's purposes: if someone else decides that that specification does not apply to their work, then they can quite legitimately say that the aforementioned random junk is just that, junk, and not conforming at all. As far as conformance goes, what matters in a particular community is what that community agrees is applicable.
Headers/Permissions-Policy/document-domain
Support in one engine only.
This document defines the following policy-controlled features:
Headers/Feature-Policy/autoplay
Headers/Permissions-Policy/autoplay
Support in one engine only.
autoplay
", which has a default allowlist of 'self'
.cross-origin-isolated
", which has a default allowlist of 'self'
.