From f30324f48ec00ab55b01ea28e27c88015f63b999 Mon Sep 17 00:00:00 2001 From: Piotr Tomiak Date: Thu, 9 Oct 2025 15:47:12 +0200 Subject: [PATCH] [mdn] WEB-75207 MDN: update documentation GitOrigin-RevId: ec90798a3d00006d8fd336bc645ab1e98f4fe9da --- .../documentation/mdn/Css-obsolete.json | 35 +- .../com/intellij/documentation/mdn/Css.json | 1849 +++++++++---- .../intellij/documentation/mdn/DomEvents.json | 215 +- .../documentation/mdn/GlobalObjects.json | 1189 ++++++-- .../documentation/mdn/Html-obsolete.json | 12 + .../com/intellij/documentation/mdn/Html.json | 341 ++- .../intellij/documentation/mdn/MathML.json | 281 +- .../documentation/mdn/Svg-obsolete.json | 23 + .../com/intellij/documentation/mdn/Svg.json | 120 +- .../intellij/documentation/mdn/WebApi-a.json | 1004 ++++--- .../intellij/documentation/mdn/WebApi-e.json | 2441 ++++++++++------- .../documentation/mdn/WebApi-index.json | 25 +- .../intellij/documentation/mdn/WebApi-l.json | 1065 ++++--- .../intellij/documentation/mdn/WebApi-r.json | 2181 ++++++++++++--- .../intellij/documentation/mdn/WebApi-u.json | 1030 ++++--- .../messages/MdnBundle.properties | 8 +- 16 files changed, 8081 insertions(+), 3738 deletions(-) diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Css-obsolete.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Css-obsolete.json index d1d3659a330d..5fa5c926af56 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Css-obsolete.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Css-obsolete.json @@ -9,6 +9,18 @@ }, "lang": "en-us", "atRules": { + "media": { + "doc": "", + "properties": { + "aural": { + "url": "$MDN_URL$/web/css/@media/aural", + "status": [ + "Obsolete" + ], + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The aural CSS media type is used for devices that have speech output capabilities." + } + } + }, "viewport": { "url": "$MDN_URL$/web/CSS/@viewport", "status": [ @@ -58,6 +70,19 @@ } }, "properties": { + "-moz-image-region": { + "url": "$MDN_URL$/web/css/-moz-image-region", + "status": [ + "Obsolete" + ], + "compatibility": {}, + "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance.\n

The syntax is similar to the clip property. All four values are relative to the upper left corner of the image.", + "formalSyntax": "<shape> | auto", + "values": { + "auto": "Automatically defines the region of the image to use.", + "<shape>": "A shape defining the part of the image to use. The rect() function defines a rectangle to use as shape. Its parameters define the top, right, bottom, and left offsets of the edges of the image, in this order." + } + }, "-webkit-line-clamp": { "url": "$MDN_URL$/web/css/-webkit-line-clamp", "status": [ @@ -341,7 +366,15 @@ "doc": "The basic goal of the Cascading Stylesheet (CSS) language is to allow a browser engine to paint elements of the page with specific features, like colors, positioning, or decorations. The CSS syntax reflects this goal and its basic building blocks are:\n

" } }, - "pseudoClasses": {}, + "pseudoClasses": { + "target-within": { + "url": "$MDN_URL$/web/css/_colon_target-within", + "status": [ + "Obsolete" + ], + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The :target-within CSS pseudo-class represents an element that is a target element or contains an element that is a target. A target element is a unique element with an id matching the URL's fragment. In other words, it represents an element that is itself matched by the :target pseudo-class or has a descendant that is matched by :target. (This includes descendants in shadow trees.)\n

\n```css\n/* Selects a 
 when one of its descendants is a target */\ndiv:target-within {\n  background: cyan;\n}\n```\n
" + } + }, "pseudoElements": { "-moz-page": { "url": "$MDN_URL$/web/css/_doublecolon_-moz-page", diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Css.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Css.json index f407fe829467..2658e5587c14 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Css.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Css.json @@ -30,7 +30,7 @@ "highDate": "2018-01-29" }, "doc": "The @charset CSS rule specifies the character encoding used in the style sheet. This syntax is useful when using non-ASCII characters in some CSS properties, like content. Although the first character in @charset is the @ symbol, it is not an at-rule. It is a specific byte sequence that can only be placed at the very beginning of a stylesheet. No other characters, except the Unicode byte-order mark, are allowed before it. It also does not follow normal CSS syntax rules such as use of quotes or whitespace.\n

If a @charset is not recognized as the charset declaration, it is parsed as a normal at-rule. The CSS syntax module deprecates this fallback behavior, defining it as an unrecognized legacy rule to be dropped when a stylesheet is grammar-checked.\n

As there are several ways to define the character encoding of a style sheet, the browser will try the following methods in the following order (and stop as soon as one yields a result):\n

    \n
  1. The value of the Unicode byte-order character placed at the beginning of the file.
  2. \n
  3. The value given by the charset attribute of the Content-Type: HTTP header or the equivalent in the protocol used to serve the style sheet.
  4. \n
  5. The @charset CSS declaration.
  6. \n
  7. Use the character encoding defined by the referring document: the charset attribute of the <link> element. This method is obsolete and should not be used.
  8. \n
  9. Assume that the document is UTF-8.
  10. \n
", - "formalSyntax": "@charset \"<charset>\";" + "formalSyntax": "Note that the @charset rule is not parsed via syntax, but via a specific byte sequence of the following form:" }, "color-profile": { "url": "$MDN_URL$/web/css/@color-profile", @@ -57,11 +57,12 @@ "SafariIOS": "16" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The @container CSS at-rule is a conditional group rule that applies styles to a containment context.\nStyle declarations are filtered by a condition and applied to the container if the condition is true.\nThe condition is evaluated when the queried container size, <style-feature>, or scroll-state changes.\n

The container-name property specifies a list of query container names. These names can be used by @container rules to filter which query containers are targeted. The optional, case-sensitive <container-name> filters the query containers that are targeted by the query.\n

Once an eligible query container has been selected for an element, each container feature in the <container-condition> is evaluated against that query container.", - "formalSyntax": "@container <container-condition># { <block-contents> }\n  <container-condition> = [ <container-name>? <container-query>? ]!\n  <container-name> = <custom-ident>\n  <container-query> = not <query-in-parens> | <query-in-parens> [ [ and <query-in-parens> ]* | [ or <query-in-parens> ]* ]\n  <query-in-parens> = ( <container-query> ) | ( <size-feature> ) | style( <style-query> ) | scroll-state( <scroll-state-query> ) | <general-enclosed>\n  <style-query> = not <style-in-parens> | <style-in-parens> [ [ and <style-in-parens> ]* | [ or <style-in-parens> ]* ] | <style-feature>\n  <scroll-state-query> = not <scroll-state-in-parens> | <scroll-state-in-parens> [ [ and <scroll-state-in-parens> ]* | [ or <scroll-state-in-parens> ]* ] | <scroll-state-feature>\n  <general-enclosed> = [ <function-token> <any-value>? ) ] | [ ( <any-value>? ) ]\n  <style-in-parens> = ( <style-query> ) | ( <style-feature> ) | <general-enclosed>\n  <scroll-state-in-parens> = ( <scroll-state-query> ) | ( <scroll-state-feature> ) | <general-enclosed>" + "formalSyntax": "@container <container-condition># { <block-contents> }\n  <container-condition> = [ <container-name>? <container-query>? ]!\n  <container-name> = <custom-ident>\n  <container-query> = not <query-in-parens> | <query-in-parens> [ [ and <query-in-parens> ]* | [ or <query-in-parens> ]* ]\n  <query-in-parens> = ( <container-query> ) | ( <size-feature> ) | style( <style-query> ) | scroll-state( <scroll-state-query> ) | <general-enclosed>\n  <style-query> = not <style-in-parens> | <style-in-parens> [ [ and <style-in-parens> ]* | [ or <style-in-parens> ]* ] | <style-feature>\n  <scroll-state-query> = not <scroll-state-in-parens> | <scroll-state-in-parens> [ [ and <scroll-state-in-parens> ]* | [ or <scroll-state-in-parens> ]* ] | <scroll-state-feature>\n  <general-enclosed> = [ <function-token> <any-value>? ) ] | [ ( <any-value>? ) ]\n  <style-in-parens> = ( <style-query> ) | ( <style-feature> ) | <general-enclosed>\n  <style-feature> = <style-feature-plain> | <style-feature-boolean> | <style-range>\n  <scroll-state-in-parens> = ( <scroll-state-query> ) | ( <scroll-state-feature> ) | <general-enclosed>\n  <style-feature-plain> = <style-feature-name> : <style-feature-value>\n  <style-feature-boolean> = <style-feature-name>\n  <style-range> = <style-range-value> <mf-comparison> <style-range-value> | <style-range-value> <mf-lt> <style-range-value> <mf-lt> <style-range-value> | <style-range-value> <mf-gt> <style-range-value> <mf-gt> <style-range-value>\n  <style-range-value> = <custom-property-name> | <style-feature-value>\n  <mf-comparison> = <mf-lt> | <mf-gt> | <mf-eq>\n  <mf-lt> = '<' '='?\n  <mf-gt> = '>' '='?\n  <mf-eq> = '='" }, "counter-style": { "url": "$MDN_URL$/web/css/@counter-style", @@ -82,7 +83,7 @@ "level": "LOW", "lowDate": "2023-09-18" }, - "doc": "The @counter-style CSS at-rule lets you extend predefined list styles and define your own counter styles that are not part of the predefined set of styles. The @counter-style rule contains descriptors defining how the counter value is converted into a string representation.\n

\n```css\n@counter-style thumbs {\n  system: cyclic;\n  symbols: \"\\1F44D\";\n  suffix: \" \";\n}\nul {\n  list-style: thumbs;\n}\n```\n
\n

While CSS provides many useful predefined counter styles, the @counter-style at-rule offers an open-ended method for creating counters. This at-rule caters to the needs of worldwide typography by allowing authors to define their own counter styles when the predefined styles don't fit their requirements.", + "doc": "The @counter-style CSS at-rule lets you extend predefined list styles and define your own counter styles that are not part of the predefined set of styles. The @counter-style rule contains descriptors defining how the counter value is converted into a string representation.\n

While CSS provides many useful predefined counter styles, the @counter-style at-rule offers an open-ended method for creating counters. This at-rule caters to the needs of worldwide typography by allowing authors to define their own counter styles when the predefined styles don't fit their requirements.", "properties": { "additive-symbols": { "url": "$MDN_URL$/web/css/@counter-style/additive-symbols", @@ -344,7 +345,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The @document CSS at-rule restricts the style rules contained within it based on the URL of the document. It is designed primarily for user-defined style sheets (see userchrome.org for more information), though it can be used on author-defined style sheets, too.\n

\n```css\n@document url(\"https://www.example.com/\")\n{\n  h1 {\n    color: green;\n  }\n}\n```\n
", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The @document CSS at-rule restricts the style rules contained within it based on the URL of the document. It is designed primarily for user-defined style sheets (see userchrome.org for more information), though it can be used on author-defined style sheets, too.", "formalSyntax": "@document [ <url> | url-prefix(<string>) | domain(<string>) | media-document(<string>) | regexp(<string>)]# {<group-rule-body>}" }, "font-face": { @@ -385,7 +386,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ascent-override CSS descriptor for the @font-face at-rule defines the ascent metric for the font. The ascent metric is the height above the baseline that CSS uses to lay out line boxes in an inline formatting context.", + "doc": "The ascent-override CSS descriptor for the @font-face at-rule defines the ascent metric for the font. The ascent metric is the height above the baseline that CSS uses to lay out line boxes in an inline formatting context.", "formalSyntax": "normal | <percentage [0,∞]>", "values": { "normal": "The default value. When used the metric value is obtained from the font file.", @@ -408,7 +409,7 @@ "baseline": { "level": "NONE" }, - "doc": "The descent-override CSS descriptor for the @font-face at-rule defines the descent metric for the font. The descent metric is the height below the baseline that CSS uses to lay out line boxes in an inline formatting context.", + "doc": "The descent-override CSS descriptor for the @font-face at-rule defines the descent metric for the font. The descent metric is the height below the baseline that CSS uses to lay out line boxes in an inline formatting context.", "formalSyntax": "normal | <percentage [0,∞]>", "values": { "normal": "The default value. When used the metric value is obtained from the font file.", @@ -465,7 +466,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The font-family CSS descriptor sets the font family for a font specified in an @font-face at-rule.\n

The value is used for name matching against a particular @font-face when styling elements using the font-family property.\nAny name may be used, and this overrides any name specified in the underlying font data.", + "doc": "The font-family CSS descriptor sets the font family for a font specified in an @font-face at-rule.\n

The value is used for name matching against a particular @font-face when styling elements using the font-family property.\nAny name may be used, and this overrides any name specified in the underlying font data.", "formalSyntax": "<family-name>\n  <family-name> = <string> | <custom-ident>+", "values": { "<family-name>": "Specifies the name of the font family." @@ -477,15 +478,20 @@ "StandardTrack" ], "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", "Firefox": "34", "FirefoxAndroid": "34", + "Opera": "124", "Safari": "10", "SafariIOS": "10" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-05" }, - "doc": "The font-feature-settings CSS descriptor allows you to define the initial settings to use for the font defined by the @font-face at-rule. You can further use this descriptor to control typographic font features such as ligatures, small caps, and swashes, for the font defined by @font-face. The values for this descriptor are the same as the font-feature-settings property, except for the global keyword values.\n

Since this descriptor sets feature values on the font object in the @font-face at-rule and not on an entire element, only some glyphs in an element may be rendered using this descriptor.", + "doc": "The font-feature-settings CSS descriptor allows you to define the initial settings to use for the font defined by the @font-face at-rule. You can further use this descriptor to control typographic font features such as ligatures, small caps, and swashes, for the font defined by @font-face. The values for this descriptor are the same as the font-feature-settings property, except for the global keyword values.\n

Since this descriptor sets feature values on the font object in the @font-face at-rule and not on an entire element, only some glyphs in an element may be rendered using this descriptor.", "formalSyntax": "normal | <feature-tag-value>#\n  <feature-tag-value> = <opentype-tag> [ <integer [0,∞]> | on | off ]?\n  <opentype-tag> = <string>", "values": { "normal": "Indicates that text is laid out using default font settings. This is the default value.", @@ -508,7 +514,7 @@ "Safari": "10.1", "SafariIOS": "10.3" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The font-stretch CSS descriptor allows authors to specify a normal, condensed, or expanded face for the fonts specified in the @font-face at-rule.\n

For a particular font family, authors can download various font faces which correspond to the different styles of the same font family, and then use the font-stretch descriptor to explicitly specify the font face's stretch. The values for the CSS descriptor is same as that of its corresponding font property.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The font-stretch CSS descriptor allows authors to specify a normal, condensed, or expanded face for the fonts specified in the @font-face at-rule.\n

For a particular font family, authors can download various font faces which correspond to the different styles of the same font family, and then use the font-stretch descriptor to explicitly specify the font face's stretch. The values for the CSS descriptor is same as that of its corresponding font property.", "formalSyntax": "auto | <'font-width'>{1,2}\n  <font-width> = normal | <percentage [0,∞]> | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded", "values": { "normal": "Specifies a normal font face.", @@ -537,7 +543,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The font-style CSS descriptor allows authors to specify font styles for the fonts specified in the @font-face at-rule.\n

For a particular font family, authors can download various font faces that correspond to the different styles of the same font family and then use the font-style descriptor to explicitly specify the font face's style. The values for this CSS descriptor are the same as that of the corresponding font-style property.", + "doc": "The font-style CSS descriptor allows authors to specify font styles for the fonts specified in the @font-face at-rule.\n

For a particular font family, authors can download various font faces that correspond to the different styles of the same font family and then use the font-style descriptor to explicitly specify the font face's style. The values for this CSS descriptor are the same as that of the corresponding font-style property.", "formalSyntax": "auto | normal | italic | left | right | oblique [ <angle [-90deg,90deg]>{1,2} ]?", "values": { "normal": "Selects the normal version of the font-family.", @@ -553,13 +559,17 @@ "StandardTrack" ], "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", "Firefox": "62", - "FirefoxAndroid": "62" + "FirefoxAndroid": "62", + "Opera": "124" }, "baseline": { "level": "NONE" }, - "doc": "The font-variation-settings CSS descriptor allows authors to specify low-level OpenType or TrueType font variations in the @font-face at-rule. The values for this descriptor are the same as the font-variation-settings property, except for the global keyword values.\n

Since this descriptor sets variation values on the font object in the @font-face at-rule and not on an entire element, only some glyphs in an element may be rendered using this descriptor.", + "doc": "The font-variation-settings CSS descriptor allows authors to specify low-level OpenType or TrueType font variations in the @font-face at-rule. The values for this descriptor are the same as the font-variation-settings property, except for the global keyword values.\n

Since this descriptor sets variation values on the font object in the @font-face at-rule and not on an entire element, only some glyphs in an element may be rendered using this descriptor.", "formalSyntax": "normal | [ <string> <number> ]#", "values": { "normal": "Text is laid out using default settings.", @@ -586,7 +596,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The font-weight CSS @font-face descriptor enables authors to specify a single font weight, or a range of font weights, for the font specified in a @font-face at-rule. This is then used by the browser to select the appropriate font when a CSS rule sets a desired font weight.\n

Typically, a developer will want to use fonts from a single font family in a range of different weights. With traditional, or static fonts, a single font file contains characters from a font family in a specific weight and style: for example, \"Helvetica bold italic\". To enable displaying light, regular, bold, or extra-bold fonts when the font-weight property calls a specific weight, you can define multiple @font-face at-rules for the same family (all with the same font-family descriptor value), one for each weight or range of weights.\n

To declare the font to be used for a range of font weights, declare a space-separated pair of font-weight values as the value for the font-weight descriptor. When CSS rules set a font weight by setting the font-weight property or the font shorthand property, the appropriate font will then be used.\n

For example, if the descriptor is font-weight: 400 600;, when the property is font-weight: 450 or font-weight: 550, that font will be use for that font-family.\nWhether the font is a static or a variable font, the font matching the range will be used. In this case, if the font is a static font, 450 and 550 will appear the same. If the font is a variable font, the latter will be bolder.\n

The descriptor is the same for all fonts, but the range you'll set for a variable font will generally be greater, possibly even 1 1000 to use the same font for all font weight property values.", + "doc": "The font-weight CSS @font-face descriptor enables authors to specify a single font weight, or a range of font weights, for the font specified in a @font-face at-rule. This is then used by the browser to select the appropriate font when a CSS rule sets a desired font weight.\n

Typically, a developer will want to use fonts from a single font family in a range of different weights. With traditional, or static fonts, a single font file contains characters from a font family in a specific weight and style: for example, \"Helvetica bold italic\". To enable displaying light, regular, bold, or extra-bold fonts when the font-weight property calls a specific weight, you can define multiple @font-face at-rules for the same family (all with the same font-family descriptor value), one for each weight or range of weights.\n

To declare the font to be used for a range of font weights, declare a space-separated pair of font-weight values as the value for the font-weight descriptor. When CSS rules set a font weight by setting the font-weight property or the font shorthand property, the appropriate font will then be used.\n

For example, if the descriptor is font-weight: 400 600;, when the property is font-weight: 450 or font-weight: 550, that font will be use for that font-family.\nWhether the font is a static or a variable font, the font matching the range will be used. In this case, if the font is a static font, 450 and 550 will appear the same. If the font is a variable font, the latter will be bolder.\n

The descriptor is the same for all fonts, but the range you'll set for a variable font will generally be greater, possibly even 1 1000 to use the same font for all font weight property values.", "formalSyntax": "auto | <font-weight-absolute>{1,2}\n  <font-weight-absolute> = normal | bold | <number [1,1000]>", "values": { "normal": "Normal font weight. Same as 400.", @@ -610,7 +620,7 @@ "baseline": { "level": "NONE" }, - "doc": "The line-gap-override CSS descriptor for the @font-face at-rule defines the line-gap metric for the font. The line-gap metric is the font recommended line-gap or external leading.", + "doc": "The line-gap-override CSS descriptor for the @font-face at-rule defines the line-gap metric for the font. The line-gap metric is the font recommended line-gap or external leading.", "formalSyntax": "normal | <percentage [0,∞]>", "values": { "normal": "The default value. When used the metric value is obtained from the font file.", @@ -636,7 +646,7 @@ "level": "LOW", "lowDate": "2023-09-18" }, - "doc": "The size-adjust CSS descriptor for the @font-face at-rule defines a multiplier for glyph outlines and metrics associated with this font. This makes it easier to harmonize the designs of various fonts when rendered at the same font size.\n

The size-adjust descriptor behaves in a similar fashion to the font-size-adjust property. It calculates an adjustment per font by matching ex heights.", + "doc": "The size-adjust CSS descriptor for the @font-face at-rule defines a multiplier for glyph outlines and metrics associated with this font. This makes it easier to harmonize the designs of various fonts when rendered at the same font size.\n

The size-adjust descriptor behaves in a similar fashion to the font-size-adjust property. It calculates an adjustment per font by matching ex heights.", "formalSyntax": "<percentage [0,∞]>", "values": { "<percentage>": "A <percentage> value with an initial value of 100%." @@ -662,7 +672,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The src CSS descriptor for the @font-face at-rule specifies the resource containing font data. It is required for the @font-face rule to be valid.", + "doc": "The src CSS descriptor for the @font-face at-rule specifies the resource containing font data. It is required for the @font-face rule to be valid.", "formalSyntax": "<font-src-list>", "values": { "url()": "Specifies an external reference consisting of a <url>, followed by optional hints using the format() and tech() component values that specify the format and font technology of the resource referenced by the URL. The format() and tech() components are a comma-separated list of strings of known font formats and technologies. If a user agent doesn't support the font technology or formats, it skips downloading the font resource. If no format or technology hints are supplied, the font resource is always downloaded.", @@ -692,7 +702,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The unicode-range CSS descriptor sets the specific range of characters to be used from a font defined using the @font-face at-rule and made available for use on the current page. If the page doesn't use any character in this range, the font is not downloaded; if it uses at least one, the whole font is downloaded.", + "doc": "The unicode-range CSS descriptor sets the specific range of characters to be used from a font defined using the @font-face at-rule and made available for use on the current page. If the page doesn't use any character in this range, the font is not downloaded; if it uses at least one, the whole font is downloaded.", "formalSyntax": "<unicode-range-token>#", "values": { "single code point": "A single Unicode character code point, for example U+26.", @@ -748,8 +758,9 @@ "SafariIOS": "9.3" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-13" + "level": "HIGH", + "lowDate": "2023-03-13", + "highDate": "2025-09-13" }, "doc": "The @font-feature-values CSS at-rule lets you use a common name in the font-variant-alternates property for features activated differently in OpenType. This can help simplify your CSS when using multiple fonts.\n

The @font-feature-values at-rule may be used either at the top level of your CSS or inside any CSS conditional-group at-rule.", "properties": { @@ -787,8 +798,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, "doc": "The @font-palette-values CSS at-rule allows you to customize the default values of font-palette created by the font-maker.", "properties": { @@ -808,10 +820,11 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, - "doc": "The base-palette CSS descriptor is used to specify the name or index of a pre-defined palette to be used for creating a new palette. If the specified base-palette does not exist, then the palette defined at index 0 will be used.", + "doc": "The base-palette CSS descriptor is used to specify the name or index of a pre-defined palette to be used for creating a new palette. If the specified base-palette does not exist, then the palette defined at index 0 will be used.", "formalSyntax": "light | dark | <integer [0,∞]>", "values": { "<index>": "Specifies the index of the pre-defined palette to use." @@ -833,8 +846,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, "doc": "The @font-palette-values descriptor font-family is used to specify which font-family palette values are to be applied to. This need to match exactly the values used when setting the CSS font-family.", "formalSyntax": "<family-name>#\n  <family-name> = <string> | <custom-ident>+", @@ -858,10 +872,11 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, - "doc": "The override-colors CSS descriptor is used to override colors in the chosen base-palette for a color font.", + "doc": "The override-colors CSS descriptor is used to override colors in the chosen base-palette for a color font.", "formalSyntax": "[ <integer [0,∞]> <color> ]#", "values": { "[ <integer [0,∞]> <absolute-color-base> ]": "Specifies the index of a color in a base-palette and the color to overwrite it with." @@ -938,7 +953,7 @@ "lowDate": "2015-09-30", "highDate": "2018-03-30" }, - "doc": "The @keyframes CSS at-rule controls the intermediate steps in a CSS animation sequence by defining styles for keyframes (or waypoints) along the animation sequence. This gives more control over the intermediate steps of the animation sequence than transitions.", + "doc": "The @keyframes CSS at-rule controls the intermediate steps in a CSS animation sequence by defining styles for keyframes (or waypoints) along the animation sequence. This gives more control over the intermediate steps of the animation sequence than transitions.", "formalSyntax": "@keyframes <keyframes-name> { <qualified-rule-list> }\n  <keyframes-name> = <custom-ident> | <string>" }, "layer": { @@ -995,7 +1010,7 @@ "Firefox": "4", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The -moz-device-pixel-ratio Gecko-only CSS media feature can be used to apply styles based on the number of device pixels per CSS pixel.\n

\n

Warning:\nDo not use this feature. Use the resolution feature with the dppx unit instead.\n

\n
\n

Note:\nThis media feature is also implemented by WebKit as -webkit-device-pixel-ratio. The min and max prefixes as implemented by Gecko are named min--moz-device-pixel-ratio and max--moz-device-pixel-ratio; but the same prefixes as implemented by WebKit are named -webkit-min-device-pixel-ratio and -webkit-max-device-pixel-ratio.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The -moz-device-pixel-ratio Gecko-only CSS media feature can be used to apply styles based on the number of device pixels per CSS pixel.\n

\n

Warning:\nDo not use this feature. Use the resolution feature with the dppx unit instead.\n

\n
\n

Note:\nThis media feature is also implemented by WebKit as -webkit-device-pixel-ratio. The min and max prefixes as implemented by Gecko are named min--moz-device-pixel-ratio and max--moz-device-pixel-ratio; but the same prefixes as implemented by WebKit are named -webkit-min-device-pixel-ratio and -webkit-max-device-pixel-ratio.\n

" }, "-webkit-animation": { "url": "$MDN_URL$/web/css/@media/-webkit-animation", @@ -1006,7 +1021,7 @@ "Safari": "4", "SafariIOS": "3.2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Note:\nAll browsers support the animation property without vendor prefixes. Only WebKit (Safari), and not Chromium, based browsers supports the -webkit-animation media feature. No browsers support animation, without the prefix, as a media query. Use the @supports (animation) feature query instead.\n

\n

The -webkit-animation Boolean CSS media feature is a WebKit extension whose value is true if vendor-prefixed CSS animations are supported.\n

Apple has a description in Safari CSS Reference.\n

\n

Note:\nThis media feature is only supported by WebKit. If possible, use an @supports feature query instead.\n

", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Note:\nAll browsers support the animation property without vendor prefixes. Only WebKit (Safari), and not Chromium, based browsers supports the -webkit-animation media feature. No browsers support animation, without the prefix, as a media query. Use the @supports (animation) feature query instead.\n

\n

The -webkit-animation Boolean CSS media feature is a WebKit extension whose value is true if vendor-prefixed CSS animations are supported.\n

Apple has a description in Safari CSS Reference.\n

\n

Note:\nThis media feature is only supported by WebKit. If possible, use an @supports feature query instead.\n

", "values": { "true": "The browser supports -webkit prefixed CSS animation.", "false": "The browser doesn't support these prefixed CSS animations." @@ -1043,7 +1058,7 @@ "Safari": "4", "SafariIOS": "3.2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Note:\nAll browsers support the transform property without vendor prefixes. Only WebKit (Safari), and not Chromium, based browsers supports the -webkit-transform-2d media feature. No browsers support transform, without the prefix or 2d extension, as a media query. Use the @supports (transform) feature query instead.\n

\n

The -webkit-transform-2d Boolean CSS media feature is a WebKit extension whose value is true if vendor-prefixed CSS 2D transforms and non-standard vendor-prefixed media queries are supported.\n

Apple has a description in Safari CSS Reference.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nAll browsers support the transform property without vendor prefixes. Only WebKit (Safari), and not Chromium, based browsers supports the -webkit-transform-2d media feature. No browsers support transform, without the prefix or 2d extension, as a media query. Use the @supports (transform) feature query instead.\n

\n

The -webkit-transform-2d Boolean CSS media feature is a WebKit extension whose value is true if vendor-prefixed CSS 2D transforms and non-standard vendor-prefixed media queries are supported.\n

Apple has a description in Safari CSS Reference.", "values": { "true": "The browser supports the 2D CSS transforms with the -webkit prefix.", "false": "The 2D CSS transforms prefixed with -webkit are not supported by the browser." @@ -1084,7 +1099,7 @@ "Safari": "4", "SafariIOS": "3.2" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Note:\nAll browsers support the transition property without vendor prefixes. Only WebKit (Safari), and not Chromium, based browsers support the -webkit-transition media feature. No browsers support transition without the prefix as a media query (though some browsers do support - -webkit-transform-3d). Use the @supports (transition) feature query instead.\n

\n

The -webkit-transition Boolean non-standard CSS media feature is a WebKit extension whose value is true if the browsing context supports CSS transitions.\n

Apple has a description in Safari CSS Reference; this is now called transition there.\n

\n

Note:\nYou should not use this media feature; it was never specified, has never been widely implemented, and has been removed from most browsers. Use a @supports feature query instead.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nAll browsers support the transition property without vendor prefixes. Only WebKit (Safari), and not Chromium, based browsers support the -webkit-transition media feature. No browsers support transition without the prefix as a media query (though some browsers do support - -webkit-transform-3d). Use the @supports (transition) feature query instead.\n

\n

The -webkit-transition Boolean non-standard CSS media feature is a WebKit extension whose value is true if the browsing context supports CSS transitions.\n

Apple has a description in Safari CSS Reference; this is now called transition there.\n

\n

Note:\nYou should not use this media feature; it was never specified, has never been widely implemented, and has been removed from most browsers. Use a @supports feature query instead.\n

" }, "any-hover": { "url": "$MDN_URL$/web/css/@media/any-hover", @@ -1152,14 +1167,6 @@ }, "doc": "The aspect-ratio CSS media feature can be used to test the aspect ratio of the viewport." }, - "aural": { - "url": "$MDN_URL$/web/css/@media/aural", - "status": [ - "Experimental", - "Deprecated" - ], - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The aural CSS media type is used for devices that have speech output capabilities." - }, "calc": { "url": "$MDN_URL$/web/css/calc", "status": [ @@ -1221,8 +1228,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The color-gamut CSS media feature is used to apply CSS styles based on the approximate range of color gamut supported by the user agent and the output device." }, @@ -1379,7 +1387,7 @@ "doc": "The forced-colors CSS media feature is used to detect if the user agent has enabled a forced colors mode where it enforces a user-chosen limited color palette on the page. An example of a forced colors mode is Windows High Contrast mode.", "values": { "none": "Forced colors mode is not active; the page's colors are not being forced into a limited palette.", - "active": "Indicates that forced colors mode is active. The browser provides the color palette to authors through the CSS system color keywords and, if appropriate, triggers the appropriate value of prefers-color-scheme so that authors can adapt the page. The browser selects the value for prefers-color-scheme based on the lightness of the Canvas system color (see the color adjust spec for more details)." + "active": "Indicates that forced colors mode is active. The browser provides the color palette to authors through the CSS system color keywords and, if appropriate, triggers the appropriate value of prefers-color-scheme so that authors can adapt the page. The browser selects the value for prefers-color-scheme based on the lightness of the Canvas system color (see the color adjust spec for more details)." } }, "grid": { @@ -1426,6 +1434,23 @@ }, "doc": "The height CSS media feature can be used to apply styles based on the height of the viewport (or the page box, for paged media)." }, + "horizontal-viewport-segments": { + "url": "$MDN_URL$/web/css/@media/horizontal-viewport-segments", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The horizontal-viewport-segments CSS media feature detects whether the device has a specified number of viewport segments laid out horizontally (side by side).\n

Related to the Viewport Segments API, the vertical-viewport-segments feature can be used to create responsive designs that work well on multi-viewport devices — devices with a display that is divided into logically separate viewport segments, such as foldable or hinged devices." + }, "hover": { "url": "$MDN_URL$/web/css/@media/hover", "status": [ @@ -1646,7 +1671,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

\n

Warning:\nAn embedded example at the bottom of this page has a scaling movement that may be problematic for some readers. Readers with vestibular motion disorders may wish to enable the reduce motion feature on their device before viewing the animation.\n

\n

The prefers-reduced-motion CSS media feature is used to detect if a user has enabled a setting on their device to minimize the amount of non-essential motion. The setting is used to convey to the browser on the device that the user prefers an interface that removes, reduces, or replaces motion-based animations.\n

Such animations can trigger discomfort for those with vestibular motion disorders. Animations such as scaling or panning large objects can be vestibular motion triggers.\n

\n```css\n@media (prefers-reduced-motion) {\n  /* styles to apply if a user's device settings are set to reduced motion */\n}\n```\n
" + "doc": "
\n

Warning:\nAn embedded example at the bottom of this page has a scaling movement that may be problematic for some readers. Readers with vestibular motion disorders may wish to enable the reduce motion feature on their device before viewing the animation.\n

\n

The prefers-reduced-motion CSS media feature is used to detect if a user has enabled a setting on their device to minimize the amount of non-essential motion. The setting is used to convey to the browser on the device that the user prefers an interface that removes, reduces, or replaces motion-based animations.\n

Such animations can trigger discomfort for those with vestibular motion disorders. Animations such as scaling or panning large objects can be vestibular motion triggers." }, "prefers-reduced-transparency": { "url": "$MDN_URL$/web/css/@media/prefers-reduced-transparency", @@ -1743,7 +1768,24 @@ "level": "LOW", "lowDate": "2023-09-18" }, - "doc": "The update CSS media feature can be used to test how frequently (if at all) the output device is able to modify the appearance of content once rendered.\n

\n```css\n@media (update: < none | slow | fast >) {\n  /* styles to apply if the update frequency of the output device is a match */\n}\n```\n
" + "doc": "The update CSS media feature can be used to test how frequently (if at all) the output device is able to modify the appearance of content once rendered." + }, + "vertical-viewport-segments": { + "url": "$MDN_URL$/web/css/@media/vertical-viewport-segments", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The vertical-viewport-segments CSS media feature detects whether the device has a specified number of viewport segments laid out vertically (top to bottom).\n

Related to the Viewport Segments API, the vertical-viewport-segments feature can be used to create responsive designs that work well on multi-viewport devices — devices with a display that is divided into logically separate viewport segments, such as foldable or hinged devices." }, "video-dynamic-range": { "url": "$MDN_URL$/web/css/@media/video-dynamic-range", @@ -1844,7 +1886,7 @@ "baseline": { "level": "NONE" }, - "doc": "The page-orientation CSS descriptor for the @page at-rule controls the rotation of a printed page. It handles the flow of content across pages when the orientation of a page is changed. This behavior differs from the size descriptor in that a user can define the direction in which to rotate the page.\n

This descriptor helps with the layout and orientation of printed documents, especially when documents are printed double-sided. A user can specify how the pages will be rotated when printed. This is particularly useful to lay out content such as tables, which may be wider than the rest of the content, in a different orientation.\n

\n

Note: Margin boxes and other positional elements have no special interaction with this descriptor. Margins are laid out as normal in the unrotated page, then rotated along with everything else.\n

", + "doc": "The page-orientation CSS descriptor for the @page at-rule controls the rotation of a printed page. It handles the flow of content across pages when the orientation of a page is changed. This behavior differs from the size descriptor in that a user can define the direction in which to rotate the page.\n

This descriptor helps with the layout and orientation of printed documents, especially when documents are printed double-sided. A user can specify how the pages will be rotated when printed. This is particularly useful to lay out content such as tables, which may be wider than the rest of the content, in a different orientation.\n

\n

Note:\nMargin boxes and other positional elements have no special interaction with this descriptor. Margins are laid out as normal in the unrotated page, then rotated along with everything else.\n

", "formalSyntax": "upright | rotate-left | rotate-right", "values": { "upright": "No orientation is applied and the page is laid out and formatted as normal.", @@ -1887,19 +1929,20 @@ "position-try": { "url": "$MDN_URL$/web/css/@position-try", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The @position-try CSS at-rule is used to define a custom position try fallback option, which can be used to define positioning and alignment for anchor-positioned elements. One or more sets of position try fallback options can be applied to the anchored element via the position-try-fallbacks property or position-try shorthand. When the positioned element is moved to a position where it starts to overflow its containing block or the viewport, the browser will select the first position try fallback option it finds that places the positioned element fully back on-screen.\n

Each position option is named with a <dashed-ident> and contains a descriptor list specifying declarations that define information such as inset position, margin, sizing, and self-alignment. The <dashed-ident> is used to reference the custom position option in the position-try-fallbacks property and position-try shorthand.\n

For detailed information on anchor features and position try fallback usage, see the CSS anchor positioning module landing page and the Handling overflow: try fallbacks and conditional hiding guide.", + "doc": "The @position-try CSS at-rule is used to define a custom position try fallback option, which can be used to define positioning and alignment for anchor-positioned elements. One or more sets of position try fallback options can be applied to the anchored element via the position-try-fallbacks property or position-try shorthand. When the positioned element is moved to a position where it starts to overflow its containing block or the viewport, the browser will select the first position try fallback option it finds that places the positioned element fully back on-screen.\n

Each position option is named with a <dashed-ident> and contains a descriptor list specifying declarations that define information such as inset position, margin, sizing, and self-alignment. The <dashed-ident> is used to reference the custom position option in the position-try-fallbacks property and position-try shorthand.\n

For detailed information on anchor features and position try fallback usage, see the CSS anchor positioning module landing page and the Fallback options and conditional hiding for overflow guide.", "formalSyntax": "@position-try <dashed-ident> { <declaration-list> }" }, "property": { @@ -2019,15 +2062,18 @@ "StandardTrack" ], "compatibility": { - "Chrome": "118", - "ChromeAndroid": "118", - "Edge": "118", - "Opera": "104", - "Safari": "17.4", - "SafariIOS": "17.4" - }, - "baseline": { - "level": "NONE" + "support_of_at-scope": { + "Firefox": "142", + "FirefoxAndroid": "142" + }, + "support_of_scope": { + "Chrome": "118", + "ChromeAndroid": "118", + "Edge": "118", + "Opera": "104", + "Safari": "17.4", + "SafariIOS": "17.4" + } }, "doc": "The @scope CSS at-rule enables you to select elements in specific DOM subtrees, targeting elements precisely without writing overly-specific selectors that are hard to override, and without coupling your selectors too tightly to the DOM structure.\n

In JavaScript, @scope can be accessed via the CSS object model interface CSSScopeRule.", "formalSyntax": "@scope [ ( <scope-start> ) ]? [ to ( <scope-end> ) ]? { <block-contents> }" @@ -2104,7 +2150,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The -moz-image-rect value for CSS background-image lets you use a portion of a larger image as a background.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The -moz-image-rect value for CSS background-image lets you use a portion of a larger image as a background.", "values": { "<url>": "The URI of the image from which to take the sub-image.", "top": "The top edge, specified as an <integer> or <percentage>, of the sub-image within the specified image.", @@ -2245,12 +2291,12 @@ "values": { "normal": "The final color is the top color, regardless of what the bottom color is.\nThe effect is like two opaque pieces of paper overlapping.", "multiply": "The final color is the result of multiplying the top and bottom colors.\nA black layer leads to a black final layer, and a white layer leads to no change.\nThe effect is like two images printed on transparent film overlapping.", - "screen": "The final color is the result of inverting the colors, multiplying them, and inverting that value.\nA black layer leads to no change, and a white layer leads to a white final layer.\nThe effect is like two images shone onto a projection screen.", + "screen": "The final color is the result of inverting the colors, multiplying them, and inverting that value.\nA black layer leads to no change, and a white layer leads to a white final layer.\nThe effect is like two images shining onto a projection screen.", "overlay": "The final color is the result of multiply if the bottom color is darker, or screen if the bottom color is lighter.\nThis blend mode is equivalent to hard-light but with the layers swapped.", "darken": "The final color is composed of the darkest values of each color channel.", "lighten": "The final color is composed of the lightest values of each color channel.", - "color-dodge": "The final color is the result of dividing the bottom color by the inverse of the top color.\nA black foreground leads to no change. A foreground with the inverse color of the backdrop leads to a fully lit color.\nThis blend mode is similar to screen, but the foreground need only be as light as the inverse of the backdrop to create a fully lit color.", - "color-burn": "The final color is the result of inverting the bottom color, dividing the value by the top color, and inverting that value.\nA white foreground leads to no change. A foreground with the inverse color of the backdrop leads to a black final image.\nThis blend mode is similar to multiply, but the foreground need only be as dark as the inverse of the backdrop to make the final image black.", + "color-dodge": "The final color is the result of dividing the bottom color by the inverse of the top color.\nA black foreground leads to no change. A foreground with the inverse color of the backdrop leads to a fully lit color.\nThis blend mode is similar to screen, but the foreground only needs to be as light as the inverse of the backdrop to create a fully lit color.", + "color-burn": "The final color is the result of inverting the bottom color, dividing the value by the top color, and inverting that value.\nA white foreground leads to no change. A foreground with the inverse color of the backdrop leads to a black final image.\nThis blend mode is similar to multiply, but the foreground only needs to be as dark as the inverse of the backdrop to make the final image black.", "hard-light": "The final color is the result of multiply if the top color is darker, or screen if the top color is lighter.\nThis blend mode is equivalent to overlay but with the layers swapped.\nThe effect is similar to shining a harsh spotlight on the backdrop.", "soft-light": "The final color is similar to hard-light, but softer.\nThis blend mode behaves similar to hard-light.\nThe effect is similar to shining a diffused spotlight on the backdrop.", "difference": "The final color is the result of subtracting the darker of the two colors from the lighter one.\nA black layer has no effect, while a white layer inverts the other layer's color.", @@ -2292,8 +2338,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-12-13" + "level": "HIGH", + "lowDate": "2022-12-13", + "highDate": "2025-06-13" }, "doc": "The <calc-keyword> CSS data type represents well-defined constants such as e and pi. Rather than require authors to manually type out several digits of these mathematical constants or calculate them, a few of them are provided directly by CSS for convenience.", "formalSyntax": "e | pi | infinity | -infinity | NaN", @@ -2333,8 +2380,8 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <color> CSS data type represents a color.\nA <color> may also include an alpha-channel transparency value, indicating how the color should composite with its background.\n

\n

Note:\nAlthough <color> values are precisely defined, their actual appearance may vary (sometimes significantly) from device to device. This is because most devices are not calibrated, and some browsers do not support output devices' color profiles.\n

", - "formalSyntax": "<color-base> | currentColor | <system-color>\n  <color-base> = <hex-color> | <color-function> | <named-color> | transparent\n  <color-function> = <rgb()> | <rgba()> | <hsl()> | <hsla()> | <hwb()> | <lab()> | <lch()> | <oklab()> | <oklch()> | <ictcp()> | <jzazbz()> | <jzczhz()> | <color()>\n  <rgb()> = <legacy-rgb-syntax> | <modern-rgb-syntax>\n  <rgba()> = <legacy-rgba-syntax> | <modern-rgba-syntax>\n  <hsl()> = <legacy-hsl-syntax> | <modern-hsl-syntax>\n  <hsla()> = <legacy-hsla-syntax> | <modern-hsla-syntax>\n  <hwb()> = hwb( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <lab()> = lab( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <lch()> = lch( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <hue> | none ] [ / [ <alpha-value> | none ] ]? )\n  <oklab()> = oklab( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <oklch()> = oklch( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <hue> | none ] [ / [ <alpha-value> | none ] ]? )\n  <ictcp()> = ictcp( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <jzazbz()> = jzazbz( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <jzczhz()> = jzczhz( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <hue> | none ] [ / [ <alpha-value> | none ] ]? )\n  <color()> = color( [ from <color> ]? <colorspace-params> [ / [ <alpha-value> | none ] ]? )\n  <legacy-rgb-syntax> = rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )\n  <modern-rgb-syntax> = rgb( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? )\n  <legacy-rgba-syntax> = rgba( <percentage>#{3} , <alpha-value>? ) | rgba( <number>#{3} , <alpha-value>? )\n  <modern-rgba-syntax> = rgba( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? )\n  <legacy-hsl-syntax> = hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )\n  <modern-hsl-syntax> = hsl( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <legacy-hsla-syntax> = hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )\n  <modern-hsla-syntax> = hsla( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <hue> = <number> | <angle>\n  <alpha-value> = <number> | <percentage>\n  <colorspace-params> = <predefined-rgb-params> | <xyz-params>\n  <predefined-rgb-params> = <predefined-rgb> [ <number> | <percentage> | none ]{3}\n  <xyz-params> = <xyz-space> [ <number> | <percentage> | none ]{3}\n  <predefined-rgb> = srgb | srgb-linear | display-p3 | a98-rgb | prophoto-rgb | rec2020 | rec2100-pq | rec2100-hlg | rec2100-linear\n  <xyz-space> = xyz | xyz-d50 | xyz-d65" + "doc": "The <color> CSS data type represents a color.\nA <color> may also include an alpha-channel transparency value, indicating how the color should composite with its background.\n
\n

Note:\nAlthough <color> values are precisely defined, their actual appearance may vary (sometimes significantly) from device to device. This is because most devices are not calibrated, and some browsers do not support output devices' color profiles.\n

", + "formalSyntax": "<color-base> | currentColor | <system-color>\n  <color-base> = <hex-color> | <color-function> | <named-color> | transparent\n  <color-function> = <rgb()> | <rgba()> | <hsl()> | <hsla()> | <hwb()> | <lab()> | <lch()> | <oklab()> | <oklch()> | <ictcp()> | <jzazbz()> | <jzczhz()> | <alpha()> | <color()>\n  <rgb()> = <legacy-rgb-syntax> | <modern-rgb-syntax>\n  <rgba()> = <legacy-rgba-syntax> | <modern-rgba-syntax>\n  <hsl()> = <legacy-hsl-syntax> | <modern-hsl-syntax>\n  <hsla()> = <legacy-hsla-syntax> | <modern-hsla-syntax>\n  <hwb()> = hwb( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <lab()> = lab( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <lch()> = lch( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <hue> | none ] [ / [ <alpha-value> | none ] ]? )\n  <oklab()> = oklab( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <oklch()> = oklch( [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <hue> | none ] [ / [ <alpha-value> | none ] ]? )\n  <ictcp()> = ictcp( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <jzazbz()> = jzazbz( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <jzczhz()> = jzczhz( [ from <color> ]? [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ <hue> | none ] [ / [ <alpha-value> | none ] ]? )\n  <alpha()> = alpha( [ from <color> ] [ / [ <alpha-value> | none ] ]? )\n  <color()> = color( <colorspace-params> [ / [ <alpha-value> | none ] ]? )\n  <legacy-rgb-syntax> = rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )\n  <modern-rgb-syntax> = rgb( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? )\n  <legacy-rgba-syntax> = rgba( <percentage>#{3} , <alpha-value>? ) | rgba( <number>#{3} , <alpha-value>? )\n  <modern-rgba-syntax> = rgba( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? )\n  <legacy-hsl-syntax> = hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )\n  <modern-hsl-syntax> = hsl( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <legacy-hsla-syntax> = hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )\n  <modern-hsla-syntax> = hsla( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? )\n  <hue> = <number> | <angle>\n  <alpha-value> = <number> | <percentage>\n  <colorspace-params> = <predefined-rgb-params> | <xyz-params>\n  <predefined-rgb-params> = <predefined-rgb> [ <number> | <percentage> | none ]{3}\n  <xyz-params> = <xyz-space> [ <number> | <percentage> | none ]{3}\n  <predefined-rgb> = srgb | srgb-linear | display-p3 | display-p3-linear | a98-rgb | prophoto-rgb | rec2020 | rec2100-pq | rec2100-hlg | rec2100-linear\n  <xyz-space> = xyz | xyz-d50 | xyz-d65" }, "color-interpolation-method": { "url": "$MDN_URL$/web/css/color-interpolation-method", @@ -2356,7 +2403,7 @@ "lowDate": "2023-05-09" }, "doc": "The <color-interpolation-method> CSS data type represents the color space used for interpolation between <color> values. It can be used to override the default interpolation color space for color-related functional notations such as color-mix() and linear-gradient().\n

When interpolating <color> values, the interpolation color space defaults to Oklab.", - "formalSyntax": "in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | xyz | xyz-d50 | xyz-d65\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue", + "formalSyntax": "in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | display-p3-linear | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | <xyz-space>\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue\n  <xyz-space> = xyz | xyz-d50 | xyz-d65", "values": { "<rectangular-color-space>": "One of the keywords srgb, srgb-linear, display-p3, a98-rgb, prophoto-rgb, rec2020, lab, oklab, xyz, xyz-d50, or xyz-d65.", "<polar-color-space>": "One of the keywords hsl, hwb, lch, or oklch.", @@ -2393,6 +2440,28 @@ "flex-end": "In flex layout, aligns the alignment subject flush with the edge of the alignment container corresponding to the flex container's main-end or cross-end side, as appropriate. Identical to end for layout modes other than flex layout." } }, + "corner-shape-value": { + "url": "$MDN_URL$/web/css/corner-shape-value", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The <corner-shape-value> CSS data type describes the shape of a container corner. It is used by the corner-shape shorthand property and its constituent properties to specify the shape to apply to affected container corners.", + "formalSyntax": "round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )", + "values": { + "superellipse()": "Defines a custom corner superellipse shape. A negative parameter creates an inward, or concave, curve while a positive parameter creates an outward, or convex, curve.", + "Keywords": "The available keyword values are as follows:\n

\n
bevel
\n
\n

Defines a straight, diagonal corner, which is neither convex nor concave. The bevel keyword is equivalent to superellipse(0).\n

\n
notch
\n
\n

Defines a 90-degree concave square corner. The notch keyword is equivalent to superellipse(-infinity).\n

\n
round
\n
\n

Defines a convex ordinary ellipse, which is the standard rounded corner created by border-radius without a corner-shape applied. The round keyword is equivalent to superellipse(1). This is the default (initial) value for all corner-shape properties.\n

\n
scoop
\n
\n

Defines a concave ordinary ellipse. The scoop keyword is equivalent to superellipse(-1).\n

\n
square
\n
\n

Defines a 90-degree convex square corner, which is the default corner shape when no border-radius (or border-radius: 0) is applied. The square keyword is equivalent to superellipse(infinity).\n

\n
squircle
\n
\n

Defines a \"squircle\", which is a convex curve in between round and square. The squircle keyword is equivalent to superellipse(2).\n

\n
" + } + }, "custom-ident": { "url": "$MDN_URL$/web/css/custom-ident", "status": [ @@ -2808,19 +2877,19 @@ "Deprecated" ], "doc": "The <generic-family> CSS data type represents the keyword values for generic font families used in the font shorthand and font-family longhand properties. The <generic-family> represents one or more locally-installed fonts belonging to that category of fonts.", + "formalSyntax": "serif | sans-serif | monospace | cursive | fantasy | system-ui | ui-serif | ui-sans-serif | ui-monospace | ui-rounded | math | fangsong", "values": { "serif": "A serif is a small line or stroke attached to the end of a larger stroke in a letter. In serif fonts, glyphs have finishing strokes, flared or tapering ends. Examples include Lucida Bright, Lucida Fax, Palatino, Palatino Linotype, Palladio, and URW Palladio.", "sans-serif": "A font without serifs; glyphs have plain stroke endings, without ornamentation. Example sans-serif fonts include Open Sans, Fira Sans, Lucida Sans, Lucida Sans Unicode, Trebuchet MS, Liberation Sans, and Nimbus Sans L.", "monospace": "All glyphs have the same fixed width. Example monospace fonts include Fira Mono, DejaVu Sans Mono, Menlo, Consolas, Liberation Mono, Monaco, and Lucida Console.", - "cursive": "Glyphs in cursive fonts generally have either joining strokes or other cursive characteristics beyond those of italic typefaces. The glyphs are partially or completely connected, and the result looks more like handwritten pen or brush writing than printed letter work. Example cursive fonts include Brush Script MT, Brush Script Std, Lucida Calligraphy, Lucida Handwriting, and Apple Chancery.", - "fantasy": "Fantasy fonts are primarily decorative fonts that contain playful representations of characters. Example fantasy fonts include Papyrus, Herculanum, Party LET, Curlz MT, and Harrington.", - "system-ui": "Glyphs are taken from the default user interface font on a given platform. Because typographic traditions vary widely across the world, this generic family is provided for typefaces that don't map cleanly into the others.", + "cursive": "Glyphs in cursive fonts generally use a cursive script or other handwriting style, and the result looks more like handwritten pen or brush writing than printed typesetting. CSS uses the term \"cursive\" to apply to a font for any script, including those that do not have joining strokes. Example cursive fonts include Brush Script MT, Brush Script Std, Lucida Calligraphy, Lucida Handwriting, and Apple Chancery.", + "fantasy": "Fantasy fonts are primarily decorative fonts that contain playful representations of characters. Example fantasy fonts include Papyrus, Herculanum, Party LET, Curlz MT, Harrington, and Comic Sans MS.", + "system-ui": "Glyphs are taken from the default user interface font on a given platform. Because typographic traditions vary widely across the world, this generic family is provided for typefaces that don't map cleanly into the others.\n
\n

Note:\nAs the name implies, system-ui is intended to make UI elements look like native apps, and not for typesetting large paragraphs of text. It may cause the displayed typeface to be undesirable for some users—for example, the default Windows CJK font may render Latin scripts poorly, and the lang attribute may not affect the displayed font. Some operating systems do not allow customizing system-ui, while browsers generally allow customizing the sans-serif font family. For large paragraphs, use sans-serif or some other non-UI font family instead.\n

", "ui-serif": "The default user interface serif font. See the definition of serif above.", "ui-sans-serif": "The default user interface sans-serif font. See the definition of sans-serif above.", "ui-monospace": "The default user interface monospace font. See the definition of monospace above.", "ui-rounded": "The default user interface font that has rounded features.", "math": "Fonts for displaying mathematical expressions, for example superscript and subscript, brackets that cross several lines, nesting expressions, and double-struck glyphs with distinct meanings.", - "emoji": "Fonts that are specifically designed to render emoji.", "fangsong": "A particular style of Chinese characters that are between serif-style Song and cursive-style Kai forms. This style is often used for government documents." } }, @@ -3002,7 +3071,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The inherit CSS keyword causes the element to take the computed value of the property from its parent element. It can be applied to any CSS property, including the CSS shorthand property all.\n

For inherited properties, this reinforces the default behavior, and is only needed to override another rule.\n

\n

Note:\nInheritance is always from the parent element in the document tree, even when the parent element is not the containing block.\n

" + "doc": "The inherit CSS keyword causes the element to take the computed value of the property from its parent element. It can be applied to any CSS property, including the CSS shorthand property all.\n

For inherited properties, this reinforces the default behavior, and is only needed to override another rule.\n

\n

Note:\nInheritance is always from the parent element in the document tree, even when the parent element is not the containing block.\n

" }, "initial": { "url": "$MDN_URL$/web/css/initial", @@ -3024,7 +3093,7 @@ "lowDate": "2015-11-12", "highDate": "2018-05-12" }, - "doc": "The initial CSS keyword applies the initial (or default) value of a property to an element. It can be applied to any CSS property, including the CSS shorthand property all. With all set to initial, all CSS properties can be restored to their respective initial values in one go instead of restoring each one separately.\n

On inherited properties, the initial value may be unexpected. You should consider using the inherit, unset, revert, or revert-layer keywords instead." + "doc": "The initial CSS keyword applies the initial (or default) value of a property to an element. It can be applied to any CSS property, including the CSS shorthand property all. With all set to initial, all CSS properties can be restored to their respective initial values in one go instead of restoring each one separately.\n

On inherited properties, the initial value may be unexpected. You should consider using the inherit, unset, revert, or revert-layer keywords instead." }, "integer": { "url": "$MDN_URL$/web/css/integer", @@ -3114,6 +3183,7 @@ "highDate": "2018-01-29" }, "doc": "The <line-style> enumerated value type represents keyword values that define the style of a line, or the lack of a line. The <line-style> keyword values are used in the following longhand and shorthand border and column properties:\n

", + "formalSyntax": "none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset", "values": { "none": "Displays no line. The computed value of the line width is 0 even if a width value is specified. In the case of table cell and border collapsing, the none value has the lowest priority. If any other conflicting border is set, it will be displayed. The none value is similar to hidden.", "hidden": "Displays no line. The computed width of the line is 0 even if a width value is specified. In the case of table cell and border collapsing, the hidden value has the highest priority. If any other conflicting border is set, it won't be displayed. The hidden value is similar to none, but hidden is not a valid value for outline styles.", @@ -3169,7 +3239,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <number> CSS data type represents a number, being either an integer or a number with a fractional component." + "doc": "The <number> CSS data type represents a number, being either an integer, a number with a fractional component, or a base-ten exponent in scientific notation." }, "overflow": { "url": "$MDN_URL$/web/css/overflow_value", @@ -3334,7 +3404,7 @@ "lowDate": "2020-07-27", "highDate": "2023-01-27" }, - "doc": "The revert CSS keyword reverts the cascaded value of the property from its current value to the value the property would have had if no changes had been made by the current style origin to the current element. Thus, it resets the property either to user agent set value, to user set value, to its inherited value (if it is inheritable), or to initial value. It can be applied to any CSS property, including the CSS shorthand property all.\n

This keyword removes from the cascade all of the styles that have been overridden until the style being rolled back to is reached.\n

\n

The revert keyword works exactly the same as unset in many cases. The only difference is for properties that have values set by the browser or by custom stylesheets created by users (set on the browser side).\n

Revert will not affect rules applied to children of an element you reset (but will remove effects of a parent rule on a child). So if you have a color: green for all sections and all: revert on a specific section, the color of the section will be black. But if you have a rule to make all paragraphs red, then all paragraphs will still be red in all sections.\n

\n

Note:\nRevert is just a value. It is still possible to override the revert value using specificity.\n

\n
\n

Note:\nThe revert keyword is different from and should not be confused with the initial keyword, which uses the initial value defined on a per-property basis by the CSS specifications. In contrast, user-agent stylesheets set default values on the basis of CSS selectors.\n

For example, the initial value for the display property is inline, whereas a normal user-agent stylesheet sets the default display value of <div>s to block, of <table>s to table, etc.\n

" + "doc": "The revert CSS keyword reverts the cascaded value of the property from its current value to the value the property would have had if no changes had been made by the current style origin to the current element. Thus, it resets the property either to user agent set value, to user set value, to its inherited value (if it is inheritable), or to initial value. It can be applied to any CSS property, including the CSS shorthand property all.\n

This keyword removes from the cascade all of the styles that have been overridden until the style being rolled back to is reached.\n

\n

The revert keyword works exactly the same as unset in many cases. The only difference is for properties that have values set by the browser or by custom stylesheets created by users (set on the browser side).\n

Revert will not affect rules applied to children of an element you reset (but will remove effects of a parent rule on a child). So if you have a color: green for all sections and all: revert on a specific section, the color of the section will be black. But if you have a rule to make all paragraphs red, then all paragraphs will still be red in all sections.\n

\n

Note:\nRevert is just a value. It is still possible to override the revert value using specificity.\n

\n
\n

Note:\nThe revert keyword is different from and should not be confused with the initial keyword, which uses the initial value defined on a per-property basis by the CSS specifications. In contrast, user-agent stylesheets set default values on the basis of CSS selectors.\n

For example, the initial value for the display property is inline, whereas a normal user-agent stylesheet sets the default display value of <div>s to block, of <table>s to table, etc.\n

" }, "revert-layer": { "url": "$MDN_URL$/web/css/revert-layer", @@ -3391,7 +3461,7 @@ "Safari": "1.3", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The <shape> CSS data type defines the specific form (shape) of a region. The region represents the part of an element to which the clip property applies.\n

\n

Note: <shape> and rect() work in conjunction with clip, which has been deprecated in favor of clip-path. When possible, use clip-path and the <basic-shape> data type instead.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The <shape> CSS data type defines the specific form (shape) of a region. The region represents the part of an element to which the clip property applies.\n

\n

Note:\n<shape> and rect() work in conjunction with clip, which has been deprecated in favor of clip-path. When possible, use clip-path and the <basic-shape> data type instead.\n

", "values": { "top": "Is a <length> representing the offset for the top of the rectangle relative to the top border of the element's box.", "right": "Is a <length> representing the offset for the right of the rectangle relative to the left border of the element's box.", @@ -3459,7 +3529,14 @@ "baseline": { "level": "NONE" }, - "doc": "The <text-edge> enumerated data type defines keywords that specify font metrics representing specific regions on a font's block-start edge and block-end edge. Each keyword specifies a position of a font's over and/or under edge.\n

The <text-edge> values are used in the text-box-edge property to specify an amount of space to trim from the block-start and block-end edge of a text element's block container." + "doc": "The <text-edge> enumerated data type defines keywords that specify font metrics representing specific regions on a font's block-start edge and block-end edge. Each keyword specifies a position of a font's over and/or under edge.\n

The <text-edge> values are used in the text-box-edge property to specify an amount of space to trim from the block-start and block-end edge of a text element's block container.", + "formalSyntax": "[ text | ideographic | ideographic-ink ] | [ text | ideographic | ideographic-ink | cap | ex ] [ text | ideographic | ideographic-ink | alphabetic ]", + "values": { + "text": "The font's over and under edges are its text-over baseline/text-under baseline: this includes the font's ascenders and descenders but excludes the half-leading set on the text.\n

\n

Note:\nThe amount of half-leading included on a text element can be controlled using the line-height property.\n

The font's over edge is its text-over baseline (includes the font's ascenders but excludes the over edge half-leading), or its under edge is its text-under baseline (includes the font's descenders but excludes the under edge half-leading), depending on which edge the value is set for.", + "alphabetic": "The font's under edge is its alphabetic baseline, which is the bottom of its short lower-case letters (for example, \"m\", \"n\", and \"o\") or capital letters.", + "cap": "The font's over edge is its cap-height baseline, which is the top of its capital letters.", + "ex": "The font's over edge is its x-height baseline, which is the top of its short lower-case letters." + } }, "time": { "url": "$MDN_URL$/web/css/time", @@ -3534,7 +3611,7 @@ "lowDate": "2016-03-21", "highDate": "2018-09-21" }, - "doc": "The unset CSS keyword resets a property to its inherited value if the property naturally inherits from its parent, and to its initial value if not. In other words, it behaves like the inherit keyword in the first case, when the property is an inherited property, and like the initial keyword in the second case, when the property is a non-inherited property.\n

unset can be applied to any CSS property, including the CSS shorthand property all." + "doc": "The unset CSS keyword resets a property to its inherited value if the property naturally inherits from its parent, and to its initial value if not. In other words, it behaves like the inherit keyword in the first case, when the property is an inherited property, and like the initial keyword in the second case, when the property is a non-inherited property.\n

unset can be applied to any CSS property, including the CSS shorthand property all." } }, "functions": { @@ -3544,13 +3621,18 @@ "StandardTrack" ], "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", "Firefox": "118", "FirefoxAndroid": "118", + "Opera": "122", "Safari": "15.4", "SafariIOS": "15.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-26" }, "doc": "The abs() CSS function returns the absolute value of the argument, as the same type as the input.", "formalSyntax": "abs( <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" @@ -3571,8 +3653,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-13" + "level": "HIGH", + "lowDate": "2023-03-13", + "highDate": "2025-09-13" }, "doc": "The acos() CSS function is a trigonometric function that returns the inverse cosine of a number between -1 and 1. The function contains a single calculation that returns the number of radians representing an <angle> between 0deg and 180deg.", "formalSyntax": "acos( <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" @@ -3580,37 +3663,39 @@ "anchor": { "url": "$MDN_URL$/web/css/anchor", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The anchor() CSS function can be used within an anchor-positioned element's inset property values, returning a length value relative to the position of the edges of its associated anchor element.", + "doc": "The anchor() CSS function can be used within an anchor-positioned element's inset property values, returning a length value relative to the position of the edges of its associated anchor element.", "formalSyntax": "anchor( <anchor-name>? &&<anchor-side> , <length-percentage>? )\n  <anchor-name> = <dashed-ident>\n  <anchor-side> = inside | outside | top | left | right | bottom | start | end | self-start | self-end | <percentage> | center\n  <length-percentage> = <length> | <percentage>" }, "anchor-size": { "url": "$MDN_URL$/web/css/anchor-size", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The anchor-size() CSS function enables setting anchor-positioned element's size, position, and margins relative to the dimensions of anchor elements. It returns the <length> of a specified side of the target anchor element. anchor-size() is only valid when used within the value of anchor-positioned elements' sizing, inset, and margin properties.\n

For detailed information on anchor features and usage, see the CSS anchor positioning module landing page and the Using CSS anchor positioning guide.", + "doc": "The anchor-size() CSS function enables setting anchor-positioned element's size, position, and margins relative to the dimensions of anchor elements. It returns the <length> of a specified side of the target anchor element. anchor-size() is only valid when used within the value of anchor-positioned elements' sizing, inset, and margin properties.\n

For detailed information on anchor features and usage, see the CSS anchor positioning module landing page and the Using CSS anchor positioning guide.", "formalSyntax": "anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <length-percentage> = <length> | <percentage>" }, "asin": { @@ -3629,8 +3714,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-13" + "level": "HIGH", + "lowDate": "2023-03-13", + "highDate": "2025-09-13" }, "doc": "The asin() CSS function is a trigonometric function that returns the inverse sine of a number between -1 and 1. The function contains a single calculation that returns the number of radians representing an <angle> between -90deg and 90deg.", "formalSyntax": "asin( <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" @@ -3651,8 +3737,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-13" + "level": "HIGH", + "lowDate": "2023-03-13", + "highDate": "2025-09-13" }, "doc": "The atan() CSS function is a trigonometric function that returns the inverse tangent of a number between -∞ and +∞. The function contains a single calculation that returns the number of radians representing an <angle> between -90deg and 90deg.", "formalSyntax": "atan( <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" @@ -3673,8 +3760,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-13" + "level": "HIGH", + "lowDate": "2023-03-13", + "highDate": "2025-09-13" }, "doc": "The atan2() CSS function is a trigonometric function that returns the inverse tangent of two values between -infinity and infinity. The function accepts two arguments and returns the number of radians representing an <angle> between -180deg and 180deg.", "formalSyntax": "atan2( <calc-sum> , <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" @@ -3700,7 +3788,7 @@ "highDate": "2018-01-29" }, "doc": "

\n

Note:\nThe attr() function can be used with any CSS property, but support for properties other than content is experimental.\n

\n

The attr() CSS function is used to retrieve the value of an attribute of the selected element and use it in a property value, similar to how the var() function substitutes a custom property value. It can also be used with pseudo-elements, in which case the attribute's value on the pseudo-element's originating element is returned.", - "formalSyntax": "attr( <attr-name> <attr-type>? , <declaration-value>? )\n  <attr-name> = [ <ident-token>? '|' ]? <ident-token>\n  <attr-type> = type( <syntax> ) | raw-string | <attr-unit>\n  <syntax> = '*' | <syntax-component> [ <syntax-combinator> <syntax-component> ]* | <syntax-string>\n  <syntax-component> = <syntax-single-component> <syntax-multiplier>? | '<' transform-list '>'\n  <syntax-combinator> = '|'\n  <syntax-string> = <string>\n  <syntax-single-component> = '<' <syntax-type-name> '>' | <ident>\n  <syntax-multiplier> = '#' | '+'\n  <syntax-type-name> = angle | color | custom-ident | image | integer | length | length-percentage | number | percentage | resolution | string | time | url | transform-function" + "formalSyntax": "attr( <attr-name> <attr-type>? , <declaration-value>? )\n  <attr-name> = [ <ident-token>? '|' ]? <ident-token>\n  <attr-type> = type( <syntax> ) | raw-string | number | <attr-unit>\n  <syntax> = '*' | <syntax-component> [ <syntax-combinator> <syntax-component> ]* | <syntax-string>\n  <syntax-component> = <syntax-single-component> <syntax-multiplier>? | '<' transform-list '>'\n  <syntax-combinator> = '|'\n  <syntax-string> = <string>\n  <syntax-single-component> = '<' <syntax-type-name> '>' | <ident>\n  <syntax-multiplier> = '#' | '+'\n  <syntax-type-name> = angle | color | custom-ident | image | integer | length | length-percentage | number | percentage | resolution | string | time | url | transform-function" }, "blur": { "url": "$MDN_URL$/web/css/filter-function/blur", @@ -3790,7 +3878,7 @@ "level": "NONE" }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calc-size() CSS function allows you to perform calculations on intrinsic size values such as auto, fit-content, and max-content; this is not supported by the regular calc() function.\n

calc-size() return values can also be interpolated, enabling size keyword values to be used in animations and transitions. In effect, including calc-size() in a property value automatically applies interpolate-size: allow-keywords to the selection.\n

Note however that interpolate-size is inherited, therefore applying it to an element enables interpolation of intrinsic size keywords for every property applied to that element and its children. As a result, interpolate-size is the preferred solution for enabling intrinsic size animations. You should only use calc-size() to enable intrinsic size animations if they also require calculations.", - "formalSyntax": "calc-size( <calc-size-basis> , <calc-sum> )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" + "formalSyntax": "calc-size( <calc-size-basis> , <calc-sum> )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, "circle": { "url": "$MDN_URL$/web/css/basic-shape/circle", @@ -3812,7 +3900,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The circle() CSS function defines a circle using a radius and a position. It is one of the <basic-shape> data types.", + "doc": "The circle() CSS function defines a circle using a radius and a position. It is one of the <basic-shape> data types.", "formalSyntax": "circle( <radial-size>? [ at <position> ]? )\n  <radial-size> = <radial-extent> | <length [0,∞]> | <length-percentage [0,∞]>{2}\n  <position> = [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right ] && [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]\n  <radial-extent> = closest-corner | closest-side | farthest-corner | farthest-side\n  <length-percentage> = <length> | <percentage>", "values": { "<shape-radius>": "This may be a <length>, or a <percentage> or values closest-side and farthest-side.\n

\n
closest-side
\n
\n

Uses the length from the center of the shape to the closest side of the reference box. For circles, this is the closest side in any dimension.\n

\n
farthest-side
\n
\n

Uses the length from the center of the shape to the farthest side of the reference box. For circles, this is the farthest side in any dimension.\n

\n
", @@ -3839,7 +3927,7 @@ "lowDate": "2020-07-28", "highDate": "2023-01-28" }, - "doc": "The clamp() CSS function clamps a middle value within a range of values between a defined minimum bound and a maximum bound. The function takes three parameters: a minimum value, a preferred value, and a maximum allowed value.", + "doc": "The clamp() CSS function clamps a value within a range of values between a defined minimum bound and a maximum bound. The function takes three parameters: a minimum value, a preferred value, and a maximum allowed value.", "formalSyntax": "clamp( [ <calc-sum> | none ] , <calc-sum> , [ <calc-sum> | none ] )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, "color": { @@ -3862,7 +3950,7 @@ "lowDate": "2023-05-09" }, "doc": "The color() functional notation allows a color to be specified in a particular, specified color space rather than the implicit sRGB color space that most of the other color functions operate in.\n

Support for a particular color space can be detected with the color-gamut CSS media feature.", - "formalSyntax": "color( [ from <color> ]? <colorspace-params> [ / [ <alpha-value> | none ] ]? )\n  <colorspace-params> = <predefined-rgb-params> | <xyz-params>\n  <alpha-value> = <number> | <percentage>\n  <predefined-rgb-params> = <predefined-rgb> [ <number> | <percentage> | none ]{3}\n  <xyz-params> = <xyz-space> [ <number> | <percentage> | none ]{3}\n  <predefined-rgb> = srgb | srgb-linear | display-p3 | a98-rgb | prophoto-rgb | rec2020 | rec2100-pq | rec2100-hlg | rec2100-linear\n  <xyz-space> = xyz | xyz-d50 | xyz-d65", + "formalSyntax": "color( <colorspace-params> [ / [ <alpha-value> | none ] ]? )\n  <colorspace-params> = <predefined-rgb-params> | <xyz-params>\n  <alpha-value> = <number> | <percentage>\n  <predefined-rgb-params> = <predefined-rgb> [ <number> | <percentage> | none ]{3}\n  <xyz-params> = <xyz-space> [ <number> | <percentage> | none ]{3}\n  <predefined-rgb> = srgb | srgb-linear | display-p3 | display-p3-linear | a98-rgb | prophoto-rgb | rec2020 | rec2100-pq | rec2100-hlg | rec2100-linear\n  <xyz-space> = xyz | xyz-d50 | xyz-d65", "values": { "colorspace": "An <ident> denoting one of the predefined color spaces: srgb, srgb-linear, display-p3, a98-rgb, prophoto-rgb, rec2020, xyz, xyz-d50, or xyz-d65.

An <ident> denoting the color space of the output color, generally one of the predefined color spaces: srgb, srgb-linear, display-p3, a98-rgb, prophoto-rgb, rec2020, xyz, xyz-d50, or xyz-d65.", "c1, c2, c3": "Each value can be written as a <number>, a <percentage>, or the keyword none (equivalent to 0 in this case). These values represent the component values for the colorspace. When using a <number> value, generally, 0 to 1 represents the bounds of the color space. Values outside of that range are permitted but will be out of gamut for the given color space. When using a percentage value, 100% represents 1 and 0% represents 0.

Each value can be written as a <number>, a <percentage>, or the keyword none (equivalent to 0 in this case). These values represent the component values for the output color. When using a <number> value, generally 0 to 1 represents the bounds of the color space. Values outside of that range are permitted but will be out of gamut for the given color space. Generally, when using a percentage value, 100% represents 1 and 0% represents 0.", @@ -3889,8 +3977,8 @@ "level": "LOW", "lowDate": "2023-05-09" }, - "doc": "The color-mix() functional notation takes two <color> values and returns the result of mixing them in a given colorspace by a given amount.\n

Choosing the correct color space is important for producing desired results. Given the same colors to mix, different color spaces may be more appropriate depending on the interpolation use case.\n

", - "formalSyntax": "color-mix( <color-interpolation-method> , [ <color> && <percentage [0,100]>? ]#{2} )\n  <color-interpolation-method> = in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | xyz | xyz-d50 | xyz-d65\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue", + "doc": "The color-mix() functional notation takes two <color> values and returns the result of mixing them in a given colorspace by a given amount.\n

Choosing the correct color space is important for producing desired results. Given the same colors to mix, different color spaces may be more appropriate depending on the interpolation use case.\n

", + "formalSyntax": "color-mix( <color-interpolation-method>? , [ <color> && <percentage [0,100]>? ]# )\n  <color-interpolation-method> = in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | display-p3-linear | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | <xyz-space>\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue\n  <xyz-space> = xyz | xyz-d50 | xyz-d65", "values": { "<color-interpolation-method>": "Specifies what interpolation method should be used to mix the colors. It consists of the in keyword followed by a color space name. The following three types are available:\n\n
\n

Note:\nWhen browsers support @color-profile, custom color spaces may be supported. Currently, the color space must be one of the available color spaces listed in the formal_syntax.\n

", "<color>": "A <color> value to mix.", @@ -3918,7 +4006,7 @@ "highDate": "2023-05-17" }, "doc": "The conic-gradient() CSS function creates an image consisting of a gradient with color transitions rotated around a center point (rather than radiating from the center). Example conic gradients include pie charts and color wheels. The result of the conic-gradient() function is an object of the <gradient> data type, which is a special kind of <image>.", - "formalSyntax": "conic-gradient( [ <conic-gradient-syntax> ] )\n  <conic-gradient-syntax> = [ [ [ from [ <angle> | <zero> ] ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <angular-color-stop-list>\n  <position> = [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right ] && [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]\n  <color-interpolation-method> = in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <angular-color-stop-list> = <angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#?\n  <length-percentage> = <length> | <percentage>\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | xyz | xyz-d50 | xyz-d65\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue\n  <angular-color-stop> = <color> <color-stop-angle>?\n  <angular-color-hint> = <angle-percentage> | <zero>\n  <color-stop-angle> = [ <angle-percentage> | <zero> ]{1,2}\n  <angle-percentage> = <angle> | <percentage>", + "formalSyntax": "conic-gradient( [ <conic-gradient-syntax> ] )\n  <conic-gradient-syntax> = [ [ [ from [ <angle> | <zero> ] ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <angular-color-stop-list>\n  <position> = [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right ] && [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]\n  <color-interpolation-method> = in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <angular-color-stop-list> = <angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#?\n  <length-percentage> = <length> | <percentage>\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | display-p3-linear | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | <xyz-space>\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue\n  <angular-color-stop> = <color> <color-stop-angle>?\n  <angular-color-hint> = <angle-percentage> | <zero>\n  <xyz-space> = xyz | xyz-d50 | xyz-d65\n  <color-stop-angle> = [ <angle-percentage> | <zero> ]{1,2}\n  <angle-percentage> = <angle> | <percentage>", "values": { "<angle>": "Preceded by the from keyterm, and taking an angle as its value, defines the gradient rotation in clockwise direction.", "<position>": "Using the same length, order, and keyterm values as the background-position property, the position value defines center of the gradient. If not specified, the value used for position by default is center, meaning the gradient will be centered.", @@ -3952,6 +4040,21 @@ "amount": "The contrast of the result, specified as a <number> or a <percentage>. A value under 100% decreases the contrast, while a value over 100% increases it. A value of 0 or 0% will create an image that is completely gray, while a value of 1 or 100% leaves the input unchanged. Negative values are not allowed. The initial value for interpolation is 1. The default value is 1." } }, + "contrast-color": { + "url": "$MDN_URL$/web/css/color_value/contrast-color", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Safari": "26", + "SafariIOS": "26" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The contrast-color() CSS function takes a color value and returns a guaranteed contrasting color.\n

contrast-color() makes it easy, for example, to specify a text color and automatically generate a contrasting background color, or vice versa. It avoids the need to maintain background-text color pairs." + }, "cos": { "url": "$MDN_URL$/web/css/cos", "status": [ @@ -3968,8 +4071,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-13" + "level": "HIGH", + "lowDate": "2023-03-13", + "highDate": "2025-09-13" }, "doc": "The cos() CSS function is a trigonometric function that returns the cosine of a number, which is a value between -1 and 1. The function contains a single calculation that must resolve to either a <number> or an <angle> by interpreting the result of the argument as radians. That is, cos(45deg), cos(0.125turn), and cos(3.14159 / 4) all represent the same value, approximately 0.707.", "formalSyntax": "cos( <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" @@ -4104,6 +4208,21 @@ "doc": "The drop-shadow() CSS function applies a drop shadow effect to the input image. Its result is a <filter-function>.", "formalSyntax": "drop-shadow( [ <color>? && <length>{2,3} ] )" }, + "dynamic-range-limit-mix": { + "url": "$MDN_URL$/web/css/dynamic-range-limit-mix", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "ChromeAndroid": "136", + "Edge": "136", + "Opera": "121" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The dynamic-range-limit-mix() CSS function creates a custom maximum luminance limit by mixing different dynamic-range-limit keywords in specified amounts.", + "formalSyntax": "dynamic-range-limit-mix( [ <'dynamic-range-limit'> && <percentage [0,100]> ]#{2,} )\n  <dynamic-range-limit> = standard | no-limit | constrained | <dynamic-range-limit-mix()>" + }, "element": { "url": "$MDN_URL$/web/css/element", "status": [ @@ -4164,13 +4283,8 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The env() CSS function can be used to insert the value of a user-agent defined environment variable into your CSS, in a similar fashion to the var() function and custom properties. The difference is that, as well as being user-agent defined rather than author-defined, environment variables are globally scoped to a document, whereas custom properties are scoped to the element(s) on which they are declared.\n

In addition, unlike custom properties, which cannot be used outside of declarations, the env() function can be used in place of any part of a property value, or any part of a descriptor (e.g., in Media query rules). As the spec evolves, it may also be usable in other places such as selectors.\n

Originally provided by the iOS browser to allow developers to place their content in a safe area of the viewport, the safe-area-inset-* values defined in the specification can be used to help ensure content is visible even to viewers using non‑rectangular displays.\n

For example, a common issue solved by env() is that of device notifications covering up some of the app user interface. By positioning fixed elements using env() you can ensure that they display in a safe area of the viewport.\n

Another use case for env() variables is for desktop Progressive web apps (PWAs) that use the Window Controls Overlay feature to take advantage of the full application window surface area. Using the titlebar-area-* values, they can position elements where the title bar would have been and ensure that content stays clear of the window control buttons.", - "formalSyntax": "env( <custom-ident> <integer [0,∞]>* , <declaration-value>? )", - "values": { - "safe-area-inset-top
\nsafe-area-inset-right
\nsafe-area-inset-bottom
\nsafe-area-inset-left": "The safe-area-inset-* variables are four environment variables that define a rectangle by its top, right, bottom, and left insets from the edge of the viewport, which is safe to put content into without risking it being cut off by the shape of a non‑rectangular display. For rectangular viewports, like your average laptop monitor, their value is equal to zero. For non-rectangular displays — like a round watch face — the four values set by the user agent form a rectangle such that all content inside the rectangle is visible.", - "titlebar-area-x
\ntitlebar-area-y
\ntitlebar-area-width
\ntitlebar-area-height": "The titlebar-area-* variables are useful for PWA installed on Desktop devices. When a desktop PWA uses the window-controls-overlay display_override value, then it can use the titlebar-area-* variables to make sure content doesn't overlap with the window control buttons (i.e., minimize, maximize, and close).", - "keyboard-inset-top
\nkeyboard-inset-right
\nkeyboard-inset-bottom
\nkeyboard-inset-left
\nkeyboard-inset-width
\nkeyboard-inset-height": "The keyboard-inset-* variables provide information about the on-screen virtual keyboard's appearance. They define a rectangle by its top, right, bottom, and left insets from the edge of the viewport (the width and height insets are calculated from the other insets). To learn more, see the VirtualKeyboard API." - } + "doc": "The env() CSS function can be used to insert the value of a user-agent defined environment variable into your CSS.", + "formalSyntax": "env( <custom-ident> <integer [0,∞]>* , <declaration-value>? )" }, "exp": { "url": "$MDN_URL$/web/css/exp", @@ -4191,7 +4305,7 @@ "level": "LOW", "lowDate": "2023-12-07" }, - "doc": "The exp() CSS function is an exponential function that takes an number as an argument and returns the mathematical constant e raised to the power of the given number.\n

The mathematical constant e is the base of natural logarithms, and is approximately 2.718281828459045.\n

The exp(number) function contains a calculation which returns the same value as pow(e, number).", + "doc": "The exp() CSS function is an exponential function that takes a number as an argument and returns the mathematical constant e raised to the power of the given number.\n

The mathematical constant e is the base of natural logarithms, and is approximately 2.718281828459045.\n

The exp(number) function contains a calculation which returns the same value as pow(e, number).", "formalSyntax": "exp( <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, "fit-content": { @@ -4292,7 +4406,7 @@ "lowDate": "2016-09-07", "highDate": "2019-03-07" }, - "doc": "The hue-rotate() CSS function rotates the hue of an element and its contents. Its result is a <filter-function>.\n

\n

Note: hue-rotate() is specified as a matrix operation on the RGB color. It does not actually convert the color to the HSL model, which is a non-linear operation. Therefore, it may not preserve the saturation or lightness of the original color, especially for saturated colors.\n

", + "doc": "The hue-rotate() CSS function rotates the hue of an element and its contents. Its result is a <filter-function>.\n
\n

Note:\nhue-rotate() is specified as a matrix operation on the RGB color. It does not actually convert the color to the HSL model, which is a non-linear operation. Therefore, it may not preserve the saturation or lightness of the original color, especially for saturated colors.\n

", "formalSyntax": "hue-rotate( [ <angle> | <zero> ]? )", "values": { "angle": "The relative change in hue of the input sample, specified as an <angle>. A value of 0deg leaves the input unchanged. A positive hue rotation increases the hue value, while a negative rotation decreases the hue value. The initial value for interpolation is 0. There is no minimum or maximum value. The effect of values above 360deg are, given hue-rotate(Ndeg), evaluates to N modulo 360. The default value is 0deg." @@ -4343,6 +4457,23 @@ "doc": "The hypot() CSS function is an exponential function that returns the square root of the sum of squares of its parameters.\n

While pow() and sqrt() only work on unitless numbers, hypot() accepts values with units, but they all must have the same type.", "formalSyntax": "hypot( <calc-sum># )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, + "if": { + "url": "$MDN_URL$/web/css/if", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "137", + "ChromeAndroid": "137", + "Edge": "137", + "Opera": "121" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The if() CSS function allows different values to be set for a property depending on the result of a conditional test. The test can be based on a style query, a media query, or a feature query." + }, "image": { "url": "$MDN_URL$/web/css/image/image", "status": [ @@ -4612,7 +4743,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The matrix() CSS function defines a homogeneous 2D transformation matrix. Its result is\na <transform-function> data type.", + "doc": "The matrix() CSS function defines a homogeneous 2D transformation matrix. Its result is\na <transform-function> data type.\n

\n

Note:\nThe matrix(a, b, c, d, tx, ty) function is a shorthand for matrix3d(a, b, 0, 0, c, d, 0, 0, 0, 0, 1, 0, tx, ty, 0, 1).\n

", "formalSyntax": "matrix( <number>#{6} )", "values": { "a b c d": "Are <number>s describing the linear transformation.", @@ -4889,7 +5020,7 @@ "doc": "The perspective() CSS function defines a transformation that sets the distance between the\nuser and the z=0 plane, the perspective from which the viewer would be if the 2-dimensional interface were\n3-dimensional. Its result is a <transform-function> data type.", "formalSyntax": "perspective( [ <length [0,∞]> | none ] )", "values": { - "d": "Is a <length> representing the distance from the user to the z=0 plane. If it is 0 or a\nnegative value, no perspective transform is applied." + "d": "Is a <length> representing the distance from the user to the z=0 plane. The z=0 plane is the plane where everything appears in a 2-dimensional view, or the screen. Values smaller than 1px (including zero) are clamped to 1px. Negative values are syntax errors.\n

Values other than none cause elements with positive z positions to appear larger, and elements with negative z positions to appear smaller. Elements with z positions equal to or larger than the perspective value disappear as though they are behind the user. Large values of perspective represent a small transformation; small values of perspective() represent a large transformation; perspective(none) represents perspective from infinite distance and no transformation." } }, "polygon": { @@ -4937,6 +5068,21 @@ "doc": "The pow() CSS function is an exponential function that returns the value of a base raised to the power of a number.\n

The exp() function is a special case of pow() where the value of the base is the mathematical constant e.", "formalSyntax": "pow( <calc-sum> , <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, + "progress": { + "url": "$MDN_URL$/web/css/progress", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The progress() CSS function returns a <number> value representing the position of one value (the progress value) relative to two other values (the progress start and end values).", + "formalSyntax": "progress( <calc-sum> , <calc-sum> , <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" + }, "radial-gradient": { "url": "$MDN_URL$/web/css/gradient/radial-gradient", "status": [ @@ -4995,13 +5141,18 @@ "StandardTrack" ], "compatibility": { + "Chrome": "119", + "ChromeAndroid": "119", + "Edge": "119", "Firefox": "122", "FirefoxAndroid": "122", + "Opera": "105", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2024-01-23" }, "doc": "The rect() CSS function creates a rectangle at the specified distance from the top and left edges of the containing block. It is a basic shape function of the <basic-shape> data type. You can use the rect() function in CSS properties such as offset-path to create the rectangular path along which an element moves and in clip-path to define the shape of the clipping region.", "formalSyntax": "rect( <top> , <right> , <bottom> , <left> )", @@ -5090,7 +5241,7 @@ "highDate": "2023-05-17" }, "doc": "The repeating-conic-gradient() CSS function creates an image consisting of a repeating gradient (rather than a single gradient) with color transitions rotated around a center point (rather than radiating from the center).", - "formalSyntax": "repeating-conic-gradient( [ <conic-gradient-syntax> ] )\n  <conic-gradient-syntax> = [ [ [ from [ <angle> | <zero> ] ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <angular-color-stop-list>\n  <position> = [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right ] && [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]\n  <color-interpolation-method> = in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <angular-color-stop-list> = <angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#?\n  <length-percentage> = <length> | <percentage>\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | xyz | xyz-d50 | xyz-d65\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue\n  <angular-color-stop> = <color> <color-stop-angle>?\n  <angular-color-hint> = <angle-percentage> | <zero>\n  <color-stop-angle> = [ <angle-percentage> | <zero> ]{1,2}\n  <angle-percentage> = <angle> | <percentage>", + "formalSyntax": "repeating-conic-gradient( [ <conic-gradient-syntax> ] )\n  <conic-gradient-syntax> = [ [ [ from [ <angle> | <zero> ] ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <angular-color-stop-list>\n  <position> = [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right ] && [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]\n  <color-interpolation-method> = in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <angular-color-stop-list> = <angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#?\n  <length-percentage> = <length> | <percentage>\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | display-p3-linear | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | <xyz-space>\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue\n  <angular-color-stop> = <color> <color-stop-angle>?\n  <angular-color-hint> = <angle-percentage> | <zero>\n  <xyz-space> = xyz | xyz-d50 | xyz-d65\n  <color-stop-angle> = [ <angle-percentage> | <zero> ]{1,2}\n  <angle-percentage> = <angle> | <percentage>", "values": { "<angle>": "Preceded by the from keyterm, and taking an angle as its value, defines the gradient rotation in clockwise direction.", "<position>": "Using the same length, order and keyterm values as the background-position property, the position defines center of the gradient. If omitted, the default value is center, meaning the gradient will be centered.", @@ -5207,7 +5358,7 @@ "doc": "The rotate() CSS function defines a transformation that rotates an element around a\nfixed point on the 2D plane, without deforming it. Its result is a <transform-function> data\ntype.", "formalSyntax": "rotate( [ <angle> | <zero> ] )", "values": { - "a": "Is an <angle> representing the angle of the rotation. The direction of rotation depends on the writing direction.\nIn a left-to-right context, a positive angle denotes a clockwise rotation, a negative angle a counter-clockwise one. In a right-to-left context,\na positive angle denotes a counter-clockwise rotation, a negative angle a clockwise one." + "a": "Is an <angle> representing the angle of the rotation. The direction of rotation depends on the writing direction.\nIn a left-to-right context, a positive angle denotes a clockwise rotation, a negative angle a counter-clockwise one. In a right-to-left context,\na positive angle denotes a counter-clockwise rotation, a negative angle a clockwise one. A rotation by 180° is called point reflection." } }, "rotate3d": { @@ -5359,7 +5510,7 @@ "lowDate": "2016-09-07", "highDate": "2019-03-07" }, - "doc": "The saturate() CSS function super-saturates or desaturates the input image. Its result is a <filter-function>.\n

\n

Note: saturate() is specified as a matrix operation on the RGB color. It does not actually convert the color to the HSL model, which is a non-linear operation. Therefore, it may not preserve the hue or lightness of the original color.\n

", + "doc": "The saturate() CSS function super-saturates or desaturates the input image. Its result is a <filter-function>.\n
\n

Note:\nsaturate() is specified as a matrix operation on the RGB color. It does not actually convert the color to the HSL model, which is a non-linear operation. Therefore, it may not preserve the hue or lightness of the original color.\n

", "formalSyntax": "saturate( [ <number> | <percentage> ]? )" }, "scale": { @@ -5538,19 +5689,58 @@ "doc": "The shape() CSS function is used to define a shape for the clip-path and offset-path properties. It combines an initial starting point with a series of shape commands that define the path of the shape. The shape() function is a member of the <basic-shape> data type.", "formalSyntax": "shape( <'fill-rule'>? from <position> , <shape-command># )\n  <fill-rule> = nonzero | evenodd\n  <position> = [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right ] && [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]\n  <shape-command> = <move-command> | <line-command> | close | <horizontal-line-command> | <vertical-line-command> | <curve-command> | <smooth-command> | <arc-command>\n  <length-percentage> = <length> | <percentage>\n  <move-command> = move <command-end-point>\n  <line-command> = line <command-end-point>\n  <horizontal-line-command> = hline [ to [ <length-percentage> | left | center | right | x-start | x-end ] | by <length-percentage> ]\n  <vertical-line-command> = vline [ to [ <length-percentage> | top | center | bottom | y-start | y-end ] | by <length-percentage> ]\n  <curve-command> = curve [ [ to <position> with <control-point> [ / <control-point> ]? ] | [ by <coordinate-pair> with <relative-control-point> [ / <relative-control-point> ]? ] ]\n  <smooth-command> = smooth [ [ to <position> [ with <control-point> ]? ] | [ by <coordinate-pair> [ with <relative-control-point> ]? ] ]\n  <arc-command> = arc <command-end-point> [ [ of <length-percentage>{1,2} ] && <arc-sweep>? && <arc-size>? && [ rotate <angle> ]? ]\n  <command-end-point> = to <position> | by <coordinate-pair>\n  <control-point> = <position> | <relative-control-point>\n  <coordinate-pair> = <length-percentage>{2}\n  <relative-control-point> = <coordinate-pair> [ from [ start | end | origin ] ]?\n  <arc-sweep> = cw | ccw\n  <arc-size> = large | small" }, + "sibling-count": { + "url": "$MDN_URL$/web/css/sibling-count", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The sibling-count() CSS function returns an integer representing the total number of sibling DOM elements (direct children of the parent) of the element on which it is used, including itself.\n

\n

Note:\nThe counter() function provides a similar result but it returns a <string>, while sibling-count() returns an <integer> which can be used for calculations.\n

" + }, + "sibling-index": { + "url": "$MDN_URL$/web/css/sibling-index", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The sibling-index() CSS function returns an integer representing the position of the current element in the DOM tree relative to all its sibling elements. The returned value is the index number of the contextual child's position among all the sibling elements within a parent element, with the first child returning 1 and the last child, returning Element.children.length." + }, "sign": { "url": "$MDN_URL$/web/css/sign", "status": [ "StandardTrack" ], "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", "Firefox": "118", "FirefoxAndroid": "118", + "Opera": "122", "Safari": "15.4", "SafariIOS": "15.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-26" }, "doc": "The sign() CSS function contains one calculation, and returns -1 if the numeric value of the argument is negative, +1 if the numeric value of the argument is positive, 0⁺ if the numeric value of the argument is 0⁺, and 0⁻ if the numeric value of the argument is 0⁻.\n

\n

Note:\nWhile abs() returns the absolute value of the argument, sign() returns the sign of the argument.\n

", "formalSyntax": "sign( <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" @@ -5571,8 +5761,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-13" + "level": "HIGH", + "lowDate": "2023-03-13", + "highDate": "2025-09-13" }, "doc": "The sin() CSS function is a trigonometric function that returns the sine of a number, which is a value between -1 and 1. The function contains a single calculation that must resolve to either a <number> or an <angle> by interpreting the result of the argument as radians. That is, sin(45deg), sin(0.125turn), and sin(3.14159 / 4) all represent the same value, approximately 0.707.", "formalSyntax": "sin( <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" @@ -5701,6 +5892,24 @@ "doc": "The steps() CSS function defines a transition that divides the input time into a specified number of intervals that are equal in length. This subclass of step functions are sometimes also called staircase functions.", "formalSyntax": "steps( <integer> , <step-position>? )\n  <step-position> = jump-start | jump-end | jump-none | jump-both | start | end" }, + "superellipse": { + "url": "$MDN_URL$/web/css/superellipse", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The superellipse() CSS function defines the curvature of an ellipse, and is used to specify corner shapes either directly, or via <corner-shape-value> keywords.", + "formalSyntax": "superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, "symbols": { "url": "$MDN_URL$/web/css/symbols", "status": [ @@ -5713,7 +5922,7 @@ "baseline": { "level": "NONE" }, - "doc": "The symbols() CSS function enables defining counter styles inline, directly as a value of properties such as list-style, providing a less powerful but simpler alternative to the @counter-style method of defining a counter style.\n

Unlike @counter-style, which defines a reusable counter style, symbols() is anonymous (i.e., it can only be used once). This function accepts strings and images as values. In comparison, the @counter-style's symbols descriptor also accepts identifiers.", + "doc": "The symbols() CSS function enables defining counter styles inline, directly as a value of properties such as list-style, providing a less powerful but simpler alternative to the @counter-style method of defining a counter style.\n

Unlike @counter-style, which defines a reusable counter style, symbols() is anonymous (i.e., it can only be used once). This function accepts strings and images as values. In comparison, the @counter-style's symbols descriptor also accepts identifiers.", "formalSyntax": "symbols( <symbols-type>? [ <string> | <image> ]+ )\n  <symbols-type> = cyclic | numeric | alphabetic | symbolic | fixed\n  <image> = <url> | <gradient>\n  <url> = <url()> | <src()>\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )" }, "tan": { @@ -5732,8 +5941,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-13" + "level": "HIGH", + "lowDate": "2023-03-13", + "highDate": "2025-09-13" }, "doc": "The tan() CSS function is a trigonometric function that returns the tangent of a number, which is a value between −infinity and infinity. The function contains a single calculation that must resolve to either a <number> or an <angle> by interpreting the result of the argument as radians.", "formalSyntax": "tan( <calc-sum> )\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" @@ -5891,10 +6101,10 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The url() CSS function is used to include a file. The parameter is an absolute URL, a relative URL, a blob URL, or a data URL. The url() function can be passed as a parameter of another CSS function, like the attr() function. Depending on the property for which it is a value, the resource sought can be an image, font, or a stylesheet. The url() functional notation is the value for the <url> data type.\n

\n

Note:\nThere is a difference between a URI and a URL. A URI identifies a resource. A URL is a type of URI, and describes the location of a resource. A URI can be either a URL or a name (URN) of a resource.\n

In CSS Level 1, the url() functional notation described only true URLs. In CSS Level 2, the definition of url() was extended to describe any URI, whether a URL or a URN. Confusingly, this meant that url() could be used to create a <uri> CSS data type. This change was not only awkward but, debatably, unnecessary, since URNs are almost never used in actual CSS. To alleviate the confusion, CSS Level 3 returned to the narrower, initial definition. Now, url() denotes only true <url>s.\n

\n
\n```css\n/* Basic usage */\nurl(\"https://example.com/images/myImg.jpg\");\nurl('https://example.com/images/myImg.jpg');\nurl(https://example.com/images/myImg.jpg);\nurl(\"data:image/jpeg;base64,iRxVB0…\");\nurl(myImg.jpg);\nurl(#IDofSVGpath);\n/* associated properties */\nbackground-image: url(\"star.gif\");\nlist-style-image: url('../images/bullet.jpg');\ncontent: url(\"my-icon.jpg\");\ncursor: url(my-cursor.cur);\nborder-image-source: url(/media/diamonds.png);\nsrc: url('fantastic-font.woff');\noffset-path: url(#path);\nmask-image: url(\"masks.svg#mask1\");\n/* Properties with fallbacks */\ncursor: url(pointer.cur), pointer;\n/* Associated short-hand properties */\nbackground: url('star.gif') bottom right repeat-x blue;\nborder-image: url(\"/media/diamonds.png\") 30 fill / 30px / 30px space;\n/* As a parameter in another CSS function */\nbackground-image: cross-fade(20% url(first.png), url(second.png));\nmask-image: image(url(mask.png), skyblue, linear-gradient(rgb(0 0 0 / 100%), transparent));\n/* as part of a non-shorthand multiple value */\ncontent: url(star.svg) url(star.svg) url(star.svg) url(star.svg) url(star.svg);\n/* at-rules */\n@document url(\"https://www.example.com/\") { /* … */ }\n@import url(\"https://www.example.com/style.css\");\n@namespace url(http://www.w3.org/1999/xhtml);\n```\n
\n

Relative URLs, if used, are relative to the URL of the stylesheet (not to the URL of the web page).\n

The url() function can be included as a value for\nbackground, background-image, border, border-image, border-image-source, content, cursor, filter, list-style, list-style-image, mask, mask-image, offset-path, clip-path,\nsrc as part of a @font-face block, and @counter-style/symbol", + "doc": "The url() CSS function is used to include a file. The parameter is an absolute URL, a relative URL, a blob URL, or a data URL. The url() function can be passed as a parameter of another CSS function, like the attr() function. Depending on the property for which it is a value, the resource sought can be an image, font, or a stylesheet. The url() functional notation is the value for the <url> data type.\n

\n

Note:\nThere is a difference between a URI and a URL. A URI identifies a resource. A URL is a type of URI, and describes the location of a resource. A URI can be either a URL or a name (URN) of a resource.\n

In CSS Level 1, the url() functional notation described only true URLs. In CSS Level 2, the definition of url() was extended to describe any URI, whether a URL or a URN. Confusingly, this meant that url() could be used to create a <uri> CSS data type. This change was not only awkward but, debatably, unnecessary, since URNs are almost never used in actual CSS. To alleviate the confusion, CSS Level 3 returned to the narrower, initial definition. Now, url() denotes only true <url>s.\n

\n

Relative URLs, if used, are relative to the URL of the stylesheet (not to the URL of the web page).\n

The url() function can be included as a value for\nbackground, background-image, border, border-image, border-image-source, content, cursor, filter, list-style, list-style-image, mask, mask-image, offset-path, clip-path,\nsrc as part of a @font-face block, and @counter-style/symbol", "formalSyntax": "url( <string> <url-modifier>* ) | <url-token>", "values": { - "<string>": "A string that may specify a URL or the ID of an SVG shape.\n

\n
url
\n
\n

A URL, which is a relative or absolute address, or pointer, to the web resource to be included, or a data URL, optionally in single or double quotes. Quotes are required if the URL includes parentheses, whitespace, or quotes, unless these characters are escaped, or if the address includes control characters above 0x7e. Double quotes cannot occur inside double quotes and single quotes cannot occur inside single quotes unless escaped. The following are all valid and equivalent:\n

\n```css\nurl(\"https://example.com/image.png\")\nurl('https://example.com/image.png')\nurl(https://example.com/image.png)\n```\n
\n

If you choose to write the URL without quotes, use a backslash (\\) before any parentheses, whitespace characters, single quotes (') and double quotes (\") that are part of the URL.\n

\n
path
\n
\n

References the ID of an SVG shape or an SVG filter.\n

\n
", + "<string>": "A string specifying a URL, which is a relative or absolute address, or pointer, to the web resource to be included, or a data URL. You can also use a hash URL to reference the ID of an SVG shape or an SVG filter.\n

The quotes are generally optional—they are required if the URL includes parentheses, whitespace, or quotes (unless these characters are escaped), or if the address includes control characters above 0x7e. Normal string syntax rules apply: double quotes cannot occur inside double quotes and single quotes cannot occur inside single quotes unless escaped.", "<url-modifier>": "In the future, the url() function may support specifying a modifier, an identifier or a functional notation, which alters the meaning of the URL string. This is not supported and not fully defined in the specification." } }, @@ -5922,7 +6132,7 @@ "formalSyntax": "var( <custom-property-name> , <declaration-value>? )", "values": { "<custom-property-name>": "A custom property's name represented by an identifier that starts with two dashes. Custom properties are solely for use by authors and users; CSS will never give them a meaning beyond what is presented here.", - "<declaration-value>": "The custom property's fallback value, which is used in case the custom property is not defined or equals a CSS-wide keyword. This value may contain any character except some characters with special meaning like newlines, unmatched closing brackets, i.e., ), ], or }, top-level semicolons, or exclamation marks. The fallback value can itself be a custom property using the var() syntax. If the fallback value is omitted, and the custom property is not defined, the var() function resolves to an invalid value.\n

\n

Note: var(--a,) is valid, specifying that if the --a custom property is not defined or equals a CSS-wide keyword, the var() should be replaced with nothing.\n

" + "<declaration-value>": "The custom property's fallback value, which is used in case the custom property is not defined or equals a CSS-wide keyword. This value may contain any character except some characters with special meaning like newlines, unmatched closing brackets, i.e., ), ], or }, top-level semicolons, or exclamation marks. The fallback value can itself be a custom property using the var() syntax. If the fallback value is omitted, and the custom property is not defined, the var() function resolves to an invalid value.\n
\n

Note:\nvar(--a,) is valid, specifying that if the --a custom property is not defined or equals a CSS-wide keyword, the var() should be replaced with nothing.\n

" } }, "xywh": { @@ -5931,13 +6141,18 @@ "StandardTrack" ], "compatibility": { + "Chrome": "119", + "ChromeAndroid": "119", + "Edge": "119", "Firefox": "122", "FirefoxAndroid": "122", + "Opera": "105", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2024-01-23" }, "doc": "The xywh() CSS function creates a rectangle using the specified distances from the left (x) and top (y) edges of the containing block and the specified width (w) and height (h) of the rectangle. It is a basic shape function of the <basic-shape> data type. You can use the xywh() function in CSS properties such as offset-path to create the rectangular path along which an element moves and in clip-path to define the shape of the clipping region.", "formalSyntax": "xywh( <length-percentage>{2} <length-percentage [0,∞]>{2} [ round <'border-radius'> ]? )\n  <length-percentage> = <length> | <percentage>\n  <border-radius> = <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]?", @@ -5969,7 +6184,7 @@ "lowDate": "2017-04-05", "highDate": "2019-10-05" }, - "doc": "Property names that are prefixed with --, like --example-name, represent custom properties that contain a value that can be used in other declarations using the var() function.\n

Custom properties are scoped to the element(s) they are declared on, and participate in the cascade: the value of such a custom property is that from the declaration decided by the cascading algorithm.\n

Initial valuesee prose
Applies toall elements
Inheritedyes
Computed valueas specified with variables substituted
Animation typediscrete
" + "doc": "Property names that are prefixed with --, like --example-name, represent custom properties that contain a value that can be used in other declarations using the var() function.\n

Custom properties are scoped to the element(s) they are declared on, and participate in the cascade: the value of such a custom property is that from the declaration decided by the cascading algorithm.\n

Initial valuesee prose
Applies toall elements
Inheritedyes
Computed valueas specified with variables substituted
Animation typediscrete
" }, "-moz-float-edge": { "url": "$MDN_URL$/web/css/-moz-float-edge", @@ -5980,7 +6195,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness.", "formalSyntax": "content-box | margin-box", "values": { "content-box": "The height and width properties include the content, but not the padding, border or margin.", @@ -5996,29 +6211,19 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute.", "formalSyntax": "<integer>", "values": { "<integer>": "A value of 1 means that the broken image icon is shown even if the image has an alt attribute. When the value 0 is used, the image will act as usual and only display the alt attribute." } }, - "-moz-image-region": { - "url": "$MDN_URL$/web/css/-moz-image-region", - "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance.\n

The syntax is similar to the clip property. All four values are relative to the upper left corner of the image.", - "formalSyntax": "<shape> | auto", - "values": { - "auto": "Automatically defines the region of the image to use.", - "<shape>": "A shape defining the part of the image to use. The rect() function defines a rectangle to use as shape. Its parameters define the top, right, bottom, and left offsets of the edges of the image, in this order." - } - }, "-moz-orient": { "url": "$MDN_URL$/web/css/-moz-orient", "compatibility": { "Firefox": "6", "FirefoxAndroid": "6" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -moz-orient CSS property specifies the orientation of the element to which it's applied.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -moz-orient CSS property specifies the orientation of the element to which it's applied.", "formalSyntax": "inline | block | horizontal | vertical", "values": { "inline": "The element is rendered in the same direction as the axis of the text: horizontally for horizontal writing modes, vertically for vertical writing modes.", @@ -6033,7 +6238,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -moz-user-focus CSS property is used to indicate whether an element can have the focus.\n

By setting its value to ignore, you can disable focusing the element, which means that the user will not be able to activate the element, and the element will be skipped in the tab sequence.\nThe default is none, which disables focussing on the element and removes focus on other elements if there is an attempt to select the element.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -moz-user-focus CSS property is used to indicate whether an element can have the focus.\n

By setting its value to ignore, you can disable focusing the element, which means that the user will not be able to activate the element, and the element will be skipped in the tab sequence.\nThe default is none, which disables focussing on the element and removes focus on other elements if there is an attempt to select the element.", "formalSyntax": "ignore | normal | none", "values": { "ignore": "The element does not accept keyboard focus and will be skipped in the tab order.", @@ -6047,7 +6252,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

In Mozilla applications, -moz-user-input determines if an element will accept user input.\n

As of Firefox 60, this property can no longer grant an element the ability to accept user input if it normally does not. It may only be used to disable user input.\n

The user-input property is currently not on a standards track.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

In Mozilla applications, -moz-user-input determines if an element will accept user input.\n

As of Firefox 60, this property can no longer grant an element the ability to accept user input if it normally does not. It may only be used to disable user input.\n

The user-input property is currently not on a standards track.", "formalSyntax": "auto | none", "values": { "auto": "The element will respond to user input if it normally takes user input, such as a <textarea>.", @@ -6064,7 +6269,7 @@ "Safari": "5.1", "SafariIOS": "5" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -webkit-border-before CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -webkit-border-before CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet.", "formalSyntax": "<'border-width'> || <'border-style'> || <color>\n  <border-width> = <line-width>{1,4}\n  <border-style> = <line-style>{1,4}\n  <line-width> = <length [0,∞]> | thin | medium | thick\n  <line-style> = none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset", "values": { "<'border-width'>": "See border-width", @@ -6082,7 +6287,7 @@ "Safari": "4", "SafariIOS": "3.2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -webkit-box-reflect CSS property lets you reflect the content of an element in one specific direction.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -webkit-box-reflect CSS property lets you reflect the content of an element in one specific direction.", "formalSyntax": "[ above | below | right | left ]? <length>? <image>?\n  <image> = <url> | <gradient>\n  <url> = <url()> | <src()>\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )", "values": { "above
\nbelow
\nright
\nleft": "Are keywords indicating in which direction the reflection is to happen.", @@ -6100,7 +6305,7 @@ "Safari": "3.1", "SafariIOS": "2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The non-standard prefixed -webkit-mask-box-image shorthand property sets the mask image for an element's border box.\n

\n

Note:\nThis property is not standard and is not on any standards track. Consider using the mask-border property instead.\n

", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The non-standard prefixed -webkit-mask-box-image shorthand property sets the mask image for an element's border box.\n

\n

Note:\nThis property is not standard and is not on any standards track. Consider using the mask-border property instead.\n

", "formalSyntax": "<mask-image-source> [ <mask-image-offset>{4} <mask-border-repeat>{1,2} ]", "values": { "<image>": "The location of the image resource to be used as a mask image, <gradient>, or other <image> value.", @@ -6124,7 +6329,7 @@ "Safari": "3.1", "SafariIOS": "2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property.\n

\n

Note:\nThere is a standardized mask-composite property covering parts of this non-standard property using different keywords.\n

", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property.\n

\n

Note:\nThere is a standardized mask-composite property covering parts of this non-standard property using different keywords.\n

", "formalSyntax": "<composite-style>#", "values": { "clear": "Overlapping pixels in the source mask image and the destination mask image are cleared.", @@ -6152,7 +6357,7 @@ "Safari": "3.1", "SafariIOS": "2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -webkit-mask-position-x CSS property sets the initial horizontal position of a mask image.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -webkit-mask-position-x CSS property sets the initial horizontal position of a mask image.", "formalSyntax": "[ <length-percentage> | left | center | right ]#\n  <length-percentage> = <length> | <percentage>", "values": { "<length-percentage>": "A length indicating the position of the left edge of the image relative to the box's left padding edge. Percentages are calculated against the horizontal dimension of the box padding area. That means, a value of 0% means the left edge of the image is aligned with the box's left padding edge and a value of 100% means the right edge of the image is aligned with the box's right padding edge.", @@ -6173,7 +6378,7 @@ "Safari": "3.1", "SafariIOS": "2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -webkit-mask-position-y CSS property sets the initial vertical position of a mask image.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -webkit-mask-position-y CSS property sets the initial vertical position of a mask image.", "formalSyntax": "[ <length-percentage> | top | center | bottom ]#\n  <length-percentage> = <length> | <percentage>", "values": { "<length-percentage>": "A length indicating the position of the top side of the image relative to the box's top padding edge. Percentages are calculated against the vertical dimension of the box padding area. A value of 0% means the top edge of the image is aligned with the box's top padding edge and a value of 100% means the bottom edge of the image is aligned with the box's bottom padding edge.", @@ -6185,8 +6390,8 @@ "-webkit-mask-repeat-x": { "url": "$MDN_URL$/web/css/-webkit-mask-repeat-x", "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -webkit-mask-repeat-x property specifies whether and how a mask image is repeated (tiled) horizontally.", - "formalSyntax": "repeat | no-repeat | space | round", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -webkit-mask-repeat-x property specifies whether and how a mask image is repeated (tiled) horizontally.", + "formalSyntax": "[ repeat | no-repeat | space | round ]#", "values": { "repeat": "The mask image is repeated both horizontally and vertically.

The mask image is repeated both horizontally and vertically.", "no-repeat": "The mask image is not repeated; only one copy of the mask image is drawn. The remainder of the masked element's content is not displayed.", @@ -6197,8 +6402,8 @@ "-webkit-mask-repeat-y": { "url": "$MDN_URL$/web/css/-webkit-mask-repeat-y", "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -webkit-mask-repeat-y property sets whether and how a mask image is repeated (tiled) vertically.", - "formalSyntax": "repeat | no-repeat | space | round", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -webkit-mask-repeat-y property sets whether and how a mask image is repeated (tiled) vertically.", + "formalSyntax": "[ repeat | no-repeat | space | round ]#", "values": { "repeat": "The mask image is repeated vertically.

The mask image is repeated vertically.", "no-repeat": "The mask image is not repeated vertically; only one copy of the mask image is drawn in vertical direction. The vertical remainder of the masked element's content is not displayed.", @@ -6215,7 +6420,7 @@ "Opera": "15", "SafariIOS": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

-webkit-tap-highlight-color is a non-standard CSS property that sets the color of the highlight that appears over a link while it's being tapped. The highlighting indicates to the user that their tap is being successfully recognized, and indicates which element they're tapping on.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

-webkit-tap-highlight-color is a non-standard CSS property that sets the color of the highlight that appears over a link while it's being tapped. The highlighting indicates to the user that their tap is being successfully recognized, and indicates which element they're tapping on.", "formalSyntax": "<color>" }, "-webkit-text-fill-color": { @@ -6256,7 +6461,7 @@ "Safari": "3", "SafariIOS": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

-webkit-text-security is a non-standard CSS property that obfuscates characters in a <form> field (such as <input> or <textarea>) by replacing them with a shape. It only affects fields that are not of type=password.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

-webkit-text-security is a non-standard CSS property that obfuscates characters in a <form> field (such as <input> or <textarea>) by replacing them with a shape. It only affects fields that are not of type=password.", "formalSyntax": "circle | disc | square | none" }, "-webkit-text-stroke": { @@ -6279,7 +6484,7 @@ "lowDate": "2017-04-05", "highDate": "2019-10-05" }, - "doc": "The -webkit-text-stroke CSS property specifies the width and color of strokes for text characters. This is a shorthand property for the longhand properties -webkit-text-stroke-width and -webkit-text-stroke-color.\n

\n```css\n/* Width and color values */\n-webkit-text-stroke: 4px navy;\ntext-stroke: 4px navy;\n/* Global values */\n-webkit-text-stroke: inherit;\n-webkit-text-stroke: initial;\n-webkit-text-stroke: revert;\n-webkit-text-stroke: revert-layer;\n-webkit-text-stroke: unset;\n```\n
", + "doc": "The -webkit-text-stroke CSS property specifies the width and color of strokes for text characters. This is a shorthand property for the longhand properties -webkit-text-stroke-width and -webkit-text-stroke-color.", "formalSyntax": "<line-width> || <color>\n  <line-width> = <length [0,∞]> | thin | medium | thick", "values": { "<length>": "The width of the stroke.", @@ -6343,7 +6548,7 @@ "compatibility": { "SafariIOS": "2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The -webkit-touch-callout CSS property controls the display of the default callout shown when you touch and hold a touch target.\n

When a target is touched and held on iOS, Safari displays a callout information about the link. This property allows disabling that behavior.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The -webkit-touch-callout CSS property controls the display of the default callout shown when you touch and hold a touch target.\n

When a target is touched and held on iOS, Safari displays a callout information about the link. This property allows disabling that behavior.", "formalSyntax": "default | none", "values": { "default": "The default callout is displayed.", @@ -6357,18 +6562,13 @@ ], "compatibility": { "Chrome": "93", - "ChromeAndroid": "93", "Edge": "93", "Firefox": "92", "FirefoxAndroid": "92", - "Opera": "79", - "Safari": "15.4", - "SafariIOS": "15.4" + "Opera": "79" }, "baseline": { - "level": "HIGH", - "lowDate": "2022-03-14", - "highDate": "2024-09-14" + "level": "NONE" }, "doc": "The accent-color CSS property sets the accent color for user-interface controls generated by some elements.", "formalSyntax": "auto | <color>", @@ -6478,7 +6678,7 @@ "highDate": "2018-03-30" }, "doc": "The CSS align-items property sets the align-self value on all direct children as a group. In flexbox, it controls the alignment of items on the cross axis. In grid layout, it controls the alignment of items on the block axis within their grid areas.", - "formalSyntax": "normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ] | anchor-center\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", + "formalSyntax": "normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ] | anchor-center | dialog\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", "values": { "normal": "The effect of this keyword is dependent of the layout mode we are in:\n

", "center": "The flex items' margin boxes are centered within the line on the cross-axis. If the cross-size of an item is larger than the flex container, it will overflow equally in both directions.", @@ -6487,7 +6687,7 @@ "self-start": "The items are packed flush to the edge of the alignment container's start side of the item, in the appropriate axis.", "self-end": "The items are packed flush to the edge of the alignment container's end side of the item, in the appropriate axis.", "baseline
\nfirst baseline
\nlast baseline": "All flex items are aligned such that their flex container baselines align. The item with the largest distance between its cross-start margin edge and its baseline is flushed with the cross-start edge of the line.", - "stretch": "If the items are smaller than the alignment container, auto-sized items will be equally enlarged to fill the container, respecting the items' width and height limits.", + "stretch": "If the item's cross-size is auto, the used size is set to the length necessary to be as close to filling the container as possible, respecting the item's width and height limits. If the item is not auto-sized, this value falls back to flex-start, and to self-start or self-end if the container's align-content is first baseline (or baseline) or last baseline.", "anchor-center": "In the case of anchor-positioned elements, aligns the items to the center of the associated anchor element in the block direction. See Centering on the anchor using anchor-center.", "safe": "Used alongside an alignment keyword. If the chosen keyword means that the item overflows the alignment container causing data loss, the item is instead aligned as if the alignment mode were start.", "unsafe": "Used alongside an alignment keyword. Regardless of the relative sizes of the item and alignment container and whether overflow which causes data loss might happen, the given alignment value is honored.", @@ -6536,7 +6736,7 @@ "highDate": "2018-03-30" }, "doc": "The align-self CSS property overrides a grid or flex item's align-items value. In grid, it aligns the item inside the grid area. In flexbox, it aligns the item on the cross axis.", - "formalSyntax": "auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", + "formalSyntax": "auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center | dialog\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", "values": { "auto": "Computes to the parent's align-items value.", "normal": "The effect of this keyword is dependent of the layout mode we are in:\n", @@ -6546,7 +6746,7 @@ "flex-end": "The cross-end margin edge of the flex item is flushed with the cross-end edge of the line.", "center": "The flex item's margin box is centered within the line on the cross-axis. If the cross-size of the item is larger than the flex container, it will overflow equally in both directions.", "baseline
\nfirst baseline
\nlast baseline": "Specifies participation in first- or last-baseline alignment: aligns the alignment baseline of the box's first or last baseline set with the corresponding baseline in the shared first or last baseline set of all the boxes in its baseline-sharing group.\nThe fallback alignment for first baseline is start, the one for last baseline is end.", - "stretch": "If the combined size of the items along the cross axis is less than the size of the alignment container and the item is auto-sized, its size is increased equally (not proportionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size of all auto-sized items exactly fills the alignment container along the cross axis.", + "stretch": "If the item's cross-size is auto, the used size is set to the length necessary to be as close to filling the container as possible, respecting the item's width and height limits. If the item is not auto-sized, this value falls back to flex-start, and to self-start or self-end if the container's align-content is first baseline (or baseline) or last baseline.", "anchor-center": "In the case of anchor-positioned elements, aligns the item to the center of the associated anchor element in the block direction. See Centering on the anchor using anchor-center.", "safe": "If the size of the item overflows the alignment container, the item is instead aligned as if the alignment mode were start.", "unsafe": "Regardless of the relative sizes of the item and alignment container, the given alignment value is honored." @@ -6614,19 +6814,20 @@ "anchor-name": { "url": "$MDN_URL$/web/css/anchor-name", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The anchor-name CSS property enables defining an element as an anchor element by giving it one or more identifying anchor names. Each name can then be set as the value of a positioned element's position-anchor property to associate it with the anchor.", + "doc": "The anchor-name CSS property enables defining an element as an anchor element by giving it one or more identifying anchor names. Each name can then be set as the value of a positioned element's position-anchor property to associate it with the anchor.", "formalSyntax": "none | <dashed-ident>#", "values": { "none": "The default value. Setting anchor-name: none on an element means that it is not defined as an anchor element. If the element was previously defined as an anchor and associated with a positioned element, setting anchor-name: none disassociates the two.", @@ -6886,19 +7087,20 @@ "animation-range": { "url": "$MDN_URL$/web/css/animation-range", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The animation-range CSS shorthand property is used to set the start and end of an animation's attachment range along its timeline, i.e., where along the timeline an animation will start and end.", + "doc": "The animation-range CSS shorthand property is used to set the start and end of an animation's attachment range along its timeline, i.e., where along the timeline an animation will start and end.", "formalSyntax": "[ <'animation-range-start'> <'animation-range-end'>? ]#\n  <animation-range-start> = [ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#\n  <animation-range-end> = [ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#\n  <length-percentage> = <length> | <percentage>", "values": { "normal": "Represents the start of the timeline in the case of animation-range-start and the end of the timeline in the case of animation-range-end. This is the default value.", @@ -6910,55 +7112,58 @@ "animation-range-end": { "url": "$MDN_URL$/web/css/animation-range-end", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The animation-range-end CSS property is used to set the end of an animation's attachment range along its timeline, i.e., where along the timeline an animation will end.\n

The animation-range-end and animation-range-start properties can also be set using the animation-range shorthand property.\n

\n

Note: animation-range-end is included in the animation shorthand as a reset-only value. This means that including animation resets a previously-declared animation-range-end value to normal, but a specific value cannot be set via animation. When creating CSS scroll-driven animations, you need to declare animation-range-end after declaring any animation shorthand for it to take effect.\n

", + "doc": "The animation-range-end CSS property is used to set the end of an animation's attachment range along its timeline, i.e., where along the timeline an animation will end.\n

The animation-range-end and animation-range-start properties can also be set using the animation-range shorthand property.\n

\n

Note:\nanimation-range-end is included in the animation shorthand as a reset-only value. This means that including animation resets a previously-declared animation-range-end value to normal, but a specific value cannot be set via animation. When creating CSS scroll-driven animations, you need to declare animation-range-end after declaring any animation shorthand for it to take effect.\n

", "formalSyntax": "[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#\n  <length-percentage> = <length> | <percentage>" }, "animation-range-start": { "url": "$MDN_URL$/web/css/animation-range-start", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The animation-range-start CSS property is used to set the start of an animation's attachment range along its timeline, i.e., where along the timeline an animation will start.\n

The animation-range-start and animation-range-end properties can also be set using the animation-range shorthand property.\n

\n

Note: animation-range-start is included in the animation shorthand as a reset-only value. This means that including animation resets a previously-declared animation-range-start value to normal, but a specific value cannot be set via animation. When creating CSS scroll-driven animations, you need to declare animation-range-start after declaring any animation shorthand for it to take effect.\n

", + "doc": "The animation-range-start CSS property is used to set the start of an animation's attachment range along its timeline, i.e., where along the timeline an animation will start.\n

The animation-range-start and animation-range-end properties can also be set using the animation-range shorthand property.\n

\n

Note:\nanimation-range-start is included in the animation shorthand as a reset-only value. This means that including animation resets a previously-declared animation-range-start value to normal, but a specific value cannot be set via animation. When creating CSS scroll-driven animations, you need to declare animation-range-start after declaring any animation shorthand for it to take effect.\n

", "formalSyntax": "[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#\n  <length-percentage> = <length> | <percentage>" }, "animation-timeline": { "url": "$MDN_URL$/web/css/animation-timeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The animation-timeline CSS property specifies the timeline that is used to control the progress of a CSS animation.\n

The following types of timelines can be set via animation-timeline:\n

\n
\n

Note: animation-timeline is included in the animation shorthand as a reset-only value. This means that including animation resets a previously-declared animation-timeline value to auto, but a specific value cannot be set via animation. When creating CSS scroll-driven animations, you need to declare animation-timeline after declaring any animation shorthand for it to take effect.\n

", + "doc": "The animation-timeline CSS property specifies the timeline that is used to control the progress of a CSS animation.\n

The following types of timelines can be set via animation-timeline:\n

\n
\n

Note:\nanimation-timeline is included in the animation shorthand as a reset-only value. This means that including animation resets a previously-declared animation-timeline value to auto, but a specific value cannot be set via animation. When creating CSS scroll-driven animations, you need to declare animation-timeline after declaring any animation shorthand for it to take effect.\n

", "formalSyntax": "<single-animation-timeline>#\n  <single-animation-timeline> = auto | none | <dashed-ident> | <scroll()> | <view()>\n  <scroll()> = scroll( [ <scroller> || <axis> ]? )\n  <view()> = view( [ <axis> || <'view-timeline-inset'> ]? )\n  <scroller> = root | nearest | self\n  <axis> = block | inline | x | y\n  <view-timeline-inset> = [ [ auto | <length-percentage> ]{1,2} ]#\n  <length-percentage> = <length> | <percentage>", "values": { "none": "The animation is not associated with a timeline.", @@ -7014,14 +7219,16 @@ "lowDate": "2022-03-14", "highDate": "2024-09-14" }, - "doc": "The appearance CSS property is used to display UI elements with platform-specific styling, based on the operating system's theme.", - "formalSyntax": "none | auto | base | <compat-auto> | <compat-special> | base\n  <compat-auto> = searchfield | textarea | checkbox | radio | menulist | listbox | meter | progress-bar | button\n  <compat-special> = textfield | menulist-button", + "doc": "The appearance CSS property specifies the rendered appearance of replaced UI widget elements such as form controls. Most commonly, such elements are given native, platform-specific styling based on the operating system's theme, or a primitive appearance with styles that can be overridden using CSS.", + "formalSyntax": "none | auto | base | base-select | <compat-auto> | <compat-special> | base\n  <compat-auto> = searchfield | textarea | checkbox | radio | menulist | listbox | meter | progress-bar | button\n  <compat-special> = textfield | menulist-button", "values": { - "none": "If the element is a widget (native form control), it will be forced to use a standardized primitive appearance instead of a platform-native or operating system specific appearance, supporting the usual rules of CSS. This value has no effect on non-widget elements, including replaced elements like <img> and <video>.", - "auto": "Acts as none on elements with no special styling.", - "base-select": "Opts the <select> element and the ::picker(select) pseudo-element into the browser-defined default (base) styles and behavior for customizable select elements.\n
\n

Note:\nThe specification currently defines the base value, which is intended to apply base browser styles more generally for UI elements they are available for. However, this is not currently supported in any browser.\n

", - "<compat-special>": "One of menulist-button or textfield.\nBoth of these values are equivalent to auto on elements with no special styling.", - "<compat-auto>": "Possible values are button, checkbox, listbox, menulist, meter, progress-bar, push-button, radio, searchfield, slider-horizontal, square-button, and textarea.\nKeywords which are the equivalent of auto for maintaining compatibility with older browsers." + "none": "Gives the widget a primitive appearance, making it stylable via CSS, while maintaining the widget's native functionality. This value does not affect non-widgets.", + "auto": "Sets interactive widgets to render with their OS-native appearance. Behaves as none on elements with no OS-native styling.", + "base-select": "Only relevant to the <select> element and ::picker(select) pseudo-element, allowing them to be styled.", + "<compat-special>": "Has an effect similar to auto on certain elements.\n
\n
textfield
\n
\n

Causes the appearance of certain <input> types to match the appearance of the text type.\n

\n
menulist-button
\n
\n

When set on the <select> element, the drop-down picker's style matches that of its default state.\n

\n
", + "<compat-auto>": "Included for backwards compatibility; possible values include button, checkbox, listbox, menulist, meter, progress-bar, push-button, radio, searchfield, slider-horizontal, square-button, and textarea. The values all behave as auto: use auto instead.", + "slider-vertical": "Makes the slider vertical when applied to <input type=\"range\"> elements. To create a vertical slider you should instead set the writing-mode to vertical-lr and the direction to rtl.", + "-apple-pay-button": "Displays the Apple Pay logo when set on a <button>, <a>, or <input> element of type button or reset." } }, "aspect-ratio": { @@ -7072,7 +7279,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The CSS attribute selector matches elements based on the element having a given attribute explicitly set, with options for defining an attribute value or substring value match.\n
\n```css\n/*  elements with a title attribute */\na[title] {\n  color: purple;\n}\n/*  elements with an href matching \"https://example.org\" */\na[href=\"https://example.org\"]\n{\n  color: green;\n}\n/*  elements with an href containing \"example\" */\na[href*=\"example\"] {\n  font-size: 2em;\n}\n/*  elements with an href ending \".org\", case-insensitive */\na[href$=\".org\" i] {\n  font-style: italic;\n}\n/*  elements whose class attribute contains the word \"logo\" */\na[class~=\"logo\"] {\n  padding: 2px;\n}\n```\n
", + "doc": "The CSS attribute selector matches elements based on the element having a given attribute explicitly set, with options for defining an attribute value or substring value match.", "values": { "<attr>": "An <ident>, that is, the unquoted name of the attribute. This can be any valid language-specific attribute (SVG, HTML, XML, etc), a data-* attribute, or an author-created attribute.", "<value>": "An <ident> or <string>, representing the attribute value. The value must be quoted if it contains spaces or special characters.", @@ -7325,7 +7532,7 @@ "formalSyntax": "<visual-box>#\n  <visual-box> = content-box | padding-box | border-box", "values": { "border-box": "The background is positioned relative to the border box.", - "padding-box": "The background is positioned relative to the padding box.", + "padding-box": "The background is positioned relative to the padding box. Default value.", "content-box": "The background is positioned relative to the content box." } }, @@ -7497,7 +7704,7 @@ "highDate": "2022-07-15" }, "doc": "The block-size CSS property defines the size of an element's block along the block axis. If the writing-mode is horizontal, it corresponds to the height; if the writing mode is vertical, it corresponds to the width. A related property is inline-size, which defines the other dimension of the element.", - "formalSyntax": "<'width'>\n  <width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" + "formalSyntax": "<'width'>\n  <width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, "border": { "url": "$MDN_URL$/web/css/border", @@ -7524,7 +7731,7 @@ "values": { "<line-width>": "Sets the thickness of the border. Defaults to medium if absent. See border-width.", "<line-style>": "Sets the style of the border. Defaults to none if absent. See border-style.", - "<color>": "Sets the color of the border. Defaults to currentcolor if absent. See border-color." + "<color>": "Sets the color of the border. Defaults to currentColor if absent. See border-color." } }, "border-block": { @@ -9151,7 +9358,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft, and has been replaced by a newer standard.\n

\n

The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box.\n

See flexbox for information about the current standard.\n

The direction of layout depends on the element's orientation: horizontal or vertical.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft, and has been replaced by a newer standard.\n

\n

The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box.\n

See flexbox for information about the current standard.\n

The direction of layout depends on the element's orientation: horizontal or vertical.", "formalSyntax": "start | center | end | baseline | stretch", "values": { "start": "The box aligns contents at the start, leaving any extra space at the end.", @@ -9190,7 +9397,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft, and has been replaced by a newer standard. The -moz-box-direction will only be used for XUL while the previous standard box-direction has been replaced by flex-direction. See flexbox for information about the current standard.\n

\n

The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft, and has been replaced by a newer standard. The -moz-box-direction will only be used for XUL while the previous standard box-direction has been replaced by flex-direction. See flexbox for information about the current standard.\n

\n

The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).", "formalSyntax": "normal | reverse", "values": { "normal": "The box lays out its contents from the start (the left or top edge).", @@ -9203,7 +9410,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property for controlling parts of the XUL box model. It does not match either the old CSS flexible box layout Module drafts for box-flex (which were based on this property) or the behavior of -webkit-box-flex (which is based on those drafts). See flexbox for information about the current standard.\n

\n

The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property for controlling parts of the XUL box model. It does not match either the old CSS flexible box layout Module drafts for box-flex (which were based on this property) or the behavior of -webkit-box-flex (which is based on those drafts). See flexbox for information about the current standard.\n

\n

The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout.", "formalSyntax": "<number>" }, "box-flex-group": { @@ -9212,7 +9419,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft. It has been replaced in the specification. See flexbox for information about the current standard.\n

\n

The box-flex-group CSS property assigns the flexbox's child elements to a flex group.\n

For flexible elements assigned to flex groups, the first flex group is 1 and higher values specify subsequent flex groups. The initial value is 1. When dividing up the box's extra space, the browser first considers all elements within the first flex group. Each element within that group is given extra space based on the ratio of that element's flexibility compared to the flexibility of other elements within the same flex group. If the space of all flexible children within the group has been increased to the maximum, the process repeats for the children within the next flex group, using any space left over from the previous flex group. Once there are no more flex groups, and there is still space remaining, the extra space is divided within the containing box according to the box-pack property.\n

If the box would overflow after the preferred space of the children has been computed, then space is removed from flexible elements in a manner similar to that used when adding extra space. Each flex group is examined in turn and space is removed according to the ratio of the flexibility of each element. Elements do not shrink below their minimum widths.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft. It has been replaced in the specification. See flexbox for information about the current standard.\n

\n

The box-flex-group CSS property assigns the flexbox's child elements to a flex group.\n

For flexible elements assigned to flex groups, the first flex group is 1 and higher values specify subsequent flex groups. The initial value is 1. When dividing up the box's extra space, the browser first considers all elements within the first flex group. Each element within that group is given extra space based on the ratio of that element's flexibility compared to the flexibility of other elements within the same flex group. If the space of all flexible children within the group has been increased to the maximum, the process repeats for the children within the next flex group, using any space left over from the previous flex group. Once there are no more flex groups, and there is still space remaining, the extra space is divided within the containing box according to the box-pack property.\n

If the box would overflow after the preferred space of the children has been computed, then space is removed from flexible elements in a manner similar to that used when adding extra space. Each flex group is examined in turn and space is removed according to the ratio of the flexibility of each element. Elements do not shrink below their minimum widths.", "formalSyntax": "<integer>" }, "box-lines": { @@ -9221,7 +9428,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft. It has been replaced in the specification. See flexbox for information about the current standard.\n

\n

The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes).\n

By default a horizontal box will lay out its children in a single row, and a vertical box will lay out its children in a single column. This behavior can be changed using the box-lines property. The default value is single, which means that all elements will be placed in a single row or column, and any elements that don't fit will be considered overflow.\n

If a value of multiple is specified, however, then the box is allowed to expand to multiple lines (that is, multiple rows or columns) in order to accommodate all of its children. The box must attempt to fit its children on as few lines as possible by shrinking all elements down to their minimum widths or heights if necessary.\n

If the children in a horizontal box still do not fit on a line after being reduced to their minimum widths, then children are moved one by one onto a new line, until the elements remaining on the previous line fit. This process can repeat to an arbitrary number of lines. If a line contains only a single element that doesn't fit, then the element should stay on that line and overflow out of the box. The later lines are placed below the earlier lines in normal direction boxes and above in reverse direction boxes. The height of a line is the height of the largest child in that line. No additional space appears between the lines apart from the margins on the largest elements in each line. For calculating the height of a line, margins with a computed value of auto should be treated as having a value of 0.\n

A similar process occurs for children in a vertical box. Later lines in normal direction boxes are placed to the right of earlier lines and to the left in reverse direction boxes.\n

Once the number of lines has been determined, elements with a computed value for box-flex other than 0 stretch as necessary in an attempt to fill the remaining space on the lines. Each line computes flexes independently, so only elements on that line are considered when evaluating box-flex and box-flex-groups. The packing of elements in a line, as specified by the box-pack property, is also computed independently for each line.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft. It has been replaced in the specification. See flexbox for information about the current standard.\n

\n

The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes).\n

By default a horizontal box will lay out its children in a single row, and a vertical box will lay out its children in a single column. This behavior can be changed using the box-lines property. The default value is single, which means that all elements will be placed in a single row or column, and any elements that don't fit will be considered overflow.\n

If a value of multiple is specified, however, then the box is allowed to expand to multiple lines (that is, multiple rows or columns) in order to accommodate all of its children. The box must attempt to fit its children on as few lines as possible by shrinking all elements down to their minimum widths or heights if necessary.\n

If the children in a horizontal box still do not fit on a line after being reduced to their minimum widths, then children are moved one by one onto a new line, until the elements remaining on the previous line fit. This process can repeat to an arbitrary number of lines. If a line contains only a single element that doesn't fit, then the element should stay on that line and overflow out of the box. The later lines are placed below the earlier lines in normal direction boxes and above in reverse direction boxes. The height of a line is the height of the largest child in that line. No additional space appears between the lines apart from the margins on the largest elements in each line. For calculating the height of a line, margins with a computed value of auto should be treated as having a value of 0.\n

A similar process occurs for children in a vertical box. Later lines in normal direction boxes are placed to the right of earlier lines and to the left in reverse direction boxes.\n

Once the number of lines has been determined, elements with a computed value for box-flex other than 0 stretch as necessary in an attempt to fill the remaining space on the lines. Each line computes flexes independently, so only elements on that line are considered when evaluating box-flex and box-flex-group. The packing of elements in a line, as specified by the box-pack property, is also computed independently for each line.", "formalSyntax": "single | multiple", "values": { "single": "Box elements lay out in a single row or column.", @@ -9234,7 +9441,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft. It has been replaced in the specification. See flexbox for information about the current standard.\n

\n

The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group.\n

Ordinal groups may be used in conjunction with the box-direction property to control the order in which the direct children of a box appear. When the computed box-direction is normal, a box will display its elements starting from the lowest numbered ordinal group and ensure that those elements appear to the left (for horizontal boxes) or at the top (for vertical boxes) of the container. Elements with the same ordinal group are flowed in the order they appear in the source document tree. In the reverse direction, the ordinal groups are examined in the same order, except the elements appear reversed.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft. It has been replaced in the specification. See flexbox for information about the current standard.\n

\n

The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group.\n

Ordinal groups may be used in conjunction with the box-direction property to control the order in which the direct children of a box appear. When the computed box-direction is normal, a box will display its elements starting from the lowest numbered ordinal group and ensure that those elements appear to the left (for horizontal boxes) or at the top (for vertical boxes) of the container. Elements with the same ordinal group are flowed in the order they appear in the source document tree. In the reverse direction, the ordinal groups are examined in the same order, except the elements appear reversed.", "formalSyntax": "<integer>" }, "box-orient": { @@ -9243,7 +9450,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft, and has been replaced by a newer standard. See flexbox for information about the current standard.\n

\n

The box-orient CSS property sets whether an element lays out its contents horizontally or vertically.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft, and has been replaced by a newer standard. See flexbox for information about the current standard.\n

\n

The box-orient CSS property sets whether an element lays out its contents horizontally or vertically.", "formalSyntax": "horizontal | vertical | inline-axis | block-axis", "values": { "horizontal": "The box lays out its contents horizontally.", @@ -9258,7 +9465,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft, and has been replaced by a newer standard. See flexbox for information about the current standard.\n

\n

The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\n

The direction of layout depends on the element's orientation: horizontal or vertical.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis is a property of the original CSS flexible box layout Module draft, and has been replaced by a newer standard. See flexbox for information about the current standard.\n

\n

The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.\n

The direction of layout depends on the element's orientation: horizontal or vertical.", "formalSyntax": "start | center | end | justify", "values": { "start": "The box packs contents at the start, leaving any extra space at the end.", @@ -9473,6 +9680,39 @@ "bottom": "The caption box should be positioned at the block end side of the table." } }, + "caret": { + "url": "$MDN_URL$/web/css/caret", + "status": [ + "Experimental", + "Deprecated" + ], + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The caret shorthand CSS property sets the appearance and behavior of the insertion caret in a single declaration.", + "formalSyntax": "<'caret-color'> || <'caret-animation'> || <'caret-shape'>\n  <caret-color> = auto | <color>\n  <caret-animation> = auto | manual\n  <caret-shape> = auto | bar | block | underscore", + "values": { + "caret-color": "Sets the color of the caret.", + "caret-animation": "Controls whether the caret blinks.", + "caret-shape": "Sets the visual shape of the caret." + } + }, + "caret-animation": { + "url": "$MDN_URL$/web/css/caret-animation", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", + "Opera": "124" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The caret-animation CSS property is used to enable or disable the blinking behavior of the insertion caret, the visible marker that appears in editable elements to indicate where the next character will be inserted or deleted.\n

When applying a custom animation to the caret, you should stop the default blinking so that it doesn't interfere with the animation.", + "formalSyntax": "auto | manual", + "values": { + "auto": "The caret blinks on and off. This is the default (initial) value.", + "manual": "The caret does not blink on and off." + } + }, "caret-color": { "url": "$MDN_URL$/web/css/caret-color", "status": [ @@ -9493,13 +9733,29 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The caret-color CSS property sets the color of the insertion caret, the visible marker where the next character typed will be inserted. This is sometimes referred to as the text input cursor. The caret appears in elements such as <input> or those with the contenteditable attribute. The caret is typically a thin vertical line that flashes to help make it more noticeable. By default, it is black, but its color can be altered with this property.", + "doc": "The caret-color CSS property sets the color of the insertion caret, sometimes referred to as the text input cursor. This is the visible marker appearing at the insertion point where the next character typed will be added or where the next character deleted will be removed.", "formalSyntax": "auto | <color>", "values": { - "auto": "The user agent selects an appropriate color for the caret. This is generally currentcolor, but the user agent may choose a different color to ensure good visibility and contrast with the surrounding content, taking into account the value of currentcolor, the background, shadows, and other factors.\n

\n

Note:\nWhile user agents may use currentcolor (which is usually animatable) for the auto value, auto is not interpolated in transitions and animations.\n

", + "auto": "Generally resolves to currentColor, the color of the text that will be modified.", "<color>": "The color of the caret." } }, + "caret-shape": { + "url": "$MDN_URL$/web/css/caret-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The caret-shape CSS property sets the shape of the insertion caret, the visible marker that appears in editable elements to indicate where the next character will be inserted or deleted.", + "formalSyntax": "auto | bar | block | underscore", + "values": { + "auto": "The default value. The browser determines the caret shape. This typically follows platform conventions and may change based on context.", + "bar": "The caret appears as a thin vertical line at the insertion point, positioned between characters rather than over them.", + "block": "The caret appears as a rectangle that overlaps the next character after the insertion point. If no character follows, it appears after the last character.", + "underscore": "The caret appears as a thin horizontal line underneath the next character after the insertion point. If no character follows, it appears after the last character." + } + }, "child_combinator": { "url": "$MDN_URL$/web/css/child_combinator", "status": [ @@ -9674,11 +9930,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The color CSS property sets the foreground color value of an element's text and text decorations, and sets the currentcolor value. currentcolor may be used as an indirect value on other properties and is the default for other color properties, such as border-color.", + "doc": "The color CSS property sets the foreground color value of an element's text and text decorations, and sets the currentColor value. currentColor may be used as an indirect value on other properties and is the default for other color properties, such as border-color.", "formalSyntax": "<color>", "values": { "<color>": "Sets the color of the textual and decorative parts of the element.", - "currentcolor": "Sets the color to the element's color property value. However, if set as the value of color, currentcolor is treated as inherit." + "currentColor": "Sets the color to the element's color property value. However, if set as the value of color, currentColor is treated as inherit." } }, "color-interpolation": { @@ -9760,7 +10016,7 @@ "doc": "The color-scheme CSS property allows an element to indicate which color schemes it can comfortably be rendered in. User agents change the following aspects of the UI chrome to match the used color scheme:\n

\n

Component authors must use the prefers-color-scheme media feature to support the color schemes on the rest of the elements.\n

Common choices for operating system color schemes are \"light\" and \"dark\", or \"day mode\" and \"night mode\". When a user selects one of these color schemes, the operating system makes adjustments to the user interface. This includes form controls, scrollbars, and the used values of CSS system colors.", "formalSyntax": "normal | [ light | dark | <custom-ident> ]+ && only?", "values": { - "normal": "Indicates that the element can be rendered using the page's color scheme settings. If the page does not have a color scheme set, the element is rendered using the page's default color settings.", + "normal": "Indicates that the element can be rendered using the page's color scheme settings. If the page does not have a color scheme set, the element is rendered using the page's default color settings.", "light": "Indicates that the element can be rendered using the operating system light color scheme.", "dark": "Indicates that the element can be rendered using the operating system dark color scheme.", "only": "Forbids the user agent from overriding the color scheme for the element.\n

Can be used to turn off color overrides caused by Chrome's Auto Dark Theme, by applying color-scheme: only light; on a specific element or :root." @@ -10051,7 +10307,7 @@ "highDate": "2019-09-07" }, "doc": "The columns CSS shorthand property sets the number of columns to use when drawing an element's contents, as well as those columns' widths.", - "formalSyntax": "<'column-width'> || <'column-count'> [ / <'column-height'> ]?\n  <column-width> = auto | <length [0,∞]> | min-content | max-content | fit-content( <length-percentage> )\n  <column-count> = auto | <integer [1,∞]>\n  <column-height> = auto | <length [0,∞]>\n  <length-percentage> = <length> | <percentage>", + "formalSyntax": "[ <'column-width'> || <'column-count'> ] [ / <'column-height'> ]?\n  <column-width> = auto | <length [0,∞]> | min-content | max-content | fit-content( <length-percentage> )\n  <column-count> = auto | <integer [1,∞]>\n  <column-height> = auto | <length [0,∞]>\n  <length-percentage> = <length> | <percentage>", "values": { "<'column-width'>": "The ideal column width, defined as a <length> or the keyword auto. The actual width may be wider or narrower to fit the available space. See column-width.", "<'column-count'>": "The ideal number of columns into which the element's content should be flowed, defined as an <integer> or the keyword auto. If neither this value nor the column's width are auto, it merely indicates the maximum allowable number of columns. See column-count." @@ -10078,7 +10334,7 @@ "highDate": "2024-09-14" }, "doc": "The contain CSS property indicates that an element and its contents are, as much as possible, independent from the rest of the document tree.\nContainment enables isolating a subsection of the DOM, providing performance benefits by limiting calculations of layout, style, paint, size, or any combination to a DOM subtree rather than the entire page. Containment can also be used to scope CSS counters and quotes.", - "formalSyntax": "none | strict | content | [ [ size | inline-size ] || layout || style || paint ]", + "formalSyntax": "none | strict | content | [ [ size | inline-size ] || layout || style || paint ] | view-transition", "values": { "none": "The element renders as normal, with no containment applied.", "strict": "All containment rules are applied to the element. This is equivalent to contain: size layout paint style.", @@ -10241,8 +10497,9 @@ "SafariIOS": "16" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The container shorthand CSS property establishes the element as a query container and specifies the name and type of the containment context used in a container query.", "formalSyntax": "<'container-name'> [ / <'container-type'> ]?\n  <container-name> = none | <custom-ident>+\n  <container-type> = normal | [ [ size | inline-size ] || scroll-state ]", @@ -10267,8 +10524,9 @@ "SafariIOS": "16" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The container-name CSS property specifies a list of query container names used by the @container at-rule in a container query.\nA container query will apply styles to elements based on the size or scroll-state of the nearest ancestor with a containment context.\nWhen a containment context is given a name, it can be specifically targeted using the @container at-rule instead of the nearest ancestor with containment.\n

\n

Note:\nWhen using the container-type and container-name properties, the style and layout values of the contain property are automatically applied.\n

", "formalSyntax": "none | <custom-ident>+", @@ -10293,10 +10551,11 @@ "SafariIOS": "16" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, - "doc": "An element can be established as a query container using the container-type CSS property. container-type is used to define the type of container context used in a container query. The available container contexts are:\n\n
\n

Note:\nWhen using the container-type and container-name properties, the style and layout values of the contain property are automatically applied.\n

", + "doc": "An element can be established as a query container using the container-type CSS property. container-type is used to define the type of container context used in a container query. The available container contexts are:\n\n
\n

Note:\nWhen using the container-type and container-name properties, the style and layout values of the contain property are automatically applied.\n

", "formalSyntax": "normal | [ [ size | inline-size ] || scroll-state ]", "values": { "inline-size": "Establishes a query container for dimensional queries on the inline axis of the container.\nApplies layout, style, and inline-size containment to the element.\n

Inline size containment is applied to the element. The inline size of the element can be computed in isolation, ignoring the child elements (see Using CSS containment).", @@ -10326,10 +10585,10 @@ "highDate": "2018-01-29" }, "doc": "The content CSS property replaces content with a generated value. It can be used to define what is rendered inside an element or pseudo-element. For elements, the content property specifies whether the element renders normally (normal or none) or is replaced with an image (and associated \"alt\" text). For pseudo-elements and margin boxes, content defines the content as images, text, both, or none, which determines whether the element renders at all.\n

Objects inserted using the content property are anonymous replaced elements.", - "formalSyntax": "normal | none | [ <content-replacement> | <content-list> ] [ / [ <string> | <counter> | <attr()> ]+ ]? | <element()>\n  <content-replacement> = <image>\n  <content-list> = [ <string> | <counter()> | <counters()> | <content()> | <attr()> ]+\n  <counter> = <counter()> | <counters()>\n  <attr()> = attr( <attr-name> <attr-type>? , <declaration-value>? )\n  <element()> = element( <id-selector> )\n  <image> = <url> | <gradient>\n  <counter()> = counter( <counter-name> , <counter-style>? )\n  <counters()> = counters( <counter-name> , <string> , <counter-style>? )\n  <content()> = content( [ text | before | after | first-letter | marker ]? )\n  <attr-name> = [ <ident-token>? '|' ]? <ident-token>\n  <attr-type> = type( <syntax> ) | raw-string | <attr-unit>\n  <id-selector> = <hash-token>\n  <url> = <url()> | <src()>\n  <counter-style> = <counter-style-name> | <symbols()>\n  <syntax> = '*' | <syntax-component> [ <syntax-combinator> <syntax-component> ]* | <syntax-string>\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )\n  <symbols()> = symbols( <symbols-type>? [ <string> | <image> ]+ )\n  <syntax-component> = <syntax-single-component> <syntax-multiplier>? | '<' transform-list '>'\n  <syntax-combinator> = '|'\n  <syntax-string> = <string>\n  <symbols-type> = cyclic | numeric | alphabetic | symbolic | fixed\n  <syntax-single-component> = '<' <syntax-type-name> '>' | <ident>\n  <syntax-multiplier> = '#' | '+'\n  <syntax-type-name> = angle | color | custom-ident | image | integer | length | length-percentage | number | percentage | resolution | string | time | url | transform-function", + "formalSyntax": "normal | none | [ <content-replacement> | <content-list> ] [ / [ <string> | <counter> | <attr()> ]+ ]? | <element()>\n  <content-replacement> = <image>\n  <content-list> = [ <string> | <counter()> | <counters()> | <content()> | <attr()> ]+\n  <counter> = <counter()> | <counters()>\n  <attr()> = attr( <attr-name> <attr-type>? , <declaration-value>? )\n  <element()> = element( <id-selector> )\n  <image> = <url> | <gradient>\n  <counter()> = counter( <counter-name> , <counter-style>? )\n  <counters()> = counters( <counter-name> , <string> , <counter-style>? )\n  <content()> = content( [ text | before | after | first-letter | marker ]? )\n  <attr-name> = [ <ident-token>? '|' ]? <ident-token>\n  <attr-type> = type( <syntax> ) | raw-string | number | <attr-unit>\n  <id-selector> = <hash-token>\n  <url> = <url()> | <src()>\n  <counter-style> = <counter-style-name> | <symbols()>\n  <syntax> = '*' | <syntax-component> [ <syntax-combinator> <syntax-component> ]* | <syntax-string>\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )\n  <symbols()> = symbols( <symbols-type>? [ <string> | <image> ]+ )\n  <syntax-component> = <syntax-single-component> <syntax-multiplier>? | '<' transform-list '>'\n  <syntax-combinator> = '|'\n  <syntax-string> = <string>\n  <symbols-type> = cyclic | numeric | alphabetic | symbolic | fixed\n  <syntax-single-component> = '<' <syntax-type-name> '>' | <ident>\n  <syntax-multiplier> = '#' | '+'\n  <syntax-type-name> = angle | color | custom-ident | image | integer | length | length-percentage | number | percentage | resolution | string | time | url | transform-function", "values": { "none": "When applied to a pseudo-element, the pseudo-element is not generated.\nWhen applied to an element, the value has no effect.", - "normal": "The default value. Computes to none for the ::before and ::after pseudo-elements. For other pseudo-elements, the content will be the initial (or normal) content expected for that ::marker, ::placeholder, or ::file-selector-button. For regular elements or page margin boxes, this computes to the element's descendants.", + "normal": "For the ::before and ::after pseudo-elements, this value computes to none . For other pseudo-elements such as ::marker, ::placeholder, or ::file-selector-button, it produces the element's initial (or normal) content. For regular elements or page margin boxes, it computes to the element's descendants. This is the default value.", "<string>": "A sequence of characters enclosed in matching single or double quotes. Multiple string values will be concatenated (there is no concatenation operator in CSS).", "<image>": "An <image>, representing an image to display. This can be equal to a <url>, image-set(), or <gradient> data type, or a part of the webpage itself, defined by the element() function.", "<counter>": "The <counter> value is a CSS counter, generally a number produced by computations defined by <counter-reset> and <counter-increment> properties. It can be displayed using either the counter() or counters() function.\n

\n
counter()
\n
\n

The counter() function has two forms: 'counter(name)' or 'counter(name, style)'. The generated text is the value of the innermost counter of the given name in scope at the given pseudo-element. It is formatted in the specified <list-style-type> (decimal by default).\n

\n
counters()
\n
\n

The counters() function also has two forms: 'counters(name, string)' or 'counters(name, string, style)'. The generated text is the value of all counters with the given name in scope at the given pseudo-element, from outermost to innermost, separated by the specified string. The counters are rendered in the indicated <list-style-type> (decimal by default).\n

\n
", @@ -10362,11 +10621,320 @@ "doc": "The content-visibility CSS property controls whether or not an element renders its contents at all, along with forcing a strong set of containments, allowing user agents to potentially omit large swathes of layout and rendering work until it becomes needed. It enables the user agent to skip an element's rendering work (including layout and painting) until it is needed — which makes the initial page load much faster.\n
\n

Note:\nThe contentvisibilityautostatechange event fires on any element with content-visibility: auto set on it when its rendering work starts or stops being skipped. This provides a convenient way for an app's code to start or stop rendering processes (e.g., drawing on a <canvas>) when they are not needed, thereby conserving processing power.\n

", "formalSyntax": "visible | auto | hidden", "values": { - "visible": "No effect. The element's contents are laid out and rendered as normal.", + "visible": "No effect. The element's contents are laid out and rendered as normal. This is the default value.", "hidden": "The element skips its contents. The skipped contents must not be accessible to user-agent features, such as find-in-page, tab-order navigation, etc., nor be selectable or focusable. This is similar to giving the contents display: none.", "auto": "The element turns on layout containment, style containment, and paint containment. If the element is not relevant to the user, it also skips its contents. Unlike hidden, the skipped contents must still be available as normal to user-agent features such as find-in-page, tab order navigation, etc., and must be focusable and selectable as normal." } }, + "corner-block-end-shape": { + "url": "$MDN_URL$/web/css/corner-block-end-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-block-end-shape CSS property specifies the shape of both the corners on a box's block-end edge, within their border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<'corner-top-left-shape'>{1,2}\n  <corner-top-left-shape> = <corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-block-start-shape": { + "url": "$MDN_URL$/web/css/corner-block-start-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-block-start-shape CSS property specifies the shape of both the corners on a box's block-start edge, within their border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<'corner-top-left-shape'>{1,2}\n  <corner-top-left-shape> = <corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-bottom-left-shape": { + "url": "$MDN_URL$/web/css/corner-bottom-left-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-bottom-left-shape CSS property specifies the shape of a box's bottom-left corner, within its border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-bottom-right-shape": { + "url": "$MDN_URL$/web/css/corner-bottom-right-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-bottom-right-shape CSS property specifies the shape of a box's bottom-right corner, within its border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-bottom-shape": { + "url": "$MDN_URL$/web/css/corner-bottom-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-bottom-shape CSS property specifies the shape of both the corners on a box's bottom edge, within their border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<'corner-top-left-shape'>{1,2}\n  <corner-top-left-shape> = <corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-end-end-shape": { + "url": "$MDN_URL$/web/css/corner-end-end-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-end-end-shape CSS property specifies the shape of a box's block-end and inline-end corner, within its border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-end-start-shape": { + "url": "$MDN_URL$/web/css/corner-end-start-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-end-start-shape CSS property specifies the shape of a box's block-end and inline-start corner, within its border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-inline-end-shape": { + "url": "$MDN_URL$/web/css/corner-inline-end-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-inline-end-shape CSS property specifies the shape of both the corners on a box's inline-end edge, within their border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<'corner-top-left-shape'>{1,2}\n  <corner-top-left-shape> = <corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-inline-start-shape": { + "url": "$MDN_URL$/web/css/corner-inline-start-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-inline-start-shape CSS property specifies the shape of both the corners on a box's inline-start edge, within their border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<'corner-top-left-shape'>{1,2}\n  <corner-top-left-shape> = <corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-left-shape": { + "url": "$MDN_URL$/web/css/corner-left-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-left-shape CSS property specifies the shape of both the corners on a box's left-hand edge, within their border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<'corner-top-left-shape'>{1,2}\n  <corner-top-left-shape> = <corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-right-shape": { + "url": "$MDN_URL$/web/css/corner-right-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-right-shape CSS property specifies the shape of both the corners on a box's right-hand edge, within their border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<'corner-top-left-shape'>{1,2}\n  <corner-top-left-shape> = <corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-shape": { + "url": "$MDN_URL$/web/css/corner-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-shape shorthand CSS property specifies the shape of a box's corners, within the area specified by its border-radius property value.", + "formalSyntax": "<'corner-top-left-shape'>{1,4}\n  <corner-top-left-shape> = <corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )", + "values": { + "<corner-shape-value>": "A superellipse() or keyword equivalent describing the shape of the corner." + } + }, + "corner-start-end-shape": { + "url": "$MDN_URL$/web/css/corner-start-end-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-start-end-shape CSS property specifies the shape of a box's block-start and inline-end corner, within its border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-start-start-shape": { + "url": "$MDN_URL$/web/css/corner-start-start-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-start-start-shape CSS property specifies the shape of a box's block-start and inline-start corner, within its border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-top-left-shape": { + "url": "$MDN_URL$/web/css/corner-top-left-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-top-left-shape CSS property specifies the shape of a box's top-left corner, within its border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-top-right-shape": { + "url": "$MDN_URL$/web/css/corner-top-right-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-top-right-shape CSS property specifies the shape of a box's top-right corner, within its border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, + "corner-top-shape": { + "url": "$MDN_URL$/web/css/corner-top-shape", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The corner-top-shape CSS property specifies the shape of both the corners on a box's top edge, within their border-radius area.\n

For a full description of corner shape behavior and multiple examples, see the corner-shape shorthand property page.", + "formalSyntax": "<'corner-top-left-shape'>{1,2}\n  <corner-top-left-shape> = <corner-shape-value>\n  <corner-shape-value> = round | scoop | bevel | notch | square | squircle | <superellipse()>\n  <superellipse()> = superellipse( <number [-∞,∞]> | infinity | -infinity )" + }, "counter-increment": { "url": "$MDN_URL$/web/css/counter-increment", "status": [ @@ -10471,7 +11039,7 @@ "highDate": "2024-06-07" }, "doc": "The cursor CSS property sets the mouse cursor, if any, to show when the mouse pointer is over an element.\n

The cursor setting should inform users of the mouse operations that can be performed at the current location, including: text selection, activating help or context menus, copying content, resizing tables, and so on.\nYou can specify either the type of cursor using a keyword, or load a specific icon to use (with optional fallback images and mandatory keyword as a final fallback).", - "formalSyntax": "[ [ <url> | <url-set> ] [ <x> <y> ]? ]#? [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | grab | grabbing | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out ]\n  <url> = <url()> | <src()>\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )", + "formalSyntax": "<cursor-image>#? <cursor-predefined>\n  <cursor-image> = [ <url> | <url-set> ] [ <number>{2} ]?\n  <cursor-predefined> = auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | grab | grabbing | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out\n  <url> = <url()> | <src()>\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )", "values": { "<url>": "A url() or a comma separated list url(), url(), …, pointing to an image file.\nMore than one <url> may be provided as fallbacks, in case some cursor image types are not supported.\nA non-URL fallback (one or more of the keyword values) must be at the end of the fallback list.", "<x>, <y>": "Optional x- and y-coordinates indicating the cursor hotspot; the precise position within the cursor that is being pointed to.\n

The numbers are in units of image pixels.\nThey are relative to the top left corner of the image, which corresponds to 0 0, and are clamped within the boundaries of the cursor image.\nIf these values are not specified, they may be read from the file itself, and will otherwise default to the top-left corner of the image.", @@ -10661,6 +11229,27 @@ "text-top": "The line-over edge is used as the baseline, which is usually the top edge of the font's em box." } }, + "dynamic-range-limit": { + "url": "$MDN_URL$/web/css/dynamic-range-limit", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "ChromeAndroid": "136", + "Edge": "136", + "Opera": "121", + "Safari": "26", + "SafariIOS": "26" + }, + "doc": "The dynamic-range-limit CSS property specifies the maximum luminance allowed for High Dynamic Range (HDR) content.", + "formalSyntax": "standard | no-limit | constrained | <dynamic-range-limit-mix()>\n  <dynamic-range-limit-mix()> = dynamic-range-limit-mix( [ <'dynamic-range-limit'> && <percentage [0,100]> ]#{2,} )\n  <dynamic-range-limit> = standard | no-limit | constrained | <dynamic-range-limit-mix()>", + "values": { + "standard": "Specifies the maximum luminance as HDR reference white, which is the CSS color white.", + "no-limit": "Specifies the maximum luminance as much greater than that of HDR reference white. The precise level is not specified.", + "constrained": "Specifies the maximum luminance as somewhat greater than that of HDR reference white, such that a mix of Standard Dynamic Range (SDR) and HDR content can be comfortably viewed together. The precise level is not specified." + } + }, "empty-cells": { "url": "$MDN_URL$/web/css/empty-cells", "status": [ @@ -10698,7 +11287,8 @@ "Chrome": "123", "ChromeAndroid": "123", "Edge": "123", - "Opera": "109" + "Opera": "109", + "Safari": "preview" }, "baseline": { "level": "NONE" @@ -10837,7 +11427,7 @@ "lowDate": "2021-11-02", "highDate": "2024-05-02" }, - "doc": "The fit-content keyword is equivalent to fit-content(stretch). In practice, this means that the box will use the available space, but never more than max-content.\n

When used as laid out box size for width, height, min-width, min-height, max-width and max-height the maximum and minimum sizes refer to the content size.\n

The interpolate-size property and calc-size() function can be used to enable animations to and from fit-content.\n

\n

Note:\nThe CSS Sizing specification also defines the fit-content() function. This page details the keyword.\n

" + "doc": "The fit-content sizing keyword represents an element size that adapts to its content while staying within the limits of its container.\nThe keyword ensures that the element is never smaller than its minimum intrinsic size (min-content) or larger than its maximum intrinsic size (max-content).\n
\n

Note:\nThis keyword is different from the fit-content() function. The function is used for grid track sizing (for example in grid-template-columns and grid-auto-rows) and for laid-out box sizing for properties such as width, height, min-width, and max-height.\n

" }, "flex": { "url": "$MDN_URL$/web/css/flex", @@ -10848,8 +11438,8 @@ "Chrome": "29", "ChromeAndroid": "29", "Edge": "12", - "Firefox": "20", - "FirefoxAndroid": "20", + "Firefox": "22", + "FirefoxAndroid": "22", "Opera": "12.1", "Safari": "9", "SafariIOS": "9" @@ -10860,7 +11450,7 @@ "highDate": "2018-03-30" }, "doc": "The flex CSS shorthand property sets how a flex item will grow or shrink to fit the space available in its flex container.", - "formalSyntax": "none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]\n  <flex-grow> = <number [0,∞]>\n  <flex-shrink> = <number [0,∞]>\n  <flex-basis> = content | <'width'>\n  <width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", + "formalSyntax": "none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]\n  <flex-grow> = <number [0,∞]>\n  <flex-shrink> = <number [0,∞]>\n  <flex-basis> = content | <'width'>\n  <width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", "values": { "<'flex-grow'>": "Defines the flex-grow of the flex item. Negative values are considered invalid. Defaults to 1 when omitted. (initial is 0)", "<'flex-shrink'>": "Defines the flex-shrink of the flex item. Negative values are considered invalid. Defaults to 1 when omitted. (initial is 1)", @@ -10889,10 +11479,10 @@ "highDate": "2018-03-30" }, "doc": "The flex-basis CSS property sets the initial main size of a flex item. It sets the size of the content box unless otherwise set with box-sizing.\n
\n

Note:\nIt is recommended to use the flex shorthand with a keyword value like auto or initial instead of setting flex-basis on its own. The keyword values expand to reliable combinations of flex-grow, flex-shrink, and flex-basis, which help to achieve the commonly desired flex behaviors.\n

", - "formalSyntax": "content | <'width'>\n  <width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", + "formalSyntax": "content | <'width'>\n  <width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", "values": { - "<'width'>": "Any of the following units:\n", - "content": "Indicates automatic sizing, based on the flex item's content." + "content": "Indicates automatic sizing, based on the flex item's content.", + "<'width'>": "Any of the following units:\n" } }, "flex-direction": { @@ -10904,8 +11494,8 @@ "Chrome": "29", "ChromeAndroid": "29", "Edge": "12", - "Firefox": "20", - "FirefoxAndroid": "20", + "Firefox": "22", + "FirefoxAndroid": "22", "Opera": "12.1", "Safari": "9", "SafariIOS": "9" @@ -10967,7 +11557,7 @@ "lowDate": "2015-09-30", "highDate": "2018-03-30" }, - "doc": "The flex-grow CSS property sets the flex grow factor, which specifies how much of the flex container's positive free space, if any, should be assigned to the flex item's main size.\n

When the flex-container's main size is larger than the combined main sizes of its flex items, this positive free space can be distributed among the flex items, with each item's growth being their growth factor value as a proportion of the sum total of all the flex items' flex grow factors.\n

\n

Note:\nIt is recommended to use the flex shorthand with a keyword value like auto or initial instead of setting flex-basis on its own. The keyword values expand to reliable combinations of flex-grow, flex-shrink, and flex-basis, which help to achieve the commonly desired flex behaviors.\n

", + "doc": "The flex-grow CSS property sets the flex grow factor, which specifies how much of the flex container's positive free space, if any, should be assigned to the flex item's main size.\n

When the flex-container's main size is larger than the combined main sizes of its flex items, this positive free space can be distributed among the flex items, with each item's growth being their growth factor value as a proportion of the sum total of all the flex items' flex grow factors.\n

\n

Note:\nIt is recommended to use the flex shorthand with a keyword value like auto or initial instead of setting flex-grow on its own. The keyword values expand to reliable combinations of flex-grow, flex-shrink, and flex-basis, which help to achieve the commonly desired flex behaviors.\n

", "formalSyntax": "<number [0,∞]>", "values": { "<number>": "See <number>. Negative values are invalid. Defaults to 0, which prevents the flex item from growing." @@ -11130,7 +11720,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The font CSS shorthand property sets all the different properties of an element's font. Alternatively, it sets an element's font to a system font.", + "doc": "The font CSS shorthand property sets all the different properties of an element's font. Alternatively, it sets an element's font to a system font.", "formalSyntax": "[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-width-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'># ] | <system-family-name>\n  <font-style> = normal | italic | left | right | oblique <angle [-90deg,90deg]>?\n  <font-variant-css2> = normal | small-caps\n  <font-weight> = <font-weight-absolute> | bolder | lighter\n  <font-width-css3> = normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded\n  <font-size> = <absolute-size> | <relative-size> | <length-percentage [0,∞]> | math\n  <line-height> = normal | <number [0,∞]> | <length-percentage [0,∞]>\n  <font-family> = [ <family-name> | <generic-family> ]#\n  <system-family-name> = caption | icon | menu | message-box | small-caption | status-bar\n  <font-weight-absolute> = normal | bold | <number [1,1000]>\n  <length-percentage> = <length> | <percentage>\n  <family-name> = <string> | <custom-ident>+\n  <generic-family> = <generic-script-specific> | <generic-complete> | <generic-incomplete>\n  <generic-script-specific> = generic( fangsong ) | generic( kai ) | generic( khmer-mul ) | generic( nastaliq )\n  <generic-complete> = serif | sans-serif | system-ui | cursive | fantasy | math | monospace\n  <generic-incomplete> = ui-serif | ui-sans-serif | ui-monospace | ui-rounded", "values": { "<'font-style'>": "See the font-style CSS property.", @@ -11173,7 +11763,7 @@ "formalSyntax": "[ <family-name> | <generic-family> ]#\n  <family-name> = <string> | <custom-ident>+\n  <generic-family> = <generic-script-specific> | <generic-complete> | <generic-incomplete>\n  <generic-script-specific> = generic( fangsong ) | generic( kai ) | generic( khmer-mul ) | generic( nastaliq )\n  <generic-complete> = serif | sans-serif | system-ui | cursive | fantasy | math | monospace\n  <generic-incomplete> = ui-serif | ui-sans-serif | ui-monospace | ui-rounded", "values": { "<family-name>": "The name of a font family. This must be either a single <string> value or a space-separated sequence of <custom-ident> values. String values must be quoted but may contain any Unicode character. Custom identifiers are not quoted, but certain characters must be escaped.\n

It is good practice to quote font family names that contain white space, digits, or punctuation characters other than hyphens.\n

See also Valid family names.", - "<generic-name>": "Generic font families are a fallback mechanism, a means of preserving some of the style sheet author's intent when none of the specified fonts are available. Generic family names are keywords and must not be quoted. A generic font family should be the last item in the list of font family names. The following keywords are defined:\n

\n
serif
\n
\n

Glyphs have finishing strokes, flared or tapering ends, or have actual serifed endings.\n

For example: Lucida Bright, Lucida Fax, Palatino, Palatino Linotype, Palladio, URW Palladio, serif.\n

\n
sans-serif
\n
\n

Glyphs have stroke endings that are plain.\n

For example: Open Sans, Fira Sans, Lucida Sans, Lucida Sans Unicode, Trebuchet MS, Liberation Sans, Nimbus Sans L, sans-serif.\n

\n
monospace
\n
\n

All glyphs have the same fixed width.\n

For example: Fira Mono, DejaVu Sans Mono, Menlo, Consolas, Liberation Mono, Monaco, Lucida Console, monospace.\n

\n
cursive
\n
\n

Glyphs in cursive fonts generally have either joining strokes or other cursive characteristics beyond those of italic typefaces. The glyphs are partially or completely connected, and the result looks more like handwritten pen or brush writing than printed letter work.\n

For example: Brush Script MT, Brush Script Std, Lucida Calligraphy, Lucida Handwriting, Apple Chancery, cursive.\n

\n
fantasy
\n
\n

Fantasy fonts are primarily decorative fonts that contain playful representations of characters.\n

For example: Papyrus, Herculanum, Party LET, Curlz MT, Harrington, fantasy.\n

\n
system-ui
\n
\n

Glyphs are taken from the default user interface font on a given platform. Because typographic traditions vary widely across the world, this generic is provided for typefaces that don't map cleanly into the other generics.\n

\n
ui-serif
\n
\n

The default user interface serif font.\n

\n
ui-sans-serif
\n
\n

The default user interface sans-serif font.\n

\n
ui-monospace
\n
\n

The default user interface monospace font.\n

\n
ui-rounded
\n
\n

The default user interface font that has rounded features.\n

\n
math
\n
\n

This is for the particular stylistic concerns of representing mathematics: superscript and subscript, brackets that cross several lines, nesting expressions, and double struck glyphs with distinct meanings.\n

\n
emoji
\n
\n

Fonts that are specifically designed to render emoji.\n

\n
fangsong
\n
\n

A particular style of Chinese characters that are between serif-style Song and cursive-style Kai forms. This style is often used for government documents.\n

\n
" + "<generic-name>": "Generic font families are a fallback mechanism, a means of preserving some of the style sheet author's intent when none of the specified fonts are available. Generic family names are keywords and must not be quoted. A generic font family should be the last item in the list of font family names. The following keywords are defined:\n
\n
serif
\n
\n

Glyphs have finishing strokes, flared or tapering ends, or have actual serifed endings.\n

For example: Lucida Bright, Lucida Fax, Palatino, Palatino Linotype, Palladio, URW Palladio, serif.\n

\n
sans-serif
\n
\n

Glyphs have stroke endings that are plain.\n

For example: Open Sans, Fira Sans, Lucida Sans, Lucida Sans Unicode, Trebuchet MS, Liberation Sans, Nimbus Sans L, sans-serif.\n

\n
monospace
\n
\n

All glyphs have the same fixed width.\n

For example: Fira Mono, DejaVu Sans Mono, Menlo, Consolas, Liberation Mono, Monaco, Lucida Console, monospace.\n

\n
cursive
\n
\n

Glyphs in cursive fonts generally have either joining strokes or other cursive characteristics beyond those of italic typefaces. The glyphs are partially or completely connected, and the result looks more like handwritten pen or brush writing than printed letter work.\n

For example: Brush Script MT, Brush Script Std, Lucida Calligraphy, Lucida Handwriting, Apple Chancery, cursive.\n

\n
fantasy
\n
\n

Fantasy fonts are primarily decorative fonts that contain playful representations of characters.\n

For example: Papyrus, Herculanum, Party LET, Curlz MT, Harrington, fantasy.\n

\n
system-ui
\n
\n

Glyphs are taken from the default user interface font on a given platform. Because typographic traditions vary widely across the world, this generic is provided for typefaces that don't map cleanly into the other generics.\n

\n

Note:\nAs the name implies, system-ui is intended to make UI elements look like native apps, and not for typesetting large paragraphs of text. It may cause the displayed typeface to be undesirable for some users—for example, the default Windows CJK font may render Latin scripts poorly, and the lang attribute may not affect the displayed font. Some operating systems do not allow customizing system-ui, while browsers generally allow customizing the sans-serif font family. For large paragraphs, use sans-serif or some other non-UI font family instead.\n

\n
\n
ui-serif
\n
\n

The default user interface serif font.\n

\n
ui-sans-serif
\n
\n

The default user interface sans-serif font.\n

\n
ui-monospace
\n
\n

The default user interface monospace font.\n

\n
ui-rounded
\n
\n

The default user interface font that has rounded features.\n

\n
math
\n
\n

This is for the particular stylistic concerns of representing mathematics: superscript and subscript, brackets that cross several lines, nesting expressions, and double struck glyphs with distinct meanings.\n

\n
fangsong
\n
\n

A particular style of Chinese characters that are between serif-style Song and cursive-style Kai forms. This style is often used for government documents.\n

\n
" } }, "font-feature-settings": { @@ -11293,11 +11883,12 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, "doc": "The font-palette CSS property allows specifying one of the many palettes contained in a color font that a user agent may use for the font. Users can also override the values in a palette or create a new palette by using the @font-palette-values at-rule.\n
\n

Note:\nA font-palette palette takes precedence when coloring a font. The color property will not override a font palette, even if specified with !important.\n

", - "formalSyntax": "normal | light | dark | <palette-identifier> | <palette-mix()>\n  <palette-mix()> = palette-mix( <color-interpolation-method> , [ [ normal | light | dark | <palette-identifier> | <palette-mix()> ] && <percentage [0,100]>? ]#{2} )\n  <color-interpolation-method> = in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | xyz | xyz-d50 | xyz-d65\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue", + "formalSyntax": "normal | light | dark | <palette-identifier> | <palette-mix()>\n  <palette-mix()> = palette-mix( <color-interpolation-method> , [ [ normal | light | dark | <palette-identifier> | <palette-mix()> ] && <percentage [0,100]>? ]#{2} )\n  <color-interpolation-method> = in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? ]\n  <rectangular-color-space> = srgb | srgb-linear | display-p3 | display-p3-linear | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | <xyz-space>\n  <polar-color-space> = hsl | hwb | lch | oklch\n  <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue\n  <xyz-space> = xyz | xyz-d50 | xyz-d65", "values": { "normal": "Specifies the default color palette or the default glyph colorization (set by the font maker) to be used for the font. With this setting, the palette in the font at index 0 is rendered.", "light": "Specifies the first palette in the font that matches 'light' to be used for the font. Some fonts contain metadata that identify a palette as applicable for a light (close to white) background. If a font does not have this metadata, the light value behaves as normal.", @@ -11367,7 +11958,7 @@ "font-smooth": { "url": "$MDN_URL$/web/css/font-smooth", "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The font-smooth CSS property controls the application of anti-aliasing when fonts are rendered.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The font-smooth CSS property controls the application of anti-aliasing when fonts are rendered.", "formalSyntax": "auto | never | always | <absolute-size> | <length>" }, "font-stretch": { @@ -11490,8 +12081,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The font-synthesis-small-caps CSS property lets you specify whether or not the browser may synthesize small-caps typeface when it is missing in a font family. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters.\n

It is often convenient to use the shorthand property font-synthesis to control all typeface synthesis values.", "formalSyntax": "auto | none", @@ -11516,14 +12108,16 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The font-synthesis-style CSS property lets you specify whether or not the browser may synthesize the oblique typeface when it is missing in a font family.\n

It is often convenient to use the shorthand property font-synthesis to control all typeface synthesis values.", "formalSyntax": "auto | none | oblique-only", "values": { "auto": "Indicates that the missing oblique typeface may be synthesized by the browser if needed.", - "none": "Indicates that the synthesis of the missing oblique typeface by the browser is not allowed." + "none": "Indicates that the synthesis of the missing oblique typeface by the browser is not allowed.", + "oblique-only": "Same as auto, but no font synthesis occurs if font-style: italic is set." } }, "font-synthesis-weight": { @@ -11542,8 +12136,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The font-synthesis-weight CSS property lets you specify whether or not the browser may synthesize the bold typeface when it is missing in a font family.\n

It is often convenient to use the shorthand property font-synthesis to control all typeface synthesis values.", "formalSyntax": "auto | none", @@ -11572,7 +12167,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The font-variant CSS shorthand property allows you to set all the font variants for a font.\n

You can also set the <font-variant-css2> values of font-variant defined in CSS Level 2.1, (that is, normal or small-caps), by using the font shorthand.", + "doc": "The font-variant CSS shorthand property allows you to set all the font variants for a font.\n

You can also set the <font-variant-css2> values of font-variant defined in CSS Level 2.1, (that is, normal or small-caps), by using the font shorthand.", "formalSyntax": "normal | none | [ [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ] || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ] || [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ] || [ <east-asian-variant-values> || <east-asian-width-values> || ruby ] || [ sub | super ] || [ text | emoji | unicode ] ]\n  <common-lig-values> = common-ligatures | no-common-ligatures\n  <discretionary-lig-values> = discretionary-ligatures | no-discretionary-ligatures\n  <historical-lig-values> = historical-ligatures | no-historical-ligatures\n  <contextual-alt-values> = contextual | no-contextual\n  <feature-value-name> = <ident>\n  <numeric-figure-values> = lining-nums | oldstyle-nums\n  <numeric-spacing-values> = proportional-nums | tabular-nums\n  <numeric-fraction-values> = diagonal-fractions | stacked-fractions\n  <east-asian-variant-values> = jis78 | jis83 | jis90 | jis04 | simplified | traditional\n  <east-asian-width-values> = full-width | proportional-width", "values": { "normal": "Specifies a normal font face. Each longhand property has an initial value of normal.", @@ -11602,8 +12197,9 @@ "SafariIOS": "9.3" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-13" + "level": "HIGH", + "lowDate": "2023-03-13", + "highDate": "2025-09-13" }, "doc": "The font-variant-alternates CSS property controls the usage of alternate glyphs. These alternate glyphs may be referenced by alternative names defined in @font-feature-values.\n

The @font-feature-values at-rule can be used to associate, for a given font face, a human-readable name with a numeric index that controls a particular OpenType font feature. For features that select alternative glyphs (stylistic, styleset, character-variant, swash, ornament or annotation), the font-variant-alternates property can then reference the human-readable name in order to apply the associated feature.\n

This allows CSS rules to enable alternative glyphs without needing to know the specific index values that a particular font uses to control them.", "formalSyntax": "normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]\n  <feature-value-name> = <ident>", @@ -11688,6 +12284,8 @@ "Chrome": "131", "ChromeAndroid": "131", "Edge": "131", + "Firefox": "141", + "FirefoxAndroid": "141", "Opera": "116" }, "baseline": { @@ -11862,9 +12460,9 @@ "doc": "The forced-color-adjust CSS property allows authors to opt certain elements out of forced colors mode. This then restores the control of those values to CSS.", "formalSyntax": "auto | none | preserve-parent-color", "values": { - "auto": "The element's colors are adjusted by the user agent in forced colors mode. This is the default.", + "auto": "The element's colors are adjusted by the user agent in forced colors mode. This is the default value.", "none": "The element's colors are not automatically adjusted by the user agent in forced colors mode.", - "preserve-parent-color": "In forced colors mode, if the color property inherits from its parent (i.e., there is no cascaded value or the cascaded value is currentcolor, inherit, or another keyword that inherits from the parent), then it computes to the used color of its parent's color property. In all other cases, it behaves the same as none." + "preserve-parent-color": "In forced colors mode, if the color property inherits from its parent (i.e., there is no cascaded value or the cascaded value is currentColor, inherit, or another keyword that inherits from the parent), then it computes to the used color of its parent's color property. In all other cases, it behaves the same as none." } }, "gap": { @@ -11964,7 +12562,7 @@ "lowDate": "2017-10-17", "highDate": "2020-04-17" }, - "doc": "The grid-area CSS shorthand property specifies a grid item's size and location within a grid by contributing a line, a span, or nothing (automatic) to its grid placement, thereby specifying the edges of its grid area.", + "doc": "The grid-area CSS shorthand property specifies a grid item's size and location within a grid by contributing a line, a span, or nothing (automatic) to its grid placement, thereby specifying the edges of its grid area.", "formalSyntax": "<grid-line> [ / <grid-line> ]{0,3}\n  <grid-line> = auto | <custom-ident> | [ [ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>? ] | [ span && [ <integer [1,∞]> || <custom-ident> ] ]", "values": { "auto": "Is a keyword indicating that the property contributes nothing to the grid item's placement, indicating auto-placement or a default span of 1.", @@ -12003,7 +12601,7 @@ "min-content": "Is a keyword representing the largest minimal content contribution of the grid items occupying the grid track.", "minmax(min, max)": "Is a functional notation that defines a size range greater than or equal to min and less than or equal to max. If max is smaller than min, then max is ignored and the function is treated as min. As a maximum, a <flex> value sets the track's flex factor. As a minimum, it is treated as zero (or minimal content, if the grid container is sized under a minimal content constraint).", "fit-content( [ <length> | <percentage> ] )": "Represents the formula min(max-content, max(auto, argument)), which is calculated similar to auto (i.e., minmax(auto, max-content)), except that the track size is clamped at argument if it is greater than the auto minimum.", - "auto": "As a maximum represents the largest max-content size of the items in that track.\n

As a minimum represents the largest minimum size of items in that track (specified by the min-width/min-height of the items). This is often, though not always, the min-content size.\n

If used outside of minmax() notation, auto represents the range between the minimum and maximum described above. This behaves similarly to minmax(min-content,max-content) in most cases.\n

\n

Note: auto track sizes (and only auto track sizes) can be stretched by the align-content and justify-content properties. Therefore by default, an auto sized track will take up any remaining space in the grid container.\n

" + "auto": "As a maximum represents the largest max-content size of the items in that track.\n

As a minimum represents the largest minimum size of items in that track (specified by the min-width/min-height of the items). This is often, though not always, the min-content size.\n

If used outside of minmax() notation, auto represents the range between the minimum and maximum described above. This behaves similarly to minmax(min-content,max-content) in most cases.\n

\n

Note:\nauto track sizes (and only auto track sizes) can be stretched by the align-content and justify-content properties. Therefore by default, an auto sized track will take up any remaining space in the grid container.\n

" } }, "grid-auto-flow": { @@ -12064,7 +12662,7 @@ "min-content": "Is a keyword representing the largest minimal content contribution of the grid items occupying the grid track.", "minmax(min, max)": "Is a functional notation that defines a size range greater than or equal to min and less than or equal to max. If max is smaller than min, then max is ignored and the function is treated as min. As a maximum, a <flex> value sets the track's flex factor. As a minimum, it is treated as zero (or minimal content, if the grid container is sized under a minimal content constraint).", "fit-content( [ <length> | <percentage> ] )": "Represents the formula min(max-content, max(auto, argument)), which is calculated similar to auto (i.e., minmax(auto, max-content)), except that the track size is clamped at argument if it is greater than the auto minimum.", - "auto": "As a maximum represents the largest max-content size of the items in that track.\n

As a minimum represents the largest minimum size of items in that track (specified by the min-width/min-height of the items). This is often, though not always, the min-content size.\n

If used outside of minmax() notation, auto represents the range between the minimum and maximum described above. This behaves similarly to minmax(min-content,max-content) in most cases.\n

\n

Note: auto track sizes (and only auto track sizes) can be stretched by the align-content and justify-content properties. Therefore by default, an auto sized track will take up any remaining space in the grid container.\n

" + "auto": "As a maximum represents the largest max-content size of the items in that track.\n

As a minimum represents the largest minimum size of items in that track (specified by the min-width/min-height of the items). This is often, though not always, the min-content size.\n

If used outside of minmax() notation, auto represents the range between the minimum and maximum described above. This behaves similarly to minmax(min-content,max-content) in most cases.\n

\n

Note:\nauto track sizes (and only auto track sizes) can be stretched by the align-content and justify-content properties. Therefore by default, an auto sized track will take up any remaining space in the grid container.\n

" } }, "grid-column": { @@ -12087,7 +12685,7 @@ "lowDate": "2017-10-17", "highDate": "2020-04-17" }, - "doc": "The grid-column CSS shorthand property specifies a grid item's size and location within a grid column by contributing a line, a span, or nothing (automatic) to its grid placement, thereby specifying the inline-start and inline-end edge of its grid area.", + "doc": "The grid-column CSS shorthand property specifies a grid item's size and location within a grid column by contributing a line, a span, or nothing (automatic) to its grid placement, thereby specifying the inline-start and inline-end edge of its grid area.", "formalSyntax": "<grid-line> [ / <grid-line> ]?\n  <grid-line> = auto | <custom-ident> | [ [ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>? ] | [ span && [ <integer [1,∞]> || <custom-ident> ] ]", "values": { "auto": "Is a keyword indicating that the property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of 1.", @@ -12119,10 +12717,10 @@ "doc": "The grid-column-end CSS property specifies a grid item's end position within the grid column by contributing a line, a span, or nothing (automatic) to its grid placement, thereby specifying the block-end edge of its grid area.", "formalSyntax": "<grid-line>\n  <grid-line> = auto | <custom-ident> | [ [ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>? ] | [ span && [ <integer [1,∞]> || <custom-ident> ] ]", "values": { - "auto": "Is a keyword indicating that the property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of 1.", - "<custom-ident>": "If there is a named line with the name '<custom-ident>-end', it contributes the first such line to the grid item's placement.\n
\n

Note:\nNamed grid areas automatically generate implicit named lines of this form, so specifying grid-column-end: foo; will choose the end edge of that named grid area (unless another line named foo-end was explicitly specified before it).\n

\n

Otherwise, this is treated as if the integer 1 had been specified along with the <custom-ident>.", + "auto": "Contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of 1. This is the default value.", + "<custom-ident>": "Contributes the first line to the grid item's placement if there is a named line with the name <custom-ident>-end.\n

\n

Note:\nNamed grid areas automatically generate implicit named lines of this form, so specifying grid-column-end: foo; will choose the end edge of that named grid area (unless another line named foo-end was explicitly specified before it).\n

\n

Otherwise, this is treated as if the integer 1 had been specified along with the <custom-ident>.", "<integer> && <custom-ident>?": "Contributes the nth grid line to the grid item's placement. If a negative integer is given, it instead counts in reverse, starting from the end edge of the explicit grid.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines are assumed to have that name for the purpose of finding this position.\n

An <integer> value of 0 is invalid.", - "span && [ <integer> || <custom-ident> ]": "Contributes a grid span to the grid item's placement such that the column end edge of the grid item's grid area is n lines from the start edge.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines on the side of the explicit grid corresponding to the search direction are assumed to have that name for the purpose of counting this span.\n

If the <integer> is omitted, it defaults to 1. Negative integers or 0 are invalid.\n

The <custom-ident> cannot take the span value." + "span && [ <integer> || <custom-ident> ]": "Contributes a grid span to the grid item's placement such that the column end edge of the grid item's grid area is n lines from the start edge.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines on the side of the explicit grid corresponding to the search direction are assumed to have that name for the purpose of counting this span.\n

If the <integer> is omitted, it defaults to 1. Negative integers or 0 are invalid.\n

The <custom-ident> cannot take the span and auto values." } }, "grid-column-start": { @@ -12151,7 +12749,7 @@ "auto": "A keyword indicating that the property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of 1.", "<custom-ident>": "If there is a named line with the name <custom-ident>-start, it contributes the first such line to the grid item's placement.\n

\n

Note:\nNamed grid areas automatically generate implicit named lines of this form, so specifying grid-column-start: foo; will choose the start edge of that named grid area (unless another line named foo-start was explicitly specified before it).\n

\n

Otherwise, this is treated as if the integer 1 had been specified along with the <custom-ident>.", "<integer> && <custom-ident>?": "Contributes the nth grid line to the grid item's placement. If a negative integer is given, it counts in reverse, starting from the end edge of the explicit grid.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines are assumed to have that name for the purpose of finding this position.\n

An <integer> value of 0 is invalid.", - "span && [ <integer> || <custom-ident> ]": "Contributes a grid span to the grid item's placement, such that the column start edge of the grid item's grid area is n lines from the end edge.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines on the side of the explicit grid corresponding to the search direction are assumed to have that name for the purpose of counting this span.\n

If the <integer> is omitted, it defaults to 1. Negative integers and 0 are invalid.\n

The <custom-ident> cannot take the span value." + "span && [ <integer> || <custom-ident> ]": "Contributes a grid span to the grid item's placement, such that the column start edge of the grid item's grid area is n lines from the end edge.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines on the side of the explicit grid corresponding to the search direction are assumed to have that name for the purpose of counting this span.\n

If the <integer> is omitted, it defaults to 1. Negative integers and 0 are invalid.\n

The <custom-ident> cannot take the span and auto values." } }, "grid-row": { @@ -12174,7 +12772,7 @@ "lowDate": "2017-10-17", "highDate": "2020-04-17" }, - "doc": "The grid-row CSS shorthand property specifies a grid item's size and location within a grid row by contributing a line, a span, or nothing (automatic) to its grid placement, thereby specifying the inline-start and inline-end edge of its grid area.", + "doc": "The grid-row CSS shorthand property specifies a grid item's size and location within a grid row by contributing a line, a span, or nothing (automatic) to its grid placement, thereby specifying the inline-start and inline-end edge of its grid area.", "formalSyntax": "<grid-line> [ / <grid-line> ]?\n  <grid-line> = auto | <custom-ident> | [ [ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>? ] | [ span && [ <integer [1,∞]> || <custom-ident> ] ]", "values": { "auto": "Is a keyword indicating that the property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of 1.", @@ -12207,7 +12805,7 @@ "formalSyntax": "<grid-line>\n  <grid-line> = auto | <custom-ident> | [ [ <integer [-∞,-1]> | <integer [1,∞]> ] && <custom-ident>? ] | [ span && [ <integer [1,∞]> || <custom-ident> ] ]", "values": { "auto": "Is a keyword indicating that the property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of 1.", - "<custom-ident>": "If there is a named line with the name '<custom-ident>-end', it contributes the first such line to the grid item's placement.\n

\n

Note:\nNamed grid areas automatically generate implicit named lines of this form, so specifying grid-row-end: foo; will choose the end edge of that named grid area (unless another line named foo-end was explicitly specified before it).\n

\n

Otherwise, this is treated as if the integer 1 had been specified along with the <custom-ident>.\n

The <custom-ident> cannot take the span value.", + "<custom-ident>": "If there is a named line with the name '<custom-ident>-end', it contributes the first such line to the grid item's placement.\n

\n

Note:\nNamed grid areas automatically generate implicit named lines of this form, so specifying grid-row-end: foo; will choose the end edge of that named grid area (unless another line named foo-end was explicitly specified before it).\n

\n

Otherwise, this is treated as if the integer 1 had been specified along with the <custom-ident>.\n

The <custom-ident> cannot take the span and auto values.", "<integer> && <custom-ident>?": "Contributes the nth grid line to the grid item's placement. If a negative integer is given, it instead counts in reverse, starting from the end edge of the explicit grid.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines are assumed to have that name for the purpose of finding this position.\n

An <integer> value of 0 is invalid.", "span && [ <integer> || <custom-ident> ]": "Contributes a grid span to the grid item's placement such that the row end edge of the grid item's grid area is n lines from the start edge.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines on the side of the explicit grid corresponding to the search direction are assumed to have that name for the purpose of counting this span.\n

If the <integer> is omitted, it defaults to 1. Negative integers or 0 are invalid." } @@ -12238,7 +12836,7 @@ "auto": "Is a keyword indicating that the property contributes nothing to the grid item's placement, indicating auto-placement, an automatic span, or a default span of 1.", "<custom-ident>": "If there is a named line with the name '<custom-ident>-start', it contributes the first such line to the grid item's placement.\n

\n

Note:\nNamed grid areas automatically generate implicit named lines of this form, so specifying grid-row-start: foo; will choose the start edge of that named grid area (unless another line named foo-start was explicitly specified before it).\n

\n

Otherwise, this is treated as if the integer 1 had been specified along with the <custom-ident>.", "<integer> && <custom-ident>?": "Contributes the nth grid line to the grid item's placement. If a negative integer is given, it instead counts in reverse, starting from the end edge of the explicit grid.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines are assumed to have that name for the purpose of finding this position.\n

An <integer> value of 0 is invalid.", - "span && [ <integer> || <custom-ident> ]": "Contributes a grid span to the grid item's placement; such that the row start edge of the grid item's grid area is n lines from the end edge.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines on the side of the explicit grid, corresponding to the search direction, are assumed to have that name for the purpose of counting this span.\n

If the <integer> is omitted, it defaults to 1. Negative integers or 0 are invalid.\n

The <custom-ident> cannot take the span value." + "span && [ <integer> || <custom-ident> ]": "Contributes a grid span to the grid item's placement; such that the row start edge of the grid item's grid area is n lines from the end edge.\n

If a name is given as a <custom-ident>, only lines with that name are counted. If not enough lines with that name exist, all implicit grid lines on the side of the explicit grid, corresponding to the search direction, are assumed to have that name for the purpose of counting this span.\n

If the <integer> is omitted, it defaults to 1. Negative integers or 0 are invalid.\n

The <custom-ident> cannot take the span and auto values." } }, "grid-template": { @@ -12264,7 +12862,7 @@ "doc": "The grid-template CSS property is a shorthand property for defining grid columns, grid rows, and grid areas.", "formalSyntax": "none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?\n  <grid-template-rows> = none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\n  <grid-template-columns> = none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\n  <line-names> = '[' <custom-ident>* ']'\n  <track-size> = <track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( <length-percentage [0,∞]> )\n  <explicit-track-list> = [ <line-names>? <track-size> ]+ <line-names>?\n  <track-list> = [ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?\n  <auto-track-list> = [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat> [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?\n  <line-name-list> = [ <line-names> | <name-repeat> ]+\n  <track-breadth> = <length-percentage [0,∞]> | <flex [0,∞]> | min-content | max-content | auto\n  <inflexible-breadth> = <length-percentage [0,∞]> | min-content | max-content | auto\n  <length-percentage> = <length> | <percentage>\n  <track-repeat> = repeat( [ <integer [1,∞]> ] , [ <line-names>? <track-size> ]+ <line-names>? )\n  <fixed-size> = <fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )\n  <fixed-repeat> = repeat( [ <integer [1,∞]> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )\n  <auto-repeat> = repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )\n  <name-repeat> = repeat( [ <integer [1,∞]> | auto-fill ] , <line-names>+ )\n  <fixed-breadth> = <length-percentage [0,∞]>", "values": { - "none": "Is a keyword that sets all three longhand properties to none, meaning there is no explicit grid. There are no named grid areas. Rows and columns will be implicitly generated; their size will be determined by the grid-auto-rows and grid-auto-columns properties.", + "none": "Sets all three longhand properties to none, meaning there is no explicit grid. There are no named grid areas. Rows and columns will be implicitly generated; their size will be determined by the grid-auto-rows and grid-auto-columns properties. This is the default value.", "<'grid-template-rows'> / <'grid-template-columns'>": "Sets grid-template-rows and grid-template-columns to the specified values, and sets grid-template-areas to none.", "[ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?": "Sets grid-template-areas to the strings listed, grid-template-rows to the track sizes following each string (filling in auto for any missing sizes), and splicing in the named lines defined before/after each size, and grid-template-columns to the track listing specified after the slash (or none, if not specified).\n

\n

Note:\nThe repeat() function isn't allowed in these track listings, as the tracks are intended to visually line up one-to-one with the rows/columns in the \"ASCII art\".\n

" } @@ -12322,12 +12920,12 @@ "none": "Indicates that there is no explicit grid. Any columns will be implicitly generated and their size will be determined by the grid-auto-columns property.", "[line-name]": "A <custom-ident> specifying a name for the line in that location. The ident may be any valid string other than the reserved words span and auto. Lines may have multiple names separated by a space inside the square brackets, for example [line-name-a line-name-b].", "<length>": "A non-negative length, giving the width of the column.", - "<percentage>": "Is a non-negative <percentage> value relative to the inline size of the grid container. If the size of the grid container depends on the size of its tracks, then the percentage must be treated as auto.\nThe intrinsic size contributions of the track may be adjusted to the size of the grid container and increase the final size of the track by the minimum amount that would result in honoring the percentage.", + "<percentage>": "A non-negative <percentage> value relative to the inline size of the grid container. If the size of the grid container depends on the size of its tracks, the browser treats the percentage as auto.\nThe browser may adjust the intrinsic size contributions of the track to the size of the grid container and may increase the final size of the track by the minimum amount that would result in honoring the percentage.", "<flex>": "Is a non-negative dimension with the unit fr specifying the track's flex factor. Each <flex>-sized track takes a share of the remaining space in proportion to its flex factor.\n

When appearing outside a minmax() notation, it implies an automatic minimum (i.e., minmax(auto, <flex>)).", - "max-content": "Is a keyword representing the largest maximal content contribution of the grid items occupying the grid track. For example, if the first element of the grid track contains the sentence \"Repetitio est mater studiorum\" and the second element contains the sentence \"Dum spiro, spero\", maximal content contribution will be defined by the size of the largest sentence among all of the grid elements - \"Repetitio est mater studiorum\".", - "min-content": "Is a keyword representing the largest minimal content contribution of the grid items occupying the grid track. For example, if the first element of the grid track contains the sentence \"Repetitio est mater studiorum\" and the second element contains the sentence \"Dum spiro, spero\", minimal content contribution will be defined by the size of the largest word among all of the sentences in the grid elements - \"studiorum\".", + "max-content": "Is a keyword representing the largest maximal content contribution of the grid items occupying the grid track. For example, if the first element of the grid track contains the sentence \"Repetitio est mater studiorum\" and the second element contains the sentence \"Dum spiro, spero\", maximal content contribution will be defined by the size of the largest sentence among all of the grid elements - \"Repetitio est mater studiorum\".", + "min-content": "Is a keyword representing the largest minimal content contribution of the grid items occupying the grid track. For example, if the first element of the grid track contains the sentence \"Repetitio est mater studiorum\" and the second element contains the sentence \"Dum spiro, spero\", minimal content contribution will be defined by the size of the largest word among all of the sentences in the grid elements - \"studiorum\".", "minmax(min, max)": "Is a functional notation that defines a size range greater than or equal to min and less than or equal to max. If max is smaller than min, then max is ignored and the function is treated as min. As a maximum, a <flex> value sets the track's flex factor. It is invalid as a minimum.", - "auto": "As a maximum represents the largest max-content size of the items in that track.\n

As a minimum represents the largest minimum size of items in that track (specified by the min-width/min-height of the items). This is often, though not always, the min-content size.\n

If used outside of minmax() notation, auto represents the range between the minimum and maximum described above. This behaves similarly to minmax(min-content,max-content) in most cases.\n

\n

Note: auto track sizes (and only auto track sizes) can be stretched by the align-content and justify-content properties. Therefore by default, an auto sized track will take up any remaining space in the grid container.\n

", + "auto": "As a maximum value, it represents the largest max-content size of the items in that track.\n

As a minimum value, it represents the largest minimum size of items in that track (specified by the min-width/min-height properties of the items). This often corresponds to the min-content size, but not always.\n

If used outside of minmax() notation, auto represents the range between the minimum and maximum values described above. In most cases, this behaves similarly to minmax(min-content,max-content).\n

\n

Note:\nauto track sizes (and only auto track sizes) can be stretched by the align-content and justify-content properties. Therefore, by default, an auto-sized track will take up any remaining space in the grid container.\n

", "fit-content( [ <length> | <percentage> ] )": "Represents the formula max(minimum, min(limit, max-content)), where minimum represents an auto minimum (which is often, but not always, equal to a min-content minimum), and limit is the track sizing function passed as an argument to fit-content(). This is essentially calculated as the smaller of minmax(auto, max-content) and minmax(auto, limit).", "repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )": "Represents a repeated fragment of the track list, allowing a large number of columns that exhibit a recurring pattern to be written in a more compact form.", "masonry": "The masonry value indicates that this axis should be laid out according to the masonry algorithm.", @@ -12357,19 +12955,19 @@ "doc": "The grid-template-rows CSS property defines the line names and track sizing functions of the grid rows.", "formalSyntax": "none | <track-list> | <auto-track-list> | subgrid <line-name-list>?\n  <track-list> = [ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?\n  <auto-track-list> = [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat> [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?\n  <line-name-list> = [ <line-names> | <name-repeat> ]+\n  <line-names> = '[' <custom-ident>* ']'\n  <track-size> = <track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( <length-percentage [0,∞]> )\n  <track-repeat> = repeat( [ <integer [1,∞]> ] , [ <line-names>? <track-size> ]+ <line-names>? )\n  <fixed-size> = <fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )\n  <fixed-repeat> = repeat( [ <integer [1,∞]> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )\n  <auto-repeat> = repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )\n  <name-repeat> = repeat( [ <integer [1,∞]> | auto-fill ] , <line-names>+ )\n  <track-breadth> = <length-percentage [0,∞]> | <flex [0,∞]> | min-content | max-content | auto\n  <inflexible-breadth> = <length-percentage [0,∞]> | min-content | max-content | auto\n  <length-percentage> = <length> | <percentage>\n  <fixed-breadth> = <length-percentage [0,∞]>", "values": { - "none": "Is a keyword meaning that there is no explicit grid. Any rows will be implicitly generated and their size will be determined by the grid-auto-rows property.", + "none": "A keyword meaning that there is no explicit grid. Any rows will be implicitly generated and their size will be determined by the grid-auto-rows property.", "[line-name]": "A <custom-ident> specifying a name for the line in that location. The ident may be any valid string other than the reserved words span and auto. Lines may have multiple names separated by a space inside the square brackets, for example [line-name-a line-name-b].", - "<length>": "Is a non-negative length.", - "<percentage>": "Is a non-negative <percentage> value, relative to the block size of the grid container. If the size of the grid container depends on the size of its tracks, then the percentage must be treated as auto for the purpose of calculating the intrinsic size of the grid container. It must then be resolved against the resulting grid container size for the purpose of laying out the grid and its items. The intrinsic size contributions of the track may be adjusted to the size of the grid container and may increase the final size of the track by the minimum amount that would result in honoring the percentage.", - "<flex>": "Is a non-negative dimension with the unit fr specifying the track's flex factor. Each <flex>-sized track takes a share of the remaining space in proportion to its flex factor. When appearing outside a minmax() notation, it implies an automatic minimum (i.e., minmax(auto, <flex>)).", - "max-content": "Is a keyword representing the largest maximal content contribution of the grid items occupying the grid track.", - "min-content": "Is a keyword representing the largest minimal content contribution of the grid items occupying the grid track.", - "minmax(min, max)": "Is a functional notation that defines a size range, greater than or equal to min, and less than or equal to max. If max is smaller than min, then max is ignored and the function is treated as min. As a maximum, a <flex> value sets the track's flex factor. It is invalid as a minimum.", - "auto": "As a maximum represents the largest max-content size of the items in that track.\n

As a minimum represents the largest minimum size of items in that track (specified by the min-width/min-height of the items). This is often, though not always, the min-content size.\n

If used outside of minmax() notation, auto represents the range between the minimum and maximum described above. This behaves similarly to minmax(min-content,max-content) in most cases.\n

\n

Note: auto track sizes (and only auto track sizes) can be stretched by the align-content and justify-content properties. Therefore by default, an auto sized track will take up any remaining space in the grid container.\n

", + "<length>": "A non-negative length.", + "<percentage>": "A non-negative <percentage> value, relative to the block size of the grid container. If the size of the grid container depends on the size of its tracks, the browser treats the percentage as auto for the purpose of calculating the intrinsic size of the grid container. The percentage is then resolved against the resulting grid container size for laying out the grid and its items. The browser may adjust the intrinsic size contributions of the track to the size of the grid container and may increase the final size of the track by the minimum amount that would result in honoring the percentage.", + "<flex>": "A non-negative dimension with the unit fr specifying the track's flex factor. Each <flex>-sized track takes a share of the remaining space in proportion to its flex factor. When appearing outside a minmax() notation, it implies an automatic minimum (i.e., minmax(auto, <flex>)).", + "max-content": "A keyword representing the largest maximal content contribution of the grid items occupying the grid track.", + "min-content": "A keyword representing the largest minimal content contribution of the grid items occupying the grid track.", + "minmax(min, max)": "A functional notation that defines a size range, greater than or equal to min, and less than or equal to max. If max is smaller than min, then max is ignored and the function is treated as min. As a maximum, a <flex> value sets the track's flex factor. It is invalid as a minimum.", + "auto": "As a maximum value, it represents the largest max-content size of the items in that track.\n

As a minimum value, it represents the largest minimum size of items in that track (specified by the min-width/min-height properties of the items). This often corresponds to the min-content size, but not always.\n

If used outside of minmax() notation, auto represents the range between the minimum and maximum values described above. In most cases, this behaves similarly to minmax(min-content,max-content).\n

\n

Note:\nauto track sizes (and only auto track sizes) can be stretched by the align-content and justify-content properties. Therefore, by default, an auto-sized track will take up any remaining space in the grid container.\n

", "fit-content( [ <length> | <percentage> ] )": "Represents the formula min(max-content, max(auto, argument)), which is calculated similar to auto (i.e., minmax(auto, max-content)), except that the track size is clamped at argument if it is greater than the auto minimum.", "repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )": "Represents a repeated fragment of the track list, allowing a large number of rows that exhibit a recurring pattern to be written in a more compact form.", - "masonry": "The masonry value indicates that this axis should be laid out according to the masonry algorithm.", - "subgrid": "The subgrid value indicates that the grid will adopt the spanned portion of its parent grid in that axis. Rather than being specified explicitly, the sizes of the grid rows/columns will be taken from the parent grid's definition." + "masonry": "Indicates that this axis should be laid out according to the masonry algorithm.", + "subgrid": "Indicates that the grid will adopt the spanned portion of its parent grid in that axis. Rather than being specified explicitly, the sizes of the grid rows/columns will be taken from the parent grid's definition." } }, "guides": { @@ -12419,7 +13017,7 @@ "highDate": "2018-01-29" }, "doc": "The height CSS property specifies the height of an element. By default, the property defines the height of the content area. If box-sizing is set to border-box, however, it instead determines the height of the border area.", - "formalSyntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", + "formalSyntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", "values": { "<length>": "Defines the height as a distance value.", "<percentage>": "Defines the height as a percentage of the containing block's height.", @@ -12428,7 +13026,7 @@ "min-content": "The intrinsic minimum height.", "fit-content": "Use the available space, but not more than max-content, i.e., min(max-content, max(min-content, stretch)).", "fit-content(<length-percentage>)": "Uses the fit-content formula with the available space replaced by the specified argument, i.e., min(max-content, max(min-content, <length-percentage>)).", - "stretch": "Sets the height of the element's margin box to the height of its containing block. It attempts to make the margin box fill the available space in the containing block, so in a way behaving similar to 100% but applying the resulting size to the margin box rather than the box determined by box-sizing.\n
\n

Note:\nTo check aliases used by browsers for the stretch value and its implementation status, see the Browser compatibility section.\n

" + "stretch": "Sets the height of the element's margin box to the height of its containing block. It attempts to make the margin box fill the available space in the containing block, so in a way behaving similar to 100% but applying the resulting size to the margin box rather than the box determined by box-sizing." } }, "hyphenate-character": { @@ -12622,7 +13220,7 @@ "baseline": { "level": "NONE" }, - "doc": "The initial-letter CSS property sets the size and sink for dropped, raised, and sunken initial letters. This property applies to ::first-letter pseudo-elements and inline-level first children of block containers.", + "doc": "The initial-letter CSS property sets the size and sink for dropped, raised, and sunken initial letters. This property applies to ::first-letter pseudo-elements and inline-level first children of block containers.", "formalSyntax": "normal | <number [1,∞]> <integer [1,∞]> | <number [1,∞]> && [ drop | raise ]?", "values": { "normal": "No special initial-letter effect. Text behaves as normal.", @@ -12651,7 +13249,7 @@ "highDate": "2022-07-15" }, "doc": "The inline-size CSS property defines the size of an element's block along the inline axis. If the writing-mode is horizontal, it corresponds to the width; if the writing mode is vertical, it corresponds to the height. A related property is block-size, which defines the other dimension of the element.", - "formalSyntax": "<'width'>\n  <width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" + "formalSyntax": "<'width'>\n  <width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, "inset": { "url": "$MDN_URL$/web/css/inset", @@ -12947,7 +13545,7 @@ "highDate": "2019-01-27" }, "doc": "The CSS justify-items property defines the default justify-self for all items of the box, giving them all a default way of justifying each box along the appropriate axis.", - "formalSyntax": "normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ] | anchor-center\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", + "formalSyntax": "normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ] | anchor-center | dialog\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", "values": { "normal": "The effect of this keyword is dependent of the layout mode we are in:\n", "start": "The item is packed flush to each other toward the start edge of the alignment container in the appropriate axis.", @@ -12998,7 +13596,7 @@ "highDate": "2020-04-17" }, "doc": "The CSS justify-self property sets the way a box is justified inside its alignment container along the appropriate axis.", - "formalSyntax": "auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | anchor-center\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", + "formalSyntax": "auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | anchor-center | dialog\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", "values": { "auto": "The value used is the value of the justify-items property of the parents box, unless the box has no parent, or is absolutely positioned, in these cases, auto represents normal.", "normal": "The effect of this keyword is dependent of the layout mode we are in:\n", @@ -13134,15 +13732,12 @@ "status": [ "StandardTrack" ], - "compatibility": { - "Safari": "18.2", - "SafariIOS": "18.2" - }, + "compatibility": {}, "baseline": { "level": "NONE" }, "doc": "The line-clamp CSS property allows limiting of the contents of a block to the specified number of lines.\n
\n

Note:\nFor legacy support, the vendor-prefixed -webkit-line-clamp property only works in combination with the display property set to -webkit-box or -webkit-inline-box and the -webkit-box-orient property set to vertical. Despite these prefixed properties being deprecated, the co-dependency of these three properties is a fully specified behavior and will continue to be supported.\n

\n

In most cases you will also want to set overflow to hidden, otherwise the contents won't be clipped but an ellipsis will still be shown after the specified number of lines.\n

When applied to anchor elements, the truncating can happen in the middle of the text, not necessarily at the end.", - "formalSyntax": "none | <integer [1,∞]> || <'block-ellipsis'>\n  <block-ellipsis> = none | auto | <string>", + "formalSyntax": "none | [ <integer [1,∞]> || <'block-ellipsis'> ] -webkit-legacy?\n  <block-ellipsis> = no-ellipsis | auto | <string>", "values": { "none": "This value specifies that the content won't be clamped.", "<integer>": "This value specifies the number of lines after which the content will be clamped. It must be greater than 0." @@ -13181,12 +13776,8 @@ "url": "$MDN_URL$/web/css/line-height-step", "status": [ "Experimental", - "StandardTrack" + "Deprecated" ], - "compatibility": {}, - "baseline": { - "level": "NONE" - }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The line-height-step CSS property sets the step unit for line box heights. When the property is set, line box heights are rounded up to the closest multiple of the unit.", "formalSyntax": "<length [0,∞]>", "values": { @@ -13213,7 +13804,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The list-style CSS shorthand property allows you to set all the list style properties at once.", + "doc": "The list-style CSS shorthand property allows you to set all the list style properties at once.", "formalSyntax": "<'list-style-position'> || <'list-style-image'> || <'list-style-type'>\n  <list-style-position> = inside | outside\n  <list-style-image> = <image> | none\n  <list-style-type> = <counter-style> | <string> | none\n  <image> = <url> | <gradient>\n  <counter-style> = <counter-style-name> | <symbols()>\n  <url> = <url()> | <src()>\n  <symbols()> = symbols( <symbols-type>? [ <string> | <image> ]+ )\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )\n  <symbols-type> = cyclic | numeric | alphabetic | symbolic | fixed", "values": { "list-style-type": "A <counter-style>, <string>, or none. If omitted in the shorthand, the default disc value is used. See list-style-type.", @@ -13790,7 +14381,7 @@ "doc": "The mask CSS shorthand property hides an element (partially or fully) by masking or clipping a specified area of the image. It is a shorthand for all the mask-* properties. The property accepts one or more comma-separated values, where each value corresponds to a <mask-layer>.", "formalSyntax": "<mask-layer>#\n  <mask-layer> = <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || <geometry-box> || [ <geometry-box> | no-clip ] || <compositing-operator> || <masking-mode>\n  <mask-reference> = none | <image> | <mask-source>\n  <position> = [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right ] && [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]\n  <bg-size> = [ <length-percentage [0,∞]> | auto ]{1,2} | cover | contain\n  <repeat-style> = repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}\n  <geometry-box> = <shape-box> | fill-box | stroke-box | view-box\n  <compositing-operator> = add | subtract | intersect | exclude\n  <masking-mode> = alpha | luminance | match-source\n  <image> = <url> | <gradient>\n  <mask-source> = <url>\n  <length-percentage> = <length> | <percentage>\n  <shape-box> = <visual-box> | margin-box\n  <url> = <url()> | <src()>\n  <visual-box> = content-box | padding-box | border-box\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )", "values": { - "<mask-layer>": "One or more comma-separated mask layers, consisting of the following components:\n

\n
<mask-reference>
\n
\n

Sets the mask image source. See mask-image.\n

\n
<masking-mode>
\n
\n

Sets the masking mode of the mask image. See mask-mode.\n

\n
<position>
\n
\n

Sets the position of the mask image. See mask-position.\n

\n
<bg-size>
\n
\n

Sets the size of the mask image. See mask-size.\n

\n
<repeat-style>
\n
\n

Sets the repetition of the mask image. See mask-repeat.\n

\n
<geometry-box>
\n
\n

If only one <geometry-box> value is given, it sets both mask-origin and mask-clip. If two <geometry-box> values are present, then the first sets mask-origin and the second sets mask-clip.\n

\n
<geometry-box> | no-clip
\n
\n

Sets the area affected by the mask image. See mask-clip.\n

\n
<compositing-operator>
\n
\n

Sets the compositing operation used on the current mask layer. See mask-composite.\n

\n
" + "<mask-layer>": "One or more comma-separated mask layers, consisting of the following components:\n
\n
<mask-reference>
\n
\n

Sets the mask image source. See mask-image.\n

\n
<masking-mode>
\n
\n

Sets the masking mode of the mask image. See mask-mode.\n

\n
<position>
\n
\n

Sets the position of the mask image. See mask-position.\n

\n
<bg-size>
\n
\n

Sets the size of the mask image. See mask-size.\n

\n
<repeat-style>
\n
\n

Sets the repetition of the mask image. See mask-repeat.\n

\n
<geometry-box>
\n
\n

If only one <geometry-box> value is given, it sets both the mask-origin and mask-clip property values. If two <geometry-box> values are present, the first defines the mask-origin and the second defines the mask-clip.\n

\n
<geometry-box> | no-clip
\n
\n

Sets the area affected by the mask image. See mask-clip.\n

\n
<compositing-operator>
\n
\n

Sets the compositing operation used on the current mask layer. See mask-composite.\n

\n
" } }, "mask-border": { @@ -14040,7 +14631,7 @@ "formalSyntax": "<masking-mode>#\n  <masking-mode> = alpha | luminance | match-source", "values": { "alpha": "Indicates that the alpha (transparency) values of the mask image should be used.", - "luminance": "Indicates that the luminance (brightness) values of the mask image should be used.", + "luminance": "Indicates that the luminance (brightness) values of the mask image should be used.", "match-source": "Indicates that the type of mask is determined by the source. This is the default property value.\n" } }, @@ -14063,18 +14654,15 @@ "level": "LOW", "lowDate": "2023-12-07" }, - "doc": "The mask-origin CSS property sets the origin of a mask.\n

For elements rendered as a single box, this property specifies the mask positioning area. In other words, this property specifies the origin position of an image specified by the mask-image CSS property. For elements rendered as multiple boxes, such as inline boxes on several lines or boxes on several pages, it specifies which boxes box-decoration-break operates upon to determine the mask positioning area.", + "doc": "The mask-origin CSS property sets the origin of a mask. This property determines the mask positioning area: the area within which a mask image is positioned. HTML elements can have masks contained within their content border box, padding box, or content box, whereas SVG elements (which don't have the associated CSS layout boxes) can have masks contained inside their fill, stroke, or view box.\nFor elements rendered as multiple boxes, such as a <span> of text that spans more than one line, the mask-origin property specifies which boxes the box-decoration-break property operates on to determine the mask positioning area.", "formalSyntax": "<coord-box>#\n  <coord-box> = <paint-box> | view-box\n  <paint-box> = <visual-box> | fill-box | stroke-box\n  <visual-box> = content-box | padding-box | border-box", "values": { - "content-box": "The position is relative to the content box.", - "padding-box": "The position is relative to the padding box. For single boxes 0 0 is the upper left corner of the padding edge, 100% 100% is the lower right corner.", - "border-box": "The position is relative to the border box.", + "content-box": "The position is relative to the content box.", + "padding-box": "The position is relative to the padding box.", + "border-box": "The position is relative to the border box.", "fill-box": "The position is relative to the object bounding box.", "stroke-box": "The position is relative to the stroke bounding box.", - "view-box": "Uses the nearest SVG viewport as reference box. If a viewBox attribute is specified for the element creating the SVG viewport, the reference box is positioned at the origin of the coordinate system established by the viewBox attribute and the dimension of the reference box is set to the width and height values of the viewBox attribute.", - "content": "Same as content-box.", - "padding": "Same as padding-box.", - "border": "Same as border-box." + "view-box": "Uses the nearest SVG viewport as reference box. If a viewBox attribute is specified for the element creating the SVG viewport, the reference box is positioned at the origin of the coordinate system established by the viewBox attribute and the dimension of the reference box is set to the width and height values of the viewBox attribute." } }, "mask-position": { @@ -14099,7 +14687,7 @@ "doc": "The mask-position CSS property sets the initial position, relative to the mask position layer set by mask-origin, for each defined mask image.", "formalSyntax": "<position>#\n  <position> = [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right ] && [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]\n  <length-percentage> = <length> | <percentage>", "values": { - "<position>": "One to four values representing a 2D position regarding the edges of the element's box. Relative or absolute offsets can be given. Note that the position can be set outside of the element's box." + "<position>": "One, two, or four values representing a 2D position specifying the edges of the element's box. Relative or absolute offsets can be given." } }, "mask-repeat": { @@ -14125,8 +14713,8 @@ "formalSyntax": "<repeat-style>#\n  <repeat-style> = repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}", "values": { "repeat": "The image is repeated as much as needed to cover the whole mask painting area. Mask images along the edges are clipped when the size of the mask origin box is not an exact multiple of the mask image's size.repeat repeat", - "space": "If the origin box size is less than twice the mask image's size in the given dimension, only one mask image can be displayed. In this case, the image is positioned as defined by the mask-position property, which defaults to 0% 0%. The mask image will only be clipped if the mask image is larger than the mask origin box.

The mask image is repeated as many times as possible without clipping. If the element's origin size is at least twice the size as the mask image's size in the associated dimension, the mask-position property is ignored and the first and last images are positioned at the edges of the mask origin container. If the the mask origin box is not an exact multiple of the mask image's size, whitespace is distributed evenly between the repeated mask images.space space", - "round": "The mask image is repeated as many times as possible in its original dimensions. If the size of the mask origin box is not an exact multiple of the mask image's size, all mask images will be rescaled, shrinking or stretching to ensure no repetitions are clipped.round round", + "space": "The mask image is repeated as many times as possible without clipping. If the element's origin size is at least twice the size as the mask image's size in the associated dimension, the mask-position property is ignored and the first and last images are positioned at the edges of the mask origin container. If the mask origin box is not an exact multiple of the mask image's size, whitespace is distributed evenly between the repeated mask images.\n

If the origin box size is less than twice the mask image's size in the given dimension, only one mask image can be displayed. In this case, the image is positioned as defined by the mask-position property, which defaults to 0% 0%. The mask image will only be clipped if the mask image is larger than the mask origin box.space space", + "round": "The mask image is repeated as many times as possible in its original dimensions. If the size of the mask origin box is not an exact multiple of the mask image's size, all mask images will be rescaled, shrinking or stretching to ensure no repetitions are clipped.round round", "no-repeat": "The mask image is not repeated (and hence the mask painting area will not necessarily be entirely covered). The position of the non-repeated mask image is defined by the mask-position CSS property.no-repeat no-repeat", "repeat-x": "repeat no-repeat

The equivalent of repeat no-repeat. The image is repeated in the horizontal direction as many times as needed to cover the width of the mask painting area. Mask images along the right or left edges, or both depending on the mask-position value, will be clipped if the width of the mask origin box is not an exact multiple of the mask image's width.", "repeat-y": "no-repeat repeat

The equivalent of no-repeat repeat. The image is repeated in the vertical direction as many times as needed to cover the height of the mask painting area. Mask images along the top or bottom edges, or both depending on the mask-position value, will be clipped if the height of the mask origin box is not an exact multiple of the mask image's height." @@ -14151,18 +14739,14 @@ "level": "LOW", "lowDate": "2023-12-07" }, - "doc": "The mask-size CSS property specifies the sizes of the mask images. The size of the image can be fully or partially constrained in order to preserve its intrinsic ratio.\n

\n

Note:\nIf the value of this property is not set in a mask shorthand property that is applied to the element after the mask-size CSS property, the value of this property is then reset to its initial value by the shorthand property.\n

", + "doc": "The mask-size CSS property specifies the sizes of specified mask images. Mask image sizes can be fully or partially constrained to preserve their intrinsic aspect ratios.", "formalSyntax": "<bg-size>#\n  <bg-size> = [ <length-percentage [0,∞]> | auto ]{1,2} | cover | contain\n  <length-percentage> = <length> | <percentage>", "values": { - "<length>": "A <length> value scales the mask image to the specified length in the corresponding dimension. Negative lengths are not allowed.", - "<percentage>": "A <percentage> value scales the mask image in the corresponding dimension to the specified percentage of the mask positioning area, which is determined by the value of mask-origin. The mask positioning area is, by default, the area containing the content of the box and its padding; the area may also be changed to just the content or to the area containing borders, padding and content. Negative percentages are not allowed.", - "auto": "A keyword that scales the mask image in the corresponding directions in order to maintain its intrinsic proportion.", - "contain": "A keyword that scales the image as large as possible and maintains the image's aspect ratio (the image doesn't get squished). The image is letterboxed within the container. The image is automatically centered unless overridden by another property such as mask-position.", - "cover": "A keyword that is the inverse of contain. Scales the image as large as possible and maintains image aspect ratio (image doesn't get squished). The image \"covers\" the entire width or height of the container. When the image and container have different dimensions, the image is clipped either on left/right or at top/bottom.", - "If both components of mask-size are specified and are not auto:": "The mask image renders at the specified size.", - "If the mask-size is contain or cover:": "The image is rendered by preserving its intrinsic proportion at the largest size contained within or covering the mask positioning area. If the image has no intrinsic proportion, then it is rendered at the size of the mask positioning area.", - "If the mask-size is auto or auto auto:": "If the image has both intrinsic dimensions, it is rendered at that size. If it has no intrinsic dimensions and no intrinsic proportion, it is rendered at the size of the mask positioning area. If it has no dimensions but has a proportion, it's rendered as if contain had been specified instead. If the image has one intrinsic dimension and a proportion, it's rendered at the size determined by that one dimension and the proportion. If the image has one intrinsic dimension but no proportion, it's rendered using the intrinsic dimension and the corresponding dimension of the mask positioning area.", - "If mask-size has one auto component and one non-auto component:": "If the image has an intrinsic proportion, then render it using the specified dimension and compute the other dimension from the specified dimension and the intrinsic proportion. If the image has no intrinsic proportion, use the specified dimension for that dimension. For the other dimension, use the image's corresponding intrinsic dimension if there is one. If there is no such intrinsic dimension, use the corresponding dimension of the mask positioning area." + "contain": "Scales the mask image up or down, while preserving its aspect-ratio, making the mask as large as possible within its container without cropping or stretching it.\nIf the mask image is smaller than the container, the mask will tile, or repeat, unless the mask-repeat property is set to no-repeat.", + "cover": "Scales the mask image to the smallest possible size to fill the container while preserving its aspect ratio. If the aspect ratio of the mask image differs from the element, it will be cropped vertically or horizontally.", + "auto": "Maintains the original aspect ratio of the mask source. When set for both the width and height, the origin size of the mask resource is used. Otherwise, auto scales the mask image in the corresponding direction such that its original aspect ratio is maintained.", + "<length>": "Renders the mask image at the specified length in the corresponding dimension (width if set as the first or only value, height if set as the second value). Negative values are not allowed.", + "<percentage>": "Renders the mask image in the corresponding dimension to the specified percentage of the box origin area as defined by the mask-origin property, which defaults to padding-box. Negative values are not allowed." } }, "mask-type": { @@ -14189,7 +14773,7 @@ "formalSyntax": "luminance | alpha", "values": { "alpha": "Indicates that the alpha (transparency) values of the <mask> should be used.", - "luminance": "Indicates that the luminance (brightness) values of the <mask> should be used." + "luminance": "Indicates that the luminance (brightness) values of the <mask> should be used." } }, "math-depth": { @@ -14208,7 +14792,7 @@ "baseline": { "level": "NONE" }, - "doc": "The math-depth property describes a notion of depth for each element of a mathematical formula, with respect to the top-level container of that formula. This is used to scale the computed value of the font-size of elements when font-size: math is applied.\n
\n

Note: font-size: math is the default for <math> elements in the MathML Core User Agent stylesheet, so it's not necessary to specify it explicitly.\n

", + "doc": "The math-depth property describes a notion of depth for each element of a mathematical formula, with respect to the top-level container of that formula. This is used to scale the computed value of the font-size of elements when font-size: math is applied.\n
\n

Note:\nfont-size: math is the default for <math> elements in the MathML Core User Agent stylesheet, so it's not necessary to specify it explicitly.\n

", "formalSyntax": "auto-add | add( <integer> ) | <integer>", "values": { "auto-add": "Set to the inherited math-depth plus 1 when inherited math-style is compact.", @@ -14285,7 +14869,7 @@ "highDate": "2022-07-15" }, "doc": "The max-block-size CSS property specifies the maximum size of an element in the direction opposite that of the writing direction as specified by writing-mode. That is, if the writing direction is horizontal, then max-block-size is equivalent to max-height; if the writing direction is vertical, max-block-size is the same as max-width.\n

The other dimension's maximum length is specified using the max-inline-size property.\n

This is useful because the max-width is always used for horizontal sizes and max-height is always used for vertical sizes, and if you need to set lengths based on the size of your text content, you need to be able to do so with the writing direction in mind.\n

Any time you would normally use max-height or max-width, you should instead use max-block-size to set the maximum \"height\" of the content (even though this may not be a vertical value) and max-inline-size to set the maximum \"width\" of the content (although this may instead be vertical rather than horizontal). See writing-mode examples, which show the different writing modes in action.", - "formalSyntax": "<'max-width'>\n  <max-width> = none | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", + "formalSyntax": "<'max-width'>\n  <max-width> = none | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", "values": { "<length>": "Defines the max-block-size as an absolute value.", "<percentage>": "Defines the max-block-size as a percentage of the containing block's size in block axis.", @@ -14316,7 +14900,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The max-content sizing keyword represents the maximum intrinsic size of the content. For text content this means that the content will not wrap at all even if it causes overflows.\n

The interpolate-size property and calc-size() function can be used to enable animations to and from max-content." + "doc": "The max-content sizing keyword represents the maximum intrinsic size of an element.\nThe keyword expands the element to the largest size needed to display its content without any soft wraps.\nFor text content, this keyword does not wrap the content at all, even if it causes overflow.\n

The interpolate-size property and calc-size() function can be used to enable animations to and from max-content." }, "max-height": { "url": "$MDN_URL$/web/css/max-height", @@ -14339,7 +14923,7 @@ "highDate": "2018-01-29" }, "doc": "The max-height CSS property sets the maximum height of an element. It prevents the used value of the height property from becoming larger than the value specified for max-height.", - "formalSyntax": "none | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", + "formalSyntax": "none | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", "values": { "<length>": "Defines the max-height as an absolute value.", "<percentage>": "Defines the max-height as a percentage of the containing block's height.", @@ -14372,7 +14956,7 @@ "highDate": "2022-07-15" }, "doc": "The max-inline-size CSS property defines the horizontal or vertical maximum size of an element's block, depending on its writing mode. It corresponds to either the max-width or the max-height property, depending on the value of writing-mode.\n

If the writing mode is vertically oriented, the value of max-inline-size relates to the maximal height of the element; otherwise, it relates to the maximal width of the element. A related property is max-block-size, which defines the other dimension of the element.", - "formalSyntax": "<'max-width'>\n  <max-width> = none | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" + "formalSyntax": "<'max-width'>\n  <max-width> = none | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, "max-width": { "url": "$MDN_URL$/web/css/max-width", @@ -14395,7 +14979,7 @@ "highDate": "2018-01-29" }, "doc": "The max-width CSS property sets the maximum width of an element. It prevents the used value of the width property from becoming larger than the value specified by max-width.", - "formalSyntax": "none | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", + "formalSyntax": "none | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", "values": { "<length>": "Defines the max-width as an absolute value.", "<percentage>": "Defines the max-width as a percentage of the containing block's width.", @@ -14428,7 +15012,7 @@ "highDate": "2022-07-15" }, "doc": "The min-block-size CSS property defines the minimum horizontal or vertical size of an element's block, depending on its writing mode. It corresponds to either the min-width or the min-height property, depending on the value of writing-mode.\n

If the writing mode is vertically oriented, the value of min-block-size relates to the minimum width of the element; otherwise, it relates to the minimum height of the element. A related property is min-inline-size, which defines the other dimension of the element.", - "formalSyntax": "<'min-width'>\n  <min-width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" + "formalSyntax": "<'min-width'>\n  <min-width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, "min-content": { "url": "$MDN_URL$/web/css/min-content", @@ -14450,7 +15034,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The min-content sizing keyword represents the minimum intrinsic size of the content. For text content this means that the content will take all soft-wrapping opportunities, becoming as small as the longest word.\n

The interpolate-size property and calc-size() function can be used to enable animations to and from min-content." + "doc": "The min-content sizing keyword represents the minimum intrinsic size of an element.\nThe keyword shrinks the element to the smallest possible size without causing avoidable overflow of its content.\nFor text content, this keyword causes the content to wrap at every opportunity (such as spaces between words), and the element will be only as wide as the longest word.\n

The interpolate-size property and calc-size() function can be used to enable animations to and from min-content." }, "min-height": { "url": "$MDN_URL$/web/css/min-height", @@ -14473,7 +15057,7 @@ "highDate": "2018-01-29" }, "doc": "The min-height CSS property sets the minimum height of an element. It prevents the used value of the height property from becoming smaller than the value specified for min-height.", - "formalSyntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", + "formalSyntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", "values": { "<length>": "Defines the min-height as an absolute value.", "<percentage>": "Defines the min-height as a percentage of the containing block's height.", @@ -14506,7 +15090,7 @@ "highDate": "2022-07-15" }, "doc": "The min-inline-size CSS property defines the horizontal or vertical minimal size of an element's block, depending on its writing mode. It corresponds to either the min-width or the min-height property, depending on the value of writing-mode.", - "formalSyntax": "<'min-width'>\n  <min-width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" + "formalSyntax": "<'min-width'>\n  <min-width> = auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN" }, "min-width": { "url": "$MDN_URL$/web/css/min-width", @@ -14529,7 +15113,7 @@ "highDate": "2018-01-29" }, "doc": "The min-width CSS property sets the minimum width of an element. It prevents the used value of the width property from becoming smaller than the value specified for min-width.", - "formalSyntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", + "formalSyntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", "values": { "<length>": "Defines the min-width as an absolute value.", "<percentage>": "Defines the min-width as a percentage of the containing block's width.", @@ -14588,7 +15172,7 @@ "level": "LOW", "lowDate": "2023-12-11" }, - "doc": "The CSS & nesting selector explicitly states the relationship between parent and child rules when using CSS nesting. It makes the nested child rule selectors relative to the parent element. Without the & nesting selector, the child rule selector selects child elements. The child rule selectors have the same specificity weight as if they were within :is().\n

\n

Note: Child rule does not mean child element selector. A child rule can target parent element or child elements depending on use of the & nesting selector.\n

\n

If not used in nested style rule, the & nesting selector represents the scoping root." + "doc": "The CSS & nesting selector explicitly states the relationship between parent and child rules when using CSS nesting. It makes the nested child rule selectors relative to the parent element. Without the & nesting selector, the child rule selector selects child elements. The child rule selectors have the same specificity weight as if they were within :is().\n

\n

Note:\nChild rule does not mean child element selector. A child rule can target parent element or child elements depending on use of the & nesting selector.\n

\n

If not used in nested style rule, the & nesting selector represents the scoping root." }, "next-sibling_combinator": { "url": "$MDN_URL$/web/css/next-sibling_combinator", @@ -14688,7 +15272,7 @@ "lowDate": "2022-09-12", "highDate": "2025-03-12" }, - "doc": "The offset CSS shorthand property sets all the properties required for animating an element along a defined path. The offset properties together help to define an offset transform, a transform that aligns a point in an element (offset-anchor) to an offset position (offset-position) on a path (offset-path) at various points along the path (offset-distance) and optionally rotates the element (offset-rotate) to follow the direction of the path.\n

\n

Note:\nEarly versions of the spec called this property motion.\n

", + "doc": "The offset CSS shorthand property sets all the properties required for animating an element along a defined path. The offset properties together help to define an offset transform, a transform that aligns a point in an element (offset-anchor) to an offset position (offset-position) on a path (offset-path) at various points along the path (offset-distance) and optionally rotates the element (offset-rotate) to follow the direction of the path.\n
\n

Note:\nEarly versions of the spec called this property motion.\n

", "formalSyntax": "[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?\n  <offset-position> = normal | auto | <position>\n  <offset-path> = none | <offset-path> || <coord-box>\n  <offset-distance> = <length-percentage>\n  <offset-rotate> = [ auto | reverse ] || <angle>\n  <offset-anchor> = auto | <position>\n  <position> = [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right ] && [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]\n  <offset-path> = <ray()> | <url> | <basic-shape>\n  <coord-box> = <paint-box> | view-box\n  <length-percentage> = <length> | <percentage>\n  <ray()> = ray( <angle> &&<ray-size>? &&contain? &&[ at <position> ]? )\n  <url> = <url()> | <src()>\n  <paint-box> = <visual-box> | fill-box | stroke-box\n  <ray-size> = closest-side | closest-corner | farthest-side | farthest-corner | sides\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )\n  <visual-box> = content-box | padding-box | border-box" }, "offset-anchor": { @@ -14908,15 +15492,16 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The outline CSS shorthand property sets most of the outline properties in a single declaration.", "formalSyntax": "<'outline-width'> || <'outline-style'> || <'outline-color'>\n  <outline-width> = <line-width>\n  <outline-style> = auto | <outline-line-style>\n  <outline-color> = auto | <color> | <image-1D>\n  <line-width> = <length [0,∞]> | thin | medium | thick\n  <image-1D> = <stripes()>\n  <stripes()> = stripes( <color-stripe># )\n  <color-stripe> = <color> &&[ <length-percentage> | <flex> ]?\n  <length-percentage> = <length> | <percentage>", "values": { "<'outline-width'>": "Sets the thickness of the outline. Defaults to medium if absent. See outline-width.", "<'outline-style'>": "Sets the style of the outline. Defaults to none if absent. See outline-style.", - "<'outline-color'>": "Sets the color of the outline. Defaults to invert for browsers supporting it, currentcolor for the others. See outline-color." + "<'outline-color'>": "Sets the color of the outline. Defaults to invert for browsers supporting it, currentColor for the others. See outline-color." } }, "outline-color": { @@ -15100,10 +15685,13 @@ "Edge": "135", "Firefox": "69", "FirefoxAndroid": "79", - "Opera": "120" + "Opera": "120", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, "doc": "The overflow-block CSS property sets what shows when content overflows the block start and block end edges of a box. This may be nothing, a scroll bar, or the overflow content.\n
\n

Note:\nThe overflow-block property maps to overflow-y or overflow-x depending on the writing mode of the document.\n

", "formalSyntax": "visible | hidden | clip | scroll | auto", @@ -15138,10 +15726,13 @@ "Edge": "135", "Firefox": "69", "FirefoxAndroid": "79", - "Opera": "120" + "Opera": "120", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, "doc": "The overflow-inline CSS property sets what shows when content overflows the inline start and end edges of a box. This may be nothing, a scroll bar, or the overflow content.\n
\n

Note:\nThe overflow-inline property maps to overflow-y or overflow-x depending on the writing mode of the document.\n

", "formalSyntax": "visible | hidden | clip | scroll | auto", @@ -15712,8 +16303,9 @@ "SafariIOS": "1" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The page CSS property is used to specify the named page, a specific type of page defined by the @page at-rule.\n

If there are multiple selectors that are using a named page consecutively then a forced page break using break-after may be needed.", "formalSyntax": "auto | <custom-ident>", @@ -15953,7 +16545,7 @@ "highDate": "2022-07-15" }, "doc": "The CSS place-items shorthand property aligns items along both the block and inline directions at once. It sets the values of the align-items and justify-items properties. If the second value is not set, the first value is also used for it.", - "formalSyntax": "<'align-items'> <'justify-items'>?\n  <align-items> = normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ] | anchor-center\n  <justify-items> = normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ] | anchor-center\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", + "formalSyntax": "<'align-items'> <'justify-items'>?\n  <align-items> = normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ] | anchor-center | dialog\n  <justify-items> = normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ] | anchor-center | dialog\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", "values": { "normal": "The effect of this keyword is dependent of the layout mode we are in:\n

", "center": "The items are packed flush to each other toward the center of the alignment container.", @@ -16014,7 +16606,7 @@ "highDate": "2022-07-15" }, "doc": "The place-self CSS shorthand property allows you to align an individual item in both the block and inline directions at once (i.e., the align-self and justify-self properties). This property applies to block-level boxes, absolutely-positioned boxes, and grid items. If the second value is not present, the first value is also used for it.", - "formalSyntax": "<'align-self'> <'justify-self'>?\n  <align-self> = auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center\n  <justify-self> = auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | anchor-center\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", + "formalSyntax": "<'align-self'> <'justify-self'>?\n  <align-self> = auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> | anchor-center | dialog\n  <justify-self> = auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | anchor-center | dialog\n  <baseline-position> = [ first | last ]? &&baseline\n  <overflow-position> = unsafe | safe\n  <self-position> = center | start | end | self-start | self-end | flex-start | flex-end", "values": { "auto": "Computes to the parent's align-items value.", "normal": "The effect of this keyword is dependent of the layout mode we are in:\n", @@ -16097,19 +16689,20 @@ "position-anchor": { "url": "$MDN_URL$/web/css/position-anchor", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The position-anchor CSS property specifies the anchor name of the anchor element (i.e., an element that has an anchor name set on it via the anchor-name property) a positioned element is associated with.", + "doc": "The position-anchor CSS property specifies the anchor name of the anchor element (i.e., an element that has an anchor name set on it via the anchor-name property) a positioned element is associated with.", "formalSyntax": "auto | <anchor-name>\n  <anchor-name> = <dashed-ident>", "values": { "auto": "Associates a positioned element with its implicit anchor element, if it has one — for example as set by the non-standard HTML anchor attribute.", @@ -16119,20 +16712,21 @@ "position-area": { "url": "$MDN_URL$/web/css/position-area", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "129", "ChromeAndroid": "129", "Edge": "129", - "Opera": "115" + "Opera": "115", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The position-area CSS property enables an anchor-positioned element to be positioned relative to the edges of its associated anchor element by placing the positioned element on one or more tiles of an implicit 3x3 grid, where the anchoring element is the center cell.\n

position-area provides a convenient alternative to tethering and positioning an element relative to its anchor via inset properties and the anchor() function. The grid-based concept solves the common use-case of positioning the edges of the positioned element's containing block relative to the edges of its default anchor element.\n

If an element does not have a default anchor element, or is not an absolutely-positioned element, this property has no effect.\n

\n

Note:\nThis property was originally named and supported in Chromium browsers as inset-area, with the same property values. Both property names will be supported for a short while, for backwards compatibility purposes.\n

", - "formalSyntax": "none | <position-area>\n  <position-area> = [ left | center | right | span-left | span-right | x-start | x-end | span-x-start | span-x-end | x-self-start | x-self-end | span-x-self-start | span-x-self-end | span-all ] || [ top | center | bottom | span-top | span-bottom | y-start | y-end | span-y-start | span-y-end | y-self-start | y-self-end | span-y-self-start | span-y-self-end | span-all ] | [ block-start | center | block-end | span-block-start | span-block-end | span-all ] || [ inline-start | center | inline-end | span-inline-start | span-inline-end | span-all ] | [ self-block-start | center | self-block-end | span-self-block-start | span-self-block-end | span-all ] || [ self-inline-start | center | self-inline-end | span-self-inline-start | span-self-inline-end | span-all ] | [ start | center | end | span-start | span-end | span-all ]{1,2} | [ self-start | center | self-end | span-self-start | span-self-end | span-all ]{1,2}", + "doc": "The position-area CSS property enables an anchor-positioned element to be positioned relative to the edges of its associated anchor element by placing the positioned element on one or more tiles of an implicit 3x3 grid, where the anchoring element is the center cell.\n

position-area provides a convenient alternative to tethering and positioning an element relative to its anchor via inset properties and the anchor() function. The grid-based concept solves the common use-case of positioning the edges of the positioned element's containing block relative to the edges of its default anchor element.\n

If an element does not have a default anchor element, or is not an absolutely-positioned element, this property has no effect.\n

\n

Note:\nThis property was originally named and supported in Chromium browsers as inset-area, with the same property values. Both property names will be supported for a short while, for backwards compatibility purposes.\n

", + "formalSyntax": "none | <position-area>\n  <position-area> = [ left | center | right | span-left | span-right | x-start | x-end | span-x-start | span-x-end | self-x-start | self-x-end | span-self-x-start | span-self-x-end | span-all ] || [ top | center | bottom | span-top | span-bottom | y-start | y-end | span-y-start | span-y-end | self-y-start | self-y-end | span-self-y-start | span-self-y-end | span-all ] | [ block-start | center | block-end | span-block-start | span-block-end | span-all ] || [ inline-start | center | inline-end | span-inline-start | span-inline-end | span-all ] | [ self-block-start | center | self-block-end | span-self-block-start | span-self-block-end | span-all ] || [ self-inline-start | center | self-inline-end | span-self-inline-start | span-self-inline-end | span-all ] | [ start | center | end | span-start | span-end | span-all ]{1,2} | [ self-start | center | self-end | span-self-start | span-self-end | span-all ]{1,2}", "values": { "<position-area>": "Specifies the area of the position area grid on which to place selected positioned elements.", "none": "No position area is set." @@ -16141,38 +16735,40 @@ "position-try": { "url": "$MDN_URL$/web/css/position-try", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The position-try CSS property is a shorthand that corresponds to the position-try-order and position-try-fallbacks properties.", - "formalSyntax": "<'position-try-order'>? <'position-try-fallbacks'>\n  <position-try-order> = normal | <try-size>\n  <position-try-fallbacks> = none | [ [ <dashed-ident> || <try-tactic> ] | <'position-area'> ]#\n  <try-size> = most-width | most-height | most-block-size | most-inline-size\n  <try-tactic> = flip-block || flip-inline || flip-start\n  <position-area> = none | <position-area>\n  <position-area> = [ left | center | right | span-left | span-right | x-start | x-end | span-x-start | span-x-end | x-self-start | x-self-end | span-x-self-start | span-x-self-end | span-all ] || [ top | center | bottom | span-top | span-bottom | y-start | y-end | span-y-start | span-y-end | y-self-start | y-self-end | span-y-self-start | span-y-self-end | span-all ] | [ block-start | center | block-end | span-block-start | span-block-end | span-all ] || [ inline-start | center | inline-end | span-inline-start | span-inline-end | span-all ] | [ self-block-start | center | self-block-end | span-self-block-start | span-self-block-end | span-all ] || [ self-inline-start | center | self-inline-end | span-self-inline-start | span-self-inline-end | span-all ] | [ start | center | end | span-start | span-end | span-all ]{1,2} | [ self-start | center | self-end | span-self-start | span-self-end | span-all ]{1,2}" + "doc": "The position-try CSS property is a shorthand that corresponds to the position-try-order and position-try-fallbacks properties.", + "formalSyntax": "<'position-try-order'>? <'position-try-fallbacks'>\n  <position-try-order> = normal | <try-size>\n  <position-try-fallbacks> = none | [ [ <dashed-ident> || <try-tactic> ] | <position-area> ]#\n  <try-size> = most-width | most-height | most-block-size | most-inline-size\n  <try-tactic> = flip-block || flip-inline || flip-start\n  <position-area> = [ left | center | right | span-left | span-right | x-start | x-end | span-x-start | span-x-end | self-x-start | self-x-end | span-self-x-start | span-self-x-end | span-all ] || [ top | center | bottom | span-top | span-bottom | y-start | y-end | span-y-start | span-y-end | self-y-start | self-y-end | span-self-y-start | span-self-y-end | span-all ] | [ block-start | center | block-end | span-block-start | span-block-end | span-all ] || [ inline-start | center | inline-end | span-inline-start | span-inline-end | span-all ] | [ self-block-start | center | self-block-end | span-self-block-start | span-self-block-end | span-all ] || [ self-inline-start | center | self-inline-end | span-self-inline-start | span-self-inline-end | span-all ] | [ start | center | end | span-start | span-end | span-all ]{1,2} | [ self-start | center | self-end | span-self-start | span-self-end | span-all ]{1,2}" }, "position-try-fallbacks": { "url": "$MDN_URL$/web/css/position-try-fallbacks", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "128", "ChromeAndroid": "128", "Edge": "128", - "Opera": "114" + "Opera": "114", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The position-try-fallbacks CSS property enables you to specify a list of one or more alternative position try fallback options for anchor-positioned elements to be placed relative to their associated anchor elements. When the element would otherwise overflow its inset-modified containing block, the browser will try placing the positioned element in these different fallback positions, in the order provided, until it finds a value that stops it from overflowing its container or the viewport.\n

\n

Note:\nThe position-try shorthand property can be used to specify position-try-order and position-try-fallbacks values in a single declaration.\n

\n
\n

Note:\nThis property was originally named and supported in Chromium browsers as position-try-options, with the same property values. Until position-try-fallbacks is supported, use the position-try shorthand instead.\n

", - "formalSyntax": "none | [ [ <dashed-ident> || <try-tactic> ] | <'position-area'> ]#\n  <try-tactic> = flip-block || flip-inline || flip-start\n  <position-area> = none | <position-area>\n  <position-area> = [ left | center | right | span-left | span-right | x-start | x-end | span-x-start | span-x-end | x-self-start | x-self-end | span-x-self-start | span-x-self-end | span-all ] || [ top | center | bottom | span-top | span-bottom | y-start | y-end | span-y-start | span-y-end | y-self-start | y-self-end | span-y-self-start | span-y-self-end | span-all ] | [ block-start | center | block-end | span-block-start | span-block-end | span-all ] || [ inline-start | center | inline-end | span-inline-start | span-inline-end | span-all ] | [ self-block-start | center | self-block-end | span-self-block-start | span-self-block-end | span-all ] || [ self-inline-start | center | self-inline-end | span-self-inline-start | span-self-inline-end | span-all ] | [ start | center | end | span-start | span-end | span-all ]{1,2} | [ self-start | center | self-end | span-self-start | span-self-end | span-all ]{1,2}", + "doc": "The position-try-fallbacks CSS property enables you to specify a list of one or more alternative position try fallback options for anchor-positioned elements to be placed relative to their associated anchor elements. When the element would otherwise overflow its inset-modified containing block, the browser will try placing the positioned element in these different fallback positions, in the order provided, until it finds a value that stops it from overflowing its container or the viewport.\n
\n

Note:\nThe position-try shorthand property can be used to specify position-try-order and position-try-fallbacks values in a single declaration.\n

\n
\n

Note:\nThis property was originally named and supported in Chromium browsers as position-try-options, with the same property values. Until position-try-fallbacks is supported, use the position-try shorthand instead.\n

", + "formalSyntax": "none | [ [ <dashed-ident> || <try-tactic> ] | <position-area> ]#\n  <try-tactic> = flip-block || flip-inline || flip-start\n  <position-area> = [ left | center | right | span-left | span-right | x-start | x-end | span-x-start | span-x-end | self-x-start | self-x-end | span-self-x-start | span-self-x-end | span-all ] || [ top | center | bottom | span-top | span-bottom | y-start | y-end | span-y-start | span-y-end | self-y-start | self-y-end | span-self-y-start | span-self-y-end | span-all ] | [ block-start | center | block-end | span-block-start | span-block-end | span-all ] || [ inline-start | center | inline-end | span-inline-start | span-inline-end | span-all ] | [ self-block-start | center | self-block-end | span-self-block-start | span-self-block-end | span-all ] || [ self-inline-start | center | self-inline-end | span-self-inline-start | span-self-inline-end | span-all ] | [ start | center | end | span-start | span-end | span-all ]{1,2} | [ self-start | center | self-end | span-self-start | span-self-end | span-all ]{1,2}", "values": { "none": "The default value. There are no position try fallback options set.", "<try-tactic>": "Predefined fallback options move the positioned element by taking its computed position and transforming it across a particular axis of the anchor, mirroring any margin offsets. Possible values are:\n
\n
flip-block
\n
\n

Flips the element's position along the block axis.\n

\n
flip-inline
\n
\n

Flips the element's position along the inline axis.\n

\n
flip-start
\n
\n

Flips both the inline and block axis values, swapping the start properties with each other, and the end properties with each other.\n

\n
", @@ -16183,19 +16779,20 @@ "position-try-order": { "url": "$MDN_URL$/web/css/position-try-order", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The position-try-order CSS property allows you to specify various fallback options that result in an available position-try fallback being used to set an anchor-positioned element's position, instead of its initial position settings.\n

\n

Note:\nThere is also a shorthand property — position-try, which can be used to specify position-try-order and position-try-fallbacks values in a single declaration.\n

", + "doc": "The position-try-order CSS property allows you to specify various fallback options that result in an available position-try fallback being used to set an anchor-positioned element's position, instead of its initial position settings.\n
\n

Note:\nThere is also a shorthand property — position-try, which can be used to specify position-try-order and position-try-fallbacks values in a single declaration.\n

", "formalSyntax": "normal | <try-size>\n  <try-size> = most-width | most-height | most-block-size | most-inline-size", "values": { "normal": "The default. No position-try fallback options will be tried when the element is first displayed.", @@ -16233,13 +16830,16 @@ "compatibility": { "Chrome": "136", "ChromeAndroid": "136", + "Edge": "136", "Firefox": "97", "FirefoxAndroid": "97", + "Opera": "121", "Safari": "15.4", "SafariIOS": "15.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-05-01" }, "doc": "The print-color-adjust CSS property sets what, if anything, the user agent may do to optimize the appearance of the element on the output device.\nBy default, the browser is allowed to make any adjustments to the element's appearance it determines to be necessary and prudent given the type and capabilities of the output device.", "formalSyntax": "economy | exact", @@ -16248,6 +16848,14 @@ "exact": "The element's content has been specifically and carefully crafted to use colors, images, and styles in a thoughtful and/or important way, such that being altered by the browser might actually make things worse rather than better.\nThe appearance of the content should not be changed except by the user's request.\nFor example, a page might include a list of information with rows whose background colors alternate between white and a light grey.\nRemoving the background color would decrease the legibility of the content." } }, + "properties": { + "url": "$MDN_URL$/web/css/properties", + "status": [ + "Experimental", + "Deprecated" + ], + "doc": "A CSS property is a parameter used in a CSS declaration that lets you style certain aspects of selected elements.\nFor example, the opacity property is used to set the opacity of a selected element, allowing you to control if content behind that element is visible:\n
\n```css\n/* Set 0.8 opacity on  elements */\nimg {\n  opacity: 0.8;\n}\n```\n
\n

Each property has a name (e.g., opacity), a value (e.g., 0.8), and a defined behavior on the rendering of the document.\nCSS also defines shorthand properties, so you can specify multiple related properties in a single declaration.\nFor example, the margin property is a shorthand for margin-top, margin-right, margin-bottom, and margin-left, setting the margin of all four sides of an element:\n

\n```css\n/* Give  elements 1rem of margin */\nimg {\n  margin: 1rem;\n}\n```\n
" + }, "pseudo-classes": { "url": "$MDN_URL$/web/css/pseudo-classes", "status": [ @@ -16319,6 +16927,40 @@ "<percentage>": "Percentages refer to the normalized diagonal of the current SVG viewport, which is calculated as <width>2+<height>22." } }, + "reading-flow": { + "url": "$MDN_URL$/web/css/reading-flow", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "137", + "ChromeAndroid": "137", + "Edge": "137", + "Opera": "121" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The reading-flow CSS property enables modifying the reading order of child elements of a block, flex, or grid layout. This affects the order in which they are rendered to speech and navigated to when using sequential navigation such as tabbing to links or buttons." + }, + "reading-order": { + "url": "$MDN_URL$/web/css/reading-order", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "137", + "ChromeAndroid": "137", + "Edge": "137", + "Opera": "121" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The reading-order CSS property enables changing the order in which a child of a reading flow container is read relative to its element siblings." + }, "reference": { "url": "$MDN_URL$/web/css/reference", "status": [ @@ -16337,7 +16979,6 @@ "ChromeAndroid": "18", "Edge": "79", "Firefox": "4", - "FirefoxAndroid": "4", "Opera": "12.1", "Safari": "3" }, @@ -16478,6 +17119,25 @@ "space-around": "Is a keyword indicating that the extra space will be distributed between the elements of the ruby, and around it." } }, + "ruby-overhang": { + "url": "$MDN_URL$/web/css/ruby-overhang", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Safari": "18.2", + "SafariIOS": "18.2" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The ruby-overhang CSS property specifies whether or not a <ruby> annotation overhangs any surrounding text.", + "formalSyntax": "auto | none", + "values": { + "auto": "When a ruby annotation container is longer than its corresponding base container, the annotation may partially overlap adjacent text.\nWhether, and how much to overhang are determined by the user agent.", + "none": "A keyword indicating that the ruby is never allowed to extend past adjacent containers." + } + }, "ruby-position": { "url": "$MDN_URL$/web/css/ruby-position", "status": [ @@ -16517,10 +17177,13 @@ "Edge": "79", "Firefox": "69", "FirefoxAndroid": "79", - "Opera": "30" + "Opera": "30", + "Safari": "17.4", + "SafariIOS": "17.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2024-03-05" }, "doc": "The rx CSS property defines the x-axis, or horizontal, radius of an SVG <ellipse> and the horizontal curve of the corners of an SVG <rect> rectangle. If present, it overrides the shape's rx attribute.\n

\n

Note:\nThe rx property only applies to <ellipse> and <rect> elements nested in an <svg>. It doesn't apply to other SVG elements or HTML elements or pseudo-elements.\n

", "formalSyntax": "<length-percentage> | auto\n  <length-percentage> = <length> | <percentage>", @@ -16541,10 +17204,13 @@ "Edge": "79", "Firefox": "69", "FirefoxAndroid": "79", - "Opera": "30" + "Opera": "30", + "Safari": "17.4", + "SafariIOS": "17.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2024-03-05" }, "doc": "The ry CSS property defines the y-axis, or vertical, radius of an SVG <ellipse> and the vertical curve of the corners of an SVG <rect> rectangle. If present, it overrides the shape's ry attribute.\n
\n

Note:\nThe ry property only applies to <ellipse> and <rect> elements nested in an <svg>. It doesn't apply to other SVG elements or HTML elements or pseudo-elements.\n

", "formalSyntax": "<length-percentage> | auto\n  <length-percentage> = <length> | <percentage>", @@ -16910,7 +17576,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The scroll-marker-group CSS property controls whether a scroll container has a ::scroll-marker-group pseudo-element generated and, if so, whether it should be placed immediately before or after the container's contents in the default visual and tabbing order.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The scroll-marker-group CSS property controls whether a scroll container element has a ::scroll-marker-group pseudo-element generated. If present, the property also specifies whether the scroll marker group should be placed before or after the contents of the scroll group container in the default visual and tab order.\n

\n

Note:\nTo create a scroll marker group container from an existing element that contains a set of <a> elements, use the scroll-target-group property. Read about the differences in behavior between the two.\n

", "formalSyntax": "none | before | after", "values": { "after": "A ::scroll-marker-group pseudo-element is generated as a sibling of the scroll container's child DOM elements, immediately preceding them, and any generated ::scroll-button() pseudo-elements. It appears at the end of the container's tab order and layout box order (but not DOM structure).", @@ -17304,22 +17970,42 @@ "proximity": "The visual viewport of this scroll container may snap to a snap position if it isn't currently scrolled. The user agent decides if it snaps or not based on scroll parameters. This is the default snap strictness if any snap axis is specified." } }, + "scroll-target-group": { + "url": "$MDN_URL$/web/css/scroll-target-group", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", + "Opera": "124" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The scroll-target-group CSS property specifies whether an element is a scroll marker group container.", + "formalSyntax": "none | auto", + "values": { + "none": "The element is not a scroll marker group container.", + "auto": "The element is a scroll marker group container." + } + }, "scroll-timeline": { "url": "$MDN_URL$/web/css/scroll-timeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The scroll-timeline CSS shorthand property is used to define a named scroll progress timeline, which is progressed through by scrolling a scrollable element (scroller) between top and bottom (or left and right). scroll-timeline is set on the scroller that will provide the timeline. The starting scroll position represents 0% progress and the ending scroll position represents 100% progress. If the 0% position and 100% position coincide (i.e., the scroll container has no overflow to scroll), the timeline is inactive.\n

scroll-timeline can contain two constituent values — a name for the named scroll progress timeline, and an optional scroll axis value.\n

The name is then referenced in an animation-timeline declaration to indicate the container's element that is used to drive the progress of the animation through the scrolling action.\n

\n

Note:\nIf the scroller does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no timeline will be created.\n

", + "doc": "The scroll-timeline CSS shorthand property is used to define a named scroll progress timeline, which is progressed through by scrolling a scrollable element (scroller) between top and bottom (or left and right). scroll-timeline is set on the scroller that will provide the timeline. The starting scroll position represents 0% progress and the ending scroll position represents 100% progress. If the 0% position and 100% position coincide (i.e., the scroll container has no overflow to scroll), the timeline is inactive.\n

scroll-timeline can contain two constituent values — a name for the named scroll progress timeline, and an optional scroll axis value.\n

The name is then referenced in an animation-timeline declaration to indicate the container's element that is used to drive the progress of the animation through the scrolling action.\n

\n

Note:\nIf the scroller does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no timeline will be created.\n

", "formalSyntax": "[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#\n  <scroll-timeline-name> = [ none | <dashed-ident> ]#\n  <scroll-timeline-axis> = [ block | inline | x | y ]#", "values": { "<scroll-timeline-name>": "See scroll-timeline-name.", @@ -17329,19 +18015,20 @@ "scroll-timeline-axis": { "url": "$MDN_URL$/web/css/scroll-timeline-axis", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The scroll-timeline-axis CSS property is used to specify the scrollbar direction that will be used to provide the timeline for a named scroll progress timeline animation, which is progressed through by scrolling a scrollable element (scroller) between top and bottom (or left and right). scroll-timeline is set on the scroller that will provide the timeline. See CSS scroll-driven animations for more details.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

\n

The scroll-timeline-axis and scroll-timeline-name properties can also be set using the scroll-timeline shorthand property.", + "doc": "The scroll-timeline-axis CSS property is used to specify the scrollbar direction that will be used to provide the timeline for a named scroll progress timeline animation, which is progressed through by scrolling a scrollable element (scroller) between top and bottom (or left and right). scroll-timeline is set on the scroller that will provide the timeline. See CSS scroll-driven animations for more details.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

\n

The scroll-timeline-axis and scroll-timeline-name properties can also be set using the scroll-timeline shorthand property.", "formalSyntax": "[ block | inline | x | y ]#", "values": { "block": "The scrollbar on the block axis of the scroller element, which is the axis in the direction perpendicular to the flow of text within a line. For horizontal writing modes, such as standard English, this is the same as y, while for vertical writing modes, it is the same as x. This is the default value.", @@ -17353,23 +18040,24 @@ "scroll-timeline-name": { "url": "$MDN_URL$/web/css/scroll-timeline-name", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The scroll-timeline-name CSS property is used to define the name of a named scroll progress timeline, which is progressed through by scrolling a scrollable element (scroller) between top and bottom (or left and right). scroll-timeline-name is set on the scroller that will provide the timeline.\n

The name is then referenced in an animation-timeline declaration to indicate the container's element that is used to drive the progress of the animation through the scrolling action.\n

\n

Note:\nIf the element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no timeline will be created.\n

\n

The scroll-timeline-axis and scroll-timeline-name properties can also be set using the scroll-timeline shorthand property.", + "doc": "The scroll-timeline-name CSS property is used to define the name of a named scroll progress timeline, which is progressed through by scrolling a scrollable element (scroller) between top and bottom (or left and right). scroll-timeline-name is set on the scroller that will provide the timeline.\n

The name is then referenced in an animation-timeline declaration to indicate the container's element that is used to drive the progress of the animation through the scrolling action.\n

\n

Note:\nIf the element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no timeline will be created.\n

\n

The scroll-timeline-axis and scroll-timeline-name properties can also be set using the scroll-timeline shorthand property.", "formalSyntax": "[ none | <dashed-ident> ]#", "values": { "none": "The timeline has no name.", - "<dashed-ident>": "An arbitrary custom identifier defining a name for a scroll progress timeline, which can then be referenced in an animation-timeline property.\n

\n

Note: <dashed-ident> values must start with --, which helps avoid name clashes with standard CSS keywords.\n

" + "<dashed-ident>": "An arbitrary custom identifier defining a name for a scroll progress timeline, which can then be referenced in an animation-timeline property.\n
\n

Note:\n<dashed-ident> values must start with --, which helps avoid name clashes with standard CSS keywords.\n

" } }, "scrollbar-color": { @@ -17680,7 +18368,7 @@ "formalSyntax": "<paint>\n  <paint> = none | <image> | <svg-paint>\n  <image> = <url> | <gradient>\n  <svg-paint> = child | child( <integer> )\n  <url> = <url()> | <src()>\n  <url()> = url( <string> <url-modifier>* ) | <url-token>\n  <src()> = src( <string> <url-modifier>* )", "values": { "<color>": "Sets the painting of the stroke with any valid CSS color value.", - "<image>": "Sets the painting of the stroke with what SVG calls a paint server, which in this context is an SVG gradient or pattern. CSS gradients cannot be used with the stroke property.", + "<image>": "Sets the painting of the stroke with what SVG calls a paint server, which in this context is an SVG gradient or pattern. CSS gradients cannot be used with the stroke property.", "context-stroke": "Causes an element to \"inherit\" its stroke definition from its context element. If there is no valid context element, then this value will result in no paint being used for the stroke." } }, @@ -18049,6 +18737,30 @@ "end": "Aligns the text such that the inline end of the text string is aligned with the anchor point. This alignment is relative to the writing direction of the text; thus, for example, in right-to-left top-to-bottom writing, the text will be placed to the right of the anchor point. If the text's inline direction is vertical, as with many Asian languages, the bottom edge of the text is aligned with the anchor point." } }, + "text-autospace": { + "url": "$MDN_URL$/web/css/text-autospace", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", + "Opera": "124", + "Safari": "18.4", + "SafariIOS": "18.4" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The text-autospace CSS property allows you to specify the space applied between Chinese/Japanese/Korean (CJK) and non-CJK characters.", + "formalSyntax": "normal | <autospace> | auto\n  <autospace> = no-autospace | [ ideograph-alpha || ideograph-numeric || punctuation ] || [ insert | replace ]", + "values": { + "normal": "Creates the default behavior to automatically apply spacing between CJK and non-CJK characters and around punctuation. This value has the same effect as applying both ideograph-alpha and ideograph-numeric.", + "<autospace>": "Provides more control over spacing behaviors. It accepts the keyword no-autospace, or a combination of one or more of ideograph-alpha, ideograph-numeric, and punctuation, optionally followed by insert or replace.\n
\n
no-autospace
\n
\n

Disables automatic spacing between CJK and non-CJK characters.\n

\n
ideograph-alpha
\n
\n

Adds spacing only between ideographic characters (such as Katakana and Han) and non-ideographic letters (such as Latin). It does not add spacing between ideographic characters and non-ideographic numbers.\n

\n
ideograph-numeric
\n
\n

Adds spacing only between ideographic characters (such as Katakana and Han) and non-ideographic numbers (such as Latin). It does not add spacing between ideographic characters and non-ideographic letters.\n

\n
punctuation
\n
\n

Adds non-breaking spacing around punctuation as required by language-specific typographic conventions.\n

\n
insert
\n
\n

Adds the specified spacing only if there are no existing spaces between the ideographic and non-ideographic scripts.\n

\n
replace
\n
\n

Replaces existing spacing (such as U+0020) between ideographic and non-ideographic characters with the specified spacing.\n

\n
", + "auto": "Lets the browser choose typographically appropriate spacing. The spacing may vary across browsers and platforms." + } + }, "text-box": { "url": "$MDN_URL$/web/css/text-box", "status": [ @@ -18365,7 +19077,7 @@ "triangle": "Display triangles as marks. The filled triangle is '▲' (U+25B2), and the open triangle is '△' (U+25B3).", "sesame": "Display sesames as marks. The filled sesame is '﹅' (U+FE45), and the open sesame is '﹆' (U+FE46). This is the default shape in vertical writing modes when no other shape is given.", "<string>": "Display the given string as marks. Authors should not specify more than one character in <string>. The UA may truncate or ignore strings consisting of more than one grapheme cluster.", - "<color>": "Defines the color of the mark. If no color is present, it defaults to currentcolor." + "<color>": "Defines the color of the mark. If no color is present, it defaults to currentColor." } }, "text-emphasis-color": { @@ -18391,7 +19103,7 @@ "doc": "The text-emphasis-color CSS property sets the color of emphasis marks. This value can also be set using the text-emphasis shorthand.", "formalSyntax": "<color>", "values": { - "<color>": "Defines the color of the emphasis marks. If no color is present, it defaults to currentcolor." + "<color>": "Defines the color of the emphasis marks. If no color is present, it defaults to currentColor." } }, "text-emphasis-position": { @@ -18768,7 +19480,7 @@ "level": "LOW", "lowDate": "2024-03-05" }, - "doc": "The text-wrap CSS shorthand property controls how text inside an element is wrapped. The different values provide:\n", + "doc": "The text-wrap CSS shorthand property controls how text inside an element is wrapped. The different values provide:\n", "formalSyntax": "<'text-wrap-mode'> || <'text-wrap-style'>\n  <text-wrap-mode> = wrap | nowrap\n  <text-wrap-style> = auto | balance | stable | pretty | avoid-orphans", "values": { "wrap": "Text is wrapped across lines at appropriate characters (for example spaces, in languages like English that use space separators) to minimize overflow. This is the default value.", @@ -18835,23 +19547,24 @@ "timeline-scope": { "url": "$MDN_URL$/web/css/timeline-scope", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "116", "ChromeAndroid": "116", "Edge": "116", - "Opera": "102" + "Opera": "102", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The timeline-scope CSS property modifies the scope of a named animation timeline.\n

By default, a named timeline (i.e., declared using scroll-timeline-name or view-timeline-name) can only be set as the controlling timeline of a direct descendant element (i.e., by setting animation-timeline on it with the timeline name as its value). This is the timeline's default \"scope\".\n

timeline-scope is given the name of a timeline defined on a descendant element; this causes the scope of the timeline to be increased to the element that timeline-scope is set on and any of its descendants. In other words, that element and any of its descendant elements can now be controlled using that timeline.\n

\n

Note:\nIf no timeline (or more than one timeline) exists with the name given for the timeline-scope value, an inactive timeline with the specified name is created.\n

", + "doc": "The timeline-scope CSS property modifies the scope of a named animation timeline.\n

By default, a named timeline (i.e., declared using scroll-timeline-name or view-timeline-name) can only be set as the controlling timeline of a direct descendant element (i.e., by setting animation-timeline on it with the timeline name as its value). This is the timeline's default \"scope\".\n

timeline-scope is given the name of a timeline defined on a descendant element; this causes the scope of the timeline to be increased to the element that timeline-scope is set on and any of its descendants. In other words, that element and any of its descendant elements can now be controlled using that timeline.\n

\n

Note:\nIf no timeline (or more than one timeline) exists with the name given for the timeline-scope value, an inactive timeline with the specified name is created.\n

", "formalSyntax": "none | all | <dashed-ident>#", "values": { "none": "There is no change in timeline scope.", - "<dashed-ident>": "Specifies the name of an existing named timeline (i.e., declared using scroll-timeline-name or view-timeline-name) defined on a descendant element. This causes the timeline scope to be increased to the element that timeline-scope is set on and any of its descendants.\n
\n

Note: <dashed-ident> values must start with --, which helps to avoid name clashes with standard CSS keywords.\n

" + "<dashed-ident>": "Specifies the name of an existing named timeline (i.e., declared using scroll-timeline-name or view-timeline-name) defined on a descendant element. This causes the timeline scope to be increased to the element that timeline-scope is set on and any of its descendants.\n
\n

Note:\n<dashed-ident> values must start with --, which helps to avoid name clashes with standard CSS keywords.\n

" } }, "top": { @@ -19307,7 +20020,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The user-modify property has no effect in Firefox. It was originally planned to determine whether or not the content of an element can be edited by a user.\n

\n

Warning:\nThis property has been replaced by the contenteditable attribute.\n

", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The user-modify property has no effect in Firefox. It was originally planned to determine whether or not the content of an element can be edited by a user.\n

\n

Warning:\nThis property has been replaced by the contenteditable attribute.\n

", "formalSyntax": "read-only | read-write | read-write-plaintext-only | write-only", "values": { "read-only": "Default value. Contents are read-only.", @@ -19394,19 +20107,20 @@ "view-timeline": { "url": "$MDN_URL$/web/css/view-timeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The view-timeline CSS shorthand property is used to define a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject.\n

The visibility of the subject inside the scroller is tracked — by default, the timeline is at 0% when the subject is first visible at one edge of the scroller and 100% when it reaches the opposite edge.\n

view-timeline can contain two constituent values — a name for the named view progress timeline and an optional scroll axis value.\nThe name is then referenced in an animation-timeline declaration to indicate the element that will be animated as the timeline progresses. This can be the subject element, but it doesn't have to be — you can animate a different element as the subject moves through the scrolling area.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

", + "doc": "The view-timeline CSS shorthand property is used to define a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject.\n

The visibility of the subject inside the scroller is tracked — by default, the timeline is at 0% when the subject is first visible at one edge of the scroller and 100% when it reaches the opposite edge.\n

view-timeline can contain two constituent values — a name for the named view progress timeline and an optional scroll axis value.\nThe name is then referenced in an animation-timeline declaration to indicate the element that will be animated as the timeline progresses. This can be the subject element, but it doesn't have to be — you can animate a different element as the subject moves through the scrolling area.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

", "formalSyntax": "[ <'view-timeline-name'> [ <'view-timeline-axis'> || <'view-timeline-inset'> ]? ]#\n  <view-timeline-name> = [ none | <dashed-ident> ]#\n  <view-timeline-axis> = [ block | inline | x | y ]#\n  <view-timeline-inset> = [ [ auto | <length-percentage> ]{1,2} ]#\n  <length-percentage> = <length> | <percentage>", "values": { "<view-timeline-name>": "See view-timeline-name. The default value is none.", @@ -19417,19 +20131,20 @@ "view-timeline-axis": { "url": "$MDN_URL$/web/css/view-timeline-axis", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The view-timeline-axis CSS property is used to specify the scrollbar direction that will be used to provide the timeline for a named view progress timeline animation, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline-axis is set on the subject. See CSS scroll-driven animations for more details.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

\n

The view-timeline-axis, view-timeline-inset and view-timeline-name properties can also be set using the view-timeline shorthand property.", + "doc": "The view-timeline-axis CSS property is used to specify the scrollbar direction that will be used to provide the timeline for a named view progress timeline animation, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline-axis is set on the subject. See CSS scroll-driven animations for more details.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

\n

The view-timeline-axis, view-timeline-inset and view-timeline-name properties can also be set using the view-timeline shorthand property.", "formalSyntax": "[ block | inline | x | y ]#", "values": { "block": "The scrollbar on the block axis of the scroller element, which is the axis in the direction perpendicular to the flow of text within a line. For horizontal writing modes, such as standard English, this is the same as y, while for vertical writing modes, it is the same as x. This is the default value.", @@ -19441,19 +20156,20 @@ "view-timeline-inset": { "url": "$MDN_URL$/web/css/view-timeline-inset", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The view-timeline-inset CSS property is used to specify one or two values representing an adjustment to the position of the scrollport (see Scroll container for more details) in which the subject element of a named view progress timeline animation is deemed to be visible. Put another way, this allows you to specify start and/or end inset (or outset) values that offset the position of the timeline.\n

This can be combined with or used instead of animation-range and its longhand properties, which can be used to set the attachment range of an animation along its timeline.\nSee CSS scroll-driven animations for more details.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

\n

The view-timeline-inset, view-timeline-axis, and view-timeline-name properties can also be set using the view-timeline shorthand property.", + "doc": "The view-timeline-inset CSS property is used to specify one or two values representing an adjustment to the position of the scrollport (see Scroll container for more details) in which the subject element of a named view progress timeline animation is deemed to be visible. Put another way, this allows you to specify start and/or end inset (or outset) values that offset the position of the timeline.\n

This can be combined with or used instead of animation-range and its longhand properties, which can be used to set the attachment range of an animation along its timeline.\nSee CSS scroll-driven animations for more details.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

\n

The view-timeline-inset, view-timeline-axis, and view-timeline-name properties can also be set using the view-timeline shorthand property.", "formalSyntax": "[ [ auto | <length-percentage> ]{1,2} ]#\n  <length-percentage> = <length> | <percentage>", "values": { "auto": "If set, the corresponding scroll-padding (or equivalent longhand value) for that edge of the scrollport is used. If this is not set (or set to auto), the value will usually be 0, although some user agents may use heuristics to determine a different default value if appropriate.", @@ -19463,23 +20179,49 @@ "view-timeline-name": { "url": "$MDN_URL$/web/css/view-timeline-name", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The view-timeline-name CSS property is used to define the name of a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject.\n

The visibility of the subject inside the scroller is tracked — by default, the timeline is at 0% when the subject is first visible at one edge of the scroller and 100% when it reaches the opposite edge.\nThe name is then referenced in an animation-timeline declaration to indicate the element that will be animated as the timeline progresses. This can be the subject element, but it doesn't have to be — you can animate a different element as the subject moves through the scrolling area.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

\n

The view-timeline-name, view-timeline-axis and view-timeline-inset properties can also be set using the view-timeline shorthand property.", + "doc": "The view-timeline-name CSS property is used to define the name of a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject.\n

The visibility of the subject inside the scroller is tracked — by default, the timeline is at 0% when the subject is first visible at one edge of the scroller and 100% when it reaches the opposite edge.\nThe name is then referenced in an animation-timeline declaration to indicate the element that will be animated as the timeline progresses. This can be the subject element, but it doesn't have to be — you can animate a different element as the subject moves through the scrolling area.\n

\n

Note:\nIf the scroller element does not overflow its container in the axis dimension or if the overflow is hidden or clipped, no scroll progress timeline will be created.\n

\n

The view-timeline-name, view-timeline-axis and view-timeline-inset properties can also be set using the view-timeline shorthand property.", "formalSyntax": "[ none | <dashed-ident> ]#", "values": { "none": "The timeline has no name.", - "<dashed-ident>": "An arbitrary custom identifier defining a name for a view progress timeline, which can then be referenced in an animation-timeline property.\n

\n

Note: <dashed-ident> values must start with --, which helps avoid name clashes with standard CSS keywords.\n

" + "<dashed-ident>": "An arbitrary custom identifier defining a name for a view progress timeline, which can then be referenced in an animation-timeline property.\n
\n

Note:\n<dashed-ident> values must start with --, which helps avoid name clashes with standard CSS keywords.\n

" + } + }, + "view-transition-class": { + "url": "$MDN_URL$/web/css/view-transition-class", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "125", + "ChromeAndroid": "125", + "Edge": "125", + "Firefox": "144", + "FirefoxAndroid": "144", + "Opera": "111", + "Safari": "18.2", + "SafariIOS": "18.2" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The view-transition-class CSS property provides the selected elements with an identifying class (a <custom-ident>), providing an additional method of styling the view transitions for those elements.", + "formalSyntax": "none | <custom-ident>+", + "values": { + "<custom-ident>": "An identifying name that causes the selected element to participate in a separate view transition from the root view transition. The identifier must be unique. If two rendered elements have the same view-transition-name at the same time, ViewTransition.ready will reject and the transition will be skipped.", + "none": "No class would apply to the named view transition pseudo-elements generated for this element." } }, "view-transition-name": { @@ -19491,6 +20233,8 @@ "Chrome": "111", "ChromeAndroid": "111", "Edge": "111", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "97", "Safari": "18", "SafariIOS": "18" @@ -19498,11 +20242,12 @@ "baseline": { "level": "NONE" }, - "doc": "The view-transition-name CSS property provides the selected element with a distinct identifying name (a <custom-ident>) and causes it to participate in a separate view transition from the root view transition — or no view transition if the none value is specified.", + "doc": "The view-transition-name CSS property specifies the view transition snapshot that selected elements will participate in. This enables you to animate those elements separately from the rest of the page, which uses the default cross-fade animation during a view transition. You can then define custom animation styles for these elements.", "formalSyntax": "none | <custom-ident>", "values": { - "<custom-ident>": "An identifying name that causes the selected element to participate in a separate view transition from the root view transition. The identifier must be unique. If two rendered elements have the same view-transition-name at the same time, ViewTransition.ready will reject and the transition will be skipped.\n
\n

Note:\nThe <custom-ident> cannot be auto.\n

", - "none": "The selected element will not participate in a view transition." + "<custom-ident>": "An identifying name that causes the selected element to participate in a separate snapshot from the root snapshot. The <custom-ident> cannot be auto, match-element, none, or a CSS-wide keyword value.", + "match-element": "The browser automatically assigns a unique name to the selected element. This name is used to snapshot the element separately from all other elements on the page. (This name is internal and cannot be read from the DOM.)", + "none": "The selected element will not participate in a separate snapshot, unless it has a parent element with a view-transition-name set, in which case it will be snapshotted as part of that element." } }, "visibility": { @@ -19526,7 +20271,7 @@ "highDate": "2018-01-29" }, "doc": "The visibility CSS property shows or hides an element without changing the layout of a document. The property can also hide rows or columns in a <table>.", - "formalSyntax": "visible | hidden | collapse", + "formalSyntax": "visible | hidden | force-hidden | collapse", "values": { "visible": "The element box is visible.", "hidden": "The element box is invisible (not drawn), but still affects layout as normal. Descendants of the element will be visible if they have visibility set to visible. The element cannot receive focus (such as when navigating through tab indexes).", @@ -19556,10 +20301,10 @@ "doc": "The white-space CSS property sets how white space inside an element is handled.", "formalSyntax": "normal | pre | nowrap | pre-wrap | break-spaces | pre-line", "values": { - "normal": "Sequences of white space are collapsed. Newline characters in the source are handled the same as other white spaces. Lines are broken as necessary to fill line boxes.", - "pre": "Sequences of white space are preserved. Lines are only broken at newline characters in the source and at <br> elements.", - "pre-wrap": "Sequences of white space are preserved. Lines are broken at newline characters, at <br>, and as necessary to fill line boxes.", - "pre-line": "Sequences of white space are collapsed. Lines are broken at newline characters, at <br>, and as necessary to fill line boxes." + "normal": "Sequences of white space are collapsed. Newline characters in the source are handled the same as other white spaces. Lines are broken as necessary to fill line boxes. Equivalent to collapse wrap.", + "pre": "Sequences of white space are preserved. Lines are only broken at newline characters in the source and at <br> elements. Equivalent to preserve nowrap.", + "pre-wrap": "Sequences of white space are preserved. Lines are broken at newline characters, at <br>, and as necessary to fill line boxes. Equivalent to preserve wrap.", + "pre-line": "Sequences of white space are collapsed. Lines are broken at newline characters, at <br>, and as necessary to fill line boxes. Equivalent to preserve-breaks wrap." } }, "white-space-collapse": { @@ -19584,7 +20329,7 @@ "doc": "The white-space-collapse CSS property controls how white space inside an element is collapsed.\n
\n

Note:\nThe white-space-collapse and text-wrap-mode properties can be declared together using the white-space shorthand property.\n

", "formalSyntax": "collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces", "values": { - "collapse": "White space sequences are collapsed.", + "collapse": "White space sequences are collapsed.", "preserve": "White space sequences and segment break characters are preserved.", "preserve-breaks": "White space sequences are collapsed, while segment break characters are preserved.", "preserve-spaces": "White space sequences are preserved, while tabs and segment break characters are converted to spaces.", @@ -19634,7 +20379,7 @@ "highDate": "2018-01-29" }, "doc": "The width CSS property sets an element's width. By default, it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.", - "formalSyntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <intrinsic-size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", + "formalSyntax": "auto | <length-percentage [0,∞]> | min-content | max-content | fit-content( <length-percentage [0,∞]> ) | <calc-size()> | <anchor-size()>\n  <length-percentage> = <length> | <percentage>\n  <calc-size()> = calc-size( <calc-size-basis> , <calc-sum> )\n  <anchor-size()> = anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )\n  <calc-size-basis> = <size-keyword> | <calc-size()> | any | <calc-sum>\n  <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*\n  <anchor-name> = <dashed-ident>\n  <anchor-size> = width | height | block | inline | self-block | self-inline\n  <calc-product> = <calc-value> [ [ '*' | / ] <calc-value> ]*\n  <calc-value> = <number> | <dimension> | <percentage> | <calc-keyword> | ( <calc-sum> )\n  <calc-keyword> = e | pi | infinity | -infinity | NaN", "values": { "<length>": "Defines the width as a distance value.", "<percentage>": "Defines the width as a percentage of the containing block's width.", @@ -19643,7 +20388,7 @@ "min-content": "The intrinsic minimum width.", "fit-content": "Use the available space, but not more than max-content, i.e., min(max-content, max(min-content, stretch)).", "fit-content(<length-percentage>)": "Uses the fit-content formula with the available space replaced by the specified argument, i.e., min(max-content, max(min-content, <length-percentage>)).", - "stretch": "Sets the width of the element's margin box to the width of its containing block. It attempts to make the margin box fill the available space in the containing block, so in a way behaving similar to 100% but applying the resulting size to the margin box rather than the box determined by box-sizing.\n
\n

Note:\nTo check aliases used by browsers for the stretch value and its implementation status, see the Browser compatibility section.\n

" + "stretch": "Sets the width of the element's margin box to the width of its containing block. It attempts to make the margin box fill the available space in the containing block, so in a way behaving similar to 100% but applying the resulting size to the margin box rather than the box determined by box-sizing." } }, "will-change": { @@ -19666,7 +20411,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The will-change CSS property hints to browsers how an element is expected to change. Browsers may set up optimizations before an element is actually changed. These kinds of optimizations can increase the responsiveness of a page by doing potentially expensive work before they are actually required.\n
\n

Warning: will-change is intended to be used as a last resort, in order to try to deal with existing performance problems. It should not be used to anticipate performance problems.\n

\n

Proper usage of this property can be a bit tricky:\n

", + "doc": "The will-change CSS property hints to browsers how an element is expected to change. Browsers may set up optimizations before an element is actually changed. These kinds of optimizations can increase the responsiveness of a page by doing potentially expensive work before they are actually required.\n
\n

Warning:\nwill-change is intended to be used as a last resort, in order to try to deal with existing performance problems. It should not be used to anticipate performance problems.\n

\n

Proper usage of this property can be a bit tricky:\n

", "formalSyntax": "auto | <animateable-feature>#\n  <animateable-feature> = scroll-position | contents | <custom-ident>", "values": { "auto": "This keyword expresses no particular intent; the user agent should apply whatever heuristics and optimizations it normally does.", @@ -19788,7 +20533,7 @@ "lowDate": "2020-07-28", "highDate": "2023-01-28" }, - "doc": "The x CSS property defines the x-axis coordinate of the top left corner of the SVG <rect> shape, <image> image, <foreignObject> viewport or nested <svg> viewport relative to the nearest <svg> ancestor's user coordinate system. If present, it overrides the element's x attribute.\n
\n

Note:\nThe x property only applies to <rect>, <image>, <foreignObject>, and <svg> elements nested in an <svg>. It has no effect on the outermost <svg> elements itself, and does not apply to other SVG elements nor to HTML elements or pseudo-elements.\n

", + "doc": "The x CSS property defines the x-axis coordinate of the top left corner of the SVG <rect> shape, <image> image, <foreignObject> viewport or nested <svg> viewport relative to the nearest <svg> ancestor's user coordinate system. If present, it overrides the element's x attribute.\n
\n

Note:\nThe x property only applies to <rect>, <image>, <foreignObject>, and <svg> elements nested in an <svg>. It has no effect on the outermost <svg> elements itself, and does not apply to other SVG elements nor to HTML elements or pseudo-elements.\n

", "formalSyntax": "<length-percentage>\n  <length-percentage> = <length> | <percentage>", "values": { "<length>": "As an absolute or relative length, it can be expressed in any unit allowed by the CSS <length> data type.", @@ -19815,7 +20560,7 @@ "lowDate": "2020-07-28", "highDate": "2023-01-28" }, - "doc": "The y CSS property defines the y-axis coordinate of the top left corner of the SVG <rect> shape, <image> image, <foreignObject> viewport and nested <svg> viewport relative to the nearest <svg> ancestor's user coordinate system. If present, it overrides the element's y attribute.\n
\n

Note:\nThe y property only applies to <rect>, <image>, <foreignObject>, and <svg> elements nested in an <svg>. It has no effect on outermost <svg> elements and does not apply to other SVG elements nor to HTML elements or pseudo-elements.\n

", + "doc": "The y CSS property defines the y-axis coordinate of the top left corner of the SVG <rect> shape, <image> image, <foreignObject> viewport and nested <svg> viewport relative to the nearest <svg> ancestor's user coordinate system. If present, it overrides the element's y attribute.\n
\n

Note:\nThe y property only applies to <rect>, <image>, <foreignObject>, and <svg> elements nested in an <svg>. It has no effect on outermost <svg> elements and does not apply to other SVG elements nor to HTML elements or pseudo-elements.\n

", "formalSyntax": "<length-percentage>\n  <length-percentage> = <length> | <percentage>", "values": { "<length>": "As an absolute or relative length, it can be expressed in any unit allowed by the CSS <length> data type.", @@ -19869,7 +20614,7 @@ "lowDate": "2024-05-14" }, "doc": "The zoom CSS property can be used to control the magnification level of an element.\ntransform: scale() can be used as an alternative to this property.\n

The zoom CSS property scales the targeted element, which can affect the page layout.\nWhen scaling, the zoomed element scales from top and center when using the default writing-mode.\n

In contrast, an element scaled using scale() will not cause layout recalculation or move other elements on the page.\nIf using scale() makes the contents larger than the containing element, then overflow comes into effect.\nAdditionally, elements adjusted using scale() transform from the center by default; this can be changed with the transform-origin CSS property.", - "formalSyntax": "<number [0,∞]> || <percentage [0,∞]>", + "formalSyntax": "<number [0,∞]> | <percentage [0,∞]>", "values": { "<percentage>": "Zoom factor. 100% is equivalent to normal. Values larger than 100% zoom in. Values smaller than 100% zoom out.", "<number>": "Zoom factor. Equivalent to the corresponding percentage (1.0 = 100% = normal). Values larger than 1.0 zoom in. Values smaller than 1.0 zoom out.", @@ -19885,7 +20630,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The :-moz-broken CSS pseudo-class is a Mozilla extension that matches elements representing broken image links.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The :-moz-broken CSS pseudo-class is a Mozilla extension that matches elements representing broken image links.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" }, "-moz-drag-over": { "url": "$MDN_URL$/web/css/_colon_-moz-drag-over", @@ -19893,7 +20638,7 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-drag-over CSS pseudo-class is a Mozilla extension that matches an element when a dragover event is called on it." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-drag-over CSS pseudo-class is a Mozilla extension that matches an element when a dragover event is called on it." }, "-moz-first-node": { "url": "$MDN_URL$/web/css/_colon_-moz-first-node", @@ -19901,10 +20646,10 @@ "Experimental" ], "compatibility": { - "Firefox": "72", - "FirefoxAndroid": "79" + "Firefox": "55", + "FirefoxAndroid": "55" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The :-moz-first-node CSS pseudo-class is a Mozilla extension that represents any element that is the first child node of some other element. It differs from :first-child because it does not match a first-child element with (non-whitespace) text before it.\n

\n

Note:\nAny whitespace at the start of an element is ignored for the determination of :-moz-first-node.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The :-moz-first-node CSS pseudo-class is a Mozilla extension that represents any element that is the first child node of some other element. It differs from :first-child because it does not match a first-child element with (non-whitespace) text before it.\n

\n

Note:\nAny whitespace at the start of an element is ignored for the determination of :-moz-first-node.\n

" }, "-moz-handler-blocked": { "url": "$MDN_URL$/web/css/_colon_-moz-handler-blocked", @@ -19912,7 +20657,7 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-handler-blocked CSS pseudo-class is a Mozilla extension that matches elements that can't be displayed because their handlers have been blocked.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-handler-blocked CSS pseudo-class is a Mozilla extension that matches elements that can't be displayed because their handlers have been blocked.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" }, "-moz-handler-crashed": { "url": "$MDN_URL$/web/css/_colon_-moz-handler-crashed", @@ -19920,7 +20665,7 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-handler-crashed CSS pseudo-class is a Mozilla extension that matches elements that can't be displayed because the plugin responsible for drawing them has crashed.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-handler-crashed CSS pseudo-class is a Mozilla extension that matches elements that can't be displayed because the plugin responsible for drawing them has crashed.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" }, "-moz-handler-disabled": { "url": "$MDN_URL$/web/css/_colon_-moz-handler-disabled", @@ -19928,7 +20673,7 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-handler-disabled CSS pseudo-class is a Mozilla extension that matches elements that can't be displayed because their handlers have been disabled by the user.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-handler-disabled CSS pseudo-class is a Mozilla extension that matches elements that can't be displayed because their handlers have been disabled by the user.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" }, "-moz-last-node": { "url": "$MDN_URL$/web/css/_colon_-moz-last-node", @@ -19936,10 +20681,10 @@ "Experimental" ], "compatibility": { - "Firefox": "72", - "FirefoxAndroid": "79" + "Firefox": "55", + "FirefoxAndroid": "55" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The :-moz-last-node CSS pseudo-class is a Mozilla extension that represents any element that is the last child node of some other element. It differs from :last-child because it does not match a last-child element with (non-whitespace) text after it.\n

\n

Note:\nAny whitespace at the end of an element is ignored for the determination of :-moz-last-node.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The :-moz-last-node CSS pseudo-class is a Mozilla extension that represents any element that is the last child node of some other element. It differs from :last-child because it does not match a last-child element with (non-whitespace) text after it.\n

\n

Note:\nAny whitespace at the end of an element is ignored for the determination of :-moz-last-node.\n

" }, "-moz-loading": { "url": "$MDN_URL$/web/css/_colon_-moz-loading", @@ -19947,7 +20692,7 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-loading CSS pseudo-class is a Mozilla extension that matches elements that can't be displayed because they have not started loading, such as images that haven't started to arrive yet. Note that images that are in the process of loading are not matched by this pseudo-class.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-loading CSS pseudo-class is a Mozilla extension that matches elements that can't be displayed because they have not started loading, such as images that haven't started to arrive yet. Note that images that are in the process of loading are not matched by this pseudo-class.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" }, "-moz-locale-dir_ltr": { "url": "$MDN_URL$/web/css/_colon_-moz-locale-dir_ltr", @@ -19955,7 +20700,7 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-locale-dir(ltr) CSS pseudo-class is a Mozilla extension that matches an element if the user interface is being displayed left-to-right. This is determined by the preference intl.uidirection.locale (where locale is the current locale) being set to \"ltr\".\n

\n

Note:\nThis selector is mainly used by extensions and themes to adapt the user interface based on the user's locale. (This can vary from window to window, and even from tab to tab.) It also allows extensions to work even when they don't support the user's default locale, since they can support both left-to-right and right-to-left layouts regardless of locale specifics.\n

\n
\n

Warning:\nThis selector does not work properly from HTML; it always matches, regardless of whether the UI locale is left-to-right or right-to-left.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-locale-dir(ltr) CSS pseudo-class is a Mozilla extension that matches an element if the user interface is being displayed left-to-right. This is determined by the preference intl.uidirection.locale (where locale is the current locale) being set to \"ltr\".\n

\n

Note:\nThis selector is mainly used by extensions and themes to adapt the user interface based on the user's locale. (This can vary from window to window, and even from tab to tab.) It also allows extensions to work even when they don't support the user's default locale, since they can support both left-to-right and right-to-left layouts regardless of locale specifics.\n

\n
\n

Warning:\nThis selector does not work properly from HTML; it always matches, regardless of whether the UI locale is left-to-right or right-to-left.\n

" }, "-moz-locale-dir_rtl": { "url": "$MDN_URL$/web/css/_colon_-moz-locale-dir_rtl", @@ -19963,7 +20708,7 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-locale-dir(rtl) CSS pseudo-class is a Mozilla extension that matches an element if the user interface is being displayed right-to-left. This is determined by the preference intl.uidirection.locale (where locale is the current locale) being set to \"rtl\".\n

\n

Note:\nThis selector is mainly used by extensions and themes to adapt the user interface based on the user's locale. (This can vary from window to window, and even from tab to tab.) It also allows extensions to work even when they don't support the user's default locale, since they can support both left-to-right and right-to-left layouts regardless of locale specifics.\n

\n
\n

Warning:\nThis selector does not work properly from HTML; it never matches, no matter whether the UI locale is left-to-right or right-to-left.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-locale-dir(rtl) CSS pseudo-class is a Mozilla extension that matches an element if the user interface is being displayed right-to-left. This is determined by the preference intl.uidirection.locale (where locale is the current locale) being set to \"rtl\".\n

\n

Note:\nThis selector is mainly used by extensions and themes to adapt the user interface based on the user's locale. (This can vary from window to window, and even from tab to tab.) It also allows extensions to work even when they don't support the user's default locale, since they can support both left-to-right and right-to-left layouts regardless of locale specifics.\n

\n
\n

Warning:\nThis selector does not work properly from HTML; it never matches, no matter whether the UI locale is left-to-right or right-to-left.\n

" }, "-moz-only-whitespace": { "url": "$MDN_URL$/web/css/_colon_-moz-only-whitespace", @@ -19971,12 +20716,12 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Note:\nIn Selectors Level 4, the :empty selector was changed to act like :-moz-only-whitespace, but no browser currently supports this yet.\n

\n

The :-moz-only-whitespace CSS pseudo-class matches elements that only contain text nodes that only contain whitespace. (This includes elements with empty text nodes and elements with no child nodes.)" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nIn Selectors Level 4, the :empty selector was changed to act like :-moz-only-whitespace, but no browser currently supports this yet.\n

\n

The :-moz-only-whitespace CSS pseudo-class matches elements that only contain text nodes that only contain whitespace. (This includes elements with empty text nodes and elements with no child nodes.)" }, "-moz-submit-invalid": { "url": "$MDN_URL$/web/css/_colon_-moz-submit-invalid", "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-submit-invalid CSS pseudo-class is a Mozilla extension that represents any submit <button> on forms whose contents aren't valid based on their validation constraints.\n

By default, no style is applied. You can use this pseudo-class to customize the appearance of the submit button when there are invalid form fields." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-submit-invalid CSS pseudo-class is a Mozilla extension that represents any submit <button> on forms whose contents aren't valid based on their validation constraints.\n

By default, no style is applied. You can use this pseudo-class to customize the appearance of the submit button when there are invalid form fields." }, "-moz-suppressed": { "url": "$MDN_URL$/web/css/_colon_-moz-suppressed", @@ -19984,7 +20729,7 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-suppressed CSS pseudo-class is a Mozilla extension that matches elements representing images that were suppressed because loading images from the specified site has been blocked.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-suppressed CSS pseudo-class is a Mozilla extension that matches elements representing images that were suppressed because loading images from the specified site has been blocked.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" }, "-moz-user-disabled": { "url": "$MDN_URL$/web/css/_colon_-moz-user-disabled", @@ -19992,14 +20737,14 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-user-disabled CSS pseudo-class is a Mozilla extension that matches elements representing images that were not loaded because images have been entirely disabled by the user's preferences.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-user-disabled CSS pseudo-class is a Mozilla extension that matches elements representing images that were not loaded because images have been entirely disabled by the user's preferences.\n

\n

Note:\nThis selector is mainly intended to be used by theme developers.\n

" }, "-moz-window-inactive": { "url": "$MDN_URL$/web/css/_colon_-moz-window-inactive", "compatibility": { "Firefox": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The :-moz-window-inactive CSS pseudo-class is a Mozilla extension that matches any element while it's in an inactive window.\n

:-moz-window-inactive works in content HTML documents, too.\n

\n

Note:\nPrior to the addition of this pseudo-class, giving different styles to background windows was achieved by setting an attribute (active=\"true\") on the top-level XUL chrome window. This attribute is no longer used.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The :-moz-window-inactive CSS pseudo-class is a Mozilla extension that matches any element while it's in an inactive window.\n

:-moz-window-inactive works in content HTML documents, too.\n

\n

Note:\nPrior to the addition of this pseudo-class, giving different styles to background windows was achieved by setting an attribute (active=\"true\") on the top-level XUL chrome window. This attribute is no longer used.\n

" }, "active": { "url": "$MDN_URL$/web/css/_colon_active", @@ -20023,6 +20768,26 @@ }, "doc": "The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user. When using a mouse, \"activation\" typically starts when the user presses down the primary mouse button." }, + "active-view-transition": { + "url": "$MDN_URL$/web/css/_colon_active-view-transition", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "125", + "ChromeAndroid": "125", + "Edge": "125", + "Firefox": "144", + "FirefoxAndroid": "144", + "Opera": "111", + "Safari": "18", + "SafariIOS": "18" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The :active-view-transition CSS pseudo-class matches the root element of a document when a view transition is in progress (active) and stops matching once the transition has completed." + }, "any-link": { "url": "$MDN_URL$/web/css/_colon_any-link", "status": [ @@ -20061,10 +20826,11 @@ "SafariIOS": "15" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-09" + "level": "HIGH", + "lowDate": "2023-02-09", + "highDate": "2025-08-09" }, - "doc": "The :autofill CSS pseudo-class matches when an <input> element has its value autofilled by the browser. The class stops matching if the user edits the field." + "doc": "The :autofill CSS pseudo-class matches when an <input> element has its value autofilled by the browser. The class stops matching if the user edits the field." }, "blank": { "url": "$MDN_URL$/web/css/_colon_blank", @@ -20436,7 +21202,7 @@ "level": "LOW", "lowDate": "2023-12-19" }, - "doc": "The functional :has() CSS pseudo-class represents an element if any of the relative selectors that are passed as an argument match at least one element when anchored against this element. This pseudo-class presents a way of selecting a parent element or a previous sibling element with respect to a reference element by taking a relative selector list as an argument.\n
\n```css\n/* Selects an h1 heading with a\nparagraph element that immediately follows\nthe h1 and applies the style to h1 */\nh1:has(+ p) {\n  margin-bottom: 0;\n}\n```\n
\n

The :has() pseudo-class takes on the specificity of the most specific selector in its arguments the same way as :is() and :not() do." + "doc": "The functional :has() CSS pseudo-class represents an element if any of the relative selectors that are passed as an argument match at least one element when anchored against this element. This pseudo-class presents a way of selecting a parent element or a previous sibling element with respect to a reference element by taking a relative selector list as an argument.\n

\n```css\n/* Selects an h1 heading with a\nparagraph element that immediately follows\nthe h1 and applies the style to h1 */\nh1:has(+ p) {\n  margin-bottom: 0;\n}\n```\n
\n

The :has() pseudo-class takes on the specificity of the most specific selector in its arguments the same way as :is() and :not() do." }, "has-slotted": { "url": "$MDN_URL$/web/css/_colon_has-slotted", @@ -20456,6 +21222,30 @@ }, "doc": "The :has-slotted CSS pseudo-class matches when the content of a <slot> element is not empty or not using the default value (see Using templates and slots for more information).\n

\n

Note:\nEven a single whitespace text node is sufficient to make :has-slotted apply.\n

\n

This only works when used inside CSS placed within a shadow DOM.\n

\n```css\n/* Selects the content of a  element that has content that is not default  */\n:has-slotted {\n  color: green;\n}\n/* Selects the content of a  element that has no content or default  */\n:not(:has-slotted) {\n  color: red;\n}\n```\n
" }, + "heading": { + "url": "$MDN_URL$/web/css/_colon_heading", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The :heading CSS pseudo-class matches all heading elements in a document. This allows you to style all headings at once, rather than matching and styling them individually.\n

This pseudo-class matches only elements that by default are semantically recognized as headings (<h1> through <h6>). Elements with role=\"heading\" are not matched; you can select those by using the [role=\"heading\"] attribute selector.\n

\n

Note:\nThe :heading pseudo-class has the same specificity as a class selector, that is, 0-1-0. So :heading would have a specificity of 0-1-0, and section:heading would have a specificity of 0-1-1.\n

" + }, + "heading()": { + "url": "$MDN_URL$/web/css/_colon_heading_function", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The :heading() CSS pseudo-class function represents all heading elements that match a value calculated using the An+B notation. This allows you to style elements at specific heading levels at once, rather than matching and styling them individually.\n

\n

Note:\nThe :heading() functional pseudo-class has the same specificity as a class selector, that is, 0-1-0. So :heading() would have a specificity of 0-1-0, and section:heading() would have a specificity of 0-1-1.\n

" + }, "host": { "url": "$MDN_URL$/web/css/_colon_host", "status": [ @@ -20503,7 +21293,8 @@ "host-context": { "url": "$MDN_URL$/web/css/_colon_host-context", "status": [ - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "54", @@ -20511,10 +21302,7 @@ "Edge": "79", "Opera": "41" }, - "baseline": { - "level": "NONE" - }, - "doc": "The :host-context() CSS pseudo-class allows you to style elements within a shadow DOM differently based on the selector of the shadow host (the element that has the shadow root) and its DOM ancestors.\n

Normally, elements within a shadow DOM are isolated from the DOM outside of it. The :host-context() allows you to \"peek outside\" of this Shadow DOM and check if any of the element's ancestor elements match a certain CSS selector. For example, applying a different text color to elements within a shadow root when a .dark-theme class is applied to <body>.\n

Think of it like this: Imagine you have a <greenhouse> custom element, that has a <chameleon> living inside. Here, the <greenhouse> is the Shadow DOM host and the <chameleon> element is within the Shadow DOM. The :host-context() lets the <chameleon> change its appearance based on the <greenhouse>'s environment. If the <greenhouse> is in a sunny location (has a \"sunny-theme\" class), the <chameleon> turns yellow. If the <greenhouse> is in a shady spot (a \"shady-theme\" class applied instead), the <chameleon> turns blue.\n

This selector pierces through all shadow boundaries. It will look for the sunny or shady theme applied directly to the <greenhouse> or on any of the host's ancestors and ancestor DOMs all the way up until it reaches the document root.\n

To limit the selector to only the <greenhouse> host directly or limit the selection to host's DOM, use the :host or :host() pseudo-class instead.\n

\n

Note:\nThis has no effect when used outside a shadow DOM.\n

\n

The specificity of :host-context() is that of a pseudo-class, plus the specificity of the selector passed as the function's argument." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The :host-context() CSS pseudo-class allows you to style elements within a shadow DOM differently based on the selector of the shadow host (the element that has the shadow root) and its DOM ancestors.\n

Normally, elements within a shadow DOM are isolated from the DOM outside of it. The :host-context() allows you to \"peek outside\" of this Shadow DOM and check if any of the element's ancestor elements match a certain CSS selector. For example, applying a different text color to elements within a shadow root when a .dark-theme class is applied to <body>.\n

Think of it like this: Imagine you have a <greenhouse> custom element, that has a <chameleon> living inside. Here, the <greenhouse> is the Shadow DOM host and the <chameleon> element is within the Shadow DOM. The :host-context() lets the <chameleon> change its appearance based on the <greenhouse>'s environment. If the <greenhouse> is in a sunny location (has a \"sunny-theme\" class), the <chameleon> turns yellow. If the <greenhouse> is in a shady spot (a \"shady-theme\" class applied instead), the <chameleon> turns blue.\n

This selector pierces through all shadow boundaries. It will look for the sunny or shady theme applied directly to the <greenhouse> or on any of the host's ancestors and ancestor DOMs all the way up until it reaches the document root.\n

To limit the selector to only the <greenhouse> host directly or limit the selection to host's DOM, use the :host or :host() pseudo-class instead.\n

\n

Note:\nThis has no effect when used outside a shadow DOM.\n

\n

The specificity of :host-context() is that of a pseudo-class, plus the specificity of the selector passed as the function's argument." }, "hover": { "url": "$MDN_URL$/web/css/_colon_hover", @@ -20536,7 +21324,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The :hover CSS pseudo-class matches when the user interacts with an element with a pointing device, but does not necessarily activate it. It is generally triggered when the user hovers over an element with the cursor (mouse pointer)." + "doc": "The :hover CSS pseudo-class matches an element when a user interacts with it using a pointing device. The pseudo-class is generally triggered when the user moves the cursor (mouse pointer) over an element without pressing the mouse button." }, "in-range": { "url": "$MDN_URL$/web/css/_colon_in-range", @@ -20646,8 +21434,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The :lang() CSS pseudo-class matches elements based on the language they are determined to be in.", - "formalSyntax": ":lang(<language-code> [,<language-code> ]*)/* ... */}" + "doc": "The :lang() CSS pseudo-class matches elements based on the language they are determined to be in." }, "last-child": { "url": "$MDN_URL$/web/css/_colon_last-child", @@ -20907,7 +21694,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The :only-child CSS pseudo-class represents an element without any siblings. This is the same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity." + "doc": "The :only-child CSS pseudo-class represents an element without any siblings. This is the same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity." }, "only-of-type": { "url": "$MDN_URL$/web/css/_colon_only-of-type", @@ -20929,7 +21716,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The :only-of-type CSS pseudo-class represents an element that has no siblings of the same type (tag name)." + "doc": "The :only-of-type CSS pseudo-class represents an element that has no siblings of the same type (tag name)." }, "open": { "url": "$MDN_URL$/web/css/_colon_open", @@ -21312,14 +22099,6 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The :target-current CSS pseudo-class selects the active scroll marker — the ::scroll-marker pseudo-element of a scroll-marker-group that is currently scrolled to. This selector can be used to style the active navigation position within a scroll marker group.\n

\n

Note:\nThe :target-current pseudo-class is only valid on ::scroll-marker pseudo-elements.\n

" }, - "target-within": { - "url": "$MDN_URL$/web/css/_colon_target-within", - "status": [ - "Experimental", - "Deprecated" - ], - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The :target-within CSS pseudo-class represents an element that is a target element or contains an element that is a target. A target element is a unique element with an id matching the URL's fragment. In other words, it represents an element that is itself matched by the :target pseudo-class or has a descendant that is matched by :target. (This includes descendants in shadow trees.)\n

\n```css\n/* Selects a 
 when one of its descendants is a target */\ndiv:target-within {\n  background: cyan;\n}\n```\n
" - }, "user-invalid": { "url": "$MDN_URL$/web/css/_colon_user-invalid", "status": [ @@ -21339,7 +22118,7 @@ "level": "LOW", "lowDate": "2023-11-02" }, - "doc": "The :user-invalid CSS pseudo-class represents any validated form element whose value isn't valid based on their validation constraints, after the user has interacted with it.\n

The :user-invalid pseudo-class must match an :invalid, :out-of-range, or blank-but :required element between the time the user has attempted to submit the form and before the user has interacted again with the form element." + "doc": "The :user-invalid CSS pseudo-class represents any validated form element whose value isn't valid based on their validation constraints, after the user has interacted with it.\n

The :user-invalid pseudo-class must match an :invalid, :out-of-range, or blank-but :required element between the time the user has attempted to submit the form and before the user has interacted again with the form element." }, "user-valid": { "url": "$MDN_URL$/web/css/_colon_user-valid", @@ -21360,7 +22139,7 @@ "level": "LOW", "lowDate": "2023-11-02" }, - "doc": "The :user-valid CSS pseudo-class represents any validated form element whose value validates correctly based on its validation constraints. However, unlike :valid it only matches once the user has interacted with it.\n

This pseudo-class is applied if the form control is valid and any of the following has occurred:\n

    \n
  • The user made a change to the form control and committed the change such as by moving focus elsewhere.
  • \n
  • The user has attempted to submit the form, even if no change was made to the control.
  • \n
  • The value was invalid when it gained focus, and the user made a change making it valid, even if focus is still in the control.
  • \n
\n

Once this pseudo-class has been applied, the user-agent re-validates whether the control is valid at every keystroke when the control has focus.\n

    \n
  • If the control has focus, and the value was invalid when it gained focus, re-validate on every keystroke.
  • \n
\n

The result is that if the control was valid when the user started interacting with it, the validity styling is changed only when the user shifts focus to another control. However, if the user is trying to correct a previously-flagged value, the control shows immediately when the value becomes valid. Required items are flagged as invalid only if the user changes them or attempts to submit an unchanged invalid value." + "doc": "The :user-valid CSS pseudo-class represents any validated form element whose value validates correctly based on its validation constraints. However, unlike :valid it only matches once the user has interacted with it.\n

This pseudo-class is applied if the form control is valid and any of the following has occurred:\n

    \n
  • The user made a change to the form control and committed the change such as by moving focus elsewhere.
  • \n
  • The user has attempted to submit the form, even if no change was made to the control.
  • \n
  • The value was invalid when it gained focus, and the user made a change making it valid, even if focus is still in the control.
  • \n
\n

Once this pseudo-class has been applied, the user-agent re-validates whether the control is valid at every keystroke when the control has focus.\n

    \n
  • If the control has focus, and the value was invalid when it gained focus, re-validate on every keystroke.
  • \n
\n

The result is that if the control was valid when the user started interacting with it, the validity styling is changed only when the user shifts focus to another control. However, if the user is trying to correct a previously-flagged value, the control shows immediately when the value becomes valid. Required items are flagged as invalid only if the user changes them or attempts to submit an unchanged invalid value." }, "valid": { "url": "$MDN_URL$/web/css/_colon_valid", @@ -21450,18 +22229,15 @@ "Firefox": "27", "FirefoxAndroid": "27" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-moz-color-swatch CSS pseudo-element is a Mozilla extension that represents the color selected in an <input> of type=\"color\".\n

\n

Note:\nUsing ::-moz-color-swatch with anything but an <input type=\"color\"> doesn't match anything and has no effect.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-moz-color-swatch CSS pseudo-element is a Mozilla extension that represents the color selected in an <input> of type=\"color\".\n

\n

Note:\nUsing ::-moz-color-swatch with anything but an <input type=\"color\"> doesn't match anything and has no effect.\n

" }, "-moz-focus-inner": { "url": "$MDN_URL$/web/css/_doublecolon_-moz-focus-inner", "status": [ - "Experimental" + "Experimental", + "Deprecated" ], - "compatibility": { - "Firefox": "72", - "FirefoxAndroid": "79" - }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-moz-focus-inner CSS pseudo-element is a Mozilla extension that represents an inner focus ring of the <button> element as well as the button, submit, reset, and color types of the <input> element.\n

\n

Note:\nUsing ::-moz-focus-inner with anything than the buttons that support it doesn't match anything and has no effect.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The ::-moz-focus-inner CSS pseudo-element is a Mozilla extension that represents an inner focus ring of the <button> element as well as the button, submit, reset, and color types of the <input> element.\n

\n

Note:\nUsing ::-moz-focus-inner with anything than the buttons that support it doesn't match anything and has no effect.\n

" }, "-moz-list-bullet": { "url": "$MDN_URL$/web/css/_doublecolon_-moz-list-bullet", @@ -21469,10 +22245,10 @@ "Experimental" ], "compatibility": { - "Firefox": "72", - "FirefoxAndroid": "79" + "Firefox": "", + "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ::-moz-list-bullet CSS pseudo-element is a Mozilla extension that represents the marker (typically a bullet) of a list item (<li>) in an unordered list (<ul>)." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ::-moz-list-bullet CSS pseudo-element is a Mozilla extension that represents the marker (typically a bullet) of a list item (<li>) in an unordered list (<ul>)." }, "-moz-list-number": { "url": "$MDN_URL$/web/css/_doublecolon_-moz-list-number", @@ -21480,10 +22256,10 @@ "Experimental" ], "compatibility": { - "Firefox": "72", - "FirefoxAndroid": "79" + "Firefox": "", + "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ::-moz-list-number CSS pseudo-element is a Mozilla extension that represents the marker (typically a number) of a list item (<li>) in an ordered list (<ol>)." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ::-moz-list-number CSS pseudo-element is a Mozilla extension that represents the marker (typically a number) of a list item (<li>) in an ordered list (<ol>)." }, "-moz-meter-bar": { "url": "$MDN_URL$/web/css/_doublecolon_-moz-meter-bar", @@ -21491,7 +22267,7 @@ "Experimental", "Deprecated" ], - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-moz-meter-bar CSS pseudo-element represents the meter gauge in a <meter> element. It is used for selecting and applying styles to the gauge inside a meter element." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-moz-meter-bar CSS pseudo-element represents the meter gauge in a <meter> element. It is used for selecting and applying styles to the gauge inside a meter element." }, "-moz-progress-bar": { "url": "$MDN_URL$/web/css/_doublecolon_-moz-progress-bar", @@ -21499,10 +22275,10 @@ "Experimental" ], "compatibility": { - "Firefox": "72", - "FirefoxAndroid": "79" + "Firefox": "6", + "FirefoxAndroid": "6" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ::-moz-progress-bar CSS pseudo-element is a Mozilla extension that represents the progress bar inside a <progress> element. (The bar represents the amount of progress that has been made.)\n

If you want to select the unfinished part of <progress> in Mozilla, please select the <progress> directly." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ::-moz-progress-bar CSS pseudo-element is a Mozilla extension that represents the progress bar inside a <progress> element. (The bar represents the amount of progress that has been made.)\n

If you want to select the unfinished part of <progress> in Mozilla, please select the <progress> directly." }, "-moz-range-progress": { "url": "$MDN_URL$/web/css/_doublecolon_-moz-range-progress", @@ -21510,7 +22286,7 @@ "Firefox": "22", "FirefoxAndroid": "22" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).\n

\n

Note:\nUsing ::-moz-range-progress with anything but an <input type=\"range\"> doesn't match anything and has no effect.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).\n

\n

Note:\nUsing ::-moz-range-progress with anything but an <input type=\"range\"> doesn't match anything and has no effect.\n

" }, "-moz-range-thumb": { "url": "$MDN_URL$/web/css/_doublecolon_-moz-range-thumb", @@ -21518,7 +22294,7 @@ "Firefox": "21", "FirefoxAndroid": "21" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type=\"range\". The user can move the thumb along the input's track to alter its numerical value.\n

\n

Note:\nUsing ::-moz-range-thumb with anything but an <input type=\"range\"> doesn't match anything and has no effect.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type=\"range\". The user can move the thumb along the input's track to alter its numerical value.\n

\n

Note:\nUsing ::-moz-range-thumb with anything but an <input type=\"range\"> doesn't match anything and has no effect.\n

" }, "-moz-range-track": { "url": "$MDN_URL$/web/css/_doublecolon_-moz-range-track", @@ -21526,7 +22302,7 @@ "Firefox": "21", "FirefoxAndroid": "21" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\".\n

\n

Note:\nUsing ::-moz-range-track with anything but an <input type=\"range\"> doesn't match anything and has no effect.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type=\"range\".\n

\n

Note:\nUsing ::-moz-range-track with anything but an <input type=\"range\"> doesn't match anything and has no effect.\n

" }, "-webkit-inner-spin-button": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-inner-spin-button", @@ -21538,7 +22314,7 @@ "Safari": "5", "SafariIOS": "4.2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-inner-spin-button CSS pseudo-element is used to style the inner part of the spinner button of number picker input elements." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-inner-spin-button CSS pseudo-element is used to style the inner part of the spinner button of number picker input elements." }, "-webkit-meter-bar": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-meter-bar", @@ -21553,7 +22329,7 @@ "Safari": "5.1", "SafariIOS": "5" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The ::-webkit-meter-bar CSS pseudo-element is a WebKit extension that represents the background of a <meter> element. It is used for selecting and applying styles to the container of a meter gauge." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The ::-webkit-meter-bar CSS pseudo-element is a WebKit extension that represents the background of a <meter> element. It is used for selecting and applying styles to the container of a meter gauge." }, "-webkit-meter-even-less-good-value": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-meter-even-less-good-value", @@ -21565,7 +22341,7 @@ "Safari": "5.1", "SafariIOS": "5" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-meter-even-less-good-value styles the <meter> element when the value and the optimum attributes fall outside the low-high range, but in opposite zones. To illustrate, it applies when value < low < high < optimum or value > high > low > optimum.\n

Red is the default color." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-meter-even-less-good-value styles the <meter> element when the value and the optimum attributes fall outside the low-high range, but in opposite zones. To illustrate, it applies when value < low < high < optimum or value > high > low > optimum.\n

Red is the default color." }, "-webkit-meter-inner-element": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-meter-inner-element", @@ -21577,7 +22353,7 @@ "Safari": "7", "SafariIOS": "7" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

::-webkit-meter-inner-element is a proprietary WebKit CSS pseudo-element for selecting and applying styles to the outer containing element of a <meter> element. Additional markup to render the meter element as read-only." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

::-webkit-meter-inner-element is a proprietary WebKit CSS pseudo-element for selecting and applying styles to the outer containing element of a <meter> element. Additional markup to render the meter element as read-only." }, "-webkit-meter-optimum-value": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-meter-optimum-value", @@ -21589,7 +22365,7 @@ "Safari": "5.1", "SafariIOS": "5" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-meter-optimum-value CSS pseudo-element styles the <meter> element when its value is inside the low-high range, or when the value is equivalent to the optimum value.\n

Green is the default color." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-meter-optimum-value CSS pseudo-element styles the <meter> element when its value is inside the low-high range, or when the value is equivalent to the optimum value.\n

Green is the default color." }, "-webkit-meter-suboptimum-value": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-meter-suboptimum-value", @@ -21601,7 +22377,7 @@ "Safari": "5.1", "SafariIOS": "5" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-meter-suboptimum-value pseudo-element styles the <meter> element when the value attribute falls outside of the low-high range and is not equivalent to the optimum value.\n

Yellow is the default color." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-meter-suboptimum-value pseudo-element styles the <meter> element when the value attribute falls outside of the low-high range and is not equivalent to the optimum value.\n

Yellow is the default color." }, "-webkit-progress-bar": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-progress-bar", @@ -21613,7 +22389,7 @@ "Safari": "7", "SafariIOS": "7" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-progress-bar CSS pseudo-element represents the entire bar of a <progress> element. Normally it's only visible as the unfilled portion of the bar, since by default it's rendered below the ::-webkit-progress-value pseudo-element. It is a child of the ::-webkit-progress-inner-element pseudo-element and the parent of the ::-webkit-progress-value pseudo-element.\n

\n

Note:\nFor ::-webkit-progress-value to take effect, appearance needs to be set to none on the <progress> element.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-progress-bar CSS pseudo-element represents the entire bar of a <progress> element. Normally it's only visible as the unfilled portion of the bar, since by default it's rendered below the ::-webkit-progress-value pseudo-element. It is a child of the ::-webkit-progress-inner-element pseudo-element and the parent of the ::-webkit-progress-value pseudo-element.\n

\n

Note:\nFor ::-webkit-progress-value to take effect, appearance needs to be set to none on the <progress> element.\n

" }, "-webkit-progress-inner-element": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-progress-inner-element", @@ -21625,7 +22401,7 @@ "Safari": "7", "SafariIOS": "7" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-progress-inner-element CSS pseudo-element represents the outermost container of the <progress> element. It is the parent of the ::-webkit-progress-bar pseudo-element.\n

\n

Note:\nIn order to let ::-webkit-progress-value take effect, appearance needs to be set to none on the <progress> element.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-progress-inner-element CSS pseudo-element represents the outermost container of the <progress> element. It is the parent of the ::-webkit-progress-bar pseudo-element.\n

\n

Note:\nIn order to let ::-webkit-progress-value take effect, appearance needs to be set to none on the <progress> element.\n

" }, "-webkit-progress-value": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-progress-value", @@ -21637,7 +22413,7 @@ "Safari": "7", "SafariIOS": "7" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.\n

\n

Note:\nIn order to let ::-webkit-progress-value take effect, appearance needs to be set to none on the <progress> element.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.\n

\n

Note:\nIn order to let ::-webkit-progress-value take effect, appearance needs to be set to none on the <progress> element.\n

" }, "-webkit-scrollbar": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-scrollbar", @@ -21694,7 +22470,7 @@ "Safari": "4" } }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-scrollbar CSS pseudo-element affects the style of an element's scrollbar when it has scrollable overflow.\n

The scrollbar-color and scrollbar-width standard properties may be used as alternatives for browsers that do not support this pseudo-element and the related ::-webkit-scrollbar-* pseudo-elements (see Browser compatibility).\n

\n

Note:\nIf scrollbar-color and scrollbar-width are supported and have any value other than auto set, they will override ::-webkit-scrollbar-* styling.\nSee Adding a fallback for scrollbar styles for more details.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-scrollbar CSS pseudo-element affects the style of an element's scrollbar when it has scrollable overflow.\n

The scrollbar-color and scrollbar-width standard properties may be used as alternatives for browsers that do not support this pseudo-element and the related ::-webkit-scrollbar-* pseudo-elements (see Browser compatibility).\n

\n

Note:\nIf scrollbar-color and scrollbar-width are supported and have any value other than auto set, they will override ::-webkit-scrollbar-* styling.\nSee Adding a fallback for scrollbar styles for more details.\n

" }, "-webkit-search-cancel-button": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-search-cancel-button", @@ -21706,7 +22482,7 @@ "Safari": "3", "SafariIOS": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-search-cancel-button CSS pseudo-element represents a button (the \"cancel button\") at the edge of an <input> of type=\"search\" which clears away the current value of the <input> element. This button and pseudo-element are non-standard, supported only in WebKit and Blink, hence the vendor prefix. The clear button is only shown on non-empty search <input> elements." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-search-cancel-button CSS pseudo-element represents a button (the \"cancel button\") at the edge of an <input> of type=\"search\" which clears away the current value of the <input> element. This button and pseudo-element are non-standard, supported only in WebKit and Blink, hence the vendor prefix. The clear button is only shown on non-empty search <input> elements." }, "-webkit-search-results-button": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-search-results-button", @@ -21718,31 +22494,31 @@ "Safari": "3", "SafariIOS": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-search-results-button CSS pseudo-element represents a button (the \"search results button\") at the left edge of an <input> of type=\"search\" which when clicked displays a menu which allows the user to choose from previous recent search queries. This button and pseudo-element are non-standard, supported only in WebKit and Blink, hence the vendor prefix. The search results button is only shown on search <input> elements that have a results attribute." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-search-results-button CSS pseudo-element represents a button (the \"search results button\") at the left edge of an <input> of type=\"search\" which when clicked displays a menu which allows the user to choose from previous recent search queries. This button and pseudo-element are non-standard, supported only in WebKit and Blink, hence the vendor prefix. The search results button is only shown on search <input> elements that have a results attribute." }, "-webkit-slider-runnable-track": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-slider-runnable-track", "compatibility": { - "Chrome": "83", - "ChromeAndroid": "83", - "Edge": "83", - "Opera": "69", + "Chrome": "26", + "ChromeAndroid": "26", + "Edge": "79", + "Opera": "15", "Safari": "18", "SafariIOS": "18" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-slider-runnable-track CSS pseudo-element represents the \"track\" (the groove in which the indicator slides) of an <input type=\"range\">." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-slider-runnable-track CSS pseudo-element represents the \"track\" (the groove in which the indicator slides) of an <input type=\"range\">." }, "-webkit-slider-thumb": { "url": "$MDN_URL$/web/css/_doublecolon_-webkit-slider-thumb", "compatibility": { - "Chrome": "83", - "ChromeAndroid": "83", - "Edge": "83", - "Opera": "69", + "Chrome": "32", + "ChromeAndroid": "32", + "Edge": "79", + "Opera": "19", "Safari": "18", "SafariIOS": "18" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ::-webkit-slider-thumb CSS pseudo-element represents the \"thumb\" that the user can move within the \"groove\" of an <input> of type=\"range\" to alter its numerical value." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ::-webkit-slider-thumb CSS pseudo-element represents the \"thumb\" that the user can move within the \"groove\" of an <input> of type=\"range\" to alter its numerical value." }, "after": { "url": "$MDN_URL$/web/css/_doublecolon_after", @@ -21817,10 +22593,10 @@ "StandardTrack" ], "compatibility": { - "Chrome": "134", - "ChromeAndroid": "134", - "Edge": "134", - "Opera": "118" + "Chrome": "135", + "ChromeAndroid": "135", + "Edge": "135", + "Opera": "120" }, "baseline": { "level": "NONE" @@ -21839,6 +22615,9 @@ "Edge": "135", "Opera": "120" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ::column CSS pseudo-element represents the individual columns generated when a container is set to display its content in multiple columns via CSS multi-column layout. The ::column pseudo-element enables applying styles that do not affect the layout to these generated fragments." }, "cue": { @@ -21872,9 +22651,9 @@ "Chrome": "131", "ChromeAndroid": "131", "Edge": "131", - "Opera": "116", - "Safari": "18.4", - "SafariIOS": "18.4" + "Firefox": "143", + "FirefoxAndroid": "143", + "Opera": "116" }, "baseline": { "level": "NONE" @@ -21963,7 +22742,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect." + "doc": "The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect.\n

The ::grammar-error pseudo-element follows a special inheritance model common to all highlight pseudo-elements. For more details on how this inheritance works, see the Highlight pseudo-elements inheritance section." }, "highlight": { "url": "$MDN_URL$/web/css/_doublecolon_highlight", @@ -21981,7 +22760,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ::highlight() CSS pseudo-element applies styles to a custom highlight.\n

A custom highlight is a collection of Range objects and is registered on a webpage using the HighlightRegistry." + "doc": "The ::highlight() CSS pseudo-element applies styles to a custom highlight.\n

A custom highlight is a collection of Range objects and is registered on a webpage using the HighlightRegistry.\n

The ::highlight() pseudo-element follows a special inheritance model common to all highlight pseudo-elements. For more details on how this inheritance works, see the Highlight pseudo-elements inheritance section." }, "marker": { "url": "$MDN_URL$/web/css/_doublecolon_marker", @@ -22030,10 +22809,10 @@ "StandardTrack" ], "compatibility": { - "Chrome": "134", - "ChromeAndroid": "134", - "Edge": "134", - "Opera": "119" + "Chrome": "135", + "ChromeAndroid": "135", + "Edge": "135", + "Opera": "120" }, "baseline": { "level": "NONE" @@ -22047,10 +22826,10 @@ "StandardTrack" ], "compatibility": { - "Chrome": "134", - "ChromeAndroid": "134", - "Edge": "134", - "Opera": "118" + "Chrome": "135", + "ChromeAndroid": "135", + "Edge": "135", + "Opera": "120" }, "baseline": { "level": "NONE" @@ -22091,6 +22870,9 @@ "Edge": "135", "Opera": "120" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ::scroll-button() CSS pseudo-element represents a button for controlling the scrolling of a scroll container. They are generated on scroll containers when their content value is not none. The direction of the scrolling is determined by the parameter value." }, "scroll-marker": { @@ -22101,6 +22883,7 @@ ], "compatibility": { "Chrome": "135", + "ChromeAndroid": "135", "Edge": "135", "Opera": "120" }, @@ -22142,7 +22925,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ::selection CSS pseudo-element applies styles to the part of a document that has been highlighted by the user (such as clicking and dragging the mouse across text)." + "doc": "The ::selection CSS pseudo-element applies styles to the part of a document that has been highlighted by the user (such as clicking and dragging the mouse across text).\n

The ::selection pseudo-element follows a special inheritance model common to all highlight pseudo-elements. For more details on how this inheritance works, see the Highlight pseudo-elements inheritance section." }, "slotted": { "url": "$MDN_URL$/web/css/_doublecolon_slotted", @@ -22182,7 +22965,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled." + "doc": "The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled.\n

The ::spelling-error pseudo-element follows a special inheritance model common to all highlight pseudo-elements. For more details on how this inheritance works, see the Highlight pseudo-elements inheritance section." }, "target-text": { "url": "$MDN_URL$/web/css/_doublecolon_target-text", @@ -22203,7 +22986,7 @@ "level": "LOW", "lowDate": "2024-12-11" }, - "doc": "The ::target-text CSS pseudo-element represents the text that has been scrolled to if the browser supports text fragments. It allows authors to choose how to highlight that section of text.\n

\n```css\n::target-text {\n  background-color: pink;\n}\n```\n
" + "doc": "The ::target-text CSS pseudo-element represents the text that has been scrolled to if the browser supports text fragments. It allows authors to choose how to highlight that section of text.\n

The ::target-text pseudo-element follows a special inheritance model common to all highlight pseudo-elements. For more details on how this inheritance works, see the Highlight pseudo-elements inheritance section." }, "view-transition": { "url": "$MDN_URL$/web/css/_doublecolon_view-transition", @@ -22214,6 +22997,8 @@ "Chrome": "109", "ChromeAndroid": "109", "Edge": "109", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "95", "Safari": "18", "SafariIOS": "18" @@ -22221,7 +23006,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ::view-transition CSS pseudo-element represents the root of the view transitions overlay, which contains all view transition snapshot groups and sits over the top of all other page content.\n

During a view transition, ::view-transition is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree. It is the top-level node of this tree, and has one or more ::view-transition-groups as children.\n

::view-transition is given the following default styling in the UA stylesheet:\n

\n```css\n:root::view-transition {\n  position: fixed;\n  inset: 0;\n}\n```\n
\n

All ::view-transition-group pseudo-elements are positioned relative to the view transition root." + "doc": "The ::view-transition CSS pseudo-element represents the root of the view transitions overlay, which contains all view transition snapshot groups and sits over the top of all other page content.\n

During a view transition, ::view-transition is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree. It is the top-level node of this tree, and has one or more ::view-transition-group()s as children.\n

::view-transition is given the following default styling in the UA stylesheet:\n

\n```css\n:root::view-transition {\n  position: fixed;\n  inset: 0;\n}\n```\n
\n

All ::view-transition-group() pseudo-elements are positioned relative to the view transition root." }, "view-transition-group": { "url": "$MDN_URL$/web/css/_doublecolon_view-transition-group", @@ -22232,6 +23017,8 @@ "Chrome": "109", "ChromeAndroid": "109", "Edge": "109", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "95", "Safari": "18", "SafariIOS": "18" @@ -22239,7 +23026,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ::view-transition-group CSS pseudo-element represents a single view transition snapshot group.\n

During a view transition, ::view-transition-group is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree. It is only ever a child of ::view-transition, and has a ::view-transition-image-pair as a child.\n

::view-transition-group is given the following default styling in the UA stylesheet:\n

\n```css\n:root::view-transition-group(*) {\n  position: absolute;\n  top: 0;\n  left: 0;\n  animation-duration: 0.25s;\n  animation-fill-mode: both;\n}\n```\n
\n

By default, selected elements initially mirror the size and position of the ::view-transition-old pseudo-element representing the \"old\" view state, or the ::view-transition-new pseudo-element representing the \"new\" view state if there isn't an \"old\" view state.\n

If there's both an \"old\" and \"new\" view state, styles in the view transition style sheet animate this pseudo-element's width and height from the size of the \"old\" view state's border box to that of the \"new\" view state's border box.\n

\n

Note:\nView transition styles are dynamically generated during the view transition; see the specification setup transition pseudo-elements and update pseudo-element styles sections for more details.\n

\n

In addition, the element's transform is animated from the \"old\" view state's screen space transform to the new view state's screen space transform. This style is generated dynamically since the values of animated properties are determined at the time that the transition begins." + "doc": "The ::view-transition-group() CSS pseudo-element represents a single view transition snapshot group.\n

During a view transition, ::view-transition-group() is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree. It is only ever a child of ::view-transition, and has a ::view-transition-image-pair() as a child.\n

::view-transition-group() is given the following default styling in the UA stylesheet:\n

\n```css\n:root::view-transition-group(*) {\n  position: absolute;\n  top: 0;\n  left: 0;\n  animation-duration: 0.25s;\n  animation-fill-mode: both;\n}\n```\n
\n

By default, selected elements initially mirror the size and position of the ::view-transition-old() pseudo-element representing the \"old\" view state, or the ::view-transition-new() pseudo-element representing the \"new\" view state if there isn't an \"old\" view state.\n

If there's both an \"old\" and \"new\" view state, styles in the view transition style sheet animate this pseudo-element's width and height from the size of the \"old\" view state's border box to that of the \"new\" view state's border box.\n

\n

Note:\nView transition styles are dynamically generated during the view transition; see the specification setup transition pseudo-elements and update pseudo-element styles sections for more details.\n

\n

In addition, the element's transform is animated from the \"old\" view state's screen space transform to the new view state's screen space transform. This style is generated dynamically since the values of animated properties are determined at the time that the transition begins." }, "view-transition-image-pair": { "url": "$MDN_URL$/web/css/_doublecolon_view-transition-image-pair", @@ -22250,6 +23037,8 @@ "Chrome": "109", "ChromeAndroid": "109", "Edge": "109", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "95", "Safari": "18", "SafariIOS": "18" @@ -22257,7 +23046,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ::view-transition-image-pair CSS pseudo-element represents a container for a view transition's \"old\" and \"new\" view states — before and after the transition.\n

During a view transition, ::view-transition-image-pair is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree. It is only ever a child of a ::view-transition-group. In terms of children, it can have a ::view-transition-new or a ::view-transition-old, or both.\n

::view-transition-image-pair is given the following default styling in the UA stylesheet:\n

\n```css\n:root::view-transition-image-pair(*) {\n  position: absolute;\n  inset: 0;\n  animation-duration: inherit;\n  animation-fill-mode: inherit;\n  animation-delay: inherit;\n}\n```\n
\n

During a view transition, ::view-transition-image-pair has isolation: isolate set on it in the view transition style sheet so that its children can be blended with non-normal blend modes without affecting other visual outputs." + "doc": "The ::view-transition-image-pair() CSS pseudo-element represents a container for a view transition's \"old\" and \"new\" view states — before and after the transition.\n

During a view transition, ::view-transition-image-pair() is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree. It is only ever a child of a ::view-transition-group(). In terms of children, it can have a ::view-transition-new() or a ::view-transition-old(), or both.\n

::view-transition-image-pair() is given the following default styling in the UA stylesheet:\n

\n```css\n:root::view-transition-image-pair(*) {\n  position: absolute;\n  inset: 0;\n  animation-duration: inherit;\n  animation-fill-mode: inherit;\n  animation-delay: inherit;\n}\n```\n
\n

During a view transition, ::view-transition-image-pair() has isolation: isolate set on it in the view transition style sheet so that its children can be blended with non-normal blend modes without affecting other visual outputs." }, "view-transition-new": { "url": "$MDN_URL$/web/css/_doublecolon_view-transition-new", @@ -22268,6 +23057,8 @@ "Chrome": "109", "ChromeAndroid": "109", "Edge": "109", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "95", "Safari": "18", "SafariIOS": "18" @@ -22275,7 +23066,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ::view-transition-new CSS pseudo-element represents the \"new\" view state of a view transition — a snapshot live representation of the state after the transition.\n

During a view transition, ::view-transition-new is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree. It is only ever a child of a ::view-transition-image-pair, and never has any children.\n

It is a replaced element and therefore can be manipulated with properties such as object-fit and object-position. It has natural dimensions equal to the content's size.\n

The following default styling is included in the UA stylesheet:\n

\n```css\n:root::view-transition-old(*),\n:root::view-transition-new(*) {\n  position: absolute;\n  inset-block-start: 0;\n  inline-size: 100%;\n  block-size: auto;\n  animation-duration: inherit;\n  animation-fill-mode: inherit;\n  animation-delay: inherit;\n}\n/* Keyframes for blending when there are 2 images */\n@keyframes -ua-mix-blend-mode-plus-lighter {\n  from {\n    mix-blend-mode: plus-lighter;\n  }\n  to {\n    mix-blend-mode: plus-lighter;\n  }\n}\n@keyframes -ua-view-transition-fade-in {\n  from {\n    opacity: 0;\n  }\n}\n```\n
\n
\n

Note:\nAdditional view transition styles are also setup to animate ::view-transition-new. These are dynamically generated during the view transition; see the specification setup transition pseudo-elements and update pseudo-element styles sections for more details.\n

" + "doc": "The ::view-transition-new() CSS pseudo-element represents the \"new\" view state of a view transition — a snapshot live representation of the state after the transition.\n

During a view transition, ::view-transition-new() is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree. It is only ever a child of a ::view-transition-image-pair(), and never has any children.\n

It is a replaced element and therefore can be manipulated with properties such as object-fit and object-position. It has natural dimensions equal to the content's size.\n

The following default styling is included in the UA stylesheet:\n

\n```css\n:root::view-transition-old(*),\n:root::view-transition-new(*) {\n  position: absolute;\n  inset-block-start: 0;\n  inline-size: 100%;\n  block-size: auto;\n  animation-duration: inherit;\n  animation-fill-mode: inherit;\n  animation-delay: inherit;\n}\n/* Keyframes for blending when there are 2 images */\n@keyframes -ua-mix-blend-mode-plus-lighter {\n  from {\n    mix-blend-mode: plus-lighter;\n  }\n  to {\n    mix-blend-mode: plus-lighter;\n  }\n}\n@keyframes -ua-view-transition-fade-in {\n  from {\n    opacity: 0;\n  }\n}\n```\n
\n
\n

Note:\nAdditional view transition styles are also setup to animate ::view-transition-new(). These are dynamically generated during the view transition; see the specification setup transition pseudo-elements and update pseudo-element styles sections for more details.\n

" }, "view-transition-old": { "url": "$MDN_URL$/web/css/_doublecolon_view-transition-old", @@ -22286,6 +23077,8 @@ "Chrome": "109", "ChromeAndroid": "109", "Edge": "109", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "95", "Safari": "18", "SafariIOS": "18" @@ -22293,7 +23086,7 @@ "baseline": { "level": "NONE" }, - "doc": "The ::view-transition-old CSS pseudo-element represents the \"old\" view state of a view transition — a static snapshot of the old view, before the transition.\n

During a view transition, ::view-transition-old is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree, provided there's an \"old\" view state to represent. It is only ever a child of a ::view-transition-image-pair, and never has any children.\n

It is a replaced element and therefore can be manipulated with properties such as object-fit and object-position. It has natural dimensions equal to the content's size.\n

The following default styling is included in the UA stylesheet:\n

\n```css\n:root::view-transition-old(*),\n:root::view-transition-new(*) {\n  position: absolute;\n  inset-block-start: 0;\n  inline-size: 100%;\n  block-size: auto;\n  animation-duration: inherit;\n  animation-fill-mode: inherit;\n  animation-delay: inherit;\n}\n/* Keyframes for blending when there are 2 images */\n@keyframes -ua-mix-blend-mode-plus-lighter {\n  from {\n    mix-blend-mode: plus-lighter;\n  }\n  to {\n    mix-blend-mode: plus-lighter;\n  }\n}\n@keyframes -ua-view-transition-fade-out {\n  to {\n    opacity: 0;\n  }\n}\n```\n
\n
\n

Note:\nAdditional view transition styles are also setup to animate ::view-transition-old. These are dynamically generated during the view transition; see the specification setup transition pseudo-elements and update pseudo-element styles sections for more details.\n

" + "doc": "The ::view-transition-old() CSS pseudo-element represents the \"old\" view state of a view transition — a static snapshot of the old view, before the transition.\n

During a view transition, ::view-transition-old() is included in the associated pseudo-element tree as explained in The view transition pseudo-element tree, provided there's an \"old\" view state to represent. It is only ever a child of a ::view-transition-image-pair(), and never has any children.\n

It is a replaced element and therefore can be manipulated with properties such as object-fit and object-position. It has natural dimensions equal to the content's size.\n

The following default styling is included in the UA stylesheet:\n

\n```css\n:root::view-transition-old(*),\n:root::view-transition-new(*) {\n  position: absolute;\n  inset-block-start: 0;\n  inline-size: 100%;\n  block-size: auto;\n  animation-duration: inherit;\n  animation-fill-mode: inherit;\n  animation-delay: inherit;\n}\n/* Keyframes for blending when there are 2 images */\n@keyframes -ua-mix-blend-mode-plus-lighter {\n  from {\n    mix-blend-mode: plus-lighter;\n  }\n  to {\n    mix-blend-mode: plus-lighter;\n  }\n}\n@keyframes -ua-view-transition-fade-out {\n  to {\n    opacity: 0;\n  }\n}\n```\n
\n
\n

Note:\nAdditional view transition styles are also setup to animate ::view-transition-old(). These are dynamically generated during the view transition; see the specification setup transition pseudo-elements and update pseudo-element styles sections for more details.\n

" } } } \ No newline at end of file diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/DomEvents.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/DomEvents.json index 434e463f18ed..118aa9f92605 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/DomEvents.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/DomEvents.json @@ -47,7 +47,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The DOMContentLoaded event fires when the HTML document has been completely parsed, and all deferred scripts (<script defer src=\"…\"> and <script type=\"module\">) have downloaded and executed. It doesn't wait for other things like images, subframes, and async scripts to finish loading.\nDOMContentLoaded does not wait for stylesheets to load, however deferred scripts do wait for stylesheets, and the DOMContentLoaded event is queued after deferred scripts. Also, scripts which aren't deferred or async (e.g., <script>) will wait for already-parsed stylesheets to load.\nA different event, load, should be used only to detect a fully-loaded page. It is a common mistake to use load where DOMContentLoaded would be more appropriate.\nThis event is not cancelable." + "doc": "The DOMContentLoaded event fires when the HTML document has been completely parsed, and all deferred scripts (<script defer src=\"…\"> and <script type=\"module\">) have downloaded and executed. It doesn't wait for other things like images, subframes, and async scripts to finish loading.\nDOMContentLoaded does not wait for stylesheets to load, however deferred scripts do wait for stylesheets, and the DOMContentLoaded event is queued after deferred scripts. Also, scripts which aren't deferred or async (e.g., <script>) will wait for already-parsed stylesheets to load.\nA different event, load, should be used only to detect a fully-loaded page. It is a common mistake to use load where DOMContentLoaded would be more appropriate.\nUsually, to avoid running a script before the DOM it manipulates has been fully constructed, you can simply place the script at the end of the document body, immediately before the closing </body> tag, without wrapping it in an event listener.\nThis event is not cancelable." }, "dommousescroll": { "url": "$MDN_URL$/web/api/element/dommousescroll_event", @@ -207,10 +207,7 @@ "status": [ "Deprecated" ], - "compatibility": { - "Firefox": "2", - "FirefoxAndroid": "4" - }, + "compatibility": {}, "doc": "The afterscriptexecute event is fired after a script has been executed.\nIt is a proprietary event specific to Gecko (Firefox).\nThis event is not cancelable." }, "animationcancel": { @@ -316,9 +313,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -352,9 +349,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -434,10 +431,7 @@ "status": [ "Deprecated" ], - "compatibility": { - "Firefox": "2", - "FirefoxAndroid": "4" - }, + "compatibility": {}, "doc": "The beforescriptexecute event is fired when a script is about to be executed. Cancelling the event prevents the script from executing.\nIt is a proprietary event specific to Gecko (Firefox)." }, "beforeunload": { @@ -560,7 +554,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "A bufferedamountlow event is sent to an RTCDataChannel when the number of bytes currently in the outbound data transfer buffer falls below the threshold specified in bufferedAmountLowThreshold. bufferedamountlow events aren't sent if bufferedAmountLowThreshold is 0.\nThis event is not cancelable and does not bubble." + "doc": "A bufferedamountlow event is sent to an RTCDataChannel when the number of bytes currently in the outbound data transfer buffer (bufferedAmount) falls from above to below or equal the threshold specified in bufferedAmountLowThreshold.\nThis event is not cancelable and does not bubble." }, "cancel": { "url": "$MDN_URL$/web/api/htmldialogelement/cancel_event", @@ -840,7 +834,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The copy event of the Clipboard API fires when the user initiates a copy action through the browser's user interface.\nThe event's default action is to copy the selection (if any) to the clipboard.\nA handler for this event can modify the clipboard contents by calling setData(format, data) on the event's ClipboardEvent.clipboardData property, and cancelling the event's default action using event.preventDefault().\nHowever, the handler cannot read the clipboard data.\nIt's possible to construct and dispatch a synthetic copy event, but this will not affect the system clipboard.\nThis event bubbles, is cancelable and is composed." + "doc": "The copy event of the Clipboard API fires when the user initiates a copy action through the browser's user interface.\nThe event's default action is to copy the selection (if any) to the clipboard.\nA handler for this event can modify the clipboard contents by calling setData(format, data) on the event's ClipboardEvent.clipboardData property, and cancelling the event's default action using event.preventDefault().\nHowever, the handler cannot read the clipboard data.\nIt's possible to construct and dispatch a synthetic copy event, but this will not affect the system clipboard.\nThis event bubbles up the DOM tree, eventually to Document and Window, is cancelable and is composed." }, "cuechange": { "url": "$MDN_URL$/web/api/texttrack/cuechange_event", @@ -884,7 +878,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The cut event of the Clipboard API is fired when the user has initiated a \"cut\" action through the browser's user interface.\nIf the user attempts a cut action on uneditable content, the cut event still fires but the event object contains no data.\nThe event's default action is to copy the current selection (if any) to the system clipboard and remove it from the document.\nA handler for this event can modify the clipboard contents by calling setData(format, data) on the event's ClipboardEvent.clipboardData property, and cancelling the default action using event.preventDefault().\nNote though that cancelling the default action will also prevent the document from being updated. So an event handler which wants to emulate the default action for \"cut\" while modifying the clipboard must also manually remove the selection from the document.\nThe handler cannot read the clipboard data.\nIt's possible to construct and dispatch a synthetic cut event, but this will not affect the system clipboard or the document's contents.\nThis event bubbles, is cancelable and is composed." + "doc": "The cut event of the Clipboard API is fired when the user has initiated a \"cut\" action through the browser's user interface.\nIf the user attempts a cut action on uneditable content, the cut event still fires but the event object contains no data.\nThe event's default action is to copy the current selection (if any) to the system clipboard and remove it from the document.\nA handler for this event can modify the clipboard contents by calling setData(format, data) on the event's ClipboardEvent.clipboardData property, and cancelling the default action using event.preventDefault().\nNote though that cancelling the default action will also prevent the document from being updated. So an event handler which wants to emulate the default action for \"cut\" while modifying the clipboard must also manually remove the selection from the document.\nThe handler cannot read the clipboard data.\nIt's possible to construct and dispatch a synthetic cut event, but this will not affect the system clipboard or the document's contents.\nThis event bubbles up the DOM tree, eventually to Document and Window, is cancelable and is composed." }, "datachannel": { "url": "$MDN_URL$/web/api/rtcpeerconnection/datachannel_event", @@ -950,7 +944,7 @@ "doc": "The devicechange event is sent to a MediaDevices instance whenever a media device such as a camera, microphone, or speaker is connected to or removed from the system.\nThis event is not cancelable and does not bubble." }, "devicehumidity": { - "url": "$MDN_URL$/web/events", + "url": "$MDN_URL$/web/api/document_object_model/events", "status": [ "Experimental", "Deprecated" @@ -979,7 +973,7 @@ "doc": "The devicemotion event is fired at a regular interval and indicates the acceleration rate of the device with/without the contribution of the gravity force at that time. It also provides information about the rate of rotation, if available.\nThis event is not cancelable and does not bubble." }, "devicenoise": { - "url": "$MDN_URL$/web/events", + "url": "$MDN_URL$/web/api/document_object_model/events", "status": [ "Experimental", "Deprecated" @@ -1008,7 +1002,7 @@ "doc": "The deviceorientation event is fired when fresh data is available from an orientation sensor about the current orientation of the device as compared to the Earth coordinate frame. This data is gathered from a magnetometer inside the device.\nSee Orientation and motion data explained for details.\nThis event is not cancelable and does not bubble." }, "devicepressure": { - "url": "$MDN_URL$/web/events", + "url": "$MDN_URL$/web/api/document_object_model/events", "status": [ "Experimental", "Deprecated" @@ -1016,7 +1010,7 @@ "doc": "Events are fired to notify code of \"interesting changes\" that may affect code execution. These can arise from user interactions such as using a mouse or resizing a window, changes in the state of the underlying environment (e.g., low battery or media events from the operating system), and other causes.\nEach event is represented by an object that is based on the Event interface, and may have additional custom fields and/or functions to provide information about what happened. The documentation for every event has a table (near the top) that includes a link to the associated event interface, and other relevant information. A full list of the different event types is given in Event > Interfaces based on Event.\nThis topic provides an index to the main sorts of events you might be interested in (animation, clipboard, workers etc.) along with the main classes that implement those sorts of events." }, "devicetemperature": { - "url": "$MDN_URL$/web/events", + "url": "$MDN_URL$/web/api/document_object_model/events", "status": [ "Experimental", "Deprecated" @@ -1227,9 +1221,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -1756,7 +1750,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The load event is fired when the whole page has loaded, including all dependent resources such as stylesheets, scripts, iframes, and images, except those that are loaded lazily.\nThis is in contrast to DOMContentLoaded, which is fired as soon as the page DOM has been loaded, without waiting for resources to finish loading.\nThis event is not cancelable and does not bubble." + "doc": "The load event is fired when the whole page has loaded, including all dependent resources such as stylesheets, scripts (including async, deferred, and module scripts), iframes, and images, except those that are loaded lazily.\nThis is in contrast to DOMContentLoaded, which is fired as soon as the page DOM has been loaded, without waiting for resources to finish loading.\nThis event is not cancelable and does not bubble.\nTo avoid running a script before the DOM it manipulates has been fully constructed, you can place the script at the end of the document body, immediately before the closing </body> tag, without wrapping it in an event listener. You should usually only use the load event to wait for external resources, such as images or deferred scripts, to load." }, "loadeddata": { "url": "$MDN_URL$/web/api/htmlmediaelement/loadeddata_event", @@ -1803,46 +1797,40 @@ "doc": "The loadedmetadata event is fired when the metadata has been loaded." }, "loadend": { - "url": "$MDN_URL$/web/api/xmlhttprequest/loadend_event", + "url": "$MDN_URL$/web/api/xmlhttprequesteventtarget/loadend_event", "status": [ "StandardTrack" ], "compatibility": { - "Chrome": "18", - "ChromeAndroid": "18", - "Edge": "12", - "Firefox": "5", - "FirefoxAndroid": "5", - "Opera": "12.1", - "Safari": "4", - "SafariIOS": "3" + "support_of_loadend_event": { + "Chrome": "18", + "ChromeAndroid": "", + "Edge": "", + "Firefox": "5", + "FirefoxAndroid": "5", + "Opera": "12.1", + "Safari": "4", + "SafariIOS": "3" + } }, - "baseline": { - "level": "HIGH", - "lowDate": "2015-07-29", - "highDate": "2018-01-29" - }, - "doc": "The loadend event is fired when a request has completed, whether successfully (after load) or unsuccessfully (after abort or error)." + "doc": "The loadend event is fired when a request has completed, whether successfully (after load) or unsuccessfully (after abort or error)." }, "loadstart": { - "url": "$MDN_URL$/web/api/xmlhttprequest/loadstart_event", + "url": "$MDN_URL$/web/api/xmlhttprequesteventtarget/loadstart_event", "status": [ "StandardTrack" ], "compatibility": { - "Chrome": "1", - "ChromeAndroid": "18", - "Edge": "12", - "Firefox": "3.5", - "FirefoxAndroid": "4", - "Opera": "12.1", - "Safari": "1.3", - "SafariIOS": "1" - }, - "baseline": { - "level": "HIGH", - "lowDate": "2015-07-29", - "highDate": "2018-01-29" + "support_of_loadstart_event": { + "Chrome": "2", + "ChromeAndroid": "", + "Edge": "", + "Firefox": "3.5", + "FirefoxAndroid": "4", + "Opera": "12.1", + "Safari": "4", + "SafariIOS": "3" + } }, "doc": "The loadstart event is fired when a request has started to load data." }, @@ -1941,8 +1929,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The messageerror event is fired on a Window object when it receives a message that can't be deserialized.\nThis event is not cancellable and does not bubble." }, @@ -2165,9 +2154,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -2339,7 +2328,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The paste event of the Clipboard API is fired when the user has initiated a \"paste\" action through the browser's user interface.\nIf the cursor is in an editable context (for example, in a <textarea> or an element with contenteditable attribute set to true) then the default action is to insert the contents of the clipboard into the document at the cursor position.\nA handler for this event can access the clipboard contents by calling getData() on the event's clipboardData property.\nTo override the default behavior (for example to insert some different data or a transformation of the clipboard contents) an event handler must cancel the default action using event.preventDefault(), and then insert its desired data manually.\nIt's possible to construct and dispatch a synthetic paste event, but this will not affect the document's contents.\nThis event bubbles, is cancelable and is composed." + "doc": "The paste event of the Clipboard API is fired when the user has initiated a \"paste\" action through the browser's user interface.\nIf the cursor is in an editable context (for example, in a <textarea> or an element with contenteditable attribute set to true) then the default action is to insert the contents of the clipboard into the document at the cursor position.\nA handler for this event can access the clipboard contents by calling getData() on the event's clipboardData property.\nTo override the default behavior (for example to insert some different data or a transformation of the clipboard contents) an event handler must cancel the default action using event.preventDefault(), and then insert its desired data manually.\nIt's possible to construct and dispatch a synthetic paste event, but this will not affect the document's contents.\nThis event bubbles up the DOM tree, eventually to Document and Window, is cancelable and is composed." }, "pause": { "url": "$MDN_URL$/web/api/htmlmediaelement/pause_event", @@ -2411,6 +2400,9 @@ "Edge": "80", "Opera": "67" }, + "baseline": { + "level": "NONE" + }, "doc": "The periodicsync event of the ServiceWorkerGlobalScope interface is fired at timed intervals, specified when registering a PeriodicSyncManager.\nThis event is not cancelable and does not bubble." }, "play": { @@ -2552,7 +2544,6 @@ ], "compatibility": { "Chrome": "36", - "ChromeAndroid": "36", "Edge": "13", "Firefox": "50", "FirefoxAndroid": "50", @@ -2571,7 +2562,6 @@ ], "compatibility": { "Chrome": "36", - "ChromeAndroid": "36", "Edge": "13", "Firefox": "50", "FirefoxAndroid": "50", @@ -2694,24 +2684,21 @@ "doc": "The popstate event of the Window interface is fired when the active history entry changes while the user navigates the session history. It changes the current history entry to that of the last page the user visited or, if history.pushState() has been used to add a history entry to the history stack, that history entry is used instead." }, "progress": { - "url": "$MDN_URL$/web/api/xmlhttprequest/progress_event", + "url": "$MDN_URL$/web/api/xmlhttprequesteventtarget/progress_event", "status": [ "StandardTrack" ], "compatibility": { - "Chrome": "1", - "ChromeAndroid": "18", - "Edge": "12", - "Firefox": "1", - "FirefoxAndroid": "4", - "Opera": "12.1", - "Safari": "3", - "SafariIOS": "1" - }, - "baseline": { - "level": "HIGH", - "lowDate": "2015-07-29", - "highDate": "2018-01-29" + "support_of_progress_event": { + "Chrome": "2", + "ChromeAndroid": "", + "Edge": "", + "Firefox": "3.5", + "FirefoxAndroid": "4", + "Opera": "12.1", + "Safari": "4", + "SafariIOS": "3" + } }, "doc": "The progress event is fired periodically when a request receives more data." }, @@ -2731,8 +2718,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The push event is sent to a service worker's global scope (represented by the ServiceWorkerGlobalScope interface) when the service worker has received a push message.\nThis event is not cancelable and does not bubble." }, @@ -2742,6 +2730,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Opera": "122", "Safari": "16" }, "baseline": { @@ -2929,9 +2920,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -3095,7 +3086,8 @@ "SafariIOS": "18" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2024-09-16" }, "doc": "The selectionchange event of the Selection API is fired when the text selection within an <input> element is changed.\nThis includes both changes in the selected range of characters, or if the caret moves.\nThis event is not cancelable.\nThe event is usually processed by adding an event listener on the <input>, and in the handler function read by the HTMLInputElement selectionStart, selectionEnd and selectionDirection properties.\nIt is also possible to add a listener on the onselectionchange event handler, and within the handler function use Document.getSelection() to get the Selection. However this is not very useful for getting changes to text selections." }, @@ -3198,9 +3190,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -3216,9 +3208,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -3234,9 +3226,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -3252,9 +3244,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -3292,9 +3284,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -3414,24 +3406,21 @@ "doc": "The suspend event is fired when the user agent is intentionally not fetching media data, in which case HTMLMediaElement.networkState is set to HTMLMediaElement.NETWORK_IDLE. This can happen if there's no more data to load, or if loading is unnecessary; for example, the browser may decide to only buffer 5 minutes of a video in advance, in which case loading is suspended until the user watches more of the video.\nThis event is not cancelable and does not bubble." }, "timeout": { - "url": "$MDN_URL$/web/api/xmlhttprequest/timeout_event", + "url": "$MDN_URL$/web/api/xmlhttprequesteventtarget/timeout_event", "status": [ "StandardTrack" ], "compatibility": { - "Chrome": "29", - "ChromeAndroid": "29", - "Edge": "12", - "Firefox": "12", - "FirefoxAndroid": "14", - "Opera": "16", - "Safari": "7", - "SafariIOS": "7" - }, - "baseline": { - "level": "HIGH", - "lowDate": "2015-07-29", - "highDate": "2018-01-29" + "support_of_timeout_event": { + "Chrome": "29", + "ChromeAndroid": "29", + "Edge": "", + "Firefox": "12", + "FirefoxAndroid": "14", + "Opera": "16", + "Safari": "7", + "SafariIOS": "7" + } }, "doc": "The timeout event is fired when progression is terminated due to preset time expiring." }, @@ -4041,7 +4030,7 @@ "baseline": { "level": "NONE" }, - "doc": "The wheel event fires when the user rotates a wheel button on a pointing device (typically a mouse). It is also fired for related devices that simulate wheel actions, such as trackpads and mouse balls.\nThis event replaces the non-standard deprecated mousewheel event.\nDon't confuse the wheel event with the scroll event:\nTherefore, do not rely on the wheel event's delta* properties to get the scrolling direction. Instead, detect value changes of scrollLeft and scrollTop of the target in the scroll event.\nThe wheel event is cancelable. If the event is canceled, no scrolling or zooming is performed. This may cause performance issues as the browser has to wait for every wheel event to be processed before actually scrolling the content. You can avoid this by setting passive: true when calling addEventListener(), which may cause the browser to generate non-cancelable wheel events." + "doc": "The wheel event fires when the user rotates a wheel button on a pointing device (typically a mouse). It is also fired for related devices that simulate wheel actions, such as trackpads and mouse balls.\nThis event replaces the non-standard deprecated mousewheel event.\nDon't confuse the wheel event with the scroll event:\nTherefore, do not rely on the wheel event's delta* properties to get the scrolling direction. Instead, detect value changes of scrollLeft and scrollTop of the target in the scroll event.\nThe wheel event is cancelable. In some browsers, only the first wheel event in a sequence is cancelable, and later events are non-cancelable. If the event is canceled, no scrolling or zooming is performed. This may cause performance issues as the browser has to wait for every wheel event to be processed before actually scrolling the content. You can avoid this by setting passive: true when calling addEventListener(), which may cause the browser to generate non-cancelable wheel events." } } } \ No newline at end of file diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/GlobalObjects.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/GlobalObjects.json index d93e6b43a03c..4a3b509e4be3 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/GlobalObjects.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/GlobalObjects.json @@ -135,7 +135,7 @@ "doc": "The Array() constructor creates Array objects.", "parameters": { "element1
\n…
\nelementN": "A JavaScript array is initialized with the given elements, except in the case where\na single argument is passed to the Array constructor and that argument is\na number (see the arrayLength parameter below). Note that this special case only\napplies to JavaScript arrays created with the Array constructor, not\narray literals created with the square bracket syntax.", - "arrayLength": "If the only argument passed to the Array constructor is an integer\nbetween 0 and 232 - 1 (inclusive), this returns a new JavaScript array with\nits length property set to that number (Note: this\nimplies an array of arrayLength empty slots, not slots with actual\nundefined values — see sparse arrays)." + "arrayLength": "If the only argument passed to the Array constructor is an integer\nbetween 0 and 232 - 1 (inclusive), this returns a new JavaScript array with\nits length property set to that number.\n
\n

Note:\nThis implies an array of arrayLength empty slots, not slots with actual undefined values — see sparse arrays).\n

" }, "throws": { "RangeError": "Thrown if there's only one argument (arrayLength) that is a number, but its value is not an integer or not between 0 and 232 - 1 (inclusive)." @@ -274,7 +274,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The every() method of Array instances tests whether\nall elements in the array pass the test implemented by the provided function. It\nreturns a Boolean value.", + "doc": "The every() method of Array instances returns false if it finds one element in the array that does not satisfy the provided testing function. Otherwise, it returns true.", "parameters": { "callbackFn": "A function to execute for each element in the array. It should return a truthy value to indicate the element passes the test, and a falsy value otherwise. The function is called with the following arguments:\n
\n
element
\n
\n

The current element being processed in the array.\n

\n
index
\n
\n

The index of the current element being processed in the array.\n

\n
array
\n
\n

The array every() was called upon.\n

\n
", "thisArg": "A value to use as this when executing callbackFn. See iterative methods." @@ -566,7 +566,7 @@ }, "doc": "The Array.from() static method creates a new, shallow-copied Array instance from an iterable or array-like object.", "parameters": { - "arrayLike": "An iterable or array-like object to convert to an array.", + "items": "An iterable or array-like object to convert to an array.", "mapFn": "A function to call on every element of the array. If provided, every value to be added to the array is first passed through this function, and mapFn's return value is added to the array instead. The function is called with the following arguments:\n
\n
element
\n
\n

The current element being processed in the array.\n

\n
index
\n
\n

The index of the current element being processed in the array.\n

\n
", "thisArg": "Value to use as this when executing mapFn." }, @@ -595,8 +595,8 @@ }, "doc": "The Array.fromAsync() static method creates a new, shallow-copied Array instance from an async iterable, iterable, or array-like object.", "parameters": { - "arrayLike": "An async iterable, iterable, or array-like object to convert to an array.", - "mapFn": "A function to call on every element of the array. If provided, every value to be added to the array is first passed through this function, and mapFn's return value is added to the array instead (after being awaited). The function is called with the following arguments:\n
\n
element
\n
\n

The current element being processed in the array. Because all elements are first awaited, this value will never be a thenable.\n

\n
index
\n
\n

The index of the current element being processed in the array.\n

\n
", + "items": "An async iterable, iterable, or array-like object to convert to an array.", + "mapFn": "A function to call on every element of the array. If provided, every value to be added to the array is first passed through this function, and mapFn's return value is added to the array instead (after being awaited). The function is called with the following arguments:\n
\n
element
\n
\n

The current element being processed in the array. If items is a sync iterable or array-like object, then all elements are first awaited, and element will never be a thenable. If items is an async iterable, then each yielded value is passed as-is.\n

\n
index
\n
\n

The index of the current element being processed in the array.\n

\n
", "thisArg": "Value to use as this when executing mapFn." }, "returns": "A new Promise whose fulfillment value is a new Array instance." @@ -1065,7 +1065,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The some() method of Array instances tests whether\nat least one element in the array passes the test implemented by the provided\nfunction. It returns true if, in the array, it finds an element for which the provided function returns true; otherwise it returns false. It doesn't modify the array.", + "doc": "The some() method of Array instances returns true if it finds one element in the array that satisfies the provided testing function. Otherwise, it returns false.", "parameters": { "callbackFn": "A function to execute for each element in the array. It should return a truthy value to indicate the element passes the test, and a falsy value otherwise. The function is called with the following arguments:\n
\n
element
\n
\n

The current element being processed in the array.\n

\n
index
\n
\n

The index of the current element being processed in the array.\n

\n
array
\n
\n

The array some() was called upon.\n

\n
", "thisArg": "A value to use as this when executing callbackFn. See iterative methods." @@ -1223,7 +1223,7 @@ }, "doc": "The toLocaleString() method of Array instances returns a string representing\nthe elements of the array. The elements are converted to strings using their\ntoLocaleString methods and these strings are separated by a locale-specific\nstring (such as a comma \",\").", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object with configuration properties. What you can pass here depends on what elements are being converted. For example, for numbers, see Number.prototype.toLocaleString()." }, "returns": "A string representing the elements of the array." @@ -1707,7 +1707,7 @@ "returns": "A new ArrayBuffer object. Its contents are initialized to the contents of this ArrayBuffer, and extra bytes, if any, are filled with zeros. The new ArrayBuffer is resizable if and only if this ArrayBuffer is resizable, in which case its maxByteLength is the same as this ArrayBuffer's. The original ArrayBuffer is detached.", "throws": { "RangeError": "Thrown if this ArrayBuffer is resizable and newByteLength is greater than the maxByteLength of this ArrayBuffer.", - "TypeError": "Thrown if this ArrayBuffer is already detached." + "TypeError": "Thrown if this ArrayBuffer is already detached, or if it can only be detached by designated operations. Currently, only certain web APIs are capable of creating ArrayBuffer objects with designated detaching methods, such as GPUBuffer.getMappedRange() and WebAssembly.Memory.buffer." } }, "arraybuffer.transfertofixedlength": { @@ -1737,7 +1737,209 @@ }, "returns": "A new ArrayBuffer object. Its contents are initialized to the contents of this ArrayBuffer, and extra bytes, if any, are filled with zeros. The new ArrayBuffer is always non-resizable. The original ArrayBuffer is detached.", "throws": { - "TypeError": "Thrown if this ArrayBuffer is already detached." + "TypeError": "Thrown if this ArrayBuffer is already detached, or if it can only be detached by designated operations. Currently, only certain web APIs are capable of creating ArrayBuffer objects with designated detaching methods, such as GPUBuffer.getMappedRange() and WebAssembly.Memory.buffer." + } + }, + "asyncdisposablestack": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asyncdisposablestack", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The AsyncDisposableStack object represents a stack of async disposers to run when the stack itself is disposed. Disposer functions are executed in reverse order of registration, with strong error handling guarantees. Calling its move() method will transfer responsibility for calling the current registered disposers to a new AsyncDisposableStack and prevent registering any additional disposers.\n

See DisposableStack for general information about using disposable stacks." + }, + "asyncdisposablestack.adopt": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asyncdisposablestack/adopt", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The adopt() method of AsyncDisposableStack instances registers a value that doesn't implement the async disposable protocol to the stack by providing a custom disposer function.\n

See DisposableStack.prototype.adopt() for general information about the adopt() method.", + "parameters": { + "value": "Any value to be registered to the stack.", + "onDispose": "A function that will be called when the stack is disposed. The function receives value as its only argument, and it can return a promise which gets awaited." + }, + "returns": "The same value that was passed in.", + "throws": { + "TypeError": "Thrown if onDispose is not a function.", + "ReferenceError": "Thrown if the stack is already disposed." + } + }, + "asyncdisposablestack.asyncdisposablestack": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asyncdisposablestack/asyncdisposablestack", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The AsyncDisposableStack() constructor creates AsyncDisposableStack objects.", + "returns": "A new AsyncDisposableStack object." + }, + "asyncdisposablestack.defer": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asyncdisposablestack/defer", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The defer() method of AsyncDisposableStack instances takes a callback function to be called and awaited when the stack is disposed.\n

See DisposableStack.prototype.defer() for general information about the defer() method.", + "parameters": { + "onDispose": "A function that will be called when the stack is disposed. The function receives no arguments and can return a promise which gets awaited." + }, + "returns": "None (undefined).", + "throws": { + "TypeError": "Thrown if onDispose is not a function.", + "ReferenceError": "Thrown if the stack is already disposed." + } + }, + "asyncdisposablestack.disposeasync": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asyncdisposablestack/disposeasync", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The disposeAsync() method of AsyncDisposableStack instances disposes this stack by calling all disposers registered to it in reverse order of registration, awaiting for each one's completion before calling the next one. If the stack is already disposed, this method does nothing.\n

It performs the same action as await using disposer = new AsyncDisposableStack() at scope exit. It can be used if you need to clean up at a point other than scope exit.", + "returns": "A new Promise that resolves with undefined when all registered disposers have completed in sequence.", + "throws": { + "SuppressedError": "Thrown if multiple disposers in the stack threw an error. If only one error is thrown, it is rethrown as-is. Otherwise, for each additional error, a new SuppressedError is created, with the original error as the suppressed property, and the new error as the error property." + } + }, + "asyncdisposablestack.disposed": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asyncdisposablestack/disposed", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The disposed accessor property of AsyncDisposableStack instances returns a boolean indicating whether or not this AsyncDisposableStack has been disposed or moved by doing any of the following:\n

" + }, + "asyncdisposablestack.move": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asyncdisposablestack/move", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The move() method of AsyncDisposableStack instances creates a new AsyncDisposableStack instance that contains the same disposers as this stack, and then marks this stack as disposed, without calling any disposers.", + "returns": "A new AsyncDisposableStack instance.", + "throws": { + "ReferenceError": "Thrown if the stack is already disposed." + } + }, + "asyncdisposablestack.symbol.asyncdispose": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asyncdisposablestack/symbol.asyncdispose", + "baseline": { + "level": "NONE" + }, + "doc": "The [Symbol.asyncDispose]() method of AsyncDisposableStack instances implements the async disposable protocol and allows it to be disposed when used with await using. It is an alias for the disposeAsync() method.", + "returns": "None (undefined)." + }, + "asyncdisposablestack.use": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asyncdisposablestack/use", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The use() method of AsyncDisposableStack instances registers a value that implements the async disposable protocol to the stack.\n

See DisposableStack.prototype.use() for general information about the use() method.", + "parameters": { + "value": "The value to register to the stack. Must either contain a [Symbol.asyncDispose]() or [Symbol.dispose]() method, or be null or undefined." + }, + "returns": "The same value that was passed in.", + "throws": { + "TypeError": "Thrown if value is not null or undefined, and does not contain a [Symbol.asyncDispose]() or [Symbol.dispose]() method.", + "ReferenceError": "Thrown if the stack is already disposed." } }, "asyncfunction": { @@ -1972,6 +2174,14 @@ }, "doc": "An AsyncIterator object is an object that conforms to the async iterator protocol by providing a next() method that returns a promise fulfilling to an iterator result object. The AsyncIterator.prototype object is a hidden global object that all built-in async iterators inherit from. It provides an [Symbol.asyncIterator]() method that returns the async iterator object itself, making the async iterator also async iterable.\n

Note that AsyncIterator is not a global object, although it will be in the future with the async iterator helpers proposal. The AsyncIterator.prototype object shared by all built-in async iterators can be obtained with the following code:\n

\n```js\nconst AsyncIteratorPrototype = Object.getPrototypeOf(\n  Object.getPrototypeOf(Object.getPrototypeOf((async function* () {})())),\n);\n```\n
" }, + "asynciterator.symbol.asyncdispose": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/asynciterator/symbol.asyncdispose", + "baseline": { + "level": "NONE" + }, + "doc": "The [Symbol.asyncDispose]() method of AsyncIterator instances implements the async disposable protocol and allows it to be disposed when used with await using. It calls and awaits the return() method of this, if it exists.", + "returns": "None (undefined)." + }, "asynciterator.symbol.asynciterator": { "url": "$MDN_URL$/web/javascript/reference/global_objects/asynciterator/symbol.asynciterator", "status": [ @@ -2247,9 +2457,9 @@ "index": "The position in the typedArray to wake up on.", "count": "The number of sleeping agents to notify. Defaults to Infinity." }, - "returns": "
    \n
  • Returns the number of woken up agents.
  • \n
  • Returns 0, if a non-shared ArrayBuffer object is used.
  • \n
", + "returns": "Returns the number of woken up agents, or 0 if typedArray is a view on a non-shared ArrayBuffer.", "throws": { - "TypeError": "Thrown if typedArray is not an Int32Array or BigInt64Array that views a SharedArrayBuffer.", + "TypeError": "Thrown if typedArray is not an Int32Array or BigInt64Array.", "RangeError": "Thrown if index is out of bounds in the typedArray." } }, @@ -2405,14 +2615,14 @@ "lowDate": "2021-12-13", "highDate": "2024-06-13" }, - "doc": "The Atomics.wait() static\nmethod verifies that a shared memory location still contains a\ngiven value and if so sleeps, awaiting a wake-up notification or times out. It returns a string which\nis either \"ok\", \"not-equal\", or \"timed-out\".\n
\n

Note:\nThis operation only works with an Int32Array or BigInt64Array that views a SharedArrayBuffer, and may not be allowed on the main thread.\nFor a non-blocking, asynchronous version of this method, see Atomics.waitAsync().\n

", + "doc": "The Atomics.wait() static method verifies that a shared memory location contains a given value and if so sleeps, awaiting a wake-up notification or a time out. It returns a string which is \"not-equal\" if the memory location does not match the given value, \"ok\" if woken by Atomics.notify(), or \"timed-out\" if the timeout expires.\n

Atomics.wait() and Atomics.notify() are used together to enable thread synchronization based on a value in shared memory. A thread can proceed immediately if the synchronization value has changed, or it can wait for notification from another thread when it reaches the synchronization point.\n

This method only works with an Int32Array or BigInt64Array that views a SharedArrayBuffer. It is blocking and cannot be used in the main thread. For a non-blocking, asynchronous version of this method, see Atomics.waitAsync().", "parameters": { "typedArray": "An Int32Array or BigInt64Array that views a SharedArrayBuffer.", "index": "The position in the typedArray to wait on.", "value": "The expected value to test.", "timeout": "Time to wait in milliseconds. NaN (and values that get converted to NaN, such as undefined) becomes Infinity. Negative values become 0." }, - "returns": "A string which is either \"ok\", \"not-equal\", or \"timed-out\".\n

    \n
  • \"ok\" is returned if woken up by a call to Atomics.notify(), regardless of if the expected value has changed
  • \n
  • \"not-equal\" is returned immediately if the initial value does not equal what is stored at index
  • \n
  • \"timed-out\" is returned if a sleeping wait exceeds the specified timeout without being woken up by Atomics.notify()
  • \n
", + "returns": "A string which is either \"not-equal\", \"ok\", or \"timed-out\".\n
    \n
  • \"not-equal\" is returned immediately if the initial value does not equal what is stored at index.
  • \n
  • \"ok\" is returned if woken up by a call to Atomics.notify(), regardless of whether the expected value has changed.
  • \n
  • \"timed-out\" is returned if a sleeping wait exceeds the specified timeout without being woken up by Atomics.notify().
  • \n
", "throws": { "TypeError": "Thrown in one of the following cases:\n", "RangeError": "Thrown if index is out of bounds in the typedArray." @@ -2436,7 +2646,7 @@ "baseline": { "level": "NONE" }, - "doc": "The Atomics.waitAsync() static method waits asynchronously on a shared memory location and returns an object representing the result of the operation.\n

Unlike Atomics.wait(), waitAsync is non-blocking and usable on the main thread.\n

\n

Note:\nThis operation only works with an Int32Array or BigInt64Array that views a SharedArrayBuffer.\n

", + "doc": "The Atomics.waitAsync() static method verifies that a shared memory location contains a given value, immediately returning an object with the value property containing the string \"not-equal\" if the memory location does not match the given value, or \"timed-out\" if the timeout was set to zero. Otherwise the method returns an object where the value property is a Promise that fulfills with either \"ok\" when Atomics.notify() is called, or \"timed-out\" if the timeout expires.\n

Atomics.waitAsync() and Atomics.notify() are used together to enable thread synchronization based on a value in shared memory. A thread can proceed immediately if the synchronization value has changed, or it can wait for notification from another thread when it reaches the synchronization point.\n

This method only works with an Int32Array or BigInt64Array that views a SharedArrayBuffer. It is non-blocking and, unlike Atomics.wait(), can be used on the main thread. Because it does not block the whole thread, you still need to be careful not to access the shared memory before the promise settles.", "parameters": { "typedArray": "An Int32Array or BigInt64Array that views a SharedArrayBuffer.", "index": "The position in the typedArray to wait on.", @@ -2534,7 +2744,7 @@ "bits": "The amount of bits available for the returned BigInt. Should be an integer between 0 and 253 - 1, inclusive.", "bigint": "The BigInt value to truncate to fit into the supplied bits." }, - "returns": "The value of bigint modulo 2^bits, as a signed integer.", + "returns": "The value of bigint modulo 2 ** bits, as a signed integer.", "throws": { "RangeError": "Thrown if bits is negative or greater than 253 - 1." } @@ -2566,7 +2776,7 @@ "bits": "The amount of bits available for the returned BigInt. Should be an integer between 0 and 253 - 1, inclusive.", "bigint": "The BigInt value to truncate to fit into the supplied bits." }, - "returns": "The value of bigint modulo 2^bits, as an unsigned integer.", + "returns": "The value of bigint modulo 2 ** bits, as an unsigned integer.", "throws": { "RangeError": "Thrown if bits is negative or greater than 253 - 1." } @@ -2628,7 +2838,7 @@ }, "doc": "The toLocaleString() method of BigInt values returns a string with a language-sensitive representation of this BigInt. In implementations with Intl.NumberFormat API support, this method delegates to Intl.NumberFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.NumberFormat object and use its format() method, because a NumberFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.NumberFormat() constructor.\n

In implementations without Intl.NumberFormat support, this parameter is ignored and the host's locale is usually used.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.NumberFormat() constructor.\n

In implementations without Intl.NumberFormat support, this parameter is ignored and the host's locale is usually used.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.NumberFormat() constructor.\n

In implementations without Intl.NumberFormat support, this parameter is ignored." }, "returns": "A string representing the given BigInt according to language-specific conventions.\n

In implementations with Intl.NumberFormat, this is equivalent to new Intl.NumberFormat(locales, options).format(number).\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

" @@ -4923,7 +5133,7 @@ }, "doc": "The toLocaleDateString() method of Date instances returns a string with a language-sensitive representation of the date portion of this date in the local timezone. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.\n

In implementations without Intl.DateTimeFormat support, this parameter is ignored and the host's locale is usually used.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.\n

In implementations without Intl.DateTimeFormat support, this parameter is ignored and the host's locale is usually used.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor. The timeStyle option must be undefined, or a TypeError would be thrown. If weekday, year, month, and day are all undefined, then year, month, and day will be set to \"numeric\".\n

In implementations without Intl.DateTimeFormat support, this parameter is ignored." }, "returns": "A string representing the date portion of the given date according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, options).format(date), where options has been normalized as described above.\n

\n

Note:\nMost of the time, the formatting returned by toLocaleDateString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleDateString() to hardcoded constants.\n

" @@ -4952,7 +5162,7 @@ }, "doc": "The toLocaleString() method of Date instances returns a string with a language-sensitive representation of this date in the local timezone. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.\n

In implementations without Intl.DateTimeFormat support, this parameter is ignored and the host's locale is usually used.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.\n

In implementations without Intl.DateTimeFormat support, this parameter is ignored and the host's locale is usually used.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor. If weekday, year, month, day, dayPeriod, hour, minute, second, and fractionalSecondDigits are all undefined, then year, month, day, hour, minute, second will be set to \"numeric\".\n

In implementations without Intl.DateTimeFormat support, this parameter is ignored." }, "returns": "A string representing the given date according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, options).format(date).\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

" @@ -4981,7 +5191,7 @@ }, "doc": "The toLocaleTimeString() method of Date instances returns a string with a language-sensitive representation of the time portion of this date in the local timezone. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat.\n

Every time toLocaleTimeString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.\n

In implementations without Intl.DateTimeFormat support, this parameter is ignored and the host's locale is usually used.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.\n

In implementations without Intl.DateTimeFormat support, this parameter is ignored and the host's locale is usually used.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor. If dayPeriod, hour, minute, second, and fractionalSecondDigits are all undefined, then hour, minute, second will be set to \"numeric\".\n

In implementations without Intl.DateTimeFormat support, this parameter is ignored." }, "returns": "A string representing the time portion of the given date according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, options).format(date), where options has been normalized as described above.\n

\n

Note:\nMost of the time, the formatting returned by toLocaleTimeString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleTimeString() to hardcoded constants.\n

" @@ -5202,6 +5412,208 @@ "URIError": "Thrown if encodedURI contains a % not followed by two hexadecimal digits, or if the escape sequence does not encode a valid UTF-8 character." } }, + "disposablestack": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/disposablestack", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The DisposableStack object represents a stack of disposers to run when the stack itself is disposed. Disposer functions are executed in reverse order of registration, with strong error handling guarantees. Calling its move() method will transfer responsibility for calling the current registered disposers to a new DisposableStack and prevent registering any additional disposers." + }, + "disposablestack.adopt": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/disposablestack/adopt", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The adopt() method of DisposableStack instances registers a value that doesn't implement the disposable protocol to the stack by providing a custom disposer function.", + "parameters": { + "value": "Any value to be registered to the stack.", + "onDispose": "A function that will be called when the stack is disposed. The function receives value as its only argument." + }, + "returns": "The same value that was passed in.", + "throws": { + "TypeError": "Thrown if onDispose is not a function.", + "ReferenceError": "Thrown if the stack is already disposed." + } + }, + "disposablestack.defer": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/disposablestack/defer", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The defer() method of DisposableStack instances takes a callback function to be called when the stack is disposed.", + "parameters": { + "onDispose": "A function that will be called when the stack is disposed. The function receives no arguments." + }, + "returns": "None (undefined).", + "throws": { + "TypeError": "Thrown if onDispose is not a function.", + "ReferenceError": "Thrown if the stack is already disposed." + } + }, + "disposablestack.disposablestack": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/disposablestack/disposablestack", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The DisposableStack() constructor creates DisposableStack objects.", + "returns": "A new DisposableStack object." + }, + "disposablestack.dispose": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/disposablestack/dispose", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The dispose() method of DisposableStack instances disposes this stack by calling all disposers registered to it in reverse order of registration. If the stack is already disposed, this method does nothing.\n

It performs the same action as using disposer = new DisposableStack() at scope exit. It can be used if you need to clean up at a point other than scope exit.", + "returns": "None (undefined).", + "throws": { + "SuppressedError": "Thrown if multiple disposers in the stack threw an error. If only one error is thrown, it is rethrown as-is. Otherwise, for each additional error, a new SuppressedError is created, with the original error as the suppressed property, and the new error as the error property." + } + }, + "disposablestack.disposed": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/disposablestack/disposed", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The disposed accessor property of DisposableStack instances returns a boolean indicating whether or not this DisposableStack has been disposed or moved by doing any of the following:\n

" + }, + "disposablestack.move": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/disposablestack/move", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The move() method of DisposableStack instances creates a new DisposableStack instance that contains the same disposers as this stack, and then marks this stack as disposed, without calling any disposers.", + "returns": "A new DisposableStack instance.", + "throws": { + "ReferenceError": "Thrown if the stack is already disposed." + } + }, + "disposablestack.symbol.dispose": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/disposablestack/symbol.dispose", + "baseline": { + "level": "NONE" + }, + "doc": "The [Symbol.dispose]() method of DisposableStack instances implements the disposable protocol and allows it to be disposed when used with using or await using. It is an alias for the dispose() method.", + "returns": "None (undefined)." + }, + "disposablestack.use": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/disposablestack/use", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119", + "Nodejs": "24.0.0", + "Deno": "2.2.10" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The use() method of DisposableStack instances registers a value that implements the disposable protocol to the stack.", + "parameters": { + "value": "The value to register to the stack. Must either contain a [Symbol.dispose]() method, or be null or undefined." + }, + "returns": "The same value that was passed in.", + "throws": { + "TypeError": "Thrown if value is not null or undefined, and does not contain a [Symbol.dispose]() method.", + "ReferenceError": "Thrown if the stack is already disposed." + } + }, "encodeuri": { "url": "$MDN_URL$/web/javascript/reference/global_objects/encodeuri", "status": [ @@ -5300,8 +5712,8 @@ "Firefox": "138", "FirefoxAndroid": "138", "Opera": "15", - "Safari": "17.3", - "SafariIOS": "17.3", + "Safari": "17.2", + "SafariIOS": "17.2", "Nodejs": "" }, "doc": "The Error.captureStackTrace() static method installs stack trace information on a provided object as the stack property.", @@ -5341,7 +5753,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The columnNumber data property of an Error instance contains the column number in the line of the file that raised this error." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The columnNumber data property of an Error instance contains the column number in the line of the file that raised this error." }, "error.error": { "url": "$MDN_URL$/web/javascript/reference/global_objects/error/error", @@ -5379,7 +5791,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The fileName data property of an Error instance contains the path to the file that raised this error." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The fileName data property of an Error instance contains the path to the file that raised this error." }, "error.iserror": { "url": "$MDN_URL$/web/javascript/reference/global_objects/error/iserror", @@ -5410,7 +5822,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The lineNumber data property of an Error instance contains the line number in the file that raised this error." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The lineNumber data property of an Error instance contains the line number in the file that raised this error." }, "error.message": { "url": "$MDN_URL$/web/javascript/reference/global_objects/error/message", @@ -5474,7 +5886,7 @@ "Nodejs": "", "Deno": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Note:\nThe stack property is de facto implemented by all major JavaScript engines, and the JavaScript standards committee is looking to standardize it. You cannot rely on the precise content of the stack string due to implementation inconsistencies, but you can generally assume it exists and use it for debugging purposes.\n

\n

The non-standard stack property of an Error instance offers a trace of which functions were called, in what order, from which line and file, and with what arguments. The stack string proceeds from the most recent calls to earlier ones, leading back to the original global scope call." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nThe stack property is de facto implemented by all major JavaScript engines, and the JavaScript standards committee is looking to standardize it. You cannot rely on the precise content of the stack string due to implementation inconsistencies, but you can generally assume it exists and use it for debugging purposes.\n

\n

The non-standard stack property of an Error instance offers a trace of which functions were called, in what order, from which line and file, and with what arguments. The stack string proceeds from the most recent calls to earlier ones, leading back to the original global scope call." }, "error.stacktracelimit": { "url": "$MDN_URL$/web/javascript/reference/global_objects/error/stacktracelimit", @@ -5487,7 +5899,7 @@ "SafariIOS": "11.3", "Nodejs": "16.17.0" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Note:\nThis feature is part of the currently non-standard V8 stack trace API. However, for compatibility reasons, it is also implemented by JavaScriptCore.\n

\n

The Error.stackTraceLimit static data property indicates the maximum number of stack frames captured by the stack trace of an error. It can be set by user code to change the engine's behavior.\n

Generally, reading this property is not very useful, but you can set it to a new value. Setting it to a larger value can be useful for debugging, as it allows you to see more of the call stack. Setting it to a smaller value can improve performance as it reduces the amount of stack captured." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nThis feature is part of the currently non-standard V8 stack trace API. However, for compatibility reasons, it is also implemented by JavaScriptCore.\n

\n

The Error.stackTraceLimit static data property indicates the maximum number of stack frames captured by the stack trace of an error. It can be set by user code to change the engine's behavior.\n

Generally, reading this property is not very useful, but you can set it to a new value. Setting it to a larger value can be useful for debugging, as it allows you to see more of the call stack. Setting it to a smaller value can improve performance as it reduces the amount of stack captured." }, "error.tostring": { "url": "$MDN_URL$/web/javascript/reference/global_objects/error/tostring", @@ -5532,7 +5944,7 @@ "Nodejs": "", "Deno": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Note: escape() is a non-standard function implemented by browsers and was only standardized for cross-engine compatibility. It is not required to be implemented by all JavaScript engines and may not work everywhere. Use encodeURIComponent() or encodeURI() if possible.\n

\n

The escape() function computes a new string in which certain characters have been replaced by hexadecimal escape sequences.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Note:\nescape() is a non-standard function implemented by browsers and was only standardized for cross-engine compatibility. It is not required to be implemented by all JavaScript engines and may not work everywhere. Use encodeURIComponent() or encodeURI() if possible.\n

\n

The escape() function computes a new string in which certain characters have been replaced by hexadecimal escape sequences.", "parameters": { "str": "A string to be encoded." }, @@ -5693,7 +6105,7 @@ "lowDate": "2021-04-26", "highDate": "2023-10-26" }, - "doc": "The register() method of FinalizationRegistry instances registers an value with this FinalizationRegistry so that if the value is garbage-collected, the registry's callback may get called.", + "doc": "The register() method of FinalizationRegistry instances registers a value with this FinalizationRegistry so that if the value is garbage-collected, the registry's callback may get called.", "parameters": { "target": "The target value to register.", "heldValue": "The value to pass to the finalizer for this target. This cannot be the target itself but can be anything else, including functions and primitives.", @@ -5749,6 +6161,7 @@ "Opera": "120", "Safari": "18.2", "SafariIOS": "18.2", + "Nodejs": "24.0.0", "Deno": "1.43" }, "baseline": { @@ -5771,6 +6184,7 @@ "Opera": "120", "Safari": "18.2", "SafariIOS": "18.2", + "Nodejs": "24.0.0", "Deno": "1.43" }, "baseline": { @@ -5975,7 +6389,7 @@ "Nodejs": "", "Deno": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Note:\nThe arguments property of Function objects is deprecated. The recommended way to access the arguments object is to refer to the variable arguments available within functions.\n

\n

The arguments accessor property of Function instances returns the arguments passed to this function. For strict, arrow, async, and generator functions, accessing the arguments property throws a TypeError." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nThe arguments property of Function objects is deprecated. The recommended way to access the arguments object is to refer to the variable arguments available within functions.\n

\n

The arguments accessor property of Function instances returns the arguments passed to this function. For strict, arrow, async, and generator functions, accessing the arguments property throws a TypeError." }, "function.bind": { "url": "$MDN_URL$/web/javascript/reference/global_objects/function/bind", @@ -6052,7 +6466,7 @@ "Nodejs": "", "Deno": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Note:\nIn strict mode, accessing caller of a function throws an error — the API is removed with no replacement. This is to prevent code from being able to \"walk the stack\", which both poses security risks and severely limits the possibility of optimizations like inlining and tail-call optimization. For more explanation, you can read the rationale for the deprecation of arguments.callee.\n

\n

The caller accessor property of Function instances returns the function that invoked this function. For strict, arrow, async, and generator functions, accessing the caller property throws a TypeError." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Note:\nIn strict mode, accessing caller of a function throws an error — the API is removed with no replacement. This is to prevent code from being able to \"walk the stack\", which both poses security risks and severely limits the possibility of optimizations like inlining and tail-call optimization. For more explanation, you can read the rationale for the deprecation of arguments.callee.\n

\n

The caller accessor property of Function instances returns the function that invoked this function. For strict, arrow, async, and generator functions, accessing the caller property throws a TypeError." }, "function.displayname": { "url": "$MDN_URL$/web/javascript/reference/global_objects/function/displayname", @@ -6060,7 +6474,7 @@ "Firefox": "13", "FirefoxAndroid": "14" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The optional displayName property of a Function instance specifies the display name of the function." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The optional displayName property of a Function instance specifies the display name of the function." }, "function.function": { "url": "$MDN_URL$/web/javascript/reference/global_objects/function/function", @@ -6595,7 +7009,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The InternalError object indicates an error that occurred internally in the JavaScript engine.\n

Example cases are mostly when something is too large, e.g.:\n

    \n
  • \"too many switch cases\",
  • \n
  • \"too many parentheses in regular expression\",
  • \n
  • \"array initializer too large\",
  • \n
  • \"too much recursion\".
  • \n
\n

InternalError is a subclass of Error." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The InternalError object indicates an error that occurred internally in the JavaScript engine.\n

Example cases are mostly when something is too large, e.g.:\n

    \n
  • \"too many switch cases\",
  • \n
  • \"too many parentheses in regular expression\",
  • \n
  • \"array initializer too large\",
  • \n
  • \"too much recursion\".
  • \n
\n

InternalError is a subclass of Error." }, "internalerror.internalerror": { "url": "$MDN_URL$/web/javascript/reference/global_objects/internalerror/internalerror", @@ -6603,7 +7017,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The InternalError() constructor creates InternalError objects.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The InternalError() constructor creates InternalError objects.", "parameters": { "message": "Human-readable description of the error.", "options": "An object that has the following properties:\n

\n
cause Optional
\n
\n

A property indicating the specific cause of the error.\nWhen catching and re-throwing an error with a more-specific or useful error message, this property can be used to pass the original error.\n

\n
", @@ -6683,7 +7097,7 @@ }, "doc": "The Intl.Collator() constructor creates Intl.Collator objects.", "parameters": { - "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension keys are allowed:\n

\n
co
\n
\n

See collation.\n

\n
kn
\n
\n

See numeric.\n

\n
kf
\n
\n

See caseFirst.\n

\n
\n

These keys can also be set with options (as listed below). When both are set, the options property takes precedence.", + "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension keys are allowed:\n

\n
co
\n
\n

See collation.\n

\n
kn
\n
\n

See numeric.\n

\n
kf
\n
\n

See caseFirst.\n

\n
\n

These keys can also be set with options (as listed below). When both are set, the options property takes precedence.", "options": "An object containing the following properties, in the order they are retrieved (all of them are optional):\n

\n
usage
\n
\n

Whether the comparison is for sorting a list of strings or fuzzy (for the Latin script diacritic-insensitive and case-insensitive) filtering a list of strings by key. Possible values are:\n

\n
\"sort\" (default)
\n
\n

For sorting a list of strings.\n

\n
\"search\"
\n
\n

For filtering a list of strings by testing each list item for a full-string match against a key. With \"search\", the caller should only pay attention to whether compare() returns zero or non-zero and should not distinguish the non-zero return values from each other. That is, it is inappropriate to use \"search\" for sorting/ordering.\n

\n
\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.\n

\n
collation
\n
\n

Variant collations for certain locales, such as \"emoji\", \"pinyin\", \"stroke\", and so on. Only has an effect when usage is \"sort\" (because \"search\" is underlyingly its own collation type). For a list of supported collation types, see Intl.supportedValuesOf(); the default is \"default\". This option can also be set through the co Unicode extension key; if both are provided, this options property takes precedence.\n

\n
numeric
\n
\n

Whether numeric collation should be used, such that \"1\" < \"2\" < \"10\". Possible values are true and false; the default is false. This option can also be set through the kn Unicode extension key; if both are provided, this options property takes precedence.\n

\n
caseFirst
\n
\n

Whether upper case or lower case should sort first. Possible values are \"upper\", \"lower\", and \"false\" (use the locale's default); the default is \"false\". This option can also be set through the kf Unicode extension key; if both are provided, this options property takes precedence.\n

\n
sensitivity
\n
\n

Which differences in the strings should lead to non-zero result values. Possible values are:\n

\n
\"base\"
\n
\n

Only strings that differ in base letters compare as unequal. Examples: a ≠ b, a = á, a = A. In the Unicode collation algorithm, this is equivalent to the primary strength level.\n

\n
\"accent\"
\n
\n

Only strings that differ in base letters or accents and other diacritic marks compare as unequal. Examples: a ≠ b, a ≠ á, a = A. In the Unicode collation algorithm, this is equivalent to the secondary strength level.\n

\n
\"case\"
\n
\n

Only strings that differ in base letters or case compare as unequal. Examples: a ≠ b, a = á, a ≠ A. In the Unicode collation algorithm, this is equivalent to the primary strength level with case level handling.\n

\n
\"variant\"
\n
\n

Strings that differ in base letters, accents and other diacritic marks, or case compare as unequal. Other differences may also be taken into consideration. Examples: a ≠ b, a ≠ á, a ≠ A. In the Unicode collation algorithm, this is equivalent to the tertiary strength level.\n

\n
\n

The default is \"variant\" for usage \"sort\"; it's locale dependent for usage \"search\" per spec, but is usually also \"variant\". Because the core functionality of \"search\" is accent-insensitive and case-insensitive filtering, setting it to \"base\" makes the most sense (and perhaps \"case\").\n

\n
ignorePunctuation
\n
\n

Whether punctuation should be ignored. Possible values are true and false. The default is true for Thai (th) and false for all other languages.\n

\n
" }, "throws": { @@ -6741,7 +7155,7 @@ "highDate": "2020-03-28" }, "doc": "The resolvedOptions() method of Intl.Collator instances returns a new object with properties reflecting the options computed during initialization of this Collator object.", - "returns": "A new object with properties reflecting the options computed during the initialization of this Collator object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the co, kn, and kf Unicode extension keys, if requested and supported, may be included in the output.\n

\n
usage
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"sort\" or \"search\". The default is \"sort\".\n

\n
sensitivity
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"base\", \"accent\", \"case\", or \"variant\". The default is \"variant\" for usage \"sort\"; it's locale dependent for usage \"search\".\n

\n
ignorePunctuation
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is a boolean. The default is true for Thai (th) and false for all other languages.\n

\n
collation
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"co\", with default filled in as needed. It is a supported collation type for this locale. The default is \"default\".\n

\n
numeric
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"kn\", with default filled in as needed. It is a boolean. The default is false. If the implementation does not support this Unicode extension key, this property is omitted.\n

\n
caseFirst
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"kf\", with default filled in as needed. It is either \"upper\", \"lower\", or \"false\". The default is \"false\". If the implementation does not support this Unicode extension key, this property is omitted.\n

\n
" + "returns": "A new object with properties reflecting the options computed during the initialization of this Collator object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the co, kn, and kf Unicode extension keys, if requested and supported, may be included in the output.\n

\n
usage
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"sort\" or \"search\". The default is \"sort\".\n

\n
sensitivity
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"base\", \"accent\", \"case\", or \"variant\". The default is \"variant\" for usage \"sort\"; it's locale dependent for usage \"search\".\n

\n
ignorePunctuation
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is a boolean. The default is true for Thai (th) and false for all other languages.\n

\n
collation
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"co\", with default filled in as needed. It is a supported collation type for this locale. The default is \"default\".\n

\n
numeric
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"kn\", with default filled in as needed. It is a boolean. The default is false. If the implementation does not support this Unicode extension key, this property is omitted.\n

\n
caseFirst
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"kf\", with default filled in as needed. It is either \"upper\", \"lower\", or \"false\". The default is \"false\". If the implementation does not support this Unicode extension key, this property is omitted.\n

\n
" }, "intl.collator.supportedlocalesof": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/collator/supportedlocalesof", @@ -6767,7 +7181,7 @@ }, "doc": "The Intl.Collator.supportedLocalesOf() static method returns an array containing those of the provided locales that are supported in collation without having to fall back to the runtime's default locale.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object that may have the following property:\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see the Intl page.\n

\n
" }, "returns": "An array of strings representing a subset of the given locale tags that are supported in collation without having to fall back to the runtime's default locale." @@ -6820,14 +7234,14 @@ }, "doc": "The Intl.DateTimeFormat() constructor creates Intl.DateTimeFormat objects.", "parameters": { - "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension keys are allowed:\n

\n
nu
\n
\n

See numberingSystem.\n

\n
ca
\n
\n

See calendar.\n

\n
hc
\n
\n

See hourCycle.\n

\n
\n

These keys can also be set with options (as listed below). When both are set, the options property takes precedence.", + "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension keys are allowed:\n

\n
nu
\n
\n

See numberingSystem.\n

\n
ca
\n
\n

See calendar.\n

\n
hc
\n
\n

See hourCycle.\n

\n
\n

These keys can also be set with options (as listed below). When both are set, the options property takes precedence.", "options": "An object. For ease of reading, the property list is broken into sections based on their purposes, including locale options, date-time component options, and style shortcuts.", "localeMatcher": "The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.", - "calendar": "The calendar to use, such as \"chinese\", \"gregory\", \"persian\", and so on. For a list of supported calendar types, see Intl.supportedValuesOf(). This option can also be set through the ca Unicode extension key; if both are provided, this options property takes precedence.", - "numberingSystem": "The numbering system to use for number formatting, such as \"arab\", \"hans\", \"mathsans\", and so on. For a list of supported numbering system types, see Intl.supportedValuesOf(). This option can also be set through the nu Unicode extension key; if both are provided, this options property takes precedence.", + "calendar": "The calendar to use, such as \"chinese\", \"gregory\", \"persian\", and so on. For a list of supported calendar types, see Intl.supportedValuesOf(); the default is locale dependent. This option can also be set through the ca Unicode extension key; if both are provided, this options property takes precedence.", + "numberingSystem": "The numbering system to use for number formatting, such as \"arab\", \"hans\", \"mathsans\", and so on. For a list of supported numbering system types, see Intl.supportedValuesOf(); the default is locale dependent. This option can also be set through the nu Unicode extension key; if both are provided, this options property takes precedence.", "hour12": "Whether to use 12-hour time (as opposed to 24-hour time). Possible values are true and false; the default is locale dependent. When true, this option sets hourCycle to either \"h11\" or \"h12\", depending on the locale. When false, it sets hourCycle to \"h23\". hour12 overrides both the hc locale extension tag and the hourCycle option, should either or both of those be present.", - "hourCycle": "The hour cycle to use. Possible values are \"h11\", \"h12\", \"h23\", and \"h24\". This option can also be set through the hc Unicode extension key; if both are provided, this options property takes precedence.", - "timeZone": "The time zone to use. Time zone names correspond to the Zone and Link names of the IANA Time Zone Database, such as \"UTC\", \"Asia/Shanghai\", \"Asia/Kolkata\", and \"America/New_York\". Additionally, time zones can be given as UTC offsets in the format \"±hh:mm\", \"±hhmm\", or \"±hh\", for example as \"+01:00\", \"-2359\", or \"+23\". The default is the runtime's default time zone.", + "hourCycle": "The hour cycle to use. Possible values are \"h11\", \"h12\", \"h23\", and \"h24\"; the default is inferred from hour12 and locale. This option can also be set through the hc Unicode extension key; if both are provided, this options property takes precedence.", + "timeZone": "The time zone to use. Can be any IANA time zone name, including named identifiers such as \"UTC\", \"America/New_York\", and \"Etc/GMT+8\", and offset identifiers such as \"+01:00\", \"-2359\", and \"+23\". The default is the runtime's time zone, the same time zone used by Date.prototype.toString().", "weekday": "The representation of the weekday. Possible values are:\n

\n
\"long\"
\n
\n

E.g., Thursday\n

\n
\"short\"
\n
\n

E.g., Thu\n

\n
\"narrow\"
\n
\n

E.g., T. Two weekdays may have the same narrow style for some locales (e.g., Tuesday's narrow style is also T).\n

\n
", "era": "The representation of the era. Possible values are:\n
\n
\"long\"
\n
\n

E.g., Anno Domini\n

\n
\"short\"
\n
\n

E.g., AD\n

\n
\"narrow\"
\n
\n

E.g., A\n

\n
", "year": "The representation of the year. Possible values are \"numeric\" and \"2-digit\".", @@ -6903,7 +7317,7 @@ "startDate": "The start of the date range. Can be a Date or Temporal.PlainDateTime object. Additionally can be a Temporal.PlainTime, Temporal.PlainDate, Temporal.PlainYearMonth, or Temporal.PlainMonthDay object if the DateTimeFormat object was configured to print at least one relevant part of the date.\n
\n

Note:\nA Temporal.ZonedDateTime object will always throw a TypeError; use Temporal.ZonedDateTime.prototype.toLocaleString() or convert it to a Temporal.PlainDateTime object instead.\n

", "endDate": "The end of the date range. Must have the same type as startDate." }, - "returns": "A string representing the given date range formatted according to the locale and formatting options of this Intl.DateTimeFormat object." + "returns": "A string representing the given date range formatted according to the locale and formatting options of this Intl.DateTimeFormat object. If the start and end dates are equivalent at the precision of the output, the output will only contain a single date." }, "intl.datetimeformat.formatrangetoparts": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/datetimeformat/formatrangetoparts", @@ -6985,7 +7399,7 @@ "highDate": "2020-03-28" }, "doc": "The resolvedOptions() method of Intl.DateTimeFormat instances returns a new object with properties reflecting the options computed during initialization of this DateTimeFormat object.", - "returns": "A new object with properties reflecting the options computed during the initialization of this DateTimeFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the ca, hc, and nu Unicode extension keys, if requested, may be included in the output.\n

\n
calendar
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"ca\", with default filled in as needed. It is a supported calendar type for this locale. The default is locale dependent.\n

\n
numberingSystem
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"nu\", with default filled in as needed. It is a supported numbering system for this locale. The default is locale dependent.\n

\n
timeZone
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is an IANA time zone name. The default is the runtime's default time zone.\n

\n

Note:\nThe standardization of Temporal requires browsers to use the same identifier as originally specified, without canonicalization to a different alias. See time zones and offsets for more information.\n

\n
\n
hourCycle Optional
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"hc\", with default filled in as needed. If hour12 was provided in the options, then that overrides other hourCycle settings. It is only present if the resolved options also include hour or timeStyle. It is either \"h11\", \"h12\", \"h23\", or \"h24\". The default is locale dependent, although \"h24\" is never a default.\n

\n
hour12 Optional
\n
\n

Calculated from hourCycle. It is only present if the resolved options also include hour or timeStyle. It is true if hourCycle is \"h11\" or \"h12\", and false if hourCycle is \"h23\" or \"h24\".\n

\n
weekday, era, year, month, day, dayPeriod, hour, minute, second, fractionalSecondDigits, timeZoneName Optional
\n
\n

The values resulting from format matching between the corresponding properties in the options argument and the available combinations and representations for date-time formatting in the selected locale. Some of these properties may not be present, indicating that the corresponding components will not be represented in formatted output. weekday, era, and dayPeriod are either \"narrow\", \"short\", or \"long\"; year, day, hour, minute, and second are either \"numeric\", \"2-digit\", or \"narrow\"; month is either \"numeric\", \"2-digit\", \"narrow\", \"short\", or \"long\"; fractionalSecondDigits is either 1, 2, or 3; timeZoneName is either \"short\", \"long\", \"shortOffset\", \"longOffset\", \"shortGeneric\", or \"longGeneric\".\n

If these properties were requested in options, the constructor prevents dateStyle and timeStyle from being specified, so the below group will never be present.\n

\n
dateStyle, timeStyle Optional
\n
\n

The values provided for these properties in the options argument. They are either \"full\", \"long\", \"medium\", \"short\", or \"none\". Some of these properties may not be present, indicating that the corresponding components will not be represented in formatted output.\n

If these properties were requested in options, the constructor prevents individual date time component options from being specified, so the above group will never be present.\n

\n

Note:\nAlthough dateStyle and timeStyle are shortcuts for individual date and time component styles, the exact (locale dependent) component styles they resolve to are not included in the resolved options. This ensures the result of resolvedOptions() can be passed directly to the Intl.DateTimeFormat() constructor (because an options object with both dateStyle or timeStyle and individual date or time component styles is not valid).\n

\n
\n
" + "returns": "A new object with properties reflecting the options computed during the initialization of this DateTimeFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the ca, hc, and nu Unicode extension keys, if requested, may be included in the output.\n

\n
calendar
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"ca\", with default filled in as needed. It is a supported calendar type for this locale. The default is locale dependent.\n

\n
numberingSystem
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"nu\", with default filled in as needed. It is a supported numbering system for this locale. The default is locale dependent.\n

\n
timeZone
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is an IANA time zone name. The default is the runtime's default time zone.\n

\n

Note:\nThe standardization of Temporal requires browsers to use the same identifier as originally specified, without canonicalization to a different alias. See time zones and offsets for more information.\n

\n
\n
hourCycle Optional
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"hc\", with default filled in as needed. If hour12 was provided in the options, then that overrides other hourCycle settings. It is only present if the resolved options also include hour or timeStyle. It is either \"h11\", \"h12\", \"h23\", or \"h24\". The default is locale dependent, although \"h24\" is never a default.\n

\n
hour12 Optional
\n
\n

Calculated from hourCycle. It is only present if the resolved options also include hour or timeStyle. It is true if hourCycle is \"h11\" or \"h12\", and false if hourCycle is \"h23\" or \"h24\".\n

\n
weekday, era, year, month, day, dayPeriod, hour, minute, second, fractionalSecondDigits, timeZoneName Optional
\n
\n

The values resulting from format matching between the corresponding properties in the options argument and the available combinations and representations for date-time formatting in the selected locale. Some of these properties may not be present, indicating that the corresponding components will not be represented in formatted output. weekday, era, and dayPeriod are either \"narrow\", \"short\", or \"long\"; year, day, hour, minute, and second are either \"numeric\", \"2-digit\", or \"narrow\"; month is either \"numeric\", \"2-digit\", \"narrow\", \"short\", or \"long\"; fractionalSecondDigits is either 1, 2, or 3; timeZoneName is either \"short\", \"long\", \"shortOffset\", \"longOffset\", \"shortGeneric\", or \"longGeneric\".\n

If these properties were requested in options, the constructor prevents dateStyle and timeStyle from being specified, so the below group will never be present.\n

\n
dateStyle, timeStyle Optional
\n
\n

The values provided for these properties in the options argument. They are either \"full\", \"long\", \"medium\", \"short\", or \"none\". Some of these properties may not be present, indicating that the corresponding components will not be represented in formatted output.\n

If these properties were requested in options, the constructor prevents individual date time component options from being specified, so the above group will never be present.\n

\n

Note:\nAlthough dateStyle and timeStyle are shortcuts for individual date and time component styles, the exact (locale dependent) component styles they resolve to are not included in the resolved options. This ensures the result of resolvedOptions() can be passed directly to the Intl.DateTimeFormat() constructor (because an options object with both dateStyle or timeStyle and individual date or time component styles is not valid).\n

\n
\n
" }, "intl.datetimeformat.supportedlocalesof": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof", @@ -7011,7 +7425,7 @@ }, "doc": "The Intl.DateTimeFormat.supportedLocalesOf() static method returns an array containing those of the provided locales that are supported in date and time formatting without having to fall back to the runtime's default locale.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object that may have the following property:\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see the Intl page.\n

\n
" }, "returns": "An array of strings representing a subset of the given locale tags that are supported in date and time formatting without having to fall back to the runtime's default locale." @@ -7064,7 +7478,7 @@ }, "doc": "The Intl.DisplayNames() constructor creates Intl.DisplayNames objects.", "parameters": { - "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object containing the following properties, in the order they are retrieved:\n
\n
localeMatcher Optional
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.\n

\n
style Optional
\n
\n

The formatting style to use. Possible values are \"narrow\", \"short\", and \"long\"; the default is \"long\".\n

\n
type
\n
\n

The type of display names to return from of(). Possible values are \"language\", \"region\", \"script\", \"currency\", \"calendar\", and \"dateTimeField\".\n

\n
fallback Optional
\n
\n

What to return from of() if the input is structurally valid but there's no matching display name. Possible values are:\n

\n
\"code\" (default)
\n
\n

Return the input code itself.\n

\n
\"none\"
\n
\n

Return undefined.\n

\n
\n
\n
languageDisplay Optional
\n
\n

How language names should be displayed. Only usable along with type: \"language\". Possible values are:\n

\n
\"dialect\" (default)
\n
\n

Display special regional dialects using their own name. E.g. \"nl-BE\" will be displayed as \"Flemish\".\n

\n
\"standard\"
\n
\n

Display all languages using standard format. E.g. \"nl-BE\" will be displayed as \"Dutch (Belgium)\".\n

\n
\n
\n
" }, "throws": { @@ -7098,7 +7512,7 @@ "parameters": { "code": "The code to provide depends on the type:\n" }, - "returns": "A language-specific formatted string, or undefined if there's no data for the input and fallback is \"none\".\n
\n

Note: fallback is only used if code is structurally valid. See using fallback.\n

", + "returns": "A language-specific formatted string, or undefined if there's no data for the input and fallback is \"none\".\n
\n

Note:\nfallback is only used if code is structurally valid. See using fallback.\n

", "throws": { "RangeError": "Thrown if code is not structurally valid for the given type." } @@ -7126,7 +7540,7 @@ "highDate": "2023-10-26" }, "doc": "The resolvedOptions() method of Intl.DisplayNames instances returns a new object with properties reflecting the options computed during initialization of this DisplayNames object.", - "returns": "A new object with properties reflecting the options computed during the initialization of this DisplayNames object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. No Unicode extension key will be included in the output.\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"narrow\", \"short\", or \"long\". The default is \"long\".\n

\n
type
\n
\n

The value provided for this property in the options argument. It is either \"language\", \"region\", \"script\", \"currency\", \"calendar\", or \"dateTimeField\". It is required so there is no default.\n

\n
fallback
\n
\n

The value provided for this property in the options argument. It is either \"code\" or \"none\". The default is \"code\".\n

\n
languageDisplay
\n
\n

The value provided for this property in the options argument. It is either \"dialect\" or \"standard\". The default is \"dialect\".\n

\n
" + "returns": "A new object with properties reflecting the options computed during the initialization of this DisplayNames object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. No Unicode extension key will be included in the output.\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"narrow\", \"short\", or \"long\". The default is \"long\".\n

\n
type
\n
\n

The value provided for this property in the options argument. It is either \"language\", \"region\", \"script\", \"currency\", \"calendar\", or \"dateTimeField\". It is required so there is no default.\n

\n
fallback
\n
\n

The value provided for this property in the options argument. It is either \"code\" or \"none\". The default is \"code\".\n

\n
languageDisplay
\n
\n

The value provided for this property in the options argument. It is either \"dialect\" or \"standard\". The default is \"dialect\".\n

\n
" }, "intl.displaynames.supportedlocalesof": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/displaynames/supportedlocalesof", @@ -7152,7 +7566,7 @@ }, "doc": "The Intl.DisplayNames.supportedLocalesOf() static method returns an array containing those of the provided locales that are supported in display names without having to fall back to the runtime's default locale.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object that may have the following property:\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see the Intl page.\n

\n
" }, "returns": "An array of strings representing a subset of the given locale tags that are supported in display names without having to fall back to the runtime's default locale." @@ -7203,8 +7617,8 @@ }, "doc": "The Intl.DurationFormat() constructor creates Intl.DurationFormat objects.", "parameters": { - "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension key is allowed:\n

\n
nu
\n
\n

See numberingSystem.\n

\n
\n

This key can also be set with options (as listed below). When both are set, the options property takes precedence.", - "options": "An object containing the following properties, in the order they are retrieved (all of them are optional):\n

\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.\n

\n
numberingSystem
\n
\n

The numbering system to use for number formatting, such as \"arab\", \"hans\", \"mathsans\", and so on. For a list of supported numbering system types, see Intl.supportedValuesOf(). This option can also be set through the nu Unicode extension key; if both are provided, this options property takes precedence.\n

\n
style
\n
\n

The style of the formatted duration. This value is used as the default for all other unit options, and also corresponds to the style option of Intl.ListFormat() when concatenating the list of duration units. Possible values are:\n

\n
\"long\"
\n
\n

E.g., 1 hour and 50 minutes\n

\n
\"short\" (default)
\n
\n

E.g., 1 hr, 50 min\n

\n
\"narrow\"
\n
\n

E.g., 1h 50m\n

\n
\"digital\"
\n
\n

E.g., 1:50:00\n

\n
\n
\n
years
\n
\n

The style of the formatted years. Possible values are \"long\", \"short\", and \"narrow\"; the default is options.style if it's not \"digital\", and \"short\" otherwise.\n

\n
yearsDisplay
\n
\n

Whether to always display years, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if years is unspecified, and \"always\" otherwise.\n

\n
months
\n
\n

The style of the formatted months. Possible values are \"long\", \"short\", and \"narrow\"; the default is options.style if it's not \"digital\", and \"short\" otherwise.\n

\n
monthsDisplay
\n
\n

Whether to always display months, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if months is unspecified, and \"always\" otherwise.\n

\n
weeks
\n
\n

The style of the formatted weeks. Possible values are \"long\", \"short\", and \"narrow\"; the default is options.style if it's not \"digital\", and \"short\" otherwise.\n

\n
weeksDisplay
\n
\n

Whether to always display weeks, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if weeks is unspecified, and \"always\" otherwise.\n

\n
days
\n
\n

The style of the formatted days. Possible values are \"long\", \"short\", and \"narrow\"; the default is options.style if it's not \"digital\", and \"short\" otherwise.\n

\n
daysDisplay
\n
\n

Whether to always display days, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if days is unspecified, and \"always\" otherwise.\n

\n
hours
\n
\n

The style of the formatted hours. Possible values are \"long\", \"short\", \"narrow\", \"numeric\", and \"2-digit\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.\n

\n
hoursDisplay
\n
\n

Whether to always display hours, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if hours is unspecified and options.style is not \"digital\", and \"always\" otherwise.\n

\n
minutes
\n
\n

The style of the formatted minutes.\n

    \n
  • If hours is \"numeric\" or \"2-digit\", possible values are \"numeric\" and \"2-digit\", and \"numeric\" is normalized to \"2-digit\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", \"numeric\", and \"2-digit\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
minutesDisplay
\n
\n

Whether to always display minutes, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if minutes is unspecified and options.style is not \"digital\", and \"always\" otherwise.\n

\n
seconds
\n
\n

The style of the formatted seconds.\n

    \n
  • If minutes is \"numeric\" or \"2-digit\", possible values are \"numeric\" and \"2-digit\", and \"numeric\" is normalized to \"2-digit\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", \"numeric\", and \"2-digit\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
secondsDisplay
\n
\n

Whether to always display seconds, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if seconds is unspecified and options.style is not \"digital\", and \"always\" otherwise.\n

\n
milliseconds
\n
\n

The style of the formatted milliseconds.\n

    \n
  • If seconds is \"numeric\" or \"2-digit\", the only possible value is \"numeric\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", and \"numeric\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
millisecondsDisplay
\n
\n

Whether to always display milliseconds, or only if nonzero.\n

    \n
  • If seconds is \"numeric\" or \"2-digit\", the only possible value is \"auto\"; the default is only \"auto\" when milliseconds is unspecified.
  • \n
  • Otherwise, possible values are \"always\" and \"auto\"; the default is \"auto\" if milliseconds is unspecified, and \"always\" otherwise.
  • \n
\n
\n
microseconds
\n
\n

The style of the formatted microseconds.\n

    \n
  • If milliseconds is \"numeric\", the only possible value is \"numeric\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", and \"numeric\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
microsecondsDisplay
\n
\n

Whether to always display microseconds, or only if nonzero.\n

    \n
  • If milliseconds is \"numeric\", the only possible value is \"auto\"; the default is only \"auto\" when microseconds is unspecified.
  • \n
  • Otherwise, possible values are \"always\" and \"auto\"; the default is \"auto\" if microseconds is unspecified, and \"always\" otherwise.
  • \n
\n
\n
nanoseconds
\n
\n

The style of the formatted nanoseconds.\n

    \n
  • If microseconds is \"numeric\", the only possible value is \"numeric\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", and \"numeric\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
nanosecondsDisplay
\n
\n

Whether to always display nanoseconds, or only if nonzero.\n

    \n
  • If microseconds is \"numeric\", the only possible value is \"auto\"; the default is only \"auto\" when nanoseconds is unspecified.
  • \n
  • Otherwise, possible values are \"always\" and \"auto\"; the default is \"auto\" if nanoseconds is unspecified, and \"always\" otherwise.
  • \n
\n
\n
fractionalDigits
\n
\n

Number of how many fractional second digits to display in the output. Possible values are from 0 to 9; the default is undefined (include as many fractional digits as necessary).\n

\n
" + "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension key is allowed:\n

\n
nu
\n
\n

See numberingSystem.\n

\n
\n

This key can also be set with options (as listed below). When both are set, the options property takes precedence.", + "options": "An object containing the following properties, in the order they are retrieved (all of them are optional):\n

\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.\n

\n
numberingSystem
\n
\n

The numbering system to use for number formatting, such as \"arab\", \"hans\", \"mathsans\", and so on. For a list of supported numbering system types, see Intl.supportedValuesOf(); the default is locale dependent. This option can also be set through the nu Unicode extension key; if both are provided, this options property takes precedence.\n

\n
style
\n
\n

The style of the formatted duration. This value is used as the default for all other unit options, and also corresponds to the style option of Intl.ListFormat() when concatenating the list of duration units. Possible values are:\n

\n
\"long\"
\n
\n

E.g., 1 hour and 50 minutes\n

\n
\"short\" (default)
\n
\n

E.g., 1 hr, 50 min\n

\n
\"narrow\"
\n
\n

E.g., 1h 50m\n

\n
\"digital\"
\n
\n

E.g., 1:50:00\n

\n
\n
\n
years
\n
\n

The style of the formatted years. Possible values are \"long\", \"short\", and \"narrow\"; the default is options.style if it's not \"digital\", and \"short\" otherwise.\n

\n
yearsDisplay
\n
\n

Whether to always display years, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if years is unspecified, and \"always\" otherwise.\n

\n
months
\n
\n

The style of the formatted months. Possible values are \"long\", \"short\", and \"narrow\"; the default is options.style if it's not \"digital\", and \"short\" otherwise.\n

\n
monthsDisplay
\n
\n

Whether to always display months, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if months is unspecified, and \"always\" otherwise.\n

\n
weeks
\n
\n

The style of the formatted weeks. Possible values are \"long\", \"short\", and \"narrow\"; the default is options.style if it's not \"digital\", and \"short\" otherwise.\n

\n
weeksDisplay
\n
\n

Whether to always display weeks, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if weeks is unspecified, and \"always\" otherwise.\n

\n
days
\n
\n

The style of the formatted days. Possible values are \"long\", \"short\", and \"narrow\"; the default is options.style if it's not \"digital\", and \"short\" otherwise.\n

\n
daysDisplay
\n
\n

Whether to always display days, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if days is unspecified, and \"always\" otherwise.\n

\n
hours
\n
\n

The style of the formatted hours. Possible values are \"long\", \"short\", \"narrow\", \"numeric\", and \"2-digit\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.\n

\n
hoursDisplay
\n
\n

Whether to always display hours, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if hours is unspecified and options.style is not \"digital\", and \"always\" otherwise.\n

\n
minutes
\n
\n

The style of the formatted minutes.\n

    \n
  • If hours is \"numeric\" or \"2-digit\", possible values are \"numeric\" and \"2-digit\", and \"numeric\" is normalized to \"2-digit\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", \"numeric\", and \"2-digit\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
minutesDisplay
\n
\n

Whether to always display minutes, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if minutes is unspecified and options.style is not \"digital\", and \"always\" otherwise.\n

\n
seconds
\n
\n

The style of the formatted seconds.\n

    \n
  • If minutes is \"numeric\" or \"2-digit\", possible values are \"numeric\" and \"2-digit\", and \"numeric\" is normalized to \"2-digit\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", \"numeric\", and \"2-digit\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
secondsDisplay
\n
\n

Whether to always display seconds, or only if nonzero. Possible values are \"always\" and \"auto\"; the default is \"auto\" if seconds is unspecified and options.style is not \"digital\", and \"always\" otherwise.\n

\n
milliseconds
\n
\n

The style of the formatted milliseconds.\n

    \n
  • If seconds is \"numeric\" or \"2-digit\", the only possible value is \"numeric\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", and \"numeric\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
millisecondsDisplay
\n
\n

Whether to always display milliseconds, or only if nonzero.\n

    \n
  • If seconds is \"numeric\" or \"2-digit\", the only possible value is \"auto\"; the default is only \"auto\" when milliseconds is unspecified.
  • \n
  • Otherwise, possible values are \"always\" and \"auto\"; the default is \"auto\" if milliseconds is unspecified, and \"always\" otherwise.
  • \n
\n
\n
microseconds
\n
\n

The style of the formatted microseconds.\n

    \n
  • If milliseconds is \"numeric\", the only possible value is \"numeric\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", and \"numeric\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
microsecondsDisplay
\n
\n

Whether to always display microseconds, or only if nonzero.\n

    \n
  • If milliseconds is \"numeric\", the only possible value is \"auto\"; the default is only \"auto\" when microseconds is unspecified.
  • \n
  • Otherwise, possible values are \"always\" and \"auto\"; the default is \"auto\" if microseconds is unspecified, and \"always\" otherwise.
  • \n
\n
\n
nanoseconds
\n
\n

The style of the formatted nanoseconds.\n

    \n
  • If microseconds is \"numeric\", the only possible value is \"numeric\"; the default is \"numeric\".
  • \n
  • Otherwise, possible values are \"long\", \"short\", \"narrow\", and \"numeric\"; the default is options.style if it's not \"digital\", and \"numeric\" otherwise.
  • \n
\n
\n
nanosecondsDisplay
\n
\n

Whether to always display nanoseconds, or only if nonzero.\n

    \n
  • If microseconds is \"numeric\", the only possible value is \"auto\"; the default is only \"auto\" when nanoseconds is unspecified.
  • \n
  • Otherwise, possible values are \"always\" and \"auto\"; the default is \"auto\" if nanoseconds is unspecified, and \"always\" otherwise.
  • \n
\n
\n
fractionalDigits
\n
\n

Number of how many fractional second digits to display in the output. Possible values are from 0 to 9; the default is undefined (include as many fractional digits as necessary).\n

\n
" }, "throws": { "RangeError": "Thrown if locales or options contain invalid values." @@ -7286,7 +7700,7 @@ "lowDate": "2025-03-04" }, "doc": "The resolvedOptions() method of Intl.DurationFormat instances returns a new object with properties reflecting the options computed during initialization of this DurationFormat object.", - "returns": "A new object with properties reflecting the options computed during the initialization of this DurationFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the nu Unicode extension key, if requested, may be included in the output.\n

\n
numberingSystem
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"nu\", with default filled in as needed. It is a supported numbering system for this locale. The default is locale dependent.\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"long\", \"short\", \"narrow\", or \"digital\". The default is \"short\".\n

\n
years, yearsDisplay, months, monthsDisplay, weeks, weeksDisplay, days, daysDisplay, hours, hoursDisplay, minutes, minutesDisplay, seconds, secondsDisplay, milliseconds, millisecondsDisplay, nanoseconds, nanosecondsDisplay
\n
\n

The values provided for these properties in the options argument, with defaults filled in as needed. For the valid values and defaults for each, see the options argument of the constructor.\n

\n
fractionalDigits Optional
\n
\n

The value provided for this property in the options argument. It is only present if specified in options. It is an integer from 0 to 9, inclusive.\n

\n
" + "returns": "A new object with properties reflecting the options computed during the initialization of this DurationFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the nu Unicode extension key, if requested, may be included in the output.\n

\n
numberingSystem
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"nu\", with default filled in as needed. It is a supported numbering system for this locale. The default is locale dependent.\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"long\", \"short\", \"narrow\", or \"digital\". The default is \"short\".\n

\n
years, yearsDisplay, months, monthsDisplay, weeks, weeksDisplay, days, daysDisplay, hours, hoursDisplay, minutes, minutesDisplay, seconds, secondsDisplay, milliseconds, millisecondsDisplay, nanoseconds, nanosecondsDisplay
\n
\n

The values provided for these properties in the options argument, with defaults filled in as needed. For the valid values and defaults for each, see the options argument of the constructor.\n

\n
fractionalDigits Optional
\n
\n

The value provided for this property in the options argument. It is only present if specified in options. It is an integer from 0 to 9, inclusive.\n

\n
" }, "intl.durationformat.supportedlocalesof": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/durationformat/supportedlocalesof", @@ -7311,7 +7725,7 @@ }, "doc": "The Intl.DurationFormat.supportedLocalesOf() static method returns an array containing those of the provided locales that are supported in duration formatting without having to fall back to the runtime's default locale.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object that may have the following property:\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see the Intl page.\n

\n
" }, "returns": "An array of strings representing a subset of the given locale tags that are supported in duration formatting without having to fall back to the runtime's default locale." @@ -7448,7 +7862,7 @@ }, "doc": "The Intl.ListFormat() constructor creates Intl.ListFormat objects.", "parameters": { - "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object containing the following properties, in the order they are retrieved (all of them are optional):\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.\n

\n
type
\n
\n

Indicates the type of grouping. Possible values are:\n

\n
\"conjunction\" (default)
\n
\n

For \"and\"-based grouping of the list items: \"A, B, and C\"\n

\n
\"disjunction\"
\n
\n

For \"or\"-based grouping of the list items: \"A, B, or C\"\n

\n
\"unit\"
\n
\n

For grouping the list items as a compound unit (neither \"and\"-based nor \"or\"-based): \"A, B, C\"\n

\n
\n
\n
style
\n
\n

The grouping style (for example, whether list separators and conjunctions are included). Possible values are:\n

\n
\"long\" (default)
\n
\n

The typical list format. For example, \"A, B, and C\"\n

\n
\"short\"
\n
\n

The spacing, the length or presence of a conjunction, and the separators may change. Usually, you would want the input elements to be abbreviated too. For example, \"A, B, & C\"\n

\n
\"narrow\"
\n
\n

Where possible, the list format is further abbreviated, so that the output is as short as possible. For example, \"A, B, C\"\n

\n
\n
\n
" }, "throws": { @@ -7478,7 +7892,7 @@ "highDate": "2023-10-26" }, "doc": "The resolvedOptions() method of Intl.ListFormat instances returns a new object with properties reflecting the options computed during initialization of this ListFormat object.", - "returns": "A new object with properties reflecting the options computed during the initialization of this ListFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. No Unicode extension key will be included in the output.\n

\n
type
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"conjunction\", \"disjunction\", or \"unit\". The default is \"conjunction\".\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"long\", \"short\", or \"narrow\". The default is \"long\".\n

\n
" + "returns": "A new object with properties reflecting the options computed during the initialization of this ListFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. No Unicode extension key will be included in the output.\n

\n
type
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"conjunction\", \"disjunction\", or \"unit\". The default is \"conjunction\".\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"long\", \"short\", or \"narrow\". The default is \"long\".\n

\n
" }, "intl.listformat.supportedlocalesof": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/listformat/supportedlocalesof", @@ -7504,7 +7918,7 @@ }, "doc": "The Intl.ListFormat.supportedLocalesOf() static method returns an array containing those of the provided locales that are supported in list formatting without having to fall back to the runtime's default locale.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object that may have the following property:\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see the Intl page.\n

\n
" }, "returns": "An array of strings representing a subset of the given locale tags that are supported in list formatting without having to fall back to the runtime's default locale." @@ -7555,7 +7969,7 @@ "lowDate": "2020-09-16", "highDate": "2023-03-16" }, - "doc": "The baseName accessor property of Intl.Locale instances returns a substring of this locale's string representation, containing core information about this locale, including the language, and the script and region if available." + "doc": "The baseName accessor property of Intl.Locale instances returns a substring of this locale's string representation, containing core information about this locale, including the language, script, region, and variants, if available." }, "intl.locale.calendar": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/locale/calendar", @@ -7841,7 +8255,7 @@ "doc": "The Intl.Locale() constructor creates Intl.Locale objects.", "parameters": { "tag": "The Unicode locale identifier string. For the syntax of locale identifier strings, see the Intl main page. Note that the Intl.Locale constructor, unlike most other Intl constructors, does not accept an array of locales or undefined.", - "options": "An object that contains configuration for the Locale. Option values here take priority over extension keys in the locale identifier. Possible properties are:\n
\n
language
\n
\n

The language. Any syntactically valid string following the unicode_language_subtag grammar (2–3 or 5–8 letters) is accepted, but the implementation only recognizes certain kinds.\n

\n
script
\n
\n

The script. Any syntactically valid string following the unicode_script_subtag grammar (4 letters) is accepted, but the implementation only recognizes certain kinds.\n

\n
region
\n
\n

The region. Any syntactically valid string following the unicode_region_subtag grammar (either 2 letters or 3 digits) is accepted, but the implementation only recognizes certain kinds.\n

\n
calendar
\n
\n

The calendar. Any syntactically valid string following the type grammar (one or more segments of 3–8 alphanumerals, joined by hyphens) is accepted, but the implementation only recognizes certain kinds, which are listed in Intl.supportedValuesOf().\n

\n
collation
\n
\n

The collation. Any syntactically valid string following the type grammar is accepted, but the implementation only recognizes certain kinds, which are listed in Intl.supportedValuesOf().\n

\n
numberingSystem
\n
\n

The numbering system. Any syntactically valid string following the type grammar is accepted, but the implementation only recognizes certain kinds, which are listed in Intl.supportedValuesOf().\n

\n
caseFirst
\n
\n

The case-first sort option. Possible values are \"upper\", \"lower\", or \"false\".\n

\n
hourCycle
\n
\n

The hour cycle. Possible values are \"h23\", \"h12\", \"h11\", or the practically unused \"h24\", which are explained in Intl.Locale.prototype.getHourCycles\n

\n
numeric
\n
\n

The numeric sort option. A boolean.\n

\n
" + "options": "An object that contains configuration for the Locale. Option values here take priority over extension keys in the locale identifier. Possible properties are:\n
\n
language
\n
\n

The language. Any syntactically valid string following the unicode_language_subtag grammar (2–3 or 5–8 letters) is accepted, but the implementation only recognizes certain kinds.\n

\n
script
\n
\n

The script. Any syntactically valid string following the unicode_script_subtag grammar (4 letters) is accepted, but the implementation only recognizes certain kinds.\n

\n
region
\n
\n

The region. Any syntactically valid string following the unicode_region_subtag grammar (either 2 letters or 3 digits) is accepted, but the implementation only recognizes certain kinds.\n

\n
variants
\n
\n

The variants. It should be a dash (-) separated list of unique variant tags, where each tag is any syntactically valid string following the unicode_variant_subtag grammar (either 5–8 alphanumerals or a digit followed by 3 alphanumerals), but the implementation only recognizes certain kinds.\n

\n
calendar
\n
\n

The calendar. Any syntactically valid string following the type grammar (one or more segments of 3–8 alphanumerals, joined by hyphens) is accepted, but the implementation only recognizes certain kinds, which are listed in Intl.supportedValuesOf().\n

\n
collation
\n
\n

The collation. Any syntactically valid string following the type grammar is accepted, but the implementation only recognizes certain kinds, which are listed in Intl.supportedValuesOf().\n

\n
numberingSystem
\n
\n

The numbering system. Any syntactically valid string following the type grammar is accepted, but the implementation only recognizes certain kinds, which are listed in Intl.supportedValuesOf().\n

\n
caseFirst
\n
\n

The case-first sort option. Possible values are \"upper\", \"lower\", or \"false\".\n

\n
hourCycle
\n
\n

The hour cycle. Possible values are \"h23\", \"h12\", \"h11\", or the practically unused \"h24\", which are explained in Intl.Locale.prototype.getHourCycles\n

\n
numeric
\n
\n

The numeric sort option. A boolean.\n

\n
" } }, "intl.locale.maximize": { @@ -8015,6 +8429,17 @@ "doc": "The toString() method of Intl.Locale instances returns this Locale's full locale identifier string.", "returns": "The locale's Unicode locale identifier string." }, + "intl.locale.variants": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/locale/variants", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Firefox": "141", + "FirefoxAndroid": "141" + }, + "doc": "The variants accessor property of Intl.Locale instances returns the variants associated with this locale, as a string of dash (-) separated identifiers in the originally specified order." + }, "intl.numberformat": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/numberformat", "status": [ @@ -8092,7 +8517,7 @@ "startRange": "A Number, BigInt, or string, to format. Strings are parsed in the same way as in number conversion, except that formatRange() will use the exact value that the string represents, avoiding loss of precision during implicitly conversion to a number.", "endRange": "A Number, BigInt, or string, to format." }, - "returns": "A string representing the given range of numbers formatted according to the locale and formatting options of this Intl.NumberFormat object.", + "returns": "A string representing the given range of numbers formatted according to the locale and formatting options of this Intl.NumberFormat object. If the start and end values are formatted to the same string, the output will only contain a single value, possibly prefixed with an \"approximately equals\" symbol (e.g., \"~$3\"). The insertion of this symbol only depends on the locale settings, and is inserted even when startRange === endRange.", "throws": { "RangeError": "Thrown if either startRange or endRange is NaN or an inconvertible string.", "TypeError": "Thrown if either startRange or endRange is undefined." @@ -8123,7 +8548,7 @@ "startRange": "A Number, BigInt, or string, to format. Strings are parsed in the same way as in number conversion, except that formatRangeToParts() will use the exact value that the string represents, avoiding loss of precision during implicitly conversion to a number.", "endRange": "A Number, BigInt, or string, to format." }, - "returns": "An Array of objects containing the formatted range in parts. Each object has three properties, type, value, and source, each containing a string. The string concatenation of value, in the order provided, will result in the same string as formatRange(). The type may have the same values as formatToParts(). The source can be one of the following:\n
\n
startRange
\n
\n

The token is a part of the start number.\n

\n
endRange
\n
\n

The token is a part of the end number.\n

\n
shared
\n
\n

The token is shared between the start and end; for example, the currency symbol. All literals that are part of the range pattern itself, such as the \"–\" separator, are also marked as shared.\n

\n
\n

If the start and end numbers are equivalent, then the output has the same list of tokens as calling formatToParts() on the start number, with all tokens marked as source: \"shared\".", + "returns": "An Array of objects containing the formatted range in parts. Each object has three properties, type, value, and source, each containing a string. The string concatenation of value, in the order provided, will result in the same string as formatRange(). The type may have the same values as formatToParts(), or the additional value \"approximatelySign\" (see below). The source can be one of the following:\n

\n
startRange
\n
\n

The token is a part of the start number.\n

\n
endRange
\n
\n

The token is a part of the end number.\n

\n
shared
\n
\n

The token is shared between the start and end; for example, the currency symbol. All literals that are part of the range pattern itself, such as the \"–\" separator, are also marked as shared.\n

\n
\n

If the start and end numbers are formatted to the same string, then the output has the same list of tokens as calling formatToParts() on the start number, with all tokens marked as source: \"shared\". In addition, the first token may be an \"approximately equals\" symbol (e.g., \"~\") with type: \"approximatelySign\". The insertion of this symbol only depends on the locale settings, and is inserted even when startRange === endRange.", "throws": { "RangeError": "Thrown if either startRange or endRange is NaN or an inconvertible string.", "TypeError": "Thrown if either startRange or endRange is undefined." @@ -8181,10 +8606,10 @@ }, "doc": "The Intl.NumberFormat() constructor creates Intl.NumberFormat objects.", "parameters": { - "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension key is allowed:\n

\n
nu
\n
\n

See numberingSystem.\n

\n
\n

This key can also be set with options (as listed below). When both are set, the options property takes precedence.", + "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension key is allowed:\n

\n
nu
\n
\n

See numberingSystem.\n

\n
\n

This key can also be set with options (as listed below). When both are set, the options property takes precedence.", "options": "An object. For ease of reading, the property list is broken into sections based on their purposes, including locale options, style options, digit options, and other options.", "localeMatcher": "The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\".\nFor information about this option, see Locale identification and negotiation.", - "numberingSystem": "The numbering system to use for number formatting, such as \"arab\", \"hans\", \"mathsans\", and so on. For a list of supported numbering system types, see Intl.supportedValuesOf(). This option can also be set through the nu Unicode extension key; if both are provided, this options property takes precedence.", + "numberingSystem": "The numbering system to use for number formatting, such as \"arab\", \"hans\", \"mathsans\", and so on. For a list of supported numbering system types, see Intl.supportedValuesOf(); the default is locale dependent. This option can also be set through the nu Unicode extension key; if both are provided, this options property takes precedence.", "style": "The formatting style to use.\n

\n
\"decimal\" (default)
\n
\n

For plain number formatting.\n

\n
\"currency\"
\n
\n

For currency formatting.\n

\n
\"percent\"
\n
\n

For percent formatting.\n

\n
\"unit\"
\n
\n

For unit formatting.\n

\n
", "currency": "The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as \"USD\" for the US dollar, \"EUR\" for the euro, or \"CNY\" for the Chinese RMB — see Intl.supportedValuesOf(). There is no default value; if the style is \"currency\", the currency property must be provided. It is normalized to uppercase.", "currencyDisplay": "How to display the currency in currency formatting.\n
\n
\"code\"
\n
\n

Use the ISO currency code.\n

\n
\"symbol\" (default)
\n
\n

Use a localized currency symbol such as €.\n

\n
\"narrowSymbol\"
\n
\n

Use a narrow format symbol (\"$100\" rather than \"US$100\").\n

\n
\"name\"
\n
\n

Use a localized currency name such as \"dollar\".\n

\n
", @@ -8234,7 +8659,7 @@ "highDate": "2020-03-28" }, "doc": "The resolvedOptions() method of Intl.NumberFormat instances returns a new object with properties reflecting the options computed during initialization of this NumberFormat object.", - "returns": "A new object with properties reflecting the options computed during the initialization of this NumberFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the nu Unicode extension key, if requested, may be included in the output.\n

\n
numberingSystem
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"nu\", with default filled in as needed. It is a supported numbering system for this locale. The default is locale dependent.\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"decimal\", \"percent\", \"currency\", or \"unit\". The default is \"decimal\".\n

\n
currency Optional
\n
\n

The value provided for this property in the options argument. It is only present if style is \"currency\". It is an ISO 4217 currency code; see Intl.supportedValuesOf(). It is required if style is \"currency\" so there is no default.\n

\n
currencyDisplay Optional
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is only present if style is \"currency\". It is either \"code\", \"symbol\", \"narrowSymbol\", or \"name\". The default is \"symbol\".\n

\n
currencySign Optional
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is only present if style is \"currency\". It is either \"standard\" or \"accounting\". The default is \"standard\".\n

\n
unit Optional
\n
\n

The value provided for this property in the options argument. It is only present if style is \"unit\". It is a sanctioned unit identifier from the full CLDR list. It is required if style is \"unit\" so there is no default.\n

\n
unitDisplay Optional
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is only present if style is \"unit\". It is either \"short\", \"narrow\", or \"long\". The default is \"short\".\n

\n
minimumIntegerDigits
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is an integer between 1 and 21. The default is 1.\n

\n
minimumFractionDigits, maximumFractionDigits Optional
\n
\n

The value provided for these properties in the options argument, with defaults filled in as needed. They are only present if necessary; see digit options. It is an integer between 0 and 100.\n

\n
minimumSignificantDigits, maximumSignificantDigits Optional
\n
\n

The value provided for these properties in the options argument, with defaults filled in as needed. They are only present if necessary; see digit options. It is an integer between 1 and 21.\n

\n
useGrouping
\n
\n

The value provided for this property in the options argument, with default filled in as needed, and with some values normalized. It is either \"always\", \"auto\", \"min2\", or the boolean false. The default is \"min2\" if notation is \"compact\", and \"auto\" otherwise.\n

\n
notation
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"standard\", \"scientific\", \"engineering\", or \"compact\". The default is \"standard\".\n

\n
compactDisplay Optional
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is only present if notation is \"compact\". It is either \"short\" or \"long\". The default is \"short\".\n

\n
signDisplay
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\", \"always\", \"exceptZero\", \"negative\", or \"never\". The default is \"auto\".\n

\n
roundingIncrement
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is one of 1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000, 2500, and 5000. The default is 1.\n

\n
roundingMode
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is one of \"ceil\", \"floor\", \"expand\", \"trunc\", \"halfCeil\", \"halfFloor\", \"halfExpand\", \"halfTrunc\", and \"halfEven\". The default is \"halfExpand\".\n

\n
roundingPriority
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\", \"morePrecision\", or \"lessPrecision\". The default is \"auto\".\n

\n
trailingZeroDisplay
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\" or \"stripIfInteger\". The default is \"auto\".\n

\n
" + "returns": "A new object with properties reflecting the options computed during the initialization of this NumberFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the nu Unicode extension key, if requested, may be included in the output.\n

\n
numberingSystem
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"nu\", with default filled in as needed. It is a supported numbering system for this locale. The default is locale dependent.\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"decimal\", \"percent\", \"currency\", or \"unit\". The default is \"decimal\".\n

\n
currency Optional
\n
\n

The value provided for this property in the options argument. It is only present if style is \"currency\". It is an ISO 4217 currency code; see Intl.supportedValuesOf(). It is required if style is \"currency\" so there is no default.\n

\n
currencyDisplay Optional
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is only present if style is \"currency\". It is either \"code\", \"symbol\", \"narrowSymbol\", or \"name\". The default is \"symbol\".\n

\n
currencySign Optional
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is only present if style is \"currency\". It is either \"standard\" or \"accounting\". The default is \"standard\".\n

\n
unit Optional
\n
\n

The value provided for this property in the options argument. It is only present if style is \"unit\". It is a sanctioned unit identifier from the full CLDR list. It is required if style is \"unit\" so there is no default.\n

\n
unitDisplay Optional
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is only present if style is \"unit\". It is either \"short\", \"narrow\", or \"long\". The default is \"short\".\n

\n
minimumIntegerDigits
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is an integer between 1 and 21. The default is 1.\n

\n
minimumFractionDigits, maximumFractionDigits Optional
\n
\n

The value provided for these properties in the options argument, with defaults filled in as needed. They are only present if necessary; see digit options. It is an integer between 0 and 100.\n

\n
minimumSignificantDigits, maximumSignificantDigits Optional
\n
\n

The value provided for these properties in the options argument, with defaults filled in as needed. They are only present if necessary; see digit options. It is an integer between 1 and 21.\n

\n
useGrouping
\n
\n

The value provided for this property in the options argument, with default filled in as needed, and with some values normalized. It is either \"always\", \"auto\", \"min2\", or the boolean false. The default is \"min2\" if notation is \"compact\", and \"auto\" otherwise.\n

\n
notation
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"standard\", \"scientific\", \"engineering\", or \"compact\". The default is \"standard\".\n

\n
compactDisplay Optional
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is only present if notation is \"compact\". It is either \"short\" or \"long\". The default is \"short\".\n

\n
signDisplay
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\", \"always\", \"exceptZero\", \"negative\", or \"never\". The default is \"auto\".\n

\n
roundingIncrement
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is one of 1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000, 2500, and 5000. The default is 1.\n

\n
roundingMode
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is one of \"ceil\", \"floor\", \"expand\", \"trunc\", \"halfCeil\", \"halfFloor\", \"halfExpand\", \"halfTrunc\", and \"halfEven\". The default is \"halfExpand\".\n

\n
roundingPriority
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\", \"morePrecision\", or \"lessPrecision\". The default is \"auto\".\n

\n
trailingZeroDisplay
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\" or \"stripIfInteger\". The default is \"auto\".\n

\n
" }, "intl.numberformat.supportedlocalesof": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/numberformat/supportedlocalesof", @@ -8260,7 +8685,7 @@ }, "doc": "The Intl.NumberFormat.supportedLocalesOf() static method returns an array containing those of the provided locales that are supported in number formatting without having to fall back to the runtime's default locale.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object that may have the following property:\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see the Intl page.\n

\n
" }, "returns": "An array of strings representing a subset of the given locale tags that are supported in number formatting without having to fall back to the runtime's default locale." @@ -8313,7 +8738,7 @@ }, "doc": "The Intl.PluralRules() constructor creates Intl.PluralRules objects.", "parameters": { - "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object containing the following properties, in the order they are retrieved (all of them are optional):\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.\n

\n
type
\n
\n

The type to use. Possible values are:\n

\n
\"cardinal\" (default)
\n
\n

For cardinal numbers (referring to the quantity of things).\n

\n
\"ordinal\"
\n
\n

For ordinal number (referring to the ordering or ranking of things, e.g., \"1st\", \"2nd\", \"3rd\" in English).\n

\n
\n
\n
\n

Intl.PluralRules also supports the Intl.NumberFormat() digit options (see Intl.NumberFormat() for details):\n

    \n
  • minimumIntegerDigits
  • \n
  • minimumFractionDigits
  • \n
  • maximumFractionDigits
  • \n
  • minimumSignificantDigits
  • \n
  • maximumSignificantDigits
  • \n
  • roundingPriority
  • \n
  • roundingIncrement
  • \n
  • roundingMode
  • \n
\n

These options are interpreted as if the notation option from Intl.NumberFormat is \"standard\" and style is \"decimal\"." }, "throws": { @@ -8343,7 +8768,7 @@ "highDate": "2022-03-19" }, "doc": "The resolvedOptions() method of Intl.PluralRules instances returns a new object with properties reflecting the options computed during initialization of this PluralRules object.", - "returns": "A new object with properties reflecting the options computed during the initialization of this PluralRules object. The object has the following properties, in the order they are listed:\n

\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. No Unicode extension key will be included in the output.\n

\n
type
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"cardinal\" or \"ordinal\". The default is \"cardinal\".\n

\n
minimumIntegerDigits, minimumFractionDigits, maximumFractionDigits Optional
\n
\n

The value provided for these properties in the options argument, with defaults filled in as needed. These properties are present only if neither minimumSignificantDigits nor maximumSignificantDigits was provided in the options argument.\n

\n
minimumSignificantDigits, maximumSignificantDigits Optional
\n
\n

The value provided for these properties in the options argument, with defaults filled in as needed. These properties are present only if at least one of them was provided in the options argument.\n

\n
pluralCategories
\n
\n

An Array of plural categories used by the given locale, selected from the list \"zero\", \"one\", \"two\", \"few\", \"many\" and \"other\".\n

\n
roundingIncrement
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is one of 1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000, 2500, and 5000. The default is 1.\n

\n
roundingMode
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is one of \"ceil\", \"floor\", \"expand\", \"trunc\", \"halfCeil\", \"halfFloor\", \"halfExpand\", \"halfTrunc\", and \"halfEven\". The default is \"halfExpand\".\n

\n
roundingPriority
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\", \"morePrecision\", or \"lessPrecision\". The default is \"auto\".\n

\n
trailingZeroDisplay
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\" or \"stripIfInteger\". The default is \"auto\".\n

\n
" + "returns": "A new object with properties reflecting the options computed during the initialization of this PluralRules object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. No Unicode extension key will be included in the output.\n

\n
type
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"cardinal\" or \"ordinal\". The default is \"cardinal\".\n

\n
minimumIntegerDigits, minimumFractionDigits, maximumFractionDigits Optional
\n
\n

The value provided for these properties in the options argument, with defaults filled in as needed. These properties are present only if neither minimumSignificantDigits nor maximumSignificantDigits was provided in the options argument.\n

\n
minimumSignificantDigits, maximumSignificantDigits Optional
\n
\n

The value provided for these properties in the options argument, with defaults filled in as needed. These properties are present only if at least one of them was provided in the options argument.\n

\n
pluralCategories
\n
\n

An Array of plural categories used by the given locale, selected from the list \"zero\", \"one\", \"two\", \"few\", \"many\" and \"other\".\n

\n
roundingIncrement
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is one of 1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000, 2500, and 5000. The default is 1.\n

\n
roundingMode
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is one of \"ceil\", \"floor\", \"expand\", \"trunc\", \"halfCeil\", \"halfFloor\", \"halfExpand\", \"halfTrunc\", and \"halfEven\". The default is \"halfExpand\".\n

\n
roundingPriority
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\", \"morePrecision\", or \"lessPrecision\". The default is \"auto\".\n

\n
trailingZeroDisplay
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"auto\" or \"stripIfInteger\". The default is \"auto\".\n

\n
" }, "intl.pluralrules.select": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/pluralrules/select", @@ -8424,7 +8849,7 @@ }, "doc": "The Intl.PluralRules.supportedLocalesOf() static method returns an array containing those of the provided locales that are supported in plural rules without having to fall back to the runtime's default locale.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object that may have the following property:\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see the Intl page.\n

\n
" }, "returns": "An array of strings representing a subset of the given locale tags that are supported in plural rules without having to fall back to the runtime's default locale." @@ -8535,8 +8960,8 @@ }, "doc": "The Intl.RelativeTimeFormat() constructor creates Intl.RelativeTimeFormat objects.", "parameters": { - "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension key is allowed:\n

\n
nu
\n
\n

See numberingSystem.\n

\n
\n

This key can also be set with options (as listed below). When both are set, the options property takes precedence.", - "options": "An object containing the following properties, in the order they are retrieved (all of them are optional):\n

\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.\n

\n
numberingSystem
\n
\n

The numbering system to use for number formatting, such as \"arab\", \"hans\", \"mathsans\", and so on. For a list of supported numbering system types, see Intl.supportedValuesOf(). This option can also be set through the nu Unicode extension key; if both are provided, this options property takes precedence.\n

\n
style
\n
\n

The style of the formatted relative time. Possible values are:\n

\n
\"long\" (default)
\n
\n

E.g., \"in 1 month\"\n

\n
\"short\"
\n
\n

E.g., \"in 1 mo.\"\n

\n
\"narrow\"
\n
\n

E.g., \"in 1 mo.\". The narrow style could be similar to the short style for some locales.\n

\n
\n
\n
numeric
\n
\n

Whether to use numeric values in the output. Possible values are \"always\" and \"auto\"; the default is \"always\". When set to \"auto\", the output may use more idiomatic phrasing such as \"yesterday\" instead of \"1 day ago\".\n

\n
" + "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

The following Unicode extension key is allowed:\n

\n
nu
\n
\n

See numberingSystem.\n

\n
\n

This key can also be set with options (as listed below). When both are set, the options property takes precedence.", + "options": "An object containing the following properties, in the order they are retrieved (all of them are optional):\n

\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.\n

\n
numberingSystem
\n
\n

The numbering system to use for number formatting, such as \"arab\", \"hans\", \"mathsans\", and so on. For a list of supported numbering system types, see Intl.supportedValuesOf(); the default is locale dependent. This option can also be set through the nu Unicode extension key; if both are provided, this options property takes precedence.\n

\n
style
\n
\n

The style of the formatted relative time. Possible values are:\n

\n
\"long\" (default)
\n
\n

E.g., \"in 1 month\"\n

\n
\"short\"
\n
\n

E.g., \"in 1 mo.\"\n

\n
\"narrow\"
\n
\n

E.g., \"in 1 mo.\". The narrow style could be similar to the short style for some locales.\n

\n
\n
\n
numeric
\n
\n

Whether to use numeric values in the output. Possible values are \"always\" and \"auto\"; the default is \"always\". When set to \"auto\", the output may use more idiomatic phrasing such as \"yesterday\" instead of \"1 day ago\".\n

\n
" }, "throws": { "RangeError": "Thrown if locales or options contain invalid values." @@ -8565,7 +8990,7 @@ "highDate": "2023-03-16" }, "doc": "The resolvedOptions() method of Intl.RelativeTimeFormat instances returns a new object with properties reflecting the options computed during initialization of this RelativeTimeFormat object.", - "returns": "A new object with properties reflecting the options computed during the initialization of this RelativeTimeFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the nu Unicode extension key, if requested, may be included in the output.\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"long\", \"short\", or \"narrow\". The default is \"long\".\n

\n
numeric
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"always\" or \"auto\". The default is \"always\".\n

\n
numberingSystem
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"nu\", with default filled in as needed. It is a supported numbering system for this locale. The default is locale dependent.\n

\n
" + "returns": "A new object with properties reflecting the options computed during the initialization of this RelativeTimeFormat object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. Only the nu Unicode extension key, if requested, may be included in the output.\n

\n
style
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"long\", \"short\", or \"narrow\". The default is \"long\".\n

\n
numeric
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"always\" or \"auto\". The default is \"always\".\n

\n
numberingSystem
\n
\n

The value provided for this property in the options argument, or using the Unicode extension key \"nu\", with default filled in as needed. It is a supported numbering system for this locale. The default is locale dependent.\n

\n
" }, "intl.relativetimeformat.supportedlocalesof": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/relativetimeformat/supportedlocalesof", @@ -8591,7 +9016,7 @@ }, "doc": "The Intl.RelativeTimeFormat.supportedLocalesOf() static method returns an array containing those of the provided locales that are supported in relative time formatting without having to fall back to the runtime's default locale.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object that may have the following property:\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see the Intl page.\n

\n
" }, "returns": "An array of strings representing a subset of the given locale tags that are supported in relative time formatting without having to fall back to the runtime's default locale." @@ -8641,7 +9066,7 @@ "lowDate": "2024-04-16" }, "doc": "The resolvedOptions() method of Intl.Segmenter instances returns a new object with properties reflecting the options computed during initialization of this Segmenter object.", - "returns": "A new object with properties reflecting the options computed during the initialization of this Segmenter object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. No Unicode extension key will be included in the output.\n

\n
granularity
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"grapheme\", \"word\", or \"sentence\". The default is \"grapheme\".\n

\n
" + "returns": "A new object with properties reflecting the options computed during the initialization of this Segmenter object. The object has the following properties, in the order they are listed:\n
\n
locale
\n
\n

The BCP 47 language tag for the locale actually used, determined by the locale negotiation process. No Unicode extension key will be included in the output.\n

\n
granularity
\n
\n

The value provided for this property in the options argument, with default filled in as needed. It is either \"grapheme\", \"word\", or \"sentence\". The default is \"grapheme\".\n

\n
" }, "intl.segmenter.segment": { "url": "$MDN_URL$/web/javascript/reference/global_objects/intl/segmenter/segment", @@ -8722,7 +9147,7 @@ }, "doc": "The Intl.Segmenter() constructor creates Intl.Segmenter objects.", "parameters": { - "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag or an Intl.Locale instance, or an array of such locale identifiers. The runtime's default locale is used when undefined is passed or when none of the specified locale identifiers is supported. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object containing the following properties, in the order they are retrieved (all of them are optional):\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see Locale identification and negotiation.\n

\n
granularity
\n
\n

How granularly should the input be split. Possible values are:\n

\n
\"grapheme\" (default)
\n
\n

Split the input into segments at grapheme cluster (user-perceived character) boundaries, as determined by the locale.\n

\n
\"word\"
\n
\n

Split the input into segments at word boundaries, as determined by the locale.\n

\n
\"sentence\"
\n
\n

Split the input into segments at sentence boundaries, as determined by the locale.\n

\n
\n
\n
" }, "returns": "A new Intl.Segmenter instance.", @@ -8753,7 +9178,7 @@ }, "doc": "The Intl.Segmenter.supportedLocalesOf() static method returns an array containing those of the provided locales that are supported in segmentation without having to fall back to the runtime's default locale.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object that may have the following property:\n
\n
localeMatcher
\n
\n

The locale matching algorithm to use. Possible values are \"lookup\" and \"best fit\"; the default is \"best fit\". For information about this option, see the Intl page.\n

\n
" }, "returns": "An array of strings representing a subset of the given locale tags that are supported in segmentation without having to fall back to the runtime's default locale." @@ -8858,7 +9283,7 @@ "parameters": { "key": "A key string indicating the category of values to be returned. This is one of:\n" }, - "returns": "A sorted array of unique string values indicating the values supported by the implementation for the given key. The values that could be returned are listed below.\n

Supported calendar types

\n

Below are all values that are commonly supported by browsers for the calendar key. These values can be used for the calendar option or the ca Unicode extension key when creating objects such as Intl.DateTimeFormat, as well as for creating Temporal date objects.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
buddhistThai Buddhist calendar
chineseTraditional Chinese calendar
copticCoptic calendar
dangiTraditional Korean calendar
ethioaaEthiopic calendar, Amete Alem, single-era variant (epoch approx. 5493 B.C.E)
ethiopicEthiopic calendar, Amete Mihret, two-era variant (epoch approx, 8 C.E., Amete Alem for years before Amete Mihret)
gregoryGregorian calendar (proleptic, not Julian hybrid)
hebrewTraditional Hebrew calendar
indianIndian calendar
islamicHijri calendar, unspecified algorithm. Note: As of April 2025, this is an astronomical simulation whose parameters are undocumented and that is not known to match a specific Hijri calendar variant from non-software contexts. For well-specified results, use one of the three specific variants: islamic-umalqura, islamic-tbla, or islamic-civil.
islamic-umalquraHijri calendar, Umm al-Qura (uses KACST-calculated months from the start of 1300 AH to the end of 1600 AH and falls back to islamic-civil outside that range)
islamic-tblaHijri calendar, tabular/rule-based with leap year rule II (leap years 2,5,7,10,13,16,18,21,24,26,29 in the 30-year cycle (1-based numbering)) and Thursday/astronomical epoch (July 15, 622 Julian / 0622-07-18 ISO)
islamic-civilHijri calendar, tabular/rule-based with leap year rule II (leap years 2,5,7,10,13,16,18,21,24,26,29 in the 30-year cycle (1-based numbering)) and Friday/civil epoch (July 16, 622 Julian / 0622-07-19 ISO)
iso8601ISO calendar (variant of the Gregorian calendar with week rules and formatting parameters made region-independent)
japaneseJapanese Imperial calendar (this calendar adds an era for each new emperor, so the output year and era for a future date may not match the input year and era when your code runs on a future engine version)
persianPersian calendar
rocRepublic of China calendar
\n

The types below are specified in CLDR but do not have implementations distinct from the above calendars in browsers.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescriptionNotes
islamicc \nDeprecated\nCivil (algorithmic) Arabic calendar.This is an alias for islamic-civil and therefore is not returned by supportedValuesOf(). Use islamic-civil instead.
islamic-rgsaHijri calendar, Saudi Arabia sightingBrowsers do not have historical sighting data and future sightings have not occurred yet. As of April 2025, this calendar results in the same behavior as islamic. Use islamic-umalqura for a Mecca-based astronomical calculation.
\n

References:\n

\n

Supported collation types

\n

Below are all values that are commonly supported by browsers for the collation key. These values can be used for the collation option or the co Unicode extension key when creating objects such as Intl.Collator.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
compatA previous version of the ordering, for compatibility (for Arabic)
dictDictionary style ordering (such as in Sinhala). Also recognized as dictionary.
emojiRecommended ordering for emoji characters
eorEuropean ordering rules
phonebkPhonebook style ordering (such as in German). Also recognized as phonebook.
phoneticPhonetic ordering (sorting based on pronunciation; for Lingala)
pinyinPinyin ordering for Latin and for CJK characters (used in Chinese)
searchjlSpecial collation type for Korean initial consonant search. Warning: This collation is not for sorting, even though you can only use it with Intl.Collator of usage: \"sort\".
strokePinyin ordering for Latin, stroke order for CJK characters (used in Chinese)
tradTraditional style ordering (such as in Spanish). Also recognized as traditional.
unihanPinyin ordering for Latin, Unihan radical-stroke ordering for CJK characters (used in Chinese)
zhuyinPinyin ordering for Latin, zhuyin order for Bopomofo and CJK characters (used in Chinese)
\n

The types below are specified in CLDR data, but are deprecated, are discouraged from explicit usage, and/or may not be indicated by browsers as supported for various reasons. Avoid using them:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescriptionNotes
big5han \nDeprecated\nPinyin ordering for Latin, big5 charset ordering for CJK characters (used in Chinese)Deprecated.
direct \nDeprecated\nBinary code point order (used in Hindi)Deprecated.
ducetThe default Unicode collation element table orderThe ducet collation type is not available to the Web.
gb2312 \nDeprecated\nPinyin ordering for Latin, gb2312han charset ordering for CJK characters (for Chinese). Also recognized as gb2312han.Deprecated.
reformed \nDeprecated\nReformed ordering (such as Swedish)Deprecated. This is the old name for the default ordering for Swedish whose collation naming used to differ from other languages. Since this was the default, request sv instead of requesting sv-u-co-reformed.
searchSpecial collation type for string searchDo not use as a collation type, since in Intl.Collator, this collation is activated via the usage: \"search\" option. There is currently no API for substring search, so this is currently only good for filtering a list of strings by trying a full-string match of the key against each list item.
standardDefault ordering for each language, except Chinese (and, previously, Swedish)Do not use explicitly. In general, it's unnecessary to specify this explicitly and specifying this for Swedish is problematic due to the different meaning for Swedish in the past.
\n

References:\n

\n

Supported currency identifiers

\n

Currency identifiers are three-letter uppercase codes defined in ISO 4217. These values can be used for the currency option when creating objects such as Intl.NumberFormat, as well as for Intl.DisplayNames.prototype.of(). There are over 300 identifiers in common use so we won't list them. For an exhaustive list of possible identifiers, see the Wikipedia article.\n

References:\n

\n

Supported numbering system types

\n

Below are all values that are commonly supported by browsers for the numberingSystem key. These values can be used for the numberingSystem option or the nu Unicode extension key when creating objects such as Intl.NumberFormat. For the rows with \"digit characters\", the runtime translates the digits one-by-one without extra actions. The others marked as \"algorithmic\" need additional algorithms to translate the digits. The higher the Unicode code point is, the newer the numbering system is and the more likely it is unsupported by all browsers.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescriptionDigit characters
adlmAdlam digits𞥐𞥑𞥒𞥓𞥔𞥕𞥖𞥗𞥘𞥙 (U+1E950 to U+1E959)
ahomAhom digits𑜰𑜱𑜲𑜳𑜴𑜵𑜶𑜷𑜸𑜹 (U+11730 to U+11739)
arabArabic-Indic digits٠١٢٣٤٥٦٧٨٩ (U+0660 to U+0669)
arabextExtended Arabic-Indic digits۰۰۱۲۳۴۵۶۷۸۹ (U+06F0 to U+06F9)
armnArmenian upper case numeralsalgorithmic
armnlowArmenian lower case numeralsalgorithmic
baliBalinese digits᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙ (U+1B50 to U+1B59)
bengBengali digits০১২৩৪৫৬৭৮৯ (U+09E6 to U+09EF)
bhksBhaiksuki digits𑱐𑱑𑱒𑱓𑱔𑱕𑱖𑱗𑱘𑱙 (U+11C50 to U+11C59)
brahBrahmi digits𑁦𑁧𑁨𑁩𑁪𑁫𑁬𑁭𑁮𑁯 (U+11066 to U+1106F)
cakmChakma digits𑄶𑄷𑄸𑄹𑄺𑄻𑄼𑄽𑄾𑄿 (U+11136 to U+1113F)
chamCham digits꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙ (U+AA50 to U+AA59)
cyrlCyrillic numeralsalgorithmic
devaDevanagari digits०१२३४५६७८९ (U+0966 to U+096F)
diakDives Akuru digits𑥐𑥑𑥒𑥓𑥔𑥕𑥖𑥗𑥘𑥙 (U+11950 to U+11959)
ethiEthiopic numeralsalgorithmic
fullwideFull width digits0123456789 (U+FF10 to U+FF19)
garaGaray digits𐵀𐵁𐵂𐵃𐵄𐵅𐵆𐵇𐵈𐵉 (U+10D40 to U+10D49)
georGeorgian numeralsalgorithmic
gongGunjala Gondi digits𑶠𑶡𑶢𑶣𑶤𑶥𑶦𑶧𑶨𑶩 (U+11DA0 to U+11DA9)
gonmMasaram Gondi digits𑵐𑵑𑵒𑵓𑵔𑵕𑵖𑵗𑵘𑵙 (U+11D50 to U+11D59)
grekGreek upper case numeralsalgorithmic
greklowGreek lower case numeralsalgorithmic
gujrGujarati digits૦૧૨૩૪૫૬૭૮૯ (U+0AE6 to U+0AEF)
gukhGurung Khema digits𖄰𖄱𖄲𖄳𖄴𖄵𖄶𖄷𖄸𖄹 (U+16130 to U+16139)
guruGurmukhi digits੦੧੨੩੪੫੬੭੮੯ (U+0A66 to U+0A6F)
hanidaysHan-character day-of-month numbering for lunar/other traditional calendars
hanidecPositional decimal system using Chinese number ideographs as digits〇一二三四五六七八九 (U+3007, U+4E00, U+4E8C, U+4E09, U+56DB, U+4E94, U+516D, U+4E03, U+516B, U+4E5D)
hansSimplified Chinese numeralsalgorithmic
hansfinSimplified Chinese financial numeralsalgorithmic
hantTraditional Chinese numeralsalgorithmic
hantfinTraditional Chinese financial numeralsalgorithmic
hebrHebrew numeralsalgorithmic
hmngPahawh Hmong digits𖭐𖭑𖭒𖭓𖭔𖭕𖭖𖭗𖭘𖭙 (U+16B50 to U+16B59)
hmnpNyiakeng Puachue Hmong digits𞅀𞅁𞅂𞅃𞅄𞅅𞅆𞅇𞅈𞅉 (U+1E140 to U+1E149)
javaJavanese digits꧐꧑꧒꧓꧔꧕꧖꧗꧘꧙ (U+A9D0 to U+A9D9)
jpanJapanese numeralsalgorithmic
jpanfinJapanese financial numeralsalgorithmic
jpanyearJapanese first-year Gannen numbering for Japanese calendaralgorithmic
kaliKayah Li digits꤀꤁꤂꤃꤄꤅꤆꤇꤈꤉ (U+A900 to U+A909)
kawiKawi digits𑽐𑽑𑽒𑽓𑽔𑽕𑽖𑽗𑽘𑽙 (U+11F50 to U+11F59)
khmrKhmer digits០១២៣៤៥៦៧៨៩ (U+17E0 to U+17E9)
kndaKannada digits೦೧೨೩೪೫೬೭೮೯ (U+0CE6 to U+0CEF)
kraiKirat Rai digits𖵰𖵱𖵲𖵳𖵴𖵵𖵶𖵷𖵸𖵹 (U+16D70 to U+16D79)
lanaTai Tham Hora (secular) digits᪀᪁᪂᪃᪄᪅᪆᪇᪈᪉ (U+1A80 to U+1A89)
lanathamTai Tham (ecclesiastical) digits᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙ (U+1A90 to U+1A99)
laooLao digits໐໑໒໓໔໕໖໗໘໙ (U+0ED0 to U+0ED9)
latnLatin digits0123456789 (U+0030 to U+0039)
lepcLepcha digits᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ (U+1C40 to U+1C49)
limbLimbu digits᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ (U+1946 to U+194F)
mathboldMathematical bold digits𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗 (U+1D7CE to U+1D7D7)
mathdblMathematical double-struck digits𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡 (U+1D7D8 to U+1D7E1)
mathmonoMathematical monospace digits𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿 (U+1D7F6 to U+1D7FF)
mathsanbMathematical sans-serif bold digits𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵 (U+1D7EC to U+1D7F5)
mathsansMathematical sans-serif digits𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫 (U+1D7E2 to U+1D7EB)
mlymMalayalam digits൦൧൨൩൪൫൬൭൮൯ (U+0D66 to U+0D6F)
modiModi digits𑙐𑙑𑙒𑙓𑙔𑙕𑙖𑙗𑙘𑙙 (U+11650 to U+11659)
mongMongolian digits᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ (U+1810 to U+1819)
mrooMro digits𖩠𖩡𖩢𖩣𖩤𖩥𖩦𖩧𖩨𖩩 (U+16A60 to U+16A69)
mteiMeetei Mayek digits꯰꯱꯲꯳꯴꯵꯶꯷꯸꯹ (U+ABF0 to U+ABF9)
mymrMyanmar digits၀၁၂၃၄၅၆၇၈၉ (U+1040 to U+1049)
mymrepkaMyanmar Eastern Pwo Karen digits𑛚𑛛𑛜𑛝𑛞𑛟𑛠𑛡𑛢𑛣 (U+116DA to U+116E3)
mymrpaoMyanmar Pao digits𑛐𑛑𑛒𑛓𑛔𑛕𑛖𑛗𑛘𑛙 (U+116D0 to U+116D9)
mymrshanMyanmar Shan digits႐႑႒႓႔႕႖႗႘႙ (U+1090 to U+1099)
mymrtlngMyanmar Tai Laing digits꧰꧱꧲꧳꧴꧵꧶꧷꧸꧹ (U+A9F0 to U+A9F9)
nagmNag Mundari digits𞓰𞓱𞓲𞓳𞓴𞓵𞓶𞓷𞓸𞓹 (U+1E4F0 to U+1E4F9)
newaNewa digits𑑐𑑑𑑒𑑓𑑔𑑕𑑖𑑗𑑘𑑙 (U+11450 to U+11459)
nkooN'Ko digits߀߁߂߃߄߅߆߇߈߉ (U+07C0 to U+07C9)
olckOl Chiki digits᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ (U+1C50 to U+1C59)
onaoOl Onal digits𞗱𞗲𞗳𞗴𞗵𞗶𞗷𞗸𞗹𞗺 (U+1E5F1 to U+1E5FA)
oryaOriya digits୦୧୨୩୪୫୬୭୮୯ (U+0B66 to U+0B6F)
osmaOsmanya digits𐒠𐒡𐒢𐒣𐒤𐒥𐒦𐒧𐒨𐒩 (U+104A0 to U+104A9)
outlinedLegacy computing outlined digits𜳰𜳱𜳲𜳳𜳴𜳵𜳶𜳷𜳸𜳹 (U+1CCF0 to U+1CCF9)
rohgHanifi Rohingya digits𐴰𐴱𐴲𐴳𐴴𐴵𐴶𐴷𐴸𐴹 (U+10D30 to U+10D39)
romanRoman upper case numeralsalgorithmic
romanlowRoman lowercase numeralsalgorithmic
saurSaurashtra digits꣐꣑꣒꣓꣔꣕꣖꣗꣘꣙ (U+A8D0 to U+A8D9)
segmentLegacy computing segmented digits🯰🯱🯲🯳🯴🯵🯶🯷🯸🯹 (U+1FBF0 to U+1FBF9)
shrdSharada digits𑇐𑇑𑇒𑇓𑇔𑇕𑇖𑇗𑇘𑇙 (U+111D0 to U+111D9)
sindKhudawadi digits𑋰𑋱𑋲𑋳𑋴𑋵𑋶𑋷𑋸𑋹 (U+112F0 to U+112F9)
sinhSinhala Lith digits෦෧෨෩෪෫෬෭෮෯ (U+0DE6 to U+0DEF)
soraSora_Sompeng digits𑃰𑃱𑃲𑃳𑃴𑃵𑃶𑃷𑃸𑃹 (U+110F0 to U+110F9)
sundSundanese digits᮰᮱᮲᮳᮴᮵᮶᮷᮸᮹ (U+1BB0 to U+1BB9)
sunuSunuwar digits𑯰𑯱𑯲𑯳𑯴𑯵𑯶𑯷𑯸𑯹 (U+11BF0 to U+11BF9)
takrTakri digits𑛀𑛁𑛂𑛃𑛄𑛅𑛆𑛇𑛈𑛉 (U+116C0 to U+116C9)
taluNew Tai Lue digits᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙ (U+19D0 to U+19D9)
tamlTamil numeralsalgorithmic
tamldecModern Tamil decimal digits௦௧௨௩௪௫௬௭௮௯ (U+0BE6 to U+0BEF)
teluTelugu digits౦౧౨౩౪౫౬౭౮౯ (U+0C66 to U+0C6F)
thaiThai digits๐๑๒๓๔๕๖๗๘๙ (U+0E50 to U+0E59)
tibtTibetan digits༠༡༢༣༤༥༦༧༨༩ (U+0F20 to U+0F29)
tirhTirhuta digits𑓐𑓑𑓒𑓓𑓔𑓕𑓖𑓗𑓘𑓙 (U+114D0 to U+114D9)
tnsaTangsa digits𖫀𖫁𖫂𖫃𖫄𖫅𖫆𖫇𖫈𖫉 (U+16AC0 to U+16AC9)
vaiiVai digits꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩ (U+A620 to U+A629)
waraWarang Citi digits𑣠𑣡𑣢𑣣𑣤𑣥𑣦𑣧𑣨𑣩 (U+118E0 to U+118E9)
wchoWancho digits𞋰𞋱𞋲𞋳𞋴𞋵𞋶𞋷𞋸𞋹 (U+1E2F0 to U+1E2F9)
\n

There are three special values: native, traditio, and finance, whose meanings are locale-dependent, and will be resolved to the right system depending on the locale. Therefore, the resolvedOptions() methods will never return these values, but Intl.Locale.prototype.numberingSystem will (if provided as input).\n

References:\n

\n

Supported time zone identifiers

\n

Supported time zone identifiers can be used for the timeZone option when creating objects such as Intl.DateTimeFormat, as well as for creating Temporal date objects. There are over 400 identifiers in common use so we won't list them. For an exhaustive list of possible identifiers, see the Wikipedia article or the IANA time zone database.\n

As you browse the list, note that the standardization of Temporal requires browsers to always return the primary identifier in the IANA database, which may change over time. See time zones and offsets for more information. For example, the returned array should contain \"Asia/Kolkata\" instead of \"Asia/Calcutta\" because the latter is an alias of the former and they both correspond to India; however, it should contain both \"Africa/Abidjan\" and \"Atlantic/Reykjavik\" because they are in different countries, despite the latter also being an alias of the former.\n

References:\n

\n

Supported unit identifiers

\n

Below are all values that are commonly supported by browsers for the unit key. These values can be used for the unit option when creating objects such as Intl.NumberFormat. This list is a subset of the CLDR explicitly sanctioned by the ECMA-402 specification, so all implementations should be consistent.\n

    \n
  • acre
  • \n
  • bit
  • \n
  • byte
  • \n
  • celsius
  • \n
  • centimeter
  • \n
  • day
  • \n
  • degree
  • \n
  • fahrenheit
  • \n
  • fluid-ounce
  • \n
  • foot
  • \n
  • gallon
  • \n
  • gigabit
  • \n
  • gigabyte
  • \n
  • gram
  • \n
  • hectare
  • \n
  • hour
  • \n
  • inch
  • \n
  • kilobit
  • \n
  • kilobyte
  • \n
  • kilogram
  • \n
  • kilometer
  • \n
  • liter
  • \n
  • megabit
  • \n
  • megabyte
  • \n
  • meter
  • \n
  • microsecond
  • \n
  • mile
  • \n
  • mile-scandinavian
  • \n
  • milliliter
  • \n
  • millimeter
  • \n
  • millisecond
  • \n
  • minute
  • \n
  • month
  • \n
  • nanosecond
  • \n
  • ounce
  • \n
  • percent
  • \n
  • petabyte
  • \n
  • pound
  • \n
  • second
  • \n
  • stone
  • \n
  • terabit
  • \n
  • terabyte
  • \n
  • week
  • \n
  • yard
  • \n
  • year
  • \n
\n

When specifying units, you can also combine two units with the \"-per-\" separator. For example, meter-per-second or liter-per-megabyte.\n

References:\n

", + "returns": "A sorted array of unique string values indicating the values supported by the implementation for the given key. The values that could be returned are listed below.\n

Supported calendar types

\n

Below are all values that are commonly supported by browsers for the calendar key. These values can be used for the calendar option or the ca Unicode extension key when creating objects such as Intl.DateTimeFormat, as well as for creating Temporal date objects.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
buddhistThai Buddhist calendar
chineseTraditional Chinese calendar
copticCoptic calendar
dangiTraditional Korean calendar
ethioaaEthiopic calendar, Amete Alem, single-era variant (epoch approx. 5493 B.C.E)
ethiopicEthiopic calendar, Amete Mihret, two-era variant (epoch approx, 8 C.E., Amete Alem for years before Amete Mihret)
gregoryGregorian calendar (proleptic, not Julian hybrid)
hebrewTraditional Hebrew calendar
indianIndian calendar
islamicHijri calendar, unspecified algorithm. Note: As of April 2025, this is an astronomical simulation whose parameters are undocumented and that is not known to match a specific Hijri calendar variant from non-software contexts. For well-specified results, use one of the three specific variants: islamic-umalqura, islamic-tbla, or islamic-civil.
islamic-umalquraHijri calendar, Umm al-Qura (uses KACST-calculated months from the start of 1300 AH (1882-11-12 ISO) to the end of 1600 AH (2174-11-25 ISO) and falls back to islamic-civil outside that range)
islamic-tblaHijri calendar, tabular/rule-based with leap year rule II (leap years 2,5,7,10,13,16,18,21,24,26,29 in the 30-year cycle (1-based numbering)) and Thursday/astronomical epoch (July 15, 622 Julian / 0622-07-18 ISO)
islamic-civilHijri calendar, tabular/rule-based with leap year rule II (leap years 2,5,7,10,13,16,18,21,24,26,29 in the 30-year cycle (1-based numbering)) and Friday/civil epoch (July 16, 622 Julian / 0622-07-19 ISO)
iso8601ISO calendar (variant of the Gregorian calendar with week rules and formatting parameters made region-independent)
japaneseJapanese Imperial calendar (this calendar adds an era for each new emperor, so the output year and era for a future date may not match the input year and era when your code runs on a future engine version)
persianPersian calendar
rocRepublic of China calendar
\n

The types below are specified in CLDR but do not have implementations distinct from the above calendars in browsers.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescriptionNotes
islamicc \nDeprecated\nCivil (algorithmic) Arabic calendar.This is an alias for islamic-civil and therefore is not returned by supportedValuesOf(). Use islamic-civil instead.
islamic-rgsaHijri calendar, Saudi Arabia sightingBrowsers do not have historical sighting data and future sightings have not occurred yet. As of April 2025, this calendar results in the same behavior as islamic. Use islamic-umalqura for a Mecca-based astronomical calculation.
\n

References:\n

\n

Supported collation types

\n

Below are all values that are commonly supported by browsers for the collation key. These values can be used for the collation option or the co Unicode extension key when creating objects such as Intl.Collator.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
compatA previous version of the ordering, for compatibility (for Arabic)
dictDictionary style ordering (such as in Sinhala). Also recognized as dictionary.
emojiRecommended ordering for emoji characters
eorEuropean ordering rules
phonebkPhonebook style ordering (such as in German). Also recognized as phonebook.
phoneticPhonetic ordering (sorting based on pronunciation; for Lingala)
pinyinPinyin ordering for Latin and for CJK characters (used in Chinese)
searchjlSpecial collation type for Korean initial consonant search. Warning: This collation is not for sorting, even though you can only use it with Intl.Collator of usage: \"sort\".
strokePinyin ordering for Latin, stroke order for CJK characters (used in Chinese)
tradTraditional style ordering (such as in Spanish). Also recognized as traditional.
unihanPinyin ordering for Latin, Unihan radical-stroke ordering for CJK characters (used in Chinese)
zhuyinPinyin ordering for Latin, zhuyin order for Bopomofo and CJK characters (used in Chinese)
\n

The types below are specified in CLDR data, but are deprecated, are discouraged from explicit usage, and/or may not be indicated by browsers as supported for various reasons. Avoid using them:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescriptionNotes
big5han \nDeprecated\nPinyin ordering for Latin, big5 charset ordering for CJK characters (used in Chinese)Deprecated.
direct \nDeprecated\nBinary code point order (used in Hindi)Deprecated.
ducetThe default Unicode collation element table orderThe ducet collation type is not available to the Web.
gb2312 \nDeprecated\nPinyin ordering for Latin, gb2312han charset ordering for CJK characters (for Chinese). Also recognized as gb2312han.Deprecated.
reformed \nDeprecated\nReformed ordering (such as Swedish)Deprecated. This is the old name for the default ordering for Swedish whose collation naming used to differ from other languages. Since this was the default, request sv instead of requesting sv-u-co-reformed.
searchSpecial collation type for string searchDo not use as a collation type, since in Intl.Collator, this collation is activated via the usage: \"search\" option. There is currently no API for substring search, so this is currently only good for filtering a list of strings by trying a full-string match of the key against each list item.
standardDefault ordering for each language, except Chinese (and, previously, Swedish)Do not use explicitly. In general, it's unnecessary to specify this explicitly and specifying this for Swedish is problematic due to the different meaning for Swedish in the past.
\n

References:\n

\n

Supported currency identifiers

\n

Currency identifiers are three-letter uppercase codes defined in ISO 4217. These values can be used for the currency option when creating objects such as Intl.NumberFormat, as well as for Intl.DisplayNames.prototype.of(). There are over 300 identifiers in common use so we won't list them. For an exhaustive list of possible identifiers, see the Wikipedia article.\n

References:\n

\n

Supported numbering system types

\n

Below are all values that are commonly supported by browsers for the numberingSystem key. These values can be used for the numberingSystem option or the nu Unicode extension key when creating objects such as Intl.NumberFormat. For the rows with \"digit characters\", the runtime translates the digits one-by-one without extra actions. The others marked as \"algorithmic\" need additional algorithms to translate the digits. The higher the Unicode code point is, the newer the numbering system is and the more likely it is unsupported by all browsers.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescriptionDigit characters
adlmAdlam digits𞥐𞥑𞥒𞥓𞥔𞥕𞥖𞥗𞥘𞥙 (U+1E950 to U+1E959)
ahomAhom digits𑜰𑜱𑜲𑜳𑜴𑜵𑜶𑜷𑜸𑜹 (U+11730 to U+11739)
arabArabic-Indic digits٠١٢٣٤٥٦٧٨٩ (U+0660 to U+0669)
arabextExtended Arabic-Indic digits۰۰۱۲۳۴۵۶۷۸۹ (U+06F0 to U+06F9)
armnArmenian upper case numeralsalgorithmic
armnlowArmenian lower case numeralsalgorithmic
baliBalinese digits᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙ (U+1B50 to U+1B59)
bengBengali digits০১২৩৪৫৬৭৮৯ (U+09E6 to U+09EF)
bhksBhaiksuki digits𑱐𑱑𑱒𑱓𑱔𑱕𑱖𑱗𑱘𑱙 (U+11C50 to U+11C59)
brahBrahmi digits𑁦𑁧𑁨𑁩𑁪𑁫𑁬𑁭𑁮𑁯 (U+11066 to U+1106F)
cakmChakma digits𑄶𑄷𑄸𑄹𑄺𑄻𑄼𑄽𑄾𑄿 (U+11136 to U+1113F)
chamCham digits꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙ (U+AA50 to U+AA59)
cyrlCyrillic numeralsalgorithmic
devaDevanagari digits०१२३४५६७८९ (U+0966 to U+096F)
diakDives Akuru digits𑥐𑥑𑥒𑥓𑥔𑥕𑥖𑥗𑥘𑥙 (U+11950 to U+11959)
ethiEthiopic numeralsalgorithmic
fullwideFull width digits0123456789 (U+FF10 to U+FF19)
garaGaray digits𐵀𐵁𐵂𐵃𐵄𐵅𐵆𐵇𐵈𐵉 (U+10D40 to U+10D49)
georGeorgian numeralsalgorithmic
gongGunjala Gondi digits𑶠𑶡𑶢𑶣𑶤𑶥𑶦𑶧𑶨𑶩 (U+11DA0 to U+11DA9)
gonmMasaram Gondi digits𑵐𑵑𑵒𑵓𑵔𑵕𑵖𑵗𑵘𑵙 (U+11D50 to U+11D59)
grekGreek upper case numeralsalgorithmic
greklowGreek lower case numeralsalgorithmic
gujrGujarati digits૦૧૨૩૪૫૬૭૮૯ (U+0AE6 to U+0AEF)
gukhGurung Khema digits𖄰𖄱𖄲𖄳𖄴𖄵𖄶𖄷𖄸𖄹 (U+16130 to U+16139)
guruGurmukhi digits੦੧੨੩੪੫੬੭੮੯ (U+0A66 to U+0A6F)
hanidaysHan-character day-of-month numbering for lunar/other traditional calendars
hanidecPositional decimal system using Chinese number ideographs as digits〇一二三四五六七八九 (U+3007, U+4E00, U+4E8C, U+4E09, U+56DB, U+4E94, U+516D, U+4E03, U+516B, U+4E5D)
hansSimplified Chinese numeralsalgorithmic
hansfinSimplified Chinese financial numeralsalgorithmic
hantTraditional Chinese numeralsalgorithmic
hantfinTraditional Chinese financial numeralsalgorithmic
hebrHebrew numeralsalgorithmic
hmngPahawh Hmong digits𖭐𖭑𖭒𖭓𖭔𖭕𖭖𖭗𖭘𖭙 (U+16B50 to U+16B59)
hmnpNyiakeng Puachue Hmong digits𞅀𞅁𞅂𞅃𞅄𞅅𞅆𞅇𞅈𞅉 (U+1E140 to U+1E149)
javaJavanese digits꧐꧑꧒꧓꧔꧕꧖꧗꧘꧙ (U+A9D0 to U+A9D9)
jpanJapanese numeralsalgorithmic
jpanfinJapanese financial numeralsalgorithmic
jpanyearJapanese first-year Gannen numbering for Japanese calendaralgorithmic
kaliKayah Li digits꤀꤁꤂꤃꤄꤅꤆꤇꤈꤉ (U+A900 to U+A909)
kawiKawi digits𑽐𑽑𑽒𑽓𑽔𑽕𑽖𑽗𑽘𑽙 (U+11F50 to U+11F59)
khmrKhmer digits០១២៣៤៥៦៧៨៩ (U+17E0 to U+17E9)
kndaKannada digits೦೧೨೩೪೫೬೭೮೯ (U+0CE6 to U+0CEF)
kraiKirat Rai digits𖵰𖵱𖵲𖵳𖵴𖵵𖵶𖵷𖵸𖵹 (U+16D70 to U+16D79)
lanaTai Tham Hora (secular) digits᪀᪁᪂᪃᪄᪅᪆᪇᪈᪉ (U+1A80 to U+1A89)
lanathamTai Tham (ecclesiastical) digits᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙ (U+1A90 to U+1A99)
laooLao digits໐໑໒໓໔໕໖໗໘໙ (U+0ED0 to U+0ED9)
latnLatin digits0123456789 (U+0030 to U+0039)
lepcLepcha digits᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ (U+1C40 to U+1C49)
limbLimbu digits᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ (U+1946 to U+194F)
mathboldMathematical bold digits𝟎𝟏𝟐𝟑𝟒𝟓𝟔𝟕𝟖𝟗 (U+1D7CE to U+1D7D7)
mathdblMathematical double-struck digits𝟘𝟙𝟚𝟛𝟜𝟝𝟞𝟟𝟠𝟡 (U+1D7D8 to U+1D7E1)
mathmonoMathematical monospace digits𝟶𝟷𝟸𝟹𝟺𝟻𝟼𝟽𝟾𝟿 (U+1D7F6 to U+1D7FF)
mathsanbMathematical sans-serif bold digits𝟬𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵 (U+1D7EC to U+1D7F5)
mathsansMathematical sans-serif digits𝟢𝟣𝟤𝟥𝟦𝟧𝟨𝟩𝟪𝟫 (U+1D7E2 to U+1D7EB)
mlymMalayalam digits൦൧൨൩൪൫൬൭൮൯ (U+0D66 to U+0D6F)
modiModi digits𑙐𑙑𑙒𑙓𑙔𑙕𑙖𑙗𑙘𑙙 (U+11650 to U+11659)
mongMongolian digits᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ (U+1810 to U+1819)
mrooMro digits𖩠𖩡𖩢𖩣𖩤𖩥𖩦𖩧𖩨𖩩 (U+16A60 to U+16A69)
mteiMeetei Mayek digits꯰꯱꯲꯳꯴꯵꯶꯷꯸꯹ (U+ABF0 to U+ABF9)
mymrMyanmar digits၀၁၂၃၄၅၆၇၈၉ (U+1040 to U+1049)
mymrepkaMyanmar Eastern Pwo Karen digits𑛚𑛛𑛜𑛝𑛞𑛟𑛠𑛡𑛢𑛣 (U+116DA to U+116E3)
mymrpaoMyanmar Pao digits𑛐𑛑𑛒𑛓𑛔𑛕𑛖𑛗𑛘𑛙 (U+116D0 to U+116D9)
mymrshanMyanmar Shan digits႐႑႒႓႔႕႖႗႘႙ (U+1090 to U+1099)
mymrtlngMyanmar Tai Laing digits꧰꧱꧲꧳꧴꧵꧶꧷꧸꧹ (U+A9F0 to U+A9F9)
nagmNag Mundari digits𞓰𞓱𞓲𞓳𞓴𞓵𞓶𞓷𞓸𞓹 (U+1E4F0 to U+1E4F9)
newaNewa digits𑑐𑑑𑑒𑑓𑑔𑑕𑑖𑑗𑑘𑑙 (U+11450 to U+11459)
nkooN'Ko digits߀߁߂߃߄߅߆߇߈߉ (U+07C0 to U+07C9)
olckOl Chiki digits᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ (U+1C50 to U+1C59)
onaoOl Onal digits𞗱𞗲𞗳𞗴𞗵𞗶𞗷𞗸𞗹𞗺 (U+1E5F1 to U+1E5FA)
oryaOriya digits୦୧୨୩୪୫୬୭୮୯ (U+0B66 to U+0B6F)
osmaOsmanya digits𐒠𐒡𐒢𐒣𐒤𐒥𐒦𐒧𐒨𐒩 (U+104A0 to U+104A9)
outlinedLegacy computing outlined digits𜳰𜳱𜳲𜳳𜳴𜳵𜳶𜳷𜳸𜳹 (U+1CCF0 to U+1CCF9)
rohgHanifi Rohingya digits𐴰𐴱𐴲𐴳𐴴𐴵𐴶𐴷𐴸𐴹 (U+10D30 to U+10D39)
romanRoman upper case numeralsalgorithmic
romanlowRoman lowercase numeralsalgorithmic
saurSaurashtra digits꣐꣑꣒꣓꣔꣕꣖꣗꣘꣙ (U+A8D0 to U+A8D9)
segmentLegacy computing segmented digits🯰🯱🯲🯳🯴🯵🯶🯷🯸🯹 (U+1FBF0 to U+1FBF9)
shrdSharada digits𑇐𑇑𑇒𑇓𑇔𑇕𑇖𑇗𑇘𑇙 (U+111D0 to U+111D9)
sindKhudawadi digits𑋰𑋱𑋲𑋳𑋴𑋵𑋶𑋷𑋸𑋹 (U+112F0 to U+112F9)
sinhSinhala Lith digits෦෧෨෩෪෫෬෭෮෯ (U+0DE6 to U+0DEF)
soraSora_Sompeng digits𑃰𑃱𑃲𑃳𑃴𑃵𑃶𑃷𑃸𑃹 (U+110F0 to U+110F9)
sundSundanese digits᮰᮱᮲᮳᮴᮵᮶᮷᮸᮹ (U+1BB0 to U+1BB9)
sunuSunuwar digits𑯰𑯱𑯲𑯳𑯴𑯵𑯶𑯷𑯸𑯹 (U+11BF0 to U+11BF9)
takrTakri digits𑛀𑛁𑛂𑛃𑛄𑛅𑛆𑛇𑛈𑛉 (U+116C0 to U+116C9)
taluNew Tai Lue digits᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙ (U+19D0 to U+19D9)
tamlTamil numeralsalgorithmic
tamldecModern Tamil decimal digits௦௧௨௩௪௫௬௭௮௯ (U+0BE6 to U+0BEF)
teluTelugu digits౦౧౨౩౪౫౬౭౮౯ (U+0C66 to U+0C6F)
thaiThai digits๐๑๒๓๔๕๖๗๘๙ (U+0E50 to U+0E59)
tibtTibetan digits༠༡༢༣༤༥༦༧༨༩ (U+0F20 to U+0F29)
tirhTirhuta digits𑓐𑓑𑓒𑓓𑓔𑓕𑓖𑓗𑓘𑓙 (U+114D0 to U+114D9)
tnsaTangsa digits𖫀𖫁𖫂𖫃𖫄𖫅𖫆𖫇𖫈𖫉 (U+16AC0 to U+16AC9)
vaiiVai digits꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩ (U+A620 to U+A629)
waraWarang Citi digits𑣠𑣡𑣢𑣣𑣤𑣥𑣦𑣧𑣨𑣩 (U+118E0 to U+118E9)
wchoWancho digits𞋰𞋱𞋲𞋳𞋴𞋵𞋶𞋷𞋸𞋹 (U+1E2F0 to U+1E2F9)
\n

There are three special values: native, traditio, and finance, whose meanings are locale-dependent, and will be resolved to the right system depending on the locale. Therefore, the resolvedOptions() methods will never return these values, but Intl.Locale.prototype.numberingSystem will (if provided as input).\n

References:\n

\n

Supported time zone identifiers

\n

Supported time zone identifiers can be used for the timeZone option when creating objects such as Intl.DateTimeFormat, as well as for creating Temporal date objects. There are over 400 identifiers in common use so we won't list them. For an exhaustive list of possible identifiers, see the Wikipedia article or the IANA time zone database.\n

As you browse the list, note that the standardization of Temporal requires browsers to always return the primary identifier in the IANA database, which may change over time. See time zones and offsets for more information. For example, the returned array should contain \"Asia/Kolkata\" instead of \"Asia/Calcutta\" because the latter is an alias of the former and they both correspond to India; however, it should contain both \"Africa/Abidjan\" and \"Atlantic/Reykjavik\" because they are in different countries, despite the latter also being an alias of the former.\n

References:\n

\n

Supported unit identifiers

\n

Below are all values that are commonly supported by browsers for the unit key. These values can be used for the unit option when creating objects such as Intl.NumberFormat. This list is a subset of the CLDR explicitly sanctioned by the ECMA-402 specification, so all implementations should be consistent.\n

    \n
  • acre
  • \n
  • bit
  • \n
  • byte
  • \n
  • celsius
  • \n
  • centimeter
  • \n
  • day
  • \n
  • degree
  • \n
  • fahrenheit
  • \n
  • fluid-ounce
  • \n
  • foot
  • \n
  • gallon
  • \n
  • gigabit
  • \n
  • gigabyte
  • \n
  • gram
  • \n
  • hectare
  • \n
  • hour
  • \n
  • inch
  • \n
  • kilobit
  • \n
  • kilobyte
  • \n
  • kilogram
  • \n
  • kilometer
  • \n
  • liter
  • \n
  • megabit
  • \n
  • megabyte
  • \n
  • meter
  • \n
  • microsecond
  • \n
  • mile
  • \n
  • mile-scandinavian
  • \n
  • milliliter
  • \n
  • millimeter
  • \n
  • millisecond
  • \n
  • minute
  • \n
  • month
  • \n
  • nanosecond
  • \n
  • ounce
  • \n
  • percent
  • \n
  • petabyte
  • \n
  • pound
  • \n
  • second
  • \n
  • stone
  • \n
  • terabit
  • \n
  • terabyte
  • \n
  • week
  • \n
  • yard
  • \n
  • year
  • \n
\n

When specifying units, you can also combine two units with the \"-per-\" separator. For example, meter-per-second or liter-per-megabyte.\n

References:\n

", "throws": { "RangeError": "Thrown if an unsupported key was passed as a parameter." } @@ -9250,6 +9675,14 @@ }, "returns": "true if the callback function returns a truthy value for at least one element. Otherwise, false." }, + "iterator.symbol.dispose": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/iterator/symbol.dispose", + "baseline": { + "level": "NONE" + }, + "doc": "The [Symbol.dispose]() method of Iterator instances implements the disposable protocol and allows it to be disposed when used with using. It calls the return() method of this, if it exists.", + "returns": "None (undefined)." + }, "iterator.symbol.iterator": { "url": "$MDN_URL$/web/javascript/reference/global_objects/iterator/symbol.iterator", "status": [ @@ -9431,7 +9864,7 @@ "parameters": { "string": "The JSON text. Must be valid JSON representing a primitive value." }, - "returns": "An object that can be used to create JSON text with the exact same content as the string provided, without quotes around the string itself. This object has null prototype and is frozen (so it never gets accidentally serialized as a regular object by any kind of primitive conversion), and the following property:\n
\n
rawJSON
\n
\n

The original JSON string provided.\n

\n
\n

Furthermore, it has a private property that marks itself as a raw JSON object. This allows it to be identified by JSON.stringify() and JSON.isRawJSON().", + "returns": "An object that can be used to create JSON text with the exact same content as the string provided, without quotes around the string itself. This object has null prototype and is frozen (so it never gets accidentally serialized as a regular object by any kind of primitive conversion), and the following property:\n

\n
rawJSON
\n
\n

The original JSON string provided.\n

\n
\n

Furthermore, it has a private field that marks itself as a raw JSON object. This allows it to be identified by JSON.stringify() and JSON.isRawJSON().", "throws": { "SyntaxError": "Thrown if the string is not valid JSON, or if it represents an object or array." } @@ -9540,11 +9973,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The delete() method of Map instances removes the specified element from this map by\nkey.", + "doc": "The delete() method of Map instances removes the entry specified by the key from this Map.", "parameters": { - "key": "The key of the element to remove from the Map object." + "key": "The key of the entry to remove from the Map object. Object keys are compared by reference, not by value." }, - "returns": "true if an element in the Map object existed and has been removed, or\nfalse if the element does not exist." + "returns": "true if an entry in the Map object has been removed successfully. false if the key is not found in the Map." }, "map.entries": { "url": "$MDN_URL$/web/javascript/reference/global_objects/map/entries", @@ -9622,11 +10055,51 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The get() method of Map instances returns a specified element from this map. If the\nvalue that is associated to the provided key is an object, then you will get a\nreference to that object and any change made to that object will effectively\nmodify it inside the Map object.", + "doc": "The get() method of Map instances returns the value corresponding to the key in this Map, or undefined if there is none. Object values are returned as the same reference that was originally stored, not as a copy, so mutations to the returned object will be reflected anywhere that reference is held, including inside the Map.", "parameters": { - "key": "The key of the element to return from the Map object." + "key": "The key of the value to return from the Map object. Object keys are compared by reference, not by value." }, - "returns": "The element associated with the specified key, or\nundefined if the key can't be found in the Map object." + "returns": "The value associated with the specified key in the Map object. If the key can't be found, undefined is returned." + }, + "map.getorinsert": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/map/getorinsert", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Firefox": "144", + "FirefoxAndroid": "144" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The getOrInsert() method of Map instances returns the value corresponding to the specified key in this Map. If the key is not present, it inserts a new entry with the key and a given default value, and returns the inserted value.\n

If the computation of the default value is expensive, consider using Map.prototype.getOrInsertComputed() instead, which takes a callback to compute the default value only if it's actually needed.", + "parameters": { + "key": "The key of the value to return from the Map object. Object keys are compared by reference, not by value.", + "defaultValue": "The value to insert and return if the key is not already present in the Map object." + }, + "returns": "The value associated with the specified key in the Map object. If the key can't be found, defaultValue is inserted and returned." + }, + "map.getorinsertcomputed": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/map/getorinsertcomputed", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Firefox": "144", + "FirefoxAndroid": "144" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The getOrInsertComputed() method of Map instances returns the value corresponding to the specified key in this Map. If the key is not present, it inserts a new entry with the key and a default value computed from a given callback, and returns the inserted value.\n

Use this method instead of Map.prototype.getOrInsert() when the default value is expensive to compute, and you want to avoid computing it unless it's actually needed.", + "parameters": { + "key": "The key of the element to return from the Map object. Object keys are compared by reference, not by value.", + "callback": "A function that returns the value to insert and return if the key is not already present in the Map object. The function is called with the following argument:\n

\n
key
\n
\n

The same key that was passed to getOrInsertComputed().\n

\n
" + }, + "returns": "The value associated with the specified key in the Map object. If the key can't be found, the result of callback(key) is inserted and returned." }, "map.groupby": { "url": "$MDN_URL$/web/javascript/reference/global_objects/map/groupby", @@ -9678,11 +10151,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The has() method of Map instances returns a boolean indicating whether an element with the\nspecified key exists in this map or not.", + "doc": "The has() method of WeakMap instances returns a boolean indicating whether an entry with the specified key exists in this WeakMap or not.", "parameters": { - "key": "The key of the element to test for presence in the Map object." + "key": "The key of the entry to test for presence in the Map object. Object keys are compared by reference, not by value." }, - "returns": "true if an element with the specified key exists in the Map object;\notherwise false." + "returns": "Returns true if an entry with the specified key exists in the Map object; otherwise false." }, "map.keys": { "url": "$MDN_URL$/web/javascript/reference/global_objects/map/keys", @@ -9733,7 +10206,7 @@ }, "doc": "The Map() constructor creates Map objects.", "parameters": { - "iterable": "An Array or other\niterable object\nwhose elements are key-value pairs. (For example, arrays with two elements,\nsuch as [[ 1, 'one' ],[ 2, 'two' ]].) Each key-value pair is added to the\nnew Map." + "iterable": "If an iterable object (such as an array) is passed, all of its elements will be added to the new Map. Each element must be an object with two properties: 0 and 1, which correspond to the key and value (for example, [[1, \"one\"],[2, \"two\"]]). If you don't specify this parameter, or its value is null or undefined, the new Map is empty." } }, "map.set": { @@ -9758,10 +10231,10 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The set() method of Map instances adds or updates an entry in this map with a specified key and a value.", + "doc": "The set() method of Map instances adds a new entry with a specified key and value to this Map, or updates an existing entry if the key already exists.", "parameters": { - "key": "The key of the element to add to the Map object. The key may be any JavaScript type (any primitive value or any type of JavaScript object).", - "value": "The value of the element to add to the Map object. The value may be any JavaScript type (any primitive value or any type of JavaScript object)." + "key": "The key of the entry to add to or modify within the Map object. Can be any value. Object keys are compared by reference, not by value.", + "value": "The value of the entry to add to or modify within the Map object. Can be any value." }, "returns": "The Map object." }, @@ -10811,7 +11284,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The Math.random() static method returns a floating-point, pseudo-random number that's greater than or equal to 0 and less than 1, with approximately uniform distribution over that range — which you can then scale to your desired range. The implementation selects the initial seed to the random number generation algorithm; it cannot be chosen or reset by the user.\n
\n

Note: Math.random() does not provide cryptographically secure random numbers. Do not use them for anything related to security. Use the Web Crypto API instead, and more precisely the Crypto.getRandomValues() method.\n

", + "doc": "The Math.random() static method returns a floating-point, pseudo-random number that's greater than or equal to 0 and less than 1, with approximately uniform distribution over that range — which you can then scale to your desired range. The implementation selects the initial seed to the random number generation algorithm; it cannot be chosen or reset by the user.\n
\n

Note:\nMath.random() does not provide cryptographically secure random numbers. Do not use them for anything related to security. Use the Web Crypto API instead, and more precisely the Crypto.getRandomValues() method.\n

", "returns": "A floating-point, pseudo-random number between 0 (inclusive) and 1 (exclusive)." }, "math.round": { @@ -10981,15 +11454,16 @@ "math.sumprecise": { "url": "$MDN_URL$/web/javascript/reference/global_objects/math/sumprecise", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Firefox": "137", - "FirefoxAndroid": "137", - "Safari": "preview" + "FirefoxAndroid": "137" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Math.sumPrecise() static method takes an iterable of numbers and returns the sum of them. It is more precise than summing them up in a loop, because it avoids floating point precision loss in intermediate results.", + "baseline": { + "level": "NONE" + }, + "doc": "The Math.sumPrecise() static method takes an iterable of numbers and returns the sum of them. It is more precise than summing them up in a loop, because it avoids floating point precision loss in intermediate results.", "parameters": { "numbers": "An iterable (such as an Array) of numbers." }, @@ -11463,7 +11937,7 @@ }, "doc": "The toLocaleString() method of Number values returns a string with a language-sensitive representation of this number. In implementations with Intl.NumberFormat API support, this method delegates to Intl.NumberFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.NumberFormat object and use its format() method, because a NumberFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.NumberFormat() constructor.\n

In implementations without Intl.NumberFormat support, this parameter is ignored and the host's locale is usually used.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.NumberFormat() constructor.\n

In implementations without Intl.NumberFormat support, this parameter is ignored and the host's locale is usually used.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.NumberFormat() constructor.\n

In implementations without Intl.NumberFormat support, this parameter is ignored." }, "returns": "A string representing the given number according to language-specific conventions.\n

In implementations with Intl.NumberFormat, this is equivalent to new Intl.NumberFormat(locales, options).format(number).\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

" @@ -12107,12 +12581,12 @@ "lowDate": "2022-03-14", "highDate": "2024-09-14" }, - "doc": "The Object.hasOwn() static method returns true if the specified object has the indicated property as its own property.\nIf the property is inherited, or does not exist, the method returns false.\n
\n

Note: Object.hasOwn() is intended as a replacement for Object.prototype.hasOwnProperty().\n

", + "doc": "The Object.hasOwn() static method returns true if the specified object has the indicated property as its own property. If the property is inherited, or does not exist, the method returns false.\n
\n

Note:\nObject.hasOwn() is intended as a replacement for Object.prototype.hasOwnProperty().\n

", "parameters": { "obj": "The JavaScript object instance to test.", "prop": "The String name or Symbol of the property to test." }, - "returns": "true if the specified object has directly defined the specified property.\nOtherwise false" + "returns": "true if the specified object has directly defined the specified property. Otherwise false" }, "object.hasownproperty": { "url": "$MDN_URL$/web/javascript/reference/global_objects/object/hasownproperty", @@ -12136,7 +12610,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The hasOwnProperty() method of Object instances returns a boolean indicating whether this\nobject has the specified property as its own property (as opposed to inheriting\nit).\n
\n

Note: Object.hasOwn() is recommended over\nhasOwnProperty(), in browsers where it is supported.\n

", + "doc": "The hasOwnProperty() method of Object instances returns a boolean indicating whether this\nobject has the specified property as its own property (as opposed to inheriting\nit).\n
\n

Note:\nObject.hasOwn() is recommended over\nhasOwnProperty(), in browsers where it is supported.\n

", "parameters": { "prop": "The String name or Symbol of the property to test." }, @@ -12249,7 +12723,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The isPrototypeOf() method of Object instances checks if this object exists in another object's prototype chain.\n
\n

Note: isPrototypeOf() differs from the instanceof operator. In the expression object instanceof AFunction, object's prototype chain is checked against AFunction.prototype, not against AFunction itself.\n

", + "doc": "The isPrototypeOf() method of Object instances checks if this object exists in another object's prototype chain.\n
\n

Note:\nisPrototypeOf() differs from the instanceof operator. In the expression object instanceof AFunction, object's prototype chain is checked against AFunction.prototype, not against AFunction itself.\n

", "parameters": { "object": "The object whose prototype chain will be searched." }, @@ -12554,7 +13028,7 @@ "highDate": "2018-01-29" }, "doc": "The valueOf() method of Object instances converts the this value to an object. This method is meant to be overridden by derived objects for custom type conversion logic.", - "returns": "The this value, converted to an object.\n
\n

Note:\nIn order for valueOf to be useful during type conversion, it must return a primitive. Because all primitive types have their own valueOf() methods, calling aPrimitiveValue.valueOf() generally does not invoke Object.prototype.valueOf().\n

" + "returns": "The this value, converted to an object.\n
\n

Note:\nIn order for valueOf to be useful during type conversion, it must return a primitive. Because all primitive types have their own valueOf() methods, calling primitiveValue.valueOf() generally does not invoke Object.prototype.valueOf().\n

" }, "object.values": { "url": "$MDN_URL$/web/javascript/reference/global_objects/object/values", @@ -12969,7 +13443,7 @@ "onFulfilled": "A function to asynchronously execute when this promise becomes fulfilled. Its return value becomes the fulfillment value of the promise returned by then(). The function is called with the following arguments:\n
\n
value
\n
\n

The value that the promise was fulfilled with.\n

\n
\n

If it is not a function, it is internally replaced with an identity function ((x) => x) which simply passes the fulfillment value forward.", "onRejected": "A function to asynchronously execute when this promise becomes rejected. Its return value becomes the fulfillment value of the promise returned by then(). The function is called with the following arguments:\n

\n
reason
\n
\n

The value that the promise was rejected with.\n

\n
\n

If it is not a function, it is internally replaced with a thrower function ((x) => { throw x; }) which throws the rejection reason it received." }, - "returns": "Returns a new Promise immediately. This new promise is always pending when returned, regardless of the current promise's status.\n

One of the onFulfilled and onRejected handlers will be executed to handle the current promise's fulfillment or rejection. The call always happens asynchronously, even when the current promise is already settled. The behavior of the returned promise (call it p) depends on the handler's execution result, following a specific set of rules. If the handler function:\n

    \n
  • returns a value: p gets fulfilled with the returned value as its value.
  • \n
  • doesn't return anything: p gets fulfilled with undefined as its value.
  • \n
  • throws an error: p gets rejected with the thrown error as its value.
  • \n
  • returns an already fulfilled promise: p gets fulfilled with that promise's value as its value.
  • \n
  • returns an already rejected promise: p gets rejected with that promise's value as its value.
  • \n
  • returns another pending promise: p is pending and becomes fulfilled/rejected with that promise's value as its value immediately after that promise becomes fulfilled/rejected.
  • \n
" + "returns": "Returns a new Promise immediately. This returned promise is always pending when returned, regardless of the current promise's status.\n

One of the onFulfilled and onRejected handlers will be executed to handle the current promise's fulfillment or rejection. The call always happens asynchronously, even when the current promise is already settled. The behavior of the promise returned by then() (referred to as p in the following list) depends on the handler's execution result, following a specific set of rules. If the handler function:\n

    \n
  • returns a value: p gets fulfilled with the returned value as its value.
  • \n
  • doesn't return anything: p gets fulfilled with undefined as its value.
  • \n
  • throws an error: p gets rejected with the thrown error as its value.
  • \n
  • returns an already fulfilled promise: p gets fulfilled with that promise's value as its value.
  • \n
  • returns an already rejected promise: p gets rejected with that promise's value as its value.
  • \n
  • returns another pending promise: p is pending and becomes fulfilled/rejected with that promise's value as its value immediately after that promise becomes fulfilled/rejected.
  • \n
" }, "promise.try": { "url": "$MDN_URL$/web/javascript/reference/global_objects/promise/try", @@ -14301,11 +14775,15 @@ "Edge": "136", "Firefox": "134", "FirefoxAndroid": "134", + "Opera": "121", "Safari": "18.2", - "SafariIOS": "18.2" + "SafariIOS": "18.2", + "Nodejs": "24.0.0", + "Deno": "2.3.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-05-01" }, "doc": "The RegExp.escape() static method escapes any potential regex syntax characters in a string, and returns a new string that can be safely used as a literal pattern for the RegExp() constructor.\n

When dynamically creating a RegExp with user-provided content, consider using this function to sanitize the input (unless the input is actually intended to contain regex syntax). In addition, don't try to re-implement its functionality by, for example, using String.prototype.replaceAll() to insert a \\ before all syntax characters. RegExp.escape() is designed to use escape sequences that work in many more edge cases/contexts than hand-crafted code is likely to achieve.", "parameters": { @@ -15001,11 +15479,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The add() method of Set instances inserts a new element with a specified value in to this set, if there isn't an element with the same value already in this set", + "doc": "The add() method of Set instances inserts the specified value into this set, if it is not already present.", "parameters": { - "value": "The value of the element to add to the Set object." + "value": "The value to add to the Set object. Objects are compared by reference, not by value." }, - "returns": "The Set object with added value." + "returns": "The Set object." }, "set.clear": { "url": "$MDN_URL$/web/javascript/reference/global_objects/set/clear", @@ -15054,11 +15532,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The delete() method of Set instances removes a specified value from this set, if it is in the set.", + "doc": "The delete() method of Set instances removes the specified value from this set, if it is in the set.", "parameters": { - "value": "The value to remove from Set." + "value": "The value to remove from the Set object. Objects are compared by reference, not by value." }, - "returns": "Returns true if value was already in\nSet; otherwise false." + "returns": "true if a value in the Set object has been removed successfully. false if the value is not found in the Set." }, "set.difference": { "url": "$MDN_URL$/web/javascript/reference/global_objects/set/difference", @@ -15163,11 +15641,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The has() method of Set instances returns a boolean indicating whether an\nelement with the specified value exists in this set or not.", + "doc": "The has() method of Set instances returns a boolean indicating whether the specified value exists in this Set or not.", "parameters": { "value": "The value to test for presence in the Set object." }, - "returns": "Returns true if an element with the specified value exists in the Set object; otherwise false." + "returns": "Returns true if the specified value exists in the Set object; otherwise false." }, "set.intersection": { "url": "$MDN_URL$/web/javascript/reference/global_objects/set/intersection", @@ -15326,7 +15804,7 @@ }, "doc": "The Set() constructor creates Set objects.", "parameters": { - "iterable": "If an iterable object is passed, all of its elements will be added to the new\nSet.\n

If you don't specify this parameter, or its value is null, the new\nSet is empty." + "iterable": "If an iterable object (such as an array) is passed, all of its elements will be added to the new Set. If you don't specify this parameter, or its value is null or undefined, the new Set is empty." }, "returns": "A new Set object." }, @@ -16233,7 +16711,7 @@ "doc": "The lastIndexOf() method of String values searches this string and returns the index of the last occurrence of the specified substring. It takes an optional starting position and returns the last occurrence of the specified substring at an index less than or equal to the specified number.", "parameters": { "searchString": "Substring to search for. All values are coerced to strings, so omitting it or passing undefined causes lastIndexOf() to search for the string \"undefined\", which is rarely what you want.", - "position": "The method returns the index of the last occurrence of the specified substring at a position less than or equal to position, which defaults to +Infinity. If position is greater than the length of the calling string, the method searches the entire string. If position is less than 0, the behavior is the same as for 0 — that is, the method looks for the specified substring only at index 0.\n

    \n
  • \n

    'hello world hello'.lastIndexOf('world', 4) returns -1 — because, while the substring world does occurs at index 6, that position is not less than or equal to 4.\n

  • \n
  • \n

    'hello world hello'.lastIndexOf('hello', 99) returns 12 — because the last occurrence of hello at a position less than or equal to 99 is at position 12.\n

  • \n
  • \n

    'hello world hello'.lastIndexOf('hello', 0) and 'hello world hello'.lastIndexOf('hello', -5) both return 0 — because both cause the method to only look for hello at index 0.\n

  • \n
" + "position": "The method returns the index of the last occurrence of the specified substring at a position less than or equal to position, which defaults to Infinity. If position is greater than the length of the calling string, the method searches the entire string. If position is less than 0, the behavior is the same as for 0 — that is, the method looks for the specified substring only at index 0.\n
    \n
  • \n

    'hello world hello'.lastIndexOf('world', 4) returns -1 — because, while the substring world does occurs at index 6, that position is not less than or equal to 4.\n

  • \n
  • \n

    'hello world hello'.lastIndexOf('hello', 99) returns 12 — because the last occurrence of hello at a position less than or equal to 99 is at position 12.\n

  • \n
  • \n

    'hello world hello'.lastIndexOf('hello', 0) and 'hello world hello'.lastIndexOf('hello', -5) both return 0 — because both cause the method to only look for hello at index 0.\n

  • \n
" }, "returns": "The index of the last occurrence of searchString found, or -1 if not found." }, @@ -16310,7 +16788,7 @@ "doc": "The localeCompare() method of String values returns a number indicating whether this string comes before, or after, or is the same as the given string in sort order. In implementations with Intl.Collator API support, this method delegates to Intl.Collator.\n

When comparing large numbers of strings, such as in sorting large arrays, it is better to create an Intl.Collator object and use the function provided by its compare() method.", "parameters": { "compareString": "The string against which the referenceStr is compared. All values are coerced to strings, so omitting it or passing undefined causes localeCompare() to compare against the string \"undefined\", which is rarely what you want.", - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.Collator() constructor.\n

In implementations without Intl.Collator support, this parameter is ignored and the host's locale is usually used.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.Collator() constructor.\n

In implementations without Intl.Collator support, this parameter is ignored and the host's locale is usually used.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.Collator() constructor.\n

In implementations without Intl.Collator support, this parameter is ignored." }, "returns": "A negative number if referenceStr occurs before compareString; positive if the referenceStr occurs after compareString; 0 if they are equivalent.\n

In implementations with Intl.Collator, this is equivalent to new Intl.Collator(locales, options).compare(referenceStr, compareString)." @@ -16427,12 +16905,12 @@ "lowDate": "2017-04-05", "highDate": "2019-10-05" }, - "doc": "The padEnd() method of String values pads this string with a given\nstring (repeated, if needed) so that the resulting string reaches a given length. The\npadding is applied from the end of this string.", + "doc": "The padEnd() method of String values pads this string with a given string (repeated and/or truncated, if needed) so that the resulting string has a given length. The padding is applied from the end of this string.", "parameters": { - "targetLength": "The length of the resulting string once the current str has\nbeen padded. If the value is less than or equal to str.length, the\ncurrent string will be returned as-is.", - "padString": "The string to pad the current str with. If\npadString is too long to stay within\ntargetLength, it will be truncated: for left-to-right\nlanguages the left-most part and for right-to-left languages the right-most will be\napplied. The default value for this parameter is \" \"\n(U+0020)." + "targetLength": "The length of the resulting string once the current str has been padded. If the value is less than or equal to str.length, then str is returned as-is.", + "padString": "The string to pad the current str with. If padString is too long to stay within targetLength, it will be truncated from the end. The default value is the space character (U+0020)." }, - "returns": "A String of the specified targetLength with the\npadString applied at the end of the current\nstr." + "returns": "A String of the specified targetLength with padString applied at the end." }, "string.padstart": { "url": "$MDN_URL$/web/javascript/reference/global_objects/string/padstart", @@ -16456,12 +16934,12 @@ "lowDate": "2017-04-05", "highDate": "2019-10-05" }, - "doc": "The padStart() method of String values pads this string with another string (multiple times, if needed) until the resulting\nstring reaches the given length. The padding is applied from the start of this string.", + "doc": "The padStart() method of String values pads this string with a given string (repeated and/or truncated, if needed) so that the resulting string has a given length. The padding is applied from the start of this string.", "parameters": { - "targetLength": "The length of the resulting string once the current str has\nbeen padded. If the value is less than or equal to str.length, then\nstr is returned as-is.", - "padString": "The string to pad the current str with. If\npadString is too long to stay within the\ntargetLength, it will be truncated from the end.\nThe default value is the unicode \"space\" character (U+0020)." + "targetLength": "The length of the resulting string once the current str has been padded. If the value is less than or equal to str.length, then str is returned as-is.", + "padString": "The string to pad the current str with. If padString is too long to stay within targetLength, it will be truncated from the end. The default value is the space character (U+0020)." }, - "returns": "A String of the specified targetLength with\npadString applied from the start." + "returns": "A String of the specified targetLength with padString applied at the start." }, "string.raw": { "url": "$MDN_URL$/web/javascript/reference/global_objects/string/raw", @@ -16520,7 +16998,7 @@ }, "doc": "The repeat() method of String values constructs and returns a new string\nwhich contains the specified number of copies of this string, concatenated together.", "parameters": { - "count": "An integer between 0 and\n+Infinity, indicating the\nnumber of times to repeat the string." + "count": "An integer between 0 and Infinity, indicating the number of times to repeat the string." }, "returns": "A new string containing the specified number of copies of the given string.", "throws": { @@ -16815,7 +17293,7 @@ "Nodejs": "", "Deno": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The substr() method of String values returns a portion of this string, starting at the specified index and extending for a given number of characters afterwards.\n

\n

Note: substr() is not part of the main ECMAScript specification — it's defined in Annex B: Additional ECMAScript Features for Web Browsers, which is normative optional for non-browser runtimes. Therefore, people are advised to use the standard String.prototype.substring() and String.prototype.slice() methods instead to make their code maximally cross-platform friendly. The String.prototype.substring() page has some comparisons between the three methods.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The substr() method of String values returns a portion of this string, starting at the specified index and extending for a given number of characters afterwards.\n

\n

Note:\nsubstr() is not part of the main ECMAScript specification — it's defined in Annex B: Additional ECMAScript Features for Web Browsers, which is normative optional for non-browser runtimes. Therefore, people are advised to use the standard String.prototype.substring() and String.prototype.slice() methods instead to make their code maximally cross-platform friendly. The String.prototype.substring() page has some comparisons between the three methods.\n

", "parameters": { "start": "The index of the first character to include in the returned substring.", "length": "The number of characters to extract." @@ -16921,7 +17399,7 @@ }, "doc": "The toLocaleLowerCase() method of String values returns this string converted to lower case, according to any locale-specific case mappings.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Indicates the locale to be used to convert to lower case according to any locale-specific case mappings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

Unlike other methods that use the locales argument, toLocaleLowerCase() does not allow locale matching. Therefore, after checking the validity of the locales argument, toLocaleLowerCase() always uses the first locale in the list (or the default locale if the list is empty), even if this locale is not supported by the implementation." + "locales": "A string with a BCP 47 language tag, or an array of such strings. Indicates the locale to be used to convert to lower case according to any locale-specific case mappings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

Unlike other methods that use the locales argument, toLocaleLowerCase() does not allow locale matching. Therefore, after checking the validity of the locales argument, toLocaleLowerCase() always uses the first locale in the list (or the default locale if the list is empty), even if this locale is not supported by the implementation." }, "returns": "A new string representing the calling string converted to lower case, according to any\nlocale-specific case mappings." }, @@ -16949,7 +17427,7 @@ }, "doc": "The toLocaleUpperCase() method of String values returns this string converted to upper case, according to any locale-specific case mappings.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Indicates the locale to be used to convert to upper case according to any locale-specific case mappings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

Unlike other methods that use the locales argument, toLocaleUpperCase() does not allow locale matching. Therefore, after checking the validity of the locales argument, toLocaleUpperCase() always uses the first locale in the list (or the default locale if the list is empty), even if this locale is not supported by the implementation." + "locales": "A string with a BCP 47 language tag, or an array of such strings. Indicates the locale to be used to convert to upper case according to any locale-specific case mappings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.\n

Unlike other methods that use the locales argument, toLocaleUpperCase() does not allow locale matching. Therefore, after checking the validity of the locales argument, toLocaleUpperCase() always uses the first locale in the list (or the default locale if the list is empty), even if this locale is not supported by the implementation." }, "returns": "A new string representing the calling string converted to upper case, according to any\nlocale-specific case mappings." }, @@ -17152,6 +17630,83 @@ "doc": "The valueOf() method of String values returns this string value.", "returns": "A string representing the primitive value of a given String object." }, + "suppressederror": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/suppressederror", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The SuppressedError object represents an error generated while handing another error. It is generated during resource disposal using using or await using.\n

Compared to AggregateError, SuppressedError is used to represent a single error that is suppressed by another error, while AggregateError represents a list of unrelated errors. It is possible, though, for a SuppressedError to contain a chain of suppressed errors (e.suppressed.suppressed.suppressed...). It is also semantically different from cause because the error is not caused by another error, but happens when handling another error.\n

SuppressedError is a subclass of Error." + }, + "suppressederror.error": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/suppressederror/error", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The error data property of a SuppressedError instance contains a reference to the error that results in the suppression." + }, + "suppressederror.suppressed": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/suppressederror/suppressed", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The suppressed data property of a SuppressedError instance contains a reference to the original error that got suppressed because a new error was generated while handling it." + }, + "suppressederror.suppressederror": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/suppressederror/suppressederror", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "134", + "ChromeAndroid": "134", + "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "119" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The SuppressedError() constructor creates SuppressedError objects.", + "parameters": { + "error": "The new error that results in the suppression of suppressed.", + "suppressed": "The error that was originally thrown and is now suppressed.", + "message": "An optional human-readable description of the aggregate error." + } + }, "symbol": { "url": "$MDN_URL$/web/javascript/reference/global_objects/symbol", "status": [ @@ -17176,6 +17731,26 @@ }, "doc": "Symbol is a built-in object whose constructor returns a symbol primitive — also called a Symbol value or just a Symbol — that's guaranteed to be unique. Symbols are often used to add unique property keys to an object that won't collide with keys any other code might add to the object, and which are hidden from any mechanisms other code will typically use to access the object. That enables a form of weak encapsulation, or a weak form of information hiding.\n

Every Symbol() call is guaranteed to return a unique Symbol. Every Symbol.for(\"key\") call will always return the same Symbol for a given value of \"key\". When Symbol.for(\"key\") is called, if a Symbol with the given key can be found in the global Symbol registry, that Symbol is returned. Otherwise, a new Symbol is created, added to the global Symbol registry under the given key, and returned." }, + "symbol.asyncdispose": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/symbol/asyncdispose", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "127", + "ChromeAndroid": "127", + "Edge": "127", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "113", + "Nodejs": "24.0.0", + "Deno": "1.37" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The Symbol.asyncDispose static data property represents the well-known symbol Symbol.asyncDispose. The await using declaration looks up this symbol on the variable initializer for the method to call when the variable goes out of scope." + }, "symbol.asynciterator": { "url": "$MDN_URL$/web/javascript/reference/global_objects/symbol/asynciterator", "status": [ @@ -17224,6 +17799,26 @@ }, "doc": "The description accessor property of Symbol values returns a string containing the description of this symbol, or undefined if the symbol has no description." }, + "symbol.dispose": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/symbol/dispose", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "125", + "ChromeAndroid": "125", + "Edge": "125", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "111", + "Nodejs": "24.0.0", + "Deno": "1.37" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The Symbol.dispose static data property represents the well-known symbol Symbol.dispose. The using declaration looks up this symbol on the variable initializer for the method to call when the variable goes out of scope." + }, "symbol.for": { "url": "$MDN_URL$/web/javascript/reference/global_objects/symbol/for", "status": [ @@ -18127,7 +18722,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The toLocaleString() method of Temporal.Duration instances returns a string with a language-sensitive representation of this duration. In implementations with Intl.DurationFormat API support, this method delegates to Intl.DurationFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DurationFormat object and use its format() method, because a DurationFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DurationFormat() constructor.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DurationFormat() constructor.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DurationFormat() constructor." }, "returns": "A string representing the given duration according to language-specific conventions.\n

In implementations with Intl.DurationFormat, this is equivalent to new Intl.DurationFormat(locales, options).format(duration).\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

" @@ -18562,7 +19157,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The toLocaleString() method of Temporal.Instant instances returns a string with a language-sensitive representation of this instant. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor." }, "returns": "A string representing the given instant according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, options).format(instant).\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

" @@ -18843,7 +19438,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.PlainDate instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

For a list of commonly supported values, see Intl.Locale.prototype.getCalendars().\n

The set accessor of calendarId is undefined. You cannot change this property directly. Use the withCalendar() method to create a new Temporal.PlainDate object with the desired new value." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.PlainDate instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

See Intl.supportedValuesOf() for a list of commonly supported calendar types.\n

The set accessor of calendarId is undefined. You cannot change this property directly. Use the withCalendar() method to create a new Temporal.PlainDate object with the desired new value." }, "temporal.plaindate.compare": { "url": "$MDN_URL$/web/javascript/reference/global_objects/temporal/plaindate/compare", @@ -19019,7 +19614,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Temporal.PlainDate.from() static method creates a new Temporal.PlainDate object from another Temporal.PlainDate object, an object with date properties, or an RFC 9557 string.", "parameters": { - "info": "One of the following:\n

    \n
  • \n

    A Temporal.PlainDate instance, which creates a copy of the instance.\n

  • \n
  • \n

    A Temporal.PlainDateTime instance, which provides the calendar date in the same fashion as Temporal.PlainDateTime.prototype.toPlainDate().\n

  • \n
  • \n

    A Temporal.ZonedDateTime instance, which provides the calendar date in the same fashion as Temporal.ZonedDateTime.prototype.toPlainDate().\n

  • \n
  • \n

    An RFC 9557 string containing a date and optionally a calendar.\n

  • \n
  • \n

    An object containing the following properties (in the order they are retrieved and validated):\n

    \n
    calendar Optional
    \n
    \n

    A string that corresponds to the calendarId property. Defaults to \"iso8601\". All other properties are interpreted in this calendar system (unlike the Temporal.PlainDate() constructor, which interprets the values in the ISO calendar system).\n

    \n
    day
    \n
    \n

    An integer that corresponds to the day property. Must be positive regardless of the overflow option.\n

    \n
    era and eraYear
    \n
    \n

    A string and an integer that correspond to the era and eraYear properties. Are only used if the calendar system has eras. era and eraYear must be provided simultaneously. At least one of era+eraYear or year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    month
    \n
    \n

    Corresponds to the month property. Must be positive regardless of the overflow option. At least one of month or monthCode must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    monthCode
    \n
    \n

    Corresponds to the monthCode property. At least one of month or monthCode must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    year
    \n
    \n

    Corresponds to the year property. At least one of era+eraYear or year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    \n

    The info should explicitly specify a year (as year or era and eraYear), a month (as month or monthCode), and a day.\n

  • \n
", + "info": "One of the following:\n
    \n
  • \n

    A Temporal.PlainDate instance, which creates a copy of the instance.\n

  • \n
  • \n

    A Temporal.PlainDateTime instance, which provides the calendar date in the same fashion as Temporal.PlainDateTime.prototype.toPlainDate().\n

  • \n
  • \n

    A Temporal.ZonedDateTime instance, which provides the calendar date in the same fashion as Temporal.ZonedDateTime.prototype.toPlainDate().\n

  • \n
  • \n

    An RFC 9557 string containing a date and optionally a calendar.\n

  • \n
  • \n

    An object containing the following properties (in the order they are retrieved and validated):\n

    \n
    calendar Optional
    \n
    \n

    A string that corresponds to the calendarId property. See Intl.supportedValuesOf() for a list of commonly supported calendar types. Defaults to \"iso8601\". All other properties are interpreted in this calendar system (unlike the Temporal.PlainDate() constructor, which interprets the values in the ISO calendar system).\n

    \n
    day
    \n
    \n

    An integer that corresponds to the day property. Must be positive regardless of the overflow option.\n

    \n
    era and eraYear
    \n
    \n

    A string and an integer that correspond to the era and eraYear properties. Are only used if the calendar system has eras. era and eraYear must be provided simultaneously. At least one of eraYear (together with era) or year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    month
    \n
    \n

    Corresponds to the month property. Must be positive regardless of the overflow option. At least one of month or monthCode must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    monthCode
    \n
    \n

    Corresponds to the monthCode property. At least one of month or monthCode must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    year
    \n
    \n

    Corresponds to the year property. At least one of eraYear (together with era) or year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    \n

    The info should explicitly specify a year (as year or era and eraYear), a month (as month or monthCode), and a day.\n

  • \n
", "options": "An object containing the following property:\n
\n
overflow Optional
\n
\n

A string specifying the behavior when a date component is out of range (when using the object info). Possible values are:\n

\n
\"constrain\" (default)
\n
\n

The date component is clamped to the valid range.\n

\n
\"reject\"
\n
\n

A RangeError is thrown if the date component is out of range.\n

\n
\n
\n
" }, "returns": "A new Temporal.PlainDate object, representing the date specified by info in the specified calendar.", @@ -19106,7 +19701,7 @@ "year": "A number, truncated to an integer, representing the year in the ISO calendar system.", "month": "A number, truncated to an integer, representing the month in the ISO calendar system.", "day": "A number, truncated to an integer, representing the day of the month in the ISO calendar system.", - "calendar": "A string representing the calendar to use. Note that irrespective of the calendar, the year, month, and day must be in the ISO 8601 calendar system. Defaults to \"iso8601\"." + "calendar": "A string representing the calendar to use. See Intl.supportedValuesOf() for a list of commonly supported calendar types. Defaults to \"iso8601\". Note that irrespective of the calendar, the year, month, and day must be in the ISO 8601 calendar system." }, "returns": "A new Temporal.PlainDate object, representing the date specified by year, month, day (in the ISO calendar), interpreted in the calendar system specified by calendar.", "throws": { @@ -19191,7 +19786,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The toLocaleString() method of Temporal.PlainDate instances returns a string with a language-sensitive representation of this date. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor. If this date's calendar is not \"iso8601\", the calendar option must be provided with the same value; otherwise, if this date's calendar is \"iso8601\", the calendar option can be any value. Regarding the date-time component options and the style shortcuts (dateStyle and timeStyle), the options should follow one of these forms:\n

    \n
  • Provide none of them: year, month, and day will default to \"numeric\".
  • \n
  • Provide dateStyle only: it expands to weekday, era, year, month, and day formats.
  • \n
  • Provide some date-time component options, where at least one of them is a date option (weekday, year, month, day). Only the specified date components will be included in the output.
  • \n
" }, "returns": "A string representing the given date according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, options).format(date), where options has been normalized as described above.\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

", @@ -19385,16 +19980,13 @@ "Experimental", "StandardTrack" ], - "compatibility": { - "Firefox": "139", - "FirefoxAndroid": "139" - }, + "compatibility": {}, "baseline": { "level": "NONE" }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The withCalendar() method of Temporal.PlainDate instances returns a new Temporal.PlainDate object representing this date interpreted in the new calendar system. Because all Temporal objects are designed to be immutable, this method essentially functions as the setter for the date's calendarId property.\n

To replace the date component properties, use the with() method instead.", "parameters": { - "calendar": "A string that corresponds to the calendarId property." + "calendar": "A string that corresponds to the calendarId property. See Intl.supportedValuesOf() for a list of commonly supported calendar types." }, "returns": "A new Temporal.PlainDate object, representing the date specified by the original PlainDate, interpreted in the new calendar system.", "throws": { @@ -19439,7 +20031,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19453,7 +20046,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19475,12 +20069,13 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.PlainDateTime instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

For a list of commonly supported values, see Intl.Locale.prototype.getCalendars().\n

The set accessor of calendarId is undefined. You cannot change this property directly. Use the withCalendar() method to create a new Temporal.PlainDateTime object with the desired new value." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.PlainDateTime instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

See Intl.supportedValuesOf() for a list of commonly supported calendar types.\n

The set accessor of calendarId is undefined. You cannot change this property directly. Use the withCalendar() method to create a new Temporal.PlainDateTime object with the desired new value." }, "temporal.plaindatetime.compare": { "url": "$MDN_URL$/web/javascript/reference/global_objects/temporal/plaindatetime/compare", @@ -19489,7 +20084,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19508,7 +20104,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19522,7 +20119,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19536,7 +20134,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19550,7 +20149,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19564,7 +20164,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19578,7 +20179,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19592,7 +20194,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19610,7 +20213,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19624,7 +20228,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19638,7 +20243,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19661,7 +20267,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19675,7 +20282,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19689,7 +20297,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19703,7 +20312,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19717,7 +20327,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19731,7 +20342,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19745,7 +20357,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19759,7 +20372,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19773,7 +20387,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19787,7 +20402,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19803,7 +20419,7 @@ "millisecond": "A number, truncated to an integer, representing the millisecond component.", "microsecond": "A number, truncated to an integer, representing the microsecond component.", "nanosecond": "A number, truncated to an integer, representing the nanosecond component.", - "calendar": "A string representing the calendar to use. Note that irrespective of the calendar, the year, month, and day must be in the ISO 8601 calendar system. Defaults to \"iso8601\"." + "calendar": "A string representing the calendar to use. See Intl.supportedValuesOf() for a list of commonly supported calendar types. Defaults to \"iso8601\". Note that irrespective of the calendar, the year, month, and day must be in the ISO 8601 calendar system." }, "returns": "A new Temporal.PlainDateTime object, representing the date-time specified by the parameters.", "throws": { @@ -19817,7 +20433,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19839,7 +20456,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19853,7 +20471,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19875,7 +20494,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19897,7 +20517,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19912,14 +20533,15 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The toLocaleString() method of Temporal.PlainDateTime instances returns a string with a language-sensitive representation of this date-time. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor. If this date-time's calendar is not \"iso8601\", the calendar option must be provided with the same value; otherwise, if this date-time's calendar is \"iso8601\", the calendar option can be any value. Regarding the date-time component options and the style shortcuts (dateStyle and timeStyle), the options should follow one of these forms:\n

    \n
  • Provide none of them: year, month, day, hour, minute, and second will default to \"numeric\".
  • \n
  • Provide at least one of dateStyle or timeStyle: the date-time components will be set according to the specified style and the locale.
  • \n
  • Provide some date-time component options. Only the specified date-time components will be included in the output.
  • \n
" }, "returns": "A string representing the given date-time according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, options).format(dateTime), where options has been normalized as described above.\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

", @@ -19935,7 +20557,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19950,7 +20573,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19965,7 +20589,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -19987,7 +20612,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -20010,7 +20636,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -20032,7 +20659,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -20050,7 +20678,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -20064,7 +20693,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -20086,15 +20716,13 @@ "Experimental", "StandardTrack" ], - "compatibility": { - "Firefox": "preview" - }, + "compatibility": {}, "baseline": { "level": "NONE" }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The withCalendar() method of Temporal.PlainDateTime instances returns a new Temporal.PlainDateTime object representing this date-time interpreted in the new calendar system. Because all Temporal objects are designed to be immutable, this method essentially functions as the setter for the date-time's calendarId property.\n

To replace the date-time component properties, use the with() method instead.", "parameters": { - "calendar": "A string that corresponds to the calendarId property." + "calendar": "A string that corresponds to the calendarId property. See Intl.supportedValuesOf() for a list of commonly supported calendar types." }, "returns": "A new Temporal.PlainDateTime object, representing the date-time specified by the original PlainDateTime, interpreted in the new calendar system.", "throws": { @@ -20109,7 +20737,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -20127,7 +20756,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -20141,7 +20771,8 @@ "StandardTrack" ], "compatibility": { - "Firefox": "preview" + "Firefox": "139", + "FirefoxAndroid": "139" }, "baseline": { "level": "NONE" @@ -20176,7 +20807,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.PlainMonthDay instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

For a list of commonly supported values, see Intl.Locale.prototype.getCalendars().\n

The set accessor of calendarId is undefined. You cannot change this property directly. There's no obvious way to create a new Temporal.PlainMonthDay object with a different calendar that represents the same month-day, so you need to convert it to a Temporal.PlainDate object first using toPlainDate(), change the calendar, and then convert it back." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.PlainMonthDay instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

See Intl.supportedValuesOf() for a list of commonly supported calendar types.\n

The set accessor of calendarId is undefined. You cannot change this property directly. There's no obvious way to create a new Temporal.PlainMonthDay object with a different calendar that represents the same month-day, so you need to convert it to a Temporal.PlainDate object first using toPlainDate(), change the calendar, and then convert it back." }, "temporal.plainmonthday.day": { "url": "$MDN_URL$/web/javascript/reference/global_objects/temporal/plainmonthday/day", @@ -20206,7 +20837,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The equals() method of Temporal.PlainMonthDay instances returns true if this month-day is equivalent in value to another month-day (in a form convertible by Temporal.PlainMonthDay.from()), and false otherwise. They are compared both by their underlying ISO date values and their calendars.\n

\n

Note: PlainMonthDay objects keep track of a reference ISO year, which is also used in the comparison. This year is automatically set when using the Temporal.PlainMonthDay.from() method, but can be set manually using the Temporal.PlainMonthDay() constructor, causing two equivalent month-days to be considered different if they have different reference years. For this reason, you should avoid using the constructor directly and prefer the from() method.\n

", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The equals() method of Temporal.PlainMonthDay instances returns true if this month-day is equivalent in value to another month-day (in a form convertible by Temporal.PlainMonthDay.from()), and false otherwise. They are compared both by their underlying ISO date values and their calendars.\n

\n

Note:\nPlainMonthDay objects keep track of a reference ISO year, which is also used in the comparison. This year is automatically set when using the Temporal.PlainMonthDay.from() method, but can be set manually using the Temporal.PlainMonthDay() constructor, causing two equivalent month-days to be considered different if they have different reference years. For this reason, you should avoid using the constructor directly and prefer the from() method.\n

", "parameters": { "other": "A string, an object, or a Temporal.PlainMonthDay instance representing the other month-day to compare. It is converted to a Temporal.PlainMonthDay object using the same algorithm as Temporal.PlainMonthDay.from()." }, @@ -20227,7 +20858,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Temporal.PlainMonthDay.from() static method creates a new Temporal.PlainMonthDay object from another Temporal.PlainMonthDay object, an object with month and day properties, or an RFC 9557 string.", "parameters": { - "info": "One of the following:\n

    \n
  • \n

    A Temporal.PlainMonthDay instance, which creates a copy of the instance.\n

  • \n
  • \n

    An RFC 9557 string containing a date and optionally a calendar. If the calendar is not iso8601, a year is required.\n

  • \n
  • \n

    An object containing the following properties (in the order they are retrieved and validated):\n

    \n
    calendar Optional
    \n
    \n

    A string that corresponds to the calendarId property. Defaults to \"iso8601\". All other properties are interpreted in this calendar system (unlike the Temporal.PlainMonthDay() constructor, which interprets the values in the ISO calendar system).\n

    \n
    day
    \n
    \n

    An integer that corresponds to the day property. Must be positive regardless of the overflow option.\n

    \n
    era and eraYear
    \n
    \n

    A string and an integer that can be used instead of year. See era and eraYear of PlainDate. Are only used if the calendar system has eras. era and eraYear must be provided simultaneously. If month is specified, at least one of era+eraYear or year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    month
    \n
    \n

    A positive integer that can be used instead of monthCode. See month of PlainDate. Must be positive regardless of the overflow option. If month is provided, and the calendar is not iso8601, then year (or era + eraYear as a substitution) must be provided too, because the same month may map to multiple possible monthCode values in different years. At least one of month or monthCode must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    monthCode
    \n
    \n

    Corresponds to the monthCode property. At least one of month or monthCode must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    year
    \n
    \n

    An integer used to disambiguate month if provided, because for some calendars, the same month can mean different monthCode in different years. See year of PlainDate. If a year is provided, then the overflow option validates the month-day in the given year, not just any year. If month is specified, at least one of era+eraYear or year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    \n
  • \n
", + "info": "One of the following:\n
    \n
  • A Temporal.PlainMonthDay instance, which creates a copy of the instance.
  • \n
  • An RFC 9557 string containing a date and optionally a calendar. If the calendar is not iso8601, a year is required.
  • \n
  • An object containing the following properties (in the order they are retrieved and validated):\n
    \n
    calendar Optional
    \n
    \n

    A string that corresponds to the calendarId property. Defaults to \"iso8601\". All other properties are interpreted in this calendar system (unlike the Temporal.PlainMonthDay() constructor, which interprets the values in the ISO calendar system). See Intl.supportedValuesOf() for a list of commonly supported calendar types.\n

    \n
    day
    \n
    \n

    An integer that corresponds to the day property. Must be positive regardless of the overflow option.\n

    \n
    era and eraYear
    \n
    \n

    A string and an integer that can be used instead of year. See era and eraYear of PlainDate. Are only used if the calendar system has eras. era and eraYear must be provided simultaneously. If month is specified, at least one of eraYear (together with era) or year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    month
    \n
    \n

    A positive integer that can be used instead of monthCode. See month of PlainDate. Must be positive regardless of the overflow option. If month is provided, and the calendar is not iso8601, then year (or eraYear together with era as a substitution) must be provided too, because the same month may map to multiple possible monthCode values in different years. At least one of month or monthCode must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    monthCode
    \n
    \n

    Corresponds to the monthCode property. At least one of month or monthCode must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    year
    \n
    \n

    An integer used to disambiguate month if provided, because for some calendars, the same month can mean different monthCode in different years. See year of PlainDate. If a year is provided, then the overflow option validates the month-day in the given year, not just any year. If month is specified, at least one of eraYear (together with era) or year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    \n
  • \n
", "options": "An object containing the following property:\n
\n
overflow Optional
\n
\n

A string specifying the behavior when a date component is out of range (when using the object info). Possible values are:\n

\n
\"constrain\" (default)
\n
\n

The date component is clamped to the valid range.\n

\n
\"reject\"
\n
\n

A RangeError is thrown if the date component is out of range.\n

\n
\n
\n
" }, "returns": "A new Temporal.PlainMonthDay object, representing the month and day specified by info in the specified calendar.\n

Each PlainMonthDay stores a whole ISO 8601 date internally, which has the same month-day in the target calendar as what's exposed. The reference year is visible when stringifying with toString(), which outputs an ISO date. The reference year is chosen arbitrarily but consistently (that is, every (monthCode, day) pair always maps to the same ISO reference year). It does not use the year provided in the input. Instead, the reference year is chosen by finding the latest date before December 31, 1972 that has the same month-day in the target calendar, or the earliest date after December 31, 1972 if no such date exists.\n

For example, for Gregorian-derived calendars, the reference year is 1972. For the Hebrew calendar, the reference year is 1972 in the Gregorian calendar, but if the month is Adar I (M05L), which is a leap month, the reference year is 1970 (5730 in Hebrew calendar) instead, because the next leap year is 1973 (5733 in Hebrew calendar), which is after 1972.\n

This reference year canonicalization ensures that equals() can directly compare the underlying ISO dates without extra computation.", @@ -20268,7 +20899,7 @@ "parameters": { "month": "A number, truncated to an integer, representing the month in the ISO calendar system.", "day": "A number, truncated to an integer, representing the day of the month in the ISO calendar system.", - "calendar": "A string representing the calendar to use. Note that irrespective of the calendar, the referenceYear, month, and day must be in the ISO 8601 calendar system. Defaults to \"iso8601\".", + "calendar": "A string representing the calendar to use. See Intl.supportedValuesOf() for a list of commonly supported calendar types. Defaults to \"iso8601\". Note that irrespective of the calendar, the referenceYear, month, and day must be in the ISO 8601 calendar system.", "referenceYear": "A number, truncated to an integer, representing the year in the ISO calendar system. Defaults to 1972. The same ISO month-day can represent different dates in different years with non-ISO calendars. For example, the days 2021-07-01 and 1972-07-01 may fall on different month-days in a non-Gregorian calendar, and just specifying \"07-01\" is insufficient to unambiguously determine a month-day in the target calendar. Therefore, you virtually always want to specify a referenceYear when using a non-ISO calendar." }, "returns": "A new Temporal.PlainMonthDay object, representing the month-day of the date specified by referenceYear, month, day (in the ISO calendar), interpreted in the calendar system specified by calendar.", @@ -20308,7 +20939,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The toLocaleString() method of Temporal.PlainMonthDay instances returns a string with a language-sensitive representation of this month-day. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor. The calendar option must be provided with the same value as this month-day's calendar. Regarding the date-time component options and the style shortcuts (dateStyle and timeStyle), the options should follow one of these forms:\n

    \n
  • Provide none of them: month and day will default to \"numeric\".
  • \n
  • Provide dateStyle only: it expands to month and day formats.
  • \n
  • Provide some date-time component options, where at least one of them is month or day. Only the specified date components will be included in the output.
  • \n
" }, "returns": "A string representing the given month-day according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, options).format(monthDay), where options has been normalized as described above.\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

", @@ -20732,7 +21363,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The toLocaleString() method of Temporal.PlainTime instances returns a string with a language-sensitive representation of this time. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor. Regarding the date-time component options and the style shortcuts (dateStyle and timeStyle), the options should follow one of these forms:\n

    \n
  • Provide none of them: hour, minute, and second will default to \"numeric\".
  • \n
  • Provide timeStyle only: it expands to dayPeriod, hour, minute, second, and fractionalSecondDigits formats.
  • \n
  • Provide some date-time component options, where at least one of them is a time option (dayPeriod, hour, minute, second, fractionalSecondDigits). Only the specified time components will be included in the output.
  • \n
" }, "returns": "A string representing the given time according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, options).format(time), where options has been normalized as described above.\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

", @@ -20885,7 +21516,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.PlainYearMonth instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

For a list of commonly supported values, see Intl.Locale.prototype.getCalendars().\n

The set accessor of calendarId is undefined. You cannot change this property directly. There's no obvious way to create a new Temporal.PlainYearMonth object with a different calendar that represents the same year-month, so you need to convert it to a Temporal.PlainDate object first using toPlainDate(), change the calendar, and then convert it back." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.PlainYearMonth instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

See Intl.supportedValuesOf() for a list of commonly supported calendar types.\n

The set accessor of calendarId is undefined. You cannot change this property directly. There's no obvious way to create a new Temporal.PlainYearMonth object with a different calendar that represents the same year-month, so you need to convert it to a Temporal.PlainDate object first using toPlainDate(), change the calendar, and then convert it back." }, "temporal.plainyearmonth.compare": { "url": "$MDN_URL$/web/javascript/reference/global_objects/temporal/plainyearmonth/compare", @@ -20900,7 +21531,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Temporal.PlainYearMonth.compare() static method returns a number (-1, 0, or 1) indicating whether the first year-month comes before, is the same as, or comes after the second year-month. It is equivalent to comparing their underlying ISO 8601 dates. Two year-months from different calendars may be considered equal if they start on the same ISO date.\n

\n

Note: PlainYearMonth objects keep track of a reference ISO day, which is also used in the comparison. This day is automatically set when using the Temporal.PlainYearMonth.from() method, but can be set manually using the Temporal.PlainYearMonth() constructor, causing two equivalent year-months to be considered different if they have different reference days. For this reason, you should avoid using the constructor directly and prefer the from() method.\n

", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Temporal.PlainYearMonth.compare() static method returns a number (-1, 0, or 1) indicating whether the first year-month comes before, is the same as, or comes after the second year-month. It is equivalent to comparing their underlying ISO 8601 dates. Two year-months from different calendars may be considered equal if they start on the same ISO date.\n

\n

Note:\nPlainYearMonth objects keep track of a reference ISO day, which is also used in the comparison. This day is automatically set when using the Temporal.PlainYearMonth.from() method, but can be set manually using the Temporal.PlainYearMonth() constructor, causing two equivalent year-months to be considered different if they have different reference days. For this reason, you should avoid using the constructor directly and prefer the from() method.\n

", "parameters": { "yearMonth1": "A string, an object, or a Temporal.PlainYearMonth instance representing the first year-month to compare. It is converted to a Temporal.PlainYearMonth object using the same algorithm as Temporal.PlainYearMonth.from().", "yearMonth2": "The second year-month to compare, converted to a Temporal.PlainYearMonth object using the same algorithm as yearMonth1." @@ -20950,7 +21581,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The equals() method of Temporal.PlainYearMonth instances returns true if this year-month is equivalent in value to another year-month (in a form convertible by Temporal.PlainYearMonth.from()), and false otherwise. They are compared both by their underlying ISO date values and their calendars, so two year-months from different calendars may be considered equal by Temporal.PlainYearMonth.compare() but not by equals().\n

\n

Note: PlainYearMonth objects keep track of a reference ISO day, which is also used in the comparison. This day is automatically set when using the Temporal.PlainYearMonth.from() method, but can be set manually using the Temporal.PlainYearMonth() constructor, causing two equivalent year-months to be considered different if they have different reference days. For this reason, you should avoid using the constructor directly and prefer the from() method.\n

", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The equals() method of Temporal.PlainYearMonth instances returns true if this year-month is equivalent in value to another year-month (in a form convertible by Temporal.PlainYearMonth.from()), and false otherwise. They are compared both by their underlying ISO date values and their calendars, so two year-months from different calendars may be considered equal by Temporal.PlainYearMonth.compare() but not by equals().\n

\n

Note:\nPlainYearMonth objects keep track of a reference ISO day, which is also used in the comparison. This day is automatically set when using the Temporal.PlainYearMonth.from() method, but can be set manually using the Temporal.PlainYearMonth() constructor, causing two equivalent year-months to be considered different if they have different reference days. For this reason, you should avoid using the constructor directly and prefer the from() method.\n

", "parameters": { "other": "A string, an object, or a Temporal.PlainYearMonth instance representing the other year-month to compare. It is converted to a Temporal.PlainYearMonth object using the same algorithm as Temporal.PlainYearMonth.from()." }, @@ -21001,7 +21632,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Temporal.PlainYearMonth.from() static method creates a new Temporal.PlainYearMonth object from another Temporal.PlainYearMonth object, an object with year and month properties, or an RFC 9557 string.", "parameters": { - "info": "One of the following:\n

    \n
  • A Temporal.PlainYearMonth instance, which creates a copy of the instance.
  • \n
  • An RFC 9557 string containing a date and optionally a calendar. If the calendar is not iso8601, a day is required.
  • \n
  • An object containing the following properties (in the order they are retrieved and validated):\n
    \n
    calendar Optional
    \n
    \n

    A string that corresponds to the calendarId property. Defaults to \"iso8601\". All other properties are interpreted in this calendar system (unlike the Temporal.PlainYearMonth() constructor, which interprets the values in the ISO calendar system).\n

    \n
    era and eraYear
    \n
    \n

    A string and an integer that correspond to the era and eraYear properties. Are only used if the calendar system has eras. era and eraYear must be provided simultaneously. If they are not provided, then year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    month
    \n
    \n

    Corresponds to the month property. Must be positive regardless of the overflow option.\n

    \n
    monthCode
    \n
    \n

    Corresponds to the monthCode property. If it is not provided, then month must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    year
    \n
    \n

    Corresponds to the year property.\n

    \n
    \n
  • \n
", + "info": "One of the following:\n
    \n
  • A Temporal.PlainYearMonth instance, which creates a copy of the instance.
  • \n
  • An RFC 9557 string containing a date and optionally a calendar. If the calendar is not iso8601, a day is required.
  • \n
  • An object containing the following properties (in the order they are retrieved and validated):\n
    \n
    calendar Optional
    \n
    \n

    A string that corresponds to the calendarId property. See Intl.supportedValuesOf() for a list of commonly supported calendar types. Defaults to \"iso8601\". All other properties are interpreted in this calendar system (unlike the Temporal.PlainYearMonth() constructor, which interprets the values in the ISO calendar system).\n

    \n
    era and eraYear
    \n
    \n

    A string and an integer that correspond to the era and eraYear properties. Are only used if the calendar system has eras. era and eraYear must be provided simultaneously. If they are not provided, then year must be provided. If all of era, eraYear, and year are provided, they must be consistent.\n

    \n
    month
    \n
    \n

    Corresponds to the month property. Must be positive regardless of the overflow option.\n

    \n
    monthCode
    \n
    \n

    Corresponds to the monthCode property. If it is not provided, then month must be provided. If both month and monthCode are provided, they must be consistent.\n

    \n
    year
    \n
    \n

    Corresponds to the year property.\n

    \n
    \n
  • \n
", "options": "An object containing the following property:\n
\n
overflow Optional
\n
\n

A string specifying the behavior when a date component is out of range (when using the object info). Possible values are:\n

\n
\"constrain\" (default)
\n
\n

The date component is clamped to the valid range.\n

\n
\"reject\"
\n
\n

A RangeError is thrown if the date component is out of range.\n

\n
\n
\n
" }, "returns": "A new Temporal.PlainYearMonth object, representing the year and month specified by info in the specified calendar.\n

Each PlainYearMonth stores a whole ISO 8601 date internally, which has the same year-month in the target calendar as what's exposed. The reference day is visible when stringifying with toString(), which outputs an ISO date. The reference day is chosen arbitrarily but consistently; that is, every (year, month) pair always maps to the same ISO reference day. It does not use the day provided in the input. Instead, the reference day is always chosen to be the first valid day of the month.\n

This reference day canonicalization ensures that equals() can directly compare the underlying ISO dates without extra computation.", @@ -21087,7 +21718,7 @@ "parameters": { "year": "A number, truncated to an integer, representing the year in the ISO calendar system.", "month": "A number, truncated to an integer, representing the month in the ISO calendar system.", - "calendar": "A string representing the calendar to use. Note that irrespective of the calendar, the year, month, and referenceDay must be in the ISO 8601 calendar system. Defaults to \"iso8601\".", + "calendar": "A string representing the calendar to use. See Intl.supportedValuesOf() for a list of commonly supported calendar types. Defaults to \"iso8601\". Note that irrespective of the calendar, the year, month, and referenceDay must be in the ISO 8601 calendar system.", "referenceDay": "A number, truncated to an integer, representing the day of the month in the ISO calendar system. Defaults to 1. The same ISO year-month can represent different months on different days with non-ISO calendars. For example, the days 2021-07-01 and 2021-07-31 may fall in different months in a non-Gregorian calendar, and just specifying \"2021-07\" is insufficient to unambiguously determine a month in the target calendar. Therefore, you virtually always want to specify a referenceDay when using a non-ISO calendar." }, "returns": "A new Temporal.PlainYearMonth object, representing the year-month of the date specified by year, month, and referenceDay (in the ISO calendar), interpreted in the calendar system specified by calendar.", @@ -21173,7 +21804,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The toLocaleString() method of Temporal.PlainYearMonth instances returns a string with a language-sensitive representation of this year-month. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat.\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context.", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor. The calendar option must be provided with the same value as this year-month's calendar. Regarding the date-time component options and the style shortcuts (dateStyle and timeStyle), the options should follow one of these forms:\n

    \n
  • Provide none of them: year and month will default to \"numeric\".
  • \n
  • Provide dateStyle only: it expands to era, year, and month formats.
  • \n
  • Provide some date-time component options, where at least one of them is year or month. Only the specified date components will be included in the output.
  • \n
" }, "returns": "A string representing the given year-month according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, options).format(yearMonth), where options has been normalized as described above.\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

", @@ -21360,7 +21991,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.ZonedDateTime instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

For a list of commonly supported values, see Intl.Locale.prototype.getCalendars().\n

The set accessor of calendarId is undefined. You cannot change this property directly. Use the withCalendar() method to create a new Temporal.ZonedDateTime object with the desired new value." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The calendarId accessor property of Temporal.ZonedDateTime instances returns a string representing the calendar used to interpret the internal ISO 8601 date.\n

See Intl.supportedValuesOf() for a list of commonly supported calendar types.\n

The set accessor of calendarId is undefined. You cannot change this property directly. Use the withCalendar() method to create a new Temporal.ZonedDateTime object with the desired new value." }, "temporal.zoneddatetime.compare": { "url": "$MDN_URL$/web/javascript/reference/global_objects/temporal/zoneddatetime/compare", @@ -21937,7 +22568,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The toLocaleString() method of Temporal.ZonedDateTime instances returns a string with a language-sensitive representation of this date-time. In implementations with Intl.DateTimeFormat API support, this method delegates to Intl.DateTimeFormat and passes this date-time converted to a Temporal.Instant (because Intl.DateTimeFormat cannot directly format a Temporal.ZonedDateTime).\n

Every time toLocaleString is called, it has to perform a search in a big database of localization strings, which is potentially inefficient. When the method is called many times with the same arguments, it is better to create a Intl.DateTimeFormat object and use its format() method, because a DateTimeFormat object remembers the arguments passed to it and may decide to cache a slice of the database, so future format calls can search for localization strings within a more constrained context. However, currently Intl.DateTimeFormat does not support formatting Temporal.ZonedDateTime objects, so you must convert them to Temporal.Instant objects first before passing them to format().", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. Corresponds to the locales parameter of the Intl.DateTimeFormat() constructor.", "options": "An object adjusting the output format. Corresponds to the options parameter of the Intl.DateTimeFormat() constructor. If this date-time's calendar is not \"iso8601\", the calendar option must be provided with the same value; otherwise, if this date-time's calendar is \"iso8601\", the calendar option can be any value. The timeZone option must not be provided, as it is automatically set to be the date-time's timeZoneId. Regarding the date-time component options and the style shortcuts (dateStyle and timeStyle), the options should follow one of these forms:\n

    \n
  • Provide none of them: year, month, day, hour, minute, and second will default to \"numeric\".
  • \n
  • Provide at least one of dateStyle or timeStyle: the date-time components will be set according to the specified style and the locale.
  • \n
  • Provide some date-time component options. Only the specified date-time components will be included in the output.
  • \n
" }, "returns": "A string representing the given date-time according to language-specific conventions.\n

In implementations with Intl.DateTimeFormat, this is equivalent to new Intl.DateTimeFormat(locales, { ...options, timeZone: dateTime.timeZoneId }).format(dateTime.toInstant()), where options has been normalized as described above.\n

\n

Note:\nMost of the time, the formatting returned by toLocaleString() is consistent. However, the output may vary between implementations, even within the same locale — output variations are by design and allowed by the specification. It may also not be what you expect. For example, the string may use non-breaking spaces or be surrounded by bidirectional control characters. You should not compare the results of toLocaleString() to hardcoded constants.\n

", @@ -22104,16 +22735,13 @@ "Experimental", "StandardTrack" ], - "compatibility": { - "Firefox": "139", - "FirefoxAndroid": "139" - }, + "compatibility": {}, "baseline": { "level": "NONE" }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The withCalendar() method of Temporal.ZonedDateTime instances returns a new Temporal.ZonedDateTime object representing this date-time interpreted in the new calendar system. Because all Temporal objects are designed to be immutable, this method essentially functions as the setter for the date-time's calendarId property.\n

To replace the date-time component properties, use the with() method. To replace its time zone, use the withTimeZone() method.", "parameters": { - "calendar": "A string that corresponds to the calendarId property." + "calendar": "A string that corresponds to the calendarId property. See Intl.supportedValuesOf() for a list of commonly supported calendar types." }, "returns": "A new Temporal.ZonedDateTime object, representing the date-time specified by the original ZonedDateTime, interpreted in the new calendar system.", "throws": { @@ -22210,7 +22838,7 @@ "parameters": { "epochNanoseconds": "A BigInt that corresponds to the epochNanoseconds property.", "timeZone": "A string that corresponds to the timeZoneId property. Unlike all other Temporal APIs, it must be a valid time zone identifier (either named or offset) as-is, and cannot be a Temporal.ZonedDateTime instance or a date-time string.", - "calendar": "A string that corresponds to the calendarId property. Defaults to \"iso8601\"." + "calendar": "A string that corresponds to the calendarId property. See Intl.supportedValuesOf() for a list of commonly supported calendar types. Defaults to \"iso8601\"." }, "returns": "A new Temporal.ZonedDateTime object, representing the specific instant specified by the parameters.", "throws": { @@ -22428,7 +23056,7 @@ "lowDate": "2016-09-20", "highDate": "2019-03-20" }, - "doc": "The every() method of TypedArray instances tests whether all elements in the typed array pass the test implemented by the provided function. It returns a Boolean value. This method has the same algorithm as Array.prototype.every().", + "doc": "The every() method of TypedArray instances returns false if it finds one element in the array that does not satisfy the provided testing function. Otherwise, it returns true. This method has the same algorithm as Array.prototype.every().", "parameters": { "callbackFn": "A function to execute for each element in the typed array. It should return a truthy value to indicate the element passes the test, and a falsy value otherwise. The function is called with the following arguments:\n

\n
element
\n
\n

The current element being processed in the typed array.\n

\n
index
\n
\n

The index of the current element being processed in the typed array.\n

\n
array
\n
\n

The typed array every() was called upon.\n

\n
", "thisArg": "A value to use as this when executing callbackFn. See iterative methods." @@ -23082,7 +23710,7 @@ "lowDate": "2016-09-20", "highDate": "2019-03-20" }, - "doc": "The some() method of TypedArray instances tests whether at least one element in the typed array passes the test implemented by the provided function. It returns true if, in the typed array, it finds an element for which the provided function returns true; otherwise it returns false. It doesn't modify the typed array. This method has the same algorithm as Array.prototype.some().", + "doc": "The some() method of TypedArray instances returns true if it finds one element in the array that satisfies the provided testing function. Otherwise, it returns false. This method has the same algorithm as Array.prototype.some().", "parameters": { "callbackFn": "A function to execute for each element in the typed array. It should return a truthy value to indicate the element passes the test, and a falsy value otherwise. The function is called with the following arguments:\n
\n
element
\n
\n

The current element being processed in the typed array.\n

\n
index
\n
\n

The index of the current element being processed in the typed array.\n

\n
array
\n
\n

The typed array some() was called upon.\n

\n
", "thisArg": "A value to use as this when executing callbackFn. See iterative methods." @@ -23220,7 +23848,7 @@ }, "doc": "The toLocaleString() method of TypedArray instances returns a string representing the elements of the typed array. The elements are converted to strings using their toLocaleString methods and these strings are separated by a locale-specific string (such as a comma \",\"). This method has the same algorithm as Array.prototype.toLocaleString().", "parameters": { - "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", + "locales": "A string with a BCP 47 language tag, or an array of such strings. For the general form and interpretation of the locales argument, see the parameter description on the Intl main page.", "options": "An object with configuration properties. See Number.prototype.toLocaleString()." }, "returns": "A string representing the elements of the typed array." @@ -23557,13 +24185,19 @@ "StandardTrack" ], "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", "Firefox": "133", "FirefoxAndroid": "133", + "Opera": "124", "Safari": "18.2", - "SafariIOS": "18.2" + "SafariIOS": "18.2", + "Deno": "2.5.0" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-05" }, "doc": "The Uint8Array.fromBase64() static method creates a new Uint8Array object from a base64-encoded string.\n

This method should be preferred over Window.atob() because it results in a byte array, which is easier to work with than a string containing raw bytes, unless your decoded binary data is actually intended to be ASCII text. If you already have an array buffer allocated and you want to populate it, use the instance method Uint8Array.prototype.setFromBase64() instead.", "parameters": { @@ -23582,13 +24216,19 @@ "StandardTrack" ], "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", "Firefox": "133", "FirefoxAndroid": "133", + "Opera": "124", "Safari": "18.2", - "SafariIOS": "18.2" + "SafariIOS": "18.2", + "Deno": "2.5.0" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-05" }, "doc": "The Uint8Array.fromHex() static method creates a new Uint8Array object from a hexadecimal string.\n

This method parses the string into a byte array. To convert the string into a single number, use the parseInt() function with radix set to 16 instead.", "parameters": { @@ -23606,13 +24246,19 @@ "StandardTrack" ], "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", "Firefox": "133", "FirefoxAndroid": "133", + "Opera": "124", "Safari": "18.2", - "SafariIOS": "18.2" + "SafariIOS": "18.2", + "Deno": "2.5.0" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-05" }, "doc": "The setFromBase64() method of Uint8Array instances populates this Uint8Array object with bytes from a base64-encoded string, returning an object indicating how many bytes were read and written.\n

This method is most suitable for populating a pre-allocated array buffer. If you just want to create a new Uint8Array object from a base64-encoded string, use the static method Uint8Array.fromBase64() instead.", "parameters": { @@ -23631,13 +24277,19 @@ "StandardTrack" ], "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", "Firefox": "133", "FirefoxAndroid": "133", + "Opera": "124", "Safari": "18.2", - "SafariIOS": "18.2" + "SafariIOS": "18.2", + "Deno": "2.5.0" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-05" }, "doc": "The setFromHex() method of Uint8Array instances populates this Uint8Array object with bytes from a hex-encoded string, returning an object indicating how many bytes were read and written.\n

This method parses the string into a byte array. To convert the string into a single number, use the parseInt() function with radix set to 16 instead.", "parameters": { @@ -23655,13 +24307,19 @@ "StandardTrack" ], "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", "Firefox": "133", "FirefoxAndroid": "133", + "Opera": "124", "Safari": "18.2", - "SafariIOS": "18.2" + "SafariIOS": "18.2", + "Deno": "2.5.0" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-05" }, "doc": "The toBase64() method of Uint8Array instances returns a base64-encoded string based on the data in this Uint8Array object.\n

This method should be preferred over Window.btoa(), especially if you already have a Uint8Array holding the object, because you don't need to convert it to a string first.", "parameters": { @@ -23678,13 +24336,19 @@ "StandardTrack" ], "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", "Firefox": "133", "FirefoxAndroid": "133", + "Opera": "124", "Safari": "18.2", - "SafariIOS": "18.2" + "SafariIOS": "18.2", + "Deno": "2.5.0" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-05" }, "doc": "The toHex() method of Uint8Array instances returns a hex-encoded string based on the data in this Uint8Array object.\n

This method creates strings from a byte array. To convert individual numbers into hex, use the Number.prototype.toString() method with radix set to 16 instead.", "returns": "A hex-encoded string representing the data in the Uint8Array." @@ -23823,7 +24487,7 @@ "Nodejs": "", "Deno": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Note: unescape() is a non-standard function implemented by browsers and was only standardized for cross-engine compatibility. It is not required to be implemented by all JavaScript engines and may not work everywhere. Use decodeURIComponent() or decodeURI() if possible.\n

\n

The unescape() function computes a new string in which hexadecimal escape sequences are replaced with the characters that they represent. The escape sequences might be introduced by a function like escape().", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Note:\nunescape() is a non-standard function implemented by browsers and was only standardized for cross-engine compatibility. It is not required to be implemented by all JavaScript engines and may not work everywhere. Use decodeURIComponent() or decodeURI() if possible.\n

\n

The unescape() function computes a new string in which hexadecimal escape sequences are replaced with the characters that they represent. The escape sequences might be introduced by a function like escape().", "parameters": { "str": "A string to be decoded." }, @@ -23929,11 +24593,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The delete() method of WeakMap instances removes the specified element from this WeakMap.", + "doc": "The delete() method of WeakMap instances removes the entry specified by the key from this WeakMap.", "parameters": { - "key": "The key of the element to remove from the WeakMap object." + "key": "The key of the entry to remove from the WeakMap object. Object keys are compared by reference, not by value." }, - "returns": "true if an element in the WeakMap object has been removed successfully. false if the key is not found in the WeakMap. Always returns false if key is not an object or a non-registered symbol." + "returns": "true if an entry in the WeakMap object has been removed successfully. false if the key is not found in the WeakMap. Always returns false if key is not an object or a non-registered symbol." }, "weakmap.get": { "url": "$MDN_URL$/web/javascript/reference/global_objects/weakmap/get", @@ -23957,11 +24621,54 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The get() method of WeakMap instances returns a specified element from this WeakMap.", + "doc": "The get() method of WeakMap instances returns the value corresponding to the key in this WeakMap, or undefined if there is none. Object values are returned as the same reference that was originally stored, not as a copy, so mutations to the returned object will be reflected anywhere that reference is held, including inside the WeakMap.", "parameters": { - "key": "The key of the element to return from the WeakMap object." + "key": "The key of the value to return from the WeakMap object. Object keys are compared by reference, not by value." }, - "returns": "The element associated with the specified key in the WeakMap object. If\nthe key can't be found, undefined is returned. Always returns\nundefined if key is not an object or a non-registered symbol." + "returns": "The value associated with the specified key in the WeakMap object. If the key can't be found, undefined is returned. Always returns undefined if key is not an object or a non-registered symbol." + }, + "weakmap.getorinsert": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/weakmap/getorinsert", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Firefox": "144", + "FirefoxAndroid": "144" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The getOrInsert() method of WeakMap instances returns the value corresponding to the specified key in this WeakMap. If the key is not present, it inserts a new entry with the key and a given default value, and returns the inserted value.\n

If the computation of the default value is expensive, consider using WeakMap.prototype.getOrInsertComputed() instead, which takes a callback to compute the default value only if it's actually needed.", + "parameters": { + "key": "The key of the value to return from the WeakMap object. Must be either an object or a non-registered symbol. Object keys are compared by reference, not by value.", + "defaultValue": "The value to insert and return if the key is not already present in the WeakMap object." + }, + "returns": "The value associated with the specified key in the WeakMap object. If the key can't be found, undefined is returned.", + "throws": { + "TypeError": "Thrown if key is not an object or a non-registered symbol." + } + }, + "weakmap.getorinsertcomputed": { + "url": "$MDN_URL$/web/javascript/reference/global_objects/weakmap/getorinsertcomputed", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Firefox": "144", + "FirefoxAndroid": "144" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The getOrInsertComputed() method of WeakMap instances returns the value corresponding to the specified key in this WeakMap. If the key is not present, it inserts a new entry with the key and a default value computed from a given callback, and returns the inserted value.\n

Use this method instead of WeakMap.prototype.getOrInsert() when the default value is expensive to compute, and you want to avoid computing it unless it's actually needed.", + "parameters": { + "key": "The key of the element to return from the Map object. Must be either an object or a non-registered symbol. Object keys are compared by reference, not by value.", + "callback": "A function that returns the value to insert and return if the key is not already present in the Map object. The function is called with the following argument:\n

\n
key
\n
\n

The same key that was passed to getOrInsertComputed().\n

\n
" + }, + "returns": "The value associated with the specified key in the WeakMap object. If the key can't be found, the result of callback(key) is inserted and returned." }, "weakmap.has": { "url": "$MDN_URL$/web/javascript/reference/global_objects/weakmap/has", @@ -23985,11 +24692,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The has() method of WeakMap instances returns a boolean indicating whether an\nelement with the specified key exists in this WeakMap or not.", + "doc": "The has() method of WeakMap instances returns a boolean indicating whether an entry with the specified key exists in this WeakMap or not.", "parameters": { - "key": "The key of the element to test for presence in the WeakMap object." + "key": "The key of the entry to test for presence in the WeakMap object. Object keys are compared by reference, not by value." }, - "returns": "Returns true if an element with the specified key exists in the WeakMap object; otherwise false. Always returns false if key is not an object or a non-registered symbol." + "returns": "Returns true if an entry with the specified key exists in the WeakMap object; otherwise false. Always returns false if key is not an object or a non-registered symbol." }, "weakmap.set": { "url": "$MDN_URL$/web/javascript/reference/global_objects/weakmap/set", @@ -24013,10 +24720,10 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The set() method of WeakMap instances adds a new element with a specified key\nand value to this WeakMap.", + "doc": "The set() method of WeakMap instances adds a new entry with a specified key and value to this WeakMap, or updates an existing entry if the key already exists.", "parameters": { - "key": "Must be either an object or a non-registered symbol. The key of the entry to add to the WeakMap object.", - "value": "Any value representing the value of the entry to add to the WeakMap object." + "key": "The key of the entry to add to or modify within the WeakMap object. Must be either an object or a non-registered symbol. Object keys are compared by reference, not by value.", + "value": "The value of the entry to add to or modify within the WeakMap object. Can be any value." }, "returns": "The WeakMap object.", "throws": { @@ -24176,9 +24883,9 @@ "lowDate": "2015-09-30", "highDate": "2018-03-30" }, - "doc": "The add() method of WeakSet instances appends a new object to the end of this WeakSet.", + "doc": "The add() method of WeakSet instances inserts the specified value into this set, if it is not already present.", "parameters": { - "value": "Must be either an object or a non-registered symbol. The value to add to the WeakSet collection." + "value": "The value to add to the WeakSet object. Must be either an object or a non-registered symbol. Objects are compared by reference, not by value." }, "returns": "The WeakSet object.", "throws": { @@ -24207,11 +24914,11 @@ "lowDate": "2015-09-30", "highDate": "2018-03-30" }, - "doc": "The delete() method of WeakSet instances removes the specified element from this WeakSet.", + "doc": "The delete() method of WeakSet instances removes the specified value from this set, if it is in the set.", "parameters": { - "value": "The value to remove from the WeakSet object." + "value": "The value to remove from the WeakSet object. Objects are compared by reference, not by value." }, - "returns": "true if an element in the WeakSet object has been removed successfully. false if the value is not found in the WeakSet. Always returns false if value is not an object or a non-registered symbol." + "returns": "true if a value in the WeakSet object has been removed successfully. false if the value is not found in the WeakSet. Always returns false if value is not an object or a non-registered symbol." }, "weakset.has": { "url": "$MDN_URL$/web/javascript/reference/global_objects/weakset/has", @@ -24235,11 +24942,11 @@ "lowDate": "2015-09-30", "highDate": "2018-03-30" }, - "doc": "The has() method of WeakSet instances returns a boolean indicating whether an\nobject exists in this WeakSet or not.", + "doc": "The has() method of WeakSet instances returns a boolean indicating whether the specified value exists in this WeakSet or not.", "parameters": { - "value": "The value to test for presence in the WeakSet." + "value": "The value to test for presence in the WeakSet object. Objects are compared by reference, not by value." }, - "returns": "Returns true if an element with the specified value exists in the WeakSet object; otherwise false. Always returns false if value is not an object or a non-registered symbol." + "returns": "Returns true if the specified value exists in the WeakSet object; otherwise false. Always returns false if value is not an object or a non-registered symbol." }, "weakset.weakset": { "url": "$MDN_URL$/web/javascript/reference/global_objects/weakset/weakset", diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Html-obsolete.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Html-obsolete.json index 984a2f1f1c73..2aee27756f02 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Html-obsolete.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Html-obsolete.json @@ -659,6 +659,18 @@ } } }, + "meter": { + "doc": "", + "attrs": { + "form": { + "url": "$MDN_URL$/web/html/reference/elements/meter#form", + "status": [ + "Obsolete" + ], + "doc": "This optional attribute is used to explicitly set a <form> owner for the <meter> element. If omitted, the <meter> is associated with its ancestor <form> element or the form association set by the form attribute on another ancestor element, such as on a <fieldset>, if any. If included, the value must be the id of a <form> in the same tree." + } + } + }, "object": { "doc": "", "attrs": { diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Html.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Html.json index 90674b996fb0..be0cb4a29baa 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Html.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Html.json @@ -40,7 +40,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The anchor global attribute is used to associate a positioned element with an anchor element. The attribute's value is the id value of the element you want to anchor the positioned element to. The element can then be positioned using CSS anchor positioning.\n

\n

Note:\nAlternatively, you can associate a positioned element with an anchor element via CSS, using the anchor-name and position-anchor properties. If both anchoring techniques are used on the same element, the CSS technique takes precedence over the HTML technique.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The anchor global attribute is used to associate a positioned element with an anchor element. The attribute's value is the id value of the element you want to anchor the positioned element to. The element can then be positioned using CSS anchor positioning.\n

\n

Note:\nAlternatively, you can associate a positioned element with an anchor element via CSS, using the anchor-name and position-anchor properties. If both anchoring techniques are used on the same element, the CSS technique takes precedence over the HTML technique.\n

" }, "autocapitalize": { "url": "$MDN_URL$/web/html/reference/global_attributes/autocapitalize", @@ -91,8 +91,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The autofocus global attribute is a Boolean attribute indicating that an element should be focused on page load, or when the <dialog> that it is part of is displayed.\n
\n```html\n\n```\n
\n

No more than one element in the document or dialog may have the autofocus attribute. If applied to multiple elements the first one will receive focus.\n

\n

Note:\nThe autofocus attribute applies to all elements, not just form controls. For example, it might be used on a contenteditable area.\n

" }, @@ -248,7 +249,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The hidden global attribute is an enumerated attribute indicating that the browser should not render the contents of the element. For example, it can be used to hide elements of the page that can't be used until the login process has been completed.\n

The hidden attribute is used to indicate that the content of an element should not be presented to the user. This attribute can take any one of the following values:\n

    \n
  • an empty string
  • \n
  • the keyword hidden
  • \n
  • the keyword until-found
  • \n
\n

There are two states associated with the hidden attribute: the hidden state and the hidden until found state.\n

    \n
  • \n

    An empty string, or the keyword hidden, set the element to the hidden state. Additionally, invalid values set the element to the hidden state.\n

  • \n
  • \n

    The keyword until-found sets the element to the hidden until found state.\n

  • \n
\n

Thus, all the following set the element to the hidden state:\n

\n```html\nI'm hidden\nI'm also hidden\nI'm hidden too!\n```\n
\n

The following sets the element to the hidden until found state:\n

\n```html\nI'm hidden until found\n```\n
\n

The hidden attribute must not be used to hide content just from one presentation. If something is marked hidden, it is hidden from all presentations, including, for instance, screen readers.\n

Hidden elements shouldn't be linked from non-hidden elements. For example, it would be incorrect to use the href attribute to link to a section marked with the hidden attribute. If the content is not applicable or relevant, then there is no reason to link to it.\n

It would be fine, however, to use the ARIA aria-describedby attribute to refer to descriptions that are themselves hidden. While hiding the descriptions implies that they are not useful on their own, they could be written in such a way that they are useful in the specific context of being referenced from the element that they describe.\n

Similarly, a canvas element with the hidden attribute could be used by a scripted graphics engine as an off-screen buffer, and a form control could refer to a hidden form element using its form attribute.\n

Elements that are descendants of a hidden element are still active, which means that script elements can still execute and form elements can still submit." + "doc": "The hidden global attribute is an enumerated attribute indicating that the browser should not render the contents of the element. For example, it can be used to hide elements of the page that can't be used until the login process has been completed.\n

The hidden attribute indicates that the content of an element should not be presented to the user.\nThe attribute takes any one of the following values:\n

    \n
  • the keyword hidden
  • \n
  • the keyword until-found
  • \n
  • an empty string or no value
  • \n
\n

Invalid hidden attribute values also place the element in the hidden state. Therefore, all the following elements are in the hidden state:\n

\n```html\nI'm hidden\nI'm also hidden\nI'm hidden too!\nI'm equally as hidden!\n```\n
\n

The keyword until-found sets the element to the hidden until found state:\n

\n```html\nI'm hidden until found\n```\n
" }, "id": { "url": "$MDN_URL$/web/html/reference/global_attributes/id", @@ -270,7 +271,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The id global attribute defines an identifier (ID) which must be unique in the whole document.\n

The purpose of the ID attribute is to identify a single element when linking (using a fragment identifier), scripting, or styling (with CSS).\n

Elements with ID attributes are available as global properties. The property name is the ID attribute, and the property value is the element. For example, given markup like:\n

\n```html\n\n```\n
\n

You could access the paragraph element in JavaScript using code like:\n

\n```js\nconst content = window.preamble.textContent;\n```\n
" + "doc": "The id global attribute defines an identifier (ID) that must be unique within the entire document.\n

The purpose of the ID attribute is to identify a single element when linking (using a fragment identifier), scripting, or styling (with CSS).\n

You can access elements with ID attributes as global properties of the window object, where the property name is the ID value, and the property value is the corresponding element. For example, given this markup:\n

\n```html\n\n```\n
\n

You can access this paragraph element in JavaScript using the following code:\n

\n```js\nconst content = window.preamble.textContent;\n```\n
\n
\n

Warning:\nRelying on the window[\"id-value\"] or window.idValue pattern is dangerous and discouraged because it can lead to unexpected conflicts with existing or future APIs in the browser.\nFor example, if a browser introduces a built-in global property named preamble in the future, your code may no longer be able to access the HTML element.\nTo avoid such conflicts, always use the Document.getElementById() or Document.querySelector() method to access elements by ID.\n

" }, "inert": { "url": "$MDN_URL$/web/html/reference/global_attributes/inert", @@ -313,7 +314,7 @@ "lowDate": "2021-12-07", "highDate": "2024-06-07" }, - "doc": "The inputmode global attribute is an enumerated attribute that hints at the type of data that might be entered by the user while editing the element or its contents.\nThis allows a browser to display an appropriate virtual keyboard.\n

It is used primarily on <input> elements, but is usable on any element in contenteditable mode.\n

It's important to understand that the inputmode attribute doesn't cause any validity requirements to be enforced on input. To require that input conforms to a particular data type, choose an appropriate <input> element type. For specific guidance on choosing <input> types, see the Values section." + "doc": "The inputmode global attribute is an enumerated attribute that hints at the type of data that might be entered by the user while editing the element or its contents.\nThis allows a browser to display an appropriate virtual keyboard.\n

It is used primarily on <input> elements, but is usable on any element in contenteditable mode.\n

It's important to understand that the inputmode attribute doesn't cause any validity requirements to be enforced on input. To require that input conforms to a particular data type, choose an appropriate <input> element type. For specific guidance on choosing <input> types, see the Value section." }, "is": { "url": "$MDN_URL$/web/html/reference/global_attributes/is", @@ -331,7 +332,7 @@ "baseline": { "level": "NONE" }, - "doc": "

\n

The is global attribute allows you to specify that a standard HTML element should behave like a defined custom built-in element (see Using custom elements for more details).\n

This attribute can only be used if the specified custom element name has been successfully defined in the current document, and extends the element type it is being applied to." + "doc": "

\n

The is global attribute allows you to specify that a standard HTML element should behave like a defined customized built-in element (see Using custom elements for more details).\n

This attribute can only be used if the specified custom element name has been successfully defined in the current document, and extends the element type it is being applied to." }, "itemid": { "url": "$MDN_URL$/web/html/reference/global_attributes/itemid", @@ -393,7 +394,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The lang global attribute helps define the language of an element: the language that non-editable elements are written in, or the language that the editable elements should be written in by the user. The attribute contains a single \"language tag\" in the format defined in RFC 5646: Tags for Identifying Languages (also known as BCP 47).\n

\n

Note:\nThe default value of lang is the empty string, which means that the language is unknown. Therefore, it is recommended to always specify an appropriate value for this attribute.\n

\n

If the attribute value is the empty string (lang=\"\"), the language is set to unknown; if the language tag is not valid according to BCP47, it is set to invalid.\n

Even if the lang attribute is set, it may not be taken into account, as the xml:lang attribute has priority.\n

For the CSS pseudo-class :lang, two invalid language names are different if their names are different. So while :lang(es) matches both lang=\"es-ES\" and lang=\"es-419\", :lang(xyzzy) would not match lang=\"xyzzy-Zorp!\"." + "doc": "The lang global attribute helps define the language of an element: the language that non-editable elements are written in, or the language that the editable elements should be written in by the user. The attribute contains a single BCP 47 language tag.\n

\n

Note:\nThe default value of lang is the empty string, which means that the language is unknown. Therefore, it is recommended to always specify an appropriate value for this attribute.\n

\n

If the attribute value is the empty string (lang=\"\"), the language is set to unknown; if the language tag is not valid according to BCP47, it is set to invalid.\n

Even if the lang attribute is set, it may not be taken into account, as the xml:lang attribute has priority.\n

For the CSS pseudo-class :lang, two invalid language names are different if their names are different. So while :lang(es) matches both lang=\"es-ES\" and lang=\"es-419\", :lang(xyzzy) would not match lang=\"xyzzy-Zorp!\"." }, "nonce": { "url": "$MDN_URL$/web/html/reference/global_attributes/nonce", @@ -546,7 +547,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The tabindex global attribute allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the Tab key, hence the name) and determine their relative ordering for sequential focus navigation.\n

It accepts an integer as a value, with different results depending on the integer's value:\n

\n

Note:\nIf an HTML element renders and has tabindex attribute with any valid integer value, the element can be focused with JavaScript (by calling the focus() method) or visually by clicking with the mouse. The particular tabindex value controls whether the element is tabbable (i.e., reachable via sequential keyboard navigation, usually with the Tab key).\n

\n
    \n
  • \n

    A negative value (the exact negative value doesn't actually matter, usually tabindex=\"-1\") means that the element is not reachable via sequential keyboard navigation.\n

    \n

    Note: tabindex=\"-1\" may be useful for elements that should not be navigated to directly using the Tab key, but need to have keyboard focus set to them. Examples include an off-screen modal window that should be focused when it comes into view, or a form submission error message that should be immediately focused when an errant form is submitted.\n

    \n
  • \n
  • \n

    tabindex=\"0\" means that the element should be focusable in sequential keyboard navigation, after any positive tabindex values. The focus navigation order of these elements is defined by their order in the document source.\n

  • \n
  • \n

    A positive value means the element should be focusable in sequential keyboard navigation, with its order defined by the value of the number. That is, tabindex=\"4\" is focused before tabindex=\"5\" and tabindex=\"0\", but after tabindex=\"3\". If multiple elements share the same positive tabindex value, their order relative to each other follows their position in the document source. The maximum value for tabindex is 32767.\n

  • \n
  • \n

    If the tabindex attribute is included with no value set, whether the element is focusable is determined by the user agent.\n

    \n

    Warning:\nYou are recommended to only use 0 and -1 as tabindex values. Avoid using tabindex values greater than 0 and CSS properties that can change the order of focusable HTML elements (Ordering flex items). Doing so makes it difficult for people who rely on using keyboard for navigation or assistive technology to navigate and operate page content. Instead, write the document with the elements in a logical sequence.\n

    \n
  • \n
\n

Some focusable HTML elements have a default tabindex value of 0 set under the hood by the user agent. These elements are an <a> or <area> with href attribute, <button>, <frame> , <iframe>, <input>, <object>, <select>, <textarea>, and SVG <a> element, or a <summary> element that provides summary for a <details> element. Developers shouldn't add the tabindex attribute to these elements unless it changes the default behavior (for example, including a negative value will remove the element from the focus navigation order).\n

\n

Warning:\nThe tabindex attribute must not be used on the <dialog> element.\n

" + "doc": "The tabindex global attribute allows developers to make HTML elements focusable, allow or prevent them from being sequentially focusable (usually with the Tab key, hence the name) and determine their relative ordering for sequential focus navigation.\n

It accepts an integer as a value, with different results depending on the integer's value:\n

\n

Note:\nIf an HTML element renders and has tabindex attribute with any valid integer value, the element can be focused with JavaScript (by calling the focus() method) or visually by clicking with the mouse. The particular tabindex value controls whether the element is tabbable (i.e., reachable via sequential keyboard navigation, usually with the Tab key).\n

\n
    \n
  • \n

    A negative value (the exact negative value doesn't actually matter, usually tabindex=\"-1\") means that the element is not reachable via sequential keyboard navigation.\n

    \n

    Note:\ntabindex=\"-1\" may be useful for elements that should not be navigated to directly using the Tab key, but need to have keyboard focus set to them. Examples include an off-screen modal window that should be focused when it comes into view, or a form submission error message that should be immediately focused when an errant form is submitted.\n

    \n
  • \n
  • \n

    tabindex=\"0\" means that the element should be focusable in sequential keyboard navigation, after any positive tabindex values. The focus navigation order of these elements is defined by their order in the document source.\n

  • \n
  • \n

    A positive value means the element should be focusable in sequential keyboard navigation, with its order defined by the value of the number. That is, tabindex=\"4\" is focused before tabindex=\"5\" and tabindex=\"0\", but after tabindex=\"3\". If multiple elements share the same positive tabindex value, their order relative to each other follows their position in the document source. The maximum value for tabindex is 32767.\n

  • \n
  • \n

    If the tabindex attribute is included with no value set, whether the element is focusable is determined by the user agent.\n

    \n

    Warning:\nYou are recommended to only use 0 and -1 as tabindex values. Avoid using tabindex values greater than 0 and CSS properties that can change the order of focusable HTML elements (Ordering flex items). Doing so makes it difficult for people who rely on using keyboard for navigation or assistive technology to navigate and operate page content. Instead, write the document with the elements in a logical sequence.\n

    \n
  • \n
\n

Some focusable HTML elements have a default tabindex value of 0 set under the hood by the user agent. These elements are an <a> or <area> with href attribute, <button>, <frame> , <iframe>, <input>, <object>, <select>, <textarea>, and SVG <a> element, or a <summary> element that provides summary for a <details> element. Developers shouldn't add the tabindex attribute to these elements unless it changes the default behavior (for example, including a negative value will remove the element from the focus navigation order).\n

\n

Warning:\nThe tabindex attribute must not be used on the <dialog> element.\n

" }, "title": { "url": "$MDN_URL$/web/html/reference/global_attributes/title", @@ -586,8 +587,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "The translate global attribute is an enumerated attribute that is used to specify whether an element's translatable attribute values and its Text node children should be translated when the page is localized, or whether to leave them unchanged.\n

It can have the following values:\n

    \n
  • empty string or yes, which indicates that the element should be translated when the page is localized.
  • \n
  • no, which indicates that the element must not be translated.
  • \n
\n

Although not all browsers recognize this attribute, it is respected by automatic translation systems such as Google Translate, and may also be respected by tools used by human translators. As such it's important that web authors use this attribute to mark content that should not be translated." }, @@ -750,7 +752,7 @@ "lowDate": "2019-09-19", "highDate": "2022-03-19" }, - "doc": "Causes the browser to treat the linked URL as a download. Can be used with or without a filename value:\n

    \n
  • \n

    Without a value, the browser will suggest a filename/extension, generated from various sources:\n

    \n
  • \n
  • \n

    filename: defining a value suggests it as the filename. / and \\ characters are converted to underscores (_). Filesystems may forbid other characters in filenames, so browsers will adjust the suggested name if necessary.\n

  • \n
\n
\n

Note:\n

    \n
  • \n

    download only works for same-origin URLs, or the blob: and data: schemes.\n

  • \n
  • \n

    How browsers treat downloads varies by browser, user settings, and other factors. The user may be prompted before a download starts, or the file may be saved automatically, or it may open automatically, either in an external application or in the browser itself.\n

  • \n
  • \n

    If the Content-Disposition header has different information from the download attribute, resulting behavior may differ:\n

      \n
    • If the header specifies a filename, it takes priority over a filename specified in the download attribute.
    • \n
    • If the header specifies a disposition of inline, Chrome and Firefox prioritize the attribute and treat it as a download. Old Firefox versions (before 82) prioritize the header and will display the content inline.
    • \n
    \n
  • \n
\n
" + "doc": "Causes the browser to treat the linked URL as a download. Can be used with or without a filename value:\n
    \n
  • \n

    Without a value, the browser will suggest a filename/extension, generated from various sources:\n

    \n
  • \n
  • \n

    filename: defining a value suggests it as the filename. / and \\ characters are converted to underscores (_). Filesystems may forbid other characters in filenames, so browsers will adjust the suggested name if necessary.\n

  • \n
\n
\n

Note:\n

    \n
  • download only works for same-origin URLs, or the blob: and data: schemes.
  • \n
  • How browsers treat downloads varies by browser, user settings, and other factors. The user may be prompted before a download starts, or the file may be saved automatically, or it may open automatically, either in an external application or in the browser itself.
  • \n
  • If the Content-Disposition header has different information from the download attribute, resulting behavior may differ:\n
      \n
    • If the header specifies a filename, it takes priority over a filename specified in the download attribute.
    • \n
    • If the header specifies a disposition of inline, Chrome and Firefox prioritize the attribute and treat it as a download. Old Firefox versions (before 82) prioritize the header and will display the content inline.
    • \n
    \n
  • \n
\n
" }, "href": { "url": "$MDN_URL$/web/html/reference/elements/a#href", @@ -1005,7 +1007,7 @@ "Permitted content": "Phrasing content\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM Interface": "HTMLElement\n" } @@ -1148,7 +1150,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The coords attribute details the coordinates of the shape attribute in size, shape, and placement of an <area>.\nThis attribute must not be used if shape is set to default.\n
    \n
  • rect: the value is x1,y1,x2,y2.\nThe value specifies the coordinates of the top-left and bottom-right corner of the rectangle.\nFor example, in <area shape=\"rect\" coords=\"0,0,253,27\" href=\"#\" target=\"_blank\" alt=\"Mozilla\"> the coordinates are 0,0 and 253,27, indicating the top-left and bottom-right corners of the rectangle, respectively.
  • \n
  • circle: the value is x,y,radius. Value specifies the coordinates of the circle center and the radius.\nFor example: <area shape=\"circle\" coords=\"130,136,60\" href=\"#\" target=\"_blank\" alt=\"MDN\">
  • \n
  • poly: the value is x1,y1,x2,y2,..,xn,yn. Value specifies the coordinates of the edges of the polygon.\nIf the first and last coordinate pairs are not the same, the browser will add the last coordinate pair to close the polygon
  • \n
\n

The values are numbers of CSS pixels." + "doc": "The coords attribute details the coordinates of the shape attribute in size, shape, and placement of an <area>.\nThis attribute must not be used if shape is set to default.\n

    \n
  • rect: the value is x1,y1,x2,y2.\nThe value specifies the coordinates of the top-left and bottom-right corner of the rectangle.\nFor example, in <area shape=\"rect\" coords=\"0,0,253,27\" href=\"#\" target=\"_blank\" alt=\"Mozilla\"> the coordinates are 0,0 and 253,27, indicating the top-left and bottom-right corners of the rectangle, respectively.
  • \n
  • circle: the value is x,y,radius. Value specifies the coordinates of the circle center and the radius.\nFor example: <area shape=\"circle\" coords=\"130,136,60\" href=\"#\" target=\"_blank\" alt=\"MDN\">
  • \n
  • poly: the value is x1,y1,x2,y2,..,xn,yn. Value specifies the coordinates of the edges of the polygon.\nIf the first and last coordinate pairs are not the same, the browser will add the last coordinate pair to close the polygon
  • \n
\n

The values are numbers of CSS pixels. Our shape generator can help you generate the coords syntax by selecting points on an image you upload." }, "download": { "url": "$MDN_URL$/web/html/reference/elements/area#download", @@ -1404,13 +1406,13 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <audio> HTML element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.\n

The above example shows basic usage of the <audio> element. In a similar manner to the <img> element, we include a path to the media we want to embed inside the src attribute; we can include other attributes to specify information such as whether we want it to autoplay and loop, whether we want to show the browser's default audio controls, etc.\n

The content inside the opening and closing <audio></audio> tags is shown as a fallback in browsers that don't support the element.", + "doc": "The <audio> HTML element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element: the browser will choose the most suitable one.\nIt can also be the destination for streamed media, using a MediaStream.\n

The above example shows basic usage of the <audio> element.\nIn a similar manner to the <img> element, we include a path to the media we want to embed inside the src attribute; we can include other attributes to specify information such as whether we want it to autoplay and loop, whether we want to show the browser's default audio controls, etc.\n

The content inside the opening and closing <audio></audio> tags is shown as a fallback in browsers that don't support the element.", "details": { "Content categories": "Flow content\n, phrasing content, embedded content. If it has a\ncontrols\nattribute: interactive\ncontent and palpable content.\n", "Permitted content": "If the element has a\nsrc\nattribute: zero or more\n<track>\nelements\nfollowed by transparent content that contains no\n<audio>\nor\n<video>\nmedia elements.\n
\nElse: zero or more\n<source>\nelements followed by zero or more\n<track>\nelements followed by transparent content that contains no\n<audio>\nor\n<video>\nmedia elements.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts embedded content.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "application\n", "DOM interface": "HTMLAudioElement\n" }, @@ -1424,7 +1426,7 @@ "baseline": { "level": "NONE" }, - "doc": "A Boolean attribute: if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\n

\n

Note:\nSites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control. See our autoplay guide for additional information about how to properly use autoplay.\n

" + "doc": "A Boolean attribute: if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\n
\n

Note:\nSites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible.\nIf you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it).\nHowever, this can be useful when creating media elements whose source will be set at a later time, under user control.\nSee our autoplay guide for additional information about how to properly use autoplay.\n

" }, "controls": { "url": "$MDN_URL$/web/html/reference/elements/audio#controls", @@ -1502,7 +1504,7 @@ "baseline": { "level": "NONE" }, - "doc": "A Boolean attribute used to disable the capability of remote playback in devices that are attached using wired (HDMI, DVI, etc.) and wireless technologies (Miracast, Chromecast, DLNA, AirPlay, etc.). See this proposed specification for more information.\n

In Safari, you can use x-webkit-airplay=\"deny\" as a fallback." + "doc": "A Boolean attribute used to disable the capability of remote playback in devices that are attached using wired (HDMI, DVI, etc.) and wireless technologies (Miracast, Chromecast, DLNA, AirPlay, etc.). See the proposed Remote Playback API specification for more information.\n

In Safari, you can use x-webkit-airplay=\"deny\" as a fallback." }, "loop": { "url": "$MDN_URL$/web/html/reference/elements/audio#loop", @@ -1651,7 +1653,7 @@ "Permitted content": "None; it is a\nvoid element\n.\n", "Tag omission": "Must have a start tag and must not have an end tag.\n", "Permitted parents": "A\n<head>\nthat doesn't contain another\n<base>\nelement.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLBaseElement\n" }, @@ -2112,7 +2114,7 @@ "Permitted content": "None; it is a\nvoid element\n.\n", "Tag omission": "Must have a start tag and must not have an end tag. In XHTML documents,\nwrite this element as\n<br />\n.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "none\n,\npresentation\n", "DOM interface": "HTMLBRElement\n" }, @@ -2190,7 +2192,7 @@ "baseline": { "level": "NONE" }, - "doc": "Specifies the action to be performed on an element being controlled by a control <button>, specified via the commandfor attribute. The possible values are:\n

\n
\"show-modal\"
\n
\n

The button will show a <dialog> as modal. If the dialog is already modal, no action will be taken. This is a declarative equivalent of calling the .showModal() method on the dialog element.\n

\n
\"close\"
\n
\n

The button will close a <dialog> element. If the dialog is already closed, no action will be taken. This is a declarative equivalent of calling the .close() method on the dialog element.\n

\n
\"request-close\"
\n
\n

The button will request to close a <dialog> element. If the dialog is already closed, no action will be taken. This is a declarative equivalent of calling the .requestClose() method on the dialog element.\n

\n
\"show-popover\"
\n
\n

The button will show a hidden popover. If you try to show an already showing popover, no action will be taken. See Popover API for more details. This is equivalent to popovertargetaction with the value \"show\". This is a declarative equivalent of calling the .showPopover() method on the popover element.\n

\n
\"hide-popover\"
\n
\n

The button will hide a showing popover. If you try to hide an already hidden popover, no action will be taken. See Popover API for more details. This is equivalent to popovertargetaction with the value \"hide\". This is a declarative equivalent of calling the .hidePopover() method on the popover element.\n

\n
\"toggle-popover\"
\n
\n

The button will toggle a popover between showing and hidden. If the popover is hidden, it will be shown; if the popover is showing, it will be hidden. See Popover API for more details. This is equivalent to popovertargetaction with the value \"toggle\". This is a declarative equivalent of calling the .togglePopover() method on the popover element.\n

\n
Custom values
\n
\n

This attribute can represent custom values that are prefixed with a two hyphen characters (--). Buttons with a custom value will dispatch the CommandEvent on the controlled element.\n

\n
" + "doc": "Specifies the action to be performed on an element being controlled by a control <button> specified via the commandfor attribute. The possible values are:\n
\n
\"show-modal\"
\n
\n

The button will show a <dialog> as modal. If the dialog is already modal, no action will be taken. This is a declarative equivalent of calling the HTMLDialogElement.showModal() method on the <dialog> element.\n

\n
\"close\"
\n
\n

The button will close a <dialog> element. If the dialog is already closed, no action will be taken. This is a declarative equivalent of calling the HTMLDialogElement.close() method on the <dialog> element.\n

\n
\"request-close\"
\n
\n

The button will trigger a cancel event on a <dialog> element to request that the browser dismiss it, followed by a close event. This differs from the close command in that authors can call Event.preventDefault() on the cancel event to prevent the <dialog> from closing. If the dialog is already closed, no action will be taken. This is a declarative equivalent of calling the HTMLDialogElement.requestClose() method on the <dialog> element.\n

\n
\"show-popover\"
\n
\n

The button will show a hidden popover. If you try to show an already showing popover, no action will be taken. See Popover API for more details. This is equivalent to setting a value of show for the popovertargetaction attribute, and also provides a declarative equivalent to calling the HTMLElement.showPopover() method on the popover element.\n

\n
\"hide-popover\"
\n
\n

The button will hide a showing popover. If you try to hide an already hidden popover, no action will be taken. See Popover API for more details. This is equivalent to setting a value of hide for the popovertargetaction attribute, and also provides a declarative equivalent to calling the HTMLElement.hidePopover() method on the popover element.\n

\n
\"toggle-popover\"
\n
\n

The button will toggle a popover between showing and hidden. If the popover is hidden, it will be shown; if the popover is showing, it will be hidden. See Popover API for more details. This is equivalent to setting a value of toggle for the popovertargetaction attribute, and also provides a declarative equivalent to calling the HTMLElement.togglePopover() method on the popover element.\n

\n
Custom values
\n
\n

This attribute can represent custom values that are prefixed with a two hyphen characters (--). Buttons with a custom value will dispatch the CommandEvent on the controlled element.\n

\n
" }, "commandfor": { "url": "$MDN_URL$/web/html/reference/elements/button#commandfor", @@ -2207,7 +2209,7 @@ "baseline": { "level": "NONE" }, - "doc": "Turns a <button> element into a command button, controlling the given interactive element; takes the ID of the element to control as its value. This is a more general version of popovertarget." + "doc": "Turns a <button> element into a command button, controlling a given interactive element by issuing the command specified in the button's command attribute. The commandfor attribute takes the ID of the element to control as its value. This is a more general version of popovertarget." }, "disabled": { "url": "$MDN_URL$/web/html/reference/elements/button#disabled", @@ -2499,7 +2501,7 @@ "Permitted content": "Transparent but with no\ninteractive content\ndescendants except for\n<a>\nelements,\n<button>\nelements,\n<input>\nelements whose\ntype\nattribute is\ncheckbox\n,\nradio\n, or\nbutton\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLCanvasElement\n" }, @@ -2574,7 +2576,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <caption> HTML element specifies the caption (or title) of a table, providing the table an accessible description.", + "doc": "The <caption> HTML element specifies the caption (or title) of a table, providing the table an accessible name or accessible description.", "details": { "Content categories": "None.\n", "Permitted content": "Flow content\n.\n", @@ -2652,7 +2654,7 @@ "Permitted content": "Phrasing content\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLElement\nUp to Gecko 1.9.2 (Firefox 4)\ninclusive, Firefox implements the\nHTMLSpanElement\ninterface for this element.\n" } @@ -2714,7 +2716,7 @@ "Permitted content": "None; it is a\nvoid element\n.\n", "Tag omission": "Must have a start tag and must not have an end tag.\n", "Permitted parents": "<colgroup>\nonly, though it can be implicitly\ndefined as its start tag is not mandatory. The\n<colgroup>\nmust not have a\nspan\nattribute.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLTableColElement\n" }, @@ -2754,7 +2756,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -2773,7 +2774,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -2793,7 +2793,6 @@ "Edge": "12", "Firefox": "1", "FirefoxAndroid": "4", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -2874,7 +2873,7 @@ "Permitted content": "If the\nspan\nattribute is\npresent: none.\n
\nIf\nthe attribute is not present: zero or more\n<col>\nelement\n", "Tag omission": "The start tag may be omitted, if it has a\n<col>\nelement as its first child and if it is not preceded by a\n<colgroup>\nwhose end tag has been omitted.\n
\nThe\nend tag may be omitted, if it is not followed by a space or a comment.\n", "Permitted parents": "A\n<table>\nelement. The\n<colgroup>\nmust appear after any\n<caption>\nelement, but before any\n<thead>\n,\n<tbody>\n,\n<tfoot>\n, and\n<tr>\nelements.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLTableColElement\n" }, @@ -2914,7 +2913,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -2933,7 +2931,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -3079,7 +3076,7 @@ "baseline": { "level": "NONE" }, - "doc": "The <datalist> HTML element contains a set of <option> elements that represent the permissible or recommended options available to choose from within other controls.\n

To bind the <datalist> element to the control, we give it a unique identifier in the id attribute, and then add the list attribute to the <input> element with the same identifier as value.\nOnly certain types of <input> support this behavior, and it can also vary from browser to browser.\n

Each <option> element should have a value attribute, which represents a suggestion to be entered into the input. It can also have a label attribute, or, missing that, some text content, which may be displayed by the browser instead of value (Firefox), or in addition to value (Chrome and Safari, as supplemental text). The exact content of the drop-down menu depends on the browser, but when clicked, content entered into control field will always come from the value attribute.\n

\n

Note: <datalist> is not a replacement for <select>. A <datalist> does not represent an input itself; it is a list of suggested values for an associated control. The control can still accept any value that passes validation, even if it is not in this suggestion list.\n

", + "doc": "The <datalist> HTML element contains a set of <option> elements that represent the permissible or recommended options available to choose from within other controls.\n

To bind the <datalist> element to the control, we give it a unique identifier in the id attribute, and then add the list attribute to the <input> element with the same identifier as value.\nOnly certain types of <input> support this behavior, and it can also vary from browser to browser.\n

Each <option> element should have a value attribute, which represents a suggestion to be entered into the input. It can also have a label attribute, or, missing that, some text content, which may be displayed by the browser instead of value (Firefox), or in addition to value (Chrome and Safari, as supplemental text). The exact content of the drop-down menu depends on the browser, but when clicked, content entered into control field will always come from the value attribute.\n

\n

Note:\n<datalist> is not a replacement for <select>. A <datalist> does not represent an input itself; it is a list of suggested values for an associated control. The control can still accept any value that passes validation, even if it is not in this suggestion list.\n

", "details": { "Content categories": "Flow content\n,\nphrasing content\n.\n", "Permitted content": "Either\nphrasing content\nor zero or more\n<option>\nelements.\n", @@ -3116,7 +3113,7 @@ "Permitted content": "Flow content\n.\n", "Tag omission": "The start tag is required. The end tag may be omitted if this element is\nimmediately followed by another\n<dd>\nelement or a\n<dt>\nelement, or if there is no more content in\nthe parent element.\n", "Permitted parents": "A\n<dl>\nor a\n<div>\nthat is a child of a\n<dl>\n.\n
\nThis element can be used after a\n<dt>\nor another\n<dd>\nelement.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLElement\n" } @@ -3248,7 +3245,7 @@ "level": "LOW", "lowDate": "2024-09-03" }, - "doc": "This attribute enables multiple <details> elements to be connected, with only one open at a time. This allows developers to easily create UI features such as accordions without scripting.\n

The name attribute specifies a group name — give multiple <details> elements the same name value to group them. Only one of the grouped <details> elements can be open at a time — opening one will cause another to close. If multiple grouped <details> elements are given the open attribute, only the first one in the source order will be rendered open.\n

\n

Note: <details> elements don't have to be adjacent to one another in the source to be part of the same group.\n

" + "doc": "This attribute enables multiple <details> elements to be connected, with only one open at a time. This allows developers to easily create UI features such as accordions without scripting.\n

The name attribute specifies a group name — give multiple <details> elements the same name value to group them. Only one of the grouped <details> elements can be open at a time — opening one will cause another to close. If multiple grouped <details> elements are given the open attribute, only the first one in the source order will be rendered open.\n

\n

Note:\n<details> elements don't have to be adjacent to one another in the source to be part of the same group.\n

" }, "open": { "url": "$MDN_URL$/web/html/reference/elements/details#open", @@ -3339,13 +3336,14 @@ "closedby": { "url": "$MDN_URL$/web/html/reference/elements/dialog#closedby", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "134", "ChromeAndroid": "134", "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", "Opera": "119" }, "baseline": { @@ -3496,9 +3494,15 @@ "Permitted content": "Either: Zero or more groups each consisting of one or more\n<dt> elements followed by one or more\n<dd> elements, optionally intermixed with\n<script> and\n<template> elements.
Or: (in\nWHATWG HTML, W3C HTML 5.2\nand later) One or more <div> elements,\noptionally intermixed with <script> and\n<template> elements.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nflow content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "group\n,\nlist\n,\nnone\n,\npresentation\n", "DOM interface": "HTMLDListElement\n" + }, + "attrs": { + "compact": { + "url": "$MDN_URL$/web/html/reference/elements/dl#compact", + "doc": "This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute is browser-specific. Use CSS instead: to give a similar effect as the compact attribute, the CSS property line-height can be used with a value of 80%." + } } }, "dt": { @@ -3527,7 +3531,7 @@ "Permitted content": "Flow content\n, but with no\n<header>\n,\n<footer>\n, sectioning content or heading content\ndescendants.\n", "Tag omission": "The start tag is required. The end tag may be omitted if this element is\nimmediately followed by another\n<dt>\nelement or a\n<dd>\nelement, or if there is no more content in\nthe parent element.\n", "Permitted parents": "A\n<dl>\nor (in\nWHATWG\nHTML,\nW3C\nHTML 5.2 and later) a\n<div>\nthat is a child of a\n<dl>\n.\n
\nThis element can be used before a\n<dd>\nor another\n<dt>\nelement.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "listitem\n", "DOM interface": "HTMLElement\nUp to Gecko 1.9.2 (Firefox 4)\ninclusive, Firefox implements the\nHTMLSpanElement\ninterface for this element.\n" } @@ -3589,7 +3593,7 @@ "Permitted content": "None; it is a\nvoid element\n.\n", "Tag omission": "Must have a start tag and must not have an end tag.\n", "Permitted parents": "Any element that accepts embedded content.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "application\n,\ndocument\n,\nimg\n,\nnone\n,\npresentation\n", "DOM interface": "HTMLEmbedElement\n" }, @@ -3731,9 +3735,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -3745,7 +3749,7 @@ "Permitted content": "None.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts embedded content.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "application\n,\ndocument\n,\nimg\n,\nnone\n,\npresentation\n", "DOM interface": "HTMLFencedFrameElement\n" }, @@ -3922,13 +3926,13 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <figcaption> HTML element represents a caption or legend describing the rest of the contents of its parent <figure> element, providing the <figure> an accessible description.", + "doc": "The <figcaption> HTML element represents a caption or legend describing the rest of the contents of its parent <figure> element, providing the <figure> an accessible name.", "details": { "Content categories": "None.\n", "Permitted content": "Flow content\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "A\n<figure>\nelement; the\n<figcaption>\nelement must be its first or last child.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "group\n,\nnone\n,\npresentation\n", "DOM interface": "HTMLElement\n" } @@ -3960,7 +3964,7 @@ "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nFlow content\n.\n", "Implicit ARIA role": "figure\n", - "Permitted ARIA roles": "With no\nfigcaption \ndescendant:\nany\n,\notherwise no permitted roles\n", + "Permitted ARIA roles": "With no\nfigcaption\ndescendant:\nany\n,\notherwise no permitted roles\n", "DOM interface": "HTMLElement\n" } }, @@ -4111,7 +4115,7 @@ "attrs": { "accept": { "url": "$MDN_URL$/web/html/reference/elements/form#accept", - "doc": "Comma-separated content types the server accepts.\n
\n

Note: This attribute has been deprecated and should not be used. Instead, use the accept attribute on <input type=file> elements.\n

" + "doc": "Comma-separated content types the server accepts.\n
\n

Note:\nThis attribute has been deprecated and should not be used. Instead, use the accept attribute on <input type=file> elements.\n

" }, "accept-charset": { "url": "$MDN_URL$/web/html/reference/elements/form#accept-charset", @@ -4229,7 +4233,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The name of the form. The value must not be the empty string, and must be unique among the form elements in the forms collection that it is in, if any." + "doc": "The name of the form. The value must not be the empty string, and must be unique among the form elements in the forms collection that it is in, if any. The name becomes a property of the Window, Document, and document.forms objects, containing a reference to the form element." }, "novalidate": { "url": "$MDN_URL$/web/html/reference/elements/form#novalidate", @@ -4269,8 +4273,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "Controls the annotations and what kinds of links the form creates. Annotations include external, nofollow, opener, noopener, and noreferrer. Link types include help, prev, next, search, and license. The rel value is a space-separated list of these enumerated values." }, @@ -4547,13 +4552,13 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <head> HTML element contains machine-readable information (metadata) about the document, like its title, scripts, and style sheets. There can be only one <head> element in an HTML document.\n
\n

Note: <head> primarily holds information for machine processing, not human-readability. For human-visible information, like top-level headings and listed authors, see the <header> element.\n

", + "doc": "The <head> HTML element contains machine-readable information (metadata) about the document, like its title, scripts, and style sheets. There can be only one <head> element in an HTML document.\n
\n

Note:\n<head> primarily holds information for machine processing, not human-readability. For human-visible information, like top-level headings and listed authors, see the <header> element.\n

", "details": { "Content categories": "None.\n", "Permitted content": "If the document is an <iframe>\nsrcdoc document, or if title\ninformation is available from a higher level protocol (like the\nsubject line in HTML email), zero or more elements of metadata\ncontent.\n

Otherwise, one or more elements of metadata content where exactly one\nis a <title> element.\n", "Tag omission": "The start tag may be omitted if the first thing inside the\n<head>\nelement is an element.\n
\nThe end tag may be\nomitted if the first thing following the\n<head>\nelement is not a space character or a comment.\n", "Permitted parents": "An\n<html>\nelement, as its first child.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLHeadElement\n" }, @@ -4918,7 +4923,7 @@ "Permitted content": "None.\n", "Tag omission": "None, both the starting and ending tags are mandatory.\n", "Permitted parents": "Any element that accepts embedded content.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "application\n,\ndocument\n,\nimg\n,\nnone\n,\npresentation\n", "DOM interface": "HTMLIFrameElement\n" }, @@ -5198,7 +5203,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "A targetable name for the embedded browsing context. This can be used in the target attribute of the <a>, <form>, or <base> elements; the formtarget attribute of the <input> or <button> elements; or the windowName parameter in the window.open() method." + "doc": "A targetable name for the embedded browsing context. This can be used in the target attribute of the <a>, <form>, or <base> elements; the formtarget attribute of the <input> or <button> elements; or the windowName parameter in the window.open() method. In addition, the name becomes a property of the Window and Document objects, containing a reference to the embedded window or the element itself." }, "referrerpolicy": { "url": "$MDN_URL$/web/html/reference/elements/iframe#referrerpolicy", @@ -5242,7 +5247,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "Controls the restrictions applied to the content embedded in the <iframe>. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\n

\n
allow-downloads
\n
\n

Allows downloading files through an <a> or <area> element with the download attribute, as well as through the navigation that leads to a download of a file. This works regardless of whether the user clicked on the link, or JS code initiated it without user interaction.\n

\n
allow-forms
\n
\n

Allows the page to submit forms. If this keyword is not used, a form will be displayed as normal, but submitting it will not trigger input validation, send data to a web server, or close a dialog.\n

\n
allow-modals
\n
\n

Allows the page to open modal windows by Window.alert(), Window.confirm(), Window.print() and Window.prompt(), while opening a <dialog> is allowed regardless of this keyword. It also allows the page to receive BeforeUnloadEvent event.\n

\n
allow-orientation-lock
\n
\n

Lets the resource lock the screen orientation.\n

\n
allow-pointer-lock
\n
\n

Allows the page to use the Pointer Lock API.\n

\n
allow-popups
\n
\n

Allows popups (like from Window.open(), target=\"_blank\", Window.showModalDialog()). If this keyword is not used, that functionality will silently fail.\n

\n
allow-popups-to-escape-sandbox
\n
\n

Allows a sandboxed document to open a new browsing context without forcing the sandboxing flags upon it. This will allow, for example, a third-party advertisement to be safely sandboxed without forcing the same restrictions upon the page the ad links to. If this flag is not included, a redirected page, popup window, or new tab will be subject to the same sandbox restrictions as the originating <iframe>.\n

\n
allow-presentation
\n
\n

Allows embedders to have control over whether an iframe can start a presentation session.\n

\n
allow-same-origin
\n
\n

If this token is not used, the resource is treated as being from a special origin that always fails the same-origin policy (potentially preventing access to data storage/cookies and some JavaScript APIs).\n

\n
allow-scripts
\n
\n

Allows the page to run scripts (but not create pop-up windows). If this keyword is not used, this operation is not allowed.\n

\n
allow-storage-access-by-user-activation
\n
\n

Allows a document loaded in the <iframe> to use the Storage Access API to request access to unpartitioned cookies.\n

\n
allow-top-navigation
\n
\n

Lets the resource navigate the top-level browsing context (the one named _top).\n

\n
allow-top-navigation-by-user-activation
\n
\n

Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\n

\n
allow-top-navigation-to-custom-protocols
\n
\n

Allows navigations to non-http protocols built into browser or registered by a website. This feature is also activated by allow-popups or allow-top-navigation keyword.\n

\n
\n
\n

Note:\n

    \n
  • When the embedded document has the same origin as the embedding page, it is strongly discouraged to use both allow-scripts and allow-same-origin, as that lets the embedded document remove the sandbox attribute — making it no more secure than not using the sandbox attribute at all.
  • \n
  • Sandboxing is useless if the attacker can display content outside a sandboxed iframe — such as if the viewer opens the frame in a new tab. Such content should be also served from a separate origin to limit potential damage.
  • \n
\n
\n
\n

Note:\nWhen redirecting the user, opening a popup window, or opening a new tab from an embedded page within an <iframe> with the sandbox attribute, the new browsing context is subject to the same sandbox restrictions. This can create issues — for example, if a page embedded within an <iframe> without a sandbox=\"allow-forms\" or sandbox=\"allow-popups-to-escape-sandbox\" attribute set on it opens a new site in a separate tab, form submission in that new browsing context will silently fail.\n

" + "doc": "Controls the restrictions applied to the content embedded in the <iframe>. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\n
\n
allow-downloads
\n
\n

Allows downloading files through an <a> or <area> element with the download attribute, as well as through the navigation that leads to a download of a file. This works regardless of whether the user clicked on the link, or JS code initiated it without user interaction.\n

\n
allow-forms
\n
\n

Allows the page to submit forms. If this keyword is not used, a form will be displayed as normal, but submitting it will not trigger input validation, send data to a web server, or close a dialog.\n

\n
allow-modals
\n
\n

Allows the page to open modal windows by Window.alert(), Window.confirm(), Window.print() and Window.prompt(), while opening a <dialog> is allowed regardless of this keyword. It also allows the page to receive BeforeUnloadEvent event.\n

\n
allow-orientation-lock
\n
\n

Lets the resource lock the screen orientation.\n

\n
allow-pointer-lock
\n
\n

Allows the page to use the Pointer Lock API.\n

\n
allow-popups
\n
\n

Allows popups (created, for example, by Window.open() or target=\"_blank\"). If this keyword is not used, such functionality will silently fail.\n

\n
allow-popups-to-escape-sandbox
\n
\n

Allows a sandboxed document to open a new browsing context without forcing the sandboxing flags upon it. This will allow, for example, a third-party advertisement to be safely sandboxed without forcing the same restrictions upon the page the ad links to. If this flag is not included, a redirected page, popup window, or new tab will be subject to the same sandbox restrictions as the originating <iframe>.\n

\n
allow-presentation
\n
\n

Allows embedders to have control over whether an iframe can start a presentation session.\n

\n
allow-same-origin
\n
\n

If this token is not used, the resource is treated as being from a special origin that always fails the same-origin policy (potentially preventing access to data storage/cookies and some JavaScript APIs).\n

\n
allow-scripts
\n
\n

Allows the page to run scripts (but not create pop-up windows). If this keyword is not used, this operation is not allowed.\n

\n
allow-storage-access-by-user-activation
\n
\n

Allows a document loaded in the <iframe> to use the Storage Access API to request access to unpartitioned cookies.\n

\n
allow-top-navigation
\n
\n

Lets the resource navigate the top-level browsing context (the one named _top).\n

\n
allow-top-navigation-by-user-activation
\n
\n

Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\n

\n
allow-top-navigation-to-custom-protocols
\n
\n

Allows navigations to non-http protocols built into browser or registered by a website. This feature is also activated by allow-popups or allow-top-navigation keyword.\n

\n
\n
\n

Note:\n

    \n
  • When the embedded document has the same origin as the embedding page, it is strongly discouraged to use both allow-scripts and allow-same-origin, as that lets the embedded document remove the sandbox attribute — making it no more secure than not using the sandbox attribute at all.
  • \n
  • Sandboxing is useless if the attacker can display content outside a sandboxed iframe — such as if the viewer opens the frame in a new tab. Such content should be also served from a separate origin to limit potential damage.
  • \n
\n
\n
\n

Note:\nWhen redirecting the user, opening a popup window, or opening a new tab from an embedded page within an <iframe> with the sandbox attribute, the new browsing context is subject to the same sandbox restrictions. This can create issues — for example, if a page embedded within an <iframe> without a sandbox=\"allow-forms\" or sandbox=\"allow-popups-to-escape-sandbox\" attribute set on it opens a new site in a separate tab, form submission in that new browsing context will silently fail.\n

" }, "scrolling": { "url": "$MDN_URL$/web/html/reference/elements/iframe#scrolling", @@ -5353,7 +5358,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <img> HTML element embeds an image into the document.\n

The above example shows usage of the <img> element:\n

    \n
  • The src attribute is required, and contains the path to the image you want to embed.
  • \n
  • The alt attribute holds a textual replacement for the image, which is mandatory and incredibly useful for accessibility — screen readers read the attribute value out to their users so they know what the image means. Alt text is also displayed on the page if the image can't be loaded for some reason: for example, network errors, content blocking, or link rot.
  • \n
\n

There are many other attributes to achieve various purposes:\n

", + "doc": "The <img> HTML element embeds an image into the document.\n

The above example shows usage of the <img> element:\n

    \n
  • The src attribute holds the path to the image you want to embed. It is not mandatory if the srcset attribute is available. However, at least one of the src or srcset attributes must be provided.
  • \n
  • The alt attribute holds a textual replacement for the image, which is mandatory and incredibly useful for accessibility — screen readers read the attribute value out to their users so they know what the image means. Alt text is also displayed on the page if the image can't be loaded for some reason: for example, network errors, content blocking, or link rot.
  • \n
\n

There are many other attributes to achieve various purposes:\n

", "details": { "Content categories": "Flow content\n,\nphrasing content\n,\nembedded content\n,\npalpable content\n. If the element has a\nusemap\nattribute, it also is a part\nof the interactive content category.\n", "Permitted content": "None; it is a\nvoid element\n.\n", @@ -5422,7 +5427,7 @@ "baseline": { "level": "NONE" }, - "doc": "specifies that you want the browser to send an Attribution-Reporting-Eligible header along with the image request.\n

On the server-side this is used to trigger sending an Attribution-Reporting-Register-Source or Attribution-Reporting-Register-Trigger header in the response, to register an image-based attribution source or attribution trigger, respectively. Which response header should be sent back depends on the value of the Attribution-Reporting-Eligible header that triggered the registration.\n

The corresponding source or trigger event is set off once the browser receives the response containing the image file.\n

\n

Note:\nSee the Attribution Reporting API for more details.\n

\n

There are two versions of this attribute that you can set:\n

    \n
  • Boolean, i.e., just the attributionsrc name. This specifies that you want the Attribution-Reporting-Eligible header sent to the same server as the src attribute points to. This is fine when you are handling the attribution source or trigger registration on the same server. When registering an attribution trigger this property is optional, and a boolean value will be used if it is omitted.
  • \n
  • Value containing one or more URLs, for example:
  • \n
\n
\n```html\n```\n
\n

This is useful in cases where the requested resource is not on a server you control, or you just want to handle registering the attribution source on a different server. In this case, you can specify one or more URLs as the value of attributionsrc. When the resource request occurs the Attribution-Reporting-Eligible header will be sent to the URL(s) specified in attributionSrc in addition to the resource origin. These URLs can then respond with a Attribution-Reporting-Register-Source or Attribution-Reporting-Register-Trigger header as appropriate to complete registration.\n

\n

Note:\nSpecifying multiple URLs means that multiple attribution sources can be registered on the same feature. You might for example have different campaigns that you are trying to measure the success of, which involve generating different reports on different data.\n

" + "doc": "Specifies that you want the browser to send an Attribution-Reporting-Eligible header along with the image request.\n

On the server-side this is used to trigger sending an Attribution-Reporting-Register-Source or Attribution-Reporting-Register-Trigger header in the response, to register an image-based attribution source or attribution trigger, respectively. Which response header should be sent back depends on the value of the Attribution-Reporting-Eligible header that triggered the registration.\n

The corresponding source or trigger event is set off once the browser receives the response containing the image file.\n

\n

Note:\nSee the Attribution Reporting API for more details.\n

\n

There are two versions of this attribute that you can set:\n

    \n
  • Boolean, i.e., just the attributionsrc name. This specifies that you want the Attribution-Reporting-Eligible header sent to the same server as the src attribute points to. This is fine when you are handling the attribution source or trigger registration on the same server. When registering an attribution trigger this property is optional, and a boolean value will be used if it is omitted.
  • \n
  • Value containing one or more URLs, for example:
  • \n
\n
\n```html\n```\n
\n

This is useful in cases where the requested resource is not on a server you control, or you just want to handle registering the attribution source on a different server. In this case, you can specify one or more URLs as the value of attributionsrc. When the resource request occurs the Attribution-Reporting-Eligible header will be sent to the URL(s) specified in attributionSrc in addition to the resource origin. These URLs can then respond with a Attribution-Reporting-Register-Source or Attribution-Reporting-Register-Trigger header as appropriate to complete registration.\n

\n

Note:\nSpecifying multiple URLs means that multiple attribution sources can be registered on the same feature. You might for example have different campaigns that you are trying to measure the success of, which involve generating different reports on different data.\n

" }, "border": { "url": "$MDN_URL$/web/html/reference/elements/img#border", @@ -5620,7 +5625,7 @@ "baseline": { "level": "NONE" }, - "doc": "A link to a more detailed description of the image. Possible values are a URL or an element id.\n
\n

Note:\nThis attribute is mentioned in the latest W3C version, HTML 5.2, but has been removed from the WHATWG's HTML Living Standard. It has an uncertain future; authors should use a WAI-ARIA alternative such as aria-describedby or aria-details.\n

" + "doc": "A link to a more detailed description of the image. Possible values are a URL or an element id.\n
\n

Note:\nThis attribute is considered obsolete in the HTML spec. It has an uncertain future; authors should use a WAI-ARIA alternative such as aria-describedby or aria-details.\n

" }, "name": { "url": "$MDN_URL$/web/html/reference/elements/img#name", @@ -5685,7 +5690,7 @@ "lowDate": "2016-03-21", "highDate": "2018-09-21" }, - "doc": "One or more strings separated by commas, indicating a set of source sizes. Each source size consists of:\n
    \n
  1. A media condition. This must be omitted for the last item in the list.
  2. \n
  3. A source size value.
  4. \n
\n

Media Conditions describe properties of the viewport, not of the image. For example, (max-height: 500px) 1000px proposes to use a source of 1000px width, if the viewport is not higher than 500px. Because a source size descriptor is used to specify the width to use for the image during layout of the page, the media condition is typically (but not necessarily) based on the width information.\n

Source size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the srcset attribute, when those sources are described using width (w) descriptors. The selected source size affects the intrinsic size of the image (the image's display size if no CSS styling is applied). If the srcset attribute is absent, or contains no values with a width descriptor, then the sizes attribute has no effect.\n

A source size value can be any non-negative length. It must not use CSS functions other than the math functions. Units are interpreted in the same way as media queries, meaning that all relative length units are relative to the document root rather than the <img> element, so an em value is relative to the root font size, rather than the font size of the image. Percentage values are not allowed.\n

Additionally, you can use the value auto to replace the whole list of sizes or the first entry in the list. It is only valid when combined with loading=\"lazy\", and resolves to the concrete size of the image." + "doc": "One or more values separated by commas, which can be source sizes or the auto keyword.\n

A source size consists of:\n

    \n
  1. A media condition, omitted for the last item in the list.
  2. \n
  3. A source size value.
  4. \n
\n

Media conditions describe properties of the viewport, not the image. For example, (height <= 500px) 1000px proposes using an image source of 1000px width if the viewport height is 500px or less. Because a source size descriptor specifies the width to use for the image during layout, the media condition is typically (but not necessarily) based on the width.\n

Source size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the srcset attribute, when those sources are described using width (w) descriptors. The selected source size affects the intrinsic size of the image (the image's display size if no CSS styling is applied). If the srcset attribute is absent, or contains no values with a width descriptor, then the sizes attribute has no effect.\n

A source size value can be any non-negative length. It must not use CSS functions other than the math functions. Units are interpreted in the same way as media queries, meaning that all relative length units are relative to the document root rather than the <img> element. For example, an em value is relative to the root font size, not the font size of the image. Percentage values are not allowed.\n

The auto keyword can replace the whole list of sizes or the first entry in the list. It is only valid when combined with loading=\"lazy\", and resolves to the concrete size of the image. Since the intrinsic size of the image is not yet known, width and height attributes (or CSS equivalents) should also be specified to prevent the browser from assuming the default image width of 300px.\nFor better backward compatibility with browsers that do not support auto, you can include fallback sizes after auto in the sizes attribute:\n

\n```html\n```\n
" }, "src": { "url": "$MDN_URL$/web/html/reference/elements/img#src", @@ -5729,7 +5734,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "One or more strings separated by commas, indicating possible image sources for the user agent to use. Each string is composed of:\n
    \n
  1. \n

    A URL to an image\n

  2. \n
  3. \n

    Optionally, whitespace followed by one of:\n

      \n
    • A width descriptor (a positive integer directly followed by w). The width descriptor is divided by the source size given in the sizes attribute to calculate the effective pixel density.
    • \n
    • A pixel density descriptor (a positive floating point number directly followed by x).
    • \n
    \n
  4. \n
\n

If no descriptor is specified, the source is assigned the default descriptor of 1x.\n

It is incorrect to mix width descriptors and pixel density descriptors in the same srcset attribute. Duplicate descriptors (for instance, two sources in the same srcset which are both described with 2x) are also invalid.\n

If the srcset attribute uses width descriptors, the sizes attribute must also be present, or the srcset itself will be ignored.\n

The user agent selects any of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our Responsive images tutorial for an example." + "doc": "One or more strings separated by commas, indicating possible image sources for the user agent to use. Each string is composed of:\n

    \n
  1. A URL to an image
  2. \n
  3. Optionally, whitespace followed by one of:\n
      \n
    • A width descriptor (a positive integer directly followed by w). The width descriptor is divided by the source size given in the sizes attribute to calculate the effective pixel density.
    • \n
    • A pixel density descriptor (a positive floating point number directly followed by x).
    • \n
    \n
  4. \n
\n

If no descriptor is specified, the source is assigned the default descriptor of 1x.\n

It is incorrect to mix width descriptors and pixel density descriptors in the same srcset attribute. Duplicate descriptors (for instance, two sources in the same srcset which are both described with 2x) are also invalid.\n

If the srcset attribute uses width descriptors, the sizes attribute must also be present, or the srcset itself will be ignored.\n

The user agent selects any of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our Responsive images tutorial for an example." }, "usemap": { "url": "$MDN_URL$/web/html/reference/elements/img#usemap", @@ -5824,7 +5829,7 @@ "Permitted content": "None; it is a\nvoid element\n.\n", "Tag omission": "Must have a start tag and must not have an end tag.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "

    \n
  • \ntype=button:\nbutton\n
  • \n
  • \ntype=checkbox:\ncheckbox\n
  • \n
  • \ntype=email\n
      \n
    • \nwith no list attribute:\ntextbox\n
    • \n
    • \nwith list attribute: combobox\n
    • \n
    \n
  • \n
  • \ntype=image:\nbutton\n
  • \n
  • \ntype=number: spinbutton\n
  • \n
  • type=radio: radio
  • \n
  • type=range: slider
  • \n
  • \ntype=reset:\nbutton\n
  • \n
  • \ntype=search\n\n
  • \n
  • \ntype=submit:\nbutton\n
  • \n
  • \ntype=tel\n
      \n
    • \nwith no list attribute:\ntextbox\n
    • \n
    • \nwith list attribute: combobox\n
    • \n
    \n
  • \n
  • \ntype=text\n
      \n
    • \nwith no list attribute:\ntextbox\n
    • \n
    • \nwith list attribute: combobox\n
    • \n
    \n
  • \n
  • \ntype=url\n
      \n
    • \nwith no list attribute:\ntextbox\n
    • \n
    • \nwith list attribute: combobox\n
    • \n
    \n
  • \n
  • \ntype=color|date|datetime-local|file|hidden|month|password|time|week:\nno corresponding role\n
  • \n
\n", + "Implicit ARIA role": "
    \n
  • \ntype=button:\nbutton\n
  • \n
  • \ntype=checkbox:\ncheckbox\n
  • \n
  • \ntype=email\n
      \n
    • \nwith no list attribute:\ntextbox\n
    • \n
    • \nwith list attribute: combobox\n
    • \n
    \n
  • \n
  • \ntype=image:\nbutton\n
  • \n
  • \ntype=number: spinbutton\n
  • \n
  • type=radio: radio
  • \n
  • type=range: slider
  • \n
  • \ntype=reset:\nbutton\n
  • \n
  • \ntype=search\n\n
  • \n
  • \ntype=submit:\nbutton\n
  • \n
  • \ntype=tel\n
      \n
    • \nwith no list attribute:\ntextbox\n
    • \n
    • \nwith list attribute: combobox\n
    • \n
    \n
  • \n
  • \ntype=text\n
      \n
    • \nwith no list attribute:\ntextbox\n
    • \n
    • \nwith list attribute: combobox\n
    • \n
    \n
  • \n
  • \ntype=url\n
      \n
    • \nwith no list attribute:\ntextbox\n
    • \n
    • \nwith list attribute: combobox\n
    • \n
    \n
  • \n
  • \ntype=color|date|datetime-local|file|hidden|month|password|time|week:\nno corresponding role\n
  • \n
\n", "Permitted ARIA roles": "\n", "DOM interface": "HTMLInputElement\n" }, @@ -5878,7 +5883,8 @@ "StandardTrack" ], "compatibility": { - "Safari": "preview" + "Safari": "18.4", + "SafariIOS": "18.4" }, "baseline": { "level": "NONE" @@ -5925,7 +5931,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The HTML autocomplete attribute lets web developers specify what if any permission the user agent has to provide automated assistance in filling out form field values, as well as guidance to the browser as to the type of information expected in the field.\n

It is available on <input> elements that take a text or numeric value as input, <textarea> elements, <select> elements, and <form> elements.\n

The autocomplete attribute provides a hint to the user agent specifying how to, or indeed whether to, prefill a form control. The attribute value is either the keyword off or on, or an ordered list of space-separated tokens.\n

\n```html\n\n\n\n\n```\n
\n

If an <input>, <select> or <textarea> element has no autocomplete attribute, the browser will use the autocomplete attribute of the element's owning form. The owning form is either the <form> matching the id specified by the form attribute of the element (if present) or, more commonly, the <form> the element is nested in.\n

\n

Note:\nIn order to provide autocompletion, user-agents might require <input>/<select>/<textarea> elements to:\n

    \n
  1. Have a name and/or id attribute
  2. \n
  3. Be descendants of a <form> element
  4. \n
  5. Be owned by a form with a submit button
  6. \n
\n
\n

If the same list of tokens is used in more than one form control, the user-agent will autocomplete all occurrences of the same autocomplete value with the same data value.\n

Some tokens may be used more than once with potentially different expected values, such as the zip-code token in a form that contains both shipping and billing addresses. Including multiple different tokens in a space-separated list causes the associated form controls to be given unique autocomplete values: in this case, autocomplete=\"shipping zip-code\" and autocomplete=\"billing zip-code\".\n

Some autocomplete values may need to be re-used multiple times. For example, a form may contain multiple shipping addresses and therefore multiple occurrences of \"shipping zip-code\" while still expecting different values. To make the autocomplete value unique in these cases, the first token in the space-separated list of tokens can be a section-* token, where the token's first eight characters are always the string \"section-\", followed by an alphanumeric string. All form fields given the section-* token with the same alphanumeric string belong to the same named group.\n

If including the autocomplete attribute on hidden input elements (<input type=\"hidden\">), its value must be an ordered list of space-separated tokens; the on and off keywords are not allowed.\n

The source of the suggested values is generally up to the browser; typically values come from past values entered by the user, but they may also come from pre-configured values. For instance, a browser might let the user save their name, address, phone number, and email addresses for autocomplete purposes. The browser may also offer the ability to save encrypted credit card information, for autocompletion following an authentication procedure.\n

\n

Note:\nThe autocomplete attribute also controls whether Firefox will — unlike other browsers — persist the dynamic disabled state and (if applicable) dynamic checkedness of an <input> element, <textarea> element, or entire <form> across page loads. The persistence feature is enabled by default. Setting the value of the autocomplete attribute to off disables this feature. This works even when the autocomplete attribute would normally not apply by virtue of its type. See Firefox bug 654072.\n

" + "doc": "The HTML autocomplete attribute lets web developers specify what if any permission the user agent has to provide automated assistance in filling out form field values, as well as guidance to the browser as to the type of information expected in the field.\n

It is available on <input> elements that take a text or numeric value as input, <textarea> elements, <select> elements, and <form> elements.\n

The autocomplete attribute provides a hint to the user agent specifying how to, or indeed whether to, prefill a form control. The attribute value is either the keyword off or on, or an ordered list of space-separated tokens.\n

\n```html\n\n\n\n\n```\n
\n

If an <input>, <select> or <textarea> element has no autocomplete attribute, the browser will use the autocomplete attribute of the element's owning form. The owning form is either the <form> matching the id specified by the form attribute of the element (if present) or, more commonly, the <form> the element is nested in.\n

\n

Note:\nIn order to provide autocompletion, user-agents might require <input>/<select>/<textarea> elements to:\n

    \n
  1. Have a name and/or id attribute
  2. \n
  3. Be descendants of a <form> element
  4. \n
  5. Be owned by a form with a submit button
  6. \n
\n
\n

If the same list of tokens is used in more than one form control, the user-agent will autocomplete all occurrences of the same autocomplete value with the same data value.\n

Some tokens may be used more than once with potentially different expected values, such as the zip-code token in a form that contains both shipping and billing addresses. Including multiple different tokens in a space-separated list causes the associated form controls to be given unique autocomplete values: in this case, autocomplete=\"shipping zip-code\" and autocomplete=\"billing zip-code\".\n

Some autocomplete values may need to be re-used multiple times. For example, a form may contain multiple shipping addresses and therefore multiple occurrences of \"shipping zip-code\" while still expecting different values. To make the autocomplete value unique in these cases, the first token in the space-separated list of tokens can be a section-* token, where the token's first eight characters are always the string \"section-\", followed by an alphanumeric string. All form fields given the section-* token with the same alphanumeric string belong to the same named group.\n

If including the autocomplete attribute on hidden input elements (<input type=\"hidden\">), its value must be an ordered list of space-separated tokens; the on and off keywords are not allowed.\n

The source of the suggested values is generally up to the browser; typically values come from past values entered by the user, but they may also come from pre-configured values. For instance, a browser might let the user save their name, address, phone number, and email addresses for autocomplete purposes. The browser may also offer the ability to save encrypted credit card information, for autocompletion following an authentication procedure.\n

\n

Note:\nThe autocomplete attribute also controls whether Firefox will — unlike other browsers — persist the dynamic disabled state and (if applicable) dynamic checkedness of an <input> element, <textarea> element, or entire <form> across page loads. The persistence feature is enabled by default. Setting the value of the autocomplete attribute to off disables this feature. This works even when the autocomplete attribute would normally not apply by virtue of its type. See Firefox bug 654072.\n

" }, "capture": { "url": "$MDN_URL$/web/html/reference/elements/input#capture", @@ -5970,7 +5976,8 @@ "StandardTrack" ], "compatibility": { - "Safari": "preview" + "Safari": "18.4", + "SafariIOS": "18.4" }, "baseline": { "level": "NONE" @@ -6038,7 +6045,8 @@ "level": "HIGH", "lowDate": "2015-07-29", "highDate": "2018-01-29" - } + }, + "doc": "The form HTML attribute associates a form-associated element with a <form> element within the same document. This attribute applies to the <button>, <fieldset>, <input>, <object>, <output>, <select>, and <textarea> elements." }, "formaction": { "url": "$MDN_URL$/web/html/reference/elements/input#formaction", @@ -6212,7 +6220,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The maxlength attribute defines the maximum string length that the user can enter into an <input> or <textarea>. The attribute must have an integer value of 0 or higher.\n

The length is measured in UTF-16 code units, which (for most scripts) is equivalent to the number of characters. If no maxlength is specified, or an invalid value is specified, the input has no maximum length.\n

Any maxlength value must be greater than or equal to the value of minlength, if present and valid. The input will fail constraint validation if the length of the text value of the field is greater than maxlength UTF-16 code units long. Constraint validation is only applied when the value is changed by the user." + "doc": "The maxlength attribute defines the maximum string length that the user can enter into an <input> or <textarea>. The attribute must have an integer value of 0 or higher.\n

The length is measured in UTF-16 code units, which is often but not always equal to the number of characters. If no maxlength is specified, or an invalid value is specified, the input has no maximum length.\n

Any maxlength value must be greater than or equal to the value of minlength, if present and valid. The input will fail constraint validation if the length of the text value of the field is greater than maxlength UTF-16 code units long. Constraint validation is only applied when the value is changed by the user." }, "min": { "url": "$MDN_URL$/web/html/reference/elements/input#min", @@ -6256,7 +6264,7 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "The minlength attribute defines the minimum string length that the user can enter into an <input> or <textarea>. The attribute must have an integer value of 0 or higher.\n

The length is measured in UTF-16 code units, which (for most scripts) is equivalent to the number of characters. If no minlength is specified, or an invalid value is specified, the input has no minimum length. This value must be less than or equal to the value of maxlength, otherwise the value will never be valid, as it is impossible to meet both criteria.\n

The input will fail constraint validation if the length of the text value of the field is less than minlength UTF-16 code units long, with validityState.tooShort returning true. Constraint validation is only applied when the value is changed by the user. Once submission fails, some browsers will display an error message indicating the minimum length required and the current length.\n

minlength does not imply required; an input only violates a minlength constraint if the user has input a value. If an input is not required, an empty string can be submitted even if minlength is set." + "doc": "The minlength attribute defines the minimum string length that the user can enter into an <input> or <textarea>. The attribute must have an integer value of 0 or higher.\n

The length is measured in UTF-16 code units, which is often but not always equal to the number of characters. If no minlength is specified, or an invalid value is specified, the input has no minimum length. This value must be less than or equal to the value of maxlength, otherwise the value will never be valid, as it is impossible to meet both criteria.\n

The input will fail constraint validation if the length of the text value of the field is less than minlength UTF-16 code units long, with validityState.tooShort returning true. Constraint validation is only applied when the value is changed by the user. Once submission fails, some browsers will display an error message indicating the minimum length required and the current length.\n

minlength does not imply required; an input only violates a minlength constraint if the user has input a value. If an input is not required, an empty string can be submitted even if minlength is set." }, "mozactionhint": { "url": "$MDN_URL$/web/html/reference/elements/input#mozactionhint", @@ -6511,7 +6519,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The step attribute is a number that specifies the granularity that the value must adhere to or the keyword any. It is valid for the numeric input types, including the date, month, week, time, datetime-local, number and range types.\n

The step sets the stepping interval when clicking up and down spinner buttons, moving a slider left and right on a range, and validating the different date types. If not explicitly included, step defaults to 1 for number and range, and 1 unit type (minute, week, month, day) for the date/time input types. The value must be a positive number - integer or float — or the special value any, which means no stepping is implied and any value is allowed (barring other constraints, such as min and max).\n

The default stepping value for number inputs is 1, allowing only integers to be entered, unless the stepping base is not an integer. The default stepping value for time is 60 seconds, with 900 being equal to 15 minutes." + "doc": "The step attribute is a number that specifies the granularity that the value must adhere to or the keyword any. It is valid for the numeric input types, including the date, month, week, time, datetime-local, number and range types.\n

The step sets the stepping interval when clicking up and down spinner buttons, moving a slider left and right on a range, and validating the different date types. If not explicitly included, step defaults to 1 for number and range, and 1 unit type (minute, week, month, day) for the date/time input types. The value must be a positive number - integer or float — or the special value any, which means no stepping is implied and any value is allowed (barring other constraints, such as min and max).\n

Only values which are a whole number of steps from the step base are valid. The step base is min if specified, value otherwise, or 0 if neither is provided (except for week, which has a default step base of −259,200,000, representing the start of week 1970-W01)." }, "usemap": { "url": "$MDN_URL$/web/html/reference/elements/input#usemap", @@ -6540,6 +6548,7 @@ "ChromeAndroid": "132", "Edge": "13", "Firefox": "50", + "FirefoxAndroid": "141", "Opera": "15", "Safari": "11.1", "SafariIOS": "18.4" @@ -6654,7 +6663,7 @@ "Permitted content": "Phrasing content\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLElement\n" } @@ -6679,13 +6688,13 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <label> HTML element represents a caption for an item in a user interface.\n

Elements that can be associated with a <label> element include <button>, <input> (except for type=\"hidden\"), <meter>, <output>, <progress>, <select> and <textarea>.", + "doc": "The <label> HTML element represents a caption for an item in a user interface.", "details": { "Content categories": "Flow content\n,\nphrasing content\n,\ninteractive content\n,\nform-associated element\n, palpable content.\n", "Permitted content": "Phrasing content\n, but no descendant\nlabel\nelements. No\nlabelable\nelements other than the labeled control are allowed.\n", - "Tag omission": "None, both the starting and ending tag are mandatory.\n", + "Tag omission": "None, both the starting and ending tags are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLLabelElement\n" }, @@ -6710,7 +6719,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The value of the for attribute must be a single id for a labelable form-related element in the same document as the <label> element. So, any given label element can be associated with only one form control.\n

\n

Note:\nTo programmatically set the for attribute, use htmlFor.\n

\n

The first element in the document with an id attribute matching the value of the for attribute is the labeled control for this label element — if the element with that id is actually a labelable element. If it is not a labelable element, then the for attribute has no effect. If there are other elements that also match the id value, later in the document, they are not considered.\n

Multiple label elements can be given the same value for their for attribute; doing so causes the associated form control (the form control that for value references) to have multiple labels.\n

\n

Note:\nA <label> element can have both a for attribute and a contained control element, as long as the for attribute points to the contained control element.\n

" + "doc": "The value is the id of the labelable form control in the same document, associating the <label> with that form control. Note that its JavaScript reflection property is htmlFor." } } }, @@ -6740,7 +6749,7 @@ "Permitted content": "Phrasing content\nand\nheadings\n(h1–h6 elements).\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "A\n<fieldset>\nwhose first child is this\n<legend>\nelement. In\ncustomizable select elements\n, a\n<legend>\nelement is permitted as a child of\n<optgroup>\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLLegendElement\n" }, @@ -6912,7 +6921,7 @@ "baseline": { "level": "NONE" }, - "doc": "This attribute explicitly indicates that certain operations should be blocked on the fetching of an external resource. It must only be used when the rel attribute contains expect or stylesheet keywords. The operations that are to be blocked must be a space-separated list of blocking tokens listed below.\n
    \n
  • render: The rendering of content on the screen is blocked.
  • \n
" + "doc": "This attribute explicitly indicates that certain operations should be blocked until specific conditions are met. It must only be used when the rel attribute contains the expect or stylesheet keywords. With rel=\"expect\", it indicates that operations should be blocked until a specific DOM node has been parsed. With rel=\"stylesheet\", it indicates that operations should be blocked until an external stylesheet and its critical subresources have been fetched and applied to the document. The operations that are to be blocked must be a space-separated list of blocking tokens listed below. Currently there is only one token:\n
    \n
  • render: The rendering of content on the screen is blocked.
  • \n
\n
\n

Note:\nOnly link elements in the document's <head> can possibly block rendering. By default, a link element with rel=\"stylesheet\" in the <head> blocks rendering when the browser discovers it during parsing. If such a link element is added dynamically via script, you must additionally set blocking = \"render\" for it to block rendering.\n

" }, "charset": { "url": "$MDN_URL$/web/html/reference/elements/link#charset", @@ -7042,7 +7051,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "This attribute indicates the language of the linked resource.\nIt is purely advisory.\nAllowed values are specified by RFC 5646: Tags for Identifying Languages (also known as BCP 47).\nUse this attribute only if the href attribute is present." + "doc": "This attribute indicates the language of the linked resource.\nIt is purely advisory.\nValues should be valid BCP 47 language tags.\nUse this attribute only if the href attribute is present." }, "imagesizes": { "url": "$MDN_URL$/web/html/reference/elements/link#imagesizes", @@ -7206,7 +7215,7 @@ "Edge": "80", "Firefox": "72", "FirefoxAndroid": "79", - "Opera": "67", + "Opera": "15", "Safari": "6", "SafariIOS": "6" }, @@ -7323,7 +7332,7 @@ "Permitted content": "Any\ntransparent\nelement.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLMapElement\n" }, @@ -7378,7 +7387,7 @@ "Permitted content": "Phrasing content\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLElement\n" } @@ -7666,6 +7675,12 @@ "Implicit ARIA role": "list\n", "Permitted ARIA roles": "directory\n,\ngroup\n,\nlistbox\n,\nmenu\n,\nmenubar\n,\nnone\n,\npresentation\n,\nradiogroup\n,\ntablist\n,\ntoolbar\nor\ntree\n", "DOM interface": "HTMLMenuElement\n" + }, + "attrs": { + "compact": { + "url": "$MDN_URL$/web/html/reference/elements/menu#compact", + "doc": "This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute is browser-specific. Use CSS instead: to give a similar effect as the compact attribute, the CSS property line-height can be used with a value of 80%." + } } }, "meta": { @@ -7688,13 +7703,13 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <meta> HTML element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.\n

The type of metadata provided by the <meta> element can be one of the following:\n

    \n
  • If the name attribute is set, the <meta> element provides document-level metadata, applying to the whole page.
  • \n
  • If the http-equiv attribute is set, the <meta> element is a pragma directive, providing information equivalent to what can be given by a similarly-named HTTP header.
  • \n
  • If the charset attribute is set, the <meta> element is a charset declaration, giving the character encoding in which the document is encoded.
  • \n
  • If the itemprop attribute is set, the <meta> element provides user-defined metadata.
  • \n
", + "doc": "The <meta> HTML element represents metadata that cannot be represented by other meta-related elements, such as <base>, <link>, <script>, <style>, or <title>.\n

The type of metadata provided by the <meta> element can be one of the following:\n

    \n
  • If the name attribute is set, the <meta> element provides document-level metadata that applies to the whole page.
  • \n
  • If the http-equiv attribute is set, the <meta> element acts as a pragma directive to simulate directives that could otherwise be given by an HTTP header.
  • \n
  • If the charset attribute is set, the <meta> element is a charset declaration, giving the character encoding in which the document is encoded.
  • \n
  • If the itemprop attribute is set, the <meta> element provides user-defined metadata.
  • \n
", "details": { "Content categories": "Metadata content\n. If the\nitemprop\nattribute is present:\nflow content\n,\nphrasing content\n.\n", "Permitted content": "None; it is a\nvoid element\n.\n", "Tag omission": "Must have a start tag and must not have an end tag.\n", - "Permitted parents": "\n", - "Implicit ARIA role": "No corresponding role\n", + "Permitted parents": "\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLMetaElement\n" }, @@ -7741,15 +7756,15 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "This attribute contains the value for the http-equiv or name attribute, depending on which is used." + "doc": "This attribute contains the value for the http-equiv or name attribute, depending on which is used." }, "http-equiv": { "url": "$MDN_URL$/web/html/reference/elements/meta#http-equiv", - "doc": "Defines a pragma directive. The attribute's name, short for http-equivalent, is because all the allowed values are names of particular HTTP headers:\n
\n
content-security-policy
\n
\n

Allows page authors to define a content policy for the current page. Content policies mostly specify allowed server origins and script endpoints which help guard against cross-site scripting attacks.\n

Also see Content-Security-Policy.\n

\n
content-type
\n
\n

Declares the MIME type and the document's character encoding. The content attribute must have the value \"text/html; charset=utf-8\" if specified. This is equivalent to a <meta> element with the charset attribute specified and carries the same restriction on placement within the document. Note: Can only be used in documents served with a text/html — not in documents served with an XML MIME type.\n

Also see Content-Type.\n

\n
default-style
\n
\n

Sets the name of the default CSS style sheet set.\n

\n
x-ua-compatible
\n
\n

If specified, the content attribute must have the value \"IE=edge\". User agents are required to ignore this pragma.\n

\n
refresh
\n
\n

This instruction specifies:\n

    \n
  • The number of seconds until the page should be reloaded - if the content attribute's value is a non-negative integer.
  • \n
  • The number of seconds until the page should redirect to another - if the content attribute's value is a non-negative integer followed by ;url= and a valid URL.
  • \n
\n

The timer starts when the page is completely loaded, which is after the load and pageshow events have both fired.\n

Also see Refresh.\n

\n

Warning:\n

Pages set with a refresh value run the risk of having the time interval being too short. People navigating with the aid of assistive technology such as a screen reader may be unable to read through and understand the page's content before being automatically redirected. The abrupt, unannounced updating of the page content may also be disorienting for people experiencing low vision conditions.\n

\n
\n
\n
" + "doc": "Defines a pragma directive, which are instructions for the browser for processing the document.\nThe attribute's name is short for http-equivalent because the allowed values are names of equivalent HTTP headers." }, "media": { "url": "$MDN_URL$/web/html/reference/elements/meta#media", - "doc": "The media attribute defines which media the theme color defined in the content attribute should be applied to. Its value is a media query, which defaults to all if the attribute is missing. This attribute is only relevant when the element's name attribute is set to theme-color. Otherwise, it has no effect, and should not be included." + "doc": "The media attribute defines which media the theme color defined in the content attribute should be applied to.\nIts value is a media query, which defaults to all if the attribute is missing.\nThis attribute is only relevant when the element's name attribute is set to theme-color.\nOtherwise, it has no effect, and should not be included." }, "name": { "url": "$MDN_URL$/web/html/reference/elements/meta#name", @@ -7771,7 +7786,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The name and content attributes can be used together to provide document metadata in terms of name-value pairs, with the name attribute giving the metadata name, and the content attribute giving the value.\n

See standard metadata names for details about the set of standard metadata names defined in the HTML specification." + "doc": "The name and content attributes can be used together to provide document metadata in terms of name-value pairs, with the name attribute giving the metadata name, and the content attribute giving the value." }, "scheme": { "url": "$MDN_URL$/web/html/reference/elements/meta#scheme", @@ -7826,10 +7841,6 @@ "DOM interface": "HTMLMeterElement\n" }, "attrs": { - "form": { - "url": "$MDN_URL$/web/html/reference/elements/meter#form", - "doc": "This optional attribute is used to explicitly set a <form> owner for the <meter> element. If omitted, the <meter> is associated with its ancestor <form> element or the form association set by the form attribute on another ancestor element, such as on a <fieldset>, if any. If included, the value must be the id of a <form> in the same tree." - }, "high": { "url": "$MDN_URL$/web/html/reference/elements/meter#high", "status": [ @@ -8011,7 +8022,7 @@ "Safari": "4", "SafariIOS": "3.2" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The <nobr> HTML element prevents the text it contains from automatically wrapping across multiple lines, potentially resulting in the user having to scroll horizontally to see the entire width of the text.\n

\n

Warning:\nAlthough this element is widely supported, it was never standard HTML, so you shouldn't use it. Instead, use the CSS property white-space like this:\n

\n
\n```html\nLong line with no breaks\n```\n
" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The <nobr> HTML element prevents the text it contains from automatically wrapping across multiple lines, potentially resulting in the user having to scroll horizontally to see the entire width of the text.\n

\n

Warning:\nAlthough this element is widely supported, it was never standard HTML, so you shouldn't use it. Instead, use the CSS property white-space like this:\n

\n
\n```html\nLong line with no breaks\n```\n
\n
\n```css\n.nobr {\n  white-space: nowrap;\n}\n```\n
" }, "noembed": { "url": "$MDN_URL$/web/html/reference/elements/noembed", @@ -8075,7 +8086,7 @@ "Permitted content": "When scripting is disabled and when it is a descendant of the\n<head>\nelement: in any order, zero or more\n<link>\nelements, zero or more\n<style>\nelements, and zero or more\n<meta>\nelements.\n
\nWhen scripting is\ndisabled and when it isn't a descendant of the\n<head>\nelement: any\ntransparent content\n, but no\n<noscript>\nelement must be among its\ndescendants.\n
\nOtherwise: flow content or phrasing content.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n, if there are no ancestor\n<noscript>\nelement, or in\na\n<head>\nelement (but only for an HTML\ndocument), here again if there are no ancestor\n<noscript>\nelement.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLElement\n" } @@ -8106,7 +8117,7 @@ "Permitted content": "zero or more\n<param>\nelements, then\ntransparent\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nembedded content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "application\n,\ndocument\n,\nimg\n", "DOM interface": "HTMLObjectElement\n" }, @@ -8186,7 +8197,6 @@ "Edge": "12", "Firefox": "1", "FirefoxAndroid": "4", - "Opera": "15", "Safari": "3", "SafariIOS": "2" }, @@ -8323,7 +8333,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The name of valid browsing context (HTML5), or the name of the control (HTML 4)." + "doc": "The name of valid browsing context (HTML5), or the name of the control (HTML 4). The name becomes a property of the Window and Document objects, containing a reference to the embedded window or the element itself." }, "standby": { "url": "$MDN_URL$/web/html/reference/elements/object#standby", @@ -8461,7 +8471,8 @@ }, "baseline": { "level": "NONE" - } + }, + "doc": "This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute is browser-specific. Use CSS instead: to give a similar effect as the compact attribute, the CSS property line-height can be used with a value of 80%." }, "reversed": { "url": "$MDN_URL$/web/html/reference/elements/ol#reversed", @@ -8881,7 +8892,7 @@ "Permitted content": "None; it is a\nvoid element\n.\n", "Tag omission": "Must have a start tag and must not have an end tag.\n", "Permitted parents": "An\n<object>\nbefore any\nflow content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLParamElement\n" }, @@ -8998,7 +9009,7 @@ "Permitted content": "Zero or more\n<source>\nelements, followed by one\n<img>\nelement, optionally intermixed with\nscript-supporting elements.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that allows embedded content.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLPictureElement\n" } @@ -9256,7 +9267,7 @@ "Permitted content": "Text\n", "Tag omission": "The end tag can be omitted if the element is immediately followed by an\n<rt>\nor another\n<rp>\nelement,\nor if there is no more content in the parent element.\n", "Permitted parents": "A\n<ruby>\nelement.\n<rp>\nmust\nbe positioned immediately before or after an\n<rt>\nelement.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLElement\n" } @@ -9287,7 +9298,7 @@ "Permitted content": "Phrasing content\n.\n", "Tag omission": "The end tag may be omitted if the\n<rt>\nelement is\nimmediately followed by an\n<rt>\nor\n<rp>\nelement, or if there is no more content in\nthe parent element\n", "Permitted parents": "A\n<ruby>\nelement.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLElement\n" } @@ -9299,14 +9310,14 @@ "Deprecated" ], "compatibility": { - "Chrome": "80", - "ChromeAndroid": "80", - "Edge": "80", + "Chrome": "47", + "ChromeAndroid": "47", + "Edge": "79", "Firefox": "33", "FirefoxAndroid": "33", - "Opera": "67", - "Safari": "13.1", - "SafariIOS": "13.4" + "Opera": "34", + "Safari": "8", + "SafariIOS": "8" }, "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The <rtc> HTML element embraces semantic annotations of characters presented in a ruby of <rb> elements used inside of <ruby> element. <rb> elements can have both pronunciation (<rt>) and semantic (<rtc>) annotations.", "details": { @@ -9344,7 +9355,7 @@ "Permitted content": "Phrasing content\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLElement\n" } @@ -9437,7 +9448,7 @@ "Permitted content": "Dynamic script such as\ntext/javascript\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nmetadata content\n,\nor any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLScriptElement\n" }, @@ -9497,7 +9508,7 @@ "baseline": { "level": "NONE" }, - "doc": "This attribute explicitly indicates that certain operations should be blocked on the fetching of the script. The operations that are to be blocked must be a space-separated list of blocking tokens listed below.\n

    \n
  • render: The rendering of content on the screen is blocked.
  • \n
" + "doc": "This attribute explicitly indicates that certain operations should be blocked until the script has executed. The operations that are to be blocked must be a space-separated list of blocking tokens. Currently there is only one token:\n
    \n
  • render: The rendering of content on the screen is blocked.
  • \n
\n
\n

Note:\nOnly script elements in the document's <head> can possibly block rendering. Scripts are not render-blocking by default; if a script element does not include type=\"module\", async, or defer, then it blocks parsing, not rendering. If such a script element is added dynamically via script, you must set blocking = \"render\" for it to block rendering.\n

" }, "charset": { "url": "$MDN_URL$/web/html/reference/elements/script#charset", @@ -9770,7 +9781,7 @@ }, "doc": "The <select> HTML element represents a control that provides a menu of options.\n

The above example shows typical <select> usage. It is given an id attribute to enable it to be associated with a <label> for accessibility purposes, as well as a name attribute to represent the name of the associated data point submitted to the server. Each menu option is defined by an <option> element nested inside the <select>.\n

Each <option> element should have a value attribute containing the data value to submit to the server when that option is selected. If no value attribute is included, the value defaults to the text contained inside the element. You can include a selected attribute on an <option> element to make it selected by default when the page first loads. If no selected attribute is specified, the first <option> element will be selected by default.\n

A <select> element is represented in JavaScript by an HTMLSelectElement object, and this object has a value property which contains the value of the selected <option>.\n

The <select> element has some unique attributes you can use to control it, such as multiple to specify whether multiple options can be selected, and size to specify how many options should be shown at once. It also accepts most of the general form input attributes such as required, disabled, autofocus, etc.\n

You can further nest <option> elements inside <optgroup> elements to create separate groups of options inside the dropdown. You can also include <hr> elements to create separators that add visual breaks between options.\n

For further examples, see The native form widgets: Drop-down content.", "details": { - "Content categories": "Flow content\n,\nphrasing content\n,\ninteractive content\n,\nlisted\n,\nlabelable\n,\nresettable\n, and\nsubmittable\nform-associated \nelement\n", + "Content categories": "Flow content\n,\nphrasing content\n,\ninteractive content\n,\nlisted\n,\nlabelable\n,\nresettable\n, and\nsubmittable\nform-associated\nelement\n", "Permitted content": "Zero or more\n<option>\n,\n<optgroup>\n, or\n<hr>\nelements in traditional\n<select>\nelements. In\ncustomizable select elements\n:\n

\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", @@ -9869,7 +9880,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When multiple is specified, most browsers will show a scrolling list box instead of a single line dropdown." + "doc": "This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When multiple is specified, most browsers will show a scrolling list box instead of a single line dropdown. Multiple selected options are submitted using the URLSearchParams array convention, i.e., name=value1&name=value2." }, "name": { "url": "$MDN_URL$/web/html/reference/elements/select#name", @@ -9938,18 +9949,19 @@ "selectedcontent": { "url": "$MDN_URL$/web/html/reference/elements/selectedcontent", "status": [ - "Experimental" + "Experimental", + "StandardTrack" ], "compatibility": { - "Chrome": "134", - "ChromeAndroid": "134", - "Edge": "134", - "Opera": "119" + "Chrome": "135", + "ChromeAndroid": "135", + "Edge": "135", + "Opera": "120" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The <selectedcontent> HTML element can be used to display the content of the currently selected <option> inside a closed <select> element.\n

When creating a Customizable select element, you can include the <selectedcontent> element inside a <button> element, which in turn needs to be the first child of the <select> element:\n

\n```html\n\n```\n
\n

<selectedcontent> contains a clone of a <select> element's currently-selected <option> element content, created using cloneNode() under the hood.\n

Any subsequent <select> content will be included in the drop-down picker.\n

Whenever the <select> element's selected <option> switches from one option to another, the <selectedcontent> element's content is removed and replaced by a new cloned copy of the DOM structure of the newly selected option, which is created using cloneNode().", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The <selectedcontent> HTML is used inside a <select> element to display the contents of its currently selected <option> within its first child <button>. This enables you to style all parts of a <select> element, referred to as \"customizable selects\".\n

You use the <selectedcontent> element as the only child of a <button> element, which must be the first child of the <select> element. Any <option> element, the only other valid child of <select>, must come after the <button> and nested <selectedcontent> pair.\n

\n```html\n\n```\n
", "details": { "Content categories": "None\n", "Permitted content": "Mirrors content from the selected\n<option>\n.\n", @@ -9987,7 +9999,7 @@ "Events": "slotchange\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLSlotElement\n" }, @@ -10073,7 +10085,7 @@ "Permitted content": "None; it is a\nvoid element\n.\n", "Tag omission": "Must have a start tag and must not have an end tag.\n", "Permitted parents": "
\nA media element—<audio> or\n<video>—and it must be placed before any\nflow content\nor <track> element.\n
\n
\nA <picture> element, and it must be placed\nbefore the <img> element.\n
\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLSourceElement\n" }, @@ -10094,8 +10106,9 @@ "SafariIOS": "15" }, "baseline": { - "level": "LOW", - "lowDate": "2022-12-13" + "level": "HIGH", + "lowDate": "2022-12-13", + "highDate": "2025-06-13" }, "doc": "Specifies the intrinsic height of the image in pixels. Allowed if the parent of <source> is a <picture>. Not allowed if the parent is <audio> or <video>.\n

The height value must be an integer without any units." }, @@ -10225,8 +10238,9 @@ "SafariIOS": "15" }, "baseline": { - "level": "LOW", - "lowDate": "2022-12-13" + "level": "HIGH", + "lowDate": "2022-12-13", + "highDate": "2025-06-13" }, "doc": "Specifies the intrinsic width of the image in pixels. Allowed if the parent of <source> is a <picture>. Not allowed if the parent is <audio> or <video>.\n

The width value must be an integer without any units." } @@ -10258,7 +10272,7 @@ "Permitted content": "Phrasing content\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n, or any element that accepts\nflow content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLSpanElement\n" } @@ -10341,7 +10355,7 @@ "Permitted content": "Text content matching the\ntype\nattribute, that is\ntext/css\n.\n", "Tag omission": "Neither tag is omissible.\n", "Permitted parents": "Any element that accepts\nmetadata content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLStyleElement\n" }, @@ -10362,7 +10376,7 @@ "baseline": { "level": "NONE" }, - "doc": "This attribute explicitly indicates that certain operations should be blocked on the fetching of critical subresources. @import-ed stylesheets are generally considered as critical subresources, whereas background-image and fonts are not. The operations that are to be blocked must be a space-separated list of blocking tokens listed below.\n

    \n
  • render: The rendering of content on the screen is blocked.
  • \n
" + "doc": "This attribute explicitly indicates that certain operations should be blocked on the fetching of critical subresources and the application of the stylesheet to the document. @import-ed stylesheets are generally considered as critical subresources, whereas background-image and fonts are not. The operations that are to be blocked must be a space-separated list of blocking tokens listed below. Currently there is only one token:\n
    \n
  • render: The rendering of content on the screen is blocked.
  • \n
\n
\n

Note:\nOnly style elements in the document's <head> can possibly block rendering. By default, a style element in the <head> blocks rendering when the browser discovers it during parsing. If such a style element is added dynamically via script, you must additionally set blocking = \"render\" for it to block rendering.\n

" }, "media": { "url": "$MDN_URL$/web/html/reference/elements/style#media", @@ -10474,7 +10488,7 @@ "Permitted content": "Phrasing content\n, optionally intermixed with\nHeading content\n", "Tag omission": "None; both the start tag and the end tag are mandatory.\n", "Permitted parents": "The\n<details>\nelement.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLElement\n" } @@ -10815,7 +10829,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -10836,7 +10849,6 @@ "Edge": "12", "Firefox": "1", "FirefoxAndroid": "4", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -10993,7 +11005,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -11014,7 +11025,6 @@ "Edge": "12", "Firefox": "1", "FirefoxAndroid": "4", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -11181,10 +11191,10 @@ "doc": "The <template> HTML element serves as a mechanism for holding HTML fragments, which can either be used later via JavaScript or generated immediately into shadow DOM.", "details": { "Content categories": "Metadata content\n,\nflow content\n,\nphrasing content\n,\nscript-supporting element\n", - "Permitted content": "No restrictions\n", + "Permitted content": "Nothing (see\nUsage notes\n)\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nmetadata content\n,\nphrasing content\n, or\nscript-supporting elements\n. Also allowed as a child of a\n<colgroup>\nelement that does\nnot\nhave a\nspan\nattribute.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLTemplateElement\n" }, @@ -11200,7 +11210,9 @@ "Edge": "124", "Firefox": "125", "FirefoxAndroid": "125", - "Opera": "110" + "Opera": "110", + "Safari": "17.5", + "SafariIOS": "17.5" }, "baseline": { "level": "NONE" @@ -11218,7 +11230,9 @@ "Edge": "123", "Firefox": "123", "FirefoxAndroid": "123", - "Opera": "109" + "Opera": "109", + "Safari": "16.4", + "SafariIOS": "16.4" }, "baseline": { "level": "NONE" @@ -11249,14 +11263,15 @@ "shadowrootserializable": { "url": "$MDN_URL$/web/html/reference/elements/template#shadowrootserializable", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "18", + "SafariIOS": "18" }, "baseline": { "level": "NONE" @@ -11437,7 +11452,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The maximum string length (measured in UTF-16 code units) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters." + "doc": "The maximum string length (measured in UTF-16 code units) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters." }, "minlength": { "url": "$MDN_URL$/web/html/reference/elements/textarea#minlength", @@ -11459,7 +11474,7 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "The minimum string length (measured in UTF-16 code units) required that the user should enter." + "doc": "The minimum string length (measured in UTF-16 code units) required that the user should enter." }, "name": { "url": "$MDN_URL$/web/html/reference/elements/textarea#name", @@ -11573,24 +11588,6 @@ }, "spellcheck": { "url": "$MDN_URL$/web/html/reference/elements/textarea#spellcheck", - "status": [ - "StandardTrack" - ], - "compatibility": { - "Chrome": "9", - "ChromeAndroid": "18", - "Edge": "12", - "Firefox": "2", - "FirefoxAndroid": "4", - "Opera": "15", - "Safari": "5.1", - "SafariIOS": "5" - }, - "baseline": { - "level": "HIGH", - "lowDate": "2015-07-29", - "highDate": "2018-01-29" - }, "doc": "Specifies whether the <textarea> is subject to spell-checking by the underlying browser/OS. The value can be:\n
    \n
  • true: Indicates that the element needs to have its spelling and grammar checked.
  • \n
  • default : Indicates that the element is to act according to a default behavior, possibly based on the parent element's own spellcheck value.
  • \n
  • false : Indicates that the element should not be spell-checked.
  • \n
" }, "wrap": { @@ -11700,7 +11697,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -11721,7 +11717,6 @@ "Edge": "12", "Firefox": "1", "FirefoxAndroid": "4", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -11804,7 +11799,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "A short, abbreviated description of the header cell's content provided as an alternative label to use for the header cell when referencing the cell in other contexts. Some user-agents, such as speech readers, may present this description before the content itself." + "doc": "A short, abbreviated description of the header cell's content provided as an alternative label to use for the header cell when referencing the cell in other contexts. Some user-agents, such as screen readers, may present this description before the content itself." }, "align": { "url": "$MDN_URL$/web/html/reference/elements/th#align", @@ -11879,7 +11874,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -11900,7 +11894,6 @@ "Edge": "12", "Firefox": "1", "FirefoxAndroid": "4", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -11977,7 +11970,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "A non-negative integer value indicating how many rows the header cell spans or extends. The default value is 1; if its value is set to 0, the header cell will extends to the end of the table grouping section (<thead>, <tbody>, <tfoot>, even if implicitly defined), that the <th> belongs to. Values higher than 65534 are clipped at 65534." + "doc": "A non-negative integer value indicating how many rows the header cell spans or extends. The default value is 1; if its value is set to 0, the header cell will extend to the end of the table grouping section (<thead>, <tbody>, <tfoot>, even if implicitly defined), that the <th> belongs to. Values higher than 65534 are clipped at 65534." }, "scope": { "url": "$MDN_URL$/web/html/reference/elements/th#scope", @@ -12128,7 +12121,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -12149,7 +12141,6 @@ "Edge": "12", "Firefox": "1", "FirefoxAndroid": "4", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -12256,13 +12247,13 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <title> HTML element defines the document's title that is shown in a browser's title bar or a page's tab. It only contains text; tags within the element are ignored.\n
\n```html\nGrandma's Heavy Metal Festival Journal\n```\n
", + "doc": "The <title> HTML element defines the document's title that is shown in a browser's title bar or a page's tab. It only contains text; HTML tags within the element, if any, are also treated as plain text.\n
\n```html\nGrandma's Heavy Metal Festival Journal\n```\n
", "details": { "Content categories": "Metadata content\n.\n", "Permitted content": "Text that is not inter-element\nwhitespace\n.\n", "Tag omission": "Both opening and closing tags are required. Note that leaving off\n</title>\nshould cause the browser to ignore the rest\nof the page.\n", "Permitted parents": "A\n<head>\nelement that contains no other\n<title>\nelement.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted.\n", "DOM interface": "HTMLTitleElement\n" } @@ -12350,7 +12341,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -12369,7 +12359,6 @@ "Chrome": "1", "ChromeAndroid": "18", "Edge": "12", - "Opera": "15", "Safari": "4", "SafariIOS": "3.2" }, @@ -12427,7 +12416,7 @@ "Permitted content": "None; it is a\nvoid element\n.\n", "Tag omission": "Must have a start tag and must not have an end tag.\n", "Permitted parents": "A media element, <audio> or <video>.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "No\nrole\npermitted\n", "DOM interface": "HTMLTrackElement\n" }, @@ -12474,7 +12463,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "How the text track is meant to be used. If omitted the default kind is subtitles. If the attribute contains an invalid value, it will use metadata.\nThe following keywords are allowed:\n
    \n
  • \n

    subtitles\n

      \n
    • Subtitles provide translation of content that cannot be understood by the viewer. For example speech or text that is not English in an English language film.
    • \n
    • Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene.
    • \n
    \n
  • \n
  • \n

    captions\n

      \n
    • Closed captions provide a transcription and possibly a translation of audio.
    • \n
    • It may include important non-verbal information such as music cues or sound effects.\nIt may indicate the cue's source (e.g., music, text, character).
    • \n
    • Suitable for users who are deaf or when the sound is muted.
    • \n
    \n
  • \n
  • \n

    chapters\n

      \n
    • Chapter titles are intended to be used when the user is navigating the media resource.
    • \n
    \n
  • \n
  • \n

    metadata\n

      \n
    • Tracks used by scripts. Not visible to the user.
    • \n
    \n
  • \n
" + "doc": "How the text track is meant to be used. If omitted the default kind is subtitles. If the attribute contains an invalid value, it will use metadata.\nThe following keywords are allowed:\n
\n
subtitles
\n
\n

Subtitles provide transcription or translation of the dialog. They are suitable for when the sound is available but not understood, such as speech or text that is not English in an English language film. Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene. Subtitles' information complements the audio and video. It is often embedded in the video itself, but can also be provided separately, especially for whole-film translations.\n

\n
captions
\n
\n

Closed captions provide transcription or translation of the dialog, sound effects, relevant musical cues, and other relevant audio information, such as the cue's source (e.g., character, environment). They are suitable for when sound is unavailable or not clearly audible (e.g., because it is muted, drowned-out by ambient noise, or because the user is deaf).\n

\n
descriptions
\n
\n

Descriptions summarize the video component of the media resource. They are intended to be synthesized as audio when the visual component is obscured, unavailable, or not usable (e.g., because the user is interacting with the application without a screen while driving, or because the user is blind).\n

\n
chapters
\n
\n

Chapter titles are intended to be used when the user is navigating the media resource.\n

\n
metadata
\n
\n

Tracks used by scripts. Not visible to the user.\n

\n
" }, "label": { "url": "$MDN_URL$/web/html/reference/elements/track#label", @@ -12540,7 +12529,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "Language of the track text data. It must be a valid BCP 47 language tag. If the kind attribute is set to subtitles, then srclang must be defined." + "doc": "Language of the track text data. It must be a valid BCP 47 language tag. If the kind attribute is set to subtitles, then srclang must be defined." } } }, @@ -12651,7 +12640,7 @@ "baseline": { "level": "NONE" }, - "doc": "This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent, and it doesn't work in all browsers.\n
\n

Warning:\nDo not use this attribute, as it has been deprecated: use CSS instead. To give a similar effect as the compact attribute, the CSS property line-height can be used with a value of 80%.\n

" + "doc": "This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute is browser-specific. Use CSS instead: to give a similar effect as the compact attribute, the CSS property line-height can be used with a value of 80%." }, "type": { "url": "$MDN_URL$/web/html/reference/elements/ul#type", @@ -12702,7 +12691,7 @@ "Permitted content": "Phrasing content\n.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLElement\n" } @@ -12733,7 +12722,7 @@ "Permitted content": "If the element has a src\nattribute: zero or more <track> elements, followed by transparent content that contains no media elements–that is no <audio> or <video>.\n

Else: zero or more <source> elements, followed by zero or more <track> elements, followed by transparent content that contains no media elements–that is no <audio> or <video>.\n", "Tag omission": "None, both the starting and ending tag are mandatory.\n", "Permitted parents": "Any element that accepts embedded content.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "application\n", "DOM interface": "HTMLVideoElement\n" }, @@ -13056,7 +13045,7 @@ "Permitted content": "Empty\n", "Tag omission": "Must have a start tag and must not have an end tag.\n", "Permitted parents": "Any element that accepts\nphrasing content\n.\n", - "Implicit ARIA role": "No corresponding role\n", + "Implicit ARIA role": "No corresponding role\n", "Permitted ARIA roles": "Any\n", "DOM interface": "HTMLElement\n" } diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/MathML.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/MathML.json index bbaecdc27e98..f2cd10ec13d0 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/MathML.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/MathML.json @@ -25,8 +25,9 @@ "SafariIOS": "8" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The dir global attribute is an enumerated attribute that indicates the directionality of the MathML element." }, @@ -46,8 +47,9 @@ "SafariIOS": "14" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The displaystyle global attribute is a boolean setting the math-style of a MathML element." }, @@ -62,7 +64,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The href global attribute creates a hyperlink on the MathML element pointing to the specified URL." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The href global attribute creates a hyperlink on the MathML element pointing to the specified URL." }, "mathbackground": { "url": "$MDN_URL$/web/mathml/reference/global_attributes/mathbackground", @@ -163,8 +165,9 @@ "SafariIOS": "4.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <annotation> MathML element contains an annotation to the MathML expression in a textual format, for example LaTeX.\n

\n

Note:\nAnnotations are not supposed to be rendered by browsers and are hidden by default. However, Firefox and Safari render some annotation formats if the first child of the <semantics> element contains errors or is missing.\n

", "details": { @@ -197,8 +200,9 @@ "SafariIOS": "4.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <annotation-xml> MathML element contains an annotation to the MathML expression in the XML format, for example Content MathML or SVG.\n
\n

Note:\nAnnotations are not supposed to be rendered by browsers and are hidden by default. However, Firefox and Safari render some annotation formats if the first child of the <semantics> element contains errors or is missing.\n

", "details": { @@ -282,8 +286,9 @@ "SafariIOS": "5" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <math> MathML element is the top-level MathML element, used to write a single mathematical formula. It can be placed in HTML content where flow content is permitted.\n
\n

Note:\nSee the Authoring MathML page for tips to properly integrate MathML formulas in your web pages and the Guides page for more demos.\n

", "details": { @@ -306,8 +311,9 @@ "SafariIOS": "5" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "This enumerated attribute specifies how the enclosed MathML markup should be rendered. It can have one of the following values:\n
    \n
  • block, which means that this element will be displayed in its own block outside the current span of text and with math-style set to normal.
  • \n
  • inline, which means that this element will be displayed inside the current span of text and with math-style set to compact.
  • \n
\n

If not present, its default value is inline." } @@ -324,7 +330,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The <menclose> MathML element renders its content inside an enclosing notation specified by the notation attribute.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The <menclose> MathML element renders its content inside an enclosing notation specified by the notation attribute.", "details": { "Implicit ARIA role": "None\n" }, @@ -360,8 +366,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <merror> MathML element is used to display contents as error messages. The intent of this element is to provide a standard way for programs that generate MathML from other input to report syntax errors.", "details": { @@ -377,7 +384,7 @@ "Safari": "6", "SafariIOS": "6" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The <mfenced> MathML element provides the possibility to add custom opening and closing brackets (such as parentheses) and separators (such as commas or semicolons) to an expression.\n

\n

Note:\nHistorically, the <mfenced> element was defined as a shorthand for writing fenced expressions and equivalent to an expanded form involving <mrow> and <mo> elements. Nowadays, it is recommended to use that equivalent form instead.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The <mfenced> MathML element provides the possibility to add custom opening and closing brackets (such as parentheses) and separators (such as commas or semicolons) to an expression.\n

\n

Note:\nHistorically, the <mfenced> element was defined as a shorthand for writing fenced expressions and equivalent to an expanded form involving <mrow> and <mo> elements. Nowadays, it is recommended to use that equivalent form instead.\n

", "details": { "Implicit ARIA role": "None\n" }, @@ -412,8 +419,9 @@ "SafariIOS": "5" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mfrac> MathML element is used to display fractions. It can also be used\nto mark up fraction-like objects such as\nbinomial coefficients\nand Legendre symbols.", "details": { @@ -450,8 +458,9 @@ "SafariIOS": "9" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the thickness of the horizontal fraction line." }, @@ -487,8 +496,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mi> MathML element indicates that the content should be rendered as an identifier, such as a function name, variable or symbolic constant.\n

By default <mi> elements that contain multiple characters are a rendered as normal text, while single character characters are rendered as italic: the same formatting behavior as the CSS text-transform property with a value of math-auto.\nThe mathvariant attribute with a value of normal can be used to reset a single character to the normal font.\n

In order to use a particular form of a character such as bold/italic, serif, sans-serif, script/calligraphy, monospaced, double-struck, and so on, you should use the appropriate Mathematical Alphanumeric Symbols.\n

\n

Note:\nIn a previous specification (MathML3), the mathvariant attribute was used to define logical classes that could apply the character formatting for mathematical alphanumeric symbols.\nThe associated values are now deprecated, and expected to be removed from browsers in future releases.\n

", "details": { @@ -511,8 +521,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The only value allowed in the current specification is normal (case insensitive):\n
\n
normal
\n
\n

Use default/normal rendering, removing automatic styling of single characters to italic.\n

\n
\n

Deprecated legacy values are:\n

\n
bold
\n
\n

Try and use bold characters e.g., \"𝐀\".\n

\n
italic
\n
\n

Try and use italic characters e.g., \"𝐴\".\n

\n
bold-italic
\n
\n

Try and use bold-italic characters e.g., \"𝑨\".\n

\n
double-struck
\n
\n

Try and use double-struck characters e.g., \"𝔸\".\n

\n
bold-fraktur
\n
\n

Try and use bold-fraktur characters e.g., \"𝕬\".\n

\n
script
\n
\n

Try and use script characters e.g., \"𝒜\".\n

\n
bold-script
\n
\n

Try and use bold-script characters e.g., \"𝓐\".\n

\n
fraktur
\n
\n

Try and use fraktur characters e.g., \"𝔄\".\n

\n
sans-serif
\n
\n

Try and use sans-serif characters e.g., \"𝖠\".\n

\n
bold-sans-serif
\n
\n

Try and use bold-sans-serif characters e.g., \"𝗔\".\n

\n
sans-serif-italic
\n
\n

Try and use sans-serif-italic characters e.g., \"𝘈\".\n

\n
sans-serif-bold-italic
\n
\n

Try and use sans-serif-bold-italic characters e.g., \"𝘼\".\n

\n
monospace
\n
\n

Try and use monospace characters e.g., \"𝙰\".\n

\n
initial
\n
\n

Try and use initial characters e.g., \"𞸢\".\n

\n
tailed
\n
\n

Try and use tailed characters e.g., \"𞹂\".\n

\n
looped
\n
\n

Try and use looped characters e.g., \"𞺂\".\n

\n
stretched
\n
\n

Try and use stretched characters e.g., \"𞹢\".\n

\n
" } @@ -534,8 +545,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mmultiscripts> MathML element is used to attach an arbitrary number of subscripts and superscripts to an expression at once, generalizing the <msubsup> element. Scripts can be either pre-scripts (placed before the expression) or post-scripts (placed after it).\n

MathML uses the syntax below, that is a base expression, followed by an arbitrary number of post-subscript and post-superscript pairs (attached in the given order) optionally followed by an <mprescripts> element and an arbitrary number of pre-subscript and pre-superscript pairs (attached in the given order). In addition, empty <mrow> elements can be used to represent absent scripts.\n

\n```html\n\n  base\n  post-sub-script-1 post-sup-script-1\n  post-sub-script-2 post-sup-script-2\n  post-sub-script-3 post-sup-script-3\n  ...\n  post-sub-script-N post-sup-script-N\n                      ⎫\n  pre-sub-script-1 pre-sup-script-1  ⎪\n  pre-sub-script-2 pre-sup-script-2  ⎬ Optional\n  pre-sub-script-3 pre-sup-script-3  ⎪\n  ...                                ⎪\n  pre-sub-script-M pre-sup-script-N  ⎭\n\n```\n
", "details": { @@ -588,8 +600,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mn> MathML element represents a numeric literal which is normally a sequence of digits with a possible separator (a dot or a comma). However, it is also allowed to have arbitrary text in it which is actually a numeric quantity, for example \"eleven\".", "details": { @@ -612,8 +625,9 @@ "SafariIOS": "4.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mo> MathML element represents an operator in a broad sense. Besides operators in strict mathematical meaning, this element also includes \"operators\" like parentheses, separators like comma and semicolon, or \"absolute value\" bars.", "details": { @@ -653,8 +667,9 @@ "SafariIOS": "8" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "An enumerated attribute specifying how the operator is to be presented. For example, depending on the value, a different amount of space might be rendered on either side of the operator. It can have one of the following values:\n
    \n
  • prefix: The operator appears before its operands. For example, in the expression + a, the + is a prefix operator.
  • \n
  • infix: The operator appears between its operands. In the expression a + b, the + is an infix operator.
  • \n
  • postfix: The operator appears after its operands. For example, in the expression a +, the + is a postfix operator.
  • \n
" }, @@ -674,8 +689,9 @@ "SafariIOS": "8" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <boolean> indicating whether the operator should be drawn bigger when math-style is set to normal." }, @@ -695,8 +711,9 @@ "SafariIOS": "8" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the amount of space before the operator." }, @@ -716,8 +733,9 @@ "SafariIOS": "8" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the maximum size of the operator when it is stretchy." }, @@ -737,8 +755,9 @@ "SafariIOS": "8" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the minimum size of the operator when it is stretchy." }, @@ -758,8 +777,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <boolean> indicating whether attached under- and overscripts move to sub- and superscript positions when math-style is set to compact." }, @@ -779,8 +799,9 @@ "SafariIOS": "8" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the amount of space after the operator." }, @@ -804,8 +825,9 @@ "SafariIOS": "4.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <boolean> indicating whether the operator stretches to the size of the adjacent element." }, @@ -825,8 +847,9 @@ "SafariIOS": "8" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <boolean> indicating whether a stretchy operator should be vertically symmetric around the imaginary math axis (centered fraction line)." } @@ -848,8 +871,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mover> MathML element is used to attach an accent or a limit over an expression. Use the following syntax: <mover> base overscript </mover>", "details": { @@ -872,8 +896,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <boolean> indicating whether the over script should be treated as an accent (i.e., drawn bigger and closer to the base expression)." } @@ -895,8 +920,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mpadded> MathML element is used to add extra padding and to set the general adjustment of position and size of enclosed contents.", "details": { @@ -919,8 +945,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the desired depth (below the baseline) of the <mpadded> element." }, @@ -940,8 +967,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the desired height (above the baseline) of the <mpadded> element." }, @@ -961,8 +989,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the horizontal location of the positioning point of the child content with respect to the positioning point of the <mpadded> element." }, @@ -982,8 +1011,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the vertical location of the positioning point of the child content with respect to the positioning point of the <mpadded> element." }, @@ -1003,8 +1033,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the desired horizontal length of the <mpadded> element." } @@ -1026,8 +1057,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mphantom> MathML element is rendered invisibly, but dimensions (such as height, width, and baseline position) are still kept.", "details": { @@ -1050,8 +1082,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mprescripts> MathML element is used within an <mmultiscripts> element to indicate the start of the pre-scripts elements (subscripts and superscripts that are placed before the base expression).", "details": { @@ -1074,8 +1107,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mroot> MathML element is used to display roots with an explicit index. Two arguments are accepted, which leads to the syntax: <mroot> base index </mroot>.", "details": { @@ -1098,8 +1132,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mrow> MathML element is used to group sub-expressions, which usually contain one or more operators with their respective operands (such as <mi> and <mn>). This element renders as a horizontal row containing its arguments.\n

When writing a MathML expression, you should group elements within an <mrow> in the same way as they are grouped in the mathematical interpretation of the expression. Proper grouping helps the rendering of the expression in several ways:\n

    \n
  • It can improve the display by possibly affecting spacing and preventing line breaks.
  • \n
  • It simplifies the interpretation of the expression by automated systems such as computer algebra systems and audio renderers.
  • \n
", "details": { @@ -1122,8 +1157,9 @@ "SafariIOS": "9" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <ms> MathML element represents a string literal meant to be interpreted by programming languages and computer algebra systems.", "details": { @@ -1146,8 +1182,9 @@ "SafariIOS": "7" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mspace> MathML element is used to display a blank space, whose size is set by its attributes.", "details": { @@ -1170,8 +1207,9 @@ "SafariIOS": "7" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the desired depth (below the baseline) of the space." }, @@ -1191,8 +1229,9 @@ "SafariIOS": "7" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the desired height (above the baseline) of the space." }, @@ -1212,8 +1251,9 @@ "SafariIOS": "7" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <length-percentage> indicating the desired width of the space." } @@ -1235,8 +1275,9 @@ "SafariIOS": "5" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <msqrt> MathML element is used to display square roots (no index is displayed). The square root accepts only one argument, which leads to the following syntax: <msqrt> base </msqrt>.", "details": { @@ -1259,8 +1300,9 @@ "SafariIOS": "5" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mstyle> MathML element is used to change the style of its children.\n
\n

Note:\nHistorically, this element accepted almost all the MathML attributes and it was used to override the default attribute values of its descendants. It was later restricted to only a few relevant styling attributes that were used in existing web pages. Nowadays, these styling attributes are common to all MathML elements and so <mstyle> is really just equivalent to an <mrow> element. However, <mstyle> may still be relevant for compatibility with MathML implementations outside browsers.\n

", "details": { @@ -1355,8 +1397,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <msub> MathML element is used to attach a subscript to an expression.\n

It uses the following syntax: <msub> base subscript </msub>.", "details": { @@ -1395,8 +1438,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <msubsup> MathML element is used to attach both a subscript and a superscript, together, to an expression.\n

It uses the following syntax: <msubsup> base subscript superscript </msubsup>.", "details": { @@ -1449,8 +1493,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <msup> MathML element is used to attach a superscript to an expression.\n

It uses the following syntax: <msup> base superscript </msup>.", "details": { @@ -1489,8 +1534,9 @@ "SafariIOS": "5" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mtable> MathML element allows you to create tables or matrices. Its children are <mtr> elements (representing rows), each of them having <mtd> elements as its children (representing cells). These elements are similar to <table>, <tr> and <td> elements of HTML.", "details": { @@ -1635,8 +1681,9 @@ "SafariIOS": "5" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mtd> MathML element represents a cell in a table or a matrix. It may only appear in a <mtr> element. This element is similar to the <td> element of HTML.", "details": { @@ -1729,8 +1776,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mtext> MathML element is used to render arbitrary text with no notational meaning, such as comments or annotations.\n

To display text with notational meaning, use <mi>, <mn>, <mo> or <ms> instead.", "details": { @@ -1753,8 +1801,9 @@ "SafariIOS": "5" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <mtr> MathML element represents a row in a table or a matrix. It may only appear in a <mtable> element and its children are <mtd> elements representing cells. This element is similar to the <tr> element of HTML.", "details": { @@ -1805,8 +1854,9 @@ "SafariIOS": "5" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <munder> MathML element is used to attach an accent or a limit under an expression. It uses the following syntax: <munder> base underscript </munder>", "details": { @@ -1829,8 +1879,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <boolean> indicating whether the under script should be treated as an accent (i.e., drawn bigger and closer to the base expression)." } @@ -1852,8 +1903,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <munderover> MathML element is used to attach accents or limits both under and over an expression.\n

It uses the following syntax: <munderover> base underscript overscript </munderover>", "details": { @@ -1876,8 +1928,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <boolean> indicating whether the over script should be treated as an accent (i.e., drawn bigger and closer to the base expression)." }, @@ -1897,8 +1950,9 @@ "SafariIOS": "10" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "A <boolean> indicating whether the under script should be treated as an accent (i.e., drawn bigger and closer to the base expression)." } @@ -1920,8 +1974,9 @@ "SafariIOS": "4.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The <semantics> MathML element associates annotations with a MathML expression, for example its text source as a lightweight markup language or mathematical meaning expressed in a special XML dialect. Typically, its structure is:\n

\n

By default, only the first child of the <semantics> element is rendered while the others have their display set to none.\n

\n```css\nsemantics > :not(:first-child) {\n  display: none;\n}\n```\n
\n
\n

Note:\nLegacy MathML specifications allowed renderers to decide the default rendering according to available annotations. The following rules for determining the visible child have been implemented in some browsers. See MathML 4 for the distinction between Presentation and Content MathML.\n

    \n
  • If no other rules apply: By default only the first child is rendered, which is supposed to be Presentation MathML.
  • \n
  • If the first child is a Presentation MathML element other than <annotation> or <annotation-xml>, render the first child.
  • \n
  • If no Presentation MathML is found, render the first <annotation> or <annotation-xml> child element of <semantics> without a src attribute. For <annotation-xml> elements the encoding attribute must be equal to one of following values:\n
      \n
    • \"application/mathml-presentation+xml\"
    • \n
    • \"MathML-Presentation\"
    • \n
    • \"SVG1.1\"
    • \n
    • \"text/html\"
    • \n
    • \"image/svg+xml\"
    • \n
    • \"application/xml\"
    • \n
    \n
  • \n
\n

Note that \"application/mathml+xml\" is not mentioned here as it does not distinguish between Content or Presentation MathML.\n

", "details": { diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Svg-obsolete.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Svg-obsolete.json index 863e8a0cfad2..95a798475c0a 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Svg-obsolete.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Svg-obsolete.json @@ -225,6 +225,29 @@ } } }, + "discard": { + "url": "$MDN_URL$/web/svg/reference/element/discard", + "status": [ + "Obsolete" + ], + "compatibility": {}, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The <discard> SVG element may be used to specify the time at which a particular element should be removed from the DOM.\nThis allows an SVG viewer to conserve memory by discarding elements that are no longer needed, such as animated elements that have completed.\n

The operation removes the target element and all its children, and then the <discard> element itself (this happens even if the target element was invalid).\n

The begin attribute is used to specify the trigger point at which the <discard> element becomes active and its associated element is discarded.\nThe target element that is to be removed from the DOM is specified using the href attribute.\nIf not specified, the immediate parent of the <discard> element is the target.\n

<discard> may be used in all the same places as the <animate> element.\nAuthors should set the playbackorder attribute to forwardonly when using this element, as elements are not re-added if the user seeks backwards in the timeline.", + "attrs": { + "begin": { + "url": "$MDN_URL$/web/svg/reference/element/discard#begin", + "doc": "The trigger that causes the <discard> element to become active, at which point the associated element should be discarded.\nThis is commonly a syncbase-value indicating the start or end of another animation, an offset-value relative to when the SVG file was loaded into the DOM, or an event-value.", + "details": { + "Value type": "<begin-value-list>", + "Default": "0", + "Animatable": "no" + } + }, + "href": { + "url": "$MDN_URL$/web/svg/reference/element/discard#href", + "doc": "An URL reference for the target element to discard.\nThis has the same requirements as href on animation elements, and can be another <discard> element.\nIf not defined, the target element is the immediate parent of the <discard> element.\n

Note that if the target element is not part of the current SVG document fragment, whether or not it is discarded depends on the target language.\n

Default value: none; Animatable: no" + } + } + }, "filter": { "doc": "", "attrs": { diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Svg.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Svg.json index 62fb9c16d67b..fc468920ba13 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Svg.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/Svg.json @@ -152,7 +152,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The color attribute is used to provide a potential indirect value, currentcolor, for the fill, stroke, stop-color, flood-color, and lighting-color attributes.\n

\n

Note:\nAs a presentation attribute, color also has a CSS property counterpart: color. When both are specified, the CSS property takes priority.\n

\n

Technically, color can be applied to any element, but it has no direct effect on SVG elements." + "doc": "The color attribute is used to provide a potential indirect value, currentColor, for the fill, stroke, stop-color, flood-color, and lighting-color attributes.\n

\n

Note:\nAs a presentation attribute, color also has a CSS property counterpart: color. When both are specified, the CSS property takes priority.\n

\n

Technically, color can be applied to any element, but it has no direct effect on SVG elements." }, "color-interpolation": { "url": "$MDN_URL$/web/svg/reference/attribute/color-interpolation", @@ -232,7 +232,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The direction attribute specifies the inline-base direction of a <text> or <tspan> element. It defines the start and end points of a line of text as used by the text-anchor and inline-size properties. It also may affect the direction in which characters are positioned if the unicode-bidi property's value is either embed or bidi-override.\n

It applies only to glyphs oriented perpendicular to the inline-base direction, which includes the usual case of horizontally-oriented Latin or Arabic text and the case of narrow-cell Latin or Arabic characters rotated 90 degrees clockwise relative to a top-to-bottom inline-base direction.\n

In many cases, the bidirectional Unicode algorithm produces the desired result automatically, so this attribute doesn't need to be specified in those cases. For other cases, such as when using right-to-left languages, it may be sufficient to add the direction attribute to the outermost <svg> element, and allow that direction to inherit to all text elements:\n

\n

Note:\nAs a presentation attribute, direction also has a CSS property counterpart: direction. When both are specified, the CSS property takes priority.\n

\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The direction attribute specifies the inline-base direction of a <text> or <tspan> element. It defines the start and end points of a line of text as used by the text-anchor and inline-size properties. It also may affect the direction in which characters are positioned if the unicode-bidi property's value is either embed or bidi-override.\n

It applies only to glyphs oriented perpendicular to the inline-base direction, which includes the usual case of horizontally-oriented Latin or Arabic text and the case of narrow-cell Latin or Arabic characters rotated 90 degrees clockwise relative to a top-to-bottom inline-base direction.\n

In many cases, the bidirectional Unicode algorithm produces the desired result automatically, so this attribute doesn't need to be specified in those cases. For other cases, such as when using right-to-left languages, it may be sufficient to add the direction attribute to the outermost <svg> element, and allow that direction to inherit to all text elements:\n

\n

Note:\nAs a presentation attribute, direction also has a CSS property counterpart: direction. When both are specified, the CSS property takes priority.\n

\n

You can use this attribute with the following SVG elements:\n

" }, "display": { "url": "$MDN_URL$/web/svg/reference/attribute/display", @@ -634,7 +634,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The lang attribute specifies the primary language used in contents and attributes containing text content of particular elements.\n

There is also an xml:lang attribute (with namespace). If both of them are defined, the one with namespace is used and the one without is ignored.\n

In SVG 1.1 there was a lang attribute defined with a different meaning and only applying to <glyph> elements. That attribute specified a list of languages according to RFC 5646: Tags for Identifying Languages (also known as BCP 47). The glyph was meant to be used if the xml:lang attribute exactly matched one of the languages given in the value of this parameter, or if the xml:lang attribute exactly equaled a prefix of one of the languages given in the value of this parameter such that the first tag character following the prefix was \"-\".\n

You can use this attribute with any SVG element." + "doc": "The lang attribute specifies the primary language used in contents and attributes containing text content of particular elements.\n

There is also an xml:lang attribute (with namespace). If both of them are defined, the one with namespace is used and the one without is ignored.\n

In SVG 1.1 there was a lang attribute defined with a different meaning and only applying to <glyph> elements. That attribute specified a list of BCP 47 language tags. The glyph was meant to be used if the xml:lang attribute exactly matched one of the languages given in the value of this parameter, or if the xml:lang attribute exactly equaled a prefix of one of the languages given in the value of this parameter such that the first tag character following the prefix was \"-\".\n

You can use this attribute with any SVG element." }, "letter-spacing": { "url": "$MDN_URL$/web/svg/reference/attribute/letter-spacing", @@ -656,7 +656,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The letter-spacing attribute controls spacing between text characters.\n

If the attribute value is a unitless number (like 128), the browser processes it as a <length> in the current user coordinate system.\n

If the attribute value has a unit identifier, such as .25em or 1%, then the browser converts the <length> into its corresponding value in the current user coordinate system.\n

\n

Note:\nAs a presentation attribute, letter-spacing also has a CSS property counterpart: letter-spacing. When both are specified, the CSS property takes priority.\n

\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The letter-spacing attribute controls spacing between text characters.\n

If the attribute value is a unitless number (like 128), the browser processes it as a <length> in the current user coordinate system.\n

If the attribute value has a unit identifier, such as .25em or 1%, then the browser converts the <length> into its corresponding value in the current user coordinate system.\n

\n

Note:\nAs a presentation attribute, letter-spacing also has a CSS property counterpart: letter-spacing. When both are specified, the CSS property takes priority.\n

\n

You can use this attribute with the following SVG elements:\n

" }, "lighting-color": { "url": "$MDN_URL$/web/svg/reference/attribute/lighting-color", @@ -1240,7 +1240,7 @@ "lowDate": "2015-09-30", "highDate": "2018-03-30" }, - "doc": "The transform attribute defines a list of transform definitions that are applied to an element and the element's children.\n
\n

Note:\nAs a presentation attribute, transform also has a CSS property counterpart: transform. When both are specified, the CSS property takes priority. However, be aware that there are some differences in syntax between the CSS property and the attribute. See the documentation for the CSS property transform for the specific syntax to use in that case.\n

\n

You can use this attribute with any SVG element." + "doc": "The transform attribute defines a list of transform definitions that are applied to an element and the element's children.\n

\n

Note:\nAs a presentation attribute, transform also has a CSS property counterpart: transform. When both are specified, the CSS property takes priority. Note that there are some differences in syntax between the CSS property and the attribute!\n

" }, "transform-origin": { "url": "$MDN_URL$/web/svg/reference/attribute/transform-origin", @@ -1733,7 +1733,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The from attribute indicates the initial value of the attribute that will be modified during the animation.\n

When used with the to attribute, the animation will change the modified attribute from the from value to the to value. When used with the by attribute, the animation will change the attribute relatively from the from value by the value specified in by.\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The from attribute indicates the initial value of the attribute that will be modified during the animation.\n

When used with the to attribute, the animation will change the modified attribute from the from value to the to value. When used with the by attribute, the animation will change the attribute relatively from the from value by the value specified in by.\n

You can use this attribute with the following SVG elements:\n

" }, "href": { "url": "$MDN_URL$/web/svg/reference/element/animate#href", @@ -1755,7 +1755,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" }, "repeatcount": { "url": "$MDN_URL$/web/svg/reference/element/animate#repeatcount", @@ -1821,7 +1821,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The to attribute indicates the final value of the attribute that will be modified during the animation.\n

The value of the attribute will change between the from attribute value and this value.\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The to attribute indicates the final value of the attribute that will be modified during the animation.\n

The value of the attribute will change between the from attribute value and this value.\n

You can use this attribute with the following SVG elements:\n

" } } }, @@ -1911,7 +1911,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" }, "keypoints": { "url": "$MDN_URL$/web/svg/reference/element/animatemotion#keypoints", @@ -2077,7 +2077,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The by attribute specifies a relative offset value for an attribute that will be modified during an animation.\n

The starting value for the attribute is either indicated by specifying it as value for the attribute given in the attributeName or the from attribute.\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The by attribute specifies a relative offset value for an attribute that will be modified during an animation.\n

The starting value for the attribute is either indicated by specifying it as value for the attribute given in the attributeName or the from attribute.\n

You can use this attribute with the following SVG elements:\n

" }, "fill": { "url": "$MDN_URL$/web/svg/reference/element/animatetransform#fill", @@ -2121,7 +2121,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The from attribute indicates the initial value of the attribute that will be modified during the animation.\n

When used with the to attribute, the animation will change the modified attribute from the from value to the to value. When used with the by attribute, the animation will change the attribute relatively from the from value by the value specified in by.\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The from attribute indicates the initial value of the attribute that will be modified during the animation.\n

When used with the to attribute, the animation will change the modified attribute from the from value to the to value. When used with the by attribute, the animation will change the attribute relatively from the from value by the value specified in by.\n

You can use this attribute with the following SVG elements:\n

" }, "href": { "url": "$MDN_URL$/web/svg/reference/element/animatetransform#href", @@ -2143,7 +2143,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" }, "systemlanguage": { "url": "$MDN_URL$/web/svg/reference/element/animatetransform#systemlanguage", @@ -2187,7 +2187,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The to attribute indicates the final value of the attribute that will be modified during the animation.\n

The value of the attribute will change between the from attribute value and this value.\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The to attribute indicates the final value of the attribute that will be modified during the animation.\n

The value of the attribute will change between the from attribute value and this value.\n

You can use this attribute with the following SVG elements:\n

" }, "type": { "url": "$MDN_URL$/web/svg/reference/element/animatetransform#type", @@ -2501,30 +2501,6 @@ }, "doc": "The <desc> SVG element provides an accessible, long-text description of any SVG container element or graphics element.\n

Text in a <desc> element is not rendered as part of the graphic. If the element can be described by visible text, it is possible to reference that text with the aria-describedby attribute. If aria-describedby is used, it will take precedence over <desc>.\n

The hidden text of a <desc> element can also be concatenated with the visible text of other elements using multiple IDs in an aria-describedby value. In that case, the <desc> element must provide an ID for reference." }, - "discard": { - "url": "$MDN_URL$/web/svg/reference/element/discard", - "status": [ - "Experimental", - "StandardTrack" - ], - "compatibility": {}, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The <discard> SVG element may be used to specify the time at which a particular element should be removed from the DOM.\nThis allows an SVG viewer to conserve memory by discarding elements that are no longer needed, such as animated elements that have completed.\n

The operation removes the target element and all its children, and then the <discard> element itself (this happens even if the target element was invalid).\n

The begin attribute is used to specify the trigger point at which the <discard> element becomes active and its associated element is discarded.\nThe target element that is to be removed from the DOM is specified using the href attribute.\nIf not specified, the immediate parent of the <discard> element is the target.\n

<discard> may be used in all the same places as the <animate> element.\nAuthors should set the playbackorder attribute to forwardonly when using this element, as elements are not re-added if the user seeks backwards in the timeline.", - "attrs": { - "begin": { - "url": "$MDN_URL$/web/svg/reference/element/discard#begin", - "doc": "The trigger that causes the <discard> element to become active, at which point the associated element should be discarded.\nThis is commonly a syncbase-value indicating the start or end of another animation, an offset-value relative to when the SVG file was loaded into the DOM, or an event-value.", - "details": { - "Value type": "<begin-value-list>", - "Default": "0", - "Animatable": "no" - } - }, - "href": { - "url": "$MDN_URL$/web/svg/reference/element/discard#href", - "doc": "An URL reference for the target element to discard.\nThis has the same requirements as href on animation elements, and can be another <discard> element.\nIf not defined, the target element is the immediate parent of the <discard> element.\n

Note that if the target element is not part of the current SVG document fragment, whether or not it is discarded depends on the target language.\n

Default value: none; Animatable: no" - } - } - }, "ellipse": { "url": "$MDN_URL$/web/svg/reference/element/ellipse", "status": [ @@ -3128,7 +3104,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <feConvolveMatrix> SVG filter primitive applies a matrix convolution filter effect. A convolution combines pixels in the input image with neighboring pixels to produce a resulting image. A wide variety of imaging operations can be achieved through convolutions, including blurring, edge detection, sharpening, embossing and beveling.\n

A matrix convolution is based on an n-by-m matrix (the convolution kernel) which describes how a given pixel value in the input image is combined with its neighboring pixel values to produce a resulting pixel value. Each result pixel is determined by applying the kernel matrix to the corresponding source pixel and its neighboring pixels. The basic convolution formula which is applied to each color value for a given pixel is:\n

\ncolorX,Y=∑i=0orderY−1∑j=0orderX−1sourcex−targetX+j,y−targetY+i⋅kernelMatrixorderX−j−1,orderY−i−1divisor+bias⋅alphax,y\\left(color\\right)_{X , Y} = \\frac{\\sum_{i = 0}^{orderY - 1} \\sum_{j = 0}^{orderX - 1} \\left(source\\right)_{x - targetX + j , y - \\mathit{targetY} + i} \\cdot \\left(kernelMatrix\\right)_{orderX - j - 1, orderY - i - 1}}{divisor} + bias \\cdot \\left(alpha\\right)_{x , y}\n
\n

where \"orderX\" and \"orderY\" represent the X and Y values for the order attribute, \"targetX\" represents the value of the targetX attribute, \"targetY\" represents the value of the targetY attribute, \"kernelMatrix\" represents the value of the kernelMatrix attribute, \"divisor\" represents the value of the divisor attribute, and \"bias\" represents the value of the bias attribute.\n

Note in the above formulas that the values in the kernel matrix are applied such that the kernel matrix is rotated 180 degrees relative to the source and destination images in order to match convolution theory as described in many computer graphics textbooks.\n

To illustrate, suppose you have an input image which is 5 pixels by 5 pixels, whose color values for one of the color channels are as follows:\n

0    20  40 235 235\n100 120 140 235 235\n200 220 240 235 235\n225 225 255 255 255\n225 225 255 255 255\n
\n

and you define a 3-by-3 convolution kernel as follows:\n

1 2 3\n4 5 6\n7 8 9\n
\n

Let's focus on the color value at the second row and second column of the image (source pixel value is 120). Assuming the simplest case (where the input image's pixel grid aligns perfectly with the kernel's pixel grid) and assuming default values for attributes 'divisor', 'targetX' and 'targetY', then resulting color value will be:\n

(9*0   + 8*20  + 7*40 +\n6*100 + 5*120 + 4*140 +\n3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)\n
\n

Like other filter primitives, it handles color components in the linearRGB color space by default. You can use color-interpolation-filters to use sRGB instead.", + "doc": "The <feConvolveMatrix> SVG filter primitive applies a matrix convolution filter effect. A convolution combines pixels in the input image with neighboring pixels to produce a resulting image. A wide variety of imaging operations can be achieved through convolutions, including blurring, edge detection, sharpening, embossing and beveling.\n

A matrix convolution is based on an n-by-m matrix (the convolution kernel) which describes how a given pixel value in the input image is combined with its neighboring pixel values to produce a resulting pixel value. Each result pixel is determined by applying the kernel matrix to the corresponding source pixel and its neighboring pixels. The basic convolution formula which is applied to each color value for a given pixel is:\n

\ncolorX,Y=∑i=0orderY−1∑j=0orderX−1sourcex−targetX+j,y−targetY+i⋅kernelMatrixorderX−j−1,orderY−i−1divisor+bias⋅alphax,y\\left(color\\right)_{X , Y} = \\frac{\\sum_{i = 0}^{orderY - 1} \\sum_{j = 0}^{orderX - 1} \\left(source\\right)_{x - targetX + j , y - \\mathit{targetY} + i} \\cdot \\left(kernelMatrix\\right)_{orderX - j - 1, orderY - i - 1}}{divisor} + bias \\cdot \\left(alpha\\right)_{x , y}\n
\n

where \"orderX\" and \"orderY\" represent the X and Y values for the order attribute, and the other variables refer to the targetX, targetY, kernelMatrix, divisor, and bias attributes.\n

Note in the above formulas that the values in the kernel matrix are applied such that the kernel matrix is rotated 180 degrees relative to the source and destination images in order to match convolution theory as described in many computer graphics textbooks.\n

To illustrate, suppose you have an input image which is 5 pixels by 5 pixels, whose color values for one of the color channels are as follows:\n

0    20  40 235 235\n100 120 140 235 235\n200 220 240 235 235\n225 225 255 255 255\n225 225 255 255 255\n
\n

and you define a 3-by-3 convolution kernel as follows:\n

1 2 3\n4 5 6\n7 8 9\n
\n

Let's focus on the color value at the second row and second column of the image (source pixel value is 120). Assuming the simplest case (where the input image's pixel grid aligns perfectly with the kernel's pixel grid) and assuming default values for attributes divisor, targetX and targetY, then resulting color value will be:\n

(9*0   + 8*20  + 7*40 +\n6*100 + 5*120 + 4*140 +\n3*200 + 2*220 + 1*240) / (9+8+7+6+5+4+3+2+1)\n
\n

Like other filter primitives, it handles color components in the linearRGB color space by default. You can use color-interpolation-filters to use sRGB instead.", "attrs": { "bias": { "url": "$MDN_URL$/web/svg/reference/element/feconvolvematrix#bias", @@ -3260,7 +3236,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The kernelUnitLength attribute has two meanings based on the context it's used in. For lighting filter primitives, it indicates the intended distance for the x and y coordinates, for <feConvolveMatrix>, it indicates the intended distance between successive columns and rows in the kernel matrix.\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The kernelUnitLength attribute has two meanings based on the context it's used in. For lighting filter primitives, it indicates the intended distance for the x and y coordinates, for <feConvolveMatrix>, it indicates the intended distance between successive columns and rows in the kernel matrix.\n

You can use this attribute with the following SVG elements:\n

" }, "order": { "url": "$MDN_URL$/web/svg/reference/element/feconvolvematrix#order", @@ -3438,7 +3414,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The kernelUnitLength attribute has two meanings based on the context it's used in. For lighting filter primitives, it indicates the intended distance for the x and y coordinates, for <feConvolveMatrix>, it indicates the intended distance between successive columns and rows in the kernel matrix.\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The kernelUnitLength attribute has two meanings based on the context it's used in. For lighting filter primitives, it indicates the intended distance for the x and y coordinates, for <feConvolveMatrix>, it indicates the intended distance between successive columns and rows in the kernel matrix.\n

You can use this attribute with the following SVG elements:\n

" }, "surfacescale": { "url": "$MDN_URL$/web/svg/reference/element/fediffuselighting#surfacescale", @@ -4016,6 +3992,17 @@ }, "doc": "The crossorigin attribute, valid on the <image> and <feImage> elements, provides support for configuration of the Cross-Origin Resource Sharing (CORS) requests for the element's fetched data.\n

This table shows possible keywords and their meaning:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
KeywordDescription
anonymousClient CORS requests for this element will have the credentials flag set to 'same-origin'.
use-credentialsClient CORS requests for this element will have the credentials flag set to 'include'.
\"\"Setting the attribute name to an empty value, like crossorigin or crossorigin=\"\", is the same as anonymous.
\n

It follows the same processing rules as the HTML attribute crossorigin." }, + "fetchpriority": { + "url": "$MDN_URL$/web/svg/reference/element/feimage#fetchpriority", + "status": [ + "Experimental" + ], + "compatibility": { + "Firefox": "140", + "FirefoxAndroid": "140" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The fetchpriority attribute provides a hint to the browser about the relative priority to use when fetching an external resource. This works the same way as the fetchpriority attribute for the HTML <img> and <script> elements.\n

You can use this attribute with the following SVG elements:\n

" + }, "href": { "url": "$MDN_URL$/web/svg/reference/element/feimage#href", "status": [ @@ -4036,7 +4023,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" }, "preserveaspectratio": { "url": "$MDN_URL$/web/svg/reference/element/feimage#preserveaspectratio", @@ -4463,7 +4450,7 @@ "level": "LOW", "lowDate": "2024-03-05" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The kernelUnitLength attribute has two meanings based on the context it's used in. For lighting filter primitives, it indicates the intended distance for the x and y coordinates, for <feConvolveMatrix>, it indicates the intended distance between successive columns and rows in the kernel matrix.\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The kernelUnitLength attribute has two meanings based on the context it's used in. For lighting filter primitives, it indicates the intended distance for the x and y coordinates, for <feConvolveMatrix>, it indicates the intended distance between successive columns and rows in the kernel matrix.\n

You can use this attribute with the following SVG elements:\n

" }, "specularconstant": { "url": "$MDN_URL$/web/svg/reference/element/fespecularlighting#specularconstant", @@ -5077,7 +5064,7 @@ "compatibility": { "Chrome": "1", "ChromeAndroid": "18", - "Edge": "79", + "Edge": "12", "Firefox": "2", "FirefoxAndroid": "4", "Opera": "2", @@ -5086,8 +5073,8 @@ }, "baseline": { "level": "HIGH", - "lowDate": "≤2020-01-15", - "highDate": "≤2022-07-15" + "lowDate": "2015-07-29", + "highDate": "2018-01-29" }, "doc": "The <foreignObject> SVG element includes elements from a different XML namespace. In the context of a browser, it is most likely (X)HTML.", "attrs": { @@ -5340,6 +5327,17 @@ "Animatable": "yes" } }, + "fetchpriority": { + "url": "$MDN_URL$/web/svg/reference/element/image#fetchpriority", + "status": [ + "Experimental" + ], + "compatibility": { + "Firefox": "140", + "FirefoxAndroid": "140" + }, + "doc": "Provides a hint of the relative priority to use when fetching an external image.\nAllowed values:\n
\n
high
\n
\n

Fetches the external image at a high priority relative to other external resources.\n

\n
low
\n
\n

Fetches the external image at a low priority relative to other external resources.\n

\n
auto
\n
\n

Doesn't set a preference for the fetch priority.\nIt is used if no value or an invalid value is set.\nThis is the default.\n

\n
" + }, "height": { "url": "$MDN_URL$/web/svg/reference/element/image#height", "status": [ @@ -6378,7 +6376,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" } } }, @@ -7518,6 +7516,17 @@ "level": "NONE" } }, + "fetchpriority": { + "url": "$MDN_URL$/web/svg/reference/element/script#fetchpriority", + "status": [ + "Experimental" + ], + "compatibility": { + "Firefox": "140", + "FirefoxAndroid": "140" + }, + "doc": "Provides a hint of the relative priority to use when fetching an external script.\nAllowed values:\n
\n
high
\n
\n

Fetches the external script at a high priority relative to other external scripts.\n

\n
low
\n
\n

Fetches the external script at a low priority relative to other external scripts.\n

\n
auto
\n
\n

Doesn't set a preference for the fetch priority.\nIt is used if no value or an invalid value is set.\nThis is the default.\n

\n
" + }, "href": { "url": "$MDN_URL$/web/svg/reference/element/script#href", "status": [ @@ -7591,7 +7600,7 @@ "compatibility": { "Chrome": "2", "ChromeAndroid": "18", - "Edge": "79", + "Edge": "12", "Firefox": "4", "FirefoxAndroid": "4", "Opera": "12.1", @@ -7600,8 +7609,8 @@ }, "baseline": { "level": "HIGH", - "lowDate": "≤2020-01-15", - "highDate": "≤2022-07-15" + "lowDate": "2015-07-29", + "highDate": "2018-01-29" }, "doc": "The <set> SVG element provides a method of setting the value of an attribute for a specified duration.\n

It supports all attribute types, including those that cannot reasonably be interpolated, such as string and boolean values. For attributes that can be reasonably be interpolated, the <animate> is usually preferred.\n

\n

Note:\nThe <set> element is non-additive. The additive and accumulate attributes are not allowed, and will be ignored if specified.\n

", "attrs": { @@ -7647,7 +7656,7 @@ "lowDate": "≤2020-01-15", "highDate": "≤2022-07-15" }, - "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" + "doc": "The href attribute defines a link to a resource as a reference URL. The exact meaning of that link depends on the context of each element using it.\n
\n

Note:\nSpecifications before SVG 2 defined an xlink:href attribute, which is now rendered obsolete by the href attribute. If you need to support earlier browser versions, the deprecated xlink:href attribute can be used as a fallback in addition to the href attribute, e.g., <use href=\"some-id\" xlink:href=\"some-id\" x=\"5\" y=\"5\" />.\n

\n

You can use this attribute with the following SVG elements:\n

" }, "systemlanguage": { "url": "$MDN_URL$/web/svg/reference/element/set#systemlanguage", @@ -8206,7 +8215,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <symbol> SVG element is used to define graphical template objects which can be instantiated by a <use> element.\n

The use of <symbol> elements for graphics that are used multiple times in the same document adds structure and semantics. Documents that are rich in structure may be rendered graphically, as speech, or as Braille, and thus promote accessibility.", + "doc": "The <symbol> SVG element is used to define graphical template objects which can be instantiated by a <use> element.\n

The use of <symbol> elements for graphics that are used multiple times in the same document adds structure and semantics. Documents that are rich in structure may be rendered graphically, as speech, or as Braille, and thus promote accessibility.\n

\n

Note:\nA <symbol> element itself is not meant to be rendered. Only instances of a <symbol> element (i.e., a reference to a <symbol> by a <use> element) are rendered. That means that some browsers could refuse to directly display a <symbol> element even if the CSS display property tells otherwise.\n

", "attrs": { "height": { "url": "$MDN_URL$/web/svg/reference/element/symbol#height", @@ -9050,7 +9059,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The <use> element takes nodes from within the SVG document, and duplicates them somewhere else.\nThe effect is the same as if the nodes were deeply cloned into a non-exposed DOM, then pasted where the use element is, much like cloned template elements.", + "doc": "The <use> element takes nodes from within an SVG document, and duplicates them somewhere else.\nThe effect is the same as if the nodes were deeply cloned into a non-exposed DOM, then pasted where the <use> element is, much like cloned <template> elements.", "attrs": { "height": { "url": "$MDN_URL$/web/svg/reference/element/use#height", @@ -9072,7 +9081,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The height of the use element.", + "doc": "The height of the <use> element.", "details": { "Value type": "<length>", "Default": "0", @@ -9148,7 +9157,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The width of the use element.", + "doc": "The width of the <use> element.", "details": { "Value type": "<length>", "Default": "0", @@ -9188,7 +9197,7 @@ "details": { "Value type": "<IRI>", "Default": "none", - "Animatable": "yes" + "Animatable": "yes\n
\n

Warning:\nSince SVG 2, the xlink:href attribute is deprecated in favor of href. See xlink:href page for more information.\n

" } }, "y": { @@ -9289,6 +9298,7 @@ "zoomandpan": { "url": "$MDN_URL$/web/svg/reference/element/view#zoomandpan", "status": [ + "StandardTrack", "Deprecated" ], "compatibility": { diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-a.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-a.json index f242c7441699..4cc7dd171b22 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-a.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-a.json @@ -554,6 +554,10 @@ "url": "$MDN_URL$/web/api/aesctrparams", "doc": "The AesCtrParams dictionary of the Web Crypto API represents the object that should be passed as the algorithm parameter into SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey(), or SubtleCrypto.unwrapKey(), when using the AES-CTR algorithm.\n

AES is a block cipher, meaning that it splits the message into blocks and encrypts it a block at a time. In CTR mode, every time a block of the message is encrypted, an extra block of data is mixed in. This extra block is called the \"counter block\".\n

A given counter block value must never be used more than once with the same key:\n

    \n
  • Given a message n blocks long, a different counter block must be used for every block.
  • \n
  • If the same key is used to encrypt more than one message, a different counter block must be used for all blocks across all messages.
  • \n
\n

Typically this is achieved by splitting the initial counter block value into two concatenated parts:\n

    \n
  • A nonce (that is, a number that may only be used once). The nonce part of the block stays the same for every block in the message. Each time a new message is to be encrypted, a new nonce is chosen. Nonces don't have to be secret, but they must not be reused with the same key.
  • \n
  • A counter. This part of the block gets incremented each time a block is encrypted.
  • \n
\n

Essentially: the nonce should ensure that counter blocks are not reused from one message to the next, while the counter should ensure that counter blocks are not reused within a single message.\n

\n

Note:\nSee Appendix B of the NIST SP800-38A standard for more information.\n

" }, + "aesderivedkeyparams": { + "url": "$MDN_URL$/web/api/aesderivedkeyparams", + "doc": "The AesDerivedKeyParams dictionary of the Web Crypto API represents the object that should be passed as the derivedKeyType parameter into SubtleCrypto.deriveKey(), when deriving an AES key: that is, when the algorithm is identified as any of AES-CBC, AES-CTR, AES-GCM, or AES-KW." + }, "aesgcmparams": { "url": "$MDN_URL$/web/api/aesgcmparams", "doc": "The AesGcmParams dictionary of the Web Crypto API represents the object that should be passed as the algorithm parameter into SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey(), or SubtleCrypto.unwrapKey(), when using the AES-GCM algorithm.\n

For details of how to supply appropriate values for this parameter, see the specification for AES-GCM: NIST SP800-38D, in particular section 5.2.1.1 on Input Data." @@ -797,7 +801,7 @@ "lowDate": "2021-04-26", "highDate": "2023-10-26" }, - "doc": "The getFloatTimeDomainData() method of the AnalyserNode Interface copies the current waveform, or time-domain, data into a Float32Array array passed into it. Each array value is a sample, the magnitude of the signal at a particular time.", + "doc": "The getFloatTimeDomainData() method of the AnalyserNode Interface copies the current waveform, or time-domain, data into a Float32Array array passed into it. Each array value is a sample, the magnitude of the signal at a particular time.\n

The waveform is represented as PCM data, which has a nominal range of -1.0 to 1.0, but values can exceed the range such as when down-mixing stereo to mono.", "parameters": { "array": "The Float32Array that the time domain data will be copied to.\nIf the array has fewer elements than the AnalyserNode.fftSize, excess elements are dropped. If it has more elements than needed, excess elements are ignored." }, @@ -940,7 +944,7 @@ "lowDate": "2020-03-24", "highDate": "2022-09-24" }, - "doc": "The Web Animations API's cancel() method of the Animation interface clears all KeyframeEffects caused by this animation and aborts its playback.\n

\n

Note:\nWhen an animation is cancelled, its startTime and currentTime are set to null.\n

", + "doc": "The Web Animations API's cancel() method of the Animation interface clears all KeyframeEffects caused by this animation and aborts its playback.\n
\n

Note:\nWhen an animation is cancelled, its startTime and currentTime are set to null.\n

", "returns": "None (undefined)." }, "animation.commitstyles": { @@ -963,7 +967,7 @@ "lowDate": "2020-07-28", "highDate": "2023-01-28" }, - "doc": "The commitStyles() method of the Web Animations API's Animation interface writes the computed values of the animation's current styles into its target element's style attribute. commitStyles() works even if the animation has been automatically removed.\n

commitStyles() can be used in combination with fill to cause the final state of an animation to persist after the animation ends. The same effect could be achieved with fill alone, but using indefinitely filling animations is discouraged. Animations take precedence over all static styles, so an indefinite filling animation can prevent the target element from ever being styled normally.\n

Using commitStyles() writes the styling state into the element's style attribute, where they can be modified and replaced as normal.", + "doc": "The commitStyles() method of the Web Animations API's Animation interface writes the computed values of the animation's current styles into its target element's style attribute.\n

It is primarily used to write the styles for the final state of an animation into the target element, so that the styling persists after the animation ends.", "returns": "None (undefined)." }, "animation.currenttime": { @@ -1083,16 +1087,17 @@ "animation.overallprogress": { "url": "$MDN_URL$/web/api/animation/overallprogress", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "133", "ChromeAndroid": "133", "Edge": "133", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "118" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The overallProgress read-only property of the Animation interface returns a number between 0 and 1 indicating the animation's overall progress towards its finished state. This is the overall progress across all of the animation's iterations, not each individual iteration.\n

overallProgress works consistently across all animations, regardless of the type of timeline." + "doc": "The overallProgress read-only property of the Animation interface returns a number between 0 and 1 indicating the animation's overall progress towards its finished state. This is the overall progress across all of the animation's iterations, not each individual iteration.\n

overallProgress works consistently across all animations, regardless of the type of timeline." }, "animation.pause": { "url": "$MDN_URL$/web/api/animation/pause", @@ -1412,7 +1417,7 @@ "highDate": "2022-09-24" }, "doc": "The getComputedTiming() method of the AnimationEffect interface returns the calculated timing properties for this animation effect.\n

\n

Note:\nThese values are comparable to the computed styles of an Element returned using window.getComputedStyle(elem).\n

", - "returns": "An object which contains:\n
    \n
  • \n

    all of the properties of the object returned by AnimationEffect.getTiming(), except that any \"auto\" values are replaced by computed values that may depend on the type of AnimationEffect.\n

  • \n
  • \n

    the following additional properties:\n

    \n
    endTime
    \n
    \n

    A number indicating the end time of the effect in milliseconds from the effect's start. This is equal to activeDuration plus delay and endDelay.\n

    \n
    activeDuration
    \n
    \n

    A number indicating the total duration in milliseconds of all iterations of the effect. This is equal to duration multiplied by iterations (or zero if that product would be NaN).\n

    \n
    localTime
    \n
    \n

    A number or null.\n

    Indicates the length of time in milliseconds that the effect has run. This is equal to the currentTime of the associated animation, or null if the effect is not associated with an animation.\n

    \n
    progress
    \n
    \n

    null or a number at least 0 and less than 1.\n

    Indicates the effect's progress through its current iteration. At the start of the activeDuration, this equals the fractional part of iterationStart.\n

    Returns null if the effect isn't mid-iteration, for example because the effect is in the delay or endDelay periods, the effect is finished, or localTime is null.\n

    \n
    currentIteration
    \n
    \n

    null or an integer number.\n

    Indicates the index of the current iteration. At the start of the activeDuration, this equals the integer part of iterationStart.\n

    Returns null whenever progress is null.\n

    \n
    \n
  • \n
" + "returns": "An object which contains:\n
    \n
  • all of the properties of the object returned by AnimationEffect.getTiming(), except that any \"auto\" values are replaced by computed values that may depend on the type of AnimationEffect.
  • \n
  • the following additional properties:\n
    \n
    endTime
    \n
    \n

    A number indicating the end time of the effect in milliseconds from the effect's start. This is equal to activeDuration plus delay and endDelay.\n

    \n
    activeDuration
    \n
    \n

    A number indicating the total duration in milliseconds of all iterations of the effect. This is equal to duration multiplied by iterations (or zero if that product would be NaN).\n

    \n
    localTime
    \n
    \n

    A number or null.\n

    Indicates the length of time in milliseconds that the effect has run. This is equal to the currentTime of the associated animation, or null if the effect is not associated with an animation.\n

    \n
    progress
    \n
    \n

    null or a number at least 0 and less than 1.\n

    Indicates the effect's progress through its current iteration. At the start of the activeDuration, this equals the fractional part of iterationStart.\n

    Returns null if the effect isn't mid-iteration, for example because the effect is in the delay or endDelay periods, the effect is finished, or localTime is null.\n

    \n
    currentIteration
    \n
    \n

    null or an integer number.\n

    Indicates the index of the current iteration. At the start of the activeDuration, this equals the integer part of iterationStart.\n

    Returns null whenever progress is null.\n

    \n
    \n
  • \n
" }, "animationeffect.gettiming": { "url": "$MDN_URL$/web/api/animationeffect/gettiming", @@ -1717,6 +1722,24 @@ }, "doc": "The currentTime read-only property of the Web Animations API's AnimationTimeline interface returns the timeline's current time in milliseconds, or null if the timeline is inactive." }, + "animationtimeline.duration": { + "url": "$MDN_URL$/web/api/animationtimeline/duration", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "115", + "ChromeAndroid": "115", + "Edge": "115", + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The duration read-only property of the Web Animations API's AnimationTimeline interface returns the maximum value for this timeline or null.\n

Note that the derived interfaces ViewTimeline and ScrollTimeline always return a duration of 100%, while DocumentTimeline has no duration, and returns null." + }, "atob": { "url": "$MDN_URL$/web/api/window/atob", "status": [ @@ -1743,7 +1766,7 @@ "parameters": { "encodedData": "A base64-encoded string, using the alphabet produced by Window.btoa()." }, - "returns": "A binary string containing raw bytes decoded from encodedData. Strings in JavaScript are encoded as UTF-16, so this means each character must have a code point less than 256, representing one byte of data.", + "returns": "A binary string containing raw bytes decoded from encodedData. Strings in JavaScript are encoded as UTF-16, so this means each character must have a code point less than 256, representing one byte of data.", "throws": { "InvalidCharacterError DOMException": "Thrown if encodedData is not valid base64." } @@ -2580,10 +2603,13 @@ "Edge": "102", "Firefox": "70", "FirefoxAndroid": "79", - "Opera": "88" + "Opera": "88", + "Safari": "18.4", + "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-03-31" }, "doc": "The outputLatency read-only property of\nthe AudioContext Interface provides an estimation of the output latency\nof the current audio context.\n

This is the time, in seconds, between the browser passing an audio buffer out of an\naudio graph over to the host system's audio subsystem to play, and the time at which the\nfirst sample in the buffer is actually processed by the audio output device.\n

It varies depending on the platform and the available hardware." }, @@ -2686,7 +2712,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2703,7 +2731,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2724,7 +2754,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2747,7 +2779,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2768,7 +2802,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2786,7 +2822,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2812,7 +2850,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2829,7 +2869,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2846,7 +2888,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2863,7 +2907,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2880,7 +2926,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2897,7 +2945,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2914,7 +2964,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2931,7 +2983,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2951,7 +3005,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -2969,14 +3025,16 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Dedicated Web Workers.

\n

The configure() method of the AudioDecoder interface enqueues a control message to configure the audio decoder for decoding chunks.", "parameters": { - "config": "A dictionary object containing the following members:\n

\n
codec
\n
\n

A string containing a valid codec string. See \"codecs\" parameter for details on codec string construction.\n

\n
sampleRate
\n
\n

An integer representing the number of frame samples per second.\n

\n
numberOfChannels
\n
\n

An integer representing the number of audio channels.\n

\n
description Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView containing a sequence of codec specific bytes, commonly known as extradata.\n

\n
" + "config": "A dictionary object containing the following members:\n
\n
codec
\n
\n

A string containing a valid codec string. See \"codecs\" parameter for details on codec string construction.\n

\n
sampleRate
\n
\n

An integer representing the number of frame samples per second.\n

\n
numberOfChannels
\n
\n

An integer representing the number of audio channels.\n

\n
description Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView containing a sequence of codec specific bytes, commonly known as extradata.\n

\n
" }, "returns": "None (undefined).", "throws": { @@ -2995,7 +3053,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3020,7 +3080,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3037,7 +3099,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3058,7 +3122,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3082,7 +3148,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3100,7 +3168,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3161,7 +3231,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3178,14 +3250,16 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Dedicated Web Workers.

\n

The AudioEncoder() constructor creates a new AudioEncoder object with the provided init.output callback assigned as the output callback, the provided init.error callback as the error callback, and the AudioEncoder.state set to \"unconfigured\".", "parameters": { - "init": "An object containing two required callbacks.\n

\n
output
\n
\n

A callback which takes a EncodedAudioChunk object as the first argument, and an optional metadata object as the second. The metadata object has one member, decoderConfig which has an object as its value containing:\n

\n
codec
\n
\n

A string containing a valid codec string.\n

\n
sampleRate
\n
\n

An integer representing the number of frame samples per second.\n

\n
numberOfChannels
\n
\n

An integer representing the number of audio channels.\n

\n
description Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView containing a sequence of codec specific bytes, commonly known as extradata.\n

\n
\n
\n
error
\n
\n

A callback which takes an Error object as its only argument.\n

\n
" + "init": "An object containing two required callbacks.\n
\n
output
\n
\n

A callback which takes a EncodedAudioChunk object as the first argument, and an optional metadata object as the second. The metadata object has one member, decoderConfig which has an object as its value containing:\n

\n
codec
\n
\n

A string containing a valid codec string.\n

\n
sampleRate
\n
\n

An integer representing the number of frame samples per second.\n

\n
numberOfChannels
\n
\n

An integer representing the number of audio channels.\n

\n
description Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView containing a sequence of codec specific bytes, commonly known as extradata.\n

\n
\n
\n
error
\n
\n

A callback which takes an Error object as its only argument.\n

\n
" } }, "audioencoder.close": { @@ -3198,7 +3272,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3216,14 +3292,16 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Dedicated Web Workers.

\n

The configure() method of the AudioEncoder interface enqueues a control message to configure the audio encoder for encoding chunks.", "parameters": { - "config": "A dictionary object containing the following members:\n

\n
codec
\n
\n

A string containing a valid codec string. See \"codecs\" parameter for details on codec string construction.\n

\n
sampleRate
\n
\n

An integer representing the number of frame samples per second.\n

\n
numberOfChannels
\n
\n

An integer representing the number of audio channels.\n

\n
bitrate Optional
\n
\n

An integer representing the bitrate.\n

\n
bitrateMode Optional
\n
\n

An enumerated value that defines the bitrate mode the encoder should use. Possible values are:\n

\n
\"constant\"
\n
\n

Forces an audio encoder to maintain the same bitrate, regardless of the audio content. This can be useful when a predictable bandwidth consumption is preferable.\n

\n
\"variable\" (default)
\n
\n

Allows an audio encoder to increase or lower its bitrate according to the content of the audio it is encoding, in order to preserve bandwidth/binary-size, while still maintaining a target quality. For example, an encoder might lower its bitrate when encoding silence, and revert to a full bitrate when encoding speech.\n

\n
\n

Specific codec encoder implementations may use slightly different terminology (for example, CBR vs VBR for Opus), but they should all map to the general concept of \"constant\" versus \"variable\" bitrate.\n

\n
opus Optional
\n
\n

Specifies codec configuration options specific to the Opus codec. Its value is an OpusEncoderConfig object, the possible properties of which are as follows:\n

\n
application Optional
\n
\n

An enumerated value that specifies the encoder's intended application type. Possible values are:\n

\n
audio (default)
\n
\n

Process the signal faithfully to the original input.\n

\n
lowdelay
\n
\n

When processing the signal, configure the minimum possible encoding delay by disabling certain modes of operation.\n

\n
voip
\n
\n

Process signal for improved speech intelligibility.\n

\n
\n
\n
complexity Optional
\n
\n

A number that defines the encoder's computational complexity, based on the aspects described in section RFC6716, 2.1.5. — Complexity. The valid range is 0 to 10, with 10 representing the highest complexity. If no value is specified, the default value is platform-specific, with the specification recommending 5 for mobile platforms, and 9 for all other platforms.\n

\n
format Optional
\n
\n

An enumerated value that specifies the format in which the encoder should output EncodedAudioChunks. Possible values are:\n

\n
opus (default)
\n
\n

Output EncodedAudioChunks in Opus format. In this case, no metadata are necessary to decode the encoded audio stream.\n

\n
ogg
\n
\n

Output EncodedAudioChunks in Ogg format. In this case, no metadata are necessary to decode the encoded audio stream. In this case, the metadata of the encoded audio stream are provided in the decoder configuration — via the description property of the config object passed into AudioDecoder.configure().\n

\n
\n
\n
frameDuration Optional
\n
\n

A number that defines the frame duration, in microseconds, of EncodedAudioChunks outputted by the encoder. If not specified, frameDuration defaults to 20000.\n

\n
packetlossperc Optional
\n
\n

A number that defines the encoder's expected packet loss percentage. The valid range is 0 to 100. If not specified, packetlossperc defaults to 0.\n

\n
signal Optional
\n
\n

An enumerated value that specifies the default value for the type of audio signal being encoded. Possible values are:\n

\n
auto (default)
\n
\n

The audio signal is not specified to be of a particular type.\n

\n
music
\n
\n

The audio signal is music.\n

\n
voice
\n
\n

The audio signal is voice or speech.\n

\n
\n
\n
usedtx Optional
\n
\n

A boolean value that specifies whether the encoder uses Discontinuous Transmission (DTX), which reduces the bitrate during silence or background noise. When DTX is enabled, only one frame is encoded every 400 milliseconds. If not specified, usedtx defaults to false.\n

\n
useinbandfec Optional
\n
\n

A boolean value that specifies whether the encoder provides Opus in-band Forward Error Correction (FEC). This results in packets that are determined to contain perceptually important speech information — such as onsets or transients — to be re-encoded at a lower bitrate and added to a subsequent packet. If not specified, useinbandfec defaults to false.\n

\n
\n
\n
" + "config": "A dictionary object containing the following members:\n
\n
codec
\n
\n

A string containing a valid codec string. See \"codecs\" parameter for details on codec string construction.\n

\n
sampleRate
\n
\n

An integer representing the number of frame samples per second.\n

\n
numberOfChannels
\n
\n

An integer representing the number of audio channels.\n

\n
bitrate Optional
\n
\n

An integer representing the bitrate.\n

\n
bitrateMode Optional
\n
\n

An enumerated value that defines the bitrate mode the encoder should use. Possible values are:\n

\n
\"constant\"
\n
\n

Forces an audio encoder to maintain the same bitrate, regardless of the audio content. This can be useful when a predictable bandwidth consumption is preferable.\n

\n
\"variable\" (default)
\n
\n

Allows an audio encoder to increase or lower its bitrate according to the content of the audio it is encoding, in order to preserve bandwidth/binary-size, while still maintaining a target quality. For example, an encoder might lower its bitrate when encoding silence, and revert to a full bitrate when encoding speech.\n

\n
\n

Specific codec encoder implementations may use slightly different terminology (for example, CBR vs VBR for Opus), but they should all map to the general concept of \"constant\" versus \"variable\" bitrate.\n

\n
opus Optional
\n
\n

Specifies codec configuration options specific to the Opus codec. Its value is an OpusEncoderConfig object, the possible properties of which are as follows:\n

\n
application Optional
\n
\n

An enumerated value that specifies the encoder's intended application type. Possible values are:\n

\n
audio (default)
\n
\n

Process the signal faithfully to the original input.\n

\n
lowdelay
\n
\n

When processing the signal, configure the minimum possible encoding delay by disabling certain modes of operation.\n

\n
voip
\n
\n

Process signal for improved speech intelligibility.\n

\n
\n
\n
complexity Optional
\n
\n

A number that defines the encoder's computational complexity, based on the aspects described in section RFC6716, 2.1.5. — Complexity. The valid range is 0 to 10, with 10 representing the highest complexity. If no value is specified, the default value is platform-specific, with the specification recommending 5 for mobile platforms, and 9 for all other platforms.\n

\n
format Optional
\n
\n

An enumerated value that specifies the format in which the encoder should output EncodedAudioChunks. Possible values are:\n

\n
opus (default)
\n
\n

Output EncodedAudioChunks in Opus format. In this case, no metadata are necessary to decode the encoded audio stream.\n

\n
ogg
\n
\n

Output EncodedAudioChunks in Ogg format. In this case, no metadata are necessary to decode the encoded audio stream. In this case, the metadata of the encoded audio stream are provided in the decoder configuration — via the description property of the config object passed into AudioDecoder.configure().\n

\n
\n
\n
frameDuration Optional
\n
\n

A number that defines the frame duration, in microseconds, of EncodedAudioChunks outputted by the encoder. If not specified, frameDuration defaults to 20000.\n

\n
packetlossperc Optional
\n
\n

A number that defines the encoder's expected packet loss percentage. The valid range is 0 to 100. If not specified, packetlossperc defaults to 0.\n

\n
signal Optional
\n
\n

An enumerated value that specifies the default value for the type of audio signal being encoded. Possible values are:\n

\n
auto (default)
\n
\n

The audio signal is not specified to be of a particular type.\n

\n
music
\n
\n

The audio signal is music.\n

\n
voice
\n
\n

The audio signal is voice or speech.\n

\n
\n
\n
usedtx Optional
\n
\n

A boolean value that specifies whether the encoder uses Discontinuous Transmission (DTX), which reduces the bitrate during silence or background noise. When DTX is enabled, only one frame is encoded every 400 milliseconds. If not specified, usedtx defaults to false.\n

\n
useinbandfec Optional
\n
\n

A boolean value that specifies whether the encoder provides Opus in-band Forward Error Correction (FEC). This results in packets that are determined to contain perceptually important speech information — such as onsets or transients — to be re-encoded at a lower bitrate and added to a subsequent packet. If not specified, useinbandfec defaults to false.\n

\n
\n
\n
" }, "returns": "None (undefined).", "throws": { @@ -3242,7 +3320,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3267,7 +3347,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3284,7 +3366,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3305,7 +3389,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3329,7 +3415,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3347,7 +3435,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -3998,8 +4088,8 @@ "StandardTrack" ], "compatibility": { - "Chrome": "14", - "ChromeAndroid": "18", + "Chrome": "24", + "ChromeAndroid": "25", "Edge": "12", "Firefox": "25", "FirefoxAndroid": "25", @@ -4104,7 +4194,7 @@ }, "audioparamdescriptor": { "url": "$MDN_URL$/web/api/audioparamdescriptor", - "doc": "The AudioParamDescriptor dictionary of the Web Audio API specifies properties for AudioParam objects.\n

It is used to create custom AudioParams on an AudioWorkletNode. If the underlying AudioWorkletProcessor has a parameterDescriptors static getter, then the returned array of objects based on this dictionary is used internally by AudioWorkletNode constructor to populate its parameters property accordingly." + "doc": "The AudioParamDescriptor dictionary of the Web Audio API specifies properties for AudioParam objects.\n

It is used to create custom AudioParams on an AudioWorkletNode. If the underlying AudioWorkletProcessor has a parameterDescriptors static getter, then the returned array of objects based on this dictionary is used internally by AudioWorkletNode constructor to populate its parameters property accordingly." }, "audioparammap": { "url": "$MDN_URL$/web/api/audioparammap", @@ -4512,7 +4602,7 @@ "Firefox": "138", "FirefoxAndroid": "138" }, - "doc": "The port read-only property of the AudioWorklet interface returns a MessagePort object that can be used to send and receive messages between the main thread and the associated AudioWorkletGlobalScope.\n

This allows for custom, asynchronous communication between code in the main thread and the global scope of an audio worklet, such as receiving control data or global settings." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The port read-only property of the AudioWorklet interface returns a MessagePort object that can be used to send and receive messages between the main thread and the associated AudioWorkletGlobalScope.\n

This allows for custom, asynchronous communication between code in the main thread and the global scope of an audio worklet, such as receiving control data or global settings." }, "audioworkletglobalscope": { "url": "$MDN_URL$/web/api/audioworkletglobalscope", @@ -4590,7 +4680,10 @@ "Firefox": "138", "FirefoxAndroid": "138" }, - "doc": "The port read-only property of the AudioWorkletGlobalScope interface returns a MessagePort object that can be used to send and receive messages between the main thread and the associated AudioWorklet.\n

This allows for custom, asynchronous communication between code in the main thread and the global scope of an audio worklet, such as sending control data or global settings." + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The port read-only property of the AudioWorkletGlobalScope interface returns a MessagePort object that can be used to send and receive messages between the main thread and the associated AudioWorklet.\n

This allows for custom, asynchronous communication between code in the main thread and the global scope of an audio worklet, such as sending control data or global settings." }, "audioworkletglobalscope.registerprocessor": { "url": "$MDN_URL$/web/api/audioworkletglobalscope/registerprocessor", @@ -4620,7 +4713,7 @@ "returns": "None (undefined).", "throws": { "NotSupportedError DOMException": "Thrown under the following conditions:\n

    \n
  • The name is an empty string.
  • \n
  • A constructor under the given name is already registered. Registering\nthe same name twice is not allowed.
  • \n
", - "TypeError": "Thrown under the following conditions:\n" + "TypeError": "Thrown under the following conditions:\n" } }, "audioworkletglobalscope.samplerate": { @@ -4718,7 +4811,7 @@ "lowDate": "2021-04-26", "highDate": "2023-10-26" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The read-only parameters property of the\nAudioWorkletNode interface returns the associated\nAudioParamMap — that is, a Map-like collection of\nAudioParam objects. They are instantiated during creation of the\nunderlying AudioWorkletProcessor according to its\nparameterDescriptors static\ngetter." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The read-only parameters property of the\nAudioWorkletNode interface returns the associated\nAudioParamMap — that is, a Map-like collection of\nAudioParam objects. They are instantiated during creation of the\nunderlying AudioWorkletProcessor according to its\nparameterDescriptors static\ngetter." }, "audioworkletnode.port": { "url": "$MDN_URL$/web/api/audioworkletnode/port", @@ -4791,8 +4884,8 @@ "returns": "The newly constructed AudioWorkletProcessor instance." }, "audioworkletprocessor.parameterdescriptors": { - "url": "$MDN_URL$/web/api/audioworkletprocessor/parameterdescriptors", - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The read-only parameterDescriptors property of an AudioWorkletProcessor-derived class is a static getter,\nwhich returns an iterable of AudioParamDescriptor-based objects.\n

The property is not a part of the AudioWorkletProcessor\ninterface, but, if defined, it is called internally by the\nAudioWorkletProcessor constructor to create a list of custom\nAudioParam objects in the parameters property of the associated AudioWorkletNode.\n

Defining the getter is optional." + "url": "$MDN_URL$/web/api/audioworkletprocessor/parameterdescriptors_static", + "doc": "The read-only parameterDescriptors property of an AudioWorkletProcessor-derived class is a static getter,\nwhich returns an iterable of AudioParamDescriptor-based objects.\n

The property is not a part of the AudioWorkletProcessor\ninterface, but, if defined, it is called internally by the\nAudioWorkletProcessor constructor to create a list of custom\nAudioParam objects in the parameters property of the associated AudioWorkletNode.\n

Defining the getter is optional." }, "audioworkletprocessor.port": { "url": "$MDN_URL$/web/api/audioworkletprocessor/port", @@ -4822,7 +4915,7 @@ "parameters": { "inputs": "An array of inputs connected to the node, each item of which is, in turn,\nan array of channels. Each channel is a Float32Array\ncontaining 128 samples. For example, inputs[n][m][i] will access\nn-th input, m-th channel of that input, and i-th sample\nof that channel.\n

Each sample value is in range of [-1 .. 1].\n

The number of inputs and thus the length of that array is fixed at the\nconstruction of the node (see AudioWorkletNode). If there is\nno active node connected to the n-th input of the node,\ninputs[n] will be an empty array (zero input channels available).\n

The number of channels in each input may vary, depending on\nchannelCount and\nchannelCountMode properties.", "outputs": "An array of outputs that is similar to the inputs parameter in\nstructure. It is intended to be filled during the execution of the\nprocess() method. Each of the output channels is filled with zeros by\ndefault — the processor will output silence unless the output arrays are modified.", - "parameters": "An object containing string keys and Float32Array values. For each\ncustom AudioParam defined using the\nparameterDescriptors\ngetter, the key in the object is a name of that\nAudioParam, and the value is a Float32Array. The values\nof the array are calculated by taking scheduled automation events into\nconsideration.\n

If the automation rate of the parameter is\n\"a-rate\", the array\nwill contain 128 values — one for each frame in the current audio block. If there's\nno automation happening during the time represented by the current block, the array\nmay contain a single value that is constant for the entire block, instead of 128\nidentical values.\n

If the automation rate is\n\"k-rate\", the array\nwill contain a single value, which is to be used for each of 128 frames." + "parameters": "An object containing string keys and Float32Array values. For each\ncustom AudioParam defined using the\nparameterDescriptors\ngetter, the key in the object is a name of that\nAudioParam, and the value is a Float32Array. The values\nof the array are calculated by taking scheduled automation events into\nconsideration.\n

If the automation rate of the parameter is\n\"a-rate\", the array\nwill contain 128 values — one for each frame in the current audio block. If there's\nno automation happening during the time represented by the current block, the array\nmay contain a single value that is constant for the entire block, instead of 128\nidentical values.\n

If the automation rate is\n\"k-rate\", the array\nwill contain a single value, which is to be used for each of 128 frames." }, "returns": "A Boolean value indicating whether or not to force the AudioWorkletNode\nto remain active even if the user agent's internal logic\nwould otherwise decide that it's safe to shut down the node.\n

The returned value lets your processor have influence over the lifetime policy of\nthe AudioWorkletProcessor and the node that owns it. If the combination\nof the return value and the state of the node causes the browser to decide to stop the\nnode, process() will not be called again.\n

Returning true forces the Web Audio API to keep the node alive,\nwhile returning false allows the browser to terminate the node if it is\nneither generating new audio data nor receiving data through its inputs that it is\nprocessing.\n

The 3 most common types of audio node are:\n

    \n
  1. A source of output. An AudioWorkletProcessor implementing such a node\nshould return true from the process method as long as it\nproduces an output. The method should return false as soon as it's known\nthat it will no longer produce an output. For example, take the\nAudioBufferSourceNode — the processor behind such a node should return\ntrue from the process method while the buffer is playing,\nand start returning false when the buffer playing has ended (there's no\nway to call play on the same AudioBufferSourceNode again).
  2. \n
  3. A node that transforms its input. A processor implementing such a node should return\nfalse from the process method to allow the presence of\nactive input nodes and references to the node to determine whether it can be\ngarbage-collected. An example of a node with this behavior is the\nGainNode. As soon as there are no inputs connected and references\nretained, gain can no longer be applied to anything, so it can be safely\ngarbage-collected.
  4. \n
  5. A node that transforms its input, but has a so-called tail-time — this\nmeans that it will produce an output for some time even after its inputs are\ndisconnected or are inactive (producing zero-channels). A processor implementing such\na node should return true from the process method for the\nperiod of the tail-time, beginning as soon as inputs are found that contain\nzero-channels. An example of such a node is the DelayNode — it has a\ntail-time equal to its delayTime\nproperty.
  6. \n
\n
\n

Note:\nAn absence of the return statement means that the method returns undefined, and as this is a falsy value, it is like returning false.\nOmitting an explicit return statement may cause hard-to-detect problems for your nodes.\n

" }, @@ -5189,7 +5282,7 @@ "TypeError": "Raised if no request is provided, if the mode of a request is no-cors, if no service worker is present, a request already exists with the requested id, or the request fails.", "AbortError DOMException": "Indicates that the fetch was aborted.", "NotAllowedError DOMException": "Indicates that user permission has not been granted to make background fetches.", - "QuotaExceededError DOMException": "Thrown if storing requests failed due to exceed the browser's storage quota." + "QuotaExceededError": "Thrown if storing requests failed due to exceed the browser's storage quota." } }, "backgroundfetchmanager.get": { @@ -5405,7 +5498,7 @@ "request": "The Request for which you are attempting to find records.\nThis can be a Request object or a URL.", "options": "An object that sets options for the match operation. The available\noptions are:\n
\n
ignoreSearch Optional
\n
\n

A boolean value that specifies whether to\nignore the query string in the URL. For example, if set to\ntrue the ?value=bar part of\nhttp://foo.com/?value=bar would be ignored when performing a match.\nIt defaults to false.\n

\n
ignoreMethod Optional
\n
\n

A boolean value. When true,\nprevents matching operations from validating the Request http method.\nIf false (the default) only GET and HEAD are allowed.\n

\n
ignoreVary Optional
\n
\n

A boolean value. When true indicates that the Vary header should be ignored.\nIt defaults to false.\n

\n
" }, - "returns": "A Promise that resolves with the first BackgroundFetchRecord that matches\nthe request or undefined if no match is found.\n
\n

Note: BackgroundFetchRegistration.match() is basically identical to\nBackgroundFetchRegistration.matchAll(), except that rather than resolving with an array of\nall matching records, it resolves with the first matching record only.\n

", + "returns": "A Promise that resolves with the first BackgroundFetchRecord that matches\nthe request or undefined if no match is found.\n
\n

Note:\nBackgroundFetchRegistration.match() is basically identical to\nBackgroundFetchRegistration.matchAll(), except that rather than resolving with an array of\nall matching records, it resolves with the first matching record only.\n

", "throws": { "InvalidStateError DOMException": "Returned if you call match() when there are no fetches in progress. This state will be reflected by BackgroundFetchRegistration.recordsAvailable being set to false." } @@ -5792,7 +5885,7 @@ "lowDate": "2021-04-26", "highDate": "2023-10-26" }, - "doc": "The createBuffer() method of the BaseAudioContext\nInterface is used to create a new, empty AudioBuffer object, which\ncan then be populated by data, and played via an AudioBufferSourceNode.\n

For more details about audio buffers, check out the AudioBuffer\nreference page.\n

\n

Note: createBuffer() used to be able to take compressed\ndata and give back decoded samples, but this ability was removed from the specification,\nbecause all the decoding was done on the main thread, so\ncreateBuffer() was blocking other code execution. The asynchronous method\ndecodeAudioData() does the same thing — takes compressed audio, such as an\nMP3 file, and directly gives you back an AudioBuffer that you can\nthen play via an AudioBufferSourceNode. For simple use cases\nlike playing an MP3, decodeAudioData() is what you should be using.\n

\n

For an in-depth explanation of how audio buffers work, including what the parameters do, read Audio buffers: frames, samples and channels from our Basic concepts guide.", + "doc": "The createBuffer() method of the BaseAudioContext\nInterface is used to create a new, empty AudioBuffer object, which\ncan then be populated by data, and played via an AudioBufferSourceNode.\n

For more details about audio buffers, check out the AudioBuffer\nreference page.\n

\n

Note:\ncreateBuffer() used to be able to take compressed\ndata and give back decoded samples, but this ability was removed from the specification,\nbecause all the decoding was done on the main thread, so\ncreateBuffer() was blocking other code execution. The asynchronous method\ndecodeAudioData() does the same thing — takes compressed audio, such as an\nMP3 file, and directly gives you back an AudioBuffer that you can\nthen play via an AudioBufferSourceNode. For simple use cases\nlike playing an MP3, decodeAudioData() is what you should be using.\n

\n

For an in-depth explanation of how audio buffers work, including what the parameters do, read Audio buffers: frames, samples and channels from our Basic concepts guide.", "parameters": { "numOfChannels": "An integer representing the number of channels this buffer should have. The default\nvalue is 1, and all user agents must support at least 32 channels.", "length": "An integer representing the size of the buffer in sample-frames (where each\nsample-frame is the size of a sample in bytes multiplied by\nnumOfChannels). To determine the length to use for a\nspecific number of seconds of audio, use numSeconds * sampleRate.", @@ -6404,7 +6497,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The BeforeInstallPromptEvent is the interface of the beforeinstallprompt event fired at the Window object before a user is prompted to \"install\" a website to a home screen on mobile.\n

This interface inherits from the Event interface." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The BeforeInstallPromptEvent is the interface of the beforeinstallprompt event fired at the Window object before a user is prompted to \"install\" a website to a home screen on mobile.\n

This interface inherits from the Event interface." }, "beforeinstallpromptevent.beforeinstallpromptevent": { "url": "$MDN_URL$/web/api/beforeinstallpromptevent/beforeinstallpromptevent", @@ -6420,7 +6513,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The BeforeInstallPromptEvent() constructor creates a new BeforeInstallPromptEvent object.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The BeforeInstallPromptEvent() constructor creates a new BeforeInstallPromptEvent object.", "parameters": { "type": "A string with the name of the event, set to beforeinstallprompt.", "eventInitDict": "An object with a single optional property platforms, which is an array of strings, listing the platforms on which the event will be dispatched." @@ -6440,7 +6533,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The platforms property of the BeforeInstallPromptEvent interface lists the platforms on which the event was dispatched. This is provided for user agents that want to present a choice of versions to the user such as, for example, \"web\" or \"play\" which would allow the user to choose between a web version or an Android version." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The platforms property of the BeforeInstallPromptEvent interface lists the platforms on which the event was dispatched. This is provided for user agents that want to present a choice of versions to the user such as, for example, \"web\" or \"play\" which would allow the user to choose between a web version or an Android version." }, "beforeinstallpromptevent.prompt": { "url": "$MDN_URL$/web/api/beforeinstallpromptevent/prompt", @@ -6456,7 +6549,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The prompt() method of the BeforeInstallPromptEvent interface allows a developer to show the\ninstall prompt at a time of their own choosing. Typically this will be called in the event handler for the app's custom install UI.\n

This method must be called in the event handler for a user action (such as a button click) and may only be called once on a given BeforeInstallPromptEvent instance.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The prompt() method of the BeforeInstallPromptEvent interface allows a developer to show the\ninstall prompt at a time of their own choosing. Typically this will be called in the event handler for the app's custom install UI.\n

This method must be called in the event handler for a user action (such as a button click) and may only be called once on a given BeforeInstallPromptEvent instance.", "returns": "A Promise resolving to an object containing the following properties:\n

\n
outcome \nExperimental\n \nNon-standard\n
\n
\n

A string indicating whether the user chose to install the app or not. It must be one of the following values:\n

    \n
  • \"accepted\": The user installed the app.
  • \n
  • \"dismissed\": The user did not install the app.
  • \n
\n
\n
platform \nExperimental\n \nNon-standard\n
\n
\n

If the user chose to install the app, this is a string naming the selected platform, which is one of the values from the BeforeInstallPromptEvent.platforms property. If the user chose not to install the app, this is an empty string.\n

\n
" }, "beforeinstallpromptevent.userchoice": { @@ -6473,7 +6566,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The userChoice property of the BeforeInstallPromptEvent interface represents the installation choice that the user made, when they were prompted to install the app." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The userChoice property of the BeforeInstallPromptEvent interface represents the installation choice that the user made, when they were prompted to install the app." }, "beforeunloadevent": { "url": "$MDN_URL$/web/api/beforeunloadevent", @@ -6514,7 +6607,7 @@ "Safari": "7", "SafariIOS": "7" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The returnValue property of the\nBeforeUnloadEvent interface, when set to a truthy value, triggers a browser-generated confirmation dialog asking users to confirm if they really want to leave the page when they try to close or reload it, or navigate somewhere else. This is intended to help prevent loss of unsaved data.\n

\n

Note: returnValue is a legacy feature, and best practice is to trigger the dialog by invoking Event.preventDefault() on the BeforeUnloadEvent object, while also setting returnValue to support legacy cases. See the beforeunload event reference for detailed up-to-date guidance.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The returnValue property of the\nBeforeUnloadEvent interface, when set to a truthy value, triggers a browser-generated confirmation dialog asking users to confirm if they really want to leave the page when they try to close or reload it, or navigate somewhere else. This is intended to help prevent loss of unsaved data.\n

\n

Note:\nreturnValue is a legacy feature, and best practice is to trigger the dialog by invoking Event.preventDefault() on the BeforeUnloadEvent object, while also setting returnValue to support legacy cases. See the beforeunload event reference for detailed up-to-date guidance.\n

" }, "biquadfilternode": { "url": "$MDN_URL$/web/api/biquadfilternode", @@ -7409,7 +7502,7 @@ "level": "NONE" }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The BluetoothRemoteGATTCharacteristic.readValue() method\nreturns a Promise that resolves to a DataView holding a\nduplicate of the value property if it is available and supported. Otherwise\nit throws an error.", - "returns": "A Promise that resolves to an DataView." + "returns": "A Promise that resolves to a DataView." }, "bluetoothremotegattcharacteristic.service": { "url": "$MDN_URL$/web/api/bluetoothremotegattcharacteristic/service", @@ -7510,9 +7603,9 @@ "Edge": "79", "Opera": "43" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Use BluetoothRemoteGATTCharacteristic.writeValueWithResponse() and BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse() instead.\n

The BluetoothRemoteGATTCharacteristic.writeValue() method sets a BluetoothRemoteGATTCharacteristic object's value property to the bytes contained in a given ArrayBuffer, writes the characteristic value with optional response, and returns the resulting Promise.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Use BluetoothRemoteGATTCharacteristic.writeValueWithResponse() and BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse() instead.\n

The BluetoothRemoteGATTCharacteristic.writeValue() method sets a BluetoothRemoteGATTCharacteristic object's value property to the bytes contained in a given ArrayBuffer, TypedArray, or DataView, writes the characteristic value with optional response, and returns the resulting Promise.", "parameters": { - "value": "An ArrayBuffer." + "value": "An ArrayBuffer, TypedArray, or DataView." }, "returns": "A Promise." }, @@ -7531,9 +7624,9 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse() method sets a BluetoothRemoteGATTCharacteristic object's value property to the bytes contained in a given ArrayBuffer, writes the characteristic value without response, and returns the resulting Promise.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse() method sets a BluetoothRemoteGATTCharacteristic object's value property to the bytes contained in a given ArrayBuffer, TypedArray, or DataView, writes the characteristic value without response, and returns the resulting Promise.", "parameters": { - "value": "An ArrayBuffer." + "value": "An ArrayBuffer, TypedArray, or DataView." }, "returns": "A Promise." }, @@ -7552,9 +7645,9 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The BluetoothRemoteGATTCharacteristic.writeValueWithResponse() method sets a BluetoothRemoteGATTCharacteristic object's value property to the bytes contained in a given ArrayBuffer, writes the characteristic value with required response, and returns the resulting Promise.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The BluetoothRemoteGATTCharacteristic.writeValueWithResponse() method sets a BluetoothRemoteGATTCharacteristic object's value property to the bytes contained in a given ArrayBuffer, TypedArray, or DataView, writes the characteristic value with required response, and returns the resulting Promise.", "parameters": { - "value": "An ArrayBuffer." + "value": "An ArrayBuffer, TypedArray, or DataView." }, "returns": "A Promise." }, @@ -7604,8 +7697,8 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The\nBluetoothRemoteGATTDescriptor.readValue()\nmethod returns a Promise that resolves to\nan ArrayBuffer holding a duplicate of the value property if\nit is available and supported. Otherwise it throws an error.", - "returns": "A Promise that resolves to an ArrayBuffer." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The\nBluetoothRemoteGATTDescriptor.readValue()\nmethod returns a Promise that resolves to\na DataView holding a duplicate of the value property if\nit is available and supported. Otherwise it throws an error.", + "returns": "A Promise that resolves to a DataView." }, "bluetoothremotegattdescriptor.uuid": { "url": "$MDN_URL$/web/api/bluetoothremotegattdescriptor/uuid", @@ -7639,7 +7732,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The BluetoothRemoteGATTDescriptor.value\nread-only property returns an ArrayBuffer containing the currently cached\ndescriptor value. This value gets updated when the value of the descriptor is read." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The BluetoothRemoteGATTDescriptor.value\nread-only property returns an DataView containing the currently cached\ndescriptor value. This value gets updated when the value of the descriptor is read." }, "bluetoothremotegattdescriptor.writevalue": { "url": "$MDN_URL$/web/api/bluetoothremotegattdescriptor/writevalue", @@ -7656,9 +7749,9 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The BluetoothRemoteGATTDescriptor.writeValue()\nmethod sets the value property to the bytes contained in\nan ArrayBuffer and returns a Promise.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The BluetoothRemoteGATTDescriptor.writeValue()\nmethod sets the value property to the bytes contained in\nan ArrayBuffer, TypedArray, or DataView and returns a Promise.", "parameters": { - "array": "Sets the value with the bytes contained in the array." + "buffer": "Sets the value with the bytes contained in the buffer." }, "returns": "A Promise." }, @@ -8071,7 +8164,8 @@ "lowDate": "2022-03-14", "highDate": "2024-09-14" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The close() method of the BroadcastChannel interface terminates the connection to\nthe underlying channel, allowing the object to be garbage collected.\nThis is a necessary step to perform\nas there is no other way for a browser to know\nthat this channel is not needed anymore." + "doc": "

Note: This feature is available in Web Workers.

\n

The close() method of the BroadcastChannel interface terminates the connection to\nthe underlying channel, allowing the object to be garbage collected.\nThis is a necessary step to perform\nas there is no other way for a browser to know\nthat this channel is not needed anymore.", + "returns": "None (undefined)." }, "broadcastchannel.name": { "url": "$MDN_URL$/web/api/broadcastchannel/name", @@ -8119,7 +8213,7 @@ }, "doc": "

Note: This feature is available in Web Workers.

\n

The postMessage() method of the BroadcastChannel interface sends a message,\nwhich can be of any kind of Object,\nto each listener in any browsing context with the same origin.\nThe message is transmitted as a message event\ntargeted at each BroadcastChannel bound to the channel.", "parameters": { - "message": "Data to be sent to the other window. The data is serialized using the structured clone algorithm.\nThis means you can pass a broad variety of data objects safely to the destination window without having to serialize them yourself." + "message": "Data to be sent to the other window. The data is serialized using the structured clone algorithm.\nThis means you can pass a broad variety of data objects safely to the destination window without having to serialize them yourself.\n

\n

Note:\nExecution contexts that can message each other may not be in the same agent cluster, and therefore cannot share memory. SharedArrayBuffer objects, or buffer views backed by one, cannot be posted across agent clusters. Trying to do so will generate a messageerror event containing a DataCloneError DOMException on the receiving end.\n

" }, "returns": "None.", "throws": { @@ -8224,7 +8318,7 @@ }, "doc": "The btoa() method of the Window interface creates a\nBase64-encoded ASCII string from a binary string (i.e., a\nstring in which each character in the string is treated as a byte\nof binary data).\n

You can use this method to encode data which may otherwise cause communication\nproblems, transmit it, then use the Window.atob() method to decode the data again.\nFor example, you can encode control characters such as ASCII values 0 through 31.\n

Also consider using the Uint8Array.prototype.toBase64() method if your data is in a Uint8Array object to avoid creating a string containing raw bytes.", "parameters": { - "stringToEncode": "The binary string to encode. Strings in JavaScript are encoded as UTF-16, so this means each character must have a code point less than 256, representing one byte of data." + "stringToEncode": "The binary string to encode. Strings in JavaScript are encoded as UTF-16, so this means each character must have a code point less than 256, representing one byte of data." }, "returns": "An ASCII string containing the Base64 representation of stringToEncode.", "throws": { @@ -8378,7 +8472,7 @@ "lowDate": "2018-04-12", "highDate": "2020-10-12" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The add() method of the Cache interface takes a URL, retrieves it, and adds the resulting response object to the given cache.\n

The add() method is functionally equivalent to the following:\n

\n```js\nfetch(url).then((response) => {\n  if (!response.ok) {\n    throw new TypeError(\"bad response status\");\n  }\n  return cache.put(url, response);\n});\n```\n
\n

For more complex operations, you'll need to use Cache.put() directly.\n

\n

Note: add() will overwrite any key/value pair previously stored in the cache that matches the request.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The add() method of the Cache interface takes a URL, retrieves it, and adds the resulting response object to the given cache.\n

The add() method is functionally equivalent to the following:\n

\n```js\nfetch(url).then((response) => {\n  if (!response.ok) {\n    throw new TypeError(\"bad response status\");\n  }\n  return cache.put(url, response);\n});\n```\n
\n

For more complex operations, you'll need to use Cache.put() directly.\n

\n

Note:\nadd() will overwrite any key/value pair previously stored in the cache that matches the request.\n

", "parameters": { "request": "A request for the resource you want to add to the cache. This can be a Request object or a URL.\n

This parameter is used as a parameter to the Request() constructor, so URLs follow the same rules as for that constructor. In particular, URLs may be relative to the base URL, which is the document's baseURI in a window context, or WorkerGlobalScope.location in a worker context." }, @@ -8407,7 +8501,7 @@ "lowDate": "2018-04-12", "highDate": "2020-10-12" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The addAll() method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache. The request objects created during retrieval become keys to the stored response operations.\n

\n

Note: addAll() will overwrite any key/value pairs\npreviously stored in the cache that match the request, but will fail if a\nresulting put() operation would overwrite a previous cache entry stored by the same addAll() method.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The addAll() method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache. The request objects created during retrieval become keys to the stored response operations.\n

\n

Note:\naddAll() will overwrite any key/value pairs\npreviously stored in the cache that match the request, but will fail if a\nresulting put() operation would overwrite a previous cache entry stored by the same addAll() method.\n

", "parameters": { "requests": "An array of requests for the resources you want to add to the cache. These can be Request objects or URLs.\n

These requests are used as parameters to the Request() constructor, so URLs follow the same rules as for that constructor. In particular, URLs may be relative to the base URL, which is the document's baseURI in a window context, or WorkerGlobalScope.location in a worker context." }, @@ -8497,7 +8591,7 @@ "request": "The Request for which you are attempting to find responses in the\nCache. This can be a Request object or a URL string.", "options": "An object that sets options for the match operation.\nThe available options are:\n

\n
ignoreSearch
\n
\n

A boolean value that specifies whether to\nignore the query string in the URL. For example, if set to\ntrue the ?value=bar part of\nhttp://foo.com/?value=bar would be ignored when performing a match.\nIt defaults to false.\n

\n
ignoreMethod
\n
\n

A boolean value that, when set to\ntrue, prevents matching operations from validating the\nRequest http method (normally only GET\nand HEAD are allowed.) It defaults to false.\n

\n
ignoreVary
\n
\n

A boolean value that when set to\ntrue tells the matching operation not to perform VARY\nheader matching — i.e., if the URL matches you will get a match regardless of\nwhether the Response object has a VARY header. It\ndefaults to false.\n

\n
" }, - "returns": "A Promise that resolves to the first Response that matches\nthe request or to undefined if no match is found.\n
\n

Note: Cache.match() is basically identical to\nCache.matchAll(), except that rather than resolving with an array of\nall matching responses, it resolves with the first matching response only (that is,\nresponse[0]).\n

" + "returns": "A Promise that resolves to the first Response that matches\nthe request or to undefined if no match is found.\n
\n

Note:\nCache.match() is basically identical to\nCache.matchAll(), except that rather than resolving with an array of\nall matching responses, it resolves with the first matching response only (that is,\nresponse[0]).\n

" }, "cache.matchall": { "url": "$MDN_URL$/web/api/cache/matchall", @@ -8524,7 +8618,7 @@ "request": "The Request for which you are attempting to find responses in the\nCache. This can be a Request object or a URL. If this\nargument is omitted, you will get a copy of all responses in this cache.", "options": "An options object allowing you to set specific control options for the matching\nperformed. The available options are:\n
\n
ignoreSearch
\n
\n

A boolean value that specifies whether the\nmatching process should ignore the query string in the URL. If set to\ntrue, the ?value=bar part of\nhttp://foo.com/?value=bar would be ignored when performing a match.\nIt defaults to false.\n

\n
ignoreMethod
\n
\n

A boolean value that, when set to\ntrue, prevents matching operations from validating the\nRequest http method (normally only GET\nand HEAD are allowed.) It defaults to false.\n

\n
ignoreVary
\n
\n

A boolean value that when set to\ntrue tells the matching operation not to perform VARY\nheader matching — i.e., if the URL matches you will get a match regardless of the\nResponse object having a VARY header or not. It\ndefaults to false.\n

\n
" }, - "returns": "A Promise that resolves to an array of all matching responses in the\nCache object.\n
\n

Note: Cache.match() is basically identical to\nCache.matchAll(), except that rather than resolving with an array of all\nmatching responses, it resolves with the first matching response only (that is,\nresponse[0]).\n

" + "returns": "A Promise that resolves to an array of all matching responses in the\nCache object.\n
\n

Note:\nCache.match() is basically identical to\nCache.matchAll(), except that rather than resolving with an array of all\nmatching responses, it resolves with the first matching response only (that is,\nresponse[0]).\n

" }, "cache.put": { "url": "$MDN_URL$/web/api/cache/put", @@ -8547,7 +8641,7 @@ "lowDate": "2018-04-12", "highDate": "2020-10-12" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The put() method of the\nCache interface allows key/value pairs to be added to the current\nCache object.\n

Often, you will just want to fetch()\none or more requests, then add the result straight to your cache. In such cases you are\nbetter off using\nCache.add()/Cache.addAll(), as\nthey are shorthand functions for one or more of these operations.\n

\n```js\nfetch(url).then((response) => {\n  if (!response.ok) {\n    throw new TypeError(\"Bad response status\");\n  }\n  return cache.put(url, response);\n});\n```\n
\n
\n

Note: put() will overwrite any key/value pair\npreviously stored in the cache that matches the request.\n

\n
\n

Note: Cache.add/Cache.addAll do not\ncache responses with Response.status values that are not in the 200\nrange, whereas Cache.put lets you store any request/response pair. As a\nresult, Cache.add/Cache.addAll can't be used to store\nopaque responses, whereas Cache.put can.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The put() method of the\nCache interface allows key/value pairs to be added to the current\nCache object.\n

Often, you will just want to fetch()\none or more requests, then add the result straight to your cache. In such cases you are\nbetter off using\nCache.add()/Cache.addAll(), as\nthey are shorthand functions for one or more of these operations.\n

\n```js\nfetch(url).then((response) => {\n  if (!response.ok) {\n    throw new TypeError(\"Bad response status\");\n  }\n  return cache.put(url, response);\n});\n```\n
\n
\n

Note:\nput() will overwrite any key/value pair\npreviously stored in the cache that matches the request.\n

\n
\n

Note:\nCache.add/Cache.addAll do not\ncache responses with Response.status values that are not in the 200\nrange, whereas Cache.put lets you store any request/response pair. As a\nresult, Cache.add/Cache.addAll can't be used to store\nopaque responses, whereas Cache.put can.\n

", "parameters": { "request": "The Request object or URL that you want to add to the cache.", "response": "The Response you want to match up to the request." @@ -8601,7 +8695,7 @@ "lowDate": "2018-04-12", "highDate": "2020-10-12" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The CacheStorage interface represents the storage for Cache objects.\n

The interface:\n

    \n
  • Provides a master directory of all the named caches that can be accessed by a ServiceWorker or other type of worker or window scope (you're not limited to only using it with service workers).
  • \n
  • Maintains a mapping of string names to corresponding Cache objects.
  • \n
\n

Use CacheStorage.open() to obtain a Cache instance.\n

Use CacheStorage.match() to check if a given Request is a key in any of the Cache objects that the CacheStorage object tracks.\n

You can access CacheStorage through the Window.caches property in windows or through the WorkerGlobalScope.caches property in workers.\n

\n

Note: CacheStorage always rejects with a SecurityError on untrusted origins (i.e., those that aren't using HTTPS, although this definition will likely become more complex in the future.) When testing on Firefox, you can get around this by checking the Enable Service Workers over HTTP (when toolbox is open) option in the Firefox DevTools options/gear menu. Furthermore, because CacheStorage requires file-system access, it may be unavailable in private mode in Firefox.\n

\n
\n

Note: CacheStorage.match() is a convenience method. Equivalent functionality to match a cache entry can be implemented by returning an array of cache names from CacheStorage.keys(), opening each cache with CacheStorage.open(), and matching the one you want with Cache.match().\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The CacheStorage interface represents the storage for Cache objects.\n

The interface:\n

    \n
  • Provides a master directory of all the named caches that can be accessed by a ServiceWorker or other type of worker or window scope (you're not limited to only using it with service workers).
  • \n
  • Maintains a mapping of string names to corresponding Cache objects.
  • \n
\n

Use CacheStorage.open() to obtain a Cache instance.\n

Use CacheStorage.match() to check if a given Request is a key in any of the Cache objects that the CacheStorage object tracks.\n

You can access CacheStorage through the Window.caches property in windows or through the WorkerGlobalScope.caches property in workers.\n

\n

Note:\nCacheStorage always rejects with a SecurityError on untrusted origins (i.e., those that aren't using HTTPS, although this definition will likely become more complex in the future.) When testing on Firefox, you can get around this by checking the Enable Service Workers over HTTP (when toolbox is open) option in the Firefox DevTools options/gear menu. Furthermore, because CacheStorage requires file-system access, it may be unavailable in private mode in Firefox.\n

\n
\n

Note:\nCacheStorage.match() is a convenience method. Equivalent functionality to match a cache entry can be implemented by returning an array of cache names from CacheStorage.keys(), opening each cache with CacheStorage.open(), and matching the one you want with Cache.match().\n

" }, "cachestorage.delete": { "url": "$MDN_URL$/web/api/cachestorage/delete", @@ -8700,7 +8794,7 @@ "lowDate": "2018-04-12", "highDate": "2020-10-12" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The match() method of the CacheStorage interface checks if a given Request or URL string is a key for a stored Response.\nThis method returns a Promise for a Response, or a Promise which resolves to undefined if no match is found.\n

You can access CacheStorage through the Window.caches property in windows or through the WorkerGlobalScope.caches property in workers.\n

Cache objects are searched in creation order.\n

\n

Note: caches.match() is a convenience method.\nEquivalent functionality is to call cache.match() on each cache (in the order returned by caches.keys()) until a Response is returned.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The match() method of the CacheStorage interface checks if a given Request or URL string is a key for a stored Response.\nThis method returns a Promise for a Response, or a Promise which resolves to undefined if no match is found.\n

You can access CacheStorage through the Window.caches property in windows or through the WorkerGlobalScope.caches property in workers.\n

Cache objects are searched in creation order.\n

\n

Note:\ncaches.match() is a convenience method.\nEquivalent functionality is to call cache.match() on each cache (in the order returned by caches.keys()) until a Response is returned.\n

", "parameters": { "request": "The Request you want to match. This can be a Request\nobject or a URL string.", "options": "An object whose properties control how matching is done in the match\noperation. The available options are:\n
\n
ignoreSearch
\n
\n

A boolean value that specifies whether the\nmatching process should ignore the query string in the URL. For example, if set\nto true, the ?value=bar part of\nhttp://foo.com/?value=bar would be ignored when performing a match.\nIt defaults to false.\n

\n
ignoreMethod
\n
\n

A boolean value that, when set to\ntrue, prevents matching operations from validating the\nRequest http method (normally only GET\nand HEAD are allowed.) It defaults to false.\n

\n
ignoreVary
\n
\n

A boolean value that, when set to\ntrue, tells the matching operation not to perform VARY\nheader matching. In other words, if the URL matches you will get a match\nregardless of whether the Response object has a VARY\nheader or not. It defaults to false.\n

\n
cacheName
\n
\n

A string that represents a specific\ncache to search within.\n

\n
" @@ -9240,7 +9334,7 @@ "parameters": { "width": "The width to give the new ImageData object. A negative value flips the\nrectangle around the vertical axis.", "height": "The height to give the new ImageData object. A negative value flips the\nrectangle around the horizontal axis.", - "settings": "An object with the following properties:\n", + "settings": "An object with the following properties:\n
\n
colorSpace
\n
\n

Specifies the color space of the image data. Can be set to \"srgb\" for the sRGB color space or \"display-p3\" for the display-p3 color space.\n

\n
pixelFormat
\n
\n

Specifies the pixel format. Possible values:\n

    \n
  • \"rgba-unorm8\", for RGBA with 8 bit per component unsigned normalized format, using a Uint8ClampedArray.
  • \n
  • \"rgba-float16\", for RGBA with 16 bits per component, using a Float16Array. Floating-point pixel values allow representing colors in arbitrarily wide gamuts and high dynamic range (HDR).
  • \n
\n
\n
", "imagedata": "An existing ImageData object from which to copy the width and height.\nThe image itself is not copied." }, "returns": "A new ImageData object with the specified width and height. The new\nobject is filled with transparent black pixels.", @@ -9416,12 +9510,12 @@ "image": "An element to draw into the context. The specification permits any canvas image\nsource, specifically,\nan HTMLImageElement,\nan SVGImageElement,\nan HTMLVideoElement,\nan HTMLCanvasElement,\nan ImageBitmap,\nan OffscreenCanvas,\nor a VideoFrame.", "sx": "The x-axis coordinate of the top left corner of the sub-rectangle of the source\nimage to draw into the destination context. Use the 3- or 5-argument syntax\nto omit this argument.", "sy": "The y-axis coordinate of the top left corner of the sub-rectangle of the source\nimage to draw into the destination context. Use the 3- or 5-argument syntax\nto omit this argument.", - "sWidth": "The width of the sub-rectangle of the source image to draw into the\ndestination context. If not specified, the entire rectangle from the coordinates\nspecified by sx and sy to the bottom-right corner of the\nimage is used. Use the 3- or 5-argument syntax to omit this argument.\nA negative value will flip the image.", - "sHeight": "The height of the sub-rectangle of the source image to draw into the\ndestination context. Use the 3- or 5-argument syntax to omit this argument.\nA negative value will flip the image.", + "sWidth": "The width of the sub-rectangle of the source image to draw into the\ndestination context. If not specified, the entire rectangle from the coordinates\nspecified by sx and sy to the bottom-right corner of the\nimage is used. Use the 3- or 5-argument syntax to omit this argument.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped.", + "sHeight": "The height of the sub-rectangle of the source image to draw into the\ndestination context. Use the 3- or 5-argument syntax to omit this argument.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped.", "dx": "The x-axis coordinate in the destination canvas at which to place the top-left\ncorner of the source image.", "dy": "The y-axis coordinate in the destination canvas at which to place the top-left\ncorner of the source image.", - "dWidth": "The width to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in width when\ndrawn. Note that this argument is not included in the 3-argument syntax.", - "dHeight": "The height to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in height when\ndrawn. Note that this argument is not included in the 3-argument syntax." + "dWidth": "The width to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in width when\ndrawn. Note that this argument is not included in the 3-argument syntax.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped.", + "dHeight": "The height to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in height when\ndrawn. Note that this argument is not included in the 3-argument syntax.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped." }, "returns": "None (undefined).", "throws": { @@ -9538,7 +9632,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The\nCanvasRenderingContext2D.fillStyle\nproperty of the Canvas 2D API specifies the\ncolor, gradient, or pattern to use inside shapes. The default style is #000\n(black).\n
\n

Note:\nFor more examples of fill and stroke styles, see Applying styles and color in the Canvas tutorial.\n

" + "doc": "The\nCanvasRenderingContext2D.fillStyle\nproperty of the Canvas 2D API specifies the\ncolor, gradient, or pattern to use inside shapes. The default style is black.\n
\n

Note:\nFor more examples of fill and stroke styles, see Applying styles and color in the Canvas tutorial.\n

" }, "canvasrenderingcontext2d.filltext": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/filltext", @@ -9682,7 +9776,7 @@ "lowDate": "2023-08-29" }, "doc": "The CanvasRenderingContext2D.getContextAttributes() method returns an object that contains attributes used by the context.\n

Note that context attributes may be requested when creating the context with HTMLCanvasElement.getContext(), but the attributes that are actually supported and used may differ.", - "returns": "A CanvasRenderingContext2DSettings object that contains the actual context parameters.\nIt has the following members:\n

\n
alpha Optional
\n
\n

A Boolean indicating if the canvas contains an alpha channel.\nIf false, the backdrop is always opaque, which can speed up drawing of transparent content and images.\n

\n
colorSpace Optional
\n
\n

Specifies the color space of the rendering context. Possible values are:\n

\n
\n
desynchronized Optional
\n
\n

A Boolean indicating the user agent reduced the latency by desynchronizing the canvas paint cycle from the event loop.\n

\n
willReadFrequently Optional
\n
\n

A Boolean indicating whether or not this canvas uses software acceleration (instead of hardware acceleration) to support frequent read-back operations via getImageData().\n

\n
" + "returns": "A CanvasRenderingContext2DSettings object that contains the actual context parameters.\nIt has the following members:\n
\n
alpha Optional
\n
\n

A Boolean indicating if the canvas contains an alpha channel.\nIf false, the backdrop is always opaque, which can speed up drawing of transparent content and images.\n

\n
colorSpace Optional
\n
\n

Indicates the color space of the rendering context. Possible values are:\n

\n
\n
colorType Optional
\n
\n

Indicates the color type of the rendering context. Possible values are:\n

    \n
  • \"unorm8\" denotes the color channels to 8 bit unsigned values. This is the default value.
  • \n
  • \"float16\" denotes the color channels to 16-bit floating-point values.
  • \n
\n
\n
desynchronized Optional
\n
\n

A Boolean indicating the user agent reduced the latency by desynchronizing the canvas paint cycle from the event loop.\n

\n
willReadFrequently Optional
\n
\n

A Boolean indicating whether or not this canvas uses software acceleration (instead of hardware acceleration) to support frequent read-back operations via getImageData().\n

\n
" }, "canvasrenderingcontext2d.getimagedata": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/getimagedata", @@ -9710,7 +9804,7 @@ "sy": "The y-axis coordinate of the top-left corner of the rectangle from which the\nImageData will be extracted.", "sw": "The width of the rectangle from which the ImageData will be extracted.\nPositive values are to the right, and negative to the left.", "sh": "The height of the rectangle from which the ImageData will be extracted.\nPositive values are down, and negative are up.", - "settings": "An object with the following properties:\n" + "settings": "An object with the following properties:\n
\n
colorSpace
\n
\n

Specifies the color space of the image data. Can be set to \"srgb\" for the sRGB color space or \"display-p3\" for the display-p3 color space.\n

\n
pixelFormat
\n
\n

Specifies the pixel format. Possible values:\n

    \n
  • \"rgba-unorm8\", for RGBA with 8 bit per component unsigned normalized format, using a Uint8ClampedArray.
  • \n
  • \"rgba-float16\", for RGBA with 16 bits per component, using a Float16Array. Floating-point pixel values allow representing colors in arbitrarily wide gamuts and high dynamic range (HDR).
  • \n
\n
\n
" }, "returns": "An ImageData object containing the image data for the rectangle of the\ncanvas specified. The coordinates of the rectangle's top-left corner are\n(sx, sy), while the coordinates of the bottom corner are\n(sx + sw - 1, sy + sh - 1).", "throws": { @@ -9924,6 +10018,23 @@ }, "returns": "
\n
A boolean value
\n
\n

A Boolean, which is true if the point is inside the area contained by\nthe stroking of a path, otherwise false.\n

\n
" }, + "canvasrenderingcontext2d.lang": { + "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/lang", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "ChromeAndroid": "136", + "Edge": "136", + "Opera": "121" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The CanvasRenderingContext2D.lang property of the Canvas 2D API gets or sets the language of the canvas drawing context." + }, "canvasrenderingcontext2d.letterspacing": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/letterspacing", "status": [ @@ -10271,7 +10382,8 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The\nCanvasRenderingContext2D.resetTransform()\nmethod of the Canvas 2D API resets the current transform to the identity matrix." + "doc": "The\nCanvasRenderingContext2D.resetTransform()\nmethod of the Canvas 2D API resets the current transform to the identity matrix.", + "returns": "None (undefined)." }, "canvasrenderingcontext2d.restore": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/restore", @@ -10624,7 +10736,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The CanvasRenderingContext2D.strokeStyle property of the\nCanvas 2D API specifies the color, gradient, or pattern to use for the strokes\n(outlines) around shapes. The default is #000 (black).\n

\n

Note:\nFor more examples of stroke and fill styles, see Applying styles and color in the Canvas tutorial.\n

" + "doc": "The CanvasRenderingContext2D.strokeStyle property of the\nCanvas 2D API specifies the color, gradient, or pattern to use for the strokes\n(outlines) around shapes. The default is black.\n
\n

Note:\nFor more examples of stroke and fill styles, see Applying styles and color in the Canvas tutorial.\n

" }, "canvasrenderingcontext2d.stroketext": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/stroketext", @@ -10810,7 +10922,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CaptureController interface provides methods that can be used to further manipulate a capture session separate from its initiation via MediaDevices.getDisplayMedia().\n

A CaptureController object is associated with a capture session by passing it into a getDisplayMedia() call as the value of the options object's controller property." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CaptureController interface provides methods that can be used to further manipulate a captured display surface (captured via MediaDevices.getDisplayMedia())\n

A CaptureController object is associated with a captured display surface by passing it into a getDisplayMedia() call as the value of the options object's controller property." }, "capturecontroller.capturecontroller": { "url": "$MDN_URL$/web/api/capturecontroller/capturecontroller", @@ -10828,6 +10940,100 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CaptureController constructor creates a new CaptureController object instance." }, + "capturecontroller.decreasezoomlevel": { + "url": "$MDN_URL$/web/api/capturecontroller/decreasezoomlevel", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "Edge": "136", + "Opera": "121" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CaptureController interface's decreaseZoomLevel() method decreases the captured display surface's zoom level by one increment.\n

The decreaseZoomLevel() method must be invoked via transient activation. In addition, the user is asked for permission to share tabs when screen capture is first attempted; if the user denies permission the zoom level cannot be changed even with transient activation.", + "returns": "A Promise that fulfills with undefined.", + "throws": { + "InvalidStateError DOMException": "Thrown when:\n

    \n
  • The captured display surface is already at its minimum supported zoom level.
  • \n
  • An attempt is made to invoke decreaseZoomLevel() without transient activation.
  • \n
", + "NotAllowedError DOMException": "Thrown when:\n" + } + }, + "capturecontroller.forwardwheel": { + "url": "$MDN_URL$/web/api/capturecontroller/forwardwheel", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "Edge": "136", + "Opera": "121" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CaptureController interface's forwardWheel() method starts forwarding wheel events fired on the referenced element to the viewport of an associated captured display surface.\n

The forwardWheel() method must be invoked via transient activation. Specifically, the only events that can successfully invoke it are click and input. In addition, the user is asked for permission to share tabs when screen capture is first attempted; if the user grants permission, this also includes permission to scroll captured tabs. If the relevant permission is already \"granted\", transient activation is not needed.", + "parameters": { + "element": "A reference to the element whose wheel events you want to forward to the associated captured display surface." + }, + "returns": "A Promise that fulfills with undefined.", + "throws": { + "InvalidStateError DOMException": "Thrown when:\n

    \n
  • The capturing MediaStream returned by the originating MediaDevices.getDisplayMedia() call is no longer capturing, for example because the associated MediaStreamTrack objects have had stop() called on them.
  • \n
  • The application is capturing itself.
  • \n
  • An attempt is made to invoke forwardWheel() without transient activation, when permission to use it has not been granted by the user.
  • \n
", + "NotAllowedError DOMException": "Thrown when:\n", + "NotSupportedError DOMException": "The surface type being captured is not a browser tab." + } + }, + "capturecontroller.getsupportedzoomlevels": { + "url": "$MDN_URL$/web/api/capturecontroller/getsupportedzoomlevels", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "Edge": "136", + "Opera": "121" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CaptureController interface's getSupportedZoomLevels() method returns the different zoom levels that the captured display surface supports.", + "returns": "An array of numbers representing the different zoom levels that the captured display surface supports.", + "throws": { + "InvalidStateError DOMException": "The capturing MediaStream returned by the originating MediaDevices.getDisplayMedia() call is no longer capturing, for example because the associated MediaStreamTrack objects have had stop() called on them.", + "NotSupportedError DOMException": "The surface type being captured is not a browser tab." + } + }, + "capturecontroller.increasezoomlevel": { + "url": "$MDN_URL$/web/api/capturecontroller/increasezoomlevel", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "Edge": "136", + "Opera": "121" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CaptureController interface's increaseZoomLevel() method increases the captured display surface's zoom level by one increment.\n

The increaseZoomLevel() method must be invoked via transient activation. In addition, the user is asked for permission to share tabs when screen capture is first attempted; if the user denies permission the zoom level cannot be changed even with transient activation.", + "returns": "A Promise that fulfills with undefined.", + "throws": { + "InvalidStateError DOMException": "Thrown when:\n

    \n
  • The captured display surface is already at its maximum supported zoom level.
  • \n
  • An attempt is made to invoke increaseZoomLevel() without transient activation.
  • \n
", + "NotAllowedError DOMException": "Thrown when:\n" + } + }, + "capturecontroller.resetzoomlevel": { + "url": "$MDN_URL$/web/api/capturecontroller/resetzoomlevel", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "Edge": "136", + "Opera": "121" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CaptureController interface's resetZoomLevel() method resets the captured display surface's zoom to its initial level, which is 100.\n

The resetZoomLevel() method must be invoked via transient activation. In addition, the user is asked for permission to share tabs when screen capture is first attempted; if the user denies permission the zoom level cannot be changed even with transient activation.", + "returns": "A Promise that fulfills with undefined.", + "throws": { + "InvalidStateError DOMException": "An attempt is made to invoke resetZoomLevel() without transient activation.", + "NotAllowedError DOMException": "Thrown when:\n

" + } + }, "capturecontroller.setfocusbehavior": { "url": "$MDN_URL$/web/api/capturecontroller/setfocusbehavior", "status": [ @@ -10851,6 +11057,19 @@ "InvalidStateError DOMException": "Thrown if:\n
    \n
  • The capture stream has been stopped.
  • \n
  • The user chose to share a screen (displaySurface type monitor) rather than a browser tab or window — you can't focus a monitor. In this case the exception is thrown after the MediaDevices.getDisplayMedia() Promise resolves.
  • \n
  • Enough time has elapsed after the MediaDevices.getDisplayMedia() Promise fulfills that the focus behavior has been finalized.
  • \n
" } }, + "capturecontroller.zoomlevel": { + "url": "$MDN_URL$/web/api/capturecontroller/zoomlevel", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "Edge": "136", + "Opera": "121" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The zoomLevel read-only property of the CaptureController interface returns the captured display surface's current zoom level." + }, "caretposition": { "url": "$MDN_URL$/web/api/caretposition", "status": [ @@ -10862,16 +11081,68 @@ "Edge": "128", "Firefox": "20", "FirefoxAndroid": "20", - "Opera": "114", - "Safari": "18.4", - "SafariIOS": "18.4" + "Opera": "114" }, "baseline": { - "level": "LOW", - "lowDate": "2025-03-31" + "level": "NONE" }, "doc": "The CaretPosition interface represents the caret position, an indicator for the text insertion point.\nYou can get a CaretPosition using the Document.caretPositionFromPoint() method." }, + "caretposition.getclientrect": { + "url": "$MDN_URL$/web/api/caretposition/getclientrect", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "128", + "ChromeAndroid": "128", + "Edge": "128", + "Firefox": "23", + "FirefoxAndroid": "23", + "Opera": "114" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The getClientRect() method of the CaretPosition interface returns the client rectangle for the caret range.", + "returns": "A DOMRect object." + }, + "caretposition.offset": { + "url": "$MDN_URL$/web/api/caretposition/offset", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "128", + "ChromeAndroid": "128", + "Edge": "128", + "Firefox": "20", + "FirefoxAndroid": "20", + "Opera": "114" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The offset property of the CaretPosition interface returns an integer representing the offset of the selection in the caret position node.\n

This will be the character offset in a text node or the selected child node's index in an element node." + }, + "caretposition.offsetnode": { + "url": "$MDN_URL$/web/api/caretposition/offsetnode", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "128", + "ChromeAndroid": "128", + "Edge": "128", + "Firefox": "20", + "FirefoxAndroid": "20", + "Opera": "114" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The offsetNode property of the CaretPosition interface returns a Node containing the found node at the caret's position." + }, "cdatasection": { "url": "$MDN_URL$/web/api/cdatasection", "status": [ @@ -11181,6 +11452,7 @@ "parameters": { "nodes": "A set of Node objects or strings to insert." }, + "returns": "None (undefined).", "throws": { "HierarchyRequestError DOMException": "Thrown when the new nodes cannot be inserted at the specified point in the hierarchy,\nthat is if one of the following conditions is met:\n

" } @@ -11235,6 +11507,7 @@ "parameters": { "nodes": "A set of Node objects or strings to insert." }, + "returns": "None (undefined).", "throws": { "HierarchyRequestError DOMException": "Thrown when the new nodes cannot be inserted at the specified point in the hierarchy, that is if one of the following conditions is met:\n" } @@ -11407,7 +11680,8 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The remove() method of the CharacterData removes the text contained in the node." + "doc": "The remove() method of the CharacterData removes it from its parent node.\nIf it has no parent node, calling remove() does nothing.", + "returns": "None (undefined)." }, "characterdata.replacedata": { "url": "$MDN_URL$/web/api/characterdata/replacedata", @@ -11641,7 +11915,7 @@ }, "doc": "

Note: This feature is only available in Service Workers.

\n

The postMessage() method of the\nClient interface allows a service worker to send a message to a client\n(a Window, Worker, or SharedWorker). The\nmessage is received in the message event on\nnavigator.serviceWorker.", "parameters": { - "message": "The message to send to the client. This can be any structured-cloneable type.", + "message": "The message to send to the client. This can be any structured-cloneable type.\n

\n

Note:\nA service worker is not in the same agent cluster as its client, and therefore cannot share memory. SharedArrayBuffer objects, or buffer views backed by one, cannot be posted across agent clusters. Trying to do so will generate a messageerror event containing a DataCloneError DOMException on the receiving end.\n

", "transfer": "An optional array of transferable objects to transfer ownership of. The ownership of these objects is given to the destination side and they are no longer usable on the sending side. These transferable objects should be attached to the message; otherwise they would be moved but not actually accessible on the receiving end.", "options": "An optional object containing the following properties:\n
\n
transfer Optional
\n
\n

Has the same meaning as the transfer parameter.\n

\n
" }, @@ -12293,6 +12567,7 @@ "Chrome": "126", "ChromeAndroid": "126", "Edge": "126", + "Firefox": "preview", "Opera": "112" }, "baseline": { @@ -12310,6 +12585,7 @@ "Chrome": "126", "ChromeAndroid": "126", "Edge": "126", + "Firefox": "preview", "Opera": "112" }, "baseline": { @@ -12328,6 +12604,7 @@ "Chrome": "126", "ChromeAndroid": "126", "Edge": "126", + "Firefox": "preview", "Opera": "112" }, "baseline": { @@ -12349,6 +12626,7 @@ "Chrome": "126", "ChromeAndroid": "126", "Edge": "126", + "Firefox": "preview", "Opera": "112" }, "baseline": { @@ -12367,6 +12645,7 @@ "Chrome": "126", "ChromeAndroid": "126", "Edge": "126", + "Firefox": "preview", "Opera": "112" }, "baseline": { @@ -12384,6 +12663,8 @@ "Chrome": "135", "ChromeAndroid": "135", "Edge": "135", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "120", "Safari": "preview" }, @@ -12401,6 +12682,8 @@ "Chrome": "135", "ChromeAndroid": "135", "Edge": "135", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "120", "Safari": "preview" }, @@ -12418,6 +12701,8 @@ "Chrome": "135", "ChromeAndroid": "135", "Edge": "135", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "120", "Safari": "preview" }, @@ -12426,7 +12711,7 @@ }, "doc": "The CommandEvent() constructor creates a new CommandEvent object.", "parameters": { - "type": "A string with the name of the event.\nIt is case-sensitive and browsers set it to beforeinput or input.", + "type": "A string with the name of the event.\nIt is case-sensitive and browsers set it to command.", "options": "An object that, in addition of the properties defined in Event(), can have the following properties:\n
\n
source Optional
\n
\n

An HTMLButtonElement representing the button that was interacted with to cause this event. This can be any element but we recommend only using button as a source to avoid surprises.\n

\n
command Optional
\n
\n

A string containing the command for the controlled element to take. While manually instantiating a CommandEvent it is possible to use any string value, but it is recommended to use one of the built-in names or prefix with two dashes (--) to ensure forward compatibility.\n

\n
" }, "returns": "A new CommandEvent object." @@ -12440,6 +12725,8 @@ "Chrome": "135", "ChromeAndroid": "135", "Edge": "135", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "120", "Safari": "preview" }, @@ -12599,11 +12886,8 @@ "status": [ "Deprecated" ], - "compatibility": { - "Firefox": "9", - "FirefoxAndroid": "9" - }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The locale read-only property of the\nCompositionEvent interface returns the locale of current input method\n(for example, the keyboard layout locale if the composition is associated with an Input method editor).\n

\n

Warning:\nEven for browsers supporting it, don't trust the value contained in this property.\nEven if technically it is accessible, the way to set it up when creating a CompositionEvent\nis not guaranteed to be coherent.\n

" + "compatibility": {}, + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The locale read-only property of the\nCompositionEvent interface returns the locale of current input method\n(for example, the keyboard layout locale if the composition is associated with an Input method editor).\n

\n

Warning:\nEven for browsers supporting it, don't trust the value contained in this property.\nEven if technically it is accessible, the way to set it up when creating a CompositionEvent\nis not guaranteed to be coherent.\n

" }, "compressionstream": { "url": "$MDN_URL$/web/api/compressionstream", @@ -13108,7 +13392,7 @@ "SafariIOS": "3.2", "Deno": "1.29" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The console.profile() static method starts recording a performance profile (for example, the Firefox performance tool).\n

You can optionally supply an argument to name the profile and this then enables you to stop only that profile if multiple profiles being recorded. See console.profileEnd() to see how this argument is interpreted.\n

To stop recording call console.profileEnd().", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The console.profile() static method starts recording a performance profile (for example, the Firefox performance tool).\n

You can optionally supply an argument to name the profile and this then enables you to stop only that profile if multiple profiles being recorded. See console.profileEnd() to see how this argument is interpreted.\n

To stop recording call console.profileEnd().", "parameters": { "profileName": "The name to give the profile." }, @@ -13125,7 +13409,7 @@ "SafariIOS": "3.2", "Deno": "1.29" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The console.profileEnd() static method stops recording a profile previously started with console.profile().\n

You can optionally supply an argument to name the profile. Doing so enables you to stop only that profile if you have multiple profiles being recorded.\n

    \n
  • If console.profileEnd() is passed a profile name, and it matches the name of a profile being recorded, then that profile is stopped.
  • \n
  • If console.profileEnd() is passed a profile name and it does not match the name of a profile being recorded, no changes will be made.
  • \n
  • If console.profileEnd() is not passed a profile name, the most recently started profile is stopped.
  • \n
", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The console.profileEnd() static method stops recording a profile previously started with console.profile().\n

You can optionally supply an argument to name the profile. Doing so enables you to stop only that profile if you have multiple profiles being recorded.\n

    \n
  • If console.profileEnd() is passed a profile name, and it matches the name of a profile being recorded, then that profile is stopped.
  • \n
  • If console.profileEnd() is passed a profile name and it does not match the name of a profile being recorded, no changes will be made.
  • \n
  • If console.profileEnd() is not passed a profile name, the most recently started profile is stopped.
  • \n
", "parameters": { "profileName": "The name to give the profile." }, @@ -13251,14 +13535,12 @@ "Chrome": "15", "ChromeAndroid": "", "Edge": "", - "Firefox": "39", - "FirefoxAndroid": "39", "Opera": "15", "Safari": "6", "SafariIOS": "6", "Deno": "1.29" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The console.timeStamp() static method adds a single marker to the browser's Performance tool (Firefox bug 1387528, Chrome). This lets you correlate a point in your code with the other events recorded in the timeline, such as layout and paint events.\n

You can optionally supply an argument to label the timestamp, and this label will then be shown alongside the marker.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The console.timeStamp() static method adds a single marker to the browser's Performance tool (Firefox bug 1387528, Chrome). This lets you correlate a point in your code with the other events recorded in the timeline, such as layout and paint events.\n

You can optionally supply an argument to label the timestamp, and this label will then be shown alongside the marker.", "parameters": { "label": "Label for the timestamp." }, @@ -13367,7 +13649,7 @@ "doc": "The ConstantSourceNode() constructor creates a new\nConstantSourceNode object instance, representing an audio source which\nconstantly outputs samples whose values are always the same.", "parameters": { "context": "An AudioContext representing the audio context you want the node to\nbe associated with.", - "options": "A ConstantSourceOptions dictionary object defining the properties you\nwant the ConstantSourceNode to have:\n

\n
offset
\n
\n

A read-only AudioParam specifying the\nconstant value generated by the source. The default is 1.0. The normal range is\n-1.0 to 1.0, but the value can be anywhere in the range from\n-Infinity to +Infinity.\n

\n
" + "options": "A ConstantSourceOptions dictionary object defining the properties you\nwant the ConstantSourceNode to have:\n
\n
offset
\n
\n

A read-only AudioParam specifying the\nconstant value generated by the source. The default is 1.0. The normal range is\n-1.0 to 1.0, but the value can be anywhere in the range from\n-Infinity to Infinity.\n

\n
" } }, "constantsourcenode.offset": { @@ -13901,13 +14183,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CookieChangeEvent interface of the Cookie Store API is the event type of the change event fired at a CookieStore when any cookies are created or deleted.\n

\n

Note:\nA cookie that is replaced due to the insertion of another cookie with the same name, domain, and path, is ignored and does not trigger a change event.\n

" }, @@ -13920,13 +14204,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The changed read-only property of the CookieChangeEvent interface returns an array of the cookies that have been changed.\n

Note that this will exclude cookies which were created with an expiry date in the past, as these cookies are immediately deleted." }, @@ -13939,13 +14225,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CookieChangeEvent() constructor creates a new CookieChangeEvent object\nwhich is the event type of the change event fired at a CookieStore when any cookie changes occur.\nThis constructor is called by the browser when a change event occurs.\n

\n

Note:\nThis event constructor is generally not needed for production websites. It's primary use is for tests that require an instance of this event.\n

", "parameters": { @@ -13963,13 +14251,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The deleted read-only property of the CookieChangeEvent interface returns an array of the cookies that have been deleted by the given CookieChangeEvent instance.\n

Note that this will include cookies which were created with an expiry date in the past, as these cookies are immediately deleted." }, @@ -13982,13 +14272,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Service Workers.

\n

The CookieStore interface of the Cookie Store API provides methods for getting and setting cookies asynchronously from either a page or a service worker.\n

The CookieStore is accessed via attributes in the global scope in a Window or ServiceWorkerGlobalScope context. Therefore there is no constructor." }, @@ -14001,13 +14293,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Service Workers.

\n

The delete() method of the CookieStore interface deletes a cookie that matches the given name or options object.\nThe method expires the cookie by changing its date to one in the past.\n

Note that there is no error if a cookie cannot be matched: the returned promise will fulfill when the matched cookie is deleted or if no cookie is matched.", "parameters": { @@ -14029,13 +14323,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Service Workers.

\n

The get() method of the CookieStore interface returns a Promise that resolves to a single cookie matching the given name or options object. The method will return the first cookie that matches.", "parameters": { @@ -14057,13 +14353,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Service Workers.

\n

The getAll() method of the CookieStore interface returns a Promise that resolves as an array of cookies that match the name or options passed to it.\nPassing no parameters will return all cookies for the current context.", "parameters": { @@ -14085,13 +14383,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Service Workers.

\n

The set() method of the CookieStore interface sets a cookie with the given name and value or options object.", "parameters": { @@ -14114,6 +14414,8 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73" }, "baseline": { @@ -14130,6 +14432,8 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73" }, "baseline": { @@ -14147,6 +14451,8 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73" }, "baseline": { @@ -14170,6 +14476,8 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73" }, "baseline": { @@ -14317,6 +14625,18 @@ }, "returns": "A Promise which resolves to an ImageBitmap object containing bitmap data from the given rectangle." }, + "createmonitor": { + "url": "$MDN_URL$/web/api/createmonitor", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CreateMonitor interface provides information on the progress of an AI model download or some fine-tuning data for the model.\n

It can be used via:\n

" + }, "credential": { "url": "$MDN_URL$/web/api/credential", "status": [ @@ -14361,6 +14681,22 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The id read-only property of the Credential interface returns a string containing the credential's identifier. This might be a GUID, username, or email address, or some other value, depending on the type of credential." }, + "credential.isconditionalmediationavailable": { + "url": "$MDN_URL$/web/api/credential/isconditionalmediationavailable_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Safari": "16", + "SafariIOS": "16" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The isConditionalMediationAvailable() static method of the Credential interface returns a Promise which resolves to false.\n

Subclasses of Credential override this method if they support conditional mediation. See PublicKeyCredential.isConditionalMediationAvailable(), for example.", + "returns": "A Promise which resolves to false." + }, "credential.type": { "url": "$MDN_URL$/web/api/credential/type", "status": [ @@ -14463,7 +14799,7 @@ "returns": "A Promise that resolves with one of the following subclasses of Credential:\n

\n

If conditional mediation was specified in the get() call, the browser UI dialog is shown and the promise remains pending until the user picks an account to sign-in with from available autofill suggestions:\n

    \n
  • If the user then makes a gesture outside of the browser UI dialog, it closes without resolving or rejecting the promise and without causing a user-visible error condition.
  • \n
  • If the user selects a credential, the relevant PublicKeyCredential is returned to the caller.
  • \n
\n

If a single credential cannot be unambiguously obtained, the promise resolves with null.", "throws": { "AbortError DOMException": "The request was aborted by a call to the abort() method of the AbortController associated with this method's signal option.", - "IdentityCredentialError DOMException": "When requesting an IdentityCredential, the request to the ID assertion endpoint is unable to validate the authentication, and rejects with an error response containing information about the reason.", + "IdentityCredentialError": "When requesting an IdentityCredential, the request to the ID assertion endpoint is unable to validate the authentication, and rejects with an error response containing information about the reason.", "NetworkError DOMException": "When requesting an IdentityCredential, the identity provider (IdP) did not respond within 60 seconds, the provided credentials were not valid/found, or the browser's login status for the IdP is set to \"logged-out\" (see Update login status using the Login Status API for more information about FedCM login status). In the latter case, there may be some delay in the rejection to avoid leaking the IdP login status to the RP.", "NotAllowedError DOMException": "Thrown in one of the following situations:\n

", "SecurityError DOMException": "The calling domain is not a valid domain." @@ -14488,7 +14824,7 @@ "level": "LOW", "lowDate": "2023-09-18" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The preventSilentAccess() method of the CredentialsContainer interface sets a flag that specifies whether automatic log in is allowed for future visits to the current origin, then returns a Promise that resolves to undefined.\nFor example, you might call this, after a user signs out of a website to ensure that they aren't automatically signed in on the next site visit.\nMediation varies by origin, and is an added check point of browser stored credentials, informing a user of an account login status. This method is typically called after a user signs out of a website, ensuring this user's login information is not automatically passed on the next site visit.\n

This method generally has no effect when using a PublicKeyCredential; such authenticators typically require user interaction. However, it is possible that certain authenticators may be excluded, which could otherwise have operated silently.\n

Earlier versions of the spec called this method requireUserMediation().\nThe Browser compatibility section has support details.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The preventSilentAccess() method of the CredentialsContainer interface sets a flag that specifies whether automatic log in is allowed for future visits to the current origin, then returns a Promise that resolves to undefined.\nFor example, you might call this, after a user signs out of a website to ensure that they aren't automatically signed in on the next site visit.\nMediation varies by origin, and is an added check point of browser stored credentials, informing a user of an account login status. This method is typically called after a user signs out of a website, ensuring this user's login information is not automatically passed on the next site visit.\n

When using a PublicKeyCredential, this method generally has no effect; such authenticators typically require user interaction. However, it is possible that certain authenticators may be excluded, which could otherwise have operated silently.\n

Earlier versions of the spec called this method requireUserMediation().\nThe Browser compatibility section has support details.", "returns": "A Promise that resolves to undefined." }, "credentialscontainer.store": { @@ -14625,7 +14961,7 @@ }, "returns": "The same array passed as typedArray but with its contents replaced with the newly generated random numbers.\nNote that typedArray is modified in-place, and no copy is made.", "throws": { - "QuotaExceededError DOMException": "Thrown if the byteLength of typedArray exceeds 65,536." + "QuotaExceededError": "Thrown if the byteLength of typedArray exceeds 65,536." } }, "crypto.randomuuid": { @@ -14814,9 +15150,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The CSPViolationReportBody interface is an extension of the Reporting API that represents the body of a Content Security Policy (CSP) violation report.\n

CSP violations are thrown when the webpage attempts to load a resource that violates the policy set by the Content-Security-Policy HTTP header.\n

CSP violation reports are returned in the reports parameter of ReportingObserver callbacks that have a type of \"csp-violation\".\nThe body property of those reports is an instance of CSPViolationReportBody.\n

CSP violation reports may also be sent as JSON objects to the endpoint specified in the report-to policy directive of the Content-Security-Policy header.\nThese reports similarly have a type of \"csp-violation\", and a body property containing a serialization of an instance of this interface.\n

\n

Note:\nCSP violation reports sent by the Reporting API, when an endpoint is specified using the CSP report-to directive, are similar (but not identical) to the \"CSP report\" JSON objects sent when endpoints are specified using the report-uri directive.\nThe Reporting API and report-to directive are intended to replace the older report format and the report-uri directive.\n

" }, "cspviolationreportbody.blockedurl": { @@ -14832,9 +15165,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The blockedURL read-only property of the CSPViolationReportBody interface is a string value that represents the resource that was blocked because it violates a Content Security Policy (CSP)." }, "cspviolationreportbody.columnnumber": { @@ -14850,9 +15180,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The columnNumber read-only property of the CSPViolationReportBody interface indicates the column number in the source file that triggered the Content Security Policy (CSP) violation.\n

Note that the browser extracts the value from the global object of the file that triggered the violation.\nIf the resource that triggers the CSP violation is not loaded, the value will be null.\nSee CSPViolationReportBody.sourceFile for more information.\n

This property is most useful alongside CSPViolationReportBody.sourceFile and CSPViolationReportBody.lineNumber, as it provides the location of the column in that file and line that resulted in a violation." }, "cspviolationreportbody.disposition": { @@ -14868,9 +15195,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The disposition read-only property of the CSPViolationReportBody interface indicates whether the user agent is configured to enforce Content Security Policy (CSP) violations or only report them." }, "cspviolationreportbody.documenturl": { @@ -14886,9 +15210,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The documentURL read-only property of the CSPViolationReportBody interface is a string that represents the URL of the document or worker that violated the Content Security Policy (CSP)." }, "cspviolationreportbody.effectivedirective": { @@ -14904,9 +15225,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The effectiveDirective read-only property of the CSPViolationReportBody interface is a string that represents the effective Content Security Policy (CSP) directive that was violated.\n

Note that this contains the specific directive that was effectively violated, such as script-src-elem for violations related to script elements, and not the policy that was specified, which may have been the (more general) default-src." }, "cspviolationreportbody.linenumber": { @@ -14922,9 +15240,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The lineNumber read-only property of the CSPViolationReportBody interface indicates the line number in the source file that triggered the Content Security Policy (CSP) violation.\n

Note that the browser extracts the value from the global object of the file that triggered the violation.\nIf the resource that triggers the CSP violation is not loaded, the value will be null.\nSee CSPViolationReportBody.sourceFile for more information.\n

This property is most useful alongside CSPViolationReportBody.sourceFile and CSPViolationReportBody.columnNumber, as it provides the location of the line in that file and the column that resulted in a violation." }, "cspviolationreportbody.originalpolicy": { @@ -14940,9 +15255,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The originalPolicy read-only property of the CSPViolationReportBody interface is a string that represents the Content Security Policy (CSP) whose enforcement uncovered the violation.\n

This is the string in the Content-Security-Policy HTTP response header that contains the list of directives and their values that make the CSP policy.\nNote that differs from the effectiveDirective, which is the specific directive that is effectively being violated (and which might not be explicitly listed in the policy if default-src is used)." }, "cspviolationreportbody.referrer": { @@ -14958,9 +15270,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The referrer read-only property of the CSPViolationReportBody interface is a string that represents the URL of the referring page of the resource who's Content Security Policy (CSP) was violated.\n

The referrer is the page that caused the page with the CSP violation to be loaded. For example, if we followed a link to a page with a CSP violation, the referrer is the page that we navigated from." }, "cspviolationreportbody.sample": { @@ -14976,9 +15285,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The sample read-only property of the CSPViolationReportBody interface is a string that contains a part of the resource that violated the Content Security Policy (CSP).\n

This sample is usually the first 40 characters of the inline script, event handler, or style that violated a CSP restriction.\nIf not populated it is the empty string \"\".\n

Note that this is only populated when attempting to load inline scripts, event handlers, or styles that violate CSP script-src* and style-src* rules — external resources that violate the CSP will not generate a sample.\nIn addition, a sample is only included if the Content-Security-Policy directive that was violated also contains the 'report-sample' keyword.\n

\n

Note:\nViolation reports should be considered attacker-controlled data.\nThe content of this field in particular should be sanitized before storing or rendering.\n

" }, "cspviolationreportbody.sourcefile": { @@ -14994,9 +15300,6 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The sourceFile read-only property of the CSPViolationReportBody interface indicates the URL of the source file that violated the Content Security Policy (CSP).\n

For a violation triggered by the use of an inline script, sourceFile is the URL of the current document.\nSimilarly, if a document successfully loads a script that then violates the document CSP, the sourceFile is the URL of the script.\n

Note however that if a document with a CSP that blocks external resources attempts to load an external resource, sourceFile will be null.\nThis is because the browser extracts the value from the global object of the file that triggered the violation.\nBecause of the CSP restriction the external resource is never loaded, and therefore has no corresponding global object.\n

This property is most useful alongside CSPViolationReportBody.lineNumber and CSPViolationReportBody.columnNumber, which provide the location within the file that resulted in a violation." }, "cspviolationreportbody.statuscode": { @@ -15012,15 +15315,13 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, "doc": "The statusCode read-only property of the CSPViolationReportBody interface is a number representing the HTTP status code of the response to the request that triggered a Content Security Policy (CSP) violation (when loading a window or worker)." }, "cspviolationreportbody.tojson": { "url": "$MDN_URL$/web/api/cspviolationreportbody/tojson", "status": [ - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "80", @@ -15030,10 +15331,7 @@ "Safari": "18.4", "SafariIOS": "18.4" }, - "baseline": { - "level": "NONE" - }, - "doc": "The toJSON() method of the CSPViolationReportBody interface is a serializer, which returns a JSON representation of the CSPViolationReportBody object.\n

The existence of a toJSON() method allows CSPViolationReportBody objects to be converted to a string using the JSON.stringify() method.\n

This is used by the reporting API when creating a serialized version of a violation report to send to a reporting endpoint.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The toJSON() method of the CSPViolationReportBody interface is a serializer, which returns a JSON representation of the CSPViolationReportBody object.\n

The existence of a toJSON() method allows CSPViolationReportBody objects to be converted to a string using the JSON.stringify() method.\n

This is used by the reporting API when creating a serialized version of a violation report to send to a reporting endpoint.", "returns": "A JSON object that is the serialization of the CSPViolationReportBody object." }, "css": { @@ -15104,7 +15402,11 @@ "lowDate": "2015-09-30", "highDate": "2018-03-30" }, - "doc": "The CSS numeric factory\nfunctions, such as CSS.em() and\nCSS.turn() are methods that return CSSUnitValues with the value being\nthe numeric argument and the unit being the name of the method used. These\nfunctions create new numeric values less verbosely than using the\nCSSUnitValue() constructor." + "doc": "The CSS numeric factory\nfunctions, such as CSS.em() and\nCSS.turn() are methods that return CSSUnitValues with the value being\nthe numeric argument and the unit being the name of the method used. These\nfunctions create new numeric values less verbosely than using the\nCSSUnitValue() constructor.", + "parameters": { + "number": "A number to be used in the CSS unit value." + }, + "returns": "A CSSUnitValue object with the specified numeric value and unit." }, "css.highlights": { "url": "$MDN_URL$/web/api/css/highlights_static", @@ -15115,13 +15417,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The static, read-only highlights property of the CSS interface provides access to the HighlightRegistry used to style arbitrary text ranges using the CSS Custom Highlight API." }, @@ -15304,8 +15608,9 @@ "SafariIOS": "16" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The CSSContainerRule interface represents a single CSS @container rule.\n

An object of this type can be used to get the query conditions for the @container, along with the container name if one is defined.\nNote that the container name and query together define the \"condition text\", which can be obtained using CSSConditionRule.conditionText." }, @@ -15328,7 +15633,7 @@ "level": "LOW", "lowDate": "2023-09-18" }, - "doc": "The read-only containerName property of the CSSContainerRule interface represents the container name of the associated CSS @container at-rule.\n

For example, the value of containerName for the @container below is sidebar:\n

\n```css\n@container sidebar (min-width: 700px) {\n  .card {\n    font-size: 2em;\n  }\n}\n```\n
" + "doc": "The read-only containerName property of the CSSContainerRule interface represents the container name of the associated CSS @container at-rule.\n

For example, the value of containerName for the @container below is sidebar:\n

\n```css\n@container sidebar (width >= 700px) {\n  .card {\n    font-size: 2em;\n  }\n}\n```\n
" }, "csscontainerrule.containerquery": { "url": "$MDN_URL$/web/api/csscontainerrule/containerquery", @@ -15349,7 +15654,7 @@ "level": "LOW", "lowDate": "2023-09-18" }, - "doc": "The read-only containerQuery property of the CSSContainerRule interface returns a string representing the container conditions that are evaluated when the container changes size in order to determine if the styles in the associated @container are applied.\n

For example, the value of containerQuery for the @container below is (min-width: 700px):\n

\n```css\n@container sidebar (min-width: 700px) {\n  .card {\n    font-size: 2em;\n  }\n}\n```\n
" + "doc": "The read-only containerQuery property of the CSSContainerRule interface returns a string representing the container conditions that are evaluated when the container changes size in order to determine if the styles in the associated @container are applied.\n

For example, the value of containerQuery for the @container below is (width >= 700px):\n

\n```css\n@container sidebar (width >= 700px) {\n  .card {\n    font-size: 2em;\n  }\n}\n```\n
" }, "csscounterstylerule": { "url": "$MDN_URL$/web/api/csscounterstylerule", @@ -15705,8 +16010,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, "doc": "The CSSFontPaletteValuesRule interface represents an @font-palette-values at-rule." }, @@ -15726,8 +16032,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, "doc": "The read-only basePalette property of the CSSFontPaletteValuesRule interface indicates the base palette associated with the rule." }, @@ -15747,8 +16054,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, "doc": "The read-only fontFamily property of the CSSFontPaletteValuesRule interface lists the font families the rule can be applied to. The font families must be named families; generic families like courier are not valid." }, @@ -15768,8 +16076,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, "doc": "The read-only name property of the CSSFontPaletteValuesRule interface represents the name identifying the associated @font-palette-values at-rule. A valid name always starts with two dashes, such as --Alternate." }, @@ -15789,8 +16098,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2022-11-15" + "level": "HIGH", + "lowDate": "2022-11-15", + "highDate": "2025-05-15" }, "doc": "The read-only overrideColors property of the CSSFontPaletteValuesRule interface is a string containing a list of color index and color pair that are to be used instead. It is specified in the same format as the corresponding override-colors descriptor." }, @@ -15896,8 +16206,7 @@ "returns": "The index of the new rule.", "throws": { "IndexSizeError DOMException": "Thrown if index is greater than the number of child CSS rules.", - "HierarchyRequestError DOMException": "Thrown if, due to constraints specified by CSS, the new rule cannot be inserted into\nthe list at the (zero-index) index position given.", - "InvalidStateError DOMException": "Thrown if the new rule is an @namespace at-rule, and the list of child CSS rules contains anything other than @import at-rules and @namespace at-rules." + "HierarchyRequestError DOMException": "Thrown if rule cannot be inserted at the specified index due to some CSS constraint.

Thrown if the rule is a valid statement but not a nested statement." } }, "cssimagevalue": { @@ -16450,7 +16759,7 @@ "baseline": { "level": "NONE" }, - "doc": "The CSSMathInvert interface of the CSS Typed Object Model API represents a CSS calc() used as calc(1 / <value>). It inherits properties and methods from its parent CSSNumericValue." + "doc": "The CSSMathInvert interface of the CSS Typed Object Model API represents a CSS calc() used as calc(1 / <value>). It inherits properties and methods from its parent CSSNumericValue." }, "cssmathinvert.cssmathinvert": { "url": "$MDN_URL$/web/api/cssmathinvert/cssmathinvert", @@ -16760,7 +17069,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The CSSMathSum() constructor creates a\nnew CSSMathSum object which creates a new CSSKeywordValue\nobject which represents the result obtained by calling\nadd(), sub(),\nor toSum() on CSSNumericValue.", "parameters": { - "values": "One or more double integers or CSSNumericValue objects." + "values": "One or more numbers (which are wrapped into CSSUnitValues of unit: \"number\") or CSSNumericValue objects." } }, "cssmathsum.values": { @@ -17350,17 +17659,18 @@ "csspagedescriptors": { "url": "$MDN_URL$/web/api/csspagedescriptors", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Firefox": "129", - "FirefoxAndroid": "129" + "FirefoxAndroid": "129", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The CSSPageDescriptors interface represents a CSS declaration block for an @page at-rule.\n

The interface exposes style information and various style-related methods and properties for the page.\nEach multi-word property has versions in camel- and snake-case.\nThis means, for example, that you can access the margin-top CSS property using the syntax style[\"margin-top\"] or style.marginTop (where style is a CSSPageDescriptor).\n

A CSSPageDescriptors object is accessed through the style property of the CSSPageRule interface, which can in turn be found using the CSSStyleSheet API." + "doc": "The CSSPageDescriptors interface represents a CSS declaration block for an @page at-rule.\n

The interface exposes style information and various style-related methods and properties for the page.\nEach multi-word property has versions in camel- and snake-case.\nThis means, for example, that you can access the margin-top CSS property using the syntax style[\"margin-top\"] or style.marginTop (where style is a CSSPageDescriptor).\n

A CSSPageDescriptors object is accessed through the style property of the CSSPageRule interface, which can in turn be found using the CSSStyleSheet API." }, "csspagerule": { "url": "$MDN_URL$/web/api/csspagerule", @@ -17400,8 +17710,9 @@ "SafariIOS": "1" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The selectorText property of the CSSPageRule interface gets and sets the selectors associated with the CSSPageRule." }, @@ -17490,70 +17801,74 @@ "csspositiontrydescriptors": { "url": "$MDN_URL$/web/api/csspositiontrydescriptors", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The CSSPositionTryDescriptors interface defines properties that represent the list of CSS descriptors that can be set in the body of a @position-try at-rule.\n

Each descriptor in the body of the corresponding @position-try at-rule can be accessed using either its property name in bracket notation or the camel-case version of the property name \"propertyName\" in dot notation.\nFor example, you can access the CSS property \"property-name\" as style[\"property-name\"] or style.propertyName, where style is a CSSPositionTryDescriptors instance.\nA property with a single-word name like height can be accessed using either notation: style[\"height\"] or style.height.\n

\n

Note:\nThe CSSPositionTryRule interface represents a @position-try at-rule, and the CSSPositionTryRule.style property is an instance of this object.\n

" + "doc": "The CSSPositionTryDescriptors interface defines properties that represent the list of CSS descriptors that can be set in the body of a @position-try at-rule.\n

Each descriptor in the body of the corresponding @position-try at-rule can be accessed using either its property name in bracket notation or the camel-case version of the property name \"propertyName\" in dot notation.\nFor example, you can access the CSS property \"property-name\" as style[\"property-name\"] or style.propertyName, where style is a CSSPositionTryDescriptors instance.\nA property with a single-word name like height can be accessed using either notation: style[\"height\"] or style.height.\n

\n

Note:\nThe CSSPositionTryRule interface represents a @position-try at-rule, and the CSSPositionTryRule.style property is an instance of this object.\n

" }, "csspositiontryrule": { "url": "$MDN_URL$/web/api/csspositiontryrule", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The CSSPositionTryRule interface describes an object representing a @position-try at-rule." + "doc": "The CSSPositionTryRule interface describes an object representing a @position-try at-rule." }, "csspositiontryrule.name": { "url": "$MDN_URL$/web/api/csspositiontryrule/name", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The name read-only property of the CSSPositionTryRule interface represents the name of the position try fallback option specified by the @position-try at-rule's <dashed-ident>." + "doc": "The name read-only property of the CSSPositionTryRule interface represents the name of the position try fallback option specified by the @position-try at-rule's <dashed-ident>." }, "csspositiontryrule.style": { "url": "$MDN_URL$/web/api/csspositiontryrule/style", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "125", "ChromeAndroid": "125", "Edge": "125", - "Opera": "111" + "Opera": "111", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The style read-only property of the CSSPositionTryRule interface returns a CSSPositionTryDescriptors object representing the declarations set in the body of the @position-try at-rule." + "doc": "The style read-only property of the CSSPositionTryRule interface returns a CSSPositionTryDescriptors object representing the declarations set in the body of the @position-try at-rule." }, "csspositionvalue": { "url": "$MDN_URL$/web/api/csspositionvalue", @@ -17566,7 +17881,7 @@ "Edge": "79", "Opera": "53" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The CSSPositionValue interface of the CSS Typed Object Model API represents values for properties that take a position, for example object-position." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The CSSPositionValue interface of the CSS Typed Object Model API represents values for properties that take a position, for example object-position." }, "csspositionvalue.csspositionvalue": { "url": "$MDN_URL$/web/api/csspositionvalue/csspositionvalue", @@ -17579,7 +17894,7 @@ "Edge": "79", "Opera": "53" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The CSSPositionValue() constructor\ncreates a new CSSPositionValue object which represents values for\nproperties that take a position, for example object-position.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The CSSPositionValue() constructor\ncreates a new CSSPositionValue object which represents values for\nproperties that take a position, for example object-position.", "parameters": { "x": "A position along the web page's horizontal axis.", "y": "A position along the web page's vertical axis." @@ -17596,7 +17911,7 @@ "Edge": "79", "Opera": "53" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The x property of the\nCSSPositionValue interface returns the item's position along the web\npage's horizontal axis." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The x property of the\nCSSPositionValue interface returns the item's position along the web\npage's horizontal axis." }, "csspositionvalue.y": { "url": "$MDN_URL$/web/api/csspositionvalue/y", @@ -17609,7 +17924,7 @@ "Edge": "79", "Opera": "53" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The y property of the\nCSSPositionValue interface returns the item's position along the\nvertical axis." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The y property of the\nCSSPositionValue interface returns the item's position along the\nvertical axis." }, "cssprimitivevalue": { "url": "$MDN_URL$/web/api/cssprimitivevalue", @@ -17756,7 +18071,7 @@ "returns": "None (undefined).", "throws": { "InvalidAccessError DOMException": "Thrown if the CSS value doesn't contain a string value\nor if the string value can't be converted into the specified unit.", - "`NoModificationAllowedError' DOMException": "Thrown if the property is read-only." + "NoModificationAllowedError DOMException": "Thrown if the property is read-only." } }, "csspropertyrule": { @@ -17954,9 +18269,9 @@ }, "doc": "The CSSRotate() constructor creates a new\nCSSRotate object representing the rotate() value of the\nindividual transform property in CSS.", "parameters": { - "x": "A value for the x-axis of the CSSRotate object to be constructed.\nThis must either be a double integer or a CSSNumericValue.", - "y": "A value for the y-axis of the CSSRotate object to be constructed.\nThis must either be a double integer or a CSSNumericValue.", - "z": "A value for the z-axis of the CSSRotate object to be constructed.\nThis must either be a double integer or a CSSNumericValue.", + "x": "A value for the x-axis of the CSSRotate object to be constructed. This must either be a number (which is wrapped into a CSSUnitValue of unit: \"number\") or a CSSNumericValue.", + "y": "A value for the y-axis of the CSSRotate object to be constructed. This must either be a number (which is wrapped into a CSSUnitValue of unit: \"number\") or a CSSNumericValue.", + "z": "A value for the z-axis of the CSSRotate object to be constructed. This must either be a number (which is wrapped into a CSSUnitValue of unit: \"number\") or a CSSNumericValue.", "angle": "A value for the angle of the CSSRotate object to be constructed. This\nmust be a CSSNumericValue." }, "throws": { @@ -18059,7 +18374,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The cssText property of the CSSRule\ninterface returns the actual text of a CSSStyleSheet style-rule.\n

\n

Note:\nDo not confuse this property with element-style\nCSSStyleDeclaration.cssText.\n

\n

Be aware that this property can no longer be set directly, as it is now specified\nto be functionally modify-only, and silently so. In other words, attempting to\nset it does absolutely nothing, and doesn't even emit a warning or error.\nFurthermore, it has no settable sub-properties. Therefore, to modify it, use the\nstylesheet's cssRules[index] properties\n.selectorText and\n.style (or its sub-properties). See Using dynamic styling information for details." + "doc": "The cssText property of the CSSRule\ninterface returns the actual text of a CSSStyleSheet style-rule.\n

\n

Note:\nDo not confuse this property with element-style\nCSSStyleDeclaration.cssText.\n

\n

Be aware that this property used to be mutable but is now read-only. Attempting to\nset it does absolutely nothing, and doesn't even emit a warning or error.\nFurthermore, it has no settable sub-properties. Therefore, to modify it, use the\nstylesheet's cssRules[index] properties\n.selectorText and\n.style (or its sub-properties). See Using dynamic styling information for details." }, "cssrule.parentrule": { "url": "$MDN_URL$/web/api/cssrule/parentrule", @@ -18229,9 +18544,9 @@ }, "doc": "The CSSScale() constructor creates a new\nCSSScale object representing the scale() and scale3d() values of the\nindividual transform property in CSS.", "parameters": { - "x": "A value for the x-axis of the CSSScale object to be constructed. This\nmust either be a double integer or a CSSNumericValue.", - "y": "A value for the y-axis of the CSSScale object to be constructed. This\nmust either be a double integer or a CSSNumericValue.", - "z": "A value for the z-axis of the CSSScale object to be constructed. This\nmust either be a double integer or a CSSNumericValue. If a value is\npassed for the z-axis this is a 3d transform. The value of\nis2D will be set to false." + "x": "A value for the x-axis of the CSSScale object to be constructed. This must either be a number (which is wrapped into a CSSUnitValue of unit: \"number\") or a CSSNumericValue.", + "y": "A value for the y-axis of the CSSScale object to be constructed. This must either be a number (which is wrapped into a CSSUnitValue of unit: \"number\") or a CSSNumericValue.", + "z": "A value for the z-axis of the CSSScale object to be constructed. This must either be a number (which is wrapped into a CSSUnitValue of unit: \"number\") or a CSSNumericValue. If a value is passed, the value of is2D will be set to false." } }, "cssscale.x": { @@ -18578,7 +18893,8 @@ "cssstyledeclaration.cssfloat": { "url": "$MDN_URL$/web/api/cssstyledeclaration/cssfloat", "status": [ - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "1", @@ -18591,7 +18907,7 @@ "baseline": { "level": "NONE" }, - "doc": "The cssFloat property of the CSSStyleDeclaration interface returns the result of invoking CSSStyleDeclaration.getPropertyValue() with float as an argument.\n

When setting, it invokes CSSStyleDeclaration.setProperty() with float as the first argument, and the given value as the second argument. The given value must be a valid value for the float property." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The cssFloat property of the CSSStyleDeclaration interface returns the result of invoking CSSStyleDeclaration.getPropertyValue() with float as an argument.\n

When setting, it invokes CSSStyleDeclaration.setProperty() with float as the first argument, and the given value as the second argument. The given value must be a valid value for the float property." }, "cssstyledeclaration.csstext": { "url": "$MDN_URL$/web/api/cssstyledeclaration/csstext", @@ -18808,7 +19124,7 @@ "doc": "The\nCSSStyleDeclaration.setProperty() method interface sets\na new value for a property on a CSS style declaration object.", "parameters": { "propertyName": "A string representing the CSS property name (hyphen case) to be modified.", - "value": "A string containing the new property value. If not specified, treated\nas the empty string. A null value is treated the same as the empty string (\"\").\n

\n

Note: value must not contain \"!important\", that should be set using the priority parameter.\n

", + "value": "A string containing the new property value. If not specified, treated\nas the empty string. A null value is treated the same as the empty string (\"\").\n
\n

Note:\nvalue must not contain \"!important\", that should be set using the priority parameter.\n

", "priority": "A string allowing the CSS priority to be set to important. Only the values listed below are accepted:\n
    \n
  • \"important\" (case-insensitive) for setting the property as !important;
  • \n
  • \"\", undefined, or null for removing the !important flag if present.
  • \n
\n

Anything else causes the method to return early and no change to happen (unless value is empty, in which case the property is removed regardless of the priority value). false, for example, is not a valid priority value." }, "returns": "None (undefined).", @@ -18918,8 +19234,7 @@ "returns": "The index of the new rule.", "throws": { "IndexSizeError DOMException": "Thrown if index is greater than the number of child CSS rules.", - "HierarchyRequestError DOMException": "Thrown if, due to constraints specified by CSS, the new rule cannot be inserted into\nthe list at the (zero-index) index position given.", - "InvalidStateError DOMException": "Thrown if the new rule is an @namespace at-rule, and the list of child CSS rules contains anything other than @import at-rules and @namespace at-rules." + "HierarchyRequestError DOMException": "Thrown if rule cannot be inserted at the specified index due to some CSS constraint.

Thrown if the rule is a valid statement but not a nested statement." } }, "cssstylerule.selectortext": { @@ -19068,8 +19383,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The CSSStyleSheet() constructor creates a new CSSStyleSheet object which represents a single Stylesheet.\n

After constructing a stylesheet the CSSStyleSheet.replace(), CSSStyleSheet.replaceSync(), CSSStyleSheet.insertRule(), and CSSStyleSheet.deleteRule() methods can be used to modify the rules of the new stylesheet.\n

A stylesheet created using this method is referred to as a \"constructed stylesheet\".\nA constructed stylesheet can be shared between a document and its shadow DOM subtrees using ShadowRoot.adoptedStyleSheets and Document.adoptedStyleSheets.", "parameters": { @@ -19130,7 +19446,7 @@ "returns": "The newly inserted rule's index within the stylesheet's rule-list.", "throws": { "IndexSizeError DOMException": "Thrown if index > CSSRuleList.length.", - "HierarchyRequestError DOMException": "Thrown if rule cannot be inserted at index 0 due to some CSS constraint.

Thrown if trying to insert an @import at-rule after a style rule.", + "HierarchyRequestError DOMException": "Thrown if rule cannot be inserted at the specified index due to some CSS constraint; for instance: trying to insert an @import at-rule after a style rule.", "SyntaxError DOMException": "Thrown if more than one rule is given in the rule parameter.", "InvalidStateError DOMException": "Thrown if rule is @namespace and the rule-list has more than just @import at-rules and/or @namespace at-rules." } @@ -19195,8 +19511,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The replace() method of the CSSStyleSheet interface asynchronously replaces the content of the stylesheet with the content passed into it. The method returns a promise that resolves with the CSSStyleSheet object.\n

The replace() and CSSStyleSheet.replaceSync() methods can only be used on a stylesheet created with the CSSStyleSheet() constructor.", "parameters": { @@ -19223,8 +19540,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The replaceSync() method of the CSSStyleSheet interface synchronously replaces the content of the stylesheet with the content passed into it.\n

The replaceSync() and CSSStyleSheet.replace() methods can only be used on a stylesheet created with the CSSStyleSheet() constructor.", "parameters": { @@ -19414,7 +19732,7 @@ "level": "NONE" }, "doc": "The toString() method of the CSSTransformComponent interface is a stringifier returning a CSS Transforms function.", - "returns": "A string in the form of a CSS transform function.\n

This will use the value of is2D to return either a 2D or 3D transform. For example if the component represents CSSRotate and is2D is false then the string returned will be in the form of the CSS transformation rotate3D() function. If true the string returned will be in the form of the 2-dimensional rotate3D() function." + "returns": "A string in the form of a CSS transform function.\n

This will use the value of is2D to return either a 2D or 3D transform. For example if the component represents CSSRotate and is2D is false then the string returned will be in the form of the CSS transformation rotate3d() function. If true the string returned will be in the form of the 2-dimensional rotate() function." }, "csstransformvalue": { "url": "$MDN_URL$/web/api/csstransformvalue", @@ -20283,7 +20601,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The CustomEvent interface represents events initialized by an application for any purpose.\n

\n

Note:\nIf used to attempt to communicate between a web extension content script and a web page script, a non-string detail property throws with \"Permission denied to access property\" in Firefox. To avoid this issue clone the object. See Share objects with page scripts for more information.\n

" + "doc": "

Note: This feature is available in Web Workers.

\n

The CustomEvent interface can be used to attach custom data to an event generated by an application.\n

As an alternative to CustomEvent, you can subclass the Event interface to add custom data and behavior.\n

\n

Note:\nIf used to attempt to communicate between a web extension content script and a web page script, a non-string detail property throws with \"Permission denied to access property\" in Firefox. To avoid this issue clone the object. See Share objects with page scripts for more information.\n

" }, "customevent.customevent": { "url": "$MDN_URL$/web/api/customevent/customevent", @@ -20354,13 +20672,14 @@ "Safari": "5", "SafariIOS": "5" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Note: This feature is available in Web Workers.

\n

The CustomEvent.initCustomEvent() method initializes a CustomEvent object.\nIf the event has already been dispatched, this method does nothing.\n

Events initialized in this way must have been created with the Document.createEvent() method.\nThis method must be called to set the event before it is dispatched using EventTarget.dispatchEvent().\nOnce dispatched, it doesn't do anything anymore.\n

\n

Note: Do not use this method anymore, as it is deprecated.\n

Rather than using the feature, instead use specific event constructors, like CustomEvent().\nThe page on Creating and triggering events gives more information about the way to use those.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Note: This feature is available in Web Workers.

\n

The CustomEvent.initCustomEvent() method initializes a CustomEvent object.\nIf the event has already been dispatched, this method does nothing.\n

Events initialized in this way must have been created with the Document.createEvent() method.\nThis method must be called to set the event before it is dispatched using EventTarget.dispatchEvent().\nOnce dispatched, it doesn't do anything anymore.\n

\n

Note:\nDo not use this method anymore, as it is deprecated.\n

Rather than using the feature, instead use specific event constructors, like CustomEvent().\nThe section on Creating and dispatching events gives more information about the way to use those.\n

", "parameters": { "type": "A string containing the name of the event.", "canBubble": "A boolean value indicating whether the event bubbles up through the DOM\nor not.", "cancelable": "A boolean value indicating whether the event is cancelable.", "detail": "Any data that will be available to the handler through the CustomEvent.detail property." - } + }, + "returns": "None (undefined)." }, "customstateset": { "url": "$MDN_URL$/web/api/customstateset", @@ -20624,7 +20943,7 @@ "Firefox": "3.5", "FirefoxAndroid": "4" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The DataTransfer.addElement() method sets the drag source\nto the given element. This element will be the element to which drag and\ndragend events are fired, and not the default target (the node that was\ndragged).\n

\n

Note:\nThis method is Firefox-specific.\n

", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The DataTransfer.addElement() method sets the drag source\nto the given element. This element will be the element to which drag and\ndragend events are fired, and not the default target (the node that was\ndragged).\n

\n

Note:\nThis method is Firefox-specific.\n

", "parameters": { "element": "The Element to set as the drag source." }, @@ -20742,7 +21061,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The files read-only property of DataTransfer objects is a list of the files in the drag operation. If the operation includes no files, the list is empty.\n

This feature can be used to drag files from a user's desktop to the browser.\n

\n

Note:\nThe files property of DataTransfer objects can only be accessed from within the drop event. For all other events, the files property will be empty — because its underlying data store will be in a protected mode.\n

" + "doc": "The files read-only property of DataTransfer objects is a list of the files in the drag operation. If the operation includes no files, the list is empty.\n

This feature can be used to drag files from a user's desktop to the browser.\n

\n

Note:\nThe files property of DataTransfer objects can only be accessed from within the drop and paste events. For all other events, the files property will be empty — because its underlying data store will be in a protected mode.\n

" }, "datatransfer.getdata": { "url": "$MDN_URL$/web/api/datatransfer/getdata", @@ -21283,8 +21602,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is only available in Dedicated Web Workers.

\n

The cancelAnimationFrame() method of the DedicatedWorkerGlobalScope interface cancels an animation frame request previously scheduled through a call to requestAnimationFrame().\n

Calling the cancelAnimationFrame() method requires the current worker to have an associated owner window. That means that the current worker must be created by window or by a dedicated worker that also has an associated owner window.", "parameters": { @@ -21387,8 +21707,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is only available in Dedicated Web Workers.

\n

The requestAnimationFrame() method of the DedicatedWorkerGlobalScope interface tells the browser you wish to perform an animation frame request and call a user-supplied callback function before the next repaint.\n

The frequency of calls to the callback function will generally match the display refresh rate. The most common refresh rate is 60 Hz, (60 cycles/frames per second), though 75 Hz, 120 Hz, and 144 Hz are also widely used. requestAnimationFrame() calls are paused in most browsers when running in background tabs or hidden <iframe>s, to improve performance and battery life.\n

A call to the requestAnimationFrame() method schedules only one single call to the callback function. If you want to animate another frame, your callback function must call requestAnimationFrame() again.\n

\n

Warning:\nBe sure always to use the first argument (or some other method for getting the current time) to calculate how much the animation will progress in a frame — otherwise, the animation will run faster on high refresh-rate screens. For ways to do that, see the examples below.\n

\n

Calling the requestAnimationFrame() method requires the current worker to have an associated owner window. That means that the current worker must be created by window or by a dedicated worker that also has an associated owner window.", "parameters": { @@ -21503,7 +21824,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The expectedImprovement read-only property of the DelegatedInkTrailPresenter interface returns a value, in milliseconds, indicating the latency improvement that can be expected using this presenter." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The expectedImprovement read-only property of the DelegatedInkTrailPresenter interface returns a value, in milliseconds, indicating the latency improvement that can be expected using this presenter." }, "delegatedinktrailpresenter.presentationarea": { "url": "$MDN_URL$/web/api/delegatedinktrailpresenter/presentationarea", @@ -21745,7 +22066,7 @@ "level": "LOW", "lowDate": "2023-09-18" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The accelerationIncludingGravity read-only property of the DeviceMotionEvent interface returns the\namount of acceleration recorded by the device, in meters per second squared (m/s²). Unlike DeviceMotionEvent.acceleration\nwhich compensates for the influence of gravity, its value is the sum of the acceleration\nof the device as induced by the user and an acceleration equal and opposite to that\ncaused by gravity. In other words, it measures the\ng-force. In practice, this value represents\nthe raw data measured by an accelerometer.\n

This value is not typically as useful as DeviceMotionEvent.acceleration,\nbut may be the only value available on devices that aren't able to remove gravity from\nthe acceleration data, such as on devices that don't have a gyroscope.\n

\n

Note: accelerationIncludingGravity's name can be misleading. This property represents acceleration including the effects of gravity. For example, if a device is lying flat on a horizontal surface with the screen pointing up, gravity would be -9.8 along the Z axis, while acceleration.z would be 0 and accelerationIncludingGravity.z would be 9.8. Similarly, if a device is in free fall with its screen horizontal and pointing up, gravity would be -9.8 along the Z axis, while acceleration.z would be -9.8 and accelerationIncludingGravity.z would be 0.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The accelerationIncludingGravity read-only property of the DeviceMotionEvent interface returns the\namount of acceleration recorded by the device, in meters per second squared (m/s²). Unlike DeviceMotionEvent.acceleration\nwhich compensates for the influence of gravity, its value is the sum of the acceleration\nof the device as induced by the user and an acceleration equal and opposite to that\ncaused by gravity. In other words, it measures the\ng-force. In practice, this value represents\nthe raw data measured by an accelerometer.\n

This value is not typically as useful as DeviceMotionEvent.acceleration,\nbut may be the only value available on devices that aren't able to remove gravity from\nthe acceleration data, such as on devices that don't have a gyroscope.\n

\n

Note:\naccelerationIncludingGravity's name can be misleading. This property represents acceleration including the effects of gravity. For example, if a device is lying flat on a horizontal surface with the screen pointing up, gravity would be -9.8 along the Z axis, while acceleration.z would be 0 and accelerationIncludingGravity.z would be 9.8. Similarly, if a device is in free fall with its screen horizontal and pointing up, gravity would be -9.8 along the Z axis, while acceleration.z would be -9.8 and accelerationIncludingGravity.z would be 0.\n

" }, "devicemotionevent.devicemotionevent": { "url": "$MDN_URL$/web/api/devicemotionevent/devicemotionevent", @@ -22130,7 +22451,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The DirectoryEntrySync interface represents a directory in a file system. It includes methods for creating, reading, looking up, and recursively removing files in a directory.\n

\n

Warning:\nThis interface is deprecated and is no more on the standard track.\nDo not use it anymore. Use the File and Directory Entries API instead.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The DirectoryEntrySync interface represents a directory in a file system. It includes methods for creating, reading, looking up, and recursively removing files in a directory.\n

\n

Warning:\nThis interface is deprecated and is no more on the standard track.\nDo not use it anymore. Use the File and Directory Entries API instead.\n

" }, "directoryreadersync": { "url": "$MDN_URL$/web/api/directoryreadersync", @@ -22138,7 +22459,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The DirectoryReaderSync interface lets you read the entries in a directory.\n

\n

Warning:\nThis interface is deprecated and is no more on the standard track.\nDo not use it anymore. Use the File and Directory Entries API instead.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The DirectoryReaderSync interface lets you read the entries in a directory.\n

\n

Warning:\nThis interface is deprecated and is no more on the standard track.\nDo not use it anymore. Use the File and Directory Entries API instead.\n

" }, "document": { "url": "$MDN_URL$/web/api/document", @@ -22200,8 +22521,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The adoptedStyleSheets property of the Document interface is used for setting an array of constructed stylesheets to be used by the document.\n
\n

Note:\nA constructed stylesheet is a stylesheet created programmatically using the CSSStyleSheet() constructor (as compared to one created by a user-agent when importing a stylesheet from a script, imported using <style> and @import, or linked to via <link>).\n

\n

The same constructed stylesheets can also be shared with one or more ShadowRoot instances using the ShadowRoot.adoptedStyleSheets property.\nChanging an adopted stylesheet will affect all the objects that adopt it.\n

Stylesheets in the property are evaluated along with the document's other stylesheets using the CSS cascade algorithm.\nWhere the resolution of rules considers stylesheet order, adoptedStyleSheets are assumed to be ordered after those in Document.styleSheets.\n

Only stylesheets created using the CSSStyleSheet() constructor within the context of the current Document may be adopted.", "throws": { @@ -22232,7 +22554,7 @@ "parameters": { "externalNode": "The node from another document to be adopted." }, - "returns": "The copied importedNode in the scope of the importing document.\n

After calling this method, importedNode and\nexternalNode are the same object.\n

\n

Note: importedNode's\nNode.parentNode is null, since it has not yet been\ninserted into the document tree!\n

" + "returns": "The copied importedNode in the scope of the importing document.\n

After calling this method, importedNode and\nexternalNode are the same object.\n

\n

Note:\nimportedNode's\nNode.parentNode is null, since it has not yet been\ninserted into the document tree!\n

" }, "document.alinkcolor": { "url": "$MDN_URL$/web/api/document/alinkcolor", @@ -22335,6 +22657,19 @@ }, "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The applets property of the Document returns an empty HTMLCollection. This property is kept only for compatibility reasons; in older versions of browsers, it returned a list of the applets within a document.\n

\n

Note:\nSupport for the <applet> element has been removed by all browsers. Therefore, calling document.applets always\nreturns an empty collection.\n

" }, + "document.arianotify": { + "url": "$MDN_URL$/web/api/document/arianotify", + "status": [ + "Experimental" + ], + "compatibility": {}, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ariaNotify() method of the Document interface specifies that a given string of text should be announced by a screen reader if available and activated.", + "parameters": { + "announcement": "A string specifying the text to be announced.", + "options": "An options object containing the following properties:\n

\n
priority
\n
\n

An enumerated value specifying the priority of the announcement. Possible values are:\n

\n
normal
\n
\n

The announcement has normal priority. It will be spoken after any announcement that a screen reader is currently making.\n

\n
high
\n
\n

The announcement has high priority. It will be spoken immediately, interrupting any announcement that a screen reader is currently making.\n

\n
\n
\n
" + }, + "returns": "None (undefined)." + }, "document.bgcolor": { "url": "$MDN_URL$/web/api/document/bgcolor", "status": [ @@ -22386,7 +22721,10 @@ "Edge": "126", "Opera": "112" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Warning:\nThis feature is currently opposed by two browser vendors. See the Standards positions section below for details of opposition.\n

\n
\n

Note:\nAn Enrollment process is required to use this feature in your applications.\n

\n

The browsingTopics() method of the Document interface returns a promise that fulfills with an array of objects representing the top topics for the user, one from each of the last three epochs. These topics could then be returned to the ad tech platform in a subsequent fetch request. By default, the method also causes the browser to record the current page visit as observed by the caller, so the page's hostname can later be used in topics calculation.\n

See Using the Topics API for more details.\n

\n

Note: browsingTopics() does not rely on HTTP headers to send topics and mark topics as observed like the other Topics API enabling features, but it is somewhat less performant. You are advised to use one of the HTTP header-using features, falling back to browsingTopics() only in situations where the headers cannot be modified.\n

", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Warning:\nThis feature is currently opposed by two browser vendors. See the Standards positions section below for details of opposition.\n

\n
\n

Note:\nAn Enrollment process is required to use this feature in your applications.\n

\n

The browsingTopics() method of the Document interface returns a promise that fulfills with an array of objects representing the top topics for the user, one from each of the last three epochs. These topics could then be returned to the ad tech platform in a subsequent fetch request. By default, the method also causes the browser to record the current page visit as observed by the caller, so the page's hostname can later be used in topics calculation.\n

See Using the Topics API for more details.\n

\n

Note:\nbrowsingTopics() does not rely on HTTP headers to send topics and mark topics as observed like the other Topics API enabling features, but it is somewhat less performant. You are advised to use one of the HTTP header-using features, falling back to browsingTopics() only in situations where the headers cannot be modified.\n

", "parameters": { "options": "An options object, which can contain the following properties:\n
\n
skipObservation
\n
\n

A boolean value that, if set to true, causes the browser to not observe topics when browsingTopics() is invoked. The default is false, which causes topics to be observed.\n

\n
" }, @@ -22429,7 +22767,7 @@ "Safari": "5", "SafariIOS": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The caretRangeFromPoint() method of the\nDocument interface returns a Range object for the document\nfragment under the specified coordinates.\n

This method is the WebKit-proprietary implementation of the Document.caretPositionFromPoint method.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The caretRangeFromPoint() method of the\nDocument interface returns a Range object for the document\nfragment under the specified coordinates.\n

This method is the WebKit-proprietary implementation of the Document.caretPositionFromPoint method.", "parameters": { "x": "A horizontal position within the current viewport.", "y": "A vertical position within the current viewport." @@ -22603,7 +22941,7 @@ "lowDate": "2019-07-09", "highDate": "2022-01-09" }, - "doc": "The Document property cookie lets you read and write cookies associated with the document.\nIt serves as a getter and setter for the actual values of the cookies." + "doc": "The Document property cookie lets you read and write cookies associated with the document.\nIt serves as a getter and setter for the actual values of the cookies.\n

\n

Note:\nThe document.cookie can be a source of performance issues because it is a synchronous API and blocks the main thread when reading cookies across processes or performing I/O operations. Developers should if possible use the asynchronous Cookie Store API to manage cookies.\n

" }, "document.createattribute": { "url": "$MDN_URL$/web/api/document/createattribute", @@ -22631,7 +22969,7 @@ }, "returns": "A Attr node.", "throws": { - "InvalidCharacterError DOMException": "Thrown if the name value is not a valid XML name; for example, it starts with a number, hyphen, or period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods." + "InvalidCharacterError DOMException": "Thrown if the name value is not a valid XML name; for example, it starts with a number, hyphen, or period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods." } }, "document.createattributens": { @@ -22662,7 +23000,7 @@ "returns": "The new Attr node.", "throws": { "NamespaceError DOMException": "Thrown if the namespaceURI value is not a valid namespace URI.", - "InvalidCharacterError DOMException": "Thrown if the qualifiedName value is not a valid XML name; for example, it starts with a number, hyphen, or period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods." + "InvalidCharacterError DOMException": "Thrown if the qualifiedName value is not a valid XML name; for example, it starts with a number, hyphen, or period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods." } }, "document.createcdatasection": { @@ -22791,12 +23129,12 @@ "parameters": { "namespaceURI": "A string that specifies the namespaceURI to associate with the element. Some important namespace URIs are:\n
\n
HTML
\n
\n

http://www.w3.org/1999/xhtml\n

\n
SVG
\n
\n

http://www.w3.org/2000/svg\n

\n
MathML
\n
\n

http://www.w3.org/1998/Math/MathML\n

\n
", "qualifiedName": "A string that specifies the type of element to be created.\nThe nodeName property of the created element is initialized with the value of qualifiedName.", - "options": "An optional ElementCreationOptions object containing a single property named is, whose value is the tag name for a custom element previously defined using customElements.define().\nFor backwards compatibility with previous versions of the Custom Elements specification,\nsome browsers will allow you to pass a string here instead of an object, where the string's value is the custom element's tag name.\nSee Extending native HTML elements for more information on how to use this parameter.\n

The new element will be given an is attribute whose value is the custom element's tag name. Custom elements are an experimental feature only available in some browsers." + "options": "An optional ElementCreationOptions object containing a single property named is, whose value is the tag name for a custom element previously defined using customElements.define().\nFor backwards compatibility, some browsers allow you to pass a string here instead of an object, where the string's value is the custom element's tag name.\nSee Extending native HTML elements for more information on how to use this parameter.\n

The new element will be given an is attribute whose value is the custom element's tag name. Custom elements are an experimental feature only available in some browsers." }, "returns": "The new Element.", "throws": { "NamespaceError DOMException": "Thrown if the namespaceURI value is not a valid namespace URI.", - "InvalidCharacterError DOMException": "Thrown if the qualifiedName value is not a valid XML name; for example, it starts with a number, hyphen, or period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods." + "InvalidCharacterError DOMException": "Thrown if the qualifiedName value is not a valid XML name; for example, it starts with a number, hyphen, or period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods." } }, "document.createevent": { @@ -22871,7 +23209,7 @@ "doc": "The Document.createNodeIterator() method returns a new NodeIterator object.", "parameters": { "root": "The root node at which to begin the NodeIterator's traversal.", - "whatToShow": "An optional unsigned long representing a bitmask created by\ncombining the constant properties of\nNodeFilter.\nIt is a convenient way of filtering for certain types of node. It defaults to\n0xFFFFFFFF representing the SHOW_ALL constant.\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ConstantNumerical valueDescription
NodeFilter.SHOW_ALL4294967295 (that is the max value of unsigned long)Shows all nodes.
NodeFilter.SHOW_ATTRIBUTE2Shows attribute Attr nodes. This is meaningful only when creating a TreeWalker with an Attr node as its root. In this case, it means that the attribute node will appear in the first position of the iteration or traversal. Since attributes are never children of other nodes, they do not appear when traversing over the document tree.
NodeFilter.SHOW_CDATA_SECTION8Shows CDATASection nodes.
NodeFilter.SHOW_COMMENT128Shows Comment nodes.
NodeFilter.SHOW_DOCUMENT256Shows Document nodes.
NodeFilter.SHOW_DOCUMENT_FRAGMENT1024Shows DocumentFragment nodes.
NodeFilter.SHOW_DOCUMENT_TYPE512Shows DocumentType nodes.
NodeFilter.SHOW_ELEMENT1Shows Element nodes.
NodeFilter.SHOW_ENTITY 32Legacy, no more usable.
NodeFilter.SHOW_ENTITY_REFERENCE 16Legacy, no more usable.
NodeFilter.SHOW_NOTATION 2048Legacy, no more usable.
NodeFilter.SHOW_PROCESSING_INSTRUCTION64Shows ProcessingInstruction nodes.
NodeFilter.SHOW_TEXT4Shows Text nodes.
", + "whatToShow": "An optional unsigned long representing a bitmask created by\ncombining the constant properties of NodeFilter.\nIt is a convenient way of filtering for certain types of node. It defaults to\n0xFFFFFFFF representing the SHOW_ALL constant.\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ConstantNumerical valueDescription
NodeFilter.SHOW_ALL4294967295 (that is the max value of unsigned long)Shows all nodes.
NodeFilter.SHOW_ATTRIBUTE2Shows attribute Attr nodes. This is meaningful only when creating a TreeWalker with an Attr node as its root. In this case, it means that the attribute node will appear in the first position of the iteration or traversal. Since attributes are never children of other nodes, they do not appear when traversing over the document tree.
NodeFilter.SHOW_CDATA_SECTION8Shows CDATASection nodes.
NodeFilter.SHOW_COMMENT128Shows Comment nodes.
NodeFilter.SHOW_DOCUMENT256Shows Document nodes.
NodeFilter.SHOW_DOCUMENT_FRAGMENT1024Shows DocumentFragment nodes.
NodeFilter.SHOW_DOCUMENT_TYPE512Shows DocumentType nodes.
NodeFilter.SHOW_ELEMENT1Shows Element nodes.
NodeFilter.SHOW_ENTITY 32Legacy, no more usable.
NodeFilter.SHOW_ENTITY_REFERENCE 16Legacy, no more usable.
NodeFilter.SHOW_NOTATION 2048Legacy, no more usable.
NodeFilter.SHOW_PROCESSING_INSTRUCTION64Shows ProcessingInstruction nodes.
NodeFilter.SHOW_TEXT4Shows Text nodes.
", "filter": "A callback function or an object with an acceptNode() method. The function or method will be called for each node in the subtree based at root which is accepted as included by the whatToShow flag to determine whether or not to include it in the list of iterable nodes. The method should return one of NodeFilter.FILTER_ACCEPT, NodeFilter.FILTER_REJECT, or NodeFilter.FILTER_SKIP. See the Example.\n

For createNodeIterator, the values NodeFilter.FILTER_REJECT and NodeFilter.FILTER_SKIP are equivalent. This node will not be included in the list of iterable nodes, but its children will continue to be iterated over." }, "returns": "A new NodeIterator object." @@ -22926,7 +23264,7 @@ }, "returns": "None (undefined).", "throws": { - "InvalidCharacterError DOMException": "Thrown if either of the following are true:\n

    \n
  • The target value is not a valid XML name; for example, it starts with a number, hyphen, or period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods.
  • \n
  • The closing processing instruction sequence (?>) is part of the data value.
  • \n
" + "InvalidCharacterError DOMException": "Thrown if either of the following are true:\n
    \n
  • The target value is not a valid XML name; for example, it starts with a number, hyphen, or period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods.
  • \n
  • The closing processing instruction sequence (?>) is part of the data value.
  • \n
" } }, "document.createrange": { @@ -22987,7 +23325,7 @@ "FirefoxAndroid": "6", "SafariIOS": "3" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Document.createTouch() method creates and returns a new Touch object.\n

\n

Note:\nUse the TouchEvent() constructor.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Document.createTouch() method creates and returns a new Touch object.\n

\n

Note:\nUse the TouchEvent() constructor.\n

", "parameters": { "view": "The window in which the touch occurred.", "target": "The EventTarget for the touch.", @@ -23014,9 +23352,9 @@ "FirefoxAndroid": "6", "SafariIOS": "3" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Document.createTouchList() method creates and returns a new TouchList object.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Document.createTouchList() method creates and returns a new TouchList object.", "parameters": { - "touch1, …, touchN": "Zero or more Touch objects. Note: Firefox also\naccepts an array of\nTouch objects." + "touch1, …, touchN": "Zero or more Touch objects. Firefox also\naccepts an array of\nTouch objects." }, "returns": "

\n
list
\n
\n

A TouchList object containing the Touch objects\nspecified by the touches parameter.\n

\n
" }, @@ -23100,18 +23438,13 @@ "compatibility": { "Chrome": "36", "ChromeAndroid": "36", - "Edge": "12", + "Edge": "", "Firefox": "69", "FirefoxAndroid": "79", "Opera": "9", "Safari": "10.1", "SafariIOS": "10.3" }, - "baseline": { - "level": "HIGH", - "lowDate": "2020-07-28", - "highDate": "2023-01-28" - }, "doc": "document.designMode controls whether the entire document\nis editable. Valid values are \"on\" and \"off\". According to the\nspecification, this property is meant to default to \"off\". Firefox follows\nthis standard. The earlier versions of Chrome and IE default to \"inherit\".\nStarting in Chrome 43, the default is \"off\" and \"inherit\" is\nno longer supported. In IE6-10, the value is capitalized." }, "document.dir": { @@ -23242,7 +23575,7 @@ }, "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The domain property of the Document\ninterface gets/sets the domain portion of the origin of the current\ndocument, as used by the same-origin policy.", "throws": { - "SecurityError DOMException": "Use of this feature was blocked by a Permissions Policy." + "SecurityError DOMException": "The document is forbidden from setting its domain, for example it is sandboxed or has an opaque origin. See Failures section for details." } }, "document.elementfrompoint": { @@ -23330,7 +23663,7 @@ "Firefox": "3", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Enables the style sheets matching the specified name in the current style sheet set,\nand disables all other style sheets (except those without a title, which are always\nenabled).", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Enables the style sheets matching the specified name in the current style sheet set,\nand disables all other style sheets (except those without a title, which are always\nenabled).", "parameters": { "name": "The name of the style sheets to enable. All style sheets with a title that match\nthis name will be enabled, while all others that have a title will be disabled.\nSpecify an empty string for the name parameter to disable all alternate and\npreferred style sheets (but not the persistent style sheets; that is, those with no\ntitle attribute)." }, @@ -23382,13 +23715,13 @@ "Safari": "1.3", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The execCommand method implements multiple different commands. Some of them provide access to the clipboard, while others are for editing form inputs, contenteditable elements or entire documents (when switched to design mode).\n

To access the clipboard, the newer Clipboard API is recommended over execCommand(). However, there is no replacement for the editing commands: unlike direct DOM manipulation, modifications performed by execCommand() preserve the undo buffer (edit history).\n

Most commands affect the document's selection. For example, some commands (bold, italics, etc.) format the currently selected text, while others delete the selection, insert new elements (replacing the selection) or affect an entire line (indenting). Only the currently active editable element can be modified, but some commands (e.g., copy) can work without an editable element.\n

\n

Note:\nModifications performed by execCommand() may or may not trigger beforeinput and input events, depending on the browser and configuration. If triggered, the handlers for the events will run before execCommand() returns. Authors need to be careful about such recursive calls, especially if they call execCommand() in response to these events. From Firefox 82, nested execCommand() calls will always fail, see bug 1634262.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Note:\nAlthough the execCommand() method is deprecated, there are still some valid use cases that do not yet have viable alternatives. For example, unlike direct DOM manipulation, modifications performed by execCommand() preserve the undo buffer (edit history). For these use cases, you can still use this method, but test to ensure cross-browser compatibility, such as by using document.queryCommandSupported().\n

\n

The execCommand method implements multiple different commands. Some of them provide access to the clipboard, while others are for editing form inputs, contenteditable elements or entire documents (when switched to design mode).\n

To access the clipboard, the newer Clipboard API is recommended over execCommand().\n

Most commands affect the document's selection. For example, some commands (bold, italics, etc.) format the currently selected text, while others delete the selection, insert new elements (replacing the selection) or affect an entire line (indenting). Only the currently active editable element can be modified, but some commands (e.g., copy) can work without an editable element.\n

\n

Note:\nModifications performed by execCommand() may or may not trigger beforeinput and input events, depending on the browser and configuration. If triggered, the handlers for the events will run before execCommand() returns. Authors need to be careful about such recursive calls, especially if they call execCommand() in response to these events. From Firefox 82, nested execCommand() calls will always fail, see bug 1634262.\n

", "parameters": { - "aCommandName": "A string specifying the name of the command to execute. The following commands are specified:\n
\n
backColor
\n
\n

Changes the document background color. In styleWithCss mode, it affects the background color of the containing block instead. This requires a <color> value string to be passed in as a value argument.\n

\n
bold
\n
\n

Toggles bold on/off for the selection or at the insertion point.\n

\n
contentReadOnly
\n
\n

Makes the content document either read-only or editable. This requires a boolean true/false as the value argument.\n

\n
copy
\n
\n

Copies the current selection to the clipboard. Conditions of having this behavior enabled vary from one browser to another, and have evolved over time. Check the compatibility table to determine if you can use it in your case.\n

\n
createLink
\n
\n

Creates an hyperlink from the selection, but only if there is a selection. Requires a URI string as a value argument for the hyperlink's href. The URI must contain at least a single character, which may be whitespace.\n

\n
cut
\n
\n

Removes the current selection and copies it to the clipboard. When this behavior is enabled varies between browsers, and its conditions have evolved over time. Check the compatibility table for usage details.\n

\n
decreaseFontSize
\n
\n

Adds a <small> tag around the selection or at the insertion point.\n

\n
defaultParagraphSeparator
\n
\n

Changes the paragraph separator used when new paragraphs are created in editable text regions.\n

\n
delete
\n
\n

Deletes the current selection.\n

\n
enableAbsolutePositionEditor
\n
\n

Enables or disables the grabber that allows absolutely-positioned elements to be moved around. The grabber is disabled by default since Firefox 64 (Firefox bug 1490641).\n

\n
enableInlineTableEditing
\n
\n

Enables or disables the table row/column insertion and deletion controls. The controls are disabled by default since Firefox 64 (Firefox bug 1490641).\n

\n
enableObjectResizing
\n
\n

Enables or disables the resize handles on images, tables, and absolutely-positioned elements and other resizable objects. The handles are disabled by default since Firefox 64 (Firefox bug 1490641).\n

\n
fontName
\n
\n

Changes the font name for the selection or at the insertion point. This requires a font name string (like \"Arial\") as a value argument.\n

\n
fontSize
\n
\n

Changes the font size for the selection or at the insertion point. This requires an integer from 1 - 7 as a value argument.\n

\n
foreColor
\n
\n

Changes a font color for the selection or at the insertion point. This requires a hexadecimal color value string as a value argument.\n

\n
formatBlock
\n
\n

Adds an HTML block-level element around the line containing the current selection, replacing the block element containing the line if one exists (in Firefox, <blockquote> is the exception — it will wrap any containing block element). Requires a tag-name string as a value argument. Virtually all block-level elements can be used. (Legacy Edge only supports heading tags H1 – H6, ADDRESS, and PRE, which must be wrapped in angle brackets, such as \"<H1>\".)\n

\n
forwardDelete
\n
\n

Deletes the character ahead of the cursor's position, identical to hitting the Delete key on a Windows keyboard.\n

\n
heading
\n
\n

Adds a heading element around a selection or insertion point line. Requires the tag-name string as a value argument (i.e., \"H1\", \"H6\"). (Not supported by Safari.)\n

\n
highlightColor
\n
\n

Changes the background color for the selection or at the insertion point. Requires a color value string as a value argument. useCSS must be true for this to function.\n

\n
increaseFontSize
\n
\n

Adds a <big> tag around the selection or at the insertion point.\n

\n
indent
\n
\n

Indents the line containing the selection or insertion point. In Firefox, if the selection spans multiple lines at different levels of indentation, only the least indented lines in the selection will be indented.\n

\n
insertBrOnReturn
\n
\n

Controls whether the Enter key inserts a <br> element, or splits the current block element into two.\n

\n
insertHorizontalRule
\n
\n

Inserts a <hr> element at the insertion point, or replaces the selection with it.\n

\n
insertHTML
\n
\n

Inserts an HTML string at the insertion point (deletes selection). Requires a valid HTML string as a value argument.\n

\n
insertImage
\n
\n

Inserts an image at the insertion point (deletes selection). Requires a URL string for the image's src as a value argument. The requirements for this string are the same as createLink.\n

\n
insertOrderedList
\n
\n

Creates a numbered ordered list for the selection or at the insertion point.\n

\n
insertUnorderedList
\n
\n

Creates a bulleted unordered list for the selection or at the insertion point.\n

\n
insertParagraph
\n
\n

Inserts a paragraph around the selection or the current line.\n

\n
insertText
\n
\n

Inserts the given plain text at the insertion point (deletes selection).\n

\n
italic
\n
\n

Toggles italics on/off for the selection or at the insertion point.\n

\n
justifyCenter
\n
\n

Centers the selection or insertion point.\n

\n
justifyFull
\n
\n

Justifies the selection or insertion point.\n

\n
justifyLeft
\n
\n

Justifies the selection or insertion point to the left.\n

\n
justifyRight
\n
\n

Right-justifies the selection or the insertion point.\n

\n
outdent
\n
\n

Outdents the line containing the selection or insertion point.\n

\n
paste
\n
\n

Pastes the clipboard contents at the insertion point (replaces current selection). Disabled for web content.\n

\n
redo
\n
\n

Redoes the previous undo command.\n

\n
removeFormat
\n
\n

Removes all formatting from the current selection.\n

\n
selectAll
\n
\n

Selects all of the content of the editable region.\n

\n
strikeThrough
\n
\n

Toggles strikethrough on/off for the selection or at the insertion point.\n

\n
subscript
\n
\n

Toggles subscript on/off for the selection or at the insertion point.\n

\n
superscript
\n
\n

Toggles superscript on/off for the selection or at the insertion point.\n

\n
underline
\n
\n

Toggles underline on/off for the selection or at the insertion point.\n

\n
undo
\n
\n

Undoes the last executed command.\n

\n
unlink
\n
\n

Removes the anchor element from a selected hyperlink.\n

\n
useCSS
\n
\n

Toggles the use of HTML tags or CSS for the generated markup. Requires a boolean true/false as a value argument.\n

\n

Note:\nThis argument is logically backwards (i.e., use false to use CSS,\ntrue to use HTML). This has been deprecated in favor of styleWithCSS.\n

\n
\n
styleWithCSS
\n
\n

Replaces the useCSS command. true modifies/generates style attributes in markup, false generates presentational elements.\n

\n
AutoUrlDetect
\n
\n

Changes the browser auto-link behavior.\n

\n
", - "aShowDefaultUI": "A boolean value indicating whether the default user interface should be shown. This is not implemented in Mozilla.", - "aValueArgument": "For commands which require an input argument, is a string providing that information. For example, insertImage requires the URL of the image to insert. Specify null if no argument is needed." + "commandName": "A string specifying the name of the command to execute. The following commands are specified:\n
\n
backColor
\n
\n

Changes the document background color. In styleWithCss mode, it affects the background color of the containing block instead. This requires a <color> value string to be passed in as a value argument.\n

\n
bold
\n
\n

Toggles bold on/off for the selection or at the insertion point.\n

\n
contentReadOnly
\n
\n

Makes the content document either read-only or editable. This requires a boolean true/false as the value argument.\n

\n
copy
\n
\n

Copies the current selection to the clipboard. Conditions of having this behavior enabled vary from one browser to another, and have evolved over time. Check the compatibility table to determine if you can use it in your case.\n

\n
createLink
\n
\n

Creates an hyperlink from the selection, but only if there is a selection. Requires a URI string as a value argument for the hyperlink's href. The URI must contain at least a single character, which may be whitespace.\n

\n
cut
\n
\n

Removes the current selection and copies it to the clipboard. When this behavior is enabled varies between browsers, and its conditions have evolved over time. Check the compatibility table for usage details.\n

\n
decreaseFontSize
\n
\n

Adds a <small> tag around the selection or at the insertion point.\n

\n
defaultParagraphSeparator
\n
\n

Changes the paragraph separator used when new paragraphs are created in editable text regions.\n

\n
delete
\n
\n

Deletes the current selection.\n

\n
enableAbsolutePositionEditor
\n
\n

Enables or disables the grabber that allows absolutely-positioned elements to be moved around. The grabber is disabled by default since Firefox 64 (Firefox bug 1490641).\n

\n
enableInlineTableEditing
\n
\n

Enables or disables the table row/column insertion and deletion controls. The controls are disabled by default since Firefox 64 (Firefox bug 1490641).\n

\n
enableObjectResizing
\n
\n

Enables or disables the resize handles on images, tables, and absolutely-positioned elements and other resizable objects. The handles are disabled by default since Firefox 64 (Firefox bug 1490641).\n

\n
fontName
\n
\n

Changes the font name for the selection or at the insertion point. This requires a font name string (like \"Arial\") as a value argument.\n

\n
fontSize
\n
\n

Changes the font size for the selection or at the insertion point. This requires an integer from 1 - 7 as a value argument.\n

\n
foreColor
\n
\n

Changes a font color for the selection or at the insertion point. This requires a hexadecimal color value string as a value argument.\n

\n
formatBlock
\n
\n

Adds an HTML block-level element around the line containing the current selection, replacing the block element containing the line if one exists (in Firefox, <blockquote> is the exception — it will wrap any containing block element). Requires a tag-name string as a value argument. Virtually all block-level elements can be used. (Legacy Edge only supports heading tags H1 – H6, ADDRESS, and PRE, which must be wrapped in angle brackets, such as \"<H1>\".)\n

\n
forwardDelete
\n
\n

Deletes the character ahead of the cursor's position, identical to hitting the Delete key on a Windows keyboard.\n

\n
heading
\n
\n

Adds a heading element around a selection or insertion point line. Requires the tag-name string as a value argument (i.e., \"H1\", \"H6\"). (Not supported by Safari.)\n

\n
highlightColor
\n
\n

Changes the background color for the selection or at the insertion point. Requires a color value string as a value argument. useCSS must be true for this to function.\n

\n
increaseFontSize
\n
\n

Adds a <big> tag around the selection or at the insertion point.\n

\n
indent
\n
\n

Indents the line containing the selection or insertion point. In Firefox, if the selection spans multiple lines at different levels of indentation, only the least indented lines in the selection will be indented.\n

\n
insertBrOnReturn
\n
\n

Controls whether the Enter key inserts a <br> element, or splits the current block element into two.\n

\n
insertHorizontalRule
\n
\n

Inserts a <hr> element at the insertion point, or replaces the selection with it.\n

\n
insertHTML
\n
\n

Inserts an HTML string at the insertion point (deletes selection). Requires a valid HTML string as a value argument.\n

\n
insertImage
\n
\n

Inserts an image at the insertion point (deletes selection). Requires a URL string for the image's src as a value argument. The requirements for this string are the same as createLink.\n

\n
insertOrderedList
\n
\n

Creates a numbered ordered list for the selection or at the insertion point.\n

\n
insertUnorderedList
\n
\n

Creates a bulleted unordered list for the selection or at the insertion point.\n

\n
insertParagraph
\n
\n

Inserts a paragraph around the selection or the current line.\n

\n
insertText
\n
\n

Inserts the given plain text at the insertion point (deletes selection).\n

\n
italic
\n
\n

Toggles italics on/off for the selection or at the insertion point.\n

\n
justifyCenter
\n
\n

Centers the selection or insertion point.\n

\n
justifyFull
\n
\n

Justifies the selection or insertion point.\n

\n
justifyLeft
\n
\n

Justifies the selection or insertion point to the left.\n

\n
justifyRight
\n
\n

Right-justifies the selection or the insertion point.\n

\n
outdent
\n
\n

Outdents the line containing the selection or insertion point.\n

\n
paste
\n
\n

Pastes the clipboard contents at the insertion point (replaces current selection). Disabled for web content.\n

\n
redo
\n
\n

Redoes the previous undo command.\n

\n
removeFormat
\n
\n

Removes all formatting from the current selection.\n

\n
selectAll
\n
\n

Selects all of the content of the editable region.\n

\n
strikeThrough
\n
\n

Toggles strikethrough on/off for the selection or at the insertion point.\n

\n
subscript
\n
\n

Toggles subscript on/off for the selection or at the insertion point.\n

\n
superscript
\n
\n

Toggles superscript on/off for the selection or at the insertion point.\n

\n
underline
\n
\n

Toggles underline on/off for the selection or at the insertion point.\n

\n
undo
\n
\n

Undoes the last executed command.\n

\n
unlink
\n
\n

Removes the anchor element from a selected hyperlink.\n

\n
useCSS
\n
\n

Toggles the use of HTML tags or CSS for the generated markup. Requires a boolean true/false as a value argument.\n

\n

Note:\nThis argument is logically backwards (i.e., use false to use CSS,\ntrue to use HTML). This has been deprecated in favor of styleWithCSS.\n

\n
\n
styleWithCSS
\n
\n

Replaces the useCSS command. true modifies/generates style attributes in markup, false generates presentational elements.\n

\n
AutoUrlDetect
\n
\n

Changes the browser auto-link behavior.\n

\n
", + "showDefaultUI": "A boolean value indicating whether the default user interface should be shown. This is not implemented in Mozilla.", + "valueArgument": "For commands which require an input argument, is a string providing that information. For example, insertImage requires the URL of the image to insert. Specify null if no argument is needed." }, - "returns": "A boolean value that is false if the command is unsupported or disabled.\n
\n

Note: document.execCommand() only returns\ntrue if it is invoked as part of a user interaction. You can't use it to\nverify browser support before calling a command.\n

" + "returns": "A boolean value that is false if the command is unsupported or disabled.\n
\n

Note:\ndocument.execCommand() only returns\ntrue if it is invoked as part of a user interaction. You can't use it to\nverify browser support before calling a command.\n

" }, "document.exitfullscreen": { "url": "$MDN_URL$/web/api/document/exitfullscreen", @@ -23439,7 +23772,6 @@ ], "compatibility": { "Chrome": "37", - "ChromeAndroid": "37", "Edge": "13", "Firefox": "50", "FirefoxAndroid": "50", @@ -23548,7 +23880,7 @@ "lowDate": "2018-06-26", "highDate": "2020-12-26" }, - "doc": "The forms read-only property of\nthe Document interface returns an HTMLCollection listing\nall the <form> elements contained in the document.\n
\n

Note:\nSimilarly, you can access a list of a form's component user\ninput elements using the HTMLFormElement.elements property.\n

" + "doc": "The forms read-only property of the Document interface returns an HTMLCollection listing all the <form> elements contained in the document.\n
\n

Note:\nSimilarly, you can access a list of a form's component user input elements using the HTMLFormElement.elements property.\n

\n

You can also access named <form> elements as properties of the document object.\nFor example, document[\"login-form\"] and document.forms[\"login-form\"] can both be used to access the form named login-form.\n

\n

Warning:\nRelying on the document[\"form-name\"] pattern is dangerous and discouraged because it can lead to unexpected conflicts with existing or future APIs in the browser.\nFor example, if a browser introduces a built-in document[\"login-form\"] property in the future, your code may no longer be able to access the form element.\nTo avoid such conflicts, always use document.forms to access named forms.\n

" }, "document.fragmentdirective": { "url": "$MDN_URL$/web/api/document/fragmentdirective", @@ -23984,7 +24316,7 @@ "externalNode": "The external Node or DocumentFragment to import into\nthe current document.", "deep": "A boolean flag, whose default value is false,\nwhich controls whether to include the entire DOM subtree\nof the externalNode in the import.\n
    \n
  • If deep is set to true, then\nexternalNode and all of its descendants are copied.
  • \n
  • If deep is set to false, then only\nexternalNode is imported — the new node has no children.
  • \n
" }, - "returns": "The copied importedNode in the scope of the importing document.\n
\n

Note: importedNode's Node.parentNode is null, since it has not yet been inserted into the document tree!\n

" + "returns": "The copied importedNode in the scope of the importing document.\n
\n

Note:\nimportedNode's Node.parentNode is null, since it has not yet been inserted into the document tree!\n

" }, "document.lastelementchild": { "url": "$MDN_URL$/web/api/document/lastelementchild", @@ -24039,7 +24371,7 @@ "Firefox": "3", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Document.lastStyleSheetSet property returns the last enabled style sheet set. This property's\nvalue changes whenever the document.selectedStyleSheetSet property is\nchanged." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Document.lastStyleSheetSet property returns the last enabled style sheet set. This property's\nvalue changes whenever the document.selectedStyleSheetSet property is\nchanged." }, "document.linkcolor": { "url": "$MDN_URL$/web/api/document/linkcolor", @@ -24057,7 +24389,7 @@ "Safari": "11", "SafariIOS": "11" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The Document.linkColor property gets/sets the color of\nlinks within the document.\n

This property is deprecated. As an alternative, you can set the CSS\ncolor property on either HTML anchor links (<a>) or on\n:link pseudo-classes. Another alternative is\ndocument.body.link, although this is deprecated in HTML 4.01." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The Document.linkColor property gets/sets the color of\nlinks within the document.\n

This property is deprecated. As an alternative, you can set the CSS\ncolor property on either HTML anchor links (<a>) or on\n:link pseudo-classes." }, "document.links": { "url": "$MDN_URL$/web/api/document/links", @@ -24106,13 +24438,14 @@ "document.movebefore": { "url": "$MDN_URL$/web/api/document/movebefore", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "133", "ChromeAndroid": "133", "Edge": "133", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "118" }, "baseline": { @@ -24136,7 +24469,7 @@ "Firefox": "4", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Document.mozSetImageElement() method changes the\nelement being used as the CSS background for a background with a given background\nelement ID.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Document.mozSetImageElement() method changes the\nelement being used as the CSS background for a background with a given background\nelement ID.", "parameters": { "imageElementId": "A string indicating the name of an element that has\nbeen specified as a background image using the -moz-element CSS\nfunction.", "imageElement": "The new element to use as the background corresponding\nto that image element string. Specify null to remove the background\nelement." @@ -24161,6 +24494,25 @@ "doc": "The Document.open() method opens a document for\nwriting.\n

This does come with some side effects. For example:\n

    \n
  • All event listeners currently registered on the document, nodes inside the document,\nor the document's window are removed.
  • \n
  • All existing nodes are removed from the document.
  • \n
", "returns": "A Document object instance." }, + "document.parsehtml": { + "url": "$MDN_URL$/web/api/document/parsehtml_static", + "status": [ + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "The parseHTML() static method of the Document object provides an XSS-safe method to parse and sanitize a string of HTML in order to create a new Document instance.", + "parameters": { + "input": "A string defining HTML to be sanitized and injected into the shadow root.", + "options": "An options object with the following optional parameters:\n
\n
sanitizer
\n
\n

A Sanitizer or SanitizerConfig object which defines what elements of the input will be allowed or removed, or the string \"default\" for the default sanitizer configuration.\nNote that generally a \"Sanitizer is expected to be more efficient than a SanitizerConfig if the configuration is to reused.\nIf not specified, the XSS-safe default sanitizer configuration is used.\n

\n
" + }, + "returns": "A Document.", + "throws": { + "TypeError": "This is thrown if options.sanitizer is passed a:\n
    \n
  • non-normalized SanitizerConfig (one that includes both \"allowed\" and \"removed\" configuration settings).
  • \n
  • string that does not have the value \"default\".
  • \n
  • value that is not a Sanitizer, SanitizerConfig, or string.
  • \n
" + } + }, "document.parsehtmlunsafe": { "url": "$MDN_URL$/web/api/document/parsehtmlunsafe_static", "status": [ @@ -24173,18 +24525,22 @@ "Firefox": "128", "FirefoxAndroid": "128", "Opera": "110", - "Safari": "17.4", - "SafariIOS": "17.4" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "LOW", - "lowDate": "2024-07-09" + "lowDate": "2025-09-15" }, - "doc": "The parseHTMLUnsafe() static method of the Document object is used to parse a string of HTML, which may contain declarative shadow roots, in order to create a new Document instance.\n

The suffix \"Unsafe\" in the method name indicates that, while <script> elements are not evaluated during parsing, the method does not sanitize other potentially unsafe XSS-relevant input.\n

The resulting Document will have a content type of \"text/html\", a character set of UTF-8, and a URL of \"about:blank\"", + "doc": "

\n

Warning:\nThis method parses its input as HTML, writing the result into the DOM.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks, if the input originally came from an attacker.\n

You can mitigate this risk by always passing TrustedHTML objects instead of strings and enforcing trusted types.\nSee Security considerations for more information.\n

\n
\n

Note:\nDocument.parseHTML() should almost always be used instead of this method — on browsers where it is supported — as it always removes XSS-unsafe HTML entities.\n

\n

The parseHTMLUnsafe() static method of the Document object is used to parse HTML input, optionally filtering unwanted HTML elements and attributes, in order to create a new Document instance.", "parameters": { - "html": "A string of HTML to be parsed." + "input": "A TrustedHTML or string instance defining HTML to be parsed.", + "options": "An options object with the following optional parameters:\n

\n
sanitizer Optional
\n
\n

A Sanitizer or SanitizerConfig object which defines what elements of the input will be allowed or removed.\nThis can also be a string with the value \"default\", which applies a Sanitizer with the default (XSS-safe) configuration.\nIf not specified, no sanitizer is used.\n

Note that generally a Sanitizer is expected than the to be more efficient than a SanitizerConfig if the configuration is to reused.\n

\n
" }, - "returns": "A Document." + "returns": "A Document.", + "throws": { + "TypeError": "This is thrown if:\n
    \n
  • html is passed a string when Trusted Types are enforced by a CSP and no default policy is defined.
  • \n
  • options.sanitizer is passed a:\n
      \n
    • value that is not a Sanitizer, SanitizerConfig, or string.
    • \n
    • non-normalized SanitizerConfig (one that includes both \"allowed\" and \"removed\" configuration settings).
    • \n
    • string that does not have the value \"default\".
    • \n
    \n
  • \n
" + } }, "document.pictureinpictureelement": { "url": "$MDN_URL$/web/api/document/pictureinpictureelement", @@ -24251,7 +24607,6 @@ ], "compatibility": { "Chrome": "37", - "ChromeAndroid": "37", "Edge": "13", "Firefox": "50", "FirefoxAndroid": "50", @@ -24272,7 +24627,7 @@ "Firefox": "3", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The preferredStyleSheetSet property returns the preferred style sheet set as set by the page\nauthor." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The preferredStyleSheetSet property returns the preferred style sheet set as set by the page\nauthor." }, "document.prepend": { "url": "$MDN_URL$/web/api/document/prepend", @@ -24335,7 +24690,7 @@ "Safari": "2", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Document.queryCommandEnabled() method reports whether\nor not the specified editor command is enabled by the browser.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nAlthough the execCommand() method is deprecated, if you do decide to use it for reasons given on that page, you should consider checking the command's availability using queryCommandEnabled() to ensure compatibility.\n

\n

The Document.queryCommandEnabled() method reports whether\nor not the specified editor command is enabled by the browser.", "parameters": { "command": "The command for which to determine support." }, @@ -24356,7 +24711,7 @@ "Safari": "2", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The queryCommandState() method will tell you if the current selection has a certain Document.execCommand() command applied.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nAlthough the execCommand() method is deprecated, there are still some valid use cases that do not yet have viable alternatives, as mentioned in the execCommand() article. In these cases, you may find this method useful to implement a complete user experience, but test to ensure cross-browser compatibility.\n

\n

The queryCommandState() method will tell you if the current selection has a certain Document.execCommand() command applied.", "parameters": { "command": "A command from Document.execCommand()" }, @@ -24377,7 +24732,7 @@ "Safari": "2", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Document.queryCommandSupported() method reports\nwhether or not the specified editor command is supported by the browser.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nAlthough the execCommand() method is deprecated, if you do decide to use it for reasons given on that page, you should consider checking the command's availability using queryCommandSupported() to ensure compatibility.\n

\n

The Document.queryCommandSupported() method reports\nwhether or not the specified editor command is supported by the browser.", "parameters": { "command": "The command for which to determine support." }, @@ -24403,7 +24758,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The Document method querySelector()\nreturns the first Element within the document that matches the specified\nCSS selector, or group of CSS selectors. If no matches are found, null is returned.\n

The matching is done using depth-first pre-order traversal of the document's nodes starting with the first element in the document's markup and iterating through sequential nodes by order of the number of child nodes.\n

If the specified selector matches an ID that is incorrectly used more than once in the\ndocument, the first element with that ID is returned.\n

CSS pseudo-elements will never return\nany elements, as specified in the Selectors API.", + "doc": "The Document method querySelector()\nreturns the first Element within the document that matches the specified\nCSS selector, or group of CSS selectors. If no matches are found, null is returned.\n

The matching is done using depth-first pre-order traversal of the document's nodes starting with the first element in the document's markup and iterating through sequential nodes by order of the number of child nodes.\n

If the specified selector matches an ID that is incorrectly used more than once in the\ndocument, the first element with that ID is returned.\n

CSS pseudo-elements will never return any elements.", "parameters": { "selectors": "A string containing one or more selectors to match. This string\nmust be a valid CSS selector string; if it isn't, a SyntaxError exception\nis thrown.\n

Note that the HTML specification does not require attribute values to be valid CSS identifiers. If a class or id attribute value is not a valid CSS identifier, then you must escape it before using it in a selector, either by calling CSS.escape() on the value, or using one of the techniques described in Escaping characters. See Escaping attribute values for an example." }, @@ -24491,7 +24846,7 @@ "Firefox": "4", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The releaseCapture() method releases mouse capture if\nit's currently enabled on an element within this document.\nOnce mouse capture is released, mouse events will no longer all be directed to the element on which capture is enabled.\n

Enabling mouse capture on an element is done by calling element.setCapture().", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The releaseCapture() method releases mouse capture if\nit's currently enabled on an element within this document.\nOnce mouse capture is released, mouse events will no longer all be directed to the element on which capture is enabled.\n

Enabling mouse capture on an element is done by calling element.setCapture().", "returns": "None (undefined)." }, "document.replacechildren": { @@ -24649,7 +25004,7 @@ "Firefox": "3", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The selectedStyleSheetSet property indicates the name of the style sheet set that's currently in use." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The selectedStyleSheetSet property indicates the name of the style sheet set that's currently in use." }, "document.startviewtransition": { "url": "$MDN_URL$/web/api/document/startviewtransition", @@ -24660,6 +25015,8 @@ "Chrome": "111", "ChromeAndroid": "111", "Edge": "111", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "97", "Safari": "18", "SafariIOS": "18" @@ -24669,7 +25026,8 @@ }, "doc": "The startViewTransition() method of the Document interface starts a new same-document (SPA) view transition and returns a ViewTransition object to represent it.\n

When startViewTransition() is invoked, a sequence of steps is followed as explained in The view transition process.", "parameters": { - "updateCallback": "An optional callback function typically invoked to update the DOM during the SPA view transition process, which returns a Promise. The callback is invoked once the API has taken a snapshot of the current page. When the promise returned by the callback fulfills, the view transition begins in the next frame. If the promise returned by the callback rejects, the transition is abandoned." + "updateCallback": "An optional callback function typically invoked to update the DOM during the SPA view transition process, which returns a Promise. The callback is invoked once the API has taken a snapshot of the current page. When the promise returned by the callback fulfills, the view transition begins in the next frame. If the promise returned by the callback rejects, the transition is abandoned.", + "options": "An object containing options to configure the view transition. It can include the following properties:\n

\n
update Optional
\n
\n

The same updateCallback function described above. Defaults to null.\n

\n
types Optional
\n
\n

An array of strings. These strings act as class names or identifiers for the transition, allowing you to selectively apply CSS styles or run different JavaScript logic based on the type of transition occurring. Defaults to an empty sequence.\n

\n
" }, "returns": "A ViewTransition object instance." }, @@ -24704,7 +25062,7 @@ "Firefox": "3", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The styleSheetSets read-only property returns a live list of all of the currently-available style sheet sets." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The styleSheetSets read-only property returns a live list of all of the currently-available style sheet sets." }, "document.timeline": { "url": "$MDN_URL$/web/api/document/timeline", @@ -24828,16 +25186,21 @@ "Safari": "11", "SafariIOS": "11" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nUse of the document.write() method is strongly discouraged.\n

As the HTML spec itself warns:\n

\n

This method has very idiosyncratic behavior. In some cases, this method can affect the state of the HTML parser while the parser is running, resulting in a DOM that does not correspond to the source of the document (e.g., if the string written is the string <plaintext> or <!--). In other cases, the call can clear the current page first, as if document.open() had been called. In yet more cases, the method is simply ignored, or throws an exception. Users agents are explicitly allowed to avoid executing script elements inserted via this method. And to make matters even worse, the exact behavior of this method can in some cases be dependent on network latency, which can lead to failures that are very hard to debug. For all these reasons, use of this method is strongly discouraged.\nTherefore, avoid using document.write() — and if possible, update any existing code that is still using it.\n

\n
\n

The document.write() method writes a string of text to a document stream opened by document.open().\n

\n

Note:\nBecause document.write() writes to the document stream, calling document.write() on a closed (loaded) document automatically calls document.open(), which will clear the document.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nUse of the document.write() method is strongly discouraged.\nAvoid using it, and where possible replace it in existing code.\n

As the HTML spec itself warns:\n

\n

This method has very idiosyncratic behavior.\nIn some cases, this method can affect the state of the HTML parser while the parser is running, resulting in a DOM that does not correspond to the source of the document (e.g., if the string written is the string \"<plaintext>\" or \"<!--\").\nIn other cases, the call can clear the current page first, as if document.open() had been called.\nIn yet more cases, the method is simply ignored, or throws an exception. Users agents are explicitly allowed to avoid executing script elements inserted via this method.\nAnd to make matters even worse, the exact behavior of this method can in some cases be dependent on network latency, which can lead to failures that are very hard to debug.\nFor all these reasons, use of this method is strongly discouraged.\n

\n
\n
\n

Warning:\nThis method parses its input as HTML, writing the result into the DOM.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks, if the input originally came from an attacker.\n

You can mitigate this risk by always passing TrustedHTML objects instead of strings and enforcing trusted types.\nSee Security considerations for more information.\n

\n

The write() method of the Document interface writes text in one or more TrustedHTML or string parameters to a document stream opened by document.open().", "parameters": { - "markup": "A string containing the text to be written to the document." + "markup, …, markupN": "TrustedHTML objects or strings containing the markup to be written to the document." }, - "returns": "None (undefined)." + "returns": "None (undefined).", + "throws": { + "InvalidStateError DOMException": "The method was called on an XML document, or called when the parser is currently executing a custom element constructor.", + "TypeError": "A string is passed as one of the parameters when Trusted Types are enforced and no default policy has been defined for creating TrustedHTML objects." + } }, "document.writeln": { "url": "$MDN_URL$/web/api/document/writeln", "status": [ - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "45", @@ -24849,11 +25212,15 @@ "Safari": "11", "SafariIOS": "11" }, - "doc": "Writes a string of text followed by a newline character to a document.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis method parses its input as HTML, writing the result into the DOM.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks, if the input originally came from an attacker.\n

You can mitigate this risk by always passing TrustedHTML objects instead of strings and enforcing trusted types.\nSee Security considerations for more information.\n

\n

The writeln() method of the Document interface writes text in one or more TrustedHTML or string parameters to a document stream opened by document.open(), followed by a newline character.", "parameters": { - "line": "A string containing a line of text." + "markup, …, markupN": "TrustedHTML or string objects containing the text to be written to the document." }, - "returns": "None (undefined)." + "returns": "None (undefined).", + "throws": { + "InvalidStateError DOMException": "The method was called on an XML document, or called when the parser is currently executing a custom element constructor.", + "TypeError": "A string is passed as one of the parameters when Trusted Types are enforced and no default policy has been defined for creating TrustedHTML objects." + } }, "document.xmlencoding": { "url": "$MDN_URL$/web/api/document/xmlencoding", @@ -25078,13 +25445,14 @@ "documentfragment.movebefore": { "url": "$MDN_URL$/web/api/documentfragment/movebefore", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "133", "ChromeAndroid": "133", "Edge": "133", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "118" }, "baseline": { @@ -25512,7 +25880,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The DocumentType.remove() method removes a document's doctype.", + "doc": "The DocumentType.remove() method removes a document's doctype.\nIf it is already detached from the document, calling remove() does nothing.", "returns": "None (undefined)." }, "documenttype.replacewith": { @@ -25777,9 +26145,9 @@ }, "doc": "The DOMImplementation.createDocumentType() method returns\na DocumentType object which can either be used with\nDOMImplementation.createDocument upon document creation or can be put\ninto the document via methods like Node.insertBefore() or\nNode.replaceChild().", "parameters": { - "qualifiedNameStr": "A string containing the qualified name, like\nsvg:svg.", - "publicId": "A string containing the PUBLIC identifier.", - "systemId": "A string containing the SYSTEM identifiers." + "name": "A string containing the name of the doctype, like html. Corresponds to the DocumentType.name property.", + "publicId": "A string containing the PUBLIC identifier. Corresponds to the DocumentType.publicId property.", + "systemId": "A string containing the SYSTEM identifiers. Corresponds to the DocumentType.systemId property." }, "returns": "A DocumentType." }, @@ -27551,7 +27919,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The DOMRectList interface represents a collection of DOMRect objects, typically used to hold the rectangles associated with a particular element, like bounding boxes returned by methods such as getClientRects(). It provides access to each rectangle in the list via its index, along with a length property that indicates the total number of rectangles in the list.\n

\n

Note: DOMRectList exists for compatibility with legacy Web content and is not recommended to be used when creating new APIs.\n

" + "doc": "The DOMRectList interface represents a collection of DOMRect objects, typically used to hold the rectangles associated with a particular element, like bounding boxes returned by methods such as getClientRects(). It provides access to each rectangle in the list via its index, along with a length property that indicates the total number of rectangles in the list.\n
\n

Note:\nDOMRectList exists for compatibility with legacy Web content and is not recommended to be used when creating new APIs.\n

" }, "domrectlist.item": { "url": "$MDN_URL$/web/api/domrectlist/item", @@ -28148,7 +28516,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The item() method of the DOMTokenList interface returns an item in the list,\ndetermined by its position in the list, its index.\n
\n

Note:\nThis method is equivalent as the bracket notation.\nSo aList.item(i) is the same as aList[i].\n

", + "doc": "The item() method of the DOMTokenList interface returns an item in the list,\ndetermined by its position in the list, its index.\n
\n

Note:\nThis method is equivalent as the bracket notation.\nSo list.item(i) is the same as list[i].\n

", "parameters": { "index": "A number representing the index of the item you want to return. If it isn't an integer, only the integer part is considered." }, diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-e.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-e.json index 4f53da9f06cb..b71d6cdf3416 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-e.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-e.json @@ -185,6 +185,10 @@ "parameters": { "rangeStart": "A number representing the start of the range of text for which character bounds are provided.", "characterBounds": "An Array containing DOMRect objects representing the character bounds." + }, + "returns": "None (undefined).", + "throws": { + "TypeError": "Thrown if the method is called with less than two arguments, or if the first argument is not a number or the second argument is not an iterable (like an array)." } }, "editcontext.updatecontrolbounds": { @@ -205,6 +209,10 @@ "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The EditContext.updateControlBounds() method of the EditContext interface is used to inform the operating system about the position and size of the editable text region of the EditContext object.\n

Call this method to tell the operating system the bounds of the current editable region. You should call it when initializing the EditContext, and whenever the editable region's bounds change such as when the webpage is resized. These bounds are used to position platform-specific editing-related UI surfaces such as an Input Method Editor (IME) window.", "parameters": { "controlBounds": "A DOMRect object representing the new control bounds." + }, + "returns": "None (undefined).", + "throws": { + "TypeError": "Thrown if the method is called with no arguments or if the provided argument is not a DOMRect object." } }, "editcontext.updateselection": { @@ -225,7 +233,11 @@ "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The updateSelection() method of the EditContext interface updates the internal state of the selection within the editable text context. This method is used to update the selection state when the user interacts with the text rendering in the EditContext's associated element, such as by clicking or dragging the mouse, or by using the keyboard.", "parameters": { "start": "A number representing the new selection start.", - "end": "A number representing the new selection end." + "end": "A number representing the new selection end. If the start and end values are the same, the selection is equivalent to a caret." + }, + "returns": "None (undefined).", + "throws": { + "TypeError": "Thrown if the method is called with fewer than two arguments, or if either argument is not a non-negative number." } }, "editcontext.updateselectionbounds": { @@ -246,6 +258,10 @@ "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The EditContext.updateSelectionBounds() method of the EditContext interface is used to inform the operating system about the bounds of the text selection within the editable region that's associated with the EditContext object.\n

Call this method to tell the operating system the bounds of the user's current selection. You should call the method whenever the user's selection changes in the editable region. The selection bounds are used by the operating system to help position the IME window or any other platform-specific editing-related UI surfaces.", "parameters": { "selectionBounds": "A DOMRect object representing the new selection bounds." + }, + "returns": "None (undefined).", + "throws": { + "TypeError": "Thrown if the method is called with no arguments or if the provided argument is not a DOMRect object." } }, "editcontext.updatetext": { @@ -268,6 +284,10 @@ "rangeStart": "A number representing the start of the range of text to replace.", "rangeEnd": "A number representing the end of the range of text to replace.", "text": "A string representing the new text content." + }, + "returns": "None (undefined).", + "throws": { + "TypeError": "Thrown if the method is called with less than three arguments." } }, "element": { @@ -1025,6 +1045,19 @@ }, "doc": "The ariaMultiSelectable property of the Element interface reflects the value of the aria-multiselectable attribute, which indicates that the user may select more than one item from the current selectable descendants.\n

\n

Note:\nWhere possible use an HTML <select> element as this has built in semantics and does not require ARIA attributes.\n

" }, + "element.arianotify": { + "url": "$MDN_URL$/web/api/element/arianotify", + "status": [ + "Experimental" + ], + "compatibility": {}, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ariaNotify() method of the Element interface specifies that a given string of text should be announced by a screen reader if available and activated.", + "parameters": { + "announcement": "A string specifying the text to be announced.", + "options": "An options object containing the following properties:\n

\n
priority
\n
\n

An enumerated value specifying the priority of the announcement. Possible values are:\n

\n
normal
\n
\n

The announcement has normal priority. It will be spoken after any announcement that a screen reader is currently making.\n

\n
high
\n
\n

The announcement has high priority. It will be spoken immediately, interrupting any announcement that a screen reader is currently making.\n

\n
\n
\n
" + }, + "returns": "None (undefined)." + }, "element.ariaorientation": { "url": "$MDN_URL$/web/api/element/ariaorientation", "status": [ @@ -1162,7 +1195,7 @@ "level": "LOW", "lowDate": "2023-10-24" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ariaRelevant property of the Element interface reflects the value of the aria-relevant attribute, which indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. This is used to describe what changes in an aria-live region are relevant and should be announced." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ariaRelevant property of the Element interface reflects the value of the aria-relevant attribute, which indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. This is used to describe what changes in an aria-live region are relevant and should be announced." }, "element.ariarequired": { "url": "$MDN_URL$/web/api/element/ariarequired", @@ -2141,7 +2174,7 @@ "level": "LOW", "lowDate": "2024-09-16" }, - "doc": "The getHTML() method of the Element interface is used to serialize an element's DOM to an HTML string.\n

The method provides an options argument that enables the serialization of child nodes that are shadow roots.\nThe options can be used to include nested shadow roots that have been set as serializable, and/or a specified array of ShadowRoot objects, which may be either open or closed.\n

Without arguments, child nodes that are shadow roots are not serialized, and this method behaves in the same way as reading the value of Element.innerHTML.", + "doc": "The getHTML() method of the Element interface is used to serialize an element's DOM to an HTML string.\n

The method provides an options argument that enables the serialization of child nodes that are shadow roots.\nThe options can be used to include nested shadow roots that have been set as serializable, and/or a specified array of ShadowRoot objects, which may be either open or closed.\n

Without arguments, child nodes that are shadow roots are not serialized, and this method behaves in the same way as reading the value of Element.innerHTML.\n

Note that some browsers serialize the < and > characters as &lt; and &gt; when they appear in attribute values (see Browser compatibility).\nThis is to prevent a potential security vulnerability (mutation XSS) in which an attacker can craft input that bypasses a sanitization function, enabling a cross-site scripting (XSS) attack.", "parameters": { "options": "An options object with the following optional parameters:\n

\n
serializableShadowRoots
\n
\n

A boolean value that specifies whether to include serializable shadow roots.\nThe default value is false.\n

\n
shadowRoots
\n
\n

An array of ShadowRoot objects to serialize.\nThese are included regardless of whether they are marked as serializable, or if they are open or closed.\nThe default value is an empty array.\n

\n
" }, @@ -2291,9 +2324,10 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The Element property innerHTML gets or sets the HTML or XML markup contained within the element.\n

More precisely, innerHTML gets a serialization of the nested child DOM elements within the element, or sets HTML or XML that should be parsed to replace the DOM tree within the element.\n

To insert the HTML into the document rather than replace the contents of an element, use the method insertAdjacentHTML().\n

The serialization of the DOM tree read from the property does not include shadow roots — if you want to get a HTML string that includes shadow roots, you must instead use the Element.getHTML() or ShadowRoot.getHTML() methods.\nSimilarly, when setting element content using innerHTML, the HTML string is parsed into DOM elements that do not contain shadow roots.\n

So for example <template> is parsed into as HTMLTemplateElement, whether or not the shadowrootmode attribute is specified\nIn order to set an element's contents from an HTML string that includes declarative shadow roots, you must use either Element.setHTMLUnsafe() or ShadowRoot.setHTMLUnsafe().", + "doc": "

\n

Warning:\nThis property parses its input as HTML, writing the result into the DOM.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks, if the input originally came from an attacker.\n

You can mitigate this risk by always assigning TrustedHTML objects instead of strings and enforcing trusted types.\nSee Security considerations for more information.\n

\n

The innerHTML property of the Element interface gets or sets the HTML or XML markup contained within the element, omitting any shadow roots in both cases.\n

To insert the HTML into the document rather than replace the contents of an element, use the method insertAdjacentHTML().", "throws": { "SyntaxError DOMException": "Thrown if an attempt was made to set the value of innerHTML using a string which is not properly-formed HTML.", + "TypeError": "Thrown if the property is set to a string when Trusted Types are enforced by a CSP and no default policy is defined.", "NoModificationAllowedError DOMException": "Thrown if an attempt was made to insert the HTML into a node whose parent is a Document." } }, @@ -2348,15 +2382,16 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "The insertAdjacentHTML() method of the\nElement interface parses the specified text as HTML or XML and inserts\nthe resulting nodes into the DOM tree at a specified position.", + "doc": "

\n

Warning:\nThis method parses its input as HTML or XML, writing the result into the DOM.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks, if the input originally came from an attacker.\n

You can reduce the risk by assigning TrustedHTML objects instead of strings, and enforcing trusted types using the require-trusted-types-for CSP directive.\nThis ensures that the input is passed through a transformation function, which has the chance to sanitize the input to remove potentially dangerous markup, such as <script> elements and event handler attributes.\n

\n

The insertAdjacentHTML() method of the Element interface parses the specified input as HTML or XML and inserts the resulting nodes into the DOM tree at a specified position.", "parameters": { "position": "A string representing the position relative to the element. Must be one of the following strings:\n

\n
\"beforebegin\"
\n
\n

Before the element. Only valid if the element is in the DOM tree and has a parent element.\n

\n
\"afterbegin\"
\n
\n

Just inside the element, before its first child.\n

\n
\"beforeend\"
\n
\n

Just inside the element, after its last child.\n

\n
\"afterend\"
\n
\n

After the element. Only valid if the element is in the DOM tree and has a parent element.\n

\n
", - "text": "The string to be parsed as HTML or XML and inserted into the tree." + "input": "A TrustedHTML instance or string defining the HTML or XML to be parsed." }, "returns": "None (undefined).", "throws": { "NoModificationAllowedError DOMException": "Thrown if position is \"beforebegin\" or \"afterend\" and the element either does not have a parent or its parent is the Document object.", - "SyntaxError DOMException": "Thrown if position is not one of the four listed values." + "SyntaxError DOMException": "Thrown if:\n
    \n
  • position is not one of the four listed values.
  • \n
  • The input is XML that is not well-formed.
  • \n
", + "TypeError": "Thrown if the property is set to a string when Trusted Types are enforced by a CSP and no default policy is defined." } }, "element.insertadjacenttext": { @@ -2465,13 +2500,14 @@ "element.movebefore": { "url": "$MDN_URL$/web/api/element/movebefore", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "133", "ChromeAndroid": "133", "Edge": "133", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "118" }, "baseline": { @@ -2553,10 +2589,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The outerHTML attribute of the Element\nDOM interface gets the serialized HTML fragment describing the element including its\ndescendants. It can also be set to replace the element with nodes parsed from the given\nstring.\n

To only obtain the HTML representation of the contents of an element, or to replace the\ncontents of an element, use the innerHTML property\ninstead.", + "doc": "

\n

Warning:\nThis property parses its input as HTML, writing the result into the DOM.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks, if the input originally came from an attacker.\n

You can mitigate this risk by always assigning TrustedHTML objects instead of strings and enforcing trusted types.\nSee Security considerations for more information.\n

\n

The outerHTML attribute of the Element interface gets or sets the HTML or XML markup of the element and its descendants, omitting any shadow roots in both cases.\n

To get or set the contents of an element, use the innerHTML property instead.", "throws": { - "SyntaxError DOMException": "Thrown if an attempt was made to set outerHTML using an HTML string which is not\nvalid.", - "NoModificationAllowedError DOMException": "Thrown if an attempt was made to set outerHTML on an element which is a direct\nchild of a Document, such as Document.documentElement." + "NoModificationAllowedError DOMException": "Thrown if an attempt was made to set outerHTML on an element which is a direct child of a Document, such as Document.documentElement.", + "SyntaxError DOMException": "Thrown if an attempt was made to set outerHTML using an XML input which is not well-formed.", + "TypeError": "Thrown if the property is set to a string when Trusted Types are enforced by a CSP and no default policy is defined." } }, "element.part": { @@ -2761,7 +2798,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The Element.remove() method removes the element from the DOM.", + "doc": "The Element.remove() method removes the element from its parent node.\nIf it has no parent node, calling remove() does nothing.", "returns": "None (undefined)." }, "element.removeattribute": { @@ -2937,7 +2974,6 @@ ], "compatibility": { "Chrome": "37", - "ChromeAndroid": "37", "Edge": "13", "Firefox": "50", "FirefoxAndroid": "50", @@ -3075,7 +3111,7 @@ "doc": "The Element interface's\nscrollIntoView() method scrolls the element's ancestor\ncontainers such that the element on which scrollIntoView() is called is\nvisible to the user.", "parameters": { "alignToTop": "A boolean value:\n

    \n
  • If true, the top of the element will be aligned to the top of the\nvisible area of the scrollable ancestor. Corresponds to\nscrollIntoViewOptions: {block: \"start\", inline: \"nearest\"}. This is\nthe default value.
  • \n
  • If false, the bottom of the element will be aligned to the bottom\nof the visible area of the scrollable ancestor. Corresponds to\nscrollIntoViewOptions: {block: \"end\", inline: \"nearest\"}.
  • \n
", - "scrollIntoViewOptions": "An Object with the following properties:\n
\n
behavior Optional
\n
\n

Determines whether scrolling is instant or animates smoothly. This option is a string which must take one of the following values:\n

    \n
  • smooth: scrolling should animate smoothly
  • \n
  • instant: scrolling should happen instantly in a single jump
  • \n
  • auto: scroll behavior is determined by the computed value of scroll-behavior
  • \n
\n
\n
block Optional
\n
\n

Defines the vertical alignment of the element within the scrollable ancestor container. This option is a string and accepts one of the following values:\n

    \n
  • start: Aligns the element's top edge with the top of the scrollable container, making the element appear at the start of the visible area vertically.
  • \n
  • center: Aligns the element vertically at the center of the scrollable container, positioning it in the middle of the visible area.
  • \n
  • end: Aligns the element's bottom edge with the bottom of the scrollable container, placing the element at the end of the visible area vertically.
  • \n
  • nearest: Scrolls the element to the nearest edge in the vertical direction. If the element is closer to the top edge of the scrollable container, it will align to the top; if it's closer to the bottom\nedge, it will align to the bottom. This minimizes the scrolling distance.
  • \n
  • Defaults to start.
  • \n
\n
\n
inline Optional
\n
\n

Defines the horizontal alignment of the element within the scrollable ancestor container. This option is a string and accepts one of the following values:\n

    \n
  • start: Aligns the element's left edge with the left of the scrollable container, making the element appear at the start of the visible area horizontally.
  • \n
  • center: Aligns the element horizontally at the center of the scrollable container, positioning it in the middle of the visible area.
  • \n
  • end: Aligns the element's right edge with the right of the scrollable container, placing the element at the end of the visible area horizontally.
  • \n
  • nearest: Scrolls the element to the nearest edge in the horizontal direction. If the element is closer to the left edge of the scrollable container, it will align to the left; if it's closer to the right edge, it will align to the right. This minimizes the scrolling distance.
  • \n
  • Defaults to nearest.
  • \n
\n
\n
" + "options": "An object with the following properties:\n
\n
behavior Optional
\n
\n

Determines whether scrolling is instant or animates smoothly. Its value can be one of the following:\n

    \n
  • smooth: scrolling should animate smoothly
  • \n
  • instant: scrolling should happen instantly in a single jump
  • \n
  • auto: scroll behavior is determined by the computed value of scroll-behavior
  • \n
\n

The default is auto.\n

\n
block Optional
\n
\n

Defines the vertical alignment of the element within the scrollable ancestor container. Its value can be one of the following:\n

    \n
  • start: Aligns the element's top edge with the top of the scrollable container, making the element appear at the start of the visible area vertically.
  • \n
  • center: Aligns the element vertically at the center of the scrollable container, positioning it in the middle of the visible area.
  • \n
  • end: Aligns the element's bottom edge with the bottom of the scrollable container, placing the element at the end of the visible area vertically.
  • \n
  • nearest: Scrolls the element to the nearest edge in the vertical direction. If the element is closer to the top edge of the scrollable container, it will align to the top; if it's closer to the bottom edge, it will align to the bottom. This minimizes the scrolling distance.
  • \n
\n

The default is start.\n

\n
container Optional
\n
\n

Defines the scrollable ancestor container. Its value can be one of the following:\n

    \n
  • all: All scrollable containers are impacted (including the viewport).
  • \n
  • nearest: Only the nearest scrollable container is impacted by the scroll.
  • \n
\n

The default is all.\n

\n
inline Optional
\n
\n

Defines the horizontal alignment of the element within the scrollable ancestor container. Its value can be one of the following:\n

    \n
  • start: Aligns the element's left edge with the left of the scrollable container, making the element appear at the start of the visible area horizontally.
  • \n
  • center: Aligns the element horizontally at the center of the scrollable container, positioning it in the middle of the visible area.
  • \n
  • end: Aligns the element's right edge with the right of the scrollable container, placing the element at the end of the visible area horizontally.
  • \n
  • nearest: Scrolls the element to the nearest edge in the horizontal direction. If the element is closer to the left edge of the scrollable container, it will align to the left; if it's closer to the right edge, it will align to the right. This minimizes the scrolling distance.
  • \n
\n

The default is nearest.\n

\n
" }, "returns": "None (undefined)." }, @@ -3089,7 +3125,7 @@ "Safari": "3", "SafariIOS": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Element.scrollIntoViewIfNeeded() method scrolls the current element into the visible area of the browser window if it's not already within the visible area of the browser window. If the element is already within the visible area of the browser window, then no scrolling takes place. This method is a proprietary variation of the standard Element.scrollIntoView() method.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Element.scrollIntoViewIfNeeded() method scrolls the current element into the visible area of the browser window if it's not already within the visible area of the browser window. If the element is already within the visible area of the browser window, then no scrolling takes place. This method is a proprietary variation of the standard Element.scrollIntoView() method.", "parameters": { "centerIfNeeded": "An optional boolean value with a default of true:\n

    \n
  • If true, the element will be aligned so it is centered within the visible area of the scrollable ancestor.
  • \n
  • If false, the element will be aligned to the nearest edge of the visible area of the scrollable ancestor. Depending on which edge of the visible area is closest to the element, either the top of the element will be aligned to the top edge of the visible area, or the bottom edge of the element will be aligned to the bottom edge of the visible area.
  • \n
" }, @@ -3123,7 +3159,7 @@ "Firefox": "16", "FirefoxAndroid": "16" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Element.scrollLeftMax read-only property returns a\nnumber representing the maximum left scroll offset possible for the\nelement." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Element.scrollLeftMax read-only property returns a\nnumber representing the maximum left scroll offset possible for the\nelement." }, "element.scrollto": { "url": "$MDN_URL$/web/api/element/scrollto", @@ -3181,7 +3217,7 @@ "Firefox": "16", "FirefoxAndroid": "16" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Element.scrollTopMax read-only property returns a\nnumber representing the maximum top scroll offset possible for the\nelement." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Element.scrollTopMax read-only property returns a\nnumber representing the maximum top scroll offset possible for the\nelement." }, "element.scrollwidth": { "url": "$MDN_URL$/web/api/element/scrollwidth", @@ -3232,7 +3268,7 @@ }, "returns": "None (undefined).", "throws": { - "InvalidCharacterError DOMException": "Thrown if the name value is not a valid XML name; for example, it starts with a number, a hyphen, or a period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods." + "InvalidCharacterError DOMException": "Thrown if the name value is not a valid XML name; for example, it starts with a number, a hyphen, or a period, or contains characters other than alphanumeric characters, underscores, hyphens, or periods." } }, "element.setattributenode": { @@ -3324,12 +3360,32 @@ "Firefox": "4", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Call this method during the handling of a mousedown event to retarget all mouse events\nto this element until the mouse button is released or document.releaseCapture() is called.\n

\n

Warning:\nThis interface never had much cross-browser\nsupport and you are probably looking for element.setPointerCapture instead,\nfrom the Pointer Events API.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Call this method during the handling of a mousedown event to retarget all mouse events\nto this element until the mouse button is released or document.releaseCapture() is called.\n

\n

Warning:\nThis interface never had much cross-browser\nsupport and you are probably looking for element.setPointerCapture instead,\nfrom the Pointer Events API.\n

", "parameters": { "retargetToElement": "If true, all events are targeted directly to this element; if\nfalse, events can also fire at descendants of this element." }, "returns": "None (undefined)." }, + "element.sethtml": { + "url": "$MDN_URL$/web/api/element/sethtml", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The setHTML() method of the Element interface provides an XSS-safe method to parse and sanitize a string of HTML into a DocumentFragment, and then insert it into the DOM as a subtree of the element.", + "parameters": { + "input": "A string defining HTML to be sanitized and injected into the element.", + "options": "An options object with the following optional parameters:\n

\n
sanitizer
\n
\n

A Sanitizer or SanitizerConfig object which defines what elements of the input will be allowed or removed, or the string \"default\" for the default configuration.\nNote that generally a \"Sanitizer is expected to be more efficient than a SanitizerConfig if the configuration is to reused.\nIf not specified, the default sanitizer configuration is used.\n

\n
" + }, + "returns": "None (undefined).", + "throws": { + "TypeError": "This is thrown if options.sanitizer is passed a:\n
    \n
  • non-normalized SanitizerConfig (one that includes both \"allowed\" and \"removed\" configuration settings).
  • \n
  • string that does not have the value \"default\".
  • \n
  • value that is not a Sanitizer, SanitizerConfig, or string.
  • \n
" + } + }, "element.sethtmlunsafe": { "url": "$MDN_URL$/web/api/element/sethtmlunsafe", "status": [ @@ -3342,18 +3398,22 @@ "Firefox": "123", "FirefoxAndroid": "123", "Opera": "110", - "Safari": "17.4", - "SafariIOS": "17.4" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "LOW", - "lowDate": "2024-04-18" + "lowDate": "2025-09-15" }, - "doc": "The setHTMLUnsafe() method of the Element interface is used to parse a string of HTML into a DocumentFragment, which then replaces the element's subtree in the DOM.\nThe input HTML may include declarative shadow roots.\n

The suffix \"Unsafe\" in the method name indicates that the method does not sanitize or remove potentially unsafe XSS-relevant input, such as <script> elements, and script or event handler content attributes.\n

If the string of HTML defines more than one declarative shadow root in a particular shadow host then only the first ShadowRoot is created — subsequent declarations are parsed as <template> elements within that shadow root.\n

\n

Note:\nThis method should be used instead of Element.innerHTML when a string of HTML may contain declarative shadow roots.\n

", + "doc": "
\n

Warning:\nThis method parses its input as HTML, writing the result into the DOM.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks, if the input originally came from an attacker.\n

You can mitigate this risk by always passing TrustedHTML objects instead of strings and enforcing trusted types.\nSee Security considerations for more information.\n

\n
\n

Note:\nElement.setHTML() should almost always be used instead of this method — on browsers where it is supported — as it always removes XSS-unsafe HTML entities.\n

\n

The setHTMLUnsafe() method of the Element interface is used to parse HTML input into a DocumentFragment, optionally filtering out unwanted elements and attributes, and those that don't belong in the context, and then using it to replace the element's subtree in the DOM.", "parameters": { - "html": "A string defining HTML to be parsed." + "input": "A TrustedHTML instance or string defining HTML to be parsed.", + "options": "An options object with the following optional parameters:\n

\n
sanitizer Optional
\n
\n

A Sanitizer or SanitizerConfig object that defines what elements of the input will be allowed or removed.\nThis can also be a string with the value \"default\", which applies a Sanitizer with the default (XSS-safe) configuration.\nIf not specified, no sanitizer is used.\n

Note that generally a Sanitizer is expected to be more efficient than a SanitizerConfig if the configuration is to reused.\n

\n
" }, - "returns": "None (undefined)." + "returns": "None (undefined).", + "throws": { + "TypeError": "This is thrown if:\n
    \n
  • input is passed a string when Trusted Types are enforced by a CSP and no default policy is defined.
  • \n
  • options.sanitizer is passed a:\n
      \n
    • value that is not a Sanitizer, SanitizerConfig, or string.
    • \n
    • non-normalized SanitizerConfig (one that includes both \"allowed\" and \"removed\" configuration settings).
    • \n
    • string that does not have the value \"default\".
    • \n
    \n
  • \n
" + } }, "element.setpointercapture": { "url": "$MDN_URL$/web/api/element/setpointercapture", @@ -3496,8 +3556,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The ElementInternals interface of the Document Object Model gives web developers a way to allow custom elements to fully participate in HTML forms. It provides utilities for working with these elements in the same way you would work with any standard HTML form element, and also exposes the Accessibility Object Model to the element." }, @@ -4279,7 +4340,7 @@ "Safari": "16.4", "SafariIOS": "16.4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The ariaRelevant property of the ElementInternals interface reflects the value of the aria-relevant attribute, which indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. This is used to describe what changes in an aria-live region are relevant and should be announced.\n

\n

Note:\nSetting aria attributes on ElementInternals allows default semantics to be defined on a custom element. These may be overwritten by author-defined attributes, but ensure that default semantics are retained should the author delete those attributes, or fail to add them at all. For more information see the Accessibility Object Model explainer.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The ariaRelevant property of the ElementInternals interface reflects the value of the aria-relevant attribute, which indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. This is used to describe what changes in an aria-live region are relevant and should be announced.\n

\n

Note:\nSetting aria attributes on ElementInternals allows default semantics to be defined on a custom element. These may be overwritten by author-defined attributes, but ensure that default semantics are retained should the author delete those attributes, or fail to add them at all. For more information see the Accessibility Object Model explainer.\n

" }, "elementinternals.ariarequired": { "url": "$MDN_URL$/web/api/elementinternals/ariarequired", @@ -4567,8 +4628,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The checkValidity() method of the ElementInternals interface checks if the element meets any constraint validation rules applied to it.\n

If checkValidity returns false then a cancelable invalid event is fired on the element.", "returns": "A boolean value, true if the element meets all validation constraints.", @@ -4592,8 +4654,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The form read-only property of the ElementInternals interface returns the HTMLFormElement associated with this element." }, @@ -4613,8 +4676,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The labels read-only property of the ElementInternals interface returns the labels associated with the element." }, @@ -4634,8 +4698,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The reportValidity() method of the ElementInternals interface checks if the element meets any constraint validation rules applied to it.\n

If reportValidity returns false then a cancelable invalid event is fired on the element.\n

This method behaves in a similar way to ElementInternals.checkValidity(), however it additionally sends the value of ElementInternals.validationMessage to the user agent for display.", "returns": "A boolean value, true if the element meets all validation constraints.", @@ -4680,8 +4745,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The setFormValue() method of the ElementInternals interface sets the element's submission value and state, communicating these to the user agent.", "parameters": { @@ -4709,8 +4775,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The setValidity() method of the ElementInternals interface sets the validity of the element.", "parameters": { @@ -4779,8 +4846,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The validationMessage read-only property of the ElementInternals interface returns the validation message for the element." }, @@ -4800,8 +4868,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The validity read-only property of the ElementInternals interface returns a ValidityState object which represents the different validity states the element can be in, with respect to constraint validation.", "throws": { @@ -4824,8 +4893,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The willValidate read-only property of the ElementInternals interface returns true if the element is a submittable element that is a candidate for constraint validation.\n

Elements that are barred from being candidates for constraint validation include those that have the attributes: disabled, hidden or readonly, input elements of type=button or type=reset, or any element that is a <datalist> element or has a <datalist> element ancestor.", "throws": { @@ -4842,7 +4912,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -4859,7 +4931,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -4876,7 +4950,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -4897,7 +4973,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -4914,7 +4992,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -4934,7 +5014,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -4951,7 +5033,9 @@ "ChromeAndroid": "94", "Edge": "94", "Firefox": "130", - "Opera": "80" + "Opera": "80", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -5440,7 +5524,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The Event() constructor creates a new Event object. An event created in this way is called a synthetic event, as opposed to an event fired by the browser, and can be dispatched by a script.", + "doc": "

Note: This feature is available in Web Workers.

\n

The Event() constructor creates a new Event object. An event created in this way is called a synthetic event, as opposed to an event fired by the browser, and can be dispatched by a script.", "returns": "A new Event object." }, "event.eventphase": { @@ -5473,7 +5557,7 @@ "Firefox": "1.5", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The read-only explicitOriginalTarget property of the Event interface returns the non-anonymous original target of the event.\n

If the event was retargeted for some reason other than an anonymous boundary crossing, this will be set to the target before the retargeting occurs.\n

For example, mouse events are retargeted to their parent node when they happen over text nodes (see Firefox bug 185889), and in that case currentTarget will show the parent while this property will show the text node.\n

This property also differs from originalTarget in that it will never contain anonymous content." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The read-only explicitOriginalTarget property of the Event interface returns the non-anonymous original target of the event.\n

If the event was retargeted for some reason other than an anonymous boundary crossing, this will be set to the target before the retargeting occurs.\n

For example, mouse events are retargeted to their parent node when they happen over text nodes (see Firefox bug 185889), and in that case currentTarget will show the parent while this property will show the text node.\n

This property also differs from originalTarget in that it will never contain anonymous content." }, "event.initevent": { "url": "$MDN_URL$/web/api/event/initevent", @@ -5492,7 +5576,7 @@ "SafariIOS": "", "Nodejs": "19.5.0" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Note: This feature is available in Web Workers.

\n

The Event.initEvent() method is used to initialize the\nvalue of an event created using Document.createEvent().\n

Events initialized in this way must have been created with the\nDocument.createEvent() method.\nThis method must be called to set the event\nbefore it is dispatched, using EventTarget.dispatchEvent().\nOnce dispatched, it doesn't do anything anymore.\n

\n

Note: Do not use this method anymore as it is deprecated.\nInstead use specific event constructors, like Event().\nThe page on Creating and triggering events gives more information about the way to use these.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Note: This feature is available in Web Workers.

\n

The Event.initEvent() method is used to initialize the\nvalue of an event created using Document.createEvent().\n

Events initialized in this way must have been created with the\nDocument.createEvent() method.\nThis method must be called to set the event\nbefore it is dispatched, using EventTarget.dispatchEvent().\nOnce dispatched, it doesn't do anything anymore.\n

\n

Note:\nDo not use this method anymore as it is deprecated.\nInstead use specific event constructors, like Event().\nThe section on Creating and dispatching events gives more information about the way to use these.\n

", "parameters": { "type": "A string defining the type of event.", "bubbles": "A boolean value deciding whether the event should bubble up through the\nevent chain or not. Once set, the read-only property Event.bubbles\nwill give its value.", @@ -5530,7 +5614,7 @@ "Firefox": "1.5", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The read-only originalTarget property of the Event interface returns the original target of the event before any retargetings. Unlike Event.explicitOriginalTarget it can also be native anonymous content." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The read-only originalTarget property of the Event interface returns the original target of the event before any retargetings. Unlike Event.explicitOriginalTarget it can also be native anonymous content." }, "event.preventdefault": { "url": "$MDN_URL$/web/api/event/preventdefault", @@ -5554,7 +5638,8 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The preventDefault() method of the Event interface tells the user agent that if the event does not get explicitly handled, its default action should not be taken as it normally would be.\n

The event continues to propagate as usual,\nunless one of its event listeners calls\nstopPropagation()\nor stopImmediatePropagation(),\neither of which terminates propagation at once.\n

As noted below, calling preventDefault() for a\nnon-cancelable event, such as one dispatched via\nEventTarget.dispatchEvent(), without specifying\ncancelable: true has no effect.\n

If a passive listener calls preventDefault(), nothing will happen and a console warning may be generated.\n

\n

Note:\nLook for better alternatives than using preventDefault() to block default actions. For example, you can use the disabled or readonly attribute on a form control to prevent it from being interacted with, use HTML constraint validation to reject invalid input, or use the overflow property to prevent scrolling.\n

" + "doc": "

Note: This feature is available in Web Workers.

\n

The preventDefault() method of the Event interface tells the user agent that the event is being explicitly handled, so its default action, such as page scrolling, link navigation, or pasting text, should not be taken.\n

The event continues to propagate as usual,\nunless one of its event listeners calls\nstopPropagation()\nor stopImmediatePropagation(),\neither of which terminates propagation at once.\n

As noted below, calling preventDefault() for a\nnon-cancelable event, such as one dispatched via\nEventTarget.dispatchEvent(), without specifying\ncancelable: true has no effect.\n

If a passive listener calls preventDefault(), nothing will happen and a console warning may be generated.\n

\n

Note:\nLook for better alternatives than using preventDefault() to block default actions. For example, you can use the disabled or readonly attribute on a form control to prevent it from being interacted with, use HTML constraint validation to reject invalid input, or use the overflow property to prevent scrolling.\n

", + "returns": "None (undefined)." }, "event.returnvalue": { "url": "$MDN_URL$/web/api/event/returnvalue", @@ -5618,7 +5703,8 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The stopImmediatePropagation() method of the\nEvent interface prevents other listeners of the same event from being called.\n

If several listeners are attached to the same element for the same event type, they are called in the order in which they were added. If stopImmediatePropagation() is invoked during one such call, no remaining listeners will be called, either on that element or any other element." + "doc": "

Note: This feature is available in Web Workers.

\n

The stopImmediatePropagation() method of the\nEvent interface prevents other listeners of the same event from being called.\n

If several listeners are attached to the same element for the same event type, they are called in the order in which they were added. If stopImmediatePropagation() is invoked during one such call, no remaining listeners will be called, either on that element or any other element.", + "returns": "None (undefined)." }, "event.stoppropagation": { "url": "$MDN_URL$/web/api/event/stoppropagation", @@ -5900,7 +5986,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The EventTarget interface is implemented by objects that can receive events and may have listeners for them.\nIn other words, any target of events implements the three methods associated with this interface.\n

Element, and its children, as well as Document and Window, are the most common event targets,\nbut other objects can be event targets, too.\nFor example IDBRequest, AudioNode, and AudioContext are also event targets.\n

Many event targets (including elements, documents, and windows) also support setting event handlers via onevent properties and attributes." + "doc": "

Note: This feature is available in Web Workers.

\n

The EventTarget interface is implemented by objects that can receive events and may have listeners for them.\nIn other words, any target of events implements the three methods associated with this interface.\n

Element, and its children, as well as Document and Window, are the most common event targets,\nbut other objects can be event targets, too.\nFor example IDBRequest, AudioNode, and AudioContext are also event targets.\n

Many event targets (including elements, documents, and windows) also support registering event handlers via onevent properties and attributes." }, "eventtarget.addeventlistener": { "url": "$MDN_URL$/web/api/eventtarget/addeventlistener", @@ -5926,10 +6012,10 @@ }, "doc": "

Note: This feature is available in Web Workers.

\n

The addEventListener() method of the EventTarget interface\nsets up a function that will be called whenever the specified event is delivered to the target.\n

Common targets are Element, or its children, Document, and Window,\nbut the target may be any object that supports events (such as IDBRequest).\n

\n

Note:\nThe addEventListener() method is the recommended way to register an event listener. The benefits are as follows:\n

    \n
  • It allows adding more than one handler for an event. This is particularly\nuseful for libraries, JavaScript modules, or any other kind of\ncode that needs to work well with other libraries or extensions.
  • \n
  • In contrast to using an onXYZ property, it gives you finer-grained control of the phase when the listener is activated (capturing vs. bubbling).
  • \n
  • It works on any event target, not just HTML or SVG elements.
  • \n
\n
\n

The method addEventListener() works by adding a function, or an object that implements a handleEvent() function, to the list of event listeners for the specified event type\non the EventTarget on which it's called. If the function or object is already in the list of event listeners for this target, the function or object is not added a second time.\n

\n

Note:\nIf a particular anonymous function is in the list of event listeners registered for a certain target, and then later in the code, an identical anonymous function is given in an addEventListener call, the second function will also be added to the list of event listeners for that target.\n

Indeed, anonymous functions are not identical even if defined using\nthe same unchanging source-code called repeatedly, even if in a loop.\n

Repeatedly defining the same unnamed function in such cases can be\nproblematic. (See Memory issues, below.)\n

\n

If an event listener is added to an EventTarget from inside another listener —\nthat is, during the processing of the event —\nthat event will not trigger the new listener.\nHowever, the new listener may be triggered during a later stage of event flow,\nsuch as during the bubbling phase.", "parameters": { - "type": "A case-sensitive string representing the event type to listen for.", + "type": "A case-sensitive string representing the event type to listen for.", "listener": "The object that receives a notification (an object that implements the\nEvent interface) when an event of the specified type occurs. This must\nbe null, an object with a handleEvent() method, or a JavaScript\nfunction. See\nThe event listener callback for details on the callback itself.", "options": "An object that specifies characteristics about the event listener. The available\noptions are:\n

\n
capture Optional
\n
\n

A boolean value indicating that events of this type will be dispatched\nto the registered listener before being dispatched to any\nEventTarget beneath it in the DOM tree. If not specified, defaults to false.\n

\n
once Optional
\n
\n

A boolean value indicating that the listener\nshould be invoked at most once after being added. If true, the\nlistener would be automatically removed when invoked. If not specified, defaults to false.\n

\n
passive Optional
\n
\n

A boolean value that, if true, indicates that the function specified by listener will never call preventDefault(). If a passive listener calls preventDefault(), nothing will happen and a console warning may be generated.\n

If this option is not specified it defaults to false – except that in browsers other than Safari, it defaults to true for wheel, mousewheel, touchstart and touchmove events. See Using passive listeners to learn more.\n

\n
signal Optional
\n
\n

An AbortSignal. The listener will be removed when the abort() method of the AbortController which owns the AbortSignal is called. If not specified, no AbortSignal is associated with the listener.\n

\n
", - "useCapture": "A boolean value indicating whether events of this type will be dispatched to\nthe registered listener before being dispatched to\nany EventTarget beneath it in the DOM tree. Events that are bubbling\nupward through the tree will not trigger a listener designated to use capture. Event\nbubbling and capturing are two ways of propagating events that occur in an element\nthat is nested within another element, when both elements have registered a handle for\nthat event. The event propagation mode determines the order in which elements receive\nthe event. See DOM Level 3 Events and JavaScript Event order for a detailed explanation.\nIf not specified, useCapture defaults to false.\n
\n

Note:\nFor event listeners attached to the event target, the event is in the target phase, rather than the capturing and bubbling phases.\nEvent listeners in the capturing phase are called before event listeners in the target and bubbling phases.\n

", + "useCapture": "A boolean value indicating whether events of this type will be dispatched to\nthe registered listener before being dispatched to\nany EventTarget beneath it in the DOM tree. Events that are bubbling\nupward through the tree will not trigger a listener designated to use capture. Event\nbubbling and capturing are two ways of propagating events that occur in an element\nthat is nested within another element, when both elements have registered a handle for\nthat event. The event propagation mode determines the order in which elements receive\nthe event. See the DOM spec and JavaScript Event order for a detailed explanation.\nIf not specified, useCapture defaults to false.\n
\n

Note:\nFor event listeners attached to the event target, the event is in the target phase, rather than the capturing and bubbling phases.\nEvent listeners in the capturing phase are called before event listeners in the target and bubbling phases.\n

", "wantsUntrusted": "A Firefox (Gecko)-specific parameter. If true, the listener receives\nsynthetic events dispatched by web content (the default is false for\nbrowser chrome and true for regular web pages). This\nparameter is useful for code found in add-ons, as well as the browser itself." }, "returns": "None (undefined)." @@ -6030,14 +6116,17 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The ExtendableCookieChangeEvent interface of the Cookie Store API is the event type passed to cookiechange event fired at the ServiceWorkerGlobalScope when any cookie changes occur which match the service worker's cookie change subscription list. A cookie change event consists of a cookie and a type. (either \"changed\" or \"deleted\")\n

Cookie changes that cause the ExtendableCookieChangeEvent to be dispatched are:\n

    \n
  • A cookie is newly created and not immediately removed. In this case type is \"changed\".
  • \n
  • A cookie is newly created and immediately removed. In this case type is \"deleted\"
  • \n
  • A cookie is removed. In this case type is \"deleted\".
  • \n
\n
\n

Note:\nA cookie that is replaced due to the insertion of another cookie with the same name, domain, and path, is ignored and does not trigger a change event.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The ExtendableCookieChangeEvent interface of the Cookie Store API is the event type passed to cookiechange event fired at the ServiceWorkerGlobalScope when any cookie changes occur which match the service worker's cookie change subscription list. A cookie change event consists of a cookie and a type (either \"changed\" or \"deleted\").\n

Cookie changes that cause the ExtendableCookieChangeEvent to be dispatched are:\n

    \n
  • A cookie is newly created and not immediately removed, or if a cookies is replaced.\nIn this case type is \"changed\".
  • \n
  • A cookie is newly created and immediately removed.\nIn this case type is \"deleted\"
  • \n
  • A cookie is removed. In this case type is \"deleted\".
  • \n
" }, "extendablecookiechangeevent.changed": { "url": "$MDN_URL$/web/api/extendablecookiechangeevent/changed", @@ -6048,12 +6137,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The changed read-only property of the ExtendableCookieChangeEvent interface returns any cookies that have been changed by the given ExtendableCookieChangeEvent instance." }, @@ -6066,12 +6158,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The deleted read-only property of the ExtendableCookieChangeEvent interface returns any cookies that have been deleted by the given ExtendableCookieChangeEvent instance." }, @@ -6084,12 +6179,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The ExtendableCookieChangeEvent() constructor creates a new ExtendableCookieChangeEvent object\nwhich is the event type passed to cookiechange event fired at the ServiceWorkerGlobalScope when any cookie changes occur which match the service worker's cookie change subscription list.\nThis constructor is called by the browser when a change event occurs.\n

\n

Note:\nThis event constructor is generally not needed for production websites. It's primary use is for tests that require an instance of this event.\n

", "parameters": { @@ -6503,9 +6601,9 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The FederatedCredential()\nconstructor creates a new FederatedCredential object. In\nsupporting browsers, an instance of this class may be passed the credential\nreceived from the init object for global fetch().", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The FederatedCredential() constructor creates a new FederatedCredential object. In supporting browsers, an instance of this class may be passed the credential received from the init object for global fetch().", "parameters": { - "init": "Options are:\n

\n
provider
\n
\n

A string; identifying the credential\nprovider.\n

\n
" + "data": "A FederatedCredentialInit object. An object with the following properties:\n
\n
name Optional
\n
\n

A string representing the credential username.\n

\n
iconURL Optional
\n
\n

A string representing the URL of an icon or avatar to be associated with the credential.\n

\n
origin
\n
\n

A string representing the credential's origin. FederatedCredential objects are origin-bound, so they will only be usable on the origin specified here.\n

\n
provider
\n
\n

A string which identifies the credentials' federated identity provider, specified as the origin that the provider uses to sign users in (for example \"https://www.facebook.com\" or \"https://accounts.google.com\").\n

\n
protocol Optional
\n
\n

A string representing the protocol of the credentials' federated identity provider (for example, \"openidconnect\").\n

\n
" } }, "federatedcredential.protocol": { @@ -6553,9 +6651,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -6570,9 +6668,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -6588,15 +6686,15 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The reportEvent() method of the\nFence interface triggers the submission of report data via a beacon to one or more specific URLs registered via the registerAdBeacon() method of the Protected Audience API, for the purpose of collecting ad auction results.\n

\n

Note: setReportEventDataForAutomaticBeacons() provides similar report data submission, except in that case the submission is triggered via a navigation rather than by an explicit method call.\n

", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The reportEvent() method of the\nFence interface triggers the submission of report data via a beacon to one or more specific URLs registered via the registerAdBeacon() method of the Protected Audience API, for the purpose of collecting ad auction results.\n

\n

Note:\nsetReportEventDataForAutomaticBeacons() provides similar report data submission, except in that case the submission is triggered via a navigation rather than by an explicit method call.\n

", "parameters": { "event": "An object or string representing the data to send.\n
    \n
  • An object value defines a specific report event that you want to send. The required properties are as follows:\n
    \n
    eventType
    \n
    \n

    A string representing the type of event that is being reported — for example you might be interested in how many times an ad is clicked on. This string can be any relevant event name (for example click). This needs to match the event type specified in the associated registerAdBeacon() call in a Protected Audience API worklet.\n

    \n
    eventData
    \n
    \n

    A string representing the data to be sent.\n

    \n
    destination
    \n
    \n

    An array containing one or more enumerated values representing destination types. These are the involved parties that will receive the data to their registered URLs (i.e., via registerAdBeacon()). The possible values are:\n

      \n
    • \"buyer\": The bidder in the ad auction.
    • \n
    • \"seller\": The top-level seller running the ad auction.
    • \n
    • \"component-seller\": The seller for a component auction in a multi-level auction.
    • \n
    • \"direct-seller\": The seller that directly ran the auction the buyer bid in. If the ad was a single-level auction, the value used will be \"seller\". If the ad was a multi-level auction, the value used will be \"component-seller\".
    • \n
    • \"shared-storage-select-url\": A Shared Storage API storage location, as defined in a Window.sharedStorage.selectURL() method call.
    • \n
    \n
    \n
    \n
  • \n
  • A string value represents an eventType, for example \"click\" (see the earlier definition of eventType). When an eventType string is passed as the value of reportEvent(), it triggers all Private Aggregation contributions that were made conditional on that event type (for example via PrivateAggregation.contributeToHistogramOnEvent()) to be sent.
  • \n
" }, @@ -6609,15 +6707,15 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The setReportEventDataForAutomaticBeacons() method of the\nFence interface specifies event data that will be sent when a navigation occurs inside a <fencedframe>. This data will be sent via an automatic beacon to one or more specific URLs registered via the registerAdBeacon() method of the Protected Audience API, for the purpose of collecting reporting data for ad auction results.\n

\n

Note: reportEvent() provides similar report data submission, except in that case the submission is triggered via an explicit method call rather than a navigation.\n

", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The setReportEventDataForAutomaticBeacons() method of the\nFence interface specifies event data that will be sent when a navigation occurs inside a <fencedframe>. This data will be sent via an automatic beacon to one or more specific URLs registered via the registerAdBeacon() method of the Protected Audience API, for the purpose of collecting reporting data for ad auction results.\n

\n

Note:\nreportEvent() provides similar report data submission, except in that case the submission is triggered via an explicit method call rather than a navigation.\n

", "parameters": { "event": "an object representing the data to send. The possible properties are as follows:\n
\n
eventType
\n
\n

A string representing the type of event that is being reported. The available values are:\n

    \n
  • reserved.top_navigation_start: An event fired when a top-level navigation begins.
  • \n
  • reserved.top_navigation_commit: An event fired when a top-level navigation completes.
  • \n
\n
\n
eventData
\n
\n

A string representing the data to be sent.\n

\n
destination
\n
\n

An array containing one or more enumerated values representing destination types. These are the involved parties that will receive the data to their registered URLs (i.e., via registerAdBeacon()). The possible values are:\n

    \n
  • \"buyer\": The bidder in the ad auction.
  • \n
  • \"seller\": The top-level seller running the ad auction.
  • \n
  • \"component-seller\": The seller for a component auction in a multi-level auction.
  • \n
  • \"direct-seller\": The seller that directly ran the auction the buyer bid in. If the ad was a single-level auction, the value used will be \"seller\". If the ad was a multi-level auction, the value used will be \"component-seller\".
  • \n
  • \"shared-storage-select-url\": A Shared Storage API storage location, as defined in a Window.sharedStorage.selectURL() method call.
  • \n
\n
\n
once Optional
\n
\n

A boolean value. If set to true, the automatic beacon will only be sent for the next event, and beacons will not be sent for subsequent events until setReportEventDataForAutomaticBeacons() is invoked again. For example, when used with a click handler this can be used to send beacon data only for specific top-level navigations, rather than for every top-level navigation. This property defaults to false.\n

\n
" }, @@ -6630,9 +6728,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -6647,9 +6745,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -6692,18 +6790,7 @@ "throws": { "AbortError DOMException": "The request was aborted due to a call to the AbortController\nabort() method.", "NotAllowedError DOMException": "Thrown if use of the Topics API is specifically disallowed by a browsing-topics Permissions Policy, and a fetch() request was made with browsingTopics: true.", - "TypeError": "Can occur for the following reasons:", - "Blocked by a permissions policy": "Use of the\nAttribution Reporting API\nis blocked by a\nattribution-reporting\nPermissions-Policy\n, and a\nfetch()\nrequest was made with\nattributionReporting\nspecified.", - "Invalid header name.": "
\n```js\n// space in \"C ontent-Type\"\nconst headers = {\n  \"C ontent-Type\": \"text/xml\",\n  \"Breaking-Bad\": \"<3\",\n};\nfetch(\"https://example.com/\", { headers });\n        \n```\n
", - "Invalid header value
\nThe header object must contain exactly two elements.": "
\n```js\nconst headers = [\n  [\"Content-Type\", \"text/html\", \"extra\"],\n  [\"Accept\"],\n];\nfetch(\"https://example.com/\", { headers });\n        \n```\n
", - "Invalid URL or scheme
\nor using a scheme that fetch does not support
\nor using a scheme that is not supported for a particular request mode.": "
\n```js\nfetch(\"blob://example.com/\", { mode: \"cors\" });\n        \n```\n
", - "URL includes credentials.": "
\n```js\nfetch(\"https://user:password@example.com/\");\n        \n```\n
", - "Invalid referrer URL.": "
\n```js\nfetch(\"https://example.com/\", { referrer: \"./abc\\u0000df\" });\n        \n```\n
", - "Invalid modes (navigate and websocket).": "
\n```js\nfetch(\"https://example.com/\", { mode: \"navigate\" });\n        \n```\n
", - "If the request cache mode is \"only-if-cached\" and the request mode is other than \"same-origin\".": "
\n```js\nfetch(\"https://example.com/\", {\n  cache: \"only-if-cached\",\n  mode: \"no-cors\",\n});\n        \n```\n
", - "If the request method is an invalid name token or one of the forbidden headers\n(CONNECT, TRACE or TRACK).": "
\n```js\nfetch(\"https://example.com/\", { method: \"CONNECT\" });\n        \n```\n
", - "If the request mode is \"no-cors\" and the request method is not a CORS-safe-listed method\n(GET, HEAD, or POST).": "
\n```js\nfetch(\"https://example.com/\", {\n  method: \"CONNECT\",\n  mode: \"no-cors\",\n});\n        \n```\n
", - "If the request method is GET or HEAD and the body is non-null or not undefined.": "
\n```js\nfetch(\"https://example.com/\", {\n  method: \"GET\",\n  body: new FormData(),\n});\n        \n```\n
" + "TypeError": "Can occur for the following reasons:\n
    \n
  • The requested URL is invalid.
  • \n
  • The requested URL includes credentials (username and password).
  • \n
  • The RequestInit object passed as the value of options included properties with invalid values.
  • \n
  • The request is blocked by a permissions policy.
  • \n
  • There is a network error (for example, because the device does not have connectivity).
  • \n
" } }, "fetchevent": { @@ -6810,7 +6897,7 @@ "Edge": "17", "Opera": "27" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is only available in Service Workers.

\n

The isReload read-only property of the\nFetchEvent interface returns true if the event was\ndispatched by the user attempting to reload the page, and false otherwise.\nPressing the refresh button is a reload while clicking a link and pressing the back\nbutton is not." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is only available in Service Workers.

\n

The isReload read-only property of the\nFetchEvent interface returns true if the event was\ndispatched by the user attempting to reload the page, and false otherwise.\nPressing the refresh button is a reload while clicking a link and pressing the back\nbutton is not." }, "fetchevent.preloadresponse": { "url": "$MDN_URL$/web/api/fetchevent/preloadresponse", @@ -6927,7 +7014,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The FetchLaterResult interface of the fetchLater() API is returned by the Window.FetchLater() method after a deferred fetch has been created.\n

It contains a single activated property that indicates whether the deferred request has been sent out or not.\n

After a successful sending, the whole response is ignored — including body and headers — so the response of the deferred fetch is never returned to the FetchLaterResult interface." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The FetchLaterResult interface of the fetchLater() API is returned by the Window.fetchLater() method after a deferred fetch has been created.\n

It contains a single activated property that indicates whether the deferred request has been sent out or not.\n

After a successful sending, the whole response is ignored — including body and headers — so the response of the deferred fetch is never returned to the FetchLaterResult interface." }, "fetchlaterresult.activated": { "url": "$MDN_URL$/web/api/fetchlaterresult/activated", @@ -6994,7 +7081,7 @@ }, "doc": "

Note: This feature is available in Web Workers.

\n

The File() constructor creates a new File\nobject instance.", "parameters": { - "fileBits": "An iterable\nobject such as an Array, having ArrayBuffers,\nTypedArrays, DataViews, Blobs, strings,\nor a mix of any of such elements, that will be put inside the File.\nNote that strings here are encoded as UTF-8, unlike the usual JavaScript UTF-16 strings.", + "fileBits": "An iterable\nobject such as an Array, having ArrayBuffers,\nTypedArrays, DataViews, Blobs, strings,\nor a mix of any of such elements, that will be put inside the File.\nNote that strings here are encoded as UTF-8, unlike the usual JavaScript UTF-16 strings.", "fileName": "A string representing the file name or the path to the file.", "options": "An options object containing optional attributes for the file. Available options are\nas follows:\n

\n
type Optional
\n
\n

A string representing the MIME type of the\ncontent that will be put into the file. Defaults to a value of \"\".\n

\n
endings Optional
\n
\n

How to interpret newline characters (\\n) within the contents, if\nthe data is text. The default value, transparent, copies newline\ncharacters into the blob without changing them. To convert newlines to the host\nsystem's native convention, specify the value native.\n

\n
lastModified Optional
\n
\n

A number representing the number of milliseconds\nbetween the Unix time epoch and when the file was last modified. Defaults to a\nvalue of Date.now().\n

\n
" } @@ -7034,7 +7121,7 @@ "Edge": "", "Opera": "15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The lastModifiedDate read-only property of the File interface returns the last modified date of the file. Files without a known last modified date return the current date." + "doc": "

Note: This feature is available in Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The lastModifiedDate read-only property of the File interface returns the last modified date of the file. Files without a known last modified date return the current date." }, "file.name": { "url": "$MDN_URL$/web/api/file/name", @@ -7070,6 +7157,7 @@ "ChromeAndroid": "", "Edge": "13", "Firefox": "50", + "FirefoxAndroid": "142", "Opera": "15", "Safari": "11.1", "SafariIOS": "11.3" @@ -7082,7 +7170,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The FileEntrySync interface represents a file in a file system. It lets you write content to a file.\n

\n

Warning:\nThis interface is deprecated and is no more on the standard track.\nDo not use it anymore. Use the File and Directory Entries API instead.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The FileEntrySync interface represents a file in a file system. It lets you write content to a file.\n

\n

Warning:\nThis interface is deprecated and is no more on the standard track.\nDo not use it anymore. Use the File and Directory Entries API instead.\n

" }, "filelist": { "url": "$MDN_URL$/web/api/filelist", @@ -7529,7 +7617,7 @@ "returns": "A string representing the input data as a data URL.", "throws": { "NotFoundError DOMException": "Thrown if the resource represented by the DOM File or Blob cannot be found, e.g., because it has been erased.", - "SecurityError DOMException": "Thrown if one of the following problematic situation is detected:\n
    \n
  • the resource has been modified by a third party;
  • \n
  • too many read are performed simultaneously;
  • \n
  • the file pointed by the resource is unsafe for a use from the Web (like it is a system file).
  • \n
", + "SecurityError DOMException": "Thrown if one of the following problematic situation is detected:\n
    \n
  • the resource has been modified by a third party;
  • \n
  • too many read operations are performed simultaneously;
  • \n
  • the file pointed by the resource is unsafe for a use from the Web (like it is a system file).
  • \n
", "NotReadableError DOMException": "Thrown if the resource cannot be read due to a permission problem, like a concurrent lock.", "EncodingError DOMException": "Thrown if the resource is a data URL and exceed the limit length defined by each browser." } @@ -7582,7 +7670,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "The File and Directory Entries API interface FileSystem is used to represent a file system. These objects can be obtained from the filesystem property on any file system entry. Some browsers offer additional APIs to create and manage file systems, such as Chrome's requestFileSystem() method.\n

This interface will not grant you access to the users' filesystem. Instead, you will have a \"virtual drive\" within the browser sandbox if you want to gain access to the users' file system, you need to invoke the user, for example by installing a Chrome extension. The relevant Chrome API can be found here." + "doc": "The File and Directory Entries API interface FileSystem is used to represent a file system. These objects can be obtained from the filesystem property on any file system entry. Some browsers offer additional APIs to create and manage file systems, such as Chrome's requestFileSystem() method.\n

This interface will not grant you access to the users' filesystem. Instead, you will have a \"virtual drive\" within the browser sandbox if you want to gain access to the users' file system, you need to invoke the user, for example by installing a Chrome extension. The relevant Chrome API can be found in the Chrome developer docs." }, "filesystem.name": { "url": "$MDN_URL$/web/api/filesystem/name", @@ -7730,7 +7818,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The FileSystemDirectoryEntry interface's method\nremoveRecursively() removes\nthe directory as well as all of its content, hierarchically iterating over its entire\nsubtree of descendant files and directories.\n

To remove a single file, or an empty directory, you can also use\nFileSystemEntry.remove().", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The FileSystemDirectoryEntry interface's method\nremoveRecursively() removes\nthe directory as well as all of its content, hierarchically iterating over its entire\nsubtree of descendant files and directories.\n

To remove a single file, or an empty directory, you can also use\nFileSystemEntry.remove().", "parameters": { "successCallback": "A function to call once the directory removal process has completed. The callback\nhas no parameters.", "errorCallback": "A function to be called if an error occurs while attempting to remove the directory\nsubtree. Receives a DOMException describing the error which occurred as\ninput." @@ -7760,8 +7848,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The FileSystemDirectoryHandle interface of the File System API provides a handle to a file system directory.\n

The interface can be accessed via the window.showDirectoryPicker(), StorageManager.getDirectory(), DataTransferItem.getAsFileSystemHandle(), and FileSystemDirectoryHandle.getDirectoryHandle() methods." }, @@ -7781,8 +7870,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The entries() method of the\nFileSystemDirectoryHandle interface returns a new asynchronous iterator\nfor the iteration of the key-value pairs of the entries within the FileSystemDirectoryHandle\non which this method is called. The key-value pairs are\nin the form of an array like [key, value].", "returns": "A new asynchronous iterator containing the key-value pairs of each entry within the FileSystemDirectoryHandle.", @@ -7807,8 +7897,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getDirectoryHandle() method of the\nFileSystemDirectoryHandle interface returns a\nFileSystemDirectoryHandle for a subdirectory with the specified name\nwithin the directory handle on which the method is called.", "parameters": { @@ -7839,8 +7930,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getFileHandle() method of the\nFileSystemDirectoryHandle interface returns a\nFileSystemFileHandle for a file with the specified name, within the\ndirectory the method is called.", "parameters": { @@ -7871,8 +7963,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The keys() method of the\nFileSystemDirectoryHandle interface returns a new asynchronous iterator\nfor the iteration of the key of the entries within the FileSystemDirectoryHandle\non which this method is called.", "returns": "A new asynchronous iterator containing the keys of each entry within the FileSystemDirectoryHandle.", @@ -7897,8 +7990,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The removeEntry() method of the\nFileSystemDirectoryHandle interface attempts to remove an entry if the\ndirectory handle contains a file or directory called the name specified.", "parameters": { @@ -7929,8 +8023,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The resolve() method of the\nFileSystemDirectoryHandle interface returns an Array of\ndirectory names from the parent handle to the specified child entry, with the name of\nthe child entry as the last array item.", "parameters": { @@ -7954,8 +8049,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The values() method of the\nFileSystemDirectoryHandle interface returns a new asynchronous iterator\nfor the iteration of the value of the entries within the FileSystemDirectoryHandle\non which this method is called.", "returns": "A new asynchronous iterator containing the handles of each entry within the FileSystemDirectoryHandle.", @@ -8031,7 +8127,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The FileSystemEntry interface's method\ncopyTo() copies the file\nspecified by the entry to a new location on the file system.\n

There are some\ntypical restrictions on what you can do:\n

    \n
  • A directory can't be copied into itself.
  • \n
  • An entry can't be copied into its parent directory unless you specify a new name.
  • \n
  • When copying a directory, the copy is always recursive; you can't leave out\nsubfolders.
  • \n
", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The FileSystemEntry interface's method\ncopyTo() copies the file\nspecified by the entry to a new location on the file system.\n

There are some\ntypical restrictions on what you can do:\n

    \n
  • A directory can't be copied into itself.
  • \n
  • An entry can't be copied into its parent directory unless you specify a new name.
  • \n
  • When copying a directory, the copy is always recursive; you can't leave out\nsubfolders.
  • \n
", "parameters": { "newParent": "A FileSystemDirectoryEntry object specifying the destination\ndirectory for the copy operation.", "newName": "If this parameter is provided, the copy is given this string as its new file or\ndirectory name.", @@ -8089,7 +8185,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The FileSystemEntry interface's method\ngetMetadata() obtains a\nMetadata object with information about the file system entry, such as\nits modification date and time and its size.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The FileSystemEntry interface's method\ngetMetadata() obtains a\nMetadata object with information about the file system entry, such as\nits modification date and time and its size.", "parameters": { "successCallback": "A function which is called when the copy operation is successfully completed.\nReceives a single input parameter: a Metadata object with information\nabout the file.", "errorCallback": "An optional callback which is executed if an error occurs while looking up the\nmetadata. There's a single parameter: a DOMException describing what went\nwrong." @@ -8172,7 +8268,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The FileSystemEntry interface's method\nmoveTo() moves the file\nspecified by the entry to a new location on the file system, or renames the file if\nthe destination directory is the same as the source.\n

There are some typical\nrestrictions on what you can do:\n

    \n
  • A directory can't be moved into itself.
  • \n
  • An entry can't be moved into its parent directory unless you specify a new name.\nSpecifying a new name lets moveTo() double as a rename operation.
  • \n
  • When moving a directory, the move is always recursive; you can't leave out\nsubfolders.
  • \n
  • You can't move a file such that it replaces an existing directory, and you can't\nmove a directory such that it replaces an existing file. However, a file can replace a\nfile and a directory can replace a directory.
  • \n
  • You can only overwrite a directory if it's empty.
  • \n
", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The FileSystemEntry interface's method\nmoveTo() moves the file\nspecified by the entry to a new location on the file system, or renames the file if\nthe destination directory is the same as the source.\n

There are some typical\nrestrictions on what you can do:\n

    \n
  • A directory can't be moved into itself.
  • \n
  • An entry can't be moved into its parent directory unless you specify a new name.\nSpecifying a new name lets moveTo() double as a rename operation.
  • \n
  • When moving a directory, the move is always recursive; you can't leave out\nsubfolders.
  • \n
  • You can't move a file such that it replaces an existing directory, and you can't\nmove a directory such that it replaces an existing file. However, a file can replace a\nfile and a directory can replace a directory.
  • \n
  • You can only overwrite a directory if it's empty.
  • \n
", "parameters": { "newParent": "A FileSystemDirectoryEntry object specifying the destination\ndirectory for the move operation.", "newName": "If this parameter is provided, the entry is renamed to have this string as its new\nfile or directory name.", @@ -8213,7 +8309,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The FileSystemEntry interface's method\nremove() deletes the file\nor directory from the file system. Directories must be empty before they can be\nremoved.\n

To recursively remove a directory as well as all of its contents and its\nsubdirectories, call FileSystemDirectoryEntry.removeRecursively()\ninstead.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The FileSystemEntry interface's method\nremove() deletes the file\nor directory from the file system. Directories must be empty before they can be\nremoved.\n

To recursively remove a directory as well as all of its contents and its\nsubdirectories, call FileSystemDirectoryEntry.removeRecursively()\ninstead.", "parameters": { "successCallback": "A function which is called once the file has been successfully removed.", "errorCallback": "An optional callback which is called if the attempt to remove the file fails." @@ -8238,7 +8334,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The FileSystemEntry interface's method\ntoURL() creates and\nreturns a string containing a URL which can be used to identify the file system entry.\nThis is done by exposing a new URL scheme—filesystem:—that can be used as\nthe value of src and href attributes.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The FileSystemEntry interface's method\ntoURL() creates and\nreturns a string containing a URL which can be used to identify the file system entry.\nThis is done by exposing a new URL scheme—filesystem:—that can be used as\nthe value of src and href attributes.", "parameters": { "mimeType": "An optional string specifying the MIME type to use when interpreting the file. This\ncan be used to help deal with files whose types aren't recognized automatically by the\nuser agent. If this parameter is omitted, the user agent uses its standard algorithms\nto identify the file." }, @@ -8272,7 +8368,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The FileSystemFileEntry interface's method\ncreateWriter() returns a FileWriter object\nwhich can be used to write data into the file represented by the directory entry.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The FileSystemFileEntry interface's method\ncreateWriter() returns a FileWriter object\nwhich can be used to write data into the file represented by the directory entry.", "parameters": { "successCallback": "A callback function which is called when the FileWriter has been\ncreated successfully; the FileWriter is passed into the callback as the\nonly parameter.", "errorCallback": "If provided, this must be a method which is called when an error occurs while trying\nto create the FileWriter. This callback receives as input a\nDOMException object describing the error." @@ -8317,8 +8413,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The FileSystemFileHandle interface of the File System API represents a handle to a file system entry. The interface is accessed through the window.showOpenFilePicker() method.\n

Note that read and write operations depend on file-access permissions that do not persist after a page refresh if no other tabs for that origin remain open. The queryPermission method of the FileSystemHandle interface can be used to verify permission state before accessing a file." }, @@ -8338,8 +8435,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Dedicated Web Workers.

\n

The createSyncAccessHandle() method of the\nFileSystemFileHandle interface returns a Promise which resolves to a FileSystemSyncAccessHandle object\nthat can be used to synchronously read from and write to a file. The synchronous nature of this method brings performance advantages,\nbut it is only usable inside dedicated Web Workers for files within the origin private file system.\n

Creating a FileSystemSyncAccessHandle takes an exclusive lock on the file associated with the file handle. This prevents the creation of further FileSystemSyncAccessHandles or FileSystemWritableFileStreams for the file until the existing access handle is closed.", "parameters": { @@ -8364,10 +8462,13 @@ "Edge": "86", "Firefox": "111", "FirefoxAndroid": "111", - "Opera": "72" + "Opera": "72", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createWritable() method of the FileSystemFileHandle interface creates a FileSystemWritableFileStream that can be used to write to a file.\nThe method returns a Promise which resolves to this created stream.\n

Any changes made through the stream won't be reflected in the file represented by the file handle until the stream has been closed.\nThis is typically implemented by writing data to a temporary file, and only replacing the file represented by file handle with the temporary file when the writable file stream is closed.", "parameters": { @@ -8397,8 +8498,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getFile() method of the\nFileSystemFileHandle interface returns a Promise which resolves to a\nFile object representing the state on disk of the entry represented by the handle.\n

If the file on disk changes or is removed after this method is called, the returned\nFile object will likely be no longer readable.", "returns": "A Promise which resolves to a File object.", @@ -8423,8 +8525,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The FileSystemHandle interface of the File System API is an object which represents a file or directory entry. Multiple handles can represent the same entry. For the most part you do not work with FileSystemHandle directly but rather its child interfaces FileSystemFileHandle and FileSystemDirectoryHandle." }, @@ -8444,8 +8547,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The isSameEntry() method of the\nFileSystemHandle interface compares two handles to see if the associated entries (either a file or directory) match.", "parameters": { @@ -8469,8 +8573,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The kind read-only property of the\nFileSystemHandle interface returns the type of entry. This is\n'file' if the associated entry is a file or 'directory'. It is\nused to distinguish files from directories when iterating over the contents of a\ndirectory." }, @@ -8490,8 +8595,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The name read-only property of the\nFileSystemHandle interface returns the name of the entry represented by\nhandle." }, @@ -8512,11 +8618,11 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The queryPermission() method of the\nFileSystemHandle interface queries the current permission state of the\ncurrent handle.", "parameters": { - "descriptor": "An object which specifies the permission mode to query for. Options are as follows:\n

\n
'mode' Optional
\n
\n

Can be either 'read' or 'readwrite'.\n

\n
" + "descriptor": "An object which specifies the permission mode to query for. Options are as follows:\n
\n
'mode' Optional
\n
\n

Can be either 'read', 'write', or 'readwrite'.\n

\n
" }, "returns": "A Promise that resolves with PermissionStatus.state which is one of 'granted', 'denied' or 'prompt'. It may also reject with one of the exceptions below.\n

If this resolves with \"prompt\", the website will have to call requestPermission() before any\noperations on the handle can be done. If this resolves with \"denied\" any operations will\nreject. Usually handles returned by the local file system handle factories will\ninitially resolves with \"granted\" for their read permission state. However, other than through\nthe user revoking permission, a handle retrieved from IndexedDB is also likely to resolves with\n\"prompt\".", "throws": { - "TypeError": "Thrown if mode is specified with a value other than\n'read' or 'readwrite'" + "TypeError": "Thrown if mode is specified with a value other than\n'read', 'write', or 'readwrite'" } }, "filesystemhandle.remove": { @@ -8530,7 +8636,7 @@ "Edge": "110", "Opera": "96" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The remove() method of the FileSystemHandle interface requests removal of the entry represented by the handle from the underlying file system.\n

The remove() method allows you to remove a file or directory directly from its handle. Without this method, you would have to obtain the handle of the parent directory, then call FileSystemDirectoryHandle.removeEntry() on that to remove it.\n

You can also call remove() on the root directory of the Origin Private File System to clear its contents, after which a new empty OPFS is created.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The remove() method of the FileSystemHandle interface requests removal of the entry represented by the handle from the underlying file system.\n

The remove() method allows you to remove a file or directory directly from its handle. Without this method, you would have to obtain the handle of the parent directory, then call FileSystemDirectoryHandle.removeEntry() on that to remove it.\n

You can also call remove() on the root directory of the Origin Private File System to clear its contents, after which a new empty OPFS is created.", "parameters": { "options": "An object that specifies options for the removal. Possible properties are as follows:\n

\n
recursive Optional
\n
\n

A boolean value that defaults to false. When set to true and the entry is a directory, its contents will be removed recursively.\n

\n
" }, @@ -8559,11 +8665,11 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The requestPermission() method of the\nFileSystemHandle interface requests read or readwrite permissions for the\nfile handle.", "parameters": { - "descriptor": "An object which specifies the permission mode to query for. Options are as follows:\n

\n
'mode' Optional
\n
\n

Can be either 'read' or 'readwrite'.\n

\n
" + "descriptor": "An object which specifies the permission mode to query for. Options are as follows:\n
\n
'mode' Optional
\n
\n

Can be either 'read', 'write', or 'readwrite'.\n

\n
" }, "returns": "A Promise that resolves with PermissionStatus.state which is one of 'granted', 'denied' or 'prompt'. It may also reject with one of the exceptions below.", "throws": { - "TypeError": "Thrown if no parameter is specified or the mode is not that of\n'read' or 'readwrite'", + "TypeError": "Thrown if no parameter is specified or the mode is not that of\n'read', 'write', or 'readwrite'", "SecurityError DOMException": "Thrown in one of the following cases:\n
    \n
  • The method was called in a context that's not same-origin as the top-level context (i.e., a cross-origin iframe).
  • \n
  • There was no transient user activation such as a button press. This includes when the handle is in a non-Window context which cannot consume user activation, such as a worker.
  • \n
" } }, @@ -8577,7 +8683,7 @@ "Edge": "133", "Opera": "118" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The FileSystemObserver interface of the File System API provides a mechanism to observe changes to the user-observable file system and the Origin Private File System (OPFS). This means web applications don't have to poll the file system to find changes in the files or folder structure, which can be time-consuming and wasteful." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The FileSystemObserver interface of the File System API provides a mechanism to observe changes to the user-observable file system and the Origin Private File System (OPFS). This means web applications don't have to poll the file system to find changes in the files or folder structure, which can be time-consuming and wasteful." }, "filesystemobserver.disconnect": { "url": "$MDN_URL$/web/api/filesystemobserver/disconnect", @@ -8589,7 +8695,7 @@ "Edge": "133", "Opera": "118" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The disconnect() method of the\nFileSystemObserver interface stops the observer observing the file system.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The disconnect() method of the\nFileSystemObserver interface stops the observer observing the file system.", "returns": "None (undefined)." }, "filesystemobserver.filesystemobserver": { @@ -8602,7 +8708,7 @@ "Edge": "133", "Opera": "118" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The FileSystemObserver() constructor creates a new FileSystemObserver object instance.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The FileSystemObserver() constructor creates a new FileSystemObserver object instance.", "parameters": { "callback": "A user-defined callback function that will be called when the observer has observed a change in the file system entry it has been asked to observe (via FileSystemObserver.observe()). The callback function will be passed the following two parameters:\n

\n
records
\n
\n

An array of FileSystemChangeRecord objects that contain details of all the observed changes.\n

\n
observer
\n
\n

A reference to the current FileSystemObserver object, which is made available in case, for example, you want to stop observations after the current records have been received using the FileSystemObserver.disconnect() method.\n

\n
" }, @@ -8618,7 +8724,7 @@ "Edge": "133", "Opera": "118" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The observe() method of the\nFileSystemObserver interface asks the observer to start observing changes to a given file or directory.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The observe() method of the\nFileSystemObserver interface asks the observer to start observing changes to a given file or directory.", "parameters": { "handle": "The handle of the file system entry representing the file or directory to observe.\n

", "options": "An object specifying options for the observe() call. This can contain the following properties:\n
\n
recursive
\n
\n

A boolean specifying whether you want to observe changes to a directory recursively. If set to true, changes are observed in the directory itself and all contained subdirectories and files. If set to false, changes are only observed in the directory itself and directly contained files (that is, files in subdirectories are excluded). Defaults to false.\n

This property has no effect if handle represents a file.\n

\n
" @@ -8639,7 +8745,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

In the File and Directory Entries API, a FileSystemSync object represents a file system. It has two properties.\n

\n

Warning:\nThis interface is deprecated and is no more on the standard track.\nDo not use it anymore. Use the File System API instead.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

In the File and Directory Entries API, a FileSystemSync object represents a file system. It has two properties.\n

\n

Warning:\nThis interface is deprecated and is no more on the standard track.\nDo not use it anymore. Use the File System API instead.\n

" }, "filesystemsyncaccesshandle": { "url": "$MDN_URL$/web/api/filesystemsyncaccesshandle", @@ -8657,8 +8763,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Dedicated Web Workers.

\n

The FileSystemSyncAccessHandle interface of the File System API represents a synchronous handle to a file system entry.\n

This class is only accessible inside dedicated Web Workers (so that its methods do not block execution on the main thread) for files within the origin private file system, which is not visible to end-users.\n

As a result, its methods are not subject to the same security checks as methods running on files within the user-visible file system, and so are much more performant. This makes them suitable for significant, large-scale file updates such as SQLite database modifications.\n

The interface is accessed through the FileSystemFileHandle.createSyncAccessHandle() method.\n

\n

Note:\nIn earlier versions of the spec, close(), flush(), getSize(), and truncate() were wrongly specified as asynchronous methods, and older versions of some browsers implement them in this way. However, all current browsers that support these methods implement them as synchronous methods.\n

" }, @@ -8678,8 +8785,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Dedicated Web Workers.

\n

The close() method of the\nFileSystemSyncAccessHandle interface closes an open synchronous file handle, disabling any further operations on it and releasing the exclusive lock previously put on the file associated with the file handle.\n

\n

Note:\nIn earlier versions of the spec, close(), flush(), getSize(), and truncate() were wrongly specified as asynchronous methods, and older versions of some browsers implement them in this way. However, all current browsers that support these methods implement them as synchronous methods.\n

", "returns": "None (undefined)." @@ -8700,8 +8808,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Dedicated Web Workers.

\n

The flush() method of the\nFileSystemSyncAccessHandle interface persists any changes made to the file associated with the handle via the write() method to disk.\n

Bear in mind that you only need to call this method if you need the changes committed to disk at a specific time, otherwise you can leave the underlying operating system to handle this when it sees fit, which should be OK in most cases.\n

\n

Note:\nIn earlier versions of the spec, close(), flush(), getSize(), and truncate() were wrongly specified as asynchronous methods, and older versions of some browsers implement them in this way. However, all current browsers that support these methods implement them as synchronous methods.\n

", "returns": "None (undefined).", @@ -8725,8 +8834,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Dedicated Web Workers.

\n

The getSize() method of the\nFileSystemSyncAccessHandle interface returns the size of the file associated with the handle in bytes.\n

\n

Note:\nIn earlier versions of the spec, close(), flush(), getSize(), and truncate() were wrongly specified as asynchronous methods, and older versions of some browsers implement them in this way. However, all current browsers that support these methods implement them as synchronous methods.\n

", "returns": "A number representing the size of the file in bytes.", @@ -8750,8 +8860,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Dedicated Web Workers.

\n

The read() method of the\nFileSystemSyncAccessHandle interface reads the content of the file associated with the handle into a specified buffer, optionally at a given offset.", "parameters": { @@ -8780,8 +8891,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Dedicated Web Workers.

\n

The truncate() method of the\nFileSystemSyncAccessHandle interface resizes the file associated with the handle to a specified number of bytes.\n

\n

Note:\nIn earlier versions of the spec, close(), flush(), getSize(), and truncate() were wrongly specified as asynchronous methods, and older versions of some browsers implement them in this way. However, all current browsers that support these methods implement them as synchronous methods.\n

", "parameters": { @@ -8790,7 +8902,7 @@ "returns": "None (undefined).", "throws": { "InvalidStateError DOMException": "Thrown if the associated access handle is already closed, or if the modification of the file's binary data otherwise fails.", - "QuotaExceededError DOMException": "Thrown if the newSize is larger than the original size of the file, and exceeds the browser's storage quota.", + "QuotaExceededError": "Thrown if the newSize is larger than the original size of the file, and exceeds the browser's storage quota.", "TypeError": "Thrown if the underlying file system does not support setting the file size to the new size." } }, @@ -8810,8 +8922,9 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Dedicated Web Workers.

\n

The write() method of the\nFileSystemSyncAccessHandle interface writes the content of a specified buffer to the file associated with the handle, optionally at a given offset.\n

Files within the origin private file system are not visible to end-users, therefore are not subject to the same security checks as methods running on files within the user-visible file system. As a result, writes performed using FileSystemSyncAccessHandle.write() are much more performant. This makes them suitable for significant, large-scale file updates such as SQLite database modifications.", "parameters": { @@ -8821,7 +8934,7 @@ "returns": "A number representing the number of bytes written to the file.", "throws": { "InvalidStateError DOMException": "Thrown if the associated access handle is already closed, or if the modification of the file's binary data completely fails.", - "QuotaExceededError DOMException": "Thrown if the increased data capacity exceeds the browser's storage quota.", + "QuotaExceededError": "Thrown if the increased data capacity exceeds the browser's storage quota.", "TypeError": "Thrown if the underlying file system does not support writing the file from the specified file offset." } }, @@ -8836,10 +8949,13 @@ "Edge": "86", "Firefox": "111", "FirefoxAndroid": "111", - "Opera": "72" + "Opera": "72", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The FileSystemWritableFileStream interface of the File System API is a WritableStream object with additional convenience methods, which operates on a single file on disk. The interface is accessed through the FileSystemFileHandle.createWritable() method." }, @@ -8854,10 +8970,13 @@ "Edge": "86", "Firefox": "111", "FirefoxAndroid": "111", - "Opera": "72" + "Opera": "72", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The seek() method of the FileSystemWritableFileStream interface updates the current file cursor offset to the position (in bytes) specified when calling the method.", "parameters": { @@ -8880,10 +8999,13 @@ "Edge": "86", "Firefox": "111", "FirefoxAndroid": "111", - "Opera": "72" + "Opera": "72", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The truncate() method of the FileSystemWritableFileStream interface resizes the file associated with the stream to the specified size in bytes.\n

If the size specified is larger than the current file size the file is padded with 0x00 bytes.\n

The file cursor is also updated when truncate() is called.\nIf the offset is smaller than the size, it remains unchanged.\nIf the offset is larger than size, the offset is set to that size.\nThis ensures that subsequent writes do not error.\n

No changes are written to the actual file on disk until the stream has been closed.\nChanges are typically written to a temporary file instead.", "parameters": { @@ -8892,7 +9014,7 @@ "returns": "A Promise that returns undefined.", "throws": { "NotAllowedError DOMException": "Thrown if PermissionStatus.state is not granted.", - "QuotaExceededError DOMException": "Thrown if the new size of the file is larger than the original size of the file, and exceeds the browser's storage quota.", + "QuotaExceededError": "Thrown if the new size of the file is larger than the original size of the file, and exceeds the browser's storage quota.", "TypeError": "Thrown if size is not a number or not defined." } }, @@ -8907,19 +9029,22 @@ "Edge": "86", "Firefox": "111", "FirefoxAndroid": "111", - "Opera": "72" + "Opera": "72", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The write() method of the FileSystemWritableFileStream interface writes content into the file the method is called on, at the current file cursor offset.\n

No changes are written to the actual file on disk until the stream has been closed.\nChanges are typically written to a temporary file instead. This method can also be used to seek to a byte point within the stream and truncate to modify the total bytes the file contains.", "parameters": { - "data": "Can be one of the following:\n

    \n
  • \n

    The file data to write, in the form of an ArrayBuffer, TypedArray, DataView, Blob, or string.\n

  • \n
  • \n

    An object containing the following properties:\n

    \n
    type
    \n
    \n

    A string that is one of \"write\", \"seek\", or \"truncate\".\n

    \n
    data
    \n
    \n

    The file data to write. Can be an ArrayBuffer, TypedArray, DataView, Blob, or string. This property is required if type is set to \"write\".\n

    \n
    position
    \n
    \n

    The byte position the current file cursor should move to if type \"seek\" is used. Can also be set if type is \"write\", in which case the write will start at the specified position.\n

    \n
    size
    \n
    \n

    A number representing the number of bytes the stream should contain. This property is required if type is set to \"truncate\".\n

    \n
    \n
  • \n
" + "data": "Can be one of the following:\n
    \n
  • The file data to write, in the form of an ArrayBuffer, TypedArray, DataView, Blob, or string.
  • \n
  • An object containing the following properties:\n
    \n
    type
    \n
    \n

    A string that is one of \"write\", \"seek\", or \"truncate\".\n

    \n
    data
    \n
    \n

    The file data to write. Can be an ArrayBuffer, TypedArray, DataView, Blob, or string. This property is required if type is set to \"write\".\n

    \n
    position
    \n
    \n

    The byte position the current file cursor should move to if type \"seek\" is used. Can also be set if type is \"write\", in which case the write will start at the specified position.\n

    \n
    size
    \n
    \n

    A number representing the number of bytes the stream should contain. This property is required if type is set to \"truncate\".\n

    \n
    \n
  • \n
" }, "returns": "A Promise that returns undefined.", "throws": { "NotAllowedError DOMException": "Thrown if PermissionStatus.state is not granted.", - "QuotaExceededError DOMException": "Thrown if the new size of the file is larger than the original size of the file, and exceeds the browser's storage quota.", + "QuotaExceededError": "Thrown if the new size of the file is larger than the original size of the file, and exceeds the browser's storage quota.", "TypeError": "Thrown if data is undefined, or if position or size aren't valid." } }, @@ -9411,22 +9536,25 @@ "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The variant property of the\nFontFace interface programmatically retrieves or sets font variant\nvalues." + "doc": "

Note: This feature is available in Web Workers.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The variant property of the\nFontFace interface programmatically retrieves or sets font variant\nvalues." }, "fontface.variationsettings": { "url": "$MDN_URL$/web/api/fontface/variationsettings", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", "Firefox": "62", - "FirefoxAndroid": "62" + "FirefoxAndroid": "62", + "Opera": "124" }, "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The variationSettings property of the FontFace interface retrieves or sets low-level OpenType or TrueType font variations.\n

This property is equivalent to the font-variation-settings descriptor." + "doc": "

Note: This feature is available in Web Workers.

\n

The variationSettings property of the FontFace interface retrieves or sets low-level OpenType or TrueType font variations.\n

This property is equivalent to the font-variation-settings descriptor." }, "fontface.weight": { "url": "$MDN_URL$/web/api/fontface/weight", @@ -10410,7 +10538,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The displayId read-only property of the Gamepad interface returns the VRDisplay.displayId of the associated VRDisplay — the VRDisplay that the gamepad is controlling the displayed scene of.\n

A Gamepad is considered to be associated with a VRDisplay if it reports a pose that is in the same space as the display's pose, see VRDisplay.getPose().\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Gamepads Module.\n

There is no direct replacement for this property. The Gamepad object associated with an XRInputSource can be obtained using the XRInputSource.gamepad property.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The displayId read-only property of the Gamepad interface returns the VRDisplay.displayId of the associated VRDisplay — the VRDisplay that the gamepad is controlling the displayed scene of.\n

A Gamepad is considered to be associated with a VRDisplay if it reports a pose that is in the same space as the display's pose, see VRDisplay.getPose().\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Gamepads Module.\n

There is no direct replacement for this property. The Gamepad object associated with an XRInputSource can be obtained using the XRInputSource.gamepad property.\n

" }, "gamepad.hand": { "url": "$MDN_URL$/web/api/gamepad/hand", @@ -10804,7 +10932,7 @@ "Opera": "55", "Safari": "16.4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The type read-only property of the GamepadHapticActuator interface returns an enumerated value representing the type of the haptic hardware.\n

This property is deprecated: use GamepadHapticActuator.effects to detect effect support." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The type read-only property of the GamepadHapticActuator interface returns an enumerated value representing the type of the haptic hardware.\n

This property is deprecated: use GamepadHapticActuator.effects to detect effect support." }, "gamepadpose": { "url": "$MDN_URL$/web/api/gamepadpose", @@ -10924,7 +11052,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The orientation read-only property of the GamepadPose interface returns the orientation of the Gamepad, as a quarternion value.\n

The value is a Float32Array, made up of the following values:\n

    \n
  • pitch — rotation around the X axis.
  • \n
  • yaw — rotation around the Y axis.
  • \n
  • roll — rotation around the Z axis.
  • \n
  • w — the fourth dimension (usually 1).
  • \n
\n

The orientation yaw (rotation around the y axis) is relative to the initial yaw of the sensor when it was first read." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The orientation read-only property of the GamepadPose interface returns the orientation of the Gamepad, as a quaternion value.\n

The value is a Float32Array, made up of the following values:\n

    \n
  • pitch — rotation around the X axis.
  • \n
  • yaw — rotation around the Y axis.
  • \n
  • roll — rotation around the Z axis.
  • \n
  • w — the fourth dimension (usually 1).
  • \n
\n

The orientation yaw (rotation around the y axis) is relative to the initial yaw of the sensor when it was first read." }, "gamepadpose.position": { "url": "$MDN_URL$/web/api/gamepadpose/position", @@ -11402,12 +11530,11 @@ "Safari": "9", "SafariIOS": "2" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The GestureEvent is a proprietary interface specific to WebKit which gives information regarding multi-touch gestures. Events using this interface include gesturestart, gesturechange, and gestureend." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The GestureEvent is a proprietary interface specific to WebKit which gives information regarding multi-touch gestures. Events using this interface include gesturestart, gesturechange, and gestureend." }, "gpu": { "url": "$MDN_URL$/web/api/gpu", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11415,17 +11542,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPU interface of the WebGPU API is the starting point for using WebGPU. It can be used to return a GPUAdapter from which you can request devices, configure features and limits, and more.\n

The GPU object for the current context is accessed via the Navigator.gpu or WorkerNavigator.gpu properties." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPU interface of the WebGPU API is the starting point for using WebGPU. It can be used to return a GPUAdapter from which you can request devices, configure features and limits, and more.\n

The GPU object for the current context is accessed via the Navigator.gpu or WorkerNavigator.gpu properties." }, "gpu.getpreferredcanvasformat": { "url": "$MDN_URL$/web/api/gpu/getpreferredcanvasformat", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11433,18 +11560,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getPreferredCanvasFormat() method of the\nGPU interface returns the optimal canvas texture format for displaying 8-bit depth, standard dynamic range content on the current system.\n

This is commonly used to provide a GPUCanvasContext.configure() call with the optimal format value for the current system. This is recommended — if you don't use the preferred format when configuring the canvas context, you may incur additional overhead, such as additional texture copies, depending on the platform.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getPreferredCanvasFormat() method of the\nGPU interface returns the optimal canvas texture format for displaying 8-bit depth, standard dynamic range content on the current system.\n

This is commonly used to provide a GPUCanvasContext.configure() call with the optimal format value for the current system. This is recommended — if you don't use the preferred format when configuring the canvas context, you may incur additional overhead, such as additional texture copies, depending on the platform.", "returns": "A string indicating a canvas texture format. The value can be rgba8unorm or bgra8unorm." }, "gpu.requestadapter": { "url": "$MDN_URL$/web/api/gpu/requestadapter", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11452,12 +11579,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The requestAdapter() method of the\nGPU interface returns a Promise that fulfills with a GPUAdapter object instance. From this you can request a GPUDevice, adapter info, features, and limits.\n

Note that the user agent chooses whether to return an adapter. If so, it chooses according to the provided options. If no options are provided, the device will provide access to the default adapter, which is usually good enough for most purposes.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The requestAdapter() method of the\nGPU interface returns a Promise that fulfills with a GPUAdapter object instance. From this you can request a GPUDevice, adapter info, features, and limits.\n

Note that the user agent chooses whether to return an adapter. If so, it chooses according to the provided options. If no options are provided, the device will provide access to the default adapter, which is usually good enough for most purposes.", "parameters": { "options": "An object containing the following properties:\n

\n
powerPreference Optional
\n
\n

An enumerated value that can be used to provide a hint to the user agent indicating what class of adapter should be chosen from the system's available adapters. Available values are:\n

    \n
  • undefined (or not specified), which provides no hint.
  • \n
  • \"low-power\", which provides a hint to prioritize power savings over performance. If your app runs OK with this setting, it is recommended to use it, as it can significantly improve battery life on portable devices. This is usually the default if no options are provided.
  • \n
  • \"high-performance\", which provides a hint to prioritize performance over power consumption. You are encouraged to only specify this value if absolutely necessary, since it may significantly decrease battery life on portable devices. It may also result in increased GPUDevice loss — the system will sometimes elect to switch to a lower-power adapter to save power.
  • \n
\n

This hint's primary purpose is to influence which GPU is used in a multi-GPU system. For instance, some laptops have a low-power integrated GPU and a high-performance discrete GPU. Different factors may affect which adapter is returned including battery status, attached displays, or removable GPUs.\n

\n

Note:\nOn Chrome running on dual-GPU macOS devices, if requestAdapter() is called without a powerPreference option, the high-performance discrete GPU is returned when the user's device is on AC power. Otherwise, the low-power integrated GPU is returned.\n

\n
\n
" }, @@ -11466,7 +11594,6 @@ "gpu.wgsllanguagefeatures": { "url": "$MDN_URL$/web/api/gpu/wgsllanguagefeatures", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11474,17 +11601,17 @@ "ChromeAndroid": "121", "Edge": "115", "Opera": "101", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The wgslLanguageFeatures read-only property of the\nGPU interface returns a WGSLLanguageFeatures object that reports the WGSL language extensions supported by the WebGPU implementation.\n

\n

Note:\nNot all WGSL language extensions are available to WebGPU in all browsers that support the API. We recommend you thoroughly test any extensions you choose to use.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The wgslLanguageFeatures read-only property of the\nGPU interface returns a WGSLLanguageFeatures object that reports the WGSL language extensions supported by the WebGPU implementation.\n

\n

Note:\nNot all WGSL language extensions are available to WebGPU in all browsers that support the API. We recommend you thoroughly test any extensions you choose to use.\n

" }, "gpuadapter": { "url": "$MDN_URL$/web/api/gpuadapter", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11492,17 +11619,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUAdapter interface of the WebGPU API represents a GPU adapter. From this you can request a GPUDevice, adapter info, features, and limits.\n

A GPUAdapter object is requested using the GPU.requestAdapter() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUAdapter interface of the WebGPU API represents a GPU adapter. From this you can request a GPUDevice, adapter info, features, and limits.\n

A GPUAdapter object is requested using the GPU.requestAdapter() method." }, "gpuadapter.features": { "url": "$MDN_URL$/web/api/gpuadapter/features", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11510,17 +11637,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The features read-only property of the\nGPUAdapter interface returns a GPUSupportedFeatures object that describes additional functionality supported by the adapter.\n

You should note that not all features will be available to WebGPU in all browsers that support it, even if the features are supported by the underlying hardware. This could be due to constraints in the underlying system, browser, or adapter. For example:\n

    \n
  • The underlying system might not be able to guarantee exposure of a feature in a way that is compatible with a certain browser.
  • \n
  • The browser vendor might not have found a secure way to implement support for that feature, or might just not have gotten round to it yet.
  • \n
\n

If you are hoping to take advantage of a specific additional feature in a WebGPU app, thorough testing is advised." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The features read-only property of the\nGPUAdapter interface returns a GPUSupportedFeatures object that describes additional functionality supported by the adapter.\n

You should note that not all features will be available to WebGPU in all browsers that support it, even if the features are supported by the underlying hardware. This could be due to constraints in the underlying system, browser, or adapter. For example:\n

    \n
  • The underlying system might not be able to guarantee exposure of a feature in a way that is compatible with a certain browser.
  • \n
  • The browser vendor might not have found a secure way to implement support for that feature, or might just not have gotten round to it yet.
  • \n
\n

If you are hoping to take advantage of a specific additional feature in a WebGPU app, thorough testing is advised." }, "gpuadapter.info": { "url": "$MDN_URL$/web/api/gpuadapter/info", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11528,35 +11655,29 @@ "ChromeAndroid": "127", "Edge": "127", "Opera": "113", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The info read-only property of the\nGPUAdapter interface returns a GPUAdapterInfo object containing identifying information about the adapter." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The info read-only property of the\nGPUAdapter interface returns a GPUAdapterInfo object containing identifying information about the adapter." }, "gpuadapter.isfallbackadapter": { "url": "$MDN_URL$/web/api/gpuadapter/isfallbackadapter", "status": [ - "Experimental", - "StandardTrack" + "Deprecated" ], "compatibility": { - "Chrome": "113", "ChromeAndroid": "121", - "Edge": "113", - "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, - "baseline": { - "level": "NONE" - }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The isFallbackAdapter read-only property of the\nGPUAdapter interface returns true if the adapter is a fallback adapter, and false if not." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The isFallbackAdapter read-only property of the\nGPUAdapter interface returns true if the adapter is a fallback adapter, and false if not." }, "gpuadapter.limits": { "url": "$MDN_URL$/web/api/gpuadapter/limits", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11564,12 +11685,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The limits read-only property of the\nGPUAdapter interface returns a GPUSupportedLimits object that describes the limits supported by the adapter.\n

You should note that, rather than reporting the exact limits of each GPU, browsers will likely report different tier values of different limits to reduce the unique information available to drive-by fingerprinting. For example, the tiers of a certain limit might be 2048, 8192, and 32768. If your GPU's actual limit is 16384, the browser will still report 8192.\n

Given that different browsers will handle this differently and the tier values may change over time, it is hard to provide an accurate account of what limit values to expect — thorough testing is advised." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The limits read-only property of the\nGPUAdapter interface returns a GPUSupportedLimits object that describes the limits supported by the adapter.\n

You should note that, rather than reporting the exact limits of each GPU, browsers will likely report different tier values of different limits to reduce the unique information available to drive-by fingerprinting. For example, the tiers of a certain limit might be 2048, 8192, and 32768. If your GPU's actual limit is 16384, the browser will still report 8192.\n

Given that different browsers will handle this differently and the tier values may change over time, it is hard to provide an accurate account of what limit values to expect — thorough testing is advised." }, "gpuadapter.requestadapterinfo": { "url": "$MDN_URL$/web/api/gpuadapter/requestadapterinfo", @@ -11579,13 +11701,12 @@ "compatibility": { "ChromeAndroid": "121" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The requestAdapterInfo() method of the\nGPUAdapter interface returns a Promise that fulfills with a GPUAdapterInfo object containing identifying information about an adapter.\n

requestAdapterInfo() has been removed from the WebGPU specification. Use GPUAdapter.info to access adapter information instead.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The requestAdapterInfo() method of the\nGPUAdapter interface returns a Promise that fulfills with a GPUAdapterInfo object containing identifying information about an adapter.\n

requestAdapterInfo() has been removed from the WebGPU specification. Use GPUAdapter.info to access adapter information instead.", "returns": "A Promise that fulfills with a GPUAdapterInfo object instance." }, "gpuadapter.requestdevice": { "url": "$MDN_URL$/web/api/gpuadapter/requestdevice", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11593,12 +11714,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The requestDevice() method of the\nGPUAdapter interface returns a Promise that fulfills with a GPUDevice object, which is the primary interface for communicating with the GPU.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The requestDevice() method of the\nGPUAdapter interface returns a Promise that fulfills with a GPUDevice object, which is the primary interface for communicating with the GPU.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
defaultQueue Optional
\n
\n

An object that provides information for the device's default GPUQueue (as returned by GPUDevice.queue). This object has a single property — label — which provides the default queue with a label value. If no value is provided, this defaults to an empty object, and the default queue's label will be an empty string.\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the GPUDevice, for example in GPUError messages or console warnings.\n

\n
requiredFeatures Optional
\n
\n

An array of strings representing additional functionality that you want supported by the returned GPUDevice. The requestDevice() call will fail if the GPUAdapter cannot provide these features. See GPUSupportedFeatures for a full list of possible features. This defaults to an empty array if no value is provided.\n

\n
requiredLimits Optional
\n
\n

An object containing properties representing the limits that you want supported by the returned GPUDevice. The requestDevice() call will fail if the GPUAdapter cannot provide these limits. Each key with a non-undefined value must be the name of a member of GPUSupportedLimits.\n

\n

Note:\nYou can request unknown limits when requesting a GPU device without causing an error. Such limits will be undefined. This is useful because it makes WebGPU code less brittle — a codebase won't stop working because a limit no longer exists in the adapter.\n

\n
\n
" }, @@ -11611,7 +11733,6 @@ "gpuadapterinfo": { "url": "$MDN_URL$/web/api/gpuadapterinfo", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11619,17 +11740,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUAdapterInfo interface of the WebGPU API contains identifying information about a GPUAdapter.\n

An adapter's GPUAdapterInfo can be retrieved using the GPUAdapter.info property of the adapter itself, or the GPUDevice.adapterInfo property of a device that originated from the adapter.\n

This object allows developers to access specific details about the user's GPU so that they can preemptively apply workarounds for GPU-specific bugs, or provide different codepaths to better suit different GPU architectures. Providing such information does present a security risk — it could be used for fingerprinting — therefore the information shared is kept at a minimum, and different browser vendors are likely to share different information types and granularities." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUAdapterInfo interface of the WebGPU API contains identifying information about a GPUAdapter.\n

An adapter's GPUAdapterInfo can be retrieved using the GPUAdapter.info property of the adapter itself, or the GPUDevice.adapterInfo property of a device that originated from the adapter.\n

This object allows developers to access specific details about the user's GPU so that they can preemptively apply workarounds for GPU-specific bugs, or provide different codepaths to better suit different GPU architectures. Providing such information does present a security risk — it could be used for fingerprinting — therefore the information shared is kept at a minimum, and different browser vendors are likely to share different information types and granularities." }, "gpuadapterinfo.architecture": { "url": "$MDN_URL$/web/api/gpuadapterinfo/architecture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11637,17 +11758,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The architecture read-only property of the\nGPUAdapterInfo interface returns the name of the family or class of GPUs the adapter belongs to, or an empty string if it is not available." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The architecture read-only property of the\nGPUAdapterInfo interface returns the name of the family or class of GPUs the adapter belongs to, or an empty string if it is not available." }, "gpuadapterinfo.description": { "url": "$MDN_URL$/web/api/gpuadapterinfo/description", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11655,17 +11776,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The description read-only property of the\nGPUAdapterInfo interface returns a human-readable string describing the adapter, or an empty string if it is not available." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The description read-only property of the\nGPUAdapterInfo interface returns a human-readable string describing the adapter, or an empty string if it is not available." }, "gpuadapterinfo.device": { "url": "$MDN_URL$/web/api/gpuadapterinfo/device", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11673,17 +11794,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The device read-only property of the\nGPUAdapterInfo interface returns a vendor-specific identifier for the adapter, or an empty string if it is not available." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The device read-only property of the\nGPUAdapterInfo interface returns a vendor-specific identifier for the adapter, or an empty string if it is not available." }, "gpuadapterinfo.subgroupmaxsize": { "url": "$MDN_URL$/web/api/gpuadapterinfo/subgroupmaxsize", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11695,12 +11816,11 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The subgroupMaxSize read-only property of the GPUAdapterInfo interface returns the maximum supported subgroup size for the GPUAdapter. This can be used along with the subgroups feature." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The subgroupMaxSize read-only property of the GPUAdapterInfo interface returns the maximum supported subgroup size for the GPUAdapter. This can be used along with the subgroups feature." }, "gpuadapterinfo.subgroupminsize": { "url": "$MDN_URL$/web/api/gpuadapterinfo/subgroupminsize", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11712,12 +11832,11 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The subgroupMinSize read-only property of the GPUAdapterInfo interface returns the minimum supported subgroup size for the GPUAdapter. This can be used along with the subgroups feature." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The subgroupMinSize read-only property of the GPUAdapterInfo interface returns the minimum supported subgroup size for the GPUAdapter. This can be used along with the subgroups feature." }, "gpuadapterinfo.vendor": { "url": "$MDN_URL$/web/api/gpuadapterinfo/vendor", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11725,17 +11844,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The vendor read-only property of the\nGPUAdapterInfo interface returns the name of the adapter vendor, or an empty string if it is not available." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The vendor read-only property of the\nGPUAdapterInfo interface returns the name of the adapter vendor, or an empty string if it is not available." }, "gpubindgroup": { "url": "$MDN_URL$/web/api/gpubindgroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11743,17 +11862,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUBindGroup interface of the WebGPU API is based on a GPUBindGroupLayout and defines a set of resources to be bound together in a group and how those resources are used in shader stages.\n

A GPUBindGroup object instance is created using the GPUDevice.createBindGroup() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUBindGroup interface of the WebGPU API is based on a GPUBindGroupLayout and defines a set of resources to be bound together in a group and how those resources are used in shader stages.\n

A GPUBindGroup object instance is created using the GPUDevice.createBindGroup() method." }, "gpubindgroup.label": { "url": "$MDN_URL$/web/api/gpubindgroup/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11761,17 +11880,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUBindGroup interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createBindGroup() call, or you can get and set it directly on the GPUBindGroup object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUBindGroup interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createBindGroup() call, or you can get and set it directly on the GPUBindGroup object." }, "gpubindgrouplayout": { "url": "$MDN_URL$/web/api/gpubindgrouplayout", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11779,17 +11898,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUBindGroupLayout interface of the WebGPU API defines the structure and purpose of related GPU resources such as buffers that will be used in a pipeline, and is used as a template when creating GPUBindGroups.\n

A GPUBindGroupLayout object instance is created using the GPUDevice.createBindGroupLayout() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUBindGroupLayout interface of the WebGPU API defines the structure and purpose of related GPU resources such as buffers that will be used in a pipeline, and is used as a template when creating GPUBindGroups.\n

A GPUBindGroupLayout object instance is created using the GPUDevice.createBindGroupLayout() method." }, "gpubindgrouplayout.label": { "url": "$MDN_URL$/web/api/gpubindgrouplayout/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11797,17 +11916,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUBindGroupLayout interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createBindGroupLayout() call, or you can get and set it directly on the GPUBindGroupLayout object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUBindGroupLayout interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createBindGroupLayout() call, or you can get and set it directly on the GPUBindGroupLayout object." }, "gpubuffer": { "url": "$MDN_URL$/web/api/gpubuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11815,17 +11934,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUBuffer interface of the WebGPU API represents a block of memory that can be used to store raw data to use in GPU operations.\n

A GPUBuffer object instance is created using the GPUDevice.createBuffer() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUBuffer interface of the WebGPU API represents a block of memory that can be used to store raw data to use in GPU operations.\n

A GPUBuffer object instance is created using the GPUDevice.createBuffer() method." }, "gpubuffer.destroy": { "url": "$MDN_URL$/web/api/gpubuffer/destroy", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11833,18 +11952,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The destroy() method of the\nGPUBuffer interface destroys the GPUBuffer.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The destroy() method of the\nGPUBuffer interface destroys the GPUBuffer.", "returns": "None (Undefined)." }, "gpubuffer.getmappedrange": { "url": "$MDN_URL$/web/api/gpubuffer/getmappedrange", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11852,25 +11971,22 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getMappedRange() method of the\nGPUBuffer interface returns an ArrayBuffer containing the mapped contents of the GPUBuffer in the specified range.\n

This can only happen once the GPUBuffer has been successfully mapped with GPUBuffer.mapAsync() (this can be checked via GPUBuffer.mapState). While the GPUBuffer is mapped it cannot be used in any GPU commands.\n

When you have finished working with the GPUBuffer values, call GPUBuffer.unmap() to unmap it, making it accessible to the GPU again.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getMappedRange() method of the\nGPUBuffer interface returns an ArrayBuffer containing the mapped contents of the GPUBuffer in the specified range.\n

This can only happen once the GPUBuffer has been successfully mapped with GPUBuffer.mapAsync() (this can be checked via GPUBuffer.mapState). While the GPUBuffer is mapped it cannot be used in any GPU commands.\n

When you have finished working with the GPUBuffer values, call GPUBuffer.unmap() to unmap it, making it accessible to the GPU again. A TypeError is thrown if an attempt is made to detach the ArrayBuffer in any way other than via GPUBuffer.unmap(), such as by calling transfer().", "parameters": { "offset": "A number representing the offset, in bytes, from the start of the GPUBuffer's mapped range to the start of the range to be returned in the ArrayBuffer. If offset is omitted, it defaults to 0.", "size": "A number representing the size, in bytes, of the ArrayBuffer to return. If size is omitted, the range extends to the end of the GPUBuffer's mapped range." }, - "returns": "An ArrayBuffer.", - "throws": { - "TypeError DOMException": "Thrown if an attempt is made to detach the ArrayBuffer in any way other than via GPUBuffer.unmap()." - } + "returns": "An ArrayBuffer." }, "gpubuffer.label": { "url": "$MDN_URL$/web/api/gpubuffer/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11878,17 +11994,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUBuffer interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createBuffer() call, or you can get and set it directly on the GPUBuffer object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUBuffer interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createBuffer() call, or you can get and set it directly on the GPUBuffer object." }, "gpubuffer.mapasync": { "url": "$MDN_URL$/web/api/gpubuffer/mapasync", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11896,12 +12012,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The mapAsync() method of the\nGPUBuffer interface maps the specified range of the GPUBuffer. It returns a Promise that resolves when the GPUBuffer's content is ready to be accessed. While the GPUBuffer is mapped it cannot be used in any GPU commands.\n

Once the buffer is successfully mapped (which can be checked via GPUBuffer.mapState), calls to GPUBuffer.getMappedRange() will return an ArrayBuffer containing the GPUBuffer's current values, to be read and updated by JavaScript as required.\n

When you have finished working with the GPUBuffer values, call GPUBuffer.unmap() to unmap it, making it accessible to the GPU again.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The mapAsync() method of the\nGPUBuffer interface maps the specified range of the GPUBuffer. It returns a Promise that resolves when the GPUBuffer's content is ready to be accessed. While the GPUBuffer is mapped it cannot be used in any GPU commands.\n

Once the buffer is successfully mapped (which can be checked via GPUBuffer.mapState), calls to GPUBuffer.getMappedRange() will return an ArrayBuffer containing the GPUBuffer's current values, to be read and updated by JavaScript as required.\n

When you have finished working with the GPUBuffer values, call GPUBuffer.unmap() to unmap it, making it accessible to the GPU again.", "parameters": { "mode": "A bitwise flag that specifies whether the GPUBuffer is mapped for reading or writing. Possible values are:\n

\n
GPUMapMode.READ
\n
\n

The GPUBuffer is mapped for reading. Values can be read, but any changes made to the ArrayBuffer returned by GPUBuffer.getMappedRange() will be discarded once GPUBuffer.unmap() is called.\n

Read-mode mapping can only be used on GPUBuffers that have a usage of GPUBufferUsage.MAP_READ set on them (i.e., when created with GPUDevice.createBuffer()).\n

\n
GPUMapMode.WRITE
\n
\n

The GPUBuffer is mapped for writing. Values can be read and updated — any changes made to the ArrayBuffer returned by GPUBuffer.getMappedRange() will be saved to the GPUBuffer once GPUBuffer.unmap() is called.\n

Write-mode mapping can only be used on GPUBuffers that have a usage of GPUBufferUsage.MAP_WRITE set on them (i.e., when created with GPUDevice.createBuffer()).\n

\n
", "offset": "A number representing the offset, in bytes, from the start of the buffer to the start of the range to be mapped. If offset is omitted, it defaults to 0.", @@ -11912,7 +12029,6 @@ "gpubuffer.mapstate": { "url": "$MDN_URL$/web/api/gpubuffer/mapstate", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11920,17 +12036,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The mapState read-only property of the\nGPUBuffer interface represents the mapped state of the GPUBuffer." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The mapState read-only property of the\nGPUBuffer interface represents the mapped state of the GPUBuffer." }, "gpubuffer.size": { "url": "$MDN_URL$/web/api/gpubuffer/size", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11938,17 +12054,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The size read-only property of the\nGPUBuffer interface represents the length of the GPUBuffer's memory allocation, in bytes.\n

size is set via the size property in the descriptor object passed into the originating GPUDevice.createBuffer() call." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The size read-only property of the\nGPUBuffer interface represents the length of the GPUBuffer's memory allocation, in bytes.\n

size is set via the size property in the descriptor object passed into the originating GPUDevice.createBuffer() call." }, "gpubuffer.unmap": { "url": "$MDN_URL$/web/api/gpubuffer/unmap", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11956,18 +12072,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The unmap() method of the\nGPUBuffer interface unmaps the mapped range of the GPUBuffer, making its contents available for use by the GPU again after it has previously been mapped with GPUBuffer.mapAsync() (the GPU cannot access a mapped GPUBuffer).\n

When unmap() is called, any ArrayBuffers created via GPUBuffer.getMappedRange() are detached.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The unmap() method of the\nGPUBuffer interface unmaps the mapped range of the GPUBuffer, making its contents available for use by the GPU again after it has previously been mapped with GPUBuffer.mapAsync() (the GPU cannot access a mapped GPUBuffer).\n

When unmap() is called, any ArrayBuffers created via GPUBuffer.getMappedRange() are detached.", "returns": "None (Undefined)." }, "gpubuffer.usage": { "url": "$MDN_URL$/web/api/gpubuffer/usage", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11975,17 +12091,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The usage read-only property of the\nGPUBuffer interface contains the bitwise flags representing the allowed usages of the GPUBuffer.\n

usage is set via the usage property in the descriptor object passed into the originating GPUDevice.createBuffer() call." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The usage read-only property of the\nGPUBuffer interface contains the bitwise flags representing the allowed usages of the GPUBuffer.\n

usage is set via the usage property in the descriptor object passed into the originating GPUDevice.createBuffer() call." }, "gpucanvascontext": { "url": "$MDN_URL$/web/api/gpucanvascontext", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -11993,17 +12109,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCanvasContext interface of the WebGPU API represents the WebGPU rendering context of a <canvas> element, returned via an HTMLCanvasElement.getContext() call with a contextType of \"webgpu\"." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCanvasContext interface of the WebGPU API represents the WebGPU rendering context of a <canvas> element, returned via an HTMLCanvasElement.getContext() call with a contextType of \"webgpu\"." }, "gpucanvascontext.canvas": { "url": "$MDN_URL$/web/api/gpucanvascontext/canvas", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12011,17 +12127,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The canvas read-only property of the\nGPUCanvasContext interface returns a reference to the canvas that the context was created from." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The canvas read-only property of the\nGPUCanvasContext interface returns a reference to the canvas that the context was created from." }, "gpucanvascontext.configure": { "url": "$MDN_URL$/web/api/gpucanvascontext/configure", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12029,12 +12145,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The configure() method of the\nGPUCanvasContext interface configures the context to use for rendering with a given GPUDevice. When called the canvas will initially be cleared to transparent black.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The configure() method of the\nGPUCanvasContext interface configures the context to use for rendering with a given GPUDevice. When called the canvas will initially be cleared to transparent black.", "parameters": { "configuration": "An object containing the following properties:\n

\n
alphaMode Optional
\n
\n

An enumerated value that specifies the effect that alpha values will have on the content of textures returned by getCurrentTexture() when read, displayed, or used as an image source. Possible values are:\n

    \n
  • opaque: Alpha values are ignored — if a texture is not already opaque, the alpha channel is cleared to 1.0 when it is used as an image source or displayed to the screen. This is the default value.
  • \n
  • premultiplied: Color values are premultiplied by their alpha value. For example, 100% red at 50% alpha is [0.5, 0, 0, 0.5].
  • \n
\n
\n
colorSpace Optional
\n
\n

The color space that values written into textures returned by getCurrentTexture() should be displayed with. Possible values are srgb (the default) and display-p3.\n

\n
device
\n
\n

The GPUDevice that the rendering information for the context will come from.\n

\n
format
\n
\n

The format that textures returned by getCurrentTexture() will have. This can be bgra8unorm, rgba8unorm, or rgba16float. The optimal canvas texture format for the current system can be returned by GPU.getPreferredCanvasFormat(). Using this is recommended — if you don't use the preferred format when configuring the canvas context, you may incur additional overhead, such as additional texture copies, depending on the platform.\n

\n
toneMapping Optional
\n
\n

An object specifying parameters that define the tone mapping for the context — how the content of associated textures are to be displayed. This allows WebGPU to draw colors brighter than white (#FFFFFF). Possible properties are:\n

\n
mode Optional
\n
\n

An enumerated value specifying the tone mapping mode for the canvas. Possible values include:\n

\n
standard
\n
\n

The default value. Restricts rendered content to the Standard Dynamic Range (SDR) of the display. This mode is accomplished by clamping all color values in the color space of the screen to the [0, 1] interval.\n

\n
extended
\n
\n

Allows content to be rendered in the full High Dynamic Range (HDR) of the display, where available. HDR mode allows a wider range of colors and brightness levels to be displayed, with more precise instructions as to what color should be displayed in each case. This mode matches \"standard\" in the [0, 1] range of the screen. Clamping or projection is done to the extended dynamic range of the screen but not [0, 1].\n

\n
\n
\n
\n
\n
usage Optional
\n
\n

Bitwise flags specifying the allowed usage for textures returned by getCurrentTexture(). Possible values are:\n

    \n
  • GPUTextureUsage.COPY_SRC: The texture can be used as the source of a copy operation, for example the source argument of a GPUCommandEncoder.copyTextureToBuffer() call.
  • \n
  • GPUTextureUsage.COPY_DST: The texture can be used as the destination of a copy/write operation, for example the destination argument of a GPUCommandEncoder.copyTextureToTexture() call.
  • \n
  • GPUTextureUsage.RENDER_ATTACHMENT: The texture can be used as a color attachment in a render pass, for example in a color attachment view in a GPUCommandEncoder.beginRenderPass() call. GPUTextureUsage.RENDER_ATTACHMENT is the default usage, but note that it is not automatically included if a different value is explicitly set; in such cases you need to include it in addition.
  • \n
  • GPUTextureUsage.TEXTURE_BINDING: The texture can be bound for use as a sampled texture in a shader, for example in a bind group entry in a GPUDevice.createBindGroup() call.
  • \n
  • GPUTextureUsage.STORAGE_BINDING: The texture can be bound for use as a storage texture in a shader, for example in a bind group entry in a GPUDevice.createBindGroup() call.
  • \n
\n

Note that multiple possible usages can be specified using the bitwise OR operator. For example, usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.RENDER_ATTACHMENT.\n

\n
viewFormats Optional
\n
\n

An array of formats that views created from textures returned by getCurrentTexture() may use. See Texture Formats for all the possible values.\n

\n
" }, @@ -12043,25 +12160,25 @@ "gpucanvascontext.getconfiguration": { "url": "$MDN_URL$/web/api/gpucanvascontext/getconfiguration", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "131", "ChromeAndroid": "131", "Edge": "131", - "Opera": "116" + "Opera": "116", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getConfiguration() method of the\nGPUCanvasContext interface returns the current configuration set for the context.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getConfiguration() method of the\nGPUCanvasContext interface returns the current configuration set for the context.", "returns": "An object containing the configuration options set on the context (i.e., via the GPUCanvasContext.configure() method), or null if no configuration is set (either no configuration was previously set, or a configuration was set and then GPUCanvasContext.unconfigure() was called on the context)." }, "gpucanvascontext.getcurrenttexture": { "url": "$MDN_URL$/web/api/gpucanvascontext/getcurrenttexture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12069,12 +12186,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getCurrentTexture() method of the\nGPUCanvasContext interface returns the next GPUTexture to be composited to the document by the canvas context.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getCurrentTexture() method of the\nGPUCanvasContext interface returns the next GPUTexture to be composited to the document by the canvas context.", "returns": "A GPUTexture object instance.", "throws": { "InvalidStateError DOMException": "Thrown if getCurrentTexture() is called on the canvas context before it is configured (i.e., before GPUCanvasContext.configure() has been called)." @@ -12083,7 +12201,6 @@ "gpucanvascontext.unconfigure": { "url": "$MDN_URL$/web/api/gpucanvascontext/unconfigure", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12091,18 +12208,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The unconfigure() method of the\nGPUCanvasContext interface removes any previously-set context configuration, and destroys any textures returned via getCurrentTexture() while the canvas context was configured.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The unconfigure() method of the\nGPUCanvasContext interface removes any previously-set context configuration, and destroys any textures returned via getCurrentTexture() while the canvas context was configured.", "returns": "None (undefined)." }, "gpucommandbuffer": { "url": "$MDN_URL$/web/api/gpucommandbuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12110,17 +12227,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCommandBuffer interface of the WebGPU API represents a pre-recorded list of GPU commands that can be submitted to a GPUQueue for execution.\n

A GPUCommandBuffer is created via the GPUCommandEncoder.finish() method; the GPU commands recorded within are submitted for execution by passing the GPUCommandBuffer into the parameter of a GPUQueue.submit() call.\n

\n

Note:\nOnce a GPUCommandBuffer object has been submitted, it cannot be used again.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCommandBuffer interface of the WebGPU API represents a pre-recorded list of GPU commands that can be submitted to a GPUQueue for execution.\n

A GPUCommandBuffer is created via the GPUCommandEncoder.finish() method; the GPU commands recorded within are submitted for execution by passing the GPUCommandBuffer into the parameter of a GPUQueue.submit() call.\n

\n

Note:\nOnce a GPUCommandBuffer object has been submitted, it cannot be used again.\n

" }, "gpucommandbuffer.label": { "url": "$MDN_URL$/web/api/gpucommandbuffer/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12128,17 +12245,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUCommandBuffer interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUCommandEncoder.finish() call, or you can get and set it directly on the GPUCommandBuffer object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUCommandBuffer interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUCommandEncoder.finish() call, or you can get and set it directly on the GPUCommandBuffer object." }, "gpucommandencoder": { "url": "$MDN_URL$/web/api/gpucommandencoder", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12146,17 +12263,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCommandEncoder interface of the WebGPU API represents a command encoder, used to encode commands to be issued to the GPU.\n

A GPUCommandEncoder object instance is created via the GPUDevice.createCommandEncoder() property." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCommandEncoder interface of the WebGPU API represents an encoder that collects a sequence of GPU commands to be issued to the GPU.\n

A GPUCommandEncoder object instance is created via the GPUDevice.createCommandEncoder() property." }, "gpucommandencoder.begincomputepass": { "url": "$MDN_URL$/web/api/gpucommandencoder/begincomputepass", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12164,21 +12281,21 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The beginComputePass() method of the\nGPUCommandEncoder interface starts encoding a compute pass, returning a GPUComputePassEncoder that can be used to control computation.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The beginComputePass() method of the\nGPUCommandEncoder interface starts encoding a compute pass, returning a GPUComputePassEncoder that can be used to control computation.", "parameters": { - "descriptor": "An object containing the following properties:\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
timestampWrites Optional
\n
\n

An array of objects defining where and when timestamp query values will be written for this pass. These objects have the following properties:\n

    \n
  • location: An enumerated value specifying when the timestamp will be executed. Available values are:\n
      \n
    • \"beginning\": The timestamp is executed along with the other encoded commands in the compute pass once the corresponding GPUCommandBuffer is submitted.
    • \n
    • \"end\": The timestamp is executed as part of a separate list of timestamp attachments once the pass ends.
    • \n
    \n
  • \n
  • queryIndex: A number specifying the index position in the querySet that the timestamp will be written to.
  • \n
  • querySet: The GPUQuerySet that the timestamp will be written to.
  • \n
\n
\n

Note:\nThe timestamp-query feature needs to be enabled to use timestamp queries.\n

\n
\n
" + "descriptor": "An object containing the following properties:\n
\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
timestampWrites Optional
\n
\n

An array of objects defining where and when timestamp query values will be written for this pass. These objects have the following properties:\n

\n
querySet
\n
\n

A GPUQuerySet of type \"timestamp\" that the timestamp query results will be written to.\n

\n
beginningOfPassWriteIndex
\n
\n

A number specifying the query index in querySet where the timestamp at the beginning of the render pass will be written. This is optional - if not defined, no timestamp will be written for the beginning of the pass.\n

\n
endOfPassWriteIndex
\n
\n

A number specifying the query index in querySet where the timestamp at the end of the render pass will be written. This is optional - if not defined, no timestamp will be written for the end of the pass.\n

\n
\n
\n

Note:\nThe timestamp-query feature needs to be enabled to use timestamp queries. Timestamp query values are written in nanoseconds, but how the value is determined is implementation-defined.\n

\n
\n
" }, "returns": "A GPUComputePassEncoder object instance." }, "gpucommandencoder.beginrenderpass": { "url": "$MDN_URL$/web/api/gpucommandencoder/beginrenderpass", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12186,21 +12303,21 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The beginRenderPass() method of the\nGPUCommandEncoder interface starts encoding a render pass, returning a GPURenderPassEncoder that can be used to control rendering.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The beginRenderPass() method of the\nGPUCommandEncoder interface starts encoding a render pass, returning a GPURenderPassEncoder that can be used to control rendering.", "parameters": { - "descriptor": "An object containing the following properties:\n

\n
colorAttachments
\n
\n

An array of objects (see Color attachment object structure) defining the color attachments that will be output to when executing this render pass.\n

\n
depthStencilAttachment Optional
\n
\n

An object (see Depth/stencil attachment object structure) defining the depth/stencil attachment that will be output to and tested against when executing this render pass.\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
maxDrawCount Optional
\n
\n

A number indicating the maximum number of draw calls that will be done in the render pass. This is used by some implementations to size work injected before the render pass. You should keep the default value — 50000000 — unless you know that more draw calls will be done.\n

\n
occlusionQuerySet Optional
\n
\n

The GPUQuerySet that will store the occlusion query results for this pass.\n

\n
timestampWrites Optional
\n
\n

An array of objects defining where and when timestamp query values will be written for this pass. These objects have the following properties:\n

    \n
  • location: An enumerated value specifying when the timestamp will be executed. Available values are:\n
      \n
    • \"beginning\": The timestamp is executed along with the other encoded commands in the compute pass once the corresponding GPUCommandBuffer is submitted.
    • \n
    • \"end\": The timestamp is executed as part of a separate list of timestamp attachments once the pass ends.
    • \n
    \n
  • \n
  • queryIndex: A number specifying the index position in the querySet that the timestamp will be written to.
  • \n
  • querySet: The GPUQuerySet that the timestamp will be written to.
  • \n
\n
\n

Note:\nThe timestamp-query feature needs to be enabled to use timestamp queries.\n

\n
\n
" + "descriptor": "An object containing the following properties:\n
\n
colorAttachments
\n
\n

An array of objects (see Color attachment object structure) defining the color attachments that will be output to when executing this render pass.\n

\n
depthStencilAttachment Optional
\n
\n

An object (see Depth/stencil attachment object structure) defining the depth/stencil attachment that will be output to and tested against when executing this render pass.\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
maxDrawCount Optional
\n
\n

A number indicating the maximum number of draw calls that will be done in the render pass. This is used by some implementations to size work injected before the render pass. You should keep the default value — 50000000 — unless you know that more draw calls will be done.\n

\n
occlusionQuerySet Optional
\n
\n

The GPUQuerySet that will store the occlusion query results for this pass.\n

\n
timestampWrites Optional
\n
\n

An array of objects defining where and when timestamp query values will be written for this pass. These objects have the following properties:\n

\n
querySet
\n
\n

A GPUQuerySet of type \"timestamp\" that the timestamp query results will be written to.\n

\n
beginningOfPassWriteIndex
\n
\n

A number specifying the query index in querySet where the timestamp at the beginning of the render pass will be written. This is optional - if not defined, no timestamp will be written for the beginning of the pass.\n

\n
endOfPassWriteIndex
\n
\n

A number specifying the query index in querySet where the timestamp at the end of the render pass will be written. This is optional - if not defined, no timestamp will be written for the end of the pass.\n

\n
\n
\n

Note:\nThe timestamp-query feature needs to be enabled to use timestamp queries. Timestamp query values are written in nanoseconds, but how the value is determined is implementation-defined.\n

\n
\n
" }, "returns": "A GPURenderPassEncoder object instance." }, "gpucommandencoder.clearbuffer": { "url": "$MDN_URL$/web/api/gpucommandencoder/clearbuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12208,12 +12325,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The clearBuffer() method of the\nGPUCommandEncoder interface encodes a command that fills a region of a GPUBuffer with zeroes.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The clearBuffer() method of the\nGPUCommandEncoder interface encodes a command that fills a region of a GPUBuffer with zeroes.", "parameters": { "buffer": "A GPUBuffer object representing the buffer to clear.", "offset": "A number representing the offset, in bytes, from the start of the buffer to the sub-region to clear. If omitted, offset defaults to 0.", @@ -12224,7 +12342,6 @@ "gpucommandencoder.copybuffertobuffer": { "url": "$MDN_URL$/web/api/gpucommandencoder/copybuffertobuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12232,12 +12349,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The copyBufferToBuffer() method of the\nGPUCommandEncoder interface encodes a command that copies data from one GPUBuffer to another.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The copyBufferToBuffer() method of the\nGPUCommandEncoder interface encodes a command that copies data from one GPUBuffer to another.", "parameters": { "source": "The GPUBuffer to copy from.", "sourceOffset": "The offset, in bytes, into the source to begin copying from.", @@ -12250,7 +12368,6 @@ "gpucommandencoder.copybuffertotexture": { "url": "$MDN_URL$/web/api/gpucommandencoder/copybuffertotexture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12258,12 +12375,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The copyBufferToTexture() method of the\nGPUCommandEncoder interface encodes a command that copies data from a GPUBuffer to a GPUTexture.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The copyBufferToTexture() method of the\nGPUCommandEncoder interface encodes a command that copies data from a GPUBuffer to a GPUTexture.", "parameters": { "source": "An object that defines the buffer to copy from, plus the layout of the data in the buffer to be copied to the texture. Combined with copySize, it defines the region of the source buffer. source can take the following properties:\n

\n
buffer
\n
\n

The GPUBuffer to copy from.\n

\n
offset Optional
\n
\n

The offset, in bytes, from the beginning of data to the start of the image data to be copied. If omitted, offset defaults to 0.\n

\n
bytesPerRow Optional
\n
\n

A number representing the stride, in bytes, between the start of each block row (i.e., a row of complete texel blocks) and the subsequent block row. This is required if there are multiple block rows (i.e., the copy height or depth is more than one block).\n

\n
rowsPerImage Optional
\n
\n

The number of block rows per single image inside the data. bytesPerRow × rowsPerImage will give you the stride, in bytes, between the start of each complete image. This is required if there are multiple images to copy.\n

\n
", "destination": "An object defining the texture to write the data to. Combined with copySize, defines the region of the destination texture subresource. destination can take the following properties:\n
\n
aspect Optional
\n
\n

An enumerated value defining which aspects of the texture to write the data to. Possible values are:\n

\n
\"all\"
\n
\n

All available aspects of the texture format will be written to, which can mean all or any of color, depth, and stencil, depending on what kind of format you are dealing with.\n

\n
\"depth-only\"
\n
\n

Only the depth aspect of a depth-or-stencil format will be written to.\n

\n
\"stencil-only\"
\n
\n

Only the stencil aspect of a depth-or-stencil format will be written to.\n

\n
\n

If omitted, aspect takes a value of \"all\".\n

\n
mipLevel Optional
\n
\n

A number representing the mip-map level of the texture to write the data to. If omitted, mipLevel defaults to 0.\n

\n
origin Optional
\n
\n

An object or array specifying the origin of the copy — the minimum corner of the texture region to write the data to. Together with size, this defines the full extent of the region to copy to. The x, y, and z values default to 0 if any of all of origin is omitted.\n

For example, you can pass an array like [0, 0, 0], or its equivalent object { x: 0, y: 0, z: 0 }.\n

\n
texture
\n
\n

A GPUTexture object representing the texture to write the data to.\n

\n
", @@ -12274,7 +12392,6 @@ "gpucommandencoder.copytexturetobuffer": { "url": "$MDN_URL$/web/api/gpucommandencoder/copytexturetobuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12282,12 +12399,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The copyTextureToBuffer() method of the\nGPUCommandEncoder interface encodes a command that copies data from a GPUTexture to a GPUBuffer.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The copyTextureToBuffer() method of the\nGPUCommandEncoder interface encodes a command that copies data from a GPUTexture to a GPUBuffer.", "parameters": { "source": "An object defining the texture to copy the data from. Combined with copySize, defines the region of the source texture subresource. source can take the following properties:\n

\n
aspect Optional
\n
\n

An enumerated value defining which aspects of the texture to copy the data from. Possible values are:\n

\n
\"all\"
\n
\n

All available aspects of the texture format will be copied from, which can mean all or any of color, depth, and stencil, depending on what kind of format you are dealing with.\n

\n
\"depth-only\"
\n
\n

Only the depth aspect of a depth-or-stencil format will be copied from.\n

\n
\"stencil-only\"
\n
\n

Only the stencil aspect of a depth-or-stencil format will be copied from.\n

\n
\n

If omitted, aspect takes a value of \"all\".\n

\n
mipLevel Optional
\n
\n

A number representing the mip-map level of the texture to copy the data from. If omitted, mipLevel defaults to 0.\n

\n
origin Optional
\n
\n

An object or array specifying the origin of the copy — the minimum corner of the texture region to copy the data from. Together with size, this defines the full extent of the region to copy from. The x, y, and z values default to 0 if any of all of origin is omitted.\n

For example, you can pass an array [0, 0, 0], or its equivalent object { x: 0, y: 0, z: 0 }.\n

\n
texture
\n
\n

A GPUTexture object representing the texture to copy the data from.\n

\n
", "destination": "An object that defines the buffer to write to, plus the layout of the data to write to the buffer. Combined with copySize, it defines the region of the destination buffer. source can take the following properties:\n
\n
buffer
\n
\n

The GPUBuffer to write to.\n

\n
offset Optional
\n
\n

The offset, in bytes, from the beginning of data to the start position to write the copied data to. If omitted, offset defaults to 0.\n

\n
bytesPerRow Optional
\n
\n

A number representing the stride, in bytes, between the start of each block row (i.e., a row of complete texel blocks) and the subsequent block row. This is required if there are multiple block rows (i.e., the copy height or depth is more than one block).\n

\n
rowsPerImage Optional
\n
\n

The number of block rows per single image inside the data. bytesPerRow × rowsPerImage will give you the stride, in bytes, between the start of each complete image. This is required if there are multiple images to copy.\n

\n
", @@ -12298,7 +12416,6 @@ "gpucommandencoder.copytexturetotexture": { "url": "$MDN_URL$/web/api/gpucommandencoder/copytexturetotexture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12306,12 +12423,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The copyTextureToTexture() method of the\nGPUCommandEncoder interface encodes a command that copies data from one GPUTexture to another.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The copyTextureToTexture() method of the\nGPUCommandEncoder interface encodes a command that copies data from one GPUTexture to another.", "parameters": { "source": "An object (see Copy texture object structure) defining the texture to copy the data from. Combined with copySize, this defines the region of the source texture subresource.", "destination": "An object (see Copy texture object structure) defining the texture to write the data to. Combined with copySize, this defines the region of the destination texture subresource.", @@ -12322,7 +12440,6 @@ "gpucommandencoder.finish": { "url": "$MDN_URL$/web/api/gpucommandencoder/finish", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12330,12 +12447,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The finish() method of the\nGPUCommandEncoder interface completes recording of the command sequence encoded on this GPUCommandEncoder, returning a corresponding GPUCommandBuffer.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The finish() method of the\nGPUCommandEncoder interface completes recording of the command sequence encoded on this GPUCommandEncoder, returning a corresponding GPUCommandBuffer.", "parameters": { "descriptor": "An object that can contain the following properties:\n

\n
label Optional
\n
\n

A string providing a label for the returned GPUCommandBuffer that can be used to identify it, for example in GPUError messages or console warnings.\n

\n
" }, @@ -12344,7 +12462,6 @@ "gpucommandencoder.insertdebugmarker": { "url": "$MDN_URL$/web/api/gpucommandencoder/insertdebugmarker", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12352,12 +12469,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The insertDebugMarker() method of the\nGPUCommandEncoder interface marks a specific point in a series of encoded commands with a label.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The insertDebugMarker() method of the\nGPUCommandEncoder interface marks a specific point in a series of encoded commands with a label.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", "parameters": { "markerLabel": "A string representing the label to insert." }, @@ -12366,7 +12484,6 @@ "gpucommandencoder.label": { "url": "$MDN_URL$/web/api/gpucommandencoder/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12374,17 +12491,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUCommandEncoder interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createCommandEncoder() call, or you can get and set it directly on the GPUCommandEncoder object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUCommandEncoder interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createCommandEncoder() call, or you can get and set it directly on the GPUCommandEncoder object." }, "gpucommandencoder.popdebuggroup": { "url": "$MDN_URL$/web/api/gpucommandencoder/popdebuggroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12392,18 +12509,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popDebugGroup() method of the\nGPUCommandEncoder interface ends a debug group, which is begun with a pushDebugGroup() call.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popDebugGroup() method of the\nGPUCommandEncoder interface ends a debug group, which is begun with a pushDebugGroup() call.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", "returns": "None (Undefined)." }, "gpucommandencoder.pushdebuggroup": { "url": "$MDN_URL$/web/api/gpucommandencoder/pushdebuggroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12411,12 +12528,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushDebugGroup() method of the\nGPUCommandEncoder interface begins a debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a popDebugGroup() method is invoked.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushDebugGroup() method of the\nGPUCommandEncoder interface begins a debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a popDebugGroup() method is invoked.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", "parameters": { "groupLabel": "A string representing the label for the debug group." }, @@ -12425,7 +12543,6 @@ "gpucommandencoder.resolvequeryset": { "url": "$MDN_URL$/web/api/gpucommandencoder/resolvequeryset", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12433,12 +12550,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The resolveQuerySet() method of the\nGPUCommandEncoder interface encodes a command that resolves a GPUQuerySet, copying the results into a specified GPUBuffer.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The resolveQuerySet() method of the\nGPUCommandEncoder interface encodes a command that resolves a GPUQuerySet, copying the results into a specified GPUBuffer.", "parameters": { "querySet": "A GPUQuerySet object representing the query set to be resolved.", "firstQuery": "The index number of the first query value to be copied over to the buffer.", @@ -12454,7 +12572,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The writeTimestamp() method of the\nGPUCommandEncoder interface encodes a command that writes a timestamp into a GPUQuerySet once the previous commands recorded into the same queued GPUCommandBuffer have been executed by the GPU.\n

\n

Note:\nTo use timestamp queries, the timestamp-query feature must be enabled in the GPUDevice.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The writeTimestamp() method of the\nGPUCommandEncoder interface encodes a command that writes a timestamp into a GPUQuerySet once the previous commands recorded into the same queued GPUCommandBuffer have been executed by the GPU.\n

\n

Note:\nTo use timestamp queries, the timestamp-query feature must be enabled in the GPUDevice.\n

", "parameters": { "querySet": "A GPUQuerySet object representing the query set that will store the timestamp values.", "queryIndex": "A number representing the index of the query in the query set." @@ -12464,7 +12582,6 @@ "gpucompilationinfo": { "url": "$MDN_URL$/web/api/gpucompilationinfo", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12472,17 +12589,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCompilationInfo interface of the WebGPU API represents an array of GPUCompilationMessage objects generated by the GPU shader module compiler to help diagnose problems with shader code.\n

GPUCompilationInfo is accessed via GPUShaderModule.getCompilationInfo()." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCompilationInfo interface of the WebGPU API represents an array of GPUCompilationMessage objects generated by the GPU shader module compiler to help diagnose problems with shader code.\n

GPUCompilationInfo is accessed via GPUShaderModule.getCompilationInfo()." }, "gpucompilationinfo.messages": { "url": "$MDN_URL$/web/api/gpucompilationinfo/messages", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12490,17 +12607,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The messages read-only property of the\nGPUCompilationInfo interface is an array of GPUCompilationMessage objects, each one containing the details of an individual shader compilation message. Messages can be informational, warnings, or errors." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The messages read-only property of the\nGPUCompilationInfo interface is an array of GPUCompilationMessage objects, each one containing the details of an individual shader compilation message. Messages can be informational, warnings, or errors." }, "gpucompilationmessage": { "url": "$MDN_URL$/web/api/gpucompilationmessage", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12508,17 +12625,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCompilationMessage interface of the WebGPU API represents a single informational, warning, or error message generated by the GPU shader module compiler.\n

An array of GPUCompilationMessage objects is available in the messages property of the GPUCompilationInfo object accessed via GPUShaderModule.getCompilationInfo()." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUCompilationMessage interface of the WebGPU API represents a single informational, warning, or error message generated by the GPU shader module compiler.\n

An array of GPUCompilationMessage objects is available in the messages property of the GPUCompilationInfo object accessed via GPUShaderModule.getCompilationInfo()." }, "gpucompilationmessage.length": { "url": "$MDN_URL$/web/api/gpucompilationmessage/length", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12526,17 +12643,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The length read-only property of the\nGPUCompilationMessage interface is a number representing the length of the substring that the message corresponds to." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The length read-only property of the\nGPUCompilationMessage interface is a number representing the length of the substring that the message corresponds to." }, "gpucompilationmessage.linenum": { "url": "$MDN_URL$/web/api/gpucompilationmessage/linenum", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12544,17 +12661,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The lineNum read-only property of the\nGPUCompilationMessage interface is a number representing the line number in the shader code that the message corresponds to." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The lineNum read-only property of the\nGPUCompilationMessage interface is a number representing the line number in the shader code that the message corresponds to." }, "gpucompilationmessage.linepos": { "url": "$MDN_URL$/web/api/gpucompilationmessage/linepos", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12562,17 +12679,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The linePos read-only property of the\nGPUCompilationMessage interface is a number representing the position in the code line that the message corresponds to. This could be an exact point, or the start of the relevant substring." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The linePos read-only property of the\nGPUCompilationMessage interface is a number representing the position in the code line that the message corresponds to. This could be an exact point, or the start of the relevant substring." }, "gpucompilationmessage.message": { "url": "$MDN_URL$/web/api/gpucompilationmessage/message", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12580,17 +12697,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The message read-only property of the\nGPUCompilationMessage interface is a string representing human-readable message text." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The message read-only property of the\nGPUCompilationMessage interface is a string representing human-readable message text." }, "gpucompilationmessage.offset": { "url": "$MDN_URL$/web/api/gpucompilationmessage/offset", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12598,17 +12715,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The offset read-only property of the\nGPUCompilationMessage interface is a number representing the offset from the start of the shader code to the exact point, or the start of the relevant substring, that the message corresponds to." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The offset read-only property of the\nGPUCompilationMessage interface is a number representing the offset from the start of the shader code to the exact point, or the start of the relevant substring, that the message corresponds to." }, "gpucompilationmessage.type": { "url": "$MDN_URL$/web/api/gpucompilationmessage/type", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12616,17 +12733,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The type read-only property of the\nGPUCompilationMessage interface is an enumerated value representing the type of the message. Each type represents a different severity level." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The type read-only property of the\nGPUCompilationMessage interface is an enumerated value representing the type of the message. Each type represents a different severity level." }, "gpucomputepassencoder": { "url": "$MDN_URL$/web/api/gpucomputepassencoder", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12634,17 +12751,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUComputePassEncoder interface of the WebGPU API encodes commands related to controlling the compute shader stage, as issued by a GPUComputePipeline. It forms part of the overall encoding activity of a GPUCommandEncoder.\n

A compute pipeline contains a single compute stage in which a compute shader takes general data, processes it in parallel across a specified number of workgroups, then returns the result in one or more buffers.\n

A GPUComputePassEncoder object instance is created via the GPUCommandEncoder.beginComputePass() property." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUComputePassEncoder interface of the WebGPU API encodes commands related to controlling the compute shader stage, as issued by a GPUComputePipeline. It forms part of the overall encoding activity of a GPUCommandEncoder.\n

A compute pipeline contains a single compute stage in which a compute shader takes general data, processes it in parallel across a specified number of workgroups, then returns the result in one or more buffers.\n

A GPUComputePassEncoder object instance is created via the GPUCommandEncoder.beginComputePass() property." }, "gpucomputepassencoder.dispatchworkgroups": { "url": "$MDN_URL$/web/api/gpucomputepassencoder/dispatchworkgroups", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12652,12 +12769,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The dispatchWorkgroups() method of the\nGPUComputePassEncoder interface dispatches a specific grid of workgroups to perform the work being done by the current GPUComputePipeline (i.e., set via GPUComputePassEncoder.setPipeline()).", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The dispatchWorkgroups() method of the\nGPUComputePassEncoder interface dispatches a specific grid of workgroups to perform the work being done by the current GPUComputePipeline (i.e., set via GPUComputePassEncoder.setPipeline()).", "parameters": { "workgroupCountX": "The X dimension of the grid of workgroups to dispatch.", "workgroupCountY": "The Y dimension of the grid of workgroups to dispatch. If omitted, workgroupCountY defaults to 1.", @@ -12668,7 +12786,6 @@ "gpucomputepassencoder.dispatchworkgroupsindirect": { "url": "$MDN_URL$/web/api/gpucomputepassencoder/dispatchworkgroupsindirect", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12676,12 +12793,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The dispatchWorkgroupsIndirect() method of the\nGPUComputePassEncoder interface dispatches a grid of workgroups, defined by the parameters of a GPUBuffer, to perform the work being done by the current GPUComputePipeline (i.e., set via GPUComputePassEncoder.setPipeline()).", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The dispatchWorkgroupsIndirect() method of the\nGPUComputePassEncoder interface dispatches a grid of workgroups, defined by the parameters of a GPUBuffer, to perform the work being done by the current GPUComputePipeline (i.e., set via GPUComputePassEncoder.setPipeline()).", "parameters": { "indirectBuffer": "A GPUBuffer containing the X, Y, and Z dimensions of the grid of workgroups to dispatch. The buffer must contain a tightly packed block of three 32-bit unsigned integer values representing the dimensions (12 bytes total), given in the same order as the arguments for GPUComputePassEncoder.dispatchWorkgroups(). So for example:\n

\n```js\nconst uint32 = new Uint32Array(3);\nuint32[0] = 25; // The X value\nuint32[1] = 1; // The Y value\nuint32[2] = 1; // The Z value\n// Write values into a GPUBuffer\ndevice.queue.writeBuffer(buffer, 0, uint32, 0, uint32.length);\n```\n
", "indirectOffset": "The offset, in bytes, into indirectBuffer where the dimension data begins." @@ -12691,7 +12809,6 @@ "gpucomputepassencoder.end": { "url": "$MDN_URL$/web/api/gpucomputepassencoder/end", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12699,18 +12816,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The end() method of the\nGPUComputePassEncoder interface completes recording of the current compute pass command sequence.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The end() method of the\nGPUComputePassEncoder interface completes recording of the current compute pass command sequence.", "returns": "None (Undefined)." }, "gpucomputepassencoder.insertdebugmarker": { "url": "$MDN_URL$/web/api/gpucomputepassencoder/insertdebugmarker", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12718,12 +12835,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The insertDebugMarker() method of the\nGPUComputePassEncoder interface marks a specific point in a series of encoded compute pass commands with a label.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The insertDebugMarker() method of the\nGPUComputePassEncoder interface marks a specific point in a series of encoded compute pass commands with a label.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", "parameters": { "markerLabel": "A string representing the label to insert." }, @@ -12732,7 +12850,6 @@ "gpucomputepassencoder.label": { "url": "$MDN_URL$/web/api/gpucomputepassencoder/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12740,17 +12857,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUComputePassEncoder interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUCommandEncoder.beginComputePass() call, or you can get and set it directly on the GPUComputePassEncoder object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUComputePassEncoder interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUCommandEncoder.beginComputePass() call, or you can get and set it directly on the GPUComputePassEncoder object." }, "gpucomputepassencoder.popdebuggroup": { "url": "$MDN_URL$/web/api/gpucomputepassencoder/popdebuggroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12758,18 +12875,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popDebugGroup() method of the\nGPUComputePassEncoder interface ends a compute pass debug group, which is begun with a pushDebugGroup() call.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popDebugGroup() method of the\nGPUComputePassEncoder interface ends a compute pass debug group, which is begun with a pushDebugGroup() call.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", "returns": "None (Undefined)." }, "gpucomputepassencoder.pushdebuggroup": { "url": "$MDN_URL$/web/api/gpucomputepassencoder/pushdebuggroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12777,12 +12894,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushDebugGroup() method of the\nGPUComputePassEncoder interface begins a compute pass debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a popDebugGroup() method is invoked.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushDebugGroup() method of the\nGPUComputePassEncoder interface begins a compute pass debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a popDebugGroup() method is invoked.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", "parameters": { "groupLabel": "A string representing the label for the debug group." }, @@ -12791,7 +12909,6 @@ "gpucomputepassencoder.setbindgroup": { "url": "$MDN_URL$/web/api/gpucomputepassencoder/setbindgroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12799,12 +12916,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setBindGroup() method of the\nGPUComputePassEncoder interface sets the GPUBindGroup to use for subsequent compute commands, for a given index.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setBindGroup() method of the\nGPUComputePassEncoder interface sets the GPUBindGroup to use for subsequent compute commands, for a given index.", "parameters": { "index": "The index to set the bind group at. This matches the n index value of the corresponding @group(n) attribute in the shader code (GPUShaderModule) used in the related pipeline.", "bindGroup": "The GPUBindGroup to use for subsequent compute commands, or null, in which case any previously-set bind group in the given slot is unset.", @@ -12817,7 +12935,6 @@ "gpucomputepassencoder.setpipeline": { "url": "$MDN_URL$/web/api/gpucomputepassencoder/setpipeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12825,12 +12942,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setPipeline() method of the\nGPUComputePassEncoder interface sets the GPUComputePipeline to use for this compute pass.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setPipeline() method of the\nGPUComputePassEncoder interface sets the GPUComputePipeline to use for this compute pass.", "parameters": { "pipeline": "The GPUComputePipeline to use for this compute pass." }, @@ -12839,7 +12957,6 @@ "gpucomputepipeline": { "url": "$MDN_URL$/web/api/gpucomputepipeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12847,17 +12964,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUComputePipeline interface of the WebGPU API represents a pipeline that controls the compute shader stage and can be used in a GPUComputePassEncoder.\n

A GPUComputePipeline object instance can be created using the GPUDevice.createComputePipeline() or GPUDevice.createComputePipelineAsync() methods." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUComputePipeline interface of the WebGPU API represents a pipeline that controls the compute shader stage and can be used in a GPUComputePassEncoder.\n

A GPUComputePipeline object instance can be created using the GPUDevice.createComputePipeline() or GPUDevice.createComputePipelineAsync() methods." }, "gpucomputepipeline.getbindgrouplayout": { "url": "$MDN_URL$/web/api/gpucomputepipeline/getbindgrouplayout", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12865,12 +12982,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getBindGroupLayout() method of the\nGPUComputePipeline interface returns the pipeline's GPUBindGroupLayout object with the given index (i.e., included in the originating GPUDevice.createComputePipeline() or GPUDevice.createComputePipelineAsync() call's pipeline layout).\n

If the GPUComputePipeline was created with layout: \"auto\", this method is the only way to retrieve the GPUBindGroupLayouts generated by the pipeline.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getBindGroupLayout() method of the\nGPUComputePipeline interface returns the pipeline's GPUBindGroupLayout object with the given index (i.e., included in the originating GPUDevice.createComputePipeline() or GPUDevice.createComputePipelineAsync() call's pipeline layout).\n

If the GPUComputePipeline was created with layout: \"auto\", this method is the only way to retrieve the GPUBindGroupLayouts generated by the pipeline.", "parameters": { "index": "A number representing the index of the GPUBindGroupLayout to return." }, @@ -12879,7 +12997,6 @@ "gpucomputepipeline.label": { "url": "$MDN_URL$/web/api/gpucomputepipeline/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12887,17 +13004,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUComputePipeline interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createComputePipeline() or GPUDevice.createComputePipelineAsync() call, or you can get and set it directly on the GPUComputePipeline object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUComputePipeline interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createComputePipeline() or GPUDevice.createComputePipelineAsync() call, or you can get and set it directly on the GPUComputePipeline object." }, "gpudevice": { "url": "$MDN_URL$/web/api/gpudevice", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12905,17 +13022,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUDevice interface of the WebGPU API represents a logical GPU device. This is the main interface through which the majority of WebGPU functionality is accessed.\n

A GPUDevice object is requested using the GPUAdapter.requestDevice() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUDevice interface of the WebGPU API represents a logical GPU device. This is the main interface through which the majority of WebGPU functionality is accessed.\n

A GPUDevice object is requested using the GPUAdapter.requestDevice() method." }, "gpudevice.adapterinfo": { "url": "$MDN_URL$/web/api/gpudevice/adapterinfo", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12927,12 +13044,11 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The adapterInfo read-only property of the\nGPUDevice interface returns a GPUAdapterInfo object containing identifying information about the device's originating adapter." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The adapterInfo read-only property of the\nGPUDevice interface returns a GPUAdapterInfo object containing identifying information about the device's originating adapter." }, "gpudevice.createbindgroup": { "url": "$MDN_URL$/web/api/gpudevice/createbindgroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12940,21 +13056,21 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createBindGroup() method of the\nGPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createBindGroup() method of the\nGPUDevice interface creates a GPUBindGroup based on a GPUBindGroupLayout that defines a set of resources to be bound together in a group and how those resources are used in shader stages.", "parameters": { - "descriptor": "An object containing the following properties:\n

\n
entries
\n
\n

An array of entry objects describing the resources to expose to the shader. There will be one for each corresponding entry described by the GPUBindGroupLayout referenced in layout. Each entry object has the following properties:\n

\n
binding
\n
\n

A number representing a unique identifier for this resource binding, which matches the binding value of a corresponding GPUBindGroupLayout entry. In addition, it matches the n index value of the corresponding @binding(n) attribute in the shader (GPUShaderModule) used in the related pipeline.\n

\n
resource
\n
\n

The resource to bind. This can be one of the following:\n

\n
\n
\n
\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
layout
\n
\n

The GPUBindGroupLayout that the entries of this bind group will conform to.\n

\n
" + "descriptor": "An object containing the following properties:\n
\n
entries
\n
\n

An array of entry objects describing the resources to expose to the shader. There will be one for each corresponding entry described by the GPUBindGroupLayout referenced in layout. Each entry object has the following properties:\n

\n
binding
\n
\n

A number representing a unique identifier for this resource binding, which matches the binding value of a corresponding GPUBindGroupLayout entry. In addition, it matches the n index value of the corresponding @binding(n) attribute in the shader (GPUShaderModule) used in the related pipeline.\n

\n
resource
\n
\n

The resource to bind. This can be one of the following:\n

\n
\n
\n
\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
layout
\n
\n

The GPUBindGroupLayout that the entries of this bind group will conform to.\n

\n
" }, "returns": "A GPUBindGroup object instance." }, "gpudevice.createbindgrouplayout": { "url": "$MDN_URL$/web/api/gpudevice/createbindgrouplayout", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12962,12 +13078,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createBindGroupLayout() method of the\nGPUDevice interface creates a GPUBindGroupLayout that defines the structure and purpose of related GPU resources such as buffers that will be used in a pipeline, and is used as a template when creating GPUBindGroups.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createBindGroupLayout() method of the\nGPUDevice interface creates a GPUBindGroupLayout that defines the structure and purpose of related GPU resources such as buffers that will be used in a pipeline, and is used as a template when creating GPUBindGroups.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
entries
\n
\n

An array of entry objects, each one of which describes a single shader resource binding to be included in the GPUBindGroupLayout. Each entry will correspond to an entry defined in a GPUBindGroup (created via a GPUDevice.createBindGroup() call) that uses this GPUBindGroupLayout object as a template.\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
" }, @@ -12976,7 +13093,6 @@ "gpudevice.createbuffer": { "url": "$MDN_URL$/web/api/gpudevice/createbuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -12984,12 +13100,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createBuffer() method of the\nGPUDevice interface creates a GPUBuffer in which to store raw data to use in GPU operations.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createBuffer() method of the\nGPUDevice interface creates a GPUBuffer in which to store raw data to use in GPU operations.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
mappedAtCreation Optional
\n
\n

A boolean. If set to true, the buffer will be mapped upon creation, meaning that you can set the values inside the buffer immediately by calling GPUBuffer.getMappedRange(). The default value is false.\n

Note that it is valid to set mappedAtCreation: true so you can set the buffer's initial data, even if the GPUBufferUsage.MAP_READ or GPUBufferUsage.MAP_WRITE usage flags are not set.\n

\n
size
\n
\n

A number representing the size of the buffer, in bytes.\n

\n
usage
\n
\n

The bitwise flags representing the allowed usages for the GPUBuffer. The possible values are in the GPUBuffer.usage value table.\n

Note that multiple possible usages can be specified by separating values with bitwise OR, for example: GPUBufferUsage.COPY_SRC | GPUBufferUsage.MAP_WRITE.\n

\n
" }, @@ -12998,7 +13115,6 @@ "gpudevice.createcommandencoder": { "url": "$MDN_URL$/web/api/gpudevice/createcommandencoder", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13006,12 +13122,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createCommandEncoder() method of the\nGPUDevice interface creates a GPUCommandEncoder, used to encode commands to be issued to the GPU.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createCommandEncoder() method of the\nGPUDevice interface creates a GPUCommandEncoder, used to encode commands to be issued to the GPU.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
" }, @@ -13020,7 +13137,6 @@ "gpudevice.createcomputepipeline": { "url": "$MDN_URL$/web/api/gpudevice/createcomputepipeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13028,12 +13144,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createComputePipeline() method of the\nGPUDevice interface creates a GPUComputePipeline that can control the compute shader stage and be used in a GPUComputePassEncoder.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createComputePipeline() method of the\nGPUDevice interface creates a GPUComputePipeline that can control the compute shader stage and be used in a GPUComputePassEncoder.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
compute
\n
\n

An object describing the compute shader entry point of the pipeline. This object can contain the following properties:\n

\n
constants Optional
\n
\n

A sequence of record types, with the structure (id, value), representing override values for WGSL constants that can be overridden in the pipeline. These behave like ordered maps. In each case, the id is a key used to identify or select the record, and the constant is an enumerated value representing a WGSL.\n

Depending on which constant you want to override, the id may take the form of the numeric ID of the constant, if one is specified, or otherwise the constant's identifier name.\n

A code snippet providing override values for several overridable constants might look like this:\n

\n```js\n({\n  // …\n  constants: {\n    0: false,\n    1200: 3.0,\n    1300: 2.0,\n    width: 20,\n    depth: -1,\n    height: 15,\n  },\n});\n```\n
\n
\n
entryPoint Optional
\n
\n

The name of the function in the module that this stage will use to perform its work. The corresponding shader function must have the @compute attribute to be identified as this entry point. See Entry Point Declaration for more information.\n

You can omit the entryPoint property if your shader code contains a single function with the @compute attribute set — the browser will use this as the default entry point. If entryPoint is omitted and the browser cannot determine a default entry point, a GPUValidationError is generated and the resulting GPUComputePipeline will be invalid.\n

\n
module
\n
\n

A GPUShaderModule object containing the WGSL code that this programmable stage will execute.\n

\n
\n
\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
layout
\n
\n

Defines the layout (structure, purpose, and type) of all the GPU resources (buffers, textures, etc.) used during the execution of the pipeline. Possible values are:\n

    \n
  • A GPUPipelineLayout object, created using GPUDevice.createPipelineLayout(), which allows the GPU to figure out how to run the pipeline most efficiently ahead of time.
  • \n
  • A string of \"auto\", which causes the pipeline to generate an implicit bind group layout based on any bindings defined in the shader code. If \"auto\" is used, the generated bind group layouts may only be used with the current pipeline.
  • \n
\n
\n
" }, @@ -13042,7 +13159,6 @@ "gpudevice.createcomputepipelineasync": { "url": "$MDN_URL$/web/api/gpudevice/createcomputepipelineasync", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13050,12 +13166,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createComputePipelineAsync() method of the\nGPUDevice interface returns a Promise that fulfills with a GPUComputePipeline, which can control the compute shader stage and be used in a GPUComputePassEncoder, once the pipeline can be used without any stalling.\n

\n

Note:\nIt is generally preferable to use this method over GPUDevice.createComputePipeline() whenever possible, as it prevents blocking of GPU operation execution on pipeline compilation.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createComputePipelineAsync() method of the\nGPUDevice interface returns a Promise that fulfills with a GPUComputePipeline, which can control the compute shader stage and be used in a GPUComputePassEncoder, once the pipeline can be used without any stalling.\n

\n

Note:\nIt is generally preferable to use this method over GPUDevice.createComputePipeline() whenever possible, as it prevents blocking of GPU operation execution on pipeline compilation.\n

", "parameters": { "descriptor": "See the descriptor definition for the GPUDevice.createComputePipeline() method." }, @@ -13064,7 +13181,6 @@ "gpudevice.createpipelinelayout": { "url": "$MDN_URL$/web/api/gpudevice/createpipelinelayout", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13072,12 +13188,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createPipelineLayout() method of the\nGPUDevice interface creates a GPUPipelineLayout that defines the GPUBindGroupLayouts used by a pipeline. GPUBindGroups used with the pipeline during command encoding must have compatible GPUBindGroupLayouts.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createPipelineLayout() method of the\nGPUDevice interface creates a GPUPipelineLayout that defines the GPUBindGroupLayouts used by a pipeline. GPUBindGroups used with the pipeline during command encoding must have compatible GPUBindGroupLayouts.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
bindGroupLayouts
\n
\n

An array of GPUBindGroupLayout objects (which are in turn created via calls to GPUDevice.createBindGroupLayout()). Each one corresponds to a @group attribute in the shader code contained in the GPUShaderModule used in a related pipeline.\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
" }, @@ -13086,7 +13203,6 @@ "gpudevice.createqueryset": { "url": "$MDN_URL$/web/api/gpudevice/createqueryset", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13094,12 +13210,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createQuerySet() method of the\nGPUDevice interface creates a GPUQuerySet that can be used to record the results of queries on passes, such as occlusion or timestamp queries.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createQuerySet() method of the\nGPUDevice interface creates a GPUQuerySet that can be used to record the results of queries on passes, such as occlusion or timestamp queries.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
count
\n
\n

A number specifying the number of queries to be managed by the resulting GPUQuerySet.\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
type
\n
\n

An enumerated value specifying the type of queries to be managed by the resulting GPUQuerySet. Possible values are:\n

\n
\"occlusion\"
\n
\n

Occlusion queries are available on render passes to query the number of fragment samples that pass all the per-fragment tests for a set of drawing commands (including scissor, sample mask, alpha to coverage, stencil, and depth tests). To run an occlusion query, an appropriate GPUQuerySet must be provided as the value of the occlusionQuerySet descriptor property when invoking GPUCommandEncoder.beginRenderPass() to run a render pass.\n

\n
\"timestamp\"
\n
\n

Timestamp queries allow applications to write timestamps to a GPUQuerySet. To run a timestamp query, appropriate GPUQuerySets must be provided inside the value of the timestampWrites descriptor property when invoking GPUCommandEncoder.beginRenderPass() to run a render pass, or GPUCommandEncoder.beginComputePass() to run a compute pass. Alternatively, you can run a single timestamp query at any time by invoking GPUCommandEncoder.writeTimeStamp() with an appropriate GPUQuerySet as a parameter.\n

\n

Note:\nThe timestamp-query feature needs to be enabled to use timestamp queries.\n

\n
\n
\n
\n
" }, @@ -13108,7 +13225,6 @@ "gpudevice.createrenderbundleencoder": { "url": "$MDN_URL$/web/api/gpudevice/createrenderbundleencoder", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13116,12 +13232,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createRenderBundleEncoder() method of the\nGPUDevice interface creates a GPURenderBundleEncoder that can be used to pre-record bundles of commands. These can be reused in GPURenderPassEncoders via the executeBundles() method, as many times as required.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createRenderBundleEncoder() method of the\nGPUDevice interface creates a GPURenderBundleEncoder that can be used to pre-record bundles of commands. These can be reused in GPURenderPassEncoders via the executeBundles() method, as many times as required.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
colorFormats
\n
\n

An array of enumerated values specifying the expected color formats for render targets. For possible values, see the GPUTextureFormat definition in the spec.\n

\n
depthReadOnly Optional
\n
\n

A boolean. If true, specifies that executing any GPURenderBundle created by the GPURenderBundleEncoder will not modify the depth component of the depthStencilFormat when executed. If omitted, depthReadOnly will default to false.\n

\n
depthStencilFormat Optional
\n
\n

An enumerated value that specifies the expected depth-or-stencil format for render targets. For possible values, see the Depth-stencil formats section of the spec.\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
sampleCount Optional
\n
\n

A number representing the expected sample count for render targets.\n

\n
stencilReadOnly Optional
\n
\n

A boolean. If true, specifies that executing any GPURenderBundle created by the GPURenderBundleEncoder will not modify the stencil component of the depthStencilFormat when executed. If omitted, stencilReadOnly will default to false.\n

\n
" }, @@ -13130,7 +13247,6 @@ "gpudevice.createrenderpipeline": { "url": "$MDN_URL$/web/api/gpudevice/createrenderpipeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13138,12 +13254,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createRenderPipeline() method of the\nGPUDevice interface creates a GPURenderPipeline that can control the vertex and fragment shader stages and be used in a GPURenderPassEncoder or GPURenderBundleEncoder.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createRenderPipeline() method of the\nGPUDevice interface creates a GPURenderPipeline that can control the vertex and fragment shader stages and be used in a GPURenderPassEncoder or GPURenderBundleEncoder.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
depthStencil Optional
\n
\n

An object (see depthStencil object structure) describing depth-stencil properties including testing, operations, and bias.\n

\n
fragment Optional
\n
\n

An object (see fragment object structure) describing the fragment shader entry point of the pipeline and its output colors. If no fragment shader entry point is defined, the pipeline will not produce any color attachment outputs, but it still performs rasterization and produces depth values based on the vertex position output. Depth testing and stencil operations can still be used.\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
layout
\n
\n

Defines the layout (structure, purpose, and type) of all the GPU resources (buffers, textures, etc.) used during the execution of the pipeline. Possible values are:\n

    \n
  • A GPUPipelineLayout object, created using GPUDevice.createPipelineLayout(), which allows the GPU to figure out how to run the pipeline most efficiently ahead of time.
  • \n
  • A string of \"auto\", which causes the pipeline to generate an implicit bind group layout based on any bindings defined in the shader code. If \"auto\" is used, the generated bind group layouts may only be used with the current pipeline.
  • \n
\n
\n
multisample Optional
\n
\n

An object (see multisample object structure) describing how the pipeline interacts with a render pass's multisampled attachments.\n

\n
primitive Optional
\n
\n

An object (see primitive object structure) describing how a pipeline constructs and rasterizes primitives from its vertex inputs.\n

\n
vertex
\n
\n

An object (see vertex object structure) describing the vertex shader entry point of the pipeline and its input buffer layouts.\n

\n
" }, @@ -13152,7 +13269,6 @@ "gpudevice.createrenderpipelineasync": { "url": "$MDN_URL$/web/api/gpudevice/createrenderpipelineasync", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13160,12 +13276,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createRenderPipelineAsync() method of the\nGPUDevice interface returns a Promise that fulfills with a GPURenderPipeline, which can control the vertex and fragment shader stages and be used in a GPURenderPassEncoder or GPURenderBundleEncoder, once the pipeline can be used without any stalling.\n

\n

Note:\nIt is generally preferable to use this method over GPUDevice.createRenderPipeline() whenever possible, as it prevents blocking of GPU operation execution on pipeline compilation.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createRenderPipelineAsync() method of the\nGPUDevice interface returns a Promise that fulfills with a GPURenderPipeline, which can control the vertex and fragment shader stages and be used in a GPURenderPassEncoder or GPURenderBundleEncoder, once the pipeline can be used without any stalling.\n

\n

Note:\nIt is generally preferable to use this method over GPUDevice.createRenderPipeline() whenever possible, as it prevents blocking of GPU operation execution on pipeline compilation.\n

", "parameters": { "descriptor": "See the descriptor definition for the GPUDevice.createRenderPipeline() method." }, @@ -13174,7 +13291,6 @@ "gpudevice.createsampler": { "url": "$MDN_URL$/web/api/gpudevice/createsampler", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13182,12 +13298,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createSampler() method of the\nGPUDevice interface creates a GPUSampler, which controls how shaders transform and filter texture resource data.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createSampler() method of the\nGPUDevice interface creates a GPUSampler, which controls how shaders transform and filter texture resource data.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
addressModeU Optional
\n
\n

An enumerated value specifying the behavior of the sampler when the sample footprint width extends beyond the width of the texture. Possible values are:\n

    \n
  • \"clamp-to-edge\": The texture coordinates are clamped between 0.0 and 1.0, inclusive.
  • \n
  • \"repeat\": The texture coordinates wrap to the other side of the texture.
  • \n
  • \"mirror-repeat\": The texture coordinates wrap to the other side of the texture, but the texture is flipped when the integer part of the coordinate is odd.
  • \n
\n

If omitted, addressModeU defaults to \"clamp-to-edge\".\n

\n
addressModeV Optional
\n
\n

An enumerated value specifying the behavior of the sampler when the sample footprint height extends beyond the height of the texture. Possible and default values are the same as for addressModeU.\n

\n
addressModeW Optional
\n
\n

An enumerated value specifying the behavior of the sampler when the sample footprint depth extends beyond the depth of the texture. Possible and default values are the same as for addressModeU.\n

\n
compare Optional
\n
\n

If specified, the sampler will be a comparison sampler of the specified type. Possible (enumerated) values are:\n

    \n
  • \"never\": Comparison tests never pass.
  • \n
  • \"less\": A provided value passes the comparison test if it is less than the sampled value.
  • \n
  • \"equal\": A provided value passes the comparison test if it is equal to the sampled value.
  • \n
  • \"less-equal\": A provided value passes the comparison test if it is less than or equal to the sampled value.
  • \n
  • \"greater\": A provided value passes the comparison test if it is greater than the sampled value.
  • \n
  • \"not-equal\": A provided value passes the comparison test if it is not equal to the sampled value.
  • \n
  • \"greater-equal\": A provided value passes the comparison test if it is greater than or equal to the sampled value.
  • \n
  • \"always\": Comparison tests always pass.
  • \n
\n

Comparison samplers may use filtering, but the sampling results will be implementation-dependent and may differ from the normal filtering rules.\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
lodMinClamp Optional
\n
\n

A number specifying the minimum level of detail used internally when sampling a texture. If omitted, lodMinClamp defaults to 0.\n

\n
lodMaxClamp Optional
\n
\n

A number specifying the maximum level of detail used internally when sampling a texture. If omitted, lodMaxClamp defaults to 32.\n

\n
maxAnisotropy Optional
\n
\n

Specifies the maximum anisotropy value clamp used by the sampler. If omitted, maxAnisotropy defaults to 1.\n

Most implementations support maxAnisotropy values in a range between 1 and 16, inclusive. The value used will be clamped to the maximum value that the underlying platform supports.\n

\n
magFilter Optional
\n
\n

An enumerated value specifying the sampling behavior when the sample footprint is smaller than or equal to one texel. Possible values are:\n

    \n
  • \"nearest\": Return the value of the texel nearest to the texture coordinates.
  • \n
  • \"linear\": Select two texels in each dimension and return a linear interpolation between their values.
  • \n
\n

If omitted, magFilter defaults to \"nearest\".\n

\n

Note:\nThe float32-filterable feature needs to be enabled for r32float-, rg32float-, and rgba32float-format GPUTextures to be filterable.\n

\n
\n
minFilter Optional
\n
\n

An enumerated value specifying the sampling behavior when the sample footprint is larger than one texel. Possible and default values are the same as for magFilter.\n

\n
mipmapFilter Optional
\n
\n

An enumerated value specifying the behavior when sampling between mipmap levels. Possible and default values are the same as for magFilter.\n

\n
" }, @@ -13196,7 +13313,6 @@ "gpudevice.createshadermodule": { "url": "$MDN_URL$/web/api/gpudevice/createshadermodule", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13204,12 +13320,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createShaderModule() method of the\nGPUDevice interface creates a GPUShaderModule from a string of WGSL source code.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createShaderModule() method of the\nGPUDevice interface creates a GPUShaderModule from a string of WGSL source code.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
code
\n
\n

A string representing the WGSL source code for the shader module.\n

\n
hints Optional
\n
\n

A sequence of record types, with the structure (\"string\", compilationHint). These behave like ordered maps. In each case, the \"string\" is a key used to identify or select the record, and the compilationHint is either a GPUPipelineLayout object instance or an enumerated value of \"auto\".\n

The point of hints is to provide information about the pipeline layout as early as possible to improve performance. The idea is to maximize the amount of compilation that can be done once by createShaderModule(), rather than multiple times in multiple calls to GPUDevice.createComputePipeline() and GPUDevice.createRenderPipeline().\n

\n

Note:\nDifferent implementations may handle hints in different ways, including possibly ignoring them entirely. Providing hints does not guarantee improved shader compilation performance on all browsers/systems.\n

\n
\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
sourceMap Optional
\n
\n

A source map definition to provide developer tool integration such as source-language debugging. WGSL names (identifiers) in source maps should follow the rules defined in WGSL identifier comparison. If defined, the source map may be interpreted as a source-map-v3 format.\n

\n

Note:\nDifferent implementations may handle sourceMaps in different ways, including possibly ignoring them entirely.\n

\n
\n
" }, @@ -13218,7 +13335,6 @@ "gpudevice.createtexture": { "url": "$MDN_URL$/web/api/gpudevice/createtexture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13226,12 +13342,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createTexture() method of the\nGPUDevice interface creates a GPUTexture in which to store 1D, 2D, or 3D arrays of data, such as images, to use in GPU rendering operations.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createTexture() method of the\nGPUDevice interface creates a GPUTexture in which to store 1D, 2D, or 3D arrays of data, such as images, to use in GPU rendering operations.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
dimension Optional
\n
\n

An enumerated value indicating the dimension level of the texture. Possible values are:\n

    \n
  • \"1d\": The texture is one-dimensional.
  • \n
  • \"2d\": The texture is two-dimensional or an array of two-dimensional layers.
  • \n
  • \"3d\": The texture is three-dimensional.
  • \n
\n

dimension defaults to \"2d\" if the value is omitted.\n

\n
format
\n
\n

An enumerated value specifying the format of the texture. See the Texture formats section of the specification for all the possible values.\n

\n

Note:\n

    \n
  • The depth32float-stencil8 feature needs to be enabled to create depth32float-stencil8-format GPUTextures.
  • \n
  • The texture-compression-bc feature needs to be enabled to create two-dimensional BC compressed GPUTextures: bc1-rgba-unorm, bc1-rgba-unorm-srgb, bc2-rgba-unorm, bc2-rgba-unorm-srgb, bc3-rgba-unorm, bc3-rgba-unorm-srgb, bc4-r-unorm, bc4-r-snorm, bc5-rg-unorm, bc5-rg-snorm, bc6h-rgb-ufloat, bc6h-rgb-float, bc7-rgba-unorm, and bc7-rgba-unorm-srgb formats.
  • \n
  • The texture-compression-astc feature needs to be enabled to create two-dimensional ASTC compressed GPUTextures: astc-4x4-unorm, astc-4x4-unorm-srgb, astc-5x4-unorm, astc-5x4-unorm-srgb, astc-5x5-unorm, astc-5x5-unorm-srgb, astc-6x5-unorm, astc-6x5-unorm-srgb, astc-6x6-unorm, astc-6x6-unorm-srgb, astc-8x5-unorm, astc-8x5-unorm-srgb, astc-8x6-unorm, astc-8x6-unorm-srgb, astc-8x8-unorm, astc-8x8-unorm-srgb, astc-10x5-unorm, astc-10x5-unorm-srgb, astc-10x6-unorm, astc-10x6-unorm-srgb, astc-10x8-unorm, astc-10x8-unorm-srgb, astc-10x10-unorm, astc-10x10-unorm-srgb, astc-12x10-unorm, astc-12x10-unorm-srgb, and astc-12x12-unorm``astc-12x12-unorm-srgb formats.
  • \n
  • The texture-compression-etc2 feature needs to be enabled to create two-dimensional ETC2 compressed GPUTextures: etc2-rgb8unorm, etc2-rgb8unorm-srgb, etc2-rgb8a1unorm, etc2-rgb8a1unorm-srgb, etc2-rgba8unorm, etc2-rgba8unorm-srgb, eac-r11unorm, eac-r11snorm, eac-rg11unorm, and eac-rg11snorm formats.
  • \n
\n
\n
\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
mipLevelCount Optional
\n
\n

A number specifying the number of mip levels the texture will contain. If omitted, this defaults to 1.\n

\n
sampleCount Optional
\n
\n

A number specifying the texture's sample count. To be valid, the value must be 1 or 4. If omitted, this defaults to 1. A value higher than 1 indicates a multi-sampled texture.\n

\n
size
\n
\n

An object or array specifying the width, height, and depth/array layer count of the texture. The width value must always be specified, while the height and depth/array layer count values are optional and will default to 1 if omitted.\n

For example, you can pass an array like [16, 16, 2], or its equivalent object { width: 16, height: 16, depthOrArrayLayers: 2 }.\n

\n
usage
\n
\n

The bitwise flags representing the allowed usages for the GPUTexture. The possible values are in the GPUTexture.usage value table.\n

Note that multiple possible usages can be specified by separating values with bitwise OR, for example: GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT.\n

\n

Note:\n

    \n
  • The bgra8unorm-storage feature needs to be enabled to specify STORAGE_BINDING usage for a bgra8unorm-format GPUTexture.
  • \n
  • The rg11b10ufloat-renderable feature needs to be enabled to specify RENDER_ATTACHMENT usage for a rg11b10ufloat-format GPUTexture, as well as its blending and multisampling.
  • \n
\n
\n
\n
viewFormats Optional
\n
\n

An array of enumerated values specifying other texture formats permitted when calling GPUTexture.createView() on this texture, in addition to the texture format specified in its format value.\n

\n
" }, @@ -13240,7 +13357,6 @@ "gpudevice.destroy": { "url": "$MDN_URL$/web/api/gpudevice/destroy", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13248,18 +13364,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The destroy() method of the\nGPUDevice interface destroys the device, preventing further operations on it.\n

Note that:\n

    \n
  • Any commands currently enqueued on the device's GPUQueue will be executed before the device is destroyed.
  • \n
  • Any WebGPU resources created using the device (buffers, textures, etc.) are also destroyed.
  • \n
  • Any mapped buffers created using the device will be unmapped.
  • \n
", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The destroy() method of the\nGPUDevice interface destroys the device, preventing further operations on it.\n

Note that:\n

    \n
  • Any commands currently enqueued on the device's GPUQueue will be executed before the device is destroyed.
  • \n
  • Any WebGPU resources created using the device (buffers, textures, etc.) are also destroyed.
  • \n
  • Any mapped buffers created using the device will be unmapped.
  • \n
", "returns": "None (undefined)." }, "gpudevice.features": { "url": "$MDN_URL$/web/api/gpudevice/features", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13267,17 +13383,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The features read-only property of the\nGPUDevice interface returns a GPUSupportedFeatures object that describes additional functionality supported by the device. Only features requested during the creation of the device (i.e., when GPUAdapter.requestDevice() is called) are included.\n

\n

Note:\nNot all features will be available to WebGPU in all browsers that support it, even if the features are supported by the underlying hardware. See GPUAdapter.features for more details.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The features read-only property of the\nGPUDevice interface returns a GPUSupportedFeatures object that describes additional functionality supported by the device. Only features requested during the creation of the device (i.e., when GPUAdapter.requestDevice() is called) are included.\n

\n

Note:\nNot all features will be available to WebGPU in all browsers that support it, even if the features are supported by the underlying hardware. See GPUAdapter.features for more details.\n

" }, "gpudevice.importexternaltexture": { "url": "$MDN_URL$/web/api/gpudevice/importexternaltexture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13285,12 +13401,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The importExternalTexture() method of the\nGPUDevice interface takes an HTMLVideoElement or a VideoFrame object as an input and returns a GPUExternalTexture wrapper object containing a snapshot of the video that can be used as a frame in GPU rendering operations.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The importExternalTexture() method of the\nGPUDevice interface takes an HTMLVideoElement or a VideoFrame object as an input and returns a GPUExternalTexture wrapper object containing a snapshot of the video that can be used as a frame in GPU rendering operations.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
colorSpace Optional
\n
\n

An enumerated value specifying the color space to use for the video frame. Possible values are \"srgb\" and \"display-p3\". If omitted, colorSpace defaults to \"srgb\".\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
source
\n
\n

The HTMLVideoElement or VideoFrame source of the video snapshot.\n

\n
" }, @@ -13302,7 +13419,6 @@ "gpudevice.label": { "url": "$MDN_URL$/web/api/gpudevice/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13310,17 +13426,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUDevice interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUDevice interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings." }, "gpudevice.limits": { "url": "$MDN_URL$/web/api/gpudevice/limits", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13328,17 +13444,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The limits read-only property of the\nGPUDevice interface returns a GPUSupportedLimits object that describes the limits supported by the device. All limit values will be included, and the limits requested during the creation of the device (i.e., when GPUAdapter.requestDevice() is called) will be reflected in those values.\n

\n

Note:\nNot all limits will be reported as expected, even if they are supported by the underlying hardware. See GPUAdapter.limits for more details.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The limits read-only property of the\nGPUDevice interface returns a GPUSupportedLimits object that describes the limits supported by the device. All limit values will be included, and the limits requested during the creation of the device (i.e., when GPUAdapter.requestDevice() is called) will be reflected in those values.\n

\n

Note:\nNot all limits will be reported as expected, even if they are supported by the underlying hardware. See GPUAdapter.limits for more details.\n

" }, "gpudevice.lost": { "url": "$MDN_URL$/web/api/gpudevice/lost", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13346,17 +13462,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The lost read-only property of the\nGPUDevice interface contains a Promise that remains pending throughout the device's lifetime and resolves with a GPUDeviceLostInfo object when the device is lost.\n

GPUAdapter.requestDevice() will never return null, and it will reject only if the request is invalid, i.e., it exceeds the capabilities of the GPUAdapter. If a valid device request can't be fulfilled for some reason however it may resolve to a device that has already been lost. Additionally, devices can be lost at any time after creation for a variety of reasons (such as browser resource management or driver updates), so it's a good idea to always handle lost devices gracefully.\n

Many causes for lost devices are transient, so you should try getting a new device once a previous one has been lost unless the loss was caused by the application intentionally destroying the device (i.e., with GPUDevice.destroy()). Note that any WebGPU resources created with a previous device (buffers, textures, etc.) will need to be re-created with the new one.\n

\n

Note:\nAlso bear in mind that a GPUAdapter may become unavailable, e.g., if the physical GPU is unplugged from the system or disabled to save power. From then on, the adapter can no longer return valid devices, and will always return already-lost devices.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The lost read-only property of the\nGPUDevice interface contains a Promise that remains pending throughout the device's lifetime and resolves with a GPUDeviceLostInfo object when the device is lost.\n

GPUAdapter.requestDevice() will never return null, and it will reject only if the request is invalid, i.e., it exceeds the capabilities of the GPUAdapter. If a valid device request can't be fulfilled for some reason however it may resolve to a device that has already been lost. Additionally, devices can be lost at any time after creation for a variety of reasons (such as browser resource management or driver updates), so it's a good idea to always handle lost devices gracefully.\n

Many causes for lost devices are transient, so you should try getting a new device once a previous one has been lost unless the loss was caused by the application intentionally destroying the device (i.e., with GPUDevice.destroy()). Note that any WebGPU resources created with a previous device (buffers, textures, etc.) will need to be re-created with the new one.\n

\n

Note:\nAlso bear in mind that a GPUAdapter may become unavailable, e.g., if the physical GPU is unplugged from the system or disabled to save power. From then on, the adapter can no longer return valid devices, and will always return already-lost devices.\n

" }, "gpudevice.poperrorscope": { "url": "$MDN_URL$/web/api/gpudevice/poperrorscope", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13364,18 +13480,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popErrorScope() method of the\nGPUDevice interface pops an existing GPU error scope from the error scope stack (originally pushed using GPUDevice.pushErrorScope()) and returns a Promise that resolves to an object describing the first error captured in the scope, or null if no error occurred.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popErrorScope() method of the\nGPUDevice interface pops an existing GPU error scope from the error scope stack (originally pushed using GPUDevice.pushErrorScope()) and returns a Promise that resolves to an object describing the first error captured in the scope, or null if no error occurred.", "returns": "a Promise that resolves to an object describing the first error captured in the scope. This can be of type:\n

\n

If no error occurred, it resolves to null." }, "gpudevice.pusherrorscope": { "url": "$MDN_URL$/web/api/gpudevice/pusherrorscope", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13383,12 +13499,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushErrorScope() method of the\nGPUDevice interface pushes a new GPU error scope onto the device's error scope stack, allowing you to capture errors of a particular type.\n

Once you are done capturing errors, you can end capture by invoking GPUDevice.popErrorScope(). This pops the scope from the stack and returns a Promise that resolves to an object describing the first error captured in the scope, or null if no errors were captured.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushErrorScope() method of the\nGPUDevice interface pushes a new GPU error scope onto the device's error scope stack, allowing you to capture errors of a particular type.\n

Once you are done capturing errors, you can end capture by invoking GPUDevice.popErrorScope(). This pops the scope from the stack and returns a Promise that resolves to an object describing the first error captured in the scope, or null if no errors were captured.", "parameters": { "filter": "An enumerated value that specifies what type of error will be caught in this particular error scope. Possible values are:\n

\n
\"internal\"
\n
\n

The error scope will catch a GPUInternalError.\n

\n
\"out-of-memory\"
\n
\n

The error scope will catch a GPUOutOfMemoryError.\n

\n
\"validation\"
\n
\n

The error scope will catch a GPUValidationError.\n

\n
" }, @@ -13397,7 +13514,6 @@ "gpudevice.queue": { "url": "$MDN_URL$/web/api/gpudevice/queue", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13405,17 +13521,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The queue read-only property of the\nGPUDevice interface returns the primary GPUQueue for the device." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The queue read-only property of the\nGPUDevice interface returns the primary GPUQueue for the device." }, "gpudevicelostinfo": { "url": "$MDN_URL$/web/api/gpudevicelostinfo", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13423,17 +13539,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUDeviceLostInfo interface of the WebGPU API represents the object returned when the GPUDevice.lost Promise resolves. This provides information as to why a device has been lost.\n

See the GPUDevice.lost page for more information about \"lost\" state." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUDeviceLostInfo interface of the WebGPU API represents the object returned when the GPUDevice.lost Promise resolves. This provides information as to why a device has been lost.\n

See the GPUDevice.lost page for more information about \"lost\" state." }, "gpudevicelostinfo.message": { "url": "$MDN_URL$/web/api/gpudevicelostinfo/message", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13441,17 +13557,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The message read-only property of the\nGPUDeviceLostInfo interface provides a human-readable message that explains why the device was lost." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The message read-only property of the\nGPUDeviceLostInfo interface provides a human-readable message that explains why the device was lost." }, "gpudevicelostinfo.reason": { "url": "$MDN_URL$/web/api/gpudevicelostinfo/reason", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13459,17 +13575,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The reason read-only property of the\nGPUDeviceLostInfo interface defines the reason the device was lost in a machine-readable way." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The reason read-only property of the\nGPUDeviceLostInfo interface defines the reason the device was lost in a machine-readable way." }, "gpuerror": { "url": "$MDN_URL$/web/api/gpuerror", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13481,12 +13597,11 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUError interface of the WebGPU API is the base interface for errors surfaced by GPUDevice.popErrorScope and the uncapturederror event." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUError interface of the WebGPU API is the base interface for errors surfaced by GPUDevice.popErrorScope and the uncapturederror event." }, "gpuerror.message": { "url": "$MDN_URL$/web/api/gpuerror/message", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13498,12 +13613,11 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The message read-only property of the\nGPUError interface provides a human-readable message that explains why the error occurred." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The message read-only property of the\nGPUError interface provides a human-readable message that explains why the error occurred." }, "gpuexternaltexture": { "url": "$MDN_URL$/web/api/gpuexternaltexture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13511,17 +13625,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUExternalTexture interface of the WebGPU API represents a wrapper object containing an HTMLVideoElement snapshot that can be used as a texture in GPU rendering operations.\n

A GPUExternalTexture object instance is created using GPUDevice.importExternalTexture()." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUExternalTexture interface of the WebGPU API represents a wrapper object containing an HTMLVideoElement snapshot that can be used as a texture in GPU rendering operations.\n

A GPUExternalTexture object instance is created using GPUDevice.importExternalTexture()." }, "gpuexternaltexture.label": { "url": "$MDN_URL$/web/api/gpuexternaltexture/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13529,17 +13643,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUExternalTexture interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.importExternalTexture() call, or you can get and set it directly on the GPUExternalTexture object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUExternalTexture interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.importExternalTexture() call, or you can get and set it directly on the GPUExternalTexture object." }, "gpuinternalerror": { "url": "$MDN_URL$/web/api/gpuinternalerror", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13547,17 +13661,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUInternalError interface of the WebGPU API describes an application error indicating that an operation failed for a system or implementation-specific reason, even when all validation requirements were satisfied.\n

It represents one of the types of errors surfaced by GPUDevice.popErrorScope and the uncapturederror event.\n

Internal errors occur when something happens in the WebGPU implementation that wasn't caught by validation and wasn't clearly identifiable as an out-of-memory error. It generally means that an operation your code performed hit a system limit in a way that was difficult to express with WebGPU's supported limits. The same operation might succeed on a different device. These can only be raised by pipeline creation, usually if the shader is too complex for the device." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUInternalError interface of the WebGPU API describes an application error indicating that an operation failed for a system or implementation-specific reason, even when all validation requirements were satisfied.\n

It represents one of the types of errors surfaced by GPUDevice.popErrorScope and the uncapturederror event.\n

Internal errors occur when something happens in the WebGPU implementation that wasn't caught by validation and wasn't clearly identifiable as an out-of-memory error. It generally means that an operation your code performed hit a system limit in a way that was difficult to express with WebGPU's supported limits. The same operation might succeed on a different device. These can only be raised by pipeline creation, usually if the shader is too complex for the device." }, "gpuinternalerror.gpuinternalerror": { "url": "$MDN_URL$/web/api/gpuinternalerror/gpuinternalerror", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13565,12 +13679,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUInternalError() constructor creates a new\nGPUInternalError object instance.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUInternalError() constructor creates a new\nGPUInternalError object instance.", "parameters": { "message": "A string providing a human-readable message that explains why the error occurred." } @@ -13578,7 +13693,6 @@ "gpuoutofmemoryerror": { "url": "$MDN_URL$/web/api/gpuoutofmemoryerror", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13586,17 +13700,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUOutOfMemoryError interface of the WebGPU API describes an out-of-memory (oom) error indicating that there was not enough free memory to complete the requested operation.\n

It represents one of the types of errors surfaced by GPUDevice.popErrorScope and the uncapturederror event.\n

Out-of-memory errors should be relatively rare in a well-behaved app but are less predictable than GPUValidationErrors. This is because they are dependent on the device your app is running on as well as other apps that are using GPU resources at the time." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUOutOfMemoryError interface of the WebGPU API describes an out-of-memory (oom) error indicating that there was not enough free memory to complete the requested operation.\n

It represents one of the types of errors surfaced by GPUDevice.popErrorScope and the uncapturederror event.\n

Out-of-memory errors should be relatively rare in a well-behaved app but are less predictable than GPUValidationErrors. This is because they are dependent on the device your app is running on as well as other apps that are using GPU resources at the time." }, "gpuoutofmemoryerror.gpuoutofmemoryerror": { "url": "$MDN_URL$/web/api/gpuoutofmemoryerror/gpuoutofmemoryerror", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13604,12 +13718,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUOutOfMemoryError() constructor creates a new\nGPUOutOfMemoryError object instance.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUOutOfMemoryError() constructor creates a new\nGPUOutOfMemoryError object instance.", "parameters": { "message": "A string providing a human-readable message that explains why the error occurred." } @@ -13617,7 +13732,6 @@ "gpupipelineerror": { "url": "$MDN_URL$/web/api/gpupipelineerror", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13625,17 +13739,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUPipelineError interface of the WebGPU API describes a pipeline failure. This is the value received when a Promise returned by a GPUDevice.createComputePipelineAsync() or GPUDevice.createRenderPipelineAsync() call rejects." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUPipelineError interface of the WebGPU API describes a pipeline failure. This is the value received when a Promise returned by a GPUDevice.createComputePipelineAsync() or GPUDevice.createRenderPipelineAsync() call rejects." }, "gpupipelineerror.gpupipelineerror": { "url": "$MDN_URL$/web/api/gpupipelineerror/gpupipelineerror", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13643,12 +13757,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUPipelineError() constructor creates a new\nGPUPipelineError object instance.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUPipelineError() constructor creates a new\nGPUPipelineError object instance.", "parameters": { "message": "A string providing a human-readable message that explains why the error occurred. If not specified, message defaults to an empty string (\"\").", "options": "An object, which can contain the following properties:\n

\n
reason
\n
\n

An enumerated value that defines the reason the pipeline creation failed in a machine-readable way. The value can be one of:\n

    \n
  • \"internal\": Pipeline creation failed because of an internal error (see GPUInternalError for more information about these kinds of error).
  • \n
  • \"validation\": Pipeline creation failed because of a validation error (see GPUValidationError for more information about these kinds of error).
  • \n
\n
\n
" @@ -13657,7 +13772,6 @@ "gpupipelineerror.reason": { "url": "$MDN_URL$/web/api/gpupipelineerror/reason", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13665,17 +13779,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The reason read-only property of the\nGPUPipelineError interface defines the reason the pipeline creation failed in a machine-readable way." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The reason read-only property of the\nGPUPipelineError interface defines the reason the pipeline creation failed in a machine-readable way." }, "gpupipelinelayout": { "url": "$MDN_URL$/web/api/gpupipelinelayout", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13683,17 +13797,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUPipelineLayout interface of the WebGPU API defines the GPUBindGroupLayouts used by a pipeline. GPUBindGroups used with the pipeline during command encoding must have compatible GPUBindGroupLayouts.\n

A GPUPipelineLayout object instance is created using the GPUDevice.createPipelineLayout() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUPipelineLayout interface of the WebGPU API defines the GPUBindGroupLayouts used by a pipeline. GPUBindGroups used with the pipeline during command encoding must have compatible GPUBindGroupLayouts.\n

A GPUPipelineLayout object instance is created using the GPUDevice.createPipelineLayout() method." }, "gpupipelinelayout.label": { "url": "$MDN_URL$/web/api/gpupipelinelayout/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13701,17 +13815,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUPipelineLayout interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createPipelineLayout() call, or you can get and set it directly on the GPUPipelineLayout object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUPipelineLayout interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createPipelineLayout() call, or you can get and set it directly on the GPUPipelineLayout object." }, "gpuqueryset": { "url": "$MDN_URL$/web/api/gpuqueryset", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13719,17 +13833,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUQuerySet interface of the WebGPU API is used to record the results of queries on passes, such as occlusion or timestamp queries.\n

    \n
  • \n

    Occlusion queries are available on render passes to query whether any fragment samples pass all the per-fragment tests for a set of drawing commands (including scissor, sample mask, alpha to coverage, stencil, and depth tests). To run an occlusion query, an appropriate GPUQuerySet must be provided as the value of the occlusionQuerySet descriptor property when invoking GPUCommandEncoder.beginRenderPass() to run a render pass.\n

  • \n
  • \n

    Timestamp queries allow applications to write timestamps to a GPUQuerySet. To run a timestamp query, appropriate GPUQuerySets must be provided inside the value of the timestampWrites descriptor property when invoking GPUCommandEncoder.beginRenderPass() to run a render pass, or GPUCommandEncoder.beginComputePass() to run a compute pass.\n

  • \n
\n
\n

Note:\nThe timestamp-query feature needs to be enabled to use timestamp queries.\n

\n

A GPUQuerySet object instance is created using the GPUDevice.createQuerySet() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUQuerySet interface of the WebGPU API is used to record the results of queries on passes, such as occlusion or timestamp queries.\n

    \n
  • \n

    Occlusion queries are available on render passes to query whether any fragment samples pass all the per-fragment tests for a set of drawing commands (including scissor, sample mask, alpha to coverage, stencil, and depth tests). To run an occlusion query, an appropriate GPUQuerySet must be provided as the value of the occlusionQuerySet descriptor property when invoking GPUCommandEncoder.beginRenderPass() to run a render pass.\n

  • \n
  • \n

    Timestamp queries allow applications to write timestamps to a GPUQuerySet. To run a timestamp query, appropriate GPUQuerySets must be provided inside the value of the timestampWrites descriptor property when invoking GPUCommandEncoder.beginRenderPass() to run a render pass, or GPUCommandEncoder.beginComputePass() to run a compute pass.\n

  • \n
\n
\n

Note:\nThe timestamp-query feature needs to be enabled to use timestamp queries.\n

\n

A GPUQuerySet object instance is created using the GPUDevice.createQuerySet() method." }, "gpuqueryset.count": { "url": "$MDN_URL$/web/api/gpuqueryset/count", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13737,17 +13851,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The count read-only property of the\nGPUQuerySet interface is a number specifying the number of queries managed by the GPUQuerySet." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The count read-only property of the\nGPUQuerySet interface is a number specifying the number of queries managed by the GPUQuerySet." }, "gpuqueryset.destroy": { "url": "$MDN_URL$/web/api/gpuqueryset/destroy", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13755,18 +13869,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The destroy() method of the\nGPUQuerySet interface destroys the GPUQuerySet.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The destroy() method of the\nGPUQuerySet interface destroys the GPUQuerySet.", "returns": "None (Undefined)." }, "gpuqueryset.label": { "url": "$MDN_URL$/web/api/gpuqueryset/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13774,17 +13888,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUQuerySet interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createQuerySet() call, or you can get and set it directly on the GPUQuerySet object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUQuerySet interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createQuerySet() call, or you can get and set it directly on the GPUQuerySet object." }, "gpuqueryset.type": { "url": "$MDN_URL$/web/api/gpuqueryset/type", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13792,17 +13906,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The type read-only property of the\nGPUQuerySet interface is an enumerated value specifying the type of queries managed by the GPUQuerySet." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The type read-only property of the\nGPUQuerySet interface is an enumerated value specifying the type of queries managed by the GPUQuerySet." }, "gpuqueue": { "url": "$MDN_URL$/web/api/gpuqueue", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13810,17 +13924,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUQueue interface of the WebGPU API controls execution of encoded commands on the GPU.\n

A device's primary queue is accessed via the GPUDevice.queue property." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUQueue interface of the WebGPU API controls execution of encoded commands on the GPU.\n

A device's primary queue is accessed via the GPUDevice.queue property." }, "gpuqueue.copyexternalimagetotexture": { "url": "$MDN_URL$/web/api/gpuqueue/copyexternalimagetotexture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13828,12 +13942,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The copyExternalImageToTexture() method of the\nGPUQueue interface copies a snapshot taken from a source image, video, or canvas into a given GPUTexture.\n

Using this function allows the user agent to determine the most efficient way to copy the data over for each source type.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The copyExternalImageToTexture() method of the\nGPUQueue interface copies a snapshot taken from a source image, video, or canvas into a given GPUTexture.\n

Using this function allows the user agent to determine the most efficient way to copy the data over for each source type.", "parameters": { "source": "An object representing the source to write to the destination, and its origin. This can take the following properties:\n

\n
source
\n
\n

An object providing the source of the snapshot to copy. This can be an HTMLCanvasElement, HTMLImageElement, HTMLVideoElement, ImageBitmap, ImageData, OffscreenCanvas, or VideoFrame object. The image source data is captured at the exact moment copyExternalImageToTexture() is invoked.\n

\n
origin Optional
\n
\n

An object or array specifying the origin of the copy — the top-left corner of the source sub-region to copy from. Together with copySize, this defines the full extent of the source sub-region. The x and y values default to 0 if any of all of origin is omitted.\n

For example, you can pass an array like [0, 0], or its equivalent object { x: 0, y: 0 }.\n

\n
flipY Optional
\n
\n

A boolean. If set to true, the image capture is flipped vertically. If omitted, flipY defaults to false.\n

\n
", "destination": "An object defining the texture subresource and origin to write the captured image to, plus encoding metadata. This can take the following properties:\n
\n
aspect Optional
\n
\n

An enumerated value defining which aspects of the texture to write the image to. Possible values are:\n

\n
\"all\"
\n
\n

All available aspects of the texture format will be written to, which can mean all or any of color, depth, and stencil, depending on what kind of format you are dealing with.\n

\n
\"depth-only\"
\n
\n

Only the depth aspect of a depth-or-stencil format will be written to.\n

\n
\"stencil-only\"
\n
\n

Only the stencil aspect of a depth-or-stencil format will be written to.\n

\n
\n

If omitted, aspect takes a value of \"all\".\n

\n
colorSpace Optional
\n
\n

An enumerated value describing the color space and encoding used to encode data into the destination texture. Possible values are \"srgb\" and \"display-p3\". If omitted, colorSpace defaults to \"srgb\".\n

\n

Note:\nThe encoding may result in values outside of the range [0, 1] being written to the target texture, if its format can represent them. Otherwise, the results are clamped to the target texture format's range. Conversion may not be necessary if colorSpace matches the source image color space.\n

\n
\n
mipLevel Optional
\n
\n

A number representing the mip-map level of the texture to write the image to. If omitted, mipLevel defaults to 0.\n

\n
origin Optional
\n
\n

An object or array specifying the origin of the copy — the minimum corner of the texture region to write the image data to. Together with copySize, this defines the full extent of the region to copy to. The x, y, and z values default to 0 if any of all of origin is omitted.\n

For example, you can pass an array like [0, 0, 0], or its equivalent object { x: 0, y: 0, z: 0 }.\n

\n
premultipliedAlpha Optional
\n
\n

A boolean. If set to true, the image data written into the texture will have its RGB channels premultiplied by the alpha channel. If omitted, premultipliedAlpha defaults to false.\n

\n

Note:\nIf this option is set to true and the source is also premultiplied, the source RGB values must be preserved even if they exceed their corresponding alpha values.\n

\n
\n
texture
\n
\n

A GPUTexture object representing the texture to write the data to.\n

\n
", @@ -13848,7 +13963,6 @@ "gpuqueue.label": { "url": "$MDN_URL$/web/api/gpuqueue/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13856,17 +13970,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUQueue interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

You can get and set it directly on the GPUQueue object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPUQueue interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

You can get and set it directly on the GPUQueue object." }, "gpuqueue.onsubmittedworkdone": { "url": "$MDN_URL$/web/api/gpuqueue/onsubmittedworkdone", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13874,18 +13988,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The onSubmittedWorkDone() method of the\nGPUQueue interface returns a Promise that resolves when all the work submitted to the GPU via this GPUQueue at the point the method is called has been processed.\n

This includes the completion of any mapAsync() calls made on GPUBuffers used in commands submitted to the queue, before onSubmittedWorkDone() is called.\n

Note: In most cases, you do not need to call onSubmittedWorkDone(). You do not need to call it for mapping a buffer. mapAsync guarantees work submitted\nto the queue before calling mapAsync happens before the mapAsync returns (see WebGPU spec: section 5.2)\n

The two use cases for onSubmittedWorkDone\n

    \n
  1. \n

    Waiting for multiple buffer mapping (slow)\n

    \n```js\n// good\nawait Promise.all([\n  buffer1.mapAsync(),\n  buffer2.mapAsync(),\n  buffer3.mapAsync(),\n]);\ndata1 = buffer1.getMappedRange();\ndata2 = buffer2.getMappedRange();\ndata3 = buffer3.getMappedRange();\n```\n
    \n
    \n```js\n// works but slow\nbuffer1.mapAsync();\nbuffer2.mapAsync();\nbuffer3.mapAsync();\nawait device.queue.onSubmittedWorkDone();\ndata1 = buffer1.getMappedRange();\ndata2 = buffer2.getMappedRange();\ndata3 = buffer3.getMappedRange();\n```\n
    \n

    The reason the second method is slow is, the implementation may be able to map the buffers before all the submitted work is done.\nFor example, if all the buffers are finished being used, but more work (unrelated to the buffers) is already submitted, then\nyou'll end up waiting longer using the second method than the first.\n

  2. \n
  3. \n

    Throttling work\n

    If you are doing heavy compute work and you submit too much work at once, the browser may kill your work.\nYou can throttle the work by only submitting more work when the work you've already submitted is done.\n

  4. \n
", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The onSubmittedWorkDone() method of the\nGPUQueue interface returns a Promise that resolves when all the work submitted to the GPU via this GPUQueue at the point the method is called has been processed.\n

This includes the completion of any mapAsync() calls made on GPUBuffers used in commands submitted to the queue, before onSubmittedWorkDone() is called.\n

Note: In most cases, you do not need to call onSubmittedWorkDone(). You do not need to call it for mapping a buffer. mapAsync guarantees work submitted to the queue before calling mapAsync happens before the mapAsync returns (see WebGPU spec).\n

The two use cases for onSubmittedWorkDone\n

    \n
  1. \n

    Waiting for multiple buffer mapping (slow)\n

    \n```js\n// good\nawait Promise.all([\n  buffer1.mapAsync(),\n  buffer2.mapAsync(),\n  buffer3.mapAsync(),\n]);\ndata1 = buffer1.getMappedRange();\ndata2 = buffer2.getMappedRange();\ndata3 = buffer3.getMappedRange();\n```\n
    \n
    \n```js\n// works but slow\nbuffer1.mapAsync();\nbuffer2.mapAsync();\nbuffer3.mapAsync();\nawait device.queue.onSubmittedWorkDone();\ndata1 = buffer1.getMappedRange();\ndata2 = buffer2.getMappedRange();\ndata3 = buffer3.getMappedRange();\n```\n
    \n

    The reason the second method is slow is, the implementation may be able to map the buffers before all the submitted work is done.\nFor example, if all the buffers are finished being used, but more work (unrelated to the buffers) is already submitted, then\nyou'll end up waiting longer using the second method than the first.\n

  2. \n
  3. \n

    Throttling work\n

    If you are doing heavy compute work and you submit too much work at once, the browser may kill your work.\nYou can throttle the work by only submitting more work when the work you've already submitted is done.\n

  4. \n
", "returns": "A Promise that resolves with Undefined." }, "gpuqueue.submit": { "url": "$MDN_URL$/web/api/gpuqueue/submit", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13893,12 +14007,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The submit() method of the\nGPUQueue interface schedules the execution of command buffers represented by one or more GPUCommandBuffer objects by the GPU.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The submit() method of the\nGPUQueue interface schedules the execution of command buffers represented by one or more GPUCommandBuffer objects by the GPU.", "parameters": { "commandBuffers": "An array of GPUCommandBuffer objects containing the commands to be enqueued for processing by the GPU. The array must not contain duplicate GPUCommandBuffer objects — each one can only be submitted once per submit() call." }, @@ -13907,7 +14022,6 @@ "gpuqueue.writebuffer": { "url": "$MDN_URL$/web/api/gpuqueue/writebuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13915,12 +14029,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The writeBuffer() method of the\nGPUQueue interface writes a provided data source into a given GPUBuffer.\n

This is a convenience function, which provides an alternative to setting buffer data via buffer mapping and buffer-to-buffer copies. It lets the user agent determine the most efficient way to copy the data over.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The writeBuffer() method of the\nGPUQueue interface writes a provided data source into a given GPUBuffer.\n

This is a convenience function, which provides an alternative to setting buffer data via buffer mapping and buffer-to-buffer copies. It lets the user agent determine the most efficient way to copy the data over.", "parameters": { "buffer": "A GPUBuffer object representing the buffer to write data to.", "bufferOffset": "A number representing the offset, in bytes, to start writing the data at inside the GPUBuffer.", @@ -13936,7 +14051,6 @@ "gpuqueue.writetexture": { "url": "$MDN_URL$/web/api/gpuqueue/writetexture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13944,12 +14058,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The writeTexture() method of the\nGPUQueue interface writes a provided data source into a given GPUTexture.\n

This is a convenience function, which provides an alternative to setting texture data via buffer mapping and buffer-to-texture copies. It lets the user agent determine the most efficient way to copy the data over.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The writeTexture() method of the\nGPUQueue interface writes a provided data source into a given GPUTexture.\n

This is a convenience function, which provides an alternative to setting texture data via buffer mapping and buffer-to-texture copies. It lets the user agent determine the most efficient way to copy the data over.", "parameters": { "destination": "An object defining the texture subresource and origin to write the data source to, which can take the following properties:\n

\n
aspect Optional
\n
\n

An enumerated value defining which aspects of the texture to write the data to. Possible values are:\n

\n
\"all\"
\n
\n

All available aspects of the texture format will be written to, which can mean all or any of color, depth, and stencil, depending on what kind of format you are dealing with.\n

\n
\"depth-only\"
\n
\n

Only the depth aspect of a depth-or-stencil format will be written to.\n

\n
\"stencil-only\"
\n
\n

Only the stencil aspect of a depth-or-stencil format will be written to.\n

\n
\n

If omitted, aspect takes a value of \"all\".\n

\n
mipLevel Optional
\n
\n

A number representing the mip-map level of the texture to write the data to. If omitted, mipLevel defaults to 0.\n

\n
origin Optional
\n
\n

An object or array specifying the origin of the copy — the minimum corner of the texture region to write the data to. Together with size, this defines the full extent of the region to copy to. The x, y, and z values default to 0 if any of all of origin is omitted.\n

For example, you can pass an array like [0, 0, 0], or its equivalent object { x: 0, y: 0, z: 0 }.\n

\n
texture
\n
\n

A GPUTexture object representing the texture to write the data to.\n

\n
", "data": "An object representing the data source to write into the GPUTexture. This can be an ArrayBuffer, TypedArray, or DataView.", @@ -13961,7 +14076,6 @@ "gpurenderbundle": { "url": "$MDN_URL$/web/api/gpurenderbundle", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13969,17 +14083,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPURenderBundle interface of the WebGPU API represents a container for pre-recorded bundles of commands.\n

The command bundles are encoded using a GPURenderBundleEncoder; once the desired commands have been encoded, they are recorded into a GPURenderBundle object instance using the GPURenderBundleEncoder.finish() method.\n

These command bundles can then be reused across multiple render passes by passing the GPURenderBundle objects into GPURenderPassEncoder.executeBundles() calls. Reusing pre-recoded commands can significantly improve app performance in situations where JavaScript draw call overhead is a bottleneck. Render bundles are most effective in situations where a batch of objects will be drawn the same way across multiple views or frames, with the only differences being the buffer content being used (such as updated matrix uniforms).\n

A good example is VR rendering. Recording the rendering as a render bundle and then tweaking the view matrix and replaying it for each eye is a more efficient way to issue draw calls for both renderings of the scene." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPURenderBundle interface of the WebGPU API represents a container for pre-recorded bundles of commands.\n

The command bundles are encoded using a GPURenderBundleEncoder; once the desired commands have been encoded, they are recorded into a GPURenderBundle object instance using the GPURenderBundleEncoder.finish() method.\n

These command bundles can then be reused across multiple render passes by passing the GPURenderBundle objects into GPURenderPassEncoder.executeBundles() calls. Reusing pre-recoded commands can significantly improve app performance in situations where JavaScript draw call overhead is a bottleneck. Render bundles are most effective in situations where a batch of objects will be drawn the same way across multiple views or frames, with the only differences being the buffer content being used (such as updated matrix uniforms).\n

A good example is VR rendering. Recording the rendering as a render bundle and then tweaking the view matrix and replaying it for each eye is a more efficient way to issue draw calls for both renderings of the scene." }, "gpurenderbundle.label": { "url": "$MDN_URL$/web/api/gpurenderbundle/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -13987,17 +14101,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPURenderBundle interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPURenderBundleEncoder.finish() call, or you can get and set it directly on the GPURenderBundle object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPURenderBundle interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPURenderBundleEncoder.finish() call, or you can get and set it directly on the GPURenderBundle object." }, "gpurenderbundleencoder": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14005,17 +14119,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPURenderBundleEncoder interface of the WebGPU API is used to pre-record bundles of commands.\n

The command bundles are encoded by calling the methods of GPURenderBundleEncoder; once the desired commands have been encoded, they are recorded into a GPURenderBundle object instance using the GPURenderBundleEncoder.finish() method. These render bundles can then be reused across multiple render passes by passing the GPURenderBundle objects into GPURenderPassEncoder.executeBundles() calls.\n

In effect, this is like a partial render pass — GPURenderBundleEncoders have all the same functionality available as GPURenderPassEncoders, except that they can't begin and end occlusion queries, and can't set the scissor rect, viewport, blend constant, and stencil reference. The GPURenderBundle will inherit all these values from the GPURenderPassEncoder that executes it.\n

\n

Note:\nCurrently set vertex buffers, index buffers, bind groups, and pipeline are all cleared prior to executing a render bundle, and once the render bundle has finished executing.\n

\n

Reusing pre-recoded commands can significantly improve app performance in situations where JavaScript draw call overhead is a bottleneck. Render bundles are most effective in situations where a batch of objects will be drawn the same way across multiple views or frames, with the only differences being the buffer content being used (such as updated matrix uniforms). A good example is VR rendering. Recording the rendering as a render bundle and then tweaking the view matrix and replaying it for each eye is a more efficient way to issue draw calls for both renderings of the scene.\n

A GPURenderBundleEncoder object instance is created via the GPUDevice.createRenderBundleEncoder() property.\n

\n

Note:\nThe methods of GPURenderBundleEncoder are functionally identical to their equivalents available on GPURenderPassEncoder, except for GPURenderBundleEncoder.finish(), which is similar in purpose to GPUCommandEncoder.finish().\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPURenderBundleEncoder interface of the WebGPU API is used to pre-record bundles of commands.\n

The command bundles are encoded by calling the methods of GPURenderBundleEncoder; once the desired commands have been encoded, they are recorded into a GPURenderBundle object instance using the GPURenderBundleEncoder.finish() method. These render bundles can then be reused across multiple render passes by passing the GPURenderBundle objects into GPURenderPassEncoder.executeBundles() calls.\n

In effect, this is like a partial render pass — GPURenderBundleEncoders have all the same functionality available as GPURenderPassEncoders, except that they can't begin and end occlusion queries, and can't set the scissor rect, viewport, blend constant, and stencil reference. The GPURenderBundle will inherit all these values from the GPURenderPassEncoder that executes it.\n

\n

Note:\nCurrently set vertex buffers, index buffers, bind groups, and pipeline are all cleared prior to executing a render bundle, and once the render bundle has finished executing.\n

\n

Reusing pre-recoded commands can significantly improve app performance in situations where JavaScript draw call overhead is a bottleneck. Render bundles are most effective in situations where a batch of objects will be drawn the same way across multiple views or frames, with the only differences being the buffer content being used (such as updated matrix uniforms). A good example is VR rendering. Recording the rendering as a render bundle and then tweaking the view matrix and replaying it for each eye is a more efficient way to issue draw calls for both renderings of the scene.\n

A GPURenderBundleEncoder object instance is created via the GPUDevice.createRenderBundleEncoder() property.\n

\n

Note:\nThe methods of GPURenderBundleEncoder are functionally identical to their equivalents available on GPURenderPassEncoder, except for GPURenderBundleEncoder.finish(), which is similar in purpose to GPUCommandEncoder.finish().\n

" }, "gpurenderbundleencoder.draw": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/draw", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14023,12 +14137,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The draw() method of the\nGPURenderBundleEncoder interface draws primitives based on the vertex buffers provided by setVertexBuffer().\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — draw().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The draw() method of the\nGPURenderBundleEncoder interface draws primitives based on the vertex buffers provided by setVertexBuffer().\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — draw().\n

", "parameters": { "vertexCount": "A number defining the number of vertices to draw.", "instanceCount": "A number defining the number of instances to draw. If omitted, instanceCount defaults to 1.", @@ -14040,7 +14155,6 @@ "gpurenderbundleencoder.drawindexed": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/drawindexed", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14048,12 +14162,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndexed() method of the\nGPURenderBundleEncoder interface draws indexed primitives based on the vertex and index buffers provided by setVertexBuffer() and setIndexBuffer().\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — drawIndexed().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndexed() method of the\nGPURenderBundleEncoder interface draws indexed primitives based on the vertex and index buffers provided by setVertexBuffer() and setIndexBuffer().\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — drawIndexed().\n

", "parameters": { "indexCount": "A number defining the number of indices to draw.", "instanceCount": "A number defining the number of instances to draw. If omitted, instanceCount defaults to 1.", @@ -14066,7 +14181,6 @@ "gpurenderbundleencoder.drawindexedindirect": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/drawindexedindirect", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14074,12 +14188,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndexedIndirect() method of the\nGPURenderBundleEncoder interface draws indexed primitives using parameters read from a GPUBuffer.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — drawIndexedIndirect().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndexedIndirect() method of the\nGPURenderBundleEncoder interface draws indexed primitives using parameters read from a GPUBuffer.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — drawIndexedIndirect().\n

", "parameters": { "indirectBuffer": "A GPUBuffer containing the indexCount, instanceCount, firstIndex, baseVertex, and firstInstance values needed to carry out the drawing operation. The buffer must contain a tightly packed block of five 32-bit unsigned integer values representing the values (20 bytes total), given in the same order as the arguments for GPURenderBundleEncoder.drawIndexed(). So for example:\n
\n```js\nconst uint32 = new Uint32Array(5);\nuint32[0] = 3; // The indexCount value\nuint32[1] = 1; // The instanceCount value\nuint32[2] = 0; // The firstIndex value\nuint32[3] = 0; // The baseVertex value\nuint32[4] = 0; // The firstInstance value\n// Write values into a GPUBuffer\ndevice.queue.writeBuffer(buffer, 0, uint32, 0, uint32.length);\n```\n
\n
\n

Note:\nThe indirect-first-instance feature needs to be enabled for non-zero firstInstance values to be used. If the indirect-first-instance feature is not enabled and firstInstance is not zero, the drawIndexedIndirect() call will be treated as a no-op.\n

", "indirectOffset": "The offset, in bytes, into indirectBuffer where the value data begins." @@ -14089,7 +14204,6 @@ "gpurenderbundleencoder.drawindirect": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/drawindirect", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14097,12 +14211,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndirect() method of the\nGPURenderBundleEncoder interface draws primitives using parameters read from a GPUBuffer.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — drawIndirect().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndirect() method of the\nGPURenderBundleEncoder interface draws primitives using parameters read from a GPUBuffer.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — drawIndirect().\n

", "parameters": { "indirectBuffer": "A GPUBuffer containing the vertexCount, instanceCount, firstVertex, and firstInstance values needed to carry out the drawing operation. The buffer must contain a tightly packed block of four 32-bit unsigned integer values representing the values (16 bytes total), given in the same order as the arguments for GPURenderBundleEncoder.draw(). So for example:\n
\n```js\nconst uint32 = new Uint32Array(4);\nuint32[0] = 3; // The vertexCount value\nuint32[1] = 1; // The instanceCount value\nuint32[2] = 0; // The firstVertex value\nuint32[3] = 0; // The firstInstance value\n// Write values into a GPUBuffer\ndevice.queue.writeBuffer(buffer, 0, uint32, 0, uint32.length);\n```\n
\n
\n

Note:\nThe indirect-first-instance feature needs to be enabled for non-zero firstInstance values to be used. If the indirect-first-instance feature is not enabled and firstInstance is not zero, the drawIndirect() call will be treated as a no-op.\n

", "indirectOffset": "The offset, in bytes, into indirectBuffer where the value data begins." @@ -14112,7 +14227,6 @@ "gpurenderbundleencoder.finish": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/finish", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14120,12 +14234,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The finish() method of the\nGPURenderBundleEncoder interface completes recording of the current render bundle command sequence, returning a GPURenderBundle object that can be passed into a GPURenderPassEncoder.executeBundles() call to execute those commands in a specific render pass.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The finish() method of the\nGPURenderBundleEncoder interface completes recording of the current render bundle command sequence, returning a GPURenderBundle object that can be passed into a GPURenderPassEncoder.executeBundles() call to execute those commands in a specific render pass.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
" }, @@ -14134,7 +14249,6 @@ "gpurenderbundleencoder.insertdebugmarker": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/insertdebugmarker", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14142,12 +14256,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The insertDebugMarker() method of the\nGPURenderBundleEncoder interface marks a specific point in a series of encoded render bundle pass commands with a label.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — InsertDebugMarker().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The insertDebugMarker() method of the\nGPURenderBundleEncoder interface marks a specific point in a series of encoded render bundle pass commands with a label.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — InsertDebugMarker().\n

", "parameters": { "markerLabel": "A string representing the label to insert." }, @@ -14156,7 +14271,6 @@ "gpurenderbundleencoder.label": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14164,17 +14278,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPURenderBundleEncoder interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createRenderBundleEncoder() call, or you can get and set it directly on the GPURenderBundleEncoder object.\n

\n

Note:\nThis property is functionally identical to its equivalent on GPURenderPassEncoder — label.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPURenderBundleEncoder interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createRenderBundleEncoder() call, or you can get and set it directly on the GPURenderBundleEncoder object.\n

\n

Note:\nThis property is functionally identical to its equivalent on GPURenderPassEncoder — label.\n

" }, "gpurenderbundleencoder.popdebuggroup": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/popdebuggroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14182,18 +14296,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popDebugGroup() method of the\nGPURenderBundleEncoder interface ends a render bundle debug group, which is begun with a pushDebugGroup() call.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — popDebugGroup().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popDebugGroup() method of the\nGPURenderBundleEncoder interface ends a render bundle debug group, which is begun with a pushDebugGroup() call.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — popDebugGroup().\n

", "returns": "None (Undefined)." }, "gpurenderbundleencoder.pushdebuggroup": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/pushdebuggroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14201,12 +14315,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushDebugGroup() method of the\nGPURenderBundleEncoder interface begins a render bundle debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a popDebugGroup() method is invoked.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — pushDebugGroup().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushDebugGroup() method of the\nGPURenderBundleEncoder interface begins a render bundle debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a popDebugGroup() method is invoked.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — pushDebugGroup().\n

", "parameters": { "groupLabel": "A string representing the label for the debug group." }, @@ -14215,7 +14330,6 @@ "gpurenderbundleencoder.setbindgroup": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/setbindgroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14223,12 +14337,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setBindGroup() method of the\nGPURenderBundleEncoder interface sets the GPUBindGroup to use for subsequent render bundle commands, for a given index.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — setBindGroup().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setBindGroup() method of the\nGPURenderBundleEncoder interface sets the GPUBindGroup to use for subsequent render bundle commands, for a given index.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — setBindGroup().\n

", "parameters": { "index": "The index to set the bind group at. This matches the n index value of the corresponding @group(n) attribute in the shader code (GPUShaderModule) used in the related pipeline.", "bindGroup": "The GPUBindGroup to use for subsequent render bundle commands, or null, in which case any previously-set bind group in the given slot is unset.", @@ -14241,7 +14356,6 @@ "gpurenderbundleencoder.setindexbuffer": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/setindexbuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14249,12 +14363,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setIndexBuffer() method of the\nGPURenderBundleEncoder interface sets the current GPUBuffer that will provide index data for subsequent drawing commands.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — setIndexBuffer().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setIndexBuffer() method of the\nGPURenderBundleEncoder interface sets the current GPUBuffer that will provide index data for subsequent drawing commands.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — setIndexBuffer().\n

", "parameters": { "buffer": "A GPUBuffer representing the buffer containing the index data to use for subsequent drawing commands.", "indexFormat": "An enumerated value that defines the format of the index data contained in buffer. Possible values are:\n
    \n
  • \"uint16\"
  • \n
  • \"uint32\"
  • \n
", @@ -14266,7 +14381,6 @@ "gpurenderbundleencoder.setpipeline": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/setpipeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14274,12 +14388,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setPipeline() method of the\nGPURenderBundleEncoder interface sets the GPURenderPipeline to use for subsequent render bundle commands.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — setPipeline().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setPipeline() method of the\nGPURenderBundleEncoder interface sets the GPURenderPipeline to use for subsequent render bundle commands.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — setPipeline().\n

", "parameters": { "pipeline": "The GPURenderPipeline to use for subsequent render bundle commands." }, @@ -14288,7 +14403,6 @@ "gpurenderbundleencoder.setvertexbuffer": { "url": "$MDN_URL$/web/api/gpurenderbundleencoder/setvertexbuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14296,12 +14410,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setVertexBuffer() method of the\nGPURenderBundleEncoder interface sets or unsets the current GPUBuffer for the given slot that will provide vertex data for subsequent drawing commands.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — setVertexBuffer().\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setVertexBuffer() method of the\nGPURenderBundleEncoder interface sets or unsets the current GPUBuffer for the given slot that will provide vertex data for subsequent drawing commands.\n

\n

Note:\nThis method is functionally identical to its equivalent on GPURenderPassEncoder — setVertexBuffer().\n

", "parameters": { "slot": "A number referencing the vertex buffer slot to set the vertex buffer for.", "buffer": "A GPUBuffer representing the buffer containing the vertex data to use for subsequent drawing commands, or null, in which case any previously-set buffer in the given slot is unset.", @@ -14313,7 +14428,6 @@ "gpurenderpassencoder": { "url": "$MDN_URL$/web/api/gpurenderpassencoder", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14321,17 +14435,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPURenderPassEncoder interface of the WebGPU API encodes commands related to controlling the vertex and fragment shader stages, as issued by a GPURenderPipeline. It forms part of the overall encoding activity of a GPUCommandEncoder.\n

A render pipeline renders graphics to GPUTexture attachments, typically intended for display in a <canvas> element, but it could also render to textures used for other purposes that never appear onscreen. It has two main stages:\n

    \n
  • \n

    A vertex stage, in which a vertex shader takes positioning data fed into the GPU and uses it to position a series of vertices in 3D space by applying specified effects like rotation, translation, or perspective. The vertices are then assembled into primitives such as triangles (the basic building block of rendered graphics) and rasterized by the GPU to figure out what pixels each one should cover on the drawing canvas.\n

  • \n
  • \n

    A fragment stage, in which a fragment shader computes the color for each pixel covered by the primitives produced by the vertex shader. These computations frequently use inputs such as images (in the form of textures) that provide surface details and the position and color of virtual lights.\n

  • \n
\n

A GPURenderPassEncoder object instance is created via the GPUCommandEncoder.beginRenderPass() property." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPURenderPassEncoder interface of the WebGPU API encodes commands related to controlling the vertex and fragment shader stages, as issued by a GPURenderPipeline. It forms part of the overall encoding activity of a GPUCommandEncoder.\n

A render pipeline renders graphics to GPUTexture attachments, typically intended for display in a <canvas> element, but it could also render to textures used for other purposes that never appear onscreen. It has two main stages:\n

    \n
  • \n

    A vertex stage, in which a vertex shader takes positioning data fed into the GPU and uses it to position a series of vertices in 3D space by applying specified effects like rotation, translation, or perspective. The vertices are then assembled into primitives such as triangles (the basic building block of rendered graphics) and rasterized by the GPU to figure out what pixels each one should cover on the drawing canvas.\n

  • \n
  • \n

    A fragment stage, in which a fragment shader computes the color for each pixel covered by the primitives produced by the vertex shader. These computations frequently use inputs such as images (in the form of textures) that provide surface details and the position and color of virtual lights.\n

  • \n
\n

A GPURenderPassEncoder object instance is created via the GPUCommandEncoder.beginRenderPass() property." }, "gpurenderpassencoder.beginocclusionquery": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/beginocclusionquery", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14339,12 +14453,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The beginOcclusionQuery() method of the\nGPURenderPassEncoder interface begins an occlusion query at the specified index of the relevant GPUQuerySet (provided as the value of the occlusionQuerySet descriptor property when invoking GPUCommandEncoder.beginRenderPass() to run the render pass).", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The beginOcclusionQuery() method of the\nGPURenderPassEncoder interface begins an occlusion query at the specified index of the relevant GPUQuerySet (provided as the value of the occlusionQuerySet descriptor property when invoking GPUCommandEncoder.beginRenderPass() to run the render pass).", "parameters": { "queryIndex": "The index in the GPUQuerySet to begin the occlusion query at." }, @@ -14353,7 +14468,6 @@ "gpurenderpassencoder.draw": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/draw", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14361,12 +14475,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The draw() method of the\nGPURenderPassEncoder interface draws primitives based on the vertex buffers provided by setVertexBuffer().", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The draw() method of the\nGPURenderPassEncoder interface draws primitives based on the vertex buffers provided by setVertexBuffer().", "parameters": { "vertexCount": "A number defining the number of vertices to draw.", "instanceCount": "A number defining the number of instances to draw. If omitted, instanceCount defaults to 1.", @@ -14378,7 +14493,6 @@ "gpurenderpassencoder.drawindexed": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/drawindexed", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14386,12 +14500,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndexed() method of the\nGPURenderPassEncoder interface draws indexed primitives based on the vertex and index buffers provided by setVertexBuffer() and setIndexBuffer().", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndexed() method of the\nGPURenderPassEncoder interface draws indexed primitives based on the vertex and index buffers provided by setVertexBuffer() and setIndexBuffer().", "parameters": { "indexCount": "A number defining the number of indices to draw.", "instanceCount": "A number defining the number of instances to draw. If omitted, instanceCount defaults to 1.", @@ -14404,7 +14519,6 @@ "gpurenderpassencoder.drawindexedindirect": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/drawindexedindirect", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14412,12 +14526,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndexedIndirect() method of the\nGPURenderPassEncoder interface draws indexed primitives using parameters read from a GPUBuffer.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndexedIndirect() method of the\nGPURenderPassEncoder interface draws indexed primitives using parameters read from a GPUBuffer.", "parameters": { "indirectBuffer": "A GPUBuffer containing the indexCount, instanceCount, firstIndex, baseVertex, and firstInstance values needed to carry out the drawing operation. The buffer must contain a tightly packed block of five 32-bit unsigned integer values representing the values (20 bytes total), given in the same order as the arguments for GPURenderPassEncoder.drawIndexed(). So for example:\n

\n```js\nconst uint32 = new Uint32Array(5);\nuint32[0] = 3; // The indexCount value\nuint32[1] = 1; // The instanceCount value\nuint32[2] = 0; // The firstIndex value\nuint32[3] = 0; // The baseVertex value\nuint32[4] = 0; // The firstInstance value\n// Write values into a GPUBuffer\ndevice.queue.writeBuffer(buffer, 0, uint32, 0, uint32.length);\n```\n
\n
\n

Note:\nThe indirect-first-instance feature needs to be enabled for non-zero firstInstance values to be used. If the indirect-first-instance feature is not enabled and firstInstance is not zero, the drawIndexedIndirect() call will be treated as a no-op.\n

", "indirectOffset": "The offset, in bytes, into indirectBuffer where the value data begins." @@ -14427,7 +14542,6 @@ "gpurenderpassencoder.drawindirect": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/drawindirect", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14435,12 +14549,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndirect() method of the\nGPURenderPassEncoder interface draws primitives using parameters read from a GPUBuffer.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The drawIndirect() method of the\nGPURenderPassEncoder interface draws primitives using parameters read from a GPUBuffer.", "parameters": { "indirectBuffer": "A GPUBuffer containing the vertexCount, instanceCount, firstVertex, and firstInstance values needed to carry out the drawing operation. The buffer must contain a tightly packed block of four 32-bit unsigned integer values representing the values (16 bytes total), given in the same order as the arguments for GPURenderPassEncoder.draw(). So for example:\n

\n```js\nconst uint32 = new Uint32Array(4);\nuint32[0] = 3; // The vertexCount value\nuint32[1] = 1; // The instanceCount value\nuint32[2] = 0; // The firstVertex value\nuint32[3] = 0; // The firstInstance value\n// Write values into a GPUBuffer\ndevice.queue.writeBuffer(buffer, 0, uint32, 0, uint32.length);\n```\n
\n
\n

Note:\nThe indirect-first-instance feature needs to be enabled for non-zero firstInstance values to be used. If the indirect-first-instance feature is not enabled and firstInstance is not zero, the drawIndirect() call will be treated as a no-op.\n

", "indirectOffset": "The offset, in bytes, into indirectBuffer where the value data begins." @@ -14450,7 +14565,6 @@ "gpurenderpassencoder.end": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/end", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14458,18 +14572,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The end() method of the\nGPURenderPassEncoder interface completes recording of the current render pass command sequence.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The end() method of the\nGPURenderPassEncoder interface completes recording of the current render pass command sequence.", "returns": "None (Undefined)." }, "gpurenderpassencoder.endocclusionquery": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/endocclusionquery", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14477,18 +14591,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The endOcclusionQuery() method of the\nGPURenderPassEncoder interface ends an active occlusion query previously started with beginOcclusionQuery().", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The endOcclusionQuery() method of the\nGPURenderPassEncoder interface ends an active occlusion query previously started with beginOcclusionQuery().", "returns": "None (Undefined)." }, "gpurenderpassencoder.executebundles": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/executebundles", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14496,12 +14610,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The executeBundles() method of the\nGPURenderPassEncoder interface executes commands previously recorded into the referenced GPURenderBundles, as part of this render pass.\n

\n

Note:\nAfter calling executeBundles() the currently set vertex buffers, index buffers, bind groups, and pipeline are all cleared, even if no bundles are actually executed.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The executeBundles() method of the\nGPURenderPassEncoder interface executes commands previously recorded into the referenced GPURenderBundles, as part of this render pass.\n

\n

Note:\nAfter calling executeBundles() the currently set vertex buffers, index buffers, bind groups, and pipeline are all cleared, even if no bundles are actually executed.\n

", "parameters": { "bundles": "An array of GPURenderBundle objects, containing the pre-recorded commands to execute." }, @@ -14510,7 +14625,6 @@ "gpurenderpassencoder.insertdebugmarker": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/insertdebugmarker", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14518,12 +14632,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The insertDebugMarker() method of the\nGPURenderPassEncoder interface marks a specific point in a series of encoded render pass commands with a label.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The insertDebugMarker() method of the\nGPURenderPassEncoder interface marks a specific point in a series of encoded render pass commands with a label.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", "parameters": { "markerLabel": "A string representing the label to insert." }, @@ -14532,7 +14647,6 @@ "gpurenderpassencoder.label": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14540,17 +14654,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPURenderPassEncoder interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUCommandEncoder.beginRenderPass() call, or you can get and set it directly on the GPURenderPassEncoder object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label read-only property of the\nGPURenderPassEncoder interface is a string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUCommandEncoder.beginRenderPass() call, or you can get and set it directly on the GPURenderPassEncoder object." }, "gpurenderpassencoder.popdebuggroup": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/popdebuggroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14558,18 +14672,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popDebugGroup() method of the\nGPURenderPassEncoder interface ends a render pass debug group, which is begun with a pushDebugGroup() call.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The popDebugGroup() method of the\nGPURenderPassEncoder interface ends a render pass debug group, which is begun with a pushDebugGroup() call.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", "returns": "None (Undefined)." }, "gpurenderpassencoder.pushdebuggroup": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/pushdebuggroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14577,12 +14691,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushDebugGroup() method of the\nGPURenderPassEncoder interface begins a render pass debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a popDebugGroup() method is invoked.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushDebugGroup() method of the\nGPURenderPassEncoder interface begins a render pass debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a popDebugGroup() method is invoked.\n

This could be used for telemetry, or may be utilized in GPUError messages, browser dev tools, or other services in the future to help with debugging.", "parameters": { "groupLabel": "A string representing the label for the debug group." }, @@ -14591,7 +14706,6 @@ "gpurenderpassencoder.setbindgroup": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/setbindgroup", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14599,12 +14713,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setBindGroup() method of the\nGPURenderPassEncoder interface sets the GPUBindGroup to use for subsequent render commands, for a given index.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setBindGroup() method of the\nGPURenderPassEncoder interface sets the GPUBindGroup to use for subsequent render commands, for a given index.", "parameters": { "index": "The index to set the bind group at. This matches the n index value of the corresponding @group(n) attribute in the shader code (GPUShaderModule) used in the related pipeline.", "bindGroup": "The GPUBindGroup to use for subsequent render commands, or null, in which case any previously-set bind group in the given slot is unset.", @@ -14617,7 +14732,6 @@ "gpurenderpassencoder.setblendconstant": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/setblendconstant", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14625,12 +14739,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setBlendConstant() method of the\nGPURenderPassEncoder interface sets the constant blend color and alpha values used with \"constant\" and \"one-minus-constant\" blend factors (as set in the descriptor of the GPUDevice.createRenderPipeline() method, in the blend property).", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setBlendConstant() method of the\nGPURenderPassEncoder interface sets the constant blend color and alpha values used with \"constant\" and \"one-minus-constant\" blend factors (as set in the descriptor of the GPUDevice.createRenderPipeline() method, in the blend property).", "parameters": { "color": "An object or array representing the color to use when blending — the r, g, b, and a components are represented as floating point numbers between 0.0 and 1.0.\n

What follows is an object example:\n

\n```js\nconst color = { r: 0.0, g: 0.5, b: 1.0, a: 1.0 };\n```\n
\n

The array equivalent would look like this:\n

\n```js\nconst color = [0.0, 0.5, 1.0, 1.0];\n```\n
" }, @@ -14639,7 +14754,6 @@ "gpurenderpassencoder.setindexbuffer": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/setindexbuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14647,12 +14761,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setIndexBuffer() method of the\nGPURenderPassEncoder interface sets the current GPUBuffer that will provide index data for subsequent drawing commands.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setIndexBuffer() method of the\nGPURenderPassEncoder interface sets the current GPUBuffer that will provide index data for subsequent drawing commands.", "parameters": { "buffer": "A GPUBuffer representing the buffer containing the index data to use for subsequent drawing commands.", "indexFormat": "An enumerated value that defines the format of the index data contained in buffer. Possible values are:\n

    \n
  • \"uint16\"
  • \n
  • \"uint32\"
  • \n
", @@ -14664,7 +14779,6 @@ "gpurenderpassencoder.setpipeline": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/setpipeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14672,12 +14786,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setPipeline() method of the\nGPURenderPassEncoder interface sets the GPURenderPipeline to use for subsequent render pass commands.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setPipeline() method of the\nGPURenderPassEncoder interface sets the GPURenderPipeline to use for subsequent render pass commands.", "parameters": { "pipeline": "The GPURenderPipeline to use for subsequent render pass commands." }, @@ -14686,7 +14801,6 @@ "gpurenderpassencoder.setscissorrect": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/setscissorrect", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14694,12 +14808,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setScissorRect() method of the\nGPURenderPassEncoder interface sets the scissor rectangle used during the rasterization stage. After transformation into viewport coordinates any fragments that fall outside the scissor rectangle will be discarded.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setScissorRect() method of the\nGPURenderPassEncoder interface sets the scissor rectangle used during the rasterization stage. After transformation into viewport coordinates any fragments that fall outside the scissor rectangle will be discarded.", "parameters": { "x": "A number representing the minimum X value of the scissor rectangle, in pixels.", "y": "A number representing the minimum Y value of the scissor rectangle, in pixels.", @@ -14711,7 +14826,6 @@ "gpurenderpassencoder.setstencilreference": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/setstencilreference", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14719,12 +14833,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setStencilReference() method of the\nGPURenderPassEncoder interface sets the stencil reference value using during stencil tests with the \"replace\" stencil operation (as set in the descriptor of the GPUDevice.createRenderPipeline() method, in the properties defining the various stencil operations).", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setStencilReference() method of the\nGPURenderPassEncoder interface sets the stencil reference value using during stencil tests with the \"replace\" stencil operation (as set in the descriptor of the GPUDevice.createRenderPipeline() method, in the properties defining the various stencil operations).", "parameters": { "reference": "A number representing the new stencil reference value to set for the render pass." }, @@ -14733,7 +14848,6 @@ "gpurenderpassencoder.setvertexbuffer": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/setvertexbuffer", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14741,12 +14855,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setVertexBuffer() method of the\nGPURenderPassEncoder interface sets or unsets the current GPUBuffer for the given slot that will provide vertex data for subsequent drawing commands.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setVertexBuffer() method of the\nGPURenderPassEncoder interface sets or unsets the current GPUBuffer for the given slot that will provide vertex data for subsequent drawing commands.", "parameters": { "slot": "A number referencing the vertex buffer slot to set the vertex buffer for.", "buffer": "A GPUBuffer representing the buffer containing the vertex data to use for subsequent drawing commands, or null, in which case any previously-set buffer in the given slot is unset.", @@ -14758,7 +14873,6 @@ "gpurenderpassencoder.setviewport": { "url": "$MDN_URL$/web/api/gpurenderpassencoder/setviewport", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14766,12 +14880,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setViewport() method of the\nGPURenderPassEncoder interface sets the viewport used during the rasterization stage to linearly map from normalized device coordinates to viewport coordinates.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The setViewport() method of the\nGPURenderPassEncoder interface sets the viewport used during the rasterization stage to linearly map from normalized device coordinates to viewport coordinates.", "parameters": { "x": "A number representing the minimum X value of the viewport, in pixels.", "y": "A number representing the minimum Y value of the viewport, in pixels.", @@ -14785,7 +14900,6 @@ "gpurenderpipeline": { "url": "$MDN_URL$/web/api/gpurenderpipeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14793,17 +14907,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPURenderPipeline interface of the WebGPU API represents a pipeline that controls the vertex and fragment shader stages and can be used in a GPURenderPassEncoder or GPURenderBundleEncoder.\n

A GPURenderPipeline object instance can be created using the GPUDevice.createRenderPipeline() or GPUDevice.createRenderPipelineAsync() methods." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPURenderPipeline interface of the WebGPU API represents a pipeline that controls the vertex and fragment shader stages and can be used in a GPURenderPassEncoder or GPURenderBundleEncoder.\n

A GPURenderPipeline object instance can be created using the GPUDevice.createRenderPipeline() or GPUDevice.createRenderPipelineAsync() methods." }, "gpurenderpipeline.getbindgrouplayout": { "url": "$MDN_URL$/web/api/gpurenderpipeline/getbindgrouplayout", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14811,12 +14925,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getBindGroupLayout() method of the\nGPURenderPipeline interface returns the pipeline's GPUBindGroupLayout object with the given index (i.e., included in the originating GPUDevice.createRenderPipeline() or GPUDevice.createRenderPipelineAsync() call's pipeline layout).\n

If the GPURenderPipeline was created with layout: \"auto\", this method is the only way to retrieve the GPUBindGroupLayouts generated by the pipeline.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getBindGroupLayout() method of the\nGPURenderPipeline interface returns the pipeline's GPUBindGroupLayout object with the given index (i.e., included in the originating GPUDevice.createRenderPipeline() or GPUDevice.createRenderPipelineAsync() call's pipeline layout).\n

If the GPURenderPipeline was created with layout: \"auto\", this method is the only way to retrieve the GPUBindGroupLayouts generated by the pipeline.", "parameters": { "index": "A number representing the index of the GPUBindGroupLayout to return." }, @@ -14825,7 +14940,6 @@ "gpurenderpipeline.label": { "url": "$MDN_URL$/web/api/gpurenderpipeline/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14833,17 +14947,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPURenderPipeline interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createRenderPipeline() or GPUDevice.createRenderPipelineAsync() call, or you can get and set it directly on the GPURenderPipeline object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPURenderPipeline interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createRenderPipeline() or GPUDevice.createRenderPipelineAsync() call, or you can get and set it directly on the GPURenderPipeline object." }, "gpusampler": { "url": "$MDN_URL$/web/api/gpusampler", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14851,17 +14965,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUSampler interface of the WebGPU API represents an object that can control how shaders transform and filter texture resource data.\n

A GPUSampler object instance is created using the GPUDevice.createSampler() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUSampler interface of the WebGPU API represents an object that can control how shaders transform and filter texture resource data.\n

A GPUSampler object instance is created using the GPUDevice.createSampler() method." }, "gpusampler.label": { "url": "$MDN_URL$/web/api/gpusampler/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14869,17 +14983,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUSampler interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createSampler() call, or you can get and set it directly on the GPUSampler object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUSampler interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createSampler() call, or you can get and set it directly on the GPUSampler object." }, "gpushadermodule": { "url": "$MDN_URL$/web/api/gpushadermodule", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14887,17 +15001,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUShaderModule interface of the WebGPU API represents an internal shader module object, a container for WGSL shader code that can be submitted to the GPU for execution by a pipeline.\n

A GPUShaderModule object instance is created using GPUDevice.createShaderModule()." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUShaderModule interface of the WebGPU API represents an internal shader module object, a container for WGSL shader code that can be submitted to the GPU for execution by a pipeline.\n

A GPUShaderModule object instance is created using GPUDevice.createShaderModule()." }, "gpushadermodule.getcompilationinfo": { "url": "$MDN_URL$/web/api/gpushadermodule/getcompilationinfo", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14905,18 +15019,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getCompilationInfo() method of the\nGPUShaderModule interface returns a Promise that fulfills with a GPUCompilationInfo object containing messages generated during the GPUShaderModule's compilation.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getCompilationInfo() method of the\nGPUShaderModule interface returns a Promise that fulfills with a GPUCompilationInfo object containing messages generated during the GPUShaderModule's compilation.", "returns": "A Promise that fulfills with a GPUCompilationInfo object.\n

GPUCompilationInfo contains a messages property, which is an array of GPUCompilationMessage objects, each one containing the details of an individual compilation message." }, "gpushadermodule.label": { "url": "$MDN_URL$/web/api/gpushadermodule/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14924,17 +15038,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUShaderModule interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createShaderModule() call, or you can get and set it directly on the GPUShaderModule object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUShaderModule interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createShaderModule() call, or you can get and set it directly on the GPUShaderModule object." }, "gpusupportedfeatures": { "url": "$MDN_URL$/web/api/gpusupportedfeatures", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14942,17 +15056,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUSupportedFeatures interface of the WebGPU API is a Set-like object that describes additional functionality supported by a GPUAdapter.\n

The GPUSupportedFeatures object for the current adapter is accessed via the GPUAdapter.features property — use this to test what features your current setup supports. To create a GPUDevice with a specific feature enabled, you need to specify it in the requiredFeatures array of the GPUAdapter.requestDevice() descriptor.\n

You should note that not all features will be available to WebGPU in all browsers that support it, even if the features are supported by the underlying hardware. This could be due to constraints in the underlying system, browser, or adapter. For example:\n

    \n
  • The underlying system might not be able to guarantee exposure of a feature in a way that is compatible with a certain browser.
  • \n
  • The browser vendor might not have found a secure way to implement support for that feature, or might just not have gotten round to it yet.
  • \n
\n

If you are hoping to take advantage of a specific additional feature in a WebGPU app, thorough testing is advised." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUSupportedFeatures interface of the WebGPU API is a Set-like object that describes additional functionality supported by a GPUAdapter.\n

The GPUSupportedFeatures object for the current adapter is accessed via the GPUAdapter.features property — use this to test what features your current setup supports. To create a GPUDevice with a specific feature enabled, you need to specify it in the requiredFeatures array of the GPUAdapter.requestDevice() descriptor.\n

You should note that not all features will be available to WebGPU in all browsers that support it, even if the features are supported by the underlying hardware. This could be due to constraints in the underlying system, browser, or adapter. For example:\n

    \n
  • The underlying system might not be able to guarantee exposure of a feature in a way that is compatible with a certain browser.
  • \n
  • The browser vendor might not have found a secure way to implement support for that feature, or might just not have gotten round to it yet.
  • \n
\n

If you are hoping to take advantage of a specific additional feature in a WebGPU app, thorough testing is advised." }, "gpusupportedlimits": { "url": "$MDN_URL$/web/api/gpusupportedlimits", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14960,17 +15074,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUSupportedLimits interface of the WebGPU API describes the limits supported by a GPUAdapter.\n

The GPUSupportedLimits object for the current adapter is accessed via the GPUAdapter.limits property.\n

You should note that, rather than reporting the exact limits of each GPU, browsers will likely report different tier values of different limits to reduce the unique information available to drive-by fingerprinting. For example, the tiers of a certain limit might be 2048, 8192, and 32768. If your GPU's actual limit is 16384, the browser will still report 8192.\n

Given that different browsers will handle this differently and the tier values may change over time, it is hard to provide an accurate account of what limit values to expect — thorough testing is advised." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUSupportedLimits interface of the WebGPU API describes the limits supported by a GPUAdapter.\n

The GPUSupportedLimits object for the current adapter is accessed via the GPUAdapter.limits property.\n

You should note that, rather than reporting the exact limits of each GPU, browsers will likely report different tier values of different limits to reduce the unique information available to drive-by fingerprinting. For example, the tiers of a certain limit might be 2048, 8192, and 32768. If your GPU's actual limit is 16384, the browser will still report 8192.\n

Given that different browsers will handle this differently and the tier values may change over time, it is hard to provide an accurate account of what limit values to expect — thorough testing is advised." }, "gputexture": { "url": "$MDN_URL$/web/api/gputexture", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14978,17 +15092,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUTexture interface of the WebGPU API represents a container used to store 1D, 2D, or 3D arrays of data, such as images, to use in GPU rendering operations.\n

A GPUTexture object instance is created using the GPUDevice.createTexture() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUTexture interface of the WebGPU API represents a container used to store 1D, 2D, or 3D arrays of data, such as images, to use in GPU rendering operations.\n

A GPUTexture object instance is created using the GPUDevice.createTexture() method." }, "gputexture.createview": { "url": "$MDN_URL$/web/api/gputexture/createview", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -14996,12 +15110,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createView() method of the\nGPUTexture interface creates a GPUTextureView representing a specific view of the GPUTexture.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The createView() method of the\nGPUTexture interface creates a GPUTextureView representing a specific view of the GPUTexture.", "parameters": { "descriptor": "An object containing the following properties:\n

\n
arrayLayerCount Optional
\n
\n

A number defining how many array layers are accessible to the view, starting with the baseArrayLayer value.\n

If arrayLayerCount is omitted, it is given a value as follows:\n

    \n
  • If dimension is \"1d\", \"2d\", or \"3d\", arrayLayerCount is 1.
  • \n
  • If dimension is \"cube\", arrayLayerCount is 6.
  • \n
  • If dimension is \"2d-array\", or \"cube-array\", arrayLayerCount is GPUTexture.depthOrArrayLayers - baseArrayLayer.
  • \n
\n
\n
aspect Optional
\n
\n

An enumerated value specifying which aspect(s) of the texture are accessible to the texture view. Possible values are:\n

\n
\"all\"
\n
\n

All available aspects of the texture format will be accessible to the view, which can mean all or any of color, depth, and stencil, depending on what kind of format you are dealing with.\n

\n
\"depth-only\"
\n
\n

Only the depth aspect of a depth-or-stencil format will be accessible to the view.\n

\n
\"stencil-only\"
\n
\n

Only the stencil aspect of a depth-or-stencil format will be accessible to the view.\n

\n
\n

If omitted, aspect takes a value of \"all\".\n

\n
baseArrayLayer Optional
\n
\n

A number defining the index of the first array layer accessible to the view. If omitted, baseArrayLayer takes a value of 0.\n

\n
baseMipLevel Optional
\n
\n

A number representing the first (most detailed) mipmap level accessible to the view. If omitted, baseMipLevel takes a value of 0.\n

\n
dimension Optional
\n
\n

An enumerated value specifying the format to view the texture as. Possible values are:\n

    \n
  • \"1d\": The texture is viewed as a one-dimensional image.
  • \n
  • \"2d\": The texture is viewed as a single two-dimensional image.
  • \n
  • \"2d-array\": The texture is viewed as an array of two-dimensional images.
  • \n
  • \"cube\": The texture is viewed as a cubemap. The view has 6 array layers, corresponding to the [+X, -X, +Y, -Y, +Z, -Z] faces of the cube. Sampling is done seamlessly across the faces of the cubemap.
  • \n
  • \"cube-array\": The texture is viewed as a packed array of N cubemaps, each with 6 array layers corresponding to the [+X, -X, +Y, -Y, +Z, -Z] faces of the cube. Sampling is done seamlessly across the faces of the cubemaps.
  • \n
  • \"3d\": The texture is viewed as a three-dimensional image.
  • \n
\n

If dimension is omitted, it is given a value as follows:\n

\n
\n
format Optional
\n
\n

An enumerated value specifying the format of the texture view. See the Texture formats section of the specification for all the possible values.\n

If format is omitted, it will be given a value as follows:\n

\n
\n
label Optional
\n
\n

A string providing a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

\n
mipLevelCount Optional
\n
\n

A number defining how many mipmap levels are accessible to the view, starting with the baseMipLevel value.\n

If mipLevelCount is omitted, it will be given a value of GPUTexture.mipLevelCount - baseMipLevel.\n

\n
usage Optional
\n
\n

A set of bitwise flags representing a subset of the source texture's usage flags (available in the GPUTexture.usage property) that are compatible with the chosen view format. This can be used to restrict the allowed view usage in cases where the view format is incompatible with certain usages. The available usage flags are listed in the GPUTexture.usage value table.\n

The default value is 0, which represents the source texture's full set of usage flags. If the view's format doesn't support all of the texture's usages, the default will fail, and the view's usage must be specified explicitly.\n

\n
" }, @@ -15010,7 +15125,6 @@ "gputexture.depthorarraylayers": { "url": "$MDN_URL$/web/api/gputexture/depthorarraylayers", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15018,17 +15132,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The depthOrArrayLayers read-only property of the\nGPUTexture interface represents the depth or layer count of the GPUTexture.\n

This is set based on the size property in the descriptor object passed into the originating GPUDevice.createTexture() call." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The depthOrArrayLayers read-only property of the\nGPUTexture interface represents the depth or layer count of the GPUTexture.\n

This is set based on the size property in the descriptor object passed into the originating GPUDevice.createTexture() call." }, "gputexture.destroy": { "url": "$MDN_URL$/web/api/gputexture/destroy", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15036,18 +15150,18 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The destroy() method of the\nGPUTexture interface destroys the GPUTexture.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The destroy() method of the\nGPUTexture interface destroys the GPUTexture.", "returns": "None (Undefined)." }, "gputexture.dimension": { "url": "$MDN_URL$/web/api/gputexture/dimension", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15055,17 +15169,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The dimension read-only property of the\nGPUTexture interface represents the dimension of the set of texels for each GPUTexture subresource.\n

This is set via the dimension property in the descriptor object passed into the originating GPUDevice.createTexture() call, which defaults to \"2d\" if omitted." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The dimension read-only property of the\nGPUTexture interface represents the dimension of the set of texels for each GPUTexture subresource.\n

This is set via the dimension property in the descriptor object passed into the originating GPUDevice.createTexture() call, which defaults to \"2d\" if omitted." }, "gputexture.format": { "url": "$MDN_URL$/web/api/gputexture/format", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15073,17 +15187,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The format read-only property of the\nGPUTexture interface represents the format of the GPUTexture.\n

This is set via the format property in the descriptor object passed into the originating GPUDevice.createTexture() call." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The format read-only property of the\nGPUTexture interface represents the format of the GPUTexture.\n

This is set via the format property in the descriptor object passed into the originating GPUDevice.createTexture() call." }, "gputexture.height": { "url": "$MDN_URL$/web/api/gputexture/height", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15091,17 +15205,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The height read-only property of the\nGPUTexture interface represents the height of the GPUTexture.\n

This is set based on the value of the size property in the descriptor object passed into the originating GPUDevice.createTexture() call." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The height read-only property of the\nGPUTexture interface represents the height of the GPUTexture.\n

This is set based on the value of the size property in the descriptor object passed into the originating GPUDevice.createTexture() call." }, "gputexture.label": { "url": "$MDN_URL$/web/api/gputexture/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15109,17 +15223,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUTexture interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createTexture() call, or you can get and set it directly on the GPUTexture object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUTexture interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUDevice.createTexture() call, or you can get and set it directly on the GPUTexture object." }, "gputexture.miplevelcount": { "url": "$MDN_URL$/web/api/gputexture/miplevelcount", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15127,17 +15241,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The mipLevelCount read-only property of the\nGPUTexture interface represents the number of mip levels of the GPUTexture.\n

This is set via the mipLevelCount property in the descriptor object passed into the originating GPUDevice.createTexture() call. If omitted, this defaults to 1." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The mipLevelCount read-only property of the\nGPUTexture interface represents the number of mip levels of the GPUTexture.\n

This is set via the mipLevelCount property in the descriptor object passed into the originating GPUDevice.createTexture() call. If omitted, this defaults to 1." }, "gputexture.samplecount": { "url": "$MDN_URL$/web/api/gputexture/samplecount", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15145,17 +15259,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The sampleCount read-only property of the\nGPUTexture interface represents the sample count of the GPUTexture.\n

This is set via the sampleCount property in the descriptor object passed into the originating GPUDevice.createTexture() call. If omitted, this defaults to 1." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The sampleCount read-only property of the\nGPUTexture interface represents the sample count of the GPUTexture.\n

This is set via the sampleCount property in the descriptor object passed into the originating GPUDevice.createTexture() call. If omitted, this defaults to 1." }, "gputexture.usage": { "url": "$MDN_URL$/web/api/gputexture/usage", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15163,17 +15277,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The usage read-only property of the\nGPUTexture interface is the bitwise flags representing the allowed usages of the GPUTexture.\n

This is set via the usage property in the descriptor object passed into the originating GPUDevice.createTexture() call." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The usage read-only property of the\nGPUTexture interface is the bitwise flags representing the allowed usages of the GPUTexture.\n

This is set via the usage property in the descriptor object passed into the originating GPUDevice.createTexture() call." }, "gputexture.width": { "url": "$MDN_URL$/web/api/gputexture/width", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15181,17 +15295,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The width read-only property of the\nGPUTexture interface represents the width of the GPUTexture.\n

This is set based on the value of the size property in the descriptor object passed into the originating GPUDevice.createTexture() call." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The width read-only property of the\nGPUTexture interface represents the width of the GPUTexture.\n

This is set based on the value of the size property in the descriptor object passed into the originating GPUDevice.createTexture() call." }, "gputextureview": { "url": "$MDN_URL$/web/api/gputextureview", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15199,17 +15313,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUTextureView interface of the WebGPU API represents a view into a subset of the texture resources defined by a particular GPUTexture.\n

A GPUTextureView object instance is created using the GPUTexture.createView() method." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUTextureView interface of the WebGPU API represents a view into a subset of the texture resources defined by a particular GPUTexture.\n

A GPUTextureView object instance is created using the GPUTexture.createView() method." }, "gputextureview.label": { "url": "$MDN_URL$/web/api/gputextureview/label", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15217,17 +15331,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUTextureView interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUTexture.createView() call, or you can get and set it directly on the GPUTextureView object." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The label property of the\nGPUTextureView interface provides a label that can be used to identify the object, for example in GPUError messages or console warnings.\n

This can be set by providing a label property in the descriptor object passed into the originating GPUTexture.createView() call, or you can get and set it directly on the GPUTextureView object." }, "gpuuncapturederrorevent": { "url": "$MDN_URL$/web/api/gpuuncapturederrorevent", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15235,17 +15349,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUUncapturedErrorEvent interface of the WebGPU API is the event object type for the GPUDevice uncapturederror event, used for telemetry and to report unexpected errors.\n

Known error cases should be handled using pushErrorScope() and popErrorScope()." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUUncapturedErrorEvent interface of the WebGPU API is the event object type for the GPUDevice uncapturederror event, used for telemetry and to report unexpected errors.\n

Known error cases should be handled using pushErrorScope() and popErrorScope()." }, "gpuuncapturederrorevent.error": { "url": "$MDN_URL$/web/api/gpuuncapturederrorevent/error", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15253,17 +15367,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The error read-only property of the\nGPUUncapturedErrorEvent interface is a GPUError object instance providing access to the details of the error." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The error read-only property of the\nGPUUncapturedErrorEvent interface is a GPUError object instance providing access to the details of the error." }, "gpuuncapturederrorevent.gpuuncapturederrorevent": { "url": "$MDN_URL$/web/api/gpuuncapturederrorevent/gpuuncapturederrorevent", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15271,12 +15385,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUUncapturedErrorEvent() constructor creates a new\nGPUUncapturedErrorEvent object instance.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUUncapturedErrorEvent() constructor creates a new\nGPUUncapturedErrorEvent object instance.", "parameters": { "type": "An enumerated value specifying the type of error. Possible values are:\n

\n
\"internal\"
\n
\n

The error is a GPUInternalError.\n

\n
\"out-of-memory\"
\n
\n

The error is a GPUOutOfMemoryError.\n

\n
\"validation\"
\n
\n

The error is a GPUValidationError.\n

\n
", "options": "An object, which can contain the following properties:\n
\n
error
\n
\n

A GPUError object instance providing access to the details of the error.\n

\n
" @@ -15285,7 +15400,6 @@ "gpuvalidationerror": { "url": "$MDN_URL$/web/api/gpuvalidationerror", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15293,17 +15407,17 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUValidationError interface of the WebGPU API describes an application error indicating that an operation did not pass the WebGPU API's validation constraints.\n

It represents one of the types of errors surfaced by GPUDevice.popErrorScope and the uncapturederror event.\n

Validation errors occur whenever invalid inputs are given to a WebGPU call. These are consistent, predictable, and should not occur provided your app is well-formed. They will occur in the same way on every device your code runs on, so once you've fixed any errors that show up during development you probably don't need to observe them directly most of the time. An exception to that rule is if you're consuming user-supplied assets, shaders, etc., in which case watching for validation errors while loading could be helpful.\n

\n

Note:\nWe have attempted to provide useful information to help you understand why validation errors are occurring in your WebGPU code in \"Validation\" sections where appropriate, which list criteria to meet to avoid validation errors. See for example the GPUDevice.createBindGroup() Validation section.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUValidationError interface of the WebGPU API describes an application error indicating that an operation did not pass the WebGPU API's validation constraints.\n

It represents one of the types of errors surfaced by GPUDevice.popErrorScope and the uncapturederror event.\n

Validation errors occur whenever invalid inputs are given to a WebGPU call. These are consistent, predictable, and should not occur provided your app is well-formed. They will occur in the same way on every device your code runs on, so once you've fixed any errors that show up during development you probably don't need to observe them directly most of the time. An exception to that rule is if you're consuming user-supplied assets, shaders, etc., in which case watching for validation errors while loading could be helpful.\n

\n

Note:\nWe have attempted to provide useful information to help you understand why validation errors are occurring in your WebGPU code in \"Validation\" sections where appropriate, which list criteria to meet to avoid validation errors. See for example the GPUDevice.createBindGroup() Validation section.\n

" }, "gpuvalidationerror.gpuvalidationerror": { "url": "$MDN_URL$/web/api/gpuvalidationerror/gpuvalidationerror", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15311,12 +15425,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUValidationError() constructor creates a new\nGPUValidationError object instance.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The GPUValidationError() constructor creates a new\nGPUValidationError object instance.", "parameters": { "message": "A string providing a human-readable message that explains why the error occurred." } @@ -16263,13 +16378,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The Highlight interface of the CSS Custom Highlight API is used to represent a collection of Range instances to be styled using the API.\n

To style arbitrary ranges in a page, instantiate a new Highlight object, add one or more Range objects to it, and register it using the HighlightRegistry.\n

A Highlight instance is a Set-like object that can hold one or more Range objects." }, @@ -16282,13 +16399,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The add() method of the Highlight interface adds a new Range object to a highlight, to be styled using the CSS Custom Highlight API.\n

Highlight is a Set-like object, so this is similar to using Set.add().", "parameters": { @@ -16305,13 +16424,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The clear() method of the Highlight interface removes all the Range objects from a Highlight object.\n

Highlight is a Set-like object, so this is similar to using Set.clear().", "returns": "None (undefined)." @@ -16325,13 +16446,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The delete() method of the Highlight interface removes a specified Range object from a Highlight object.\n

Highlight is a Set-like object, so this is similar to using Set.delete().", "parameters": { @@ -16348,13 +16471,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The entries() method of the Highlight interface returns a new Iterator object that contains an array of [range, range] for each Range object in the Highlight object, in insertion order.\n

Highlight is a Set-like object, so this is similar to using Set.entries().", "returns": "A new iterator object that contains an array of [range, range] for each Range object in the given Highlight, in insertion order." @@ -16368,13 +16493,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The forEach() method of the Highlight interface executes a provided function once for each Range object in the Highlight object, in insertion order.\n

Highlight is a Set-like object, so this is similar to using Set.forEach().", "parameters": { @@ -16392,13 +16519,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The has() method of the Highlight interface returns a boolean indicating whether a Range object exists in a Highlight object or not.\n

Highlight is a Set-like object, so this is similar to using Set.has().", "parameters": { @@ -16415,17 +16544,19 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The Highlight() constructor returns a newly created\nHighlight object which can hold a collection of Range objects to be styled using the CSS Custom Highlight API.", "parameters": { - "range1, …, rangeN": "One ore more initial Range objects to add in the new highlight." + "range1, …, rangeN": "One or more initial Range objects to add in the new highlight." }, "returns": "A new Highlight object." }, @@ -16438,13 +16569,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The keys() method of the Highlight interface is an alias for the values() method.\n

Highlight is a Set-like object, so this is similar to using Set.keys().", "returns": "A new iterator object containing each Range object in the given Highlight, in insertion order." @@ -16458,15 +16591,17 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, - "doc": "It is possible to create Range objects that overlap in a document.\n

When overlapping ranges are used by multiple different Highlight objects, and when those highlights are styled using ::highlight pseudo-elements, this may lead to conflicting styles.\n

If two text ranges overlap and are both highlighted using the CSS Custom Highlight API, and if they're both styled using the color CSS property, the browser needs to decide which color should be used for styling the text in the overlapping part.\n

By default, all highlights have the same priority and the browser chooses the most recently registered highlight to style the overlapping parts.\n

The priority property of the Highlight interface is a Number used to change this default behavior and determine which highlight's styles should be used to resolve style conflicts in overlapping parts.\n

Note that all the styles of a highlight are applied and the browser only needs to resolve conflicts when the same CSS properties are used by multiple overlapping highlights. The highlight style conflict resolution also does not depend on the order in which the ::highlight pseudo-elements rules appear in the source, or whether or not CSS properties are marked as !important." + "doc": "The priority property of the Highlight interface is a number used to determine which highlight's styles should be used to resolve style conflicts in overlapping parts. Highlights with a higher priority number have preference over those with a lower priority.\n

It is possible to create Range objects that overlap in a document.\n

When overlapping ranges are used by multiple different Highlight objects, and when those highlights are styled using ::highlight pseudo-elements, this may lead to conflicting styles.\n

If two text ranges overlap and are both highlighted using the CSS Custom Highlight API, and if they're both styled using the color CSS property, the browser needs to decide which color should be used for styling the text in the overlapping part.\n

If no priority is set, all highlights have the same priority, and the browser chooses the most recently registered highlight to style the overlapping parts.\n

Note that all the styles of a highlight are applied and the browser only needs to resolve conflicts when the same CSS properties are used by multiple overlapping highlights. The highlight style conflict resolution also does not depend on the order in which the ::highlight pseudo-elements rules appear in the source, or whether or not CSS properties are marked as !important." }, "highlight.size": { "url": "$MDN_URL$/web/api/highlight/size", @@ -16477,13 +16612,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The size property returns the number of Range objects in a\nHighlight object." }, @@ -16496,13 +16633,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The type property of the Highlight interface is an enumerated String used to specify the meaning of the highlight. This allows assistive technologies, such as screen readers, to include this meaning when exposing the highlight to users.\n

By default, a highlight object will have its type set to highlight, but you can change it to spelling-error or grammar-error." }, @@ -16515,13 +16654,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The values() method of the Highlight interface returns a new Iterator object that contains the values for each Range object in the Highlight object in insertion order.\n

\n

Note:\nThe keys() method is an alias for this method. It behaves exactly the same and returns values of Highlight elements.\n

\n

Highlight is a Set-like object, so this is similar to using Set.values().", "returns": "A new iterator object containing each Range object in the given Highlight, in insertion order." @@ -16535,13 +16676,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The HighlightRegistry interface of the CSS Custom Highlight API is used to register Highlight objects to be styled using the API.\nIt is accessed via CSS.highlights.\n

A HighlightRegistry instance is a Map-like object, in which each key is the name string for a custom highlight, and the corresponding value is the associated Highlight object." }, @@ -16554,13 +16697,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The clear() method of the HighlightRegistry interface removes all the Highlight objects registered in the HighlightRegistry.\n

HighlightRegistry is a Map-like object, so this is similar to using Map.clear().", "returns": "None (undefined)." @@ -16574,13 +16719,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The delete() method of the HighlightRegistry interface removes a the named Highlight object from the HighlightRegistry.\n

HighlightRegistry is a Map-like object, so this is similar to using Map.delete().", "parameters": { @@ -16597,13 +16744,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The entries() method of the HighlightRegistry interface returns a new Iterator object that contains the [name, highlight] pairs for each element in the HighlightRegistry object, in insertion order.\n

HighlightRegistry is a Map-like object, so this is similar to using Map.entries().", "returns": "A new iterator object that contains an array of [name, highlight] for each Highlight object in the HighlightRegistry, in insertion order." @@ -16617,13 +16766,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The forEach() method of the HighlightRegistry interface executes a provided function once for each Highlight object in the registry, in insertion order.\n

HighlightRegistry is a Map-like object, so this is similar to using Map.forEach().", "parameters": { @@ -16641,13 +16792,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The get() method of the HighlightRegistry interface returns the named Highlight object from the registry.\n

HighlightRegistry is a Map-like object, so this is similar to using Map.get().", "parameters": { @@ -16664,13 +16817,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The has() method of the HighlightRegistry interface returns a boolean indicating whether or not a Highlight object with the specified name exists in the registry.\n

HighlightRegistry is a Map-like object, so this is similar to using Map.has().", "parameters": { @@ -16678,6 +16833,29 @@ }, "returns": "Returns true if a highlight with the specified name exists in the registry; otherwise false." }, + "highlightregistry.highlightsfrompoint": { + "url": "$MDN_URL$/web/api/highlightregistry/highlightsfrompoint", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", + "Opera": "124" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The highlightsFromPoint() method of the HighlightRegistry interface returns an array of objects representing the custom highlights applied at a specific point within the viewport.", + "parameters": { + "x": "The x-coordinate of the point within the viewport from which to return custom highlight information.", + "y": "The y-coordinate of the point within the viewport from which to return custom highlight information.", + "options": "An object containing options, which can include:\n

\n
shadowRoots
\n
\n

An array of ShadowRoot objects. Custom highlights that exist at the specified point inside shadow roots in the array will also be included in the return value, in addition to those present in the light DOM. By default, highlights inside shadow roots are not returned.\n

\n
" + }, + "returns": "An array of HighlightHitResult objects representing the custom highlights applied at the point in the viewport specified by the x and y parameters.\n

Each HighlightHitResult object contains the following properties:\n

\n
highlight
\n
\n

A Highlight object representing the applied custom highlight.\n

\n
ranges
\n
\n

An array of AbstractRange objects representing the ranges to which the custom highlight is applied.\n

\n
\n

If no custom highlights are applied at the specified point, or the specified point is outside the viewport, the method returns an empty array." + }, "highlightregistry.keys": { "url": "$MDN_URL$/web/api/highlightregistry/keys", "status": [ @@ -16687,13 +16865,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The keys() method of the HighlightRegistry interface returns a new Iterator object that contains the keys for each Highlight object in the HighlightRegistry object in insertion order.\n

HighlightRegistry is a Map-like object, so this is similar to using Map.keys().", "returns": "A new iterator object containing the names of each Highlight object in the registry, in insertion order." @@ -16707,13 +16887,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The set() method of the HighlightRegistry interface adds or updates a Highlight object in the registry with the specified name.\n

HighlightRegistry is a Map-like object, so this is similar to using Map.set().", "parameters": { @@ -16731,13 +16913,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The size property returns the number of Highlight objects in the HighlightRegistry." }, @@ -16750,13 +16934,15 @@ "Chrome": "105", "ChromeAndroid": "105", "Edge": "105", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "91", "Safari": "17.2", "SafariIOS": "17.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "The values() method of the HighlightRegistry interface returns a new Iterator object that contains the values for each Highlight object in the HighlightRegistry object in insertion order.\n

HighlightRegistry is a Map-like object, so this is similar to using Map.values().", "returns": "A new iterator object containing each Highlight object in the registry, in insertion order." @@ -17000,7 +17186,7 @@ }, "hmacimportparams": { "url": "$MDN_URL$/web/api/hmacimportparams", - "doc": "The HmacImportParams dictionary of the Web Crypto API represents the object that should be passed as the algorithm parameter into SubtleCrypto.importKey() or SubtleCrypto.unwrapKey(), when generating a key for the HMAC algorithm." + "doc": "The HmacImportParams dictionary of the Web Crypto API represents the object that should be passed when importing, unwrapping, or deriving a key for the HMAC algorithm, as:\n

" }, "hmackeygenparams": { "url": "$MDN_URL$/web/api/hmackeygenparams", @@ -17012,7 +17198,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The HMDVRDevice interface of the WebVR API represents a head mounted display, providing access to information about each eye, and allowing us to modify the current field of view." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The HMDVRDevice interface of the WebVR API represents a head mounted display, providing access to information about each eye, and allowing us to modify the current field of view." }, "hmdvrdevice.geteyeparameters": { "url": "$MDN_URL$/web/api/hmdvrdevice/geteyeparameters", @@ -17020,7 +17206,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getEyeParameters() method of the HMDVRDevice interface returns current parameters for the eye specified as its argument (\"left\" or \"right\") — stored in a VREyeParameters object.\n

This includes field of view information, and more.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getEyeParameters() method of the HMDVRDevice interface returns current parameters for the eye specified as its argument (\"left\" or \"right\") — stored in a VREyeParameters object.\n

This includes field of view information, and more.", "parameters": { "whichEye": "A string representing the eye you want to return information about. The value can be left or right." }, @@ -17032,7 +17218,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The setFieldOfView() method of the HMDVRDevice interface can be used to set the field of view for one eye, or both eyes simultaneously.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The setFieldOfView() method of the HMDVRDevice interface can be used to set the field of view for one eye, or both eyes simultaneously.", "parameters": { "leftFOV": "A VRFieldOfView object that defines the new field of view for the left eye. If not specified, the left eye field of view does not change.", "rightFOV": "A VRFieldOfView object that defines the new field of view for the right eye. If not specified, the right eye field of view does not change.", @@ -17154,7 +17340,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The attributionSrc property of the HTMLAnchorElement interface gets and sets the attributionsrc attribute on an <a> element programmatically, reflecting the value of that attribute. attributionsrc specifies that you want the browser to send an Attribution-Reporting-Eligible header. On the server-side this is used to trigger sending an Attribution-Reporting-Register-Source header in the response, to register of a navigation-based attribution source.\n

The browser stores the source data associated with the navigation-based attribution source (as provided in the Attribution-Reporting-Register-Source response header) when it receives the navigation response.\n

See the Attribution Reporting API for more details.\n

\n

Note: <a> elements cannot be used as attribution triggers, only sources.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The attributionSrc property of the HTMLAnchorElement interface gets and sets the attributionsrc attribute on an <a> element programmatically, reflecting the value of that attribute. attributionsrc specifies that you want the browser to send an Attribution-Reporting-Eligible header. On the server-side this is used to trigger sending an Attribution-Reporting-Register-Source header in the response, to register of a navigation-based attribution source.\n

The browser stores the source data associated with the navigation-based attribution source (as provided in the Attribution-Reporting-Register-Source response header) when it receives the navigation response.\n

See the Attribution Reporting API for more details.\n

\n

Note:\n<a> elements cannot be used as attribution triggers, only sources.\n

" }, "htmlanchorelement.download": { "url": "$MDN_URL$/web/api/htmlanchorelement/download", @@ -17286,7 +17472,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The hreflang property of the HTMLAnchorElement interface is a string that is the language of the linked resource.\n

It reflects the hreflang attribute of the <a> element and is the empty string (\"\") if there is no hreflang element.\n

Web browsers and search engines may use this information to understand the language of the linked content better, but they are not required to follow it. The value provided for the hreflang attribute adheres to the format defined in RFC 5646: Tags for Identifying Languages (also known as BCP 47). If not, it is ignored.\n

Web browsers do not rely solely on the hreflang attribute after fetching the linked resource. Instead, they use language information directly associated with the resource (e.g., through HTTP headers) to determine its language." + "doc": "The hreflang property of the HTMLAnchorElement interface is a string that is the language of the linked resource.\n

It reflects the hreflang attribute of the <a> element and is the empty string (\"\") if there is no hreflang element.\n

Web browsers and search engines may use this information to understand the language of the linked content better, but they are not required to follow it. The value provided for the hreflang attribute adheres to the BCP 47 language tag format. If not, it is ignored.\n

Web browsers do not rely solely on the hreflang attribute after fetching the linked resource. Instead, they use language information directly associated with the resource (e.g., through HTTP headers) to determine its language." }, "htmlanchorelement.origin": { "url": "$MDN_URL$/web/api/htmlanchorelement/origin", @@ -18308,6 +18494,8 @@ "Chrome": "135", "ChromeAndroid": "135", "Edge": "135", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "120", "Safari": "preview" }, @@ -18325,6 +18513,8 @@ "Chrome": "135", "ChromeAndroid": "135", "Edge": "135", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "120", "Safari": "preview" }, @@ -18835,7 +19025,8 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" } }, "baseline": { @@ -18846,7 +19037,7 @@ "doc": "The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported, or the canvas has already been set to a different context mode.\n

Later calls to this method on the same canvas element, with the same contextType argument, will always return the same drawing context instance as was returned the first time the method was invoked. It is not possible to get a different drawing context object on a given canvas element.", "parameters": { "contextType": "A string containing the context identifier defining the drawing context associated to the canvas. Possible values are:\n

\n
\"2d\"
\n
\n

Creates a CanvasRenderingContext2D object representing a two-dimensional rendering context.\n

\n
\"webgl\" (or \"experimental-webgl\")
\n
\n

Creates a WebGLRenderingContext object representing a three-dimensional rendering context. This context is only available on browsers that implement WebGL version 1 (OpenGL ES 2.0).\n

\n
\"webgl2\"
\n
\n

Creates a WebGL2RenderingContext object representing a three-dimensional rendering context. This context is only available on browsers that implement WebGL version 2 (OpenGL ES 3.0).\n

\n
\"webgpu\"
\n
\n

Creates a GPUCanvasContext object representing a three-dimensional rendering context for WebGPU render pipelines. This context is only available on browsers that implement The WebGPU API.\n

\n
\"bitmaprenderer\"
\n
\n

Creates an ImageBitmapRenderingContext which only provides functionality to replace the content of the canvas with a given ImageBitmap.\n

\n
\n
\n

Note:\nThe identifier \"experimental-webgl\" is used\nin new implementations of WebGL. These implementations have either not reached\ntest suite conformance, or the graphics drivers on the platform are not yet\nstable. The Khronos Group certifies WebGL\nimplementations under certain conformance rules.\n

", - "contextAttributes": "You can use several context attributes when creating your rendering context, for example:\n
\n```js\nconst gl = canvas.getContext(\"webgl\", {\n  antialias: false,\n  depth: false,\n});\n```\n
\n

2d context attributes:\n

\n
alpha
\n
\n

A boolean value that indicates if the canvas contains an alpha channel. If set to false, the browser now knows that the backdrop is always opaque, which can speed up drawing of transparent content and images.\n

\n
colorSpace Optional
\n
\n

Specifies the color space of the rendering context. Possible values are:\n

\n
\n
desynchronized
\n
\n

A boolean value that hints the user agent to reduce the latency by desynchronizing the canvas paint cycle from the event loop.\n

\n
willReadFrequently
\n
\n

A boolean value that indicates whether or not a lot of read-back operations are planned. This will force the use of a software (instead of hardware accelerated) 2D canvas and can save memory when calling getImageData() frequently.\n

\n
\n

WebGL context attributes:\n

\n
alpha
\n
\n

A boolean value that indicates if the canvas contains an alpha buffer.\n

\n
depth
\n
\n

A boolean value that indicates that the drawing buffer is requested to have a depth buffer of at least 16 bits.\n

\n
stencil
\n
\n

A boolean value that indicates that the drawing buffer is requested to have a stencil buffer of at least 8 bits.\n

\n
desynchronized
\n
\n

A boolean value that hints the user agent to reduce the latency by desynchronizing the canvas paint cycle from the event loop.\n

\n
antialias
\n
\n

A boolean value that indicates whether or not to perform anti-aliasing if possible.\n

\n
failIfMajorPerformanceCaveat
\n
\n

A boolean value that indicates if a context will be created if the system performance is low or if no hardware GPU is available.\n

\n
powerPreference
\n
\n

A hint to the user agent indicating what configuration of GPU is suitable for the WebGL context. Possible values are:\n

\n
\"default\"
\n
\n

Let the user agent decide which GPU configuration is most suitable. This is the default value.\n

\n
\"high-performance\"
\n
\n

Prioritizes rendering performance over power consumption.\n

\n
\"low-power\"
\n
\n

Prioritizes power saving over rendering performance.\n

\n
\n
\n
premultipliedAlpha
\n
\n

A boolean value that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.\n

\n
preserveDrawingBuffer
\n
\n

If the value is true the buffers will not be cleared and will preserve their values until cleared or overwritten by the author.\n

\n
xrCompatible
\n
\n

A boolean value that hints to the user agent to use a compatible graphics adapter for an immersive XR device. Setting this synchronous flag at context creation is discouraged; rather call the asynchronous WebGLRenderingContext.makeXRCompatible() method the moment you intend to start an XR session.\n

\n
\n
\n

Note:\nThe WebGPU specification does not define any specific context attributes for getContext(). Instead, it provides configuration options via the GPUCanvasContext.configure() method.\n

" + "contextAttributes": "You can use several context attributes when creating your rendering context, for example:\n
\n```js\nconst gl = canvas.getContext(\"webgl\", {\n  antialias: false,\n  depth: false,\n});\n```\n
\n

2d context attributes:\n

\n
alpha
\n
\n

A boolean value that indicates if the canvas contains an alpha channel. If set to false, the browser now knows that the backdrop is always opaque, which can speed up drawing of transparent content and images.\n

\n
colorSpace Optional
\n
\n

Specifies the color space of the rendering context. Possible values are:\n

\n
\n
colorType Optional
\n
\n

Specifies the color type of the rendering context. Possible values are:\n

    \n
  • \"unorm8\" sets the color channels to 8 bit unsigned values. This is the default value.
  • \n
  • \"float16\" sets the color channels to 16-bit floating-point values.
  • \n
\n
\n
desynchronized
\n
\n

A boolean value that hints the user agent to reduce the latency by desynchronizing the canvas paint cycle from the event loop.\n

\n
willReadFrequently
\n
\n

A boolean value that indicates whether or not a lot of read-back operations are planned. This will force the use of a software (instead of hardware accelerated) 2D canvas and can save memory when calling getImageData() frequently.\n

\n
\n

WebGL context attributes:\n

\n
alpha
\n
\n

A boolean value that indicates if the canvas contains an alpha buffer.\n

\n
depth
\n
\n

A boolean value that indicates that the drawing buffer is requested to have a depth buffer of at least 16 bits.\n

\n
stencil
\n
\n

A boolean value that indicates that the drawing buffer is requested to have a stencil buffer of at least 8 bits.\n

\n
desynchronized
\n
\n

A boolean value that hints the user agent to reduce the latency by desynchronizing the canvas paint cycle from the event loop.\n

\n
antialias
\n
\n

A boolean value that indicates whether or not to perform anti-aliasing if possible.\n

\n
failIfMajorPerformanceCaveat
\n
\n

A boolean value that indicates if a context will be created if the system performance is low or if no hardware GPU is available.\n

\n
powerPreference
\n
\n

A hint to the user agent indicating what configuration of GPU is suitable for the WebGL context. Possible values are:\n

\n
\"default\"
\n
\n

Let the user agent decide which GPU configuration is most suitable. This is the default value.\n

\n
\"high-performance\"
\n
\n

Prioritizes rendering performance over power consumption.\n

\n
\"low-power\"
\n
\n

Prioritizes power saving over rendering performance.\n

\n
\n
\n
premultipliedAlpha
\n
\n

A boolean value that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.\n

\n
preserveDrawingBuffer
\n
\n

If the value is true the buffers will not be cleared and will preserve their values until cleared or overwritten by the author.\n

\n
xrCompatible
\n
\n

A boolean value that hints to the user agent to use a compatible graphics adapter for an immersive XR device. Setting this synchronous flag at context creation is discouraged; rather call the asynchronous WebGLRenderingContext.makeXRCompatible() method the moment you intend to start an XR session.\n

\n
\n
\n

Note:\nThe WebGPU specification does not define any specific context attributes for getContext(). Instead, it provides configuration options via the GPUCanvasContext.configure() method.\n

" }, "returns": "A rendering context which is either a\n\n

If the context identifier is not supported, or the canvas has already been set to a different context mode, null is returned.", "throws": { @@ -18884,7 +19075,7 @@ "Firefox": "3.5", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The non-standard HTMLCanvasElement.mozOpaque property is\na boolean value reflecting the moz-opaque HTML\nattribute of the <canvas> element. It lets the canvas know whether or\nnot translucency will be a factor. If the canvas knows there's no translucency, painting\nperformance can be optimized.\n

\n

Note:\nThis has been standardized as setting the alpha option to\nfalse when creating a drawing context with\nHTMLCanvasElement.getContext(). Use of mozOpaque should be\navoided. Firefox will stop supporting it in the future.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The non-standard HTMLCanvasElement.mozOpaque property is\na boolean value reflecting the moz-opaque HTML\nattribute of the <canvas> element. It lets the canvas know whether or\nnot translucency will be a factor. If the canvas knows there's no translucency, painting\nperformance can be optimized.\n

\n

Note:\nThis has been standardized as setting the alpha option to\nfalse when creating a drawing context with\nHTMLCanvasElement.getContext(). Use of mozOpaque should be\navoided. Firefox will stop supporting it in the future.\n

" }, "htmlcanvaselement.toblob": { "url": "$MDN_URL$/web/api/htmlcanvaselement/toblob", @@ -18937,7 +19128,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The HTMLCanvasElement.toDataURL() method returns a data URL containing a representation of the image in the format specified by the type parameter.\n

The desired file format and image quality may be specified.\nIf the file format is not specified, or if the given format is not supported, then the data will be exported as image/png.\nIn other words, if the returned value starts with data:image/png for any other requested type, then that format is not supported.\n

Browsers are required to support image/png; many will support additional formats including image/jpeg and image/webp.\n

The created image data will have a resolution of 96dpi for file formats that support encoding resolution metadata.\n

\n

Warning: toDataURL() encodes the whole image in an in-memory string. For larger images, this can have performance implications, and may even overflow browsers' URL length limit when assigned to HTMLImageElement.src. You should generally prefer toBlob() instead, in combination with URL.createObjectURL().\n

", + "doc": "The HTMLCanvasElement.toDataURL() method returns a data URL containing a representation of the image in the format specified by the type parameter.\n

The desired file format and image quality may be specified.\nIf the file format is not specified, or if the given format is not supported, then the data will be exported as image/png.\nIn other words, if the returned value starts with data:image/png for any other requested type, then that format is not supported.\n

Browsers are required to support image/png; many will support additional formats including image/jpeg and image/webp.\n

The created image data will have a resolution of 96dpi for file formats that support encoding resolution metadata.\n

\n

Warning:\ntoDataURL() encodes the whole image in an in-memory string. For larger images, this can have performance implications, and may even overflow browsers' URL length limit when assigned to HTMLImageElement.src. You should generally prefer toBlob() instead, in combination with URL.createObjectURL().\n

", "parameters": { "type": "A string indicating the image format.\nThe default type is image/png; this image format will be also used if the specified type is not supported.", "quality": "A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp).\nA user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range." @@ -18963,8 +19154,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The HTMLCanvasElement.transferControlToOffscreen() method transfers control to an OffscreenCanvas object, either on the main thread or on a worker.", "returns": "An OffscreenCanvas object.", @@ -19272,7 +19464,9 @@ "Edge": "132", "Firefox": "133", "FirefoxAndroid": "133", - "Opera": "117" + "Opera": "117", + "Safari": "26", + "SafariIOS": "26" } }, "doc": "The HTMLDialogElement interface provides methods to manipulate <dialog> elements. It inherits properties and methods from the HTMLElement interface." @@ -19306,15 +19500,19 @@ "htmldialogelement.closedby": { "url": "$MDN_URL$/web/api/htmldialogelement/closedby", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "134", "ChromeAndroid": "134", "Edge": "134", + "Firefox": "141", + "FirefoxAndroid": "141", "Opera": "119" }, + "baseline": { + "level": "NONE" + }, "doc": "The closedBy property of the\nHTMLDialogElement interface indicates the types of user actions that can be used to close the associated <dialog> element. It sets or returns the dialog's closedby attribute value." }, "htmldialogelement.open": { @@ -19355,9 +19553,10 @@ "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-05-27" }, - "doc": "The requestClose() method of the HTMLDialogElement interface requests to close the <dialog>.\nAn optional string may be passed as an argument, updating the returnValue of the dialog.\n

This method differs from the HTMLDialogElement.close() method in that it fires a cancel event before firing the close event.\nAuthors can call Event.preventDefault() in the handler for the cancel event to prevent the dialog from closing.\n

This method exposes the same behavior as the dialog's internal close watcher.", + "doc": "The requestClose() method of the HTMLDialogElement interface requests to close the <dialog>.\nAn optional string may be passed as an argument, updating the returnValue of the dialog.\n

This method differs from the HTMLDialogElement.close() method in that it fires a cancel event before firing the close event.\nAuthors can call Event.preventDefault() in the handler for the cancel event to prevent the dialog from closing.\n

This method exposes the same behavior as the dialog's internal close watcher.", "parameters": { "returnValue": "A string representing an updated value for the HTMLDialogElement.returnValue of the dialog." }, @@ -19481,6 +19680,24 @@ }, "doc": "The HTMLDListElement interface provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list (<dl>) elements." }, + "htmldlistelement.compact": { + "url": "$MDN_URL$/web/api/htmldlistelement/compact", + "status": [ + "StandardTrack", + "Deprecated" + ], + "compatibility": { + "Chrome": "", + "ChromeAndroid": "", + "Edge": "", + "Firefox": "", + "FirefoxAndroid": "4", + "Opera": "12.1", + "Safari": "3", + "SafariIOS": "" + }, + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The compact property of the HTMLDListElement interface indicates that spacing between list items should be reduced. The exact handling of the compact attribute is browser-specific. Instead of using this property, consider using CSS line-height instead.\n

It reflects the compact attribute of the <dl> element." + }, "htmldocument": { "url": "$MDN_URL$/web/api/htmldocument", "status": [ @@ -19569,7 +19786,7 @@ "Experimental" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The anchorElement property of the HTMLElement interface returns a reference to the element's anchor element. This works only in the case of elements associated with their anchors via the anchor HTML attribute, not elements associated with their anchors via the CSS anchor-name and position-anchor properties." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The anchorElement property of the HTMLElement interface returns a reference to the element's anchor element. This works only in the case of elements associated with their anchors via the anchor HTML attribute, not elements associated with their anchors via the CSS anchor-name and position-anchor properties." }, "htmlelement.attachinternals": { "url": "$MDN_URL$/web/api/htmlelement/attachinternals", @@ -19587,8 +19804,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The HTMLElement.attachInternals() method returns an ElementInternals object.\nThis method allows a custom element to participate in HTML forms. The ElementInternals interface provides utilities for working with these elements in the same way you would work with any standard HTML form element, and also exposes the Accessibility Object Model to the element.", "returns": "An ElementInternals object.", @@ -19665,8 +19883,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The autofocus property of the HTMLElement interface represents a boolean value reflecting the autofocus HTML global attribute, which indicates whether the control should be focused when the page loads, or when dialog or popover become shown if specified in an element inside <dialog> elements or elements whose popover attribute is set.\n

Only one form-associated element inside a document, or a <dialog> element, or an element whose popover attribute is set, can have this attribute specified. If there are several, the first element with the attribute set inserted, usually the first such element on the page, gets the initial focus.\n

\n

Note:\nSetting this property doesn't set the focus to the associated element: it merely tells the browser to focus to it when the element is inserted in the document. Setting it after the insertion, that is most of the time after the document load, has no visible effect.\n

" }, @@ -19957,7 +20176,7 @@ "lowDate": "2016-03-08", "highDate": "2018-09-08" }, - "doc": "The innerText property of the HTMLElement interface represents the rendered text content of a node and its descendants.\n

As a getter, it approximates the text the user would get if they highlighted the contents of the element with the cursor and then copied it to the clipboard.\nAs a setter this will replace the element's children with the given value, converting any line breaks into <br> elements.\n

\n

Note: innerText is easily confused with Node.textContent, but there are important differences between the two.\nBasically, innerText is aware of the rendered appearance of text, while textContent is not.\n

" + "doc": "The innerText property of the HTMLElement interface represents the rendered text content of a node and its descendants.\n

As a getter, it approximates the text the user would get if they highlighted the contents of the element with the cursor and then copied it to the clipboard.\nAs a setter this will replace the element's children with the given value, converting any line breaks into <br> elements.\n

\n

Note:\ninnerText is easily confused with Node.textContent, but there are important differences between the two.\nBasically, innerText is aware of the rendered appearance of text, while textContent is not.\n

" }, "htmlelement.inputmode": { "url": "$MDN_URL$/web/api/htmlelement/inputmode", @@ -20023,7 +20242,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The lang property of the HTMLElement interface indicates the base language of an element's attribute values and text content, in the form of a RFC 5646: BCP 47 language identifier tag. It reflects the element's lang attribute; the xml:lang attribute does not affect this property.\n

Note that if the lang attribute is unspecified, the element itself may still inherit the language from its parent. However, that inherited language is not reflected by this property's value." + "doc": "The lang property of the HTMLElement interface indicates the base language of an element's attribute values and text content, in the form of a BCP 47 language tag. It reflects the element's lang attribute; the xml:lang attribute does not affect this property.\n

Note that if the lang attribute is unspecified, the element itself may still inherit the language from its parent. However, that inherited language is not reflected by this property's value." }, "htmlelement.nonce": { "url": "$MDN_URL$/web/api/htmlelement/nonce", @@ -20111,7 +20330,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The HTMLElement.offsetParent read-only property returns a\nreference to the element which is the closest (nearest in the containment hierarchy)\npositioned ancestor element.\n

A positioned ancestor might be:\n

    \n
  • a containing block for absolutely-positioned elements
  • \n
  • an element with a different effective zoom value (that is, the product of all zoom scales of its parents) from this element
  • \n
  • td, th, table in case the element itself is static positioned.
  • \n
\n

If there is no positioned ancestor element, the body is returned.\n

\n

Note: offsetParent returns null in the following\nsituations:\n

    \n
  • The element or any ancestor has the display property set to\nnone.
  • \n
  • The element has the position property set to fixed\n(Firefox returns <body>).
  • \n
  • The element is <body> or <html>.
  • \n
\n
\n

offsetParent is useful because\noffsetTop and\noffsetLeft are relative to its padding edge." + "doc": "The HTMLElement.offsetParent read-only property returns a\nreference to the element which is the closest (nearest in the containment hierarchy)\npositioned ancestor element.\n

A positioned ancestor might be:\n

    \n
  • a containing block for absolutely-positioned elements
  • \n
  • an element with a different effective zoom value (that is, the product of all zoom scales of its parents) from this element
  • \n
  • td, th, table in case the element itself is static positioned.
  • \n
\n

If there is no positioned ancestor element, the body is returned.\n

\n

Note:\noffsetParent returns null in the following\nsituations:\n

    \n
  • The element or any ancestor has the display property set to\nnone.
  • \n
  • The element has the position property set to fixed\n(Firefox returns <body>).
  • \n
  • The element is <body> or <html>.
  • \n
\n
\n

offsetParent is useful because\noffsetTop and\noffsetLeft are relative to its padding edge." }, "htmlelement.offsettop": { "url": "$MDN_URL$/web/api/htmlelement/offsettop", @@ -20358,8 +20577,9 @@ "SafariIOS": "6" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "The translate property of the HTMLElement interface indicates whether an element's attribute values and the values of its Text node children are to be translated when the page is localized, or whether to leave them unchanged.\n

It reflects the value of the translate HTML global attribute." }, @@ -20538,9 +20758,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -20555,9 +20775,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -20572,9 +20792,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -20589,9 +20809,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -20606,9 +20826,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -20978,7 +21198,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The HTMLFormControlsCollection interface represents a collection of HTML form control elements, returned by the HTMLFormElement interface's elements property.\n

This interface replaces one method from HTMLCollection, on which it is based." + "doc": "The HTMLFormControlsCollection interface represents a collection of HTML form control elements, returned by the HTMLFormElement interface's elements property.\n

The collection returned by HTMLFormElement.elements includes the form's associated listed form controls. See HTMLFormElement.elements for the list of listed form controls and an explanation of form association.\n

This interface replaces one method from HTMLCollection, on which it is based." }, "htmlformcontrolscollection.nameditem": { "url": "$MDN_URL$/web/api/htmlformcontrolscollection/nameditem", @@ -21137,7 +21357,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The HTMLFormElement property\nelements returns an\nHTMLFormControlsCollection listing all the form controls contained in\nthe <form> element.\n

Independently, you can obtain just the\nnumber of form controls using the length\nproperty.\n

You can access a particular form control in the returned collection by using either an\nindex or the element's name or id attributes.\n

Prior to HTML 5, the returned object was an HTMLCollection, on which\nHTMLFormControlsCollection is based.\n

\n

Note:\nSimilarly, you can get a list of all of the forms contained within a given document using the document's forms property.\n

" + "doc": "The elements property of the HTMLFormElement interface returns an HTMLFormControlsCollection listing all the listed form controls associated with the <form> element.\n

You can access a particular form control in the returned collection by using either an index or the element's name or id attributes.\n

Prior to HTML 5, the returned object was an HTMLCollection, on which HTMLFormControlsCollection is based.\n

Independently, you can obtain just the number of associated form controls using the length property. You can get a list of all of the forms contained within a given document using the document's forms property." }, "htmlformelement.encoding": { "url": "$MDN_URL$/web/api/htmlformelement/encoding", @@ -21287,8 +21507,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "The rel property of the HTMLFormElement interface reflects the rel attribute. It is a string containing what kinds of links the HTML <form> element creates, as a space-separated list of enumerated values.\n

To retrieve the value as an array of tokens, use HTMLFormElement.relList." }, @@ -21308,8 +21529,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "The relList read-only property of the HTMLFormElement interface reflects the rel attribute. It is a live DOMTokenList containing the set of link types indicating the relationship between the resource represented by the <form> element and the current document.\n

The property itself is read-only, meaning you can not reassign the property with another DOMTokenList, but the content of the returned list can be changed.\n

To retrieve a string containing the values as space-separated tokens, use HTMLFormElement.rel. The rel property can also be used to set the rel attribute value." }, @@ -21632,7 +21854,7 @@ "Edge": "15", "Opera": "47" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The allowPaymentRequest property of the\nHTMLIFrameElement interface returns a boolean value indicating\nwhether the Payment Request API may be invoked on a cross-origin iframe." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The allowPaymentRequest property of the\nHTMLIFrameElement interface returns a boolean value indicating\nwhether the Payment Request API may be invoked on a cross-origin iframe." }, "htmliframeelement.browsingtopics": { "url": "$MDN_URL$/web/api/htmliframeelement/browsingtopics", @@ -21645,7 +21867,10 @@ "Edge": "126", "Opera": "112" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Warning:\nThis feature is currently opposed by two browser vendors. See the Standards positions section for details of opposition.\n

\n

The browsingTopics property of the HTMLIFrameElement interface is a boolean specifying that the selected topics for the current user should be sent with the request for the associated <iframe>'s source in a Sec-Browsing-Topics header. This reflects the browsingtopics HTML attribute.\n

See Using the Topics API for more details." + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Warning:\nThis feature is currently opposed by two browser vendors. See the Standards positions section for details of opposition.\n

\n

The browsingTopics property of the HTMLIFrameElement interface is a boolean specifying that the selected topics for the current user should be sent with the request for the associated <iframe>'s source in a Sec-Browsing-Topics header. This reflects the browsingtopics HTML attribute.\n

See Using the Topics API for more details." }, "htmliframeelement.contentdocument": { "url": "$MDN_URL$/web/api/htmliframeelement/contentdocument", @@ -22614,6 +22839,21 @@ }, "doc": "The accept property of the HTMLInputElement interface reflects the <input> element's accept attribute, generally a comma-separated list of unique file type specifiers providing a hint for the expected file type for an <input> of type file. If the attribute is not explicitly set, the accept property is an empty string." }, + "htmlinputelement.alpha": { + "url": "$MDN_URL$/web/api/htmlinputelement/alpha", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Safari": "18.4", + "SafariIOS": "18.4" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The alpha property of the HTMLInputElement interface reflects the <input> element's alpha attribute, which indicates whether the CSS color's alpha component can be manipulated by the end user and does not have to be fully opaque. It is only relevant to color controls." + }, "htmlinputelement.alt": { "url": "$MDN_URL$/web/api/htmlinputelement/alt", "status": [ @@ -22718,6 +22958,21 @@ "doc": "The checkValidity() method of the HTMLInputElement interface returns a boolean value which indicates if the element meets any constraint validation rules applied to it. If false, the method also fires an invalid event on the element. Because there's no default browser behavior for checkValidity(), canceling this invalid event has no effect.\n

\n

Note:\nAn HTML <input> element with a non-null validationMessage is considered invalid, will match the CSS :invalid pseudo-class, and will cause checkValidity() to return false. Use the HTMLInputElement.setCustomValidity() method to set the HTMLInputElement.validationMessage to the empty string to set the validity state to be valid.\n

", "returns": "Returns true if the element's value has no validity problems; otherwise, returns false." }, + "htmlinputelement.colorspace": { + "url": "$MDN_URL$/web/api/htmlinputelement/colorspace", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Safari": "18.4", + "SafariIOS": "18.4" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The colorSpace property of the HTMLInputElement interface reflects the <input> element's colorspace attribute, which indicates whether the color space of the serialized CSS color is sRGB (the default) or display-p3. It is only relevant to color controls." + }, "htmlinputelement.defaultchecked": { "url": "$MDN_URL$/web/api/htmlinputelement/defaultchecked", "status": [ @@ -23089,7 +23344,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The maxLength property of the HTMLInputElement interface indicates the maximum number of characters (in UTF-16 code units) allowed to be entered for the value of the <input> element, and the maximum number of characters allowed for the value to be valid. It reflects the element's maxlength attribute. -1 means there is no limit on the length of the value.\n

\n

Note:\nBrowser generally prevent users from entering more characters than the maxlength attribute allows. Should the length be longer, the element is considered invalid and the ValidityState object's tooLong property will be true.\n

" + "doc": "The maxLength property of the HTMLInputElement interface indicates the maximum number of characters (in UTF-16 code units) allowed to be entered for the value of the <input> element, and the maximum number of characters allowed for the value to be valid. It reflects the element's maxlength attribute. -1 means there is no limit on the length of the value.\n
\n

Note:\nBrowser generally prevent users from entering more characters than the maxlength attribute allows. Should the length be longer, the element is considered invalid and the ValidityState object's tooLong property will be true.\n

" }, "htmlinputelement.min": { "url": "$MDN_URL$/web/api/htmlinputelement/min", @@ -23133,7 +23388,7 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "The minLength property of the HTMLInputElement interface indicates the minimum number of characters (in UTF-16 code units) required for the value of the <input> element to be valid. It reflects the element's minlength attribute. -1 means there is no minimum length requirement.\n
\n

Note:\nIf the input has a value, and that value has fewer characters than the minlength attribute requires, the element is considered invalid and the ValidityState object's tooShort property will be true.\n

" + "doc": "The minLength property of the HTMLInputElement interface indicates the minimum number of characters (in UTF-16 code units) required for the value of the <input> element to be valid. It reflects the element's minlength attribute. -1 means there is no minimum length requirement.\n
\n

Note:\nIf the input has a value, and that value has fewer characters than the minlength attribute requires, the element is considered invalid and the ValidityState object's tooShort property will be true.\n

" }, "htmlinputelement.multiple": { "url": "$MDN_URL$/web/api/htmlinputelement/multiple", @@ -23496,7 +23751,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The HTMLInputElement.setSelectionRange() method sets the start and end positions of the current text selection in an <input> or <textarea> element.\n

The element must be focused for the call to have any effect.\n

Optionally, you can specify the direction in which selection should be considered to have occurred. This lets you indicate, for example, that the selection was set by the user clicking and dragging from the end of the selected text toward the beginning.\n

This method updates the HTMLInputElement.selectionStart, HTMLInputElement.selectionEnd, and HTMLInputElement.selectionDirection properties in one call.\n

The element must be of one of the following input types: password, search, tel, text, or url. Otherwise the browser throws an InvalidStateError exception.\n

If you wish to select all text of an input element, you can use the HTMLInputElement.select() method instead.", + "doc": "The HTMLInputElement.setSelectionRange() method sets the start and end positions of the current text selection in an <input> or <textarea> element. This updates the selection state immediately, though the visual highlight only appears when the element is focused.\n

Optionally, you can specify the direction in which selection should be considered to have occurred. This lets you indicate, for example, that the selection was set by the user clicking and dragging from the end of the selected text toward the beginning.\n

This method updates the HTMLInputElement.selectionStart, HTMLInputElement.selectionEnd, and HTMLInputElement.selectionDirection properties in one call, regardless of whether the element is focused. The visual selection highlight will only appear when the element has focus.\n

The element must be of one of the following input types: password, search, tel, text, or url. Otherwise the browser throws an InvalidStateError exception.\n

If you wish to select all text of an input element, you can use the HTMLInputElement.select() method instead.", "parameters": { "selectionStart": "The 0-based index of the first selected character. An index greater than the length\nof the element's value is treated as pointing to the end of the value.", "selectionEnd": "The 0-based index of the character after the last selected character. An\nindex greater than the length of the element's value is treated as pointing to the end\nof the value. If selectionEnd is less than selectionStart, then both are treated as the value of selectionEnd.", @@ -23790,11 +24045,12 @@ "ChromeAndroid": "132", "Edge": "13", "Firefox": "50", + "FirefoxAndroid": "142", "Opera": "15", "Safari": "11.1", "SafariIOS": "18.4" }, - "doc": "The HTMLInputElement.webkitdirectory is a property\nthat reflects the webkitdirectory HTML attribute\nand indicates that the <input> element should let the user select directories instead of files.\nWhen a directory is selected, the directory and its entire hierarchy of contents are included in the set of selected items.\nThe selected file system entries can be obtained using the webkitEntries property.\n

\n

Note:\nThis property is called webkitdirectory in the specification due to its\norigins as a Google Chrome-specific API. It's likely to be renamed someday.\n

" + "doc": "The webkitdirectory property of the HTMLInputElement interface reflects the webkitdirectory HTML attribute, which indicates that <input type=\"file\"> elements can only select directories instead of files.\n

When a directory is selected, the directory and its entire hierarchy of contents are included in the set of selected items.\nThe selected file system entries can be obtained using the webkitEntries property.\n

\n

Note:\nThis property is called webkitdirectory in the specification due to its origins as a Google Chrome-specific API.\n

" }, "htmlinputelement.webkitentries": { "url": "$MDN_URL$/web/api/htmlinputelement/webkitentries", @@ -23920,7 +24176,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The form read-only property of the HTMLLabelElement interface returns an HTMLFormElement object that owns the control associated with this <label>, or null if this label is not associated with a control owned by a form.\n

This property is just a shortcut for label.control.form." + "doc": "The form read-only property of the HTMLLabelElement interface returns an HTMLFormElement object that owns the control associated with this <label>, or null if this label is not associated with a labelable form-associated element (<button>, <input>, <output>, <select>, <textarea>, or form-associated custom elements) that is owned by a form.\n

Unlike form-associated elements, the <label> element does not have a form attribute. This property does not reflect any HTML attribute, but is just a shortcut for label.control.form." }, "htmllabelelement.htmlfor": { "url": "$MDN_URL$/web/api/htmllabelelement/htmlfor", @@ -24665,7 +24921,7 @@ "Safari": "6", "SafariIOS": "6" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The HTMLMediaElement.controller property represents the media controller assigned to the element." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The HTMLMediaElement.controller property represents the media controller assigned to the element." }, "htmlmediaelement.controls": { "url": "$MDN_URL$/web/api/htmlmediaelement/controls", @@ -24976,7 +25232,7 @@ "Safari": "6", "SafariIOS": "6" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The HTMLMediaElement.mediaGroup property reflects the mediagroup HTML attribute, which indicates the name of the group of elements it belongs to. A group of media elements shares a common controller." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The HTMLMediaElement.mediaGroup property reflects the mediagroup HTML attribute, which indicates the name of the group of elements it belongs to. A group of media elements shares a common controller." }, "htmlmediaelement.mediakeys": { "url": "$MDN_URL$/web/api/htmlmediaelement/mediakeys", @@ -25285,7 +25541,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The HTMLMediaElement.seekToNextFrame() method\nasynchronously advances the current play position to the next frame in the media.\n

\n

Warning:\nThis non-standard method is part of an experimentation process around support for\nnon-real-time access to media for tasks including filtering, editing, and so forth.\nYou should not use this method in production code, because its implementation\nmay change—or be removed outright—without notice. You are, however, invited to\nexperiment with it.\n

\n

This method lets you access frames of video media without the media being performed in\nreal time. This also lets you access media using frames as a seek unit rather than\ntimecodes (albeit only by seeking one frame at a time until you get to the frame you\nwant). Possible uses for this method include filtering and editing of video content.\n

This method returns immediately, returning a Promise, whose fulfillment\nhandler is called when the seek operation is complete. In addition, a\nseeked event is sent to let interested parties know that a seek has taken\nplace. If the seek fails because the media is already at the last frame, a\nseeked event occurs, followed immediately by an ended event.\n

If there is no video on the media element, or the media isn't seekable, nothing\nhappens.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The HTMLMediaElement.seekToNextFrame() method\nasynchronously advances the current play position to the next frame in the media.\n

\n

Warning:\nThis non-standard method is part of an experimentation process around support for\nnon-real-time access to media for tasks including filtering, editing, and so forth.\nYou should not use this method in production code, because its implementation\nmay change—or be removed outright—without notice. You are, however, invited to\nexperiment with it.\n

\n

This method lets you access frames of video media without the media being performed in\nreal time. This also lets you access media using frames as a seek unit rather than\ntimecodes (albeit only by seeking one frame at a time until you get to the frame you\nwant). Possible uses for this method include filtering and editing of video content.\n

This method returns immediately, returning a Promise, whose fulfillment\nhandler is called when the seek operation is complete. In addition, a\nseeked event is sent to let interested parties know that a seek has taken\nplace. If the seek fails because the media is already at the last frame, a\nseeked event occurs, followed immediately by an ended event.\n

If there is no video on the media element, or the media isn't seekable, nothing\nhappens.", "returns": "A Promise which is fulfilled once the seek operation has completed." }, "htmlmediaelement.setmediakeys": { @@ -25315,7 +25571,7 @@ "returns": "A Promise that fulfills with undefined.", "throws": { "InvalidStateError DOMException": "Media keys are already in the process of being attached, or the previous keys cannot be removed at the current time (for example, because the particular implementation does not allow removal during playback).", - "QuotaExceededError DOMException": "The passed keys are already in use by another element, or the browser is unable to use it with this element for other reasons.", + "QuotaExceededError": "The passed keys are already in use by another element, or the browser is unable to use it with this element for other reasons.", "NotSupportedError DOMException": "The media keys that are currently associated with the media cannot be disassociated, because this is not supported by either the CDM or the browser." } }, @@ -25471,6 +25727,24 @@ }, "doc": "The HTMLMenuElement interface provides additional properties (beyond those inherited from the HTMLElement interface) for manipulating a <menu> element.\n<menu> is a semantic alternative to the <ul> element." }, + "htmlmenuelement.compact": { + "url": "$MDN_URL$/web/api/htmlmenuelement/compact", + "status": [ + "StandardTrack", + "Deprecated" + ], + "compatibility": { + "Chrome": "", + "ChromeAndroid": "", + "Edge": "", + "Firefox": "", + "FirefoxAndroid": "4", + "Opera": "12.1", + "Safari": "3", + "SafariIOS": "" + }, + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The compact property of the HTMLMenuElement interface indicates that spacing between list items should be reduced. The exact handling of the compact attribute is browser-specific. Instead of using this property, consider using CSS line-height instead.\n

It reflects the compact attribute of the <menu> element." + }, "htmlmetaelement": { "url": "$MDN_URL$/web/api/htmlmetaelement", "status": [ @@ -25535,7 +25809,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The HTMLMetaElement.httpEquiv property gets or sets the pragma directive or an HTTP response header name for the HTMLMetaElement.content attribute.\nFor more details on the possible values, see the http-equiv attribute." + "doc": "The HTMLMetaElement.httpEquiv property gets or sets the pragma directive or an HTTP response header name for the HTMLMetaElement.content attribute.\nFor more details on the possible values, see the http-equiv attribute." }, "htmlmetaelement.media": { "url": "$MDN_URL$/web/api/htmlmetaelement/media", @@ -26240,6 +26514,24 @@ }, "doc": "The HTMLOListElement interface provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements." }, + "htmlolistelement.compact": { + "url": "$MDN_URL$/web/api/htmlolistelement/compact", + "status": [ + "StandardTrack", + "Deprecated" + ], + "compatibility": { + "Chrome": "", + "ChromeAndroid": "", + "Edge": "", + "Firefox": "", + "FirefoxAndroid": "4", + "Opera": "12.1", + "Safari": "3", + "SafariIOS": "" + }, + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The compact property of the HTMLOListElement interface indicates that spacing between list items should be reduced. The exact handling of the compact attribute is browser-specific. Instead of using this property, consider using CSS line-height instead.\n

It reflects the compact attribute of the <ol> element." + }, "htmlolistelement.reversed": { "url": "$MDN_URL$/web/api/htmlolistelement/reversed", "status": [ @@ -26340,13 +26632,10 @@ "Firefox": "1", "FirefoxAndroid": "4", "Opera": "12.1", - "Safari": "3", - "SafariIOS": "1" + "Safari": "7" }, "baseline": { - "level": "HIGH", - "lowDate": "2015-07-29", - "highDate": "2018-01-29" + "level": "NONE" }, "doc": "The disabled property of the HTMLOptGroupElement interface is a boolean value that reflects the <optgroup> element's disabled attribute, which indicates whether the control is disabled.\n

When disabled, the <option> element descendants of the <optgroup> element are unusable, un-clickable, and unselectable. These disabled <option>s will match the :disabled selector, even if their disabled property value is false." }, @@ -27284,7 +27573,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The attributionSrc property of the HTMLScriptElement interface gets and sets the attributionsrc attribute on an <script> element programmatically, reflecting the value of that attribute. attributionsrc specifies that you want the browser to send an Attribution-Reporting-Eligible header along with the script resource request.\n

On the server-side this is used to trigger sending an Attribution-Reporting-Register-Source or Attribution-Reporting-Register-Trigger header in the response, to register a JavaScript-based attribution source or attribution trigger, respectively. Which response header should be sent back depends on the value of the Attribution-Reporting-Eligible header that triggered the registration.\n

\n

Note:\nAlternatively, JavaScript-based attribution sources or triggers can be registered by sending a fetch() request containing the attributionReporting option (either set directly on the fetch() call or on a Request object passed into the fetch() call), or by sending an XMLHttpRequest with setAttributionReporting() invoked on the request object.\n

\n

See the Attribution Reporting API for more details." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The attributionSrc property of the HTMLScriptElement interface gets and sets the attributionsrc attribute on a <script> element programmatically, reflecting the value of that attribute. attributionsrc specifies that you want the browser to send an Attribution-Reporting-Eligible header along with the script resource request.\n

On the server-side this is used to trigger sending an Attribution-Reporting-Register-Source or Attribution-Reporting-Register-Trigger header in the response, to register a JavaScript-based attribution source or attribution trigger, respectively. Which response header should be sent back depends on the value of the Attribution-Reporting-Eligible header that triggered the registration.\n

\n

Note:\nAlternatively, JavaScript-based attribution sources or triggers can be registered by sending a fetch() request containing the attributionReporting option (either set directly on the fetch() call or on a Request object passed into the fetch() call), or by sending an XMLHttpRequest with setAttributionReporting() invoked on the request object.\n

\n

See the Attribution Reporting API for more details." }, "htmlscriptelement.blocking": { "url": "$MDN_URL$/web/api/htmlscriptelement/blocking", @@ -27498,7 +27787,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The text property of the HTMLScriptElement interface is a string that reflects the text content inside the <script> element. It acts the same way as the Node.textContent property.\n

It reflects the text attribute of the <script> element." + "doc": "

\n

Warning:\nThis property represents the text content of a script element, which may be executable depending on the script type.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks.\n

You can mitigate this risk by always assigning TrustedScript objects instead of strings and enforcing trusted types.\nSee Security considerations for more information.\n

\n

The text property of the HTMLScriptElement interface represents the inline text content of the script element.\nIt acts the same way as the textContent property." }, "htmlscriptelement.type": { "url": "$MDN_URL$/web/api/htmlscriptelement/type", @@ -27524,7 +27813,17 @@ }, "htmlselectedcontentelement": { "url": "$MDN_URL$/web/api/htmlselectedcontentelement", - "doc": "The HTMLSelectedContentElement interface represents a <selectedcontent> element in the DOM." + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "135", + "ChromeAndroid": "135", + "Edge": "135", + "Opera": "120" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The HTMLSelectedContentElement interface represents a <selectedcontent> element in the DOM." }, "htmlselectelement": { "url": "$MDN_URL$/web/api/htmlselectelement", @@ -28155,18 +28454,19 @@ "StandardTrack" ], "compatibility": { - "Chrome": "86", - "ChromeAndroid": "86", - "Edge": "86", + "Chrome": "92", + "ChromeAndroid": "92", + "Edge": "92", "Firefox": "92", "FirefoxAndroid": "92", - "Opera": "72", + "Opera": "78", "Safari": "16.4", "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The assign() method of the HTMLSlotElement interface sets the slot's manually assigned nodes to an ordered set of slottables. The manually assigned nodes set is initially empty until nodes are assigned using assign().\n

\n

Note:\nYou cannot mix manually (imperative) and named (declarative, automatic) slot assignments. Therefore, for this method to work, the shadow tree needs to have been created with the slotAssignment: \"manual\" option.\n

", "parameters": { @@ -28741,7 +29041,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The colSpan read-only property of the HTMLTableCellElement interface represents the number of columns this cell must span; this lets the cell occupy space across multiple columns of the table. It reflects the colspan attribute." + "doc": "The colSpan property of the HTMLTableCellElement interface represents the number of columns this cell must span; this lets the cell occupy space across multiple columns of the table. It reflects the colspan attribute." }, "htmltablecellelement.headers": { "url": "$MDN_URL$/web/api/htmltablecellelement/headers", @@ -28803,7 +29103,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The rowSpan read-only property of the HTMLTableCellElement interface represents the number of rows this cell must span; this lets the cell occupy space across multiple rows of the table. It reflects the rowspan attribute." + "doc": "The rowSpan property of the HTMLTableCellElement interface represents the number of rows this cell must span; this lets the cell occupy space across multiple rows of the table. It reflects the rowspan attribute." }, "htmltablecellelement.scope": { "url": "$MDN_URL$/web/api/htmltablecellelement/scope", @@ -28941,7 +29241,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The span read-only property of the HTMLTableColElement interface represents the number of columns this <col> or <colgroup> must span; this lets the column occupy space across multiple columns of the table. It reflects the span attribute." + "doc": "The span property of the HTMLTableColElement interface represents the number of columns this <col> or <colgroup> must span; this lets the column occupy space across multiple columns of the table. It reflects the span attribute." }, "htmltablecolelement.valign": { "url": "$MDN_URL$/web/api/htmltablecolelement/valign", @@ -29323,7 +29623,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The insertRow() method of the HTMLTableElement interface inserts a new row\n(<tr>) in a given <table>, and returns a reference to\nthe new row.\n

If a table has multiple <tbody> elements, by default, the new row is\ninserted into the last <tbody>.\nTo insert the row into a specific section, use HTMLTableSectionElement.insertRow()\n

\n

Note: insertRow() inserts the row directly into the\ntable. The row does not need to be appended separately as would be the case if\nDocument.createElement() had been used to create the new\n<tr> element.\n

", + "doc": "The insertRow() method of the HTMLTableElement interface inserts a new row\n(<tr>) in a given <table>, and returns a reference to\nthe new row.\n

If a table has multiple <tbody> elements, by default, the new row is\ninserted into the last <tbody>.\nTo insert the row into a specific section, use HTMLTableSectionElement.insertRow()\n

\n

Note:\ninsertRow() inserts the row directly into the\ntable. The row does not need to be appended separately as would be the case if\nDocument.createElement() had been used to create the new\n<tr> element.\n

", "parameters": { "index": "The row index of the new row. If index is -1 or equal to\nthe number of rows, the row is appended as the last row.\nIf index is omitted it defaults to -1." }, @@ -29639,7 +29939,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The insertCell() method of the HTMLTableRowElement interface inserts a new\ncell (<td>) into a table row (<tr>) and returns a\nreference to the cell.\n
\n

Note: insertCell() inserts the cell directly into the\nrow. The cell does not need to be appended separately\nwith Node.appendChild() as would be the case if\nDocument.createElement() had been used to create the new\n<td> element.\n

You can not use insertCell() to create a new <th>\nelement though.\n

", + "doc": "The insertCell() method of the HTMLTableRowElement interface inserts a new\ncell (<td>) into a table row (<tr>) and returns a\nreference to the cell.\n
\n

Note:\ninsertCell() inserts the cell directly into the\nrow. The cell does not need to be appended separately\nwith Node.appendChild() as would be the case if\nDocument.createElement() had been used to create the new\n<td> element.\n

You can not use insertCell() to create a new <th>\nelement though.\n

", "parameters": { "index": "The cell index of the new cell. If index is -1 or equal to the number of cells, the cell is appended as the last cell in the row. If index is omitted it defaults to -1." }, @@ -29835,7 +30135,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The insertRow() method of the HTMLTableSectionElement interface inserts a new row\n(<tr>) in the given table sectioning element (<thead>, <tfoot>, or\n<tbody>), then returns a reference to this new row.\n
\n

Note: insertRow() inserts the row directly into the\nsection. The row does not need to be appended separately as would be the case if\nDocument.createElement() had been used to create the new\n<tr> element.\n

", + "doc": "The insertRow() method of the HTMLTableSectionElement interface inserts a new row\n(<tr>) in the given table sectioning element (<thead>, <tfoot>, or\n<tbody>), then returns a reference to this new row.\n
\n

Note:\ninsertRow() inserts the row directly into the\nsection. The row does not need to be appended separately as would be the case if\nDocument.createElement() had been used to create the new\n<tr> element.\n

", "parameters": { "index": "The row index of the new row. If index is -1 or equal to\nthe number of rows, the row is appended as the last row.\nIf index is omitted it defaults to -1." }, @@ -30230,7 +30530,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The maxLength property of the HTMLTextAreaElement interface indicates the maximum number of characters (in UTF-16 code units) allowed to be entered for the value of the <textarea> element, and the maximum number of characters allowed for the value to be valid. It reflects the element's maxlength attribute. -1 means there is no limit on the length of the value.\n
\n

Note:\nBrowsers generally prevent users from entering more characters than the maxlength attribute allows. Should the length be longer, the element is considered invalid and the ValidityState object's tooLong property will be true.\n

" + "doc": "The maxLength property of the HTMLTextAreaElement interface indicates the maximum number of characters (in UTF-16 code units) allowed to be entered for the value of the <textarea> element, and the maximum number of characters allowed for the value to be valid. It reflects the element's maxlength attribute. -1 means there is no limit on the length of the value.\n
\n

Note:\nBrowsers generally prevent users from entering more characters than the maxlength attribute allows. Should the length be longer, the element is considered invalid and the ValidityState object's tooLong property will be true.\n

" }, "htmltextareaelement.minlength": { "url": "$MDN_URL$/web/api/htmltextareaelement/minlength", @@ -30252,7 +30552,7 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "The minLength property of the HTMLTextAreaElement interface indicates the minimum number of characters (in UTF-16 code units) required for the value of the <textarea> element to be valid. It reflects the element's minlength attribute. -1 means there is no minimum length requirement.\n
\n

Note:\nIf the textarea has a value, and that value has fewer characters than the minlength attribute requires, the element is considered invalid and the ValidityState object's tooShort property will be true.\n

" + "doc": "The minLength property of the HTMLTextAreaElement interface indicates the minimum number of characters (in UTF-16 code units) required for the value of the <textarea> element to be valid. It reflects the element's minlength attribute. -1 means there is no minimum length requirement.\n
\n

Note:\nIf the textarea has a value, and that value has fewer characters than the minlength attribute requires, the element is considered invalid and the ValidityState object's tooShort property will be true.\n

" }, "htmltextareaelement.name": { "url": "$MDN_URL$/web/api/htmltextareaelement/name", @@ -30430,7 +30730,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The selectionDirection property of the HTMLTextAreaElement interface specifies the current direction of the selection. The possible values are \"forward\", \"backward\", and \"none\". The forward value indicates the selection was performed in the start-to-end direction of the current locale, with backward indicating the opposite direction. The none value occurs if the direction is unknown. It can be used to both retrieve and change the direction of the <textarea>s selected text.\n

Setting the selectionDirection to a new value fires the selectchange and select events." + "doc": "The selectionDirection property of the HTMLTextAreaElement interface specifies the current direction of the selection. The possible values are \"forward\", \"backward\", and \"none\". The forward value indicates the selection was performed in the start-to-end direction of the current locale, with backward indicating the opposite direction. The none value occurs if the direction is unknown. It can be used to both retrieve and change the direction of the <textarea>s selected text.\n

Setting the selectionDirection to a new value fires the selectionchange and select events." }, "htmltextareaelement.selectionend": { "url": "$MDN_URL$/web/api/htmltextareaelement/selectionend", @@ -30452,7 +30752,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The selectionEnd property of the HTMLTextAreaElement interface specifies the end position of the current text selection in a <textarea> element. It is a number representing the last index of the selected text. It can be used to both retrieve and set the index of the end of a <textarea>s selected text.\n

When nothing is selected, the value of both the selectionStart and selectionEnd is the position of the cursor (caret) inside the <textarea> element.\n

Setting selectionEnd to a value less than the current value of selectionStart updates both the selectionEnd and selectionStart properties to that value. If both value are less than 0, both properties are set to the textLength property value.\n

The property value can be retrieved and set without the <textarea> having focus, but the element does need to have focus for the ::selection pseudo-element to match the selected text.\n

Setting the selectionEnd to a new value fires the selectchange and select events." + "doc": "The selectionEnd property of the HTMLTextAreaElement interface specifies the end position of the current text selection in a <textarea> element. It is a number representing the last index of the selected text. It can be used to both retrieve and set the index of the end of a <textarea>s selected text.\n

When nothing is selected, the value of both the selectionStart and selectionEnd is the position of the cursor (caret) inside the <textarea> element.\n

Setting selectionEnd to a value less than the current value of selectionStart updates both the selectionEnd and selectionStart properties to that value. If both value are less than 0, both properties are set to the textLength property value.\n

The property value can be retrieved and set without the <textarea> having focus, but the element does need to have focus for the ::selection pseudo-element to match the selected text.\n

Setting the selectionEnd to a new value fires the selectionchange and select events." }, "htmltextareaelement.selectionstart": { "url": "$MDN_URL$/web/api/htmltextareaelement/selectionstart", @@ -30474,7 +30774,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The selectionStart property of the HTMLTextAreaElement interface specifies the start position of the current text selection in a <textarea> element. It is a number representing the beginning index of the selected text. It can be used to both retrieve and set the start of the index of the beginning of a <textarea>s selected text.\n

When nothing is selected, the value of both the selectionStart and selectionEnd is the position of the cursor (caret) inside the <textarea> element.\n

Setting selectionStart to a value greater then the current value of selectionEnd updates both the selectionStart and selectionEnd properties to that value. If that value is equal to or greater than the textLength, both properties are both set to the textLength property value.\n

The property value can be retrieved and set without the <textarea> having focus, but the element does need to have focus for the ::selection pseudo-element to match the selected text.\n

Setting the selectionStart to a new value fires the selectchange and select events." + "doc": "The selectionStart property of the HTMLTextAreaElement interface specifies the start position of the current text selection in a <textarea> element. It is a number representing the beginning index of the selected text. It can be used to both retrieve and set the start of the index of the beginning of a <textarea>s selected text.\n

When nothing is selected, the value of both the selectionStart and selectionEnd is the position of the cursor (caret) inside the <textarea> element.\n

Setting selectionStart to a value greater than the current value of selectionEnd updates both the selectionStart and selectionEnd properties to that value. If that value is equal to or greater than the textLength, both properties are both set to the textLength property value.\n

The property value can be retrieved and set without the <textarea> having focus, but the element does need to have focus for the ::selection pseudo-element to match the selected text.\n

Setting the selectionStart to a new value fires the selectionchange and select events." }, "htmltextareaelement.setcustomvalidity": { "url": "$MDN_URL$/web/api/htmltextareaelement/setcustomvalidity", @@ -30522,7 +30822,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The setRangeText() method of the HTMLTextAreaElement interface replaces a\nrange of text in an <textarea> element with new text passed as the argument.\n

Additional optional parameters include the start of the section of text to change, the end of the section, and a keyword defining what part of the <textarea> should be selected after the text is updated. If the startSelection and endSelection arguments are not provided, the range is assumed to be the selection.\n

The final argument determines how the selection will be set after the text has been replaced. The possible values are \"select\", which selects the newly inserted text, \"start\", which moves the selection to just before the inserted text, \"end\", which moves the selection to just after the inserted text, or the default, \"preserve\", which tries to preserve the selection.\n

In addition, the select and selectchange events are fired.", + "doc": "The setRangeText() method of the HTMLTextAreaElement interface replaces a\nrange of text in a <textarea> element with new text passed as the argument.\n

Additional optional parameters include the start of the section of text to change, the end of the section, and a keyword defining what part of the <textarea> should be selected after the text is updated. If the startSelection and endSelection arguments are not provided, the range is assumed to be the selection.\n

The final argument determines how the selection will be set after the text has been replaced. The possible values are \"select\", which selects the newly inserted text, \"start\", which moves the selection to just before the inserted text, \"end\", which moves the selection to just after the inserted text, or the default, \"preserve\", which tries to preserve the selection.\n

In addition, the select and selectionchange events are fired.", "parameters": { "replacement": "The string to insert.", "selectionStart": "The index of the first selected character. An index greater than the length\nof the element's value is treated as pointing to the end of the value.", @@ -30551,7 +30851,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The setSelectionRange() method of the HTMLTextAreaElement interface sets the start and end positions of the current text selection, and optionally the direction, in an <textarea> element. The direction indicates the in which selection should be considered to have occurred; for example, that the selection was set by the user clicking and dragging from the end of the selected text toward the beginning. In addition, the select and selectchange events are fired.\n

This method also updates the HTMLTextAreaElement.selectionStart, HTMLTextAreaElement.selectionEnd, and HTMLTextAreaElement.selectionDirection properties.\n

\n

Note:\nThe <textarea> must be focused to enable selecting a subsection of the text to be selected using the setSelectionRange() method. Setting focus also fires a selectchange event.\n

\n

To select all of the text of an <textarea> element, use the HTMLTextAreaElement.select() method.", + "doc": "The setSelectionRange() method of the HTMLTextAreaElement interface sets the start and end positions of the current text selection, and optionally the direction, in a <textarea> element. This updates the selection state immediately, though the visual highlight only appears when the element is focused. The direction indicates the in which selection should be considered to have occurred; for example, that the selection was set by the user clicking and dragging from the end of the selected text toward the beginning. In addition, the select and selectionchange events are fired.\n

This method updates the HTMLTextAreaElement.selectionStart, HTMLTextAreaElement.selectionEnd, and HTMLTextAreaElement.selectionDirection properties immediately, regardless of focus state. The visual selection highlight requires the element to be focused.\n

\n

Note:\nWhile setSelectionRange() updates the selection properties immediately, the visual selection highlight only appears when the <textarea> is focused. Focusing the element will also fire a selectionchange event.\n

\n

To select all of the text of an <textarea> element, use the HTMLTextAreaElement.select() method.", "parameters": { "selectionStart": "The index of the first selected character. An index greater than the length of the element's value is treated as pointing to the end of the value. See the selectionStart property for more information.", "selectionEnd": "The index of the character after the last selected character. An index greater than the length of the element's value is treated as pointing to the end of the value. If selectionEnd is less than selectionStart, then both are treated as the value of selectionEnd. See the selectionEnd property for more information.", @@ -30579,7 +30879,7 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "The textLength read-only property of the HTMLTextAreaElement interface is a non-negative integer representing the number of characters, in UTF-16 code units, of the <textarea> element's value. It is a shortcut of accessing length on its value property." + "doc": "The textLength read-only property of the HTMLTextAreaElement interface is a non-negative integer representing the number of characters, in UTF-16 code units, of the <textarea> element's value. It is a shortcut of accessing length on its value property." }, "htmltextareaelement.type": { "url": "$MDN_URL$/web/api/htmltextareaelement/type", @@ -30953,7 +31253,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The srclang property of the HTMLTrackElement interface reflects the value of\nthe <track> element's srclang attribute or the empty string if not defined.\n

The srclang attribute is a BCP 47 language tag\nindicating the language of the text track's data." + "doc": "The srclang property of the HTMLTrackElement interface reflects the value of\nthe <track> element's srclang attribute or the empty string if not defined.\n

The srclang attribute is a BCP 47 language tag indicating the language of the text track's data." }, "htmltrackelement.track": { "url": "$MDN_URL$/web/api/htmltrackelement/track", @@ -30999,6 +31299,24 @@ }, "doc": "The HTMLUListElement interface provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating unordered list (<ul>) elements." }, + "htmlulistelement.compact": { + "url": "$MDN_URL$/web/api/htmlulistelement/compact", + "status": [ + "StandardTrack", + "Deprecated" + ], + "compatibility": { + "Chrome": "", + "ChromeAndroid": "", + "Edge": "", + "Firefox": "", + "FirefoxAndroid": "4", + "Opera": "12.1", + "Safari": "3", + "SafariIOS": "" + }, + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The compact property of the HTMLUListElement interface indicates that spacing between list items should be reduced. The exact handling of the compact attribute is browser-specific. Instead of using this property, consider using CSS line-height instead.\n

It reflects the compact attribute of the <ul> element." + }, "htmlunknownelement": { "url": "$MDN_URL$/web/api/htmlunknownelement", "status": [ @@ -32130,7 +32448,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The isAutoLocale read-only property of the IDBIndex interface returns a boolean value indicating whether the index had a locale value of auto specified upon its creation (see the options parameter to IDBObjectStore.createIndex().)" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The isAutoLocale read-only property of the IDBIndex interface returns a boolean value indicating whether the index had a locale value of auto specified upon its creation (see the options parameter to IDBObjectStore.createIndex().)" }, "idbindex.keypath": { "url": "$MDN_URL$/web/api/idbindex/keypath", @@ -32160,7 +32478,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The locale read-only property of the IDBIndex interface returns the locale of the index (for example en-US, or pl) if it had a locale value specified upon its creation (see the options parameter to IDBObjectStore.createIndex().) Note that this property always returns the current locale being used in this index, in other words, it never returns \"auto\"." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The locale read-only property of the IDBIndex interface returns the locale of the index (for example en-US, or pl) if it had a locale value specified upon its creation (see the options parameter to IDBObjectStore.createIndex().) Note that this property always returns the current locale being used in this index, in other words, it never returns \"auto\"." }, "idbindex.multientry": { "url": "$MDN_URL$/web/api/idbindex/multientry", @@ -32750,7 +33068,7 @@ "ConstraintError DOMException": "Thrown if an index with the same name already exists in the database. Index names are case-sensitive.", "InvalidAccessError DOMException": "Thrown if the provided key path is a sequence, and multiEntry is set to true in the objectParameters object.", "InvalidStateError DOMException": "Thrown if:\n

    \n
  • The method was not called from a versionchange transaction mode callback, i.e., from inside a onupgradeneeded handler.
  • \n
  • The object store has been deleted.
  • \n
", - "SyntaxError DOMException": "Thrown if the provided keyPath is not a valid key path.", + "SyntaxError DOMException": "Thrown if the provided keyPath is not a valid key path.", "TransactionInactiveError DOMException": "Thrown if the transaction this IDBObjectStore\nbelongs to is not active (e.g., has been deleted or removed.) In Firefox\nprevious to version 41, an InvalidStateError was raised in\nthis case as well, which was misleading; this has now been fixed (see\nFirefox bug 1176165.)" } }, @@ -33618,6 +33936,43 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The IdentityCredential interface of the Federated Credential Management API (FedCM) represents a user identity credential arising from a successful federated sign-in.\n

A successful navigator.credentials.get() call that includes an identity option fulfills with an IdentityCredential instance." }, + "identitycredential.configurl": { + "url": "$MDN_URL$/web/api/identitycredential/configurl", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "ChromeAndroid": "136", + "Edge": "136", + "Opera": "121" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The configURL read-only property of the IdentityCredential interface returns a string specifying the config file URL of the identity provider (IdP) used for sign-in.\n

See Provide a config file for more information." + }, + "identitycredential.disconnect": { + "url": "$MDN_URL$/web/api/identitycredential/disconnect_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "122", + "ChromeAndroid": "122", + "Edge": "122", + "Opera": "108" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The disconnect() static method of the IdentityCredential interface disconnects a specified federated sign-in account from the IdP used to obtain the credential.\n

Afterwards, using that account for federated login requires starting the federated sign-in process again.", + "parameters": { + "options": "An options object, which can contain the following properties:\n

\n
accountHint
\n
\n

A string specifying an account hint that the IdP uses to identify the account to disconnect. The hint can be an arbitrary string as long as the disconnect endpoint can identify the account — for example an email address or user ID. This will not necessarily match the account ID provided by the accounts list endpoint.\n

\n
clientId
\n
\n

A string specifying the RP's client identifier, as specified in the providers clientId property during sign-in.\n

\n
configURL
\n
\n

A string specifying the config file URL of the IdP, as specified in the providers configURL property during sign-in.\n

\n
" + }, + "returns": "A Promise that fulfills with undefined.", + "throws": { + "InvalidStateError DOMException": "Thrown if:\n
    \n
  • The IdP's configURL is invalid or missing the disconnect_endpoint.
  • \n
  • The document's origin does not match the configURL.
  • \n
", + "NetworkError DOMException": "Thrown if:\n
    \n
  • The browser is unable to connect to the IdP.
  • \n
  • The request is disallowed by a connect-src Content-Security-Policy.
  • \n
  • Another disconnect() call was previously made that has not yet resolved.
  • \n
  • The FedCM API has been disabled globally.
  • \n
  • The IdP's configURL is neither secure nor potentially trustworthy.
  • \n
", + "NotAllowedError DOMException": "Thrown if the embedding <iframe> does not have a identity-credentials-get Permissions-Policy set to allow the use of disconnect() or if the FedCM API is disabled globally by a policy set on the top-level document." + } + }, "identitycredential.isautoselected": { "url": "$MDN_URL$/web/api/identitycredential/isautoselected", "status": [ @@ -33630,7 +33985,7 @@ "Edge": "120", "Opera": "106" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The isAutoSelected read-only property of the IdentityCredential interface indicates whether the federated sign-in flow was carried out using auto-reauthentication (i.e., without user mediation) or not.\n

Automatic reauthentication can occur when a navigator.credentials.get() call is issued with a mediation option value of \"optional\" or \"silent\". It is useful for a relying party (RP) to know whether auto reauthentication occurred for analytics/performance evaluation and for UX purposes — automatic sign-in may warrant a different UI flow to non-automatic sign-in." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The isAutoSelected read-only property of the IdentityCredential interface indicates whether the federated sign-in flow was carried out using auto-reauthentication (i.e., without user mediation) or not.\n

Automatic reauthentication can occur when a navigator.credentials.get() call is issued with a mediation option value of \"optional\" or \"silent\". It is useful for a relying party (RP) to know whether auto reauthentication occurred for analytics/performance evaluation and for UX purposes — automatic sign-in may warrant a different UI flow to non-automatic sign-in." }, "identitycredential.token": { "url": "$MDN_URL$/web/api/identitycredential/token", @@ -33647,11 +34002,69 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The token read-only property of the IdentityCredential interface returns the token used to validate the associated sign-in.\n

The token includes user identity information that has been signed with the identity provider (IdP)'s digital certificate.\n

The relying party (RP) sends the token to its server to validate the certificate, and on success can use the (now trusted) identity information in the token to sign them into their service (starting a new session), sign them up to their service if they are a new user, etc.\n

If the user has never signed into the IdP or is logged out, the associated get() call rejects with an error and the RP can direct the user to the IdP login page to sign in or create an account.\n

\n

Note:\nThe exact structure and content of the validation token is opaque to the FedCM API, and to the browser. The IdP decides on the syntax and usage of it, and the RP needs to follow the instructions provided by the IdP (see Verify the Google ID token on your server side, for example) to make sure they are using it correctly.\n

" + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The token read-only property of the IdentityCredential interface returns the token used to validate the associated sign-in.\n

The token includes user identity information that has been signed with the IdP's digital certificate.\n

The relying party (RP) sends the token to its server to validate the certificate, and on success can use the (now trusted) identity information in the token to sign them into their service (starting a new session), sign them up to their service if they are a new user, etc.\n

If the user has never signed into the IdP or is logged out, the associated get() call rejects with an error and the RP can direct the user to the IdP login page to sign in or create an account.\n

\n

Note:\nThe exact structure and content of the validation token is opaque to the FedCM API, and to the browser. The IdP decides on the syntax and usage of it, and the RP needs to follow the instructions provided by the IdP (see Verify the Google ID token on your server side, for example) to make sure they are using it correctly.\n

" + }, + "identitycredentialerror": { + "url": "$MDN_URL$/web/api/identitycredentialerror", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "120", + "ChromeAndroid": "120", + "Edge": "120", + "Opera": "106" + }, + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The IdentityCredentialError interface of the FedCM API describes an authentication error indicating that the user agent did not receive an identity assertion after the user has requested to use a federated account. This can happen if the client is unauthorized or if the server is temporarily unavailable, for example.\n

Browsers can use this error type to show the error message in the user interface." + }, + "identitycredentialerror.error": { + "url": "$MDN_URL$/web/api/identitycredentialerror/error", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "doc": "

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The error read-only property of the IdentityCredentialError interface is either one of the values listed in the OAuth 2.0 specified error list or an arbitrary string giving more information about the error." + }, + "identitycredentialerror.identitycredentialerror": { + "url": "$MDN_URL$/web/api/identitycredentialerror/identitycredentialerror", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "120", + "ChromeAndroid": "120", + "Edge": "120", + "Opera": "106" + }, + "doc": "

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The IdentityCredentialError() constructor creates a new IdentityCredentialError object.", + "parameters": { + "message": "A description of the error. If not present, the empty string '' is used.", + "options": "An object that can have the following properties:\n

\n
error Optional
\n
\n

A string. This can be either one of the values listed in the OAuth 2.0 specified error list or an arbitrary string.\n

\n
url Optional
\n
\n

A URL pointing to human-readable information about the error to display to users, such as how to fix the error or contact customer service.\n

\n
" + } + }, + "identitycredentialerror.url": { + "url": "$MDN_URL$/web/api/identitycredentialerror/url", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "120", + "ChromeAndroid": "120", + "Edge": "120", + "Opera": "106" + }, + "doc": "

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The url read-only property of the IdentityCredentialError interface is the URL pointing to human-readable information about the error to display to users, such as how to fix the error or contact customer service." }, "identitycredentialrequestoptions": { "url": "$MDN_URL$/web/api/identitycredentialrequestoptions", - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The IdentityCredentialRequestOptions dictionary represents the object passed to CredentialsContainer.get() as the value of the identity option.\n

It is used to request an IdentityCredential provided by a federated identity provider that supports the Federated Credential Management (FedCM) API." + "baseline": { + "level": "NONE" + }, + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The IdentityCredentialRequestOptions dictionary represents the object passed to CredentialsContainer.get() as the value of the identity option.\n

When an identity option is provided in a get() call made on a relying party (RP) website, the user is offered a list of federated identity providers (IdPs) as sign-in options. Once the user signs in successfully using one of these options, the promise returned by the get() call returns an IdentityCredential object." }, "identityprovider": { "url": "$MDN_URL$/web/api/identityprovider", @@ -33665,7 +34078,7 @@ "Edge": "116", "Opera": "102" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The IdentityProvider interface of the Federated Credential Management (FedCM) API represents an identity provider (IdP) and provides access to related information and functionality." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The IdentityProvider interface of the Federated Credential Management (FedCM) API represents an IdP and provides access to related information and functionality." }, "identityprovider.close": { "url": "$MDN_URL$/web/api/identityprovider/close_static", @@ -33679,7 +34092,7 @@ "Edge": "120", "Opera": "106" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The close() static method of the IdentityProvider interface provides a manual signal to the browser that an IdP sign-in flow is finished.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The close() static method of the IdentityProvider interface provides a manual signal to the browser that an IdP sign-in flow is finished.\n

close() needs to be called from the same origin as the specified IdP's sign-in dialog, as defined in the IdP config.\n

close() is used to close the IdP sign-in dialog when sign-in is completely finished and the IdP has finished collecting data from the user. A primary use case for close() is closing the IdP sign-in dialog in cases where the browser and the IdP login status become out of sync, and the browser initiates a dynamic sign-in flow to correct the issue.", "returns": "undefined." }, "identityprovider.getuserinfo": { @@ -33694,7 +34107,7 @@ "Edge": "116", "Opera": "102" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The getUserInfo() static method of the IdentityProvider interface returns information about a user that has signed in, which can be used to provide a personalized welcome message and sign-in button. This method has to be called from within an identity provider (IdP)-origin <iframe> so that RP scripts cannot access the data. This must occur after a user has been signed in to a relying party (RP) site.\n

This pattern is already common on sites that use identity federation for sign-in, but getUserInfo() provides a way to achieve it without relying on third-party cookies.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The getUserInfo() static method of the IdentityProvider interface returns information about a user that has signed in, which can be used to provide a personalized welcome message and sign-in button. This method has to be called from within an IdP origin <iframe> so that relying party (RP) scripts cannot access the data. This must occur after a user has been signed in to a RP site.\n

This pattern is already common on sites that use identity federation for sign-in, but getUserInfo() provides a way to achieve it without relying on third-party cookies.", "parameters": { "config": "A configuration object, which can contain the following properties:\n

\n
configURL
\n
\n

The URL of the configuration file for the identity provider from which you want to get user information.\n

\n
clientId
\n
\n

The RP's client identifier issued by the IdP.\n

\n
" }, @@ -34171,16 +34584,17 @@ "imagecapture.grabframe": { "url": "$MDN_URL$/web/api/imagecapture/grabframe", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "59", "ChromeAndroid": "59", "Edge": "79", - "Opera": "46" + "Opera": "46", + "Safari": "26", + "SafariIOS": "26" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The grabFrame() method of the\nImageCapture interface takes a snapshot of the live video in a\nMediaStreamTrack and returns a Promise that resolves with\na ImageBitmap containing the snapshot.", + "doc": "The grabFrame() method of the\nImageCapture interface takes a snapshot of the live video in a\nMediaStreamTrack and returns a Promise that resolves with\na ImageBitmap containing the snapshot.", "returns": "A Promise that resolves to an ImageBitmap object.", "throws": { "InvalidStateError DOMException": "Thrown if readyState property of the MediaStreamTrack passing in the constructor is not live.", @@ -34310,7 +34724,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The readonly ImageData.data property returns a\nUint8ClampedArray that contains the ImageData object's\npixel data. Data is stored as a one-dimensional array in the RGBA order, with integer\nvalues between 0 and 255 (inclusive)." + "doc": "

Note: This feature is available in Web Workers.

\n

The readonly ImageData.data property returns a\nUint8ClampedArray or Float16Array that contains the ImageData object's\npixel data. Data is stored as a one-dimensional array in the RGBA order." }, "imagedata.height": { "url": "$MDN_URL$/web/api/imagedata/height", @@ -34360,14 +34774,29 @@ "parameters": { "width": "An unsigned long representing the width of the image.", "height": "An unsigned long representing the height of the image. This value is optional if an\narray is given: the height will be inferred from the array's size and the given width.", - "settings": "An object with the following properties:\n

", - "dataArray": "A Uint8ClampedArray containing the underlying pixel representation of the image. If no such array is given, an image with a transparent black rectangle of the specified width and height will be created." + "settings": "An object with the following properties:\n
\n
colorSpace
\n
\n

Specifies the color space of the image data. Can be set to \"srgb\" for the sRGB color space or \"display-p3\" for the display-p3 color space.\n

\n
pixelFormat
\n
\n

Specifies the pixel format. Possible values:\n

    \n
  • \"rgba-unorm8\", for RGBA with 8 bit per component unsigned normalized format, using a Uint8ClampedArray. This is the default.
  • \n
  • \"rgba-float16\", for RGBA with 16 bits per component, using a Float16Array. Floating-point pixel values allow representing colors in arbitrarily wide gamuts and high dynamic range (HDR).
  • \n
\n
\n
", + "dataArray": "A Uint8ClampedArray or Float16Array containing the underlying pixel representation of the image. If no such array is given, an image with a transparent black rectangle of the specified width and height will be created. The type of the dataArray must match settings.pixelFormat." }, "returns": "A new ImageData object.", "throws": { - "IndexSizeError DOMException": "Thrown if array is specified, but its length is not a multiple of (4 * width) or (4 * width * height)." + "IndexSizeError DOMException": "Thrown if dataArray is specified, but its length is not (bytesPerPixel * width * height), or a multiple of (bytesPerPixel * width) if height is not specified. bytesPerPixel is 4 when pixelFormat is \"rgba-unorm8\" and 8 otherwise.", + "InvalidStateError DOMException": "Thrown if dataArray is of type Uint8ClampedArray and pixelFormat is not set to \"rgba-unorm8\", or if dataArray is of type Float16Array and pixelFormat is not set to \"rgba-float16\"." } }, + "imagedata.pixelformat": { + "url": "$MDN_URL$/web/api/imagedata/pixelformat", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "137", + "ChromeAndroid": "137", + "Edge": "137", + "Opera": "121" + }, + "doc": "

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The read-only ImageData.pixelFormat property is a string indicating the pixel format of the image data.\n

The pixel format can be set during ImageData initialization using either the ImageData() constructor or the createImageData() method." + }, "imagedata.width": { "url": "$MDN_URL$/web/api/imagedata/width", "status": [ @@ -34885,16 +35314,12 @@ "Chrome": "47", "ChromeAndroid": "47", "Edge": "79", - "Firefox": "39", - "FirefoxAndroid": "39", "Opera": "34", "Safari": "11", "SafariIOS": "11" }, "baseline": { - "level": "HIGH", - "lowDate": "2020-01-15", - "highDate": "2022-07-15" + "level": "NONE" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The InputDeviceInfo interface of the Media Capture and Streams API gives access to the capabilities of the input device that it represents.\n

InputDeviceInfo objects are returned by MediaDevices.enumerateDevices() if the returned device is an audio or video input device." }, @@ -34915,7 +35340,7 @@ "level": "NONE" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The getCapabilities() method of the InputDeviceInfo interface returns a MediaTrackCapabilities object describing the primary audio or video track of the device's MediaStream.", - "returns": "A MediaTrackCapabilities object which specifies the value or range of values which are supported for each of the user agent's supported constrainable properties, containing the following members:\n

\n
deviceId
\n
\n

A ConstrainDOMString object containing the device ID.\n

\n
groupId
\n
\n

A ConstrainDOMString object containing a group ID.\n

\n
autoGainControl
\n
\n

A ConstrainBoolean object reporting if the source can do auto gain control.\nIf the feature can be controlled by a script the source will report both true and false as possible values.\n

\n
channelCount
\n
\n

A ConstrainULong containing the channel count or range of channel counts.\n

\n
echoCancellation
\n
\n

A ConstrainBoolean object reporting if the source can do echo cancellation.\nIf the feature can be controlled by a script the source will report both true and false as possible values.\n

\n
latency
\n
\n

A ConstrainDouble containing the latency or range of latencies.\n

\n
noiseSuppression
\n
\n

A ConstrainBoolean object reporting if the source can do noise suppression.\nIf the feature can be controlled by a script the source will report both true and false as possible values.\n

\n
sampleRate
\n
\n

A ConstrainULong containing the sample rate or range of sample rates.\n

\n
sampleSize
\n
\n

A ConstrainULong containing the sample size or range of sample sizes.\n

\n
aspectRatio
\n
\n

A ConstrainDouble containing the video aspect ratio (width in pixels divided by height in pixels) or range of aspect ratios.\n

\n
facingMode
\n
\n

A ConstrainDOMString object containing the camera facing mode. A camera may report multiple facings, for example \"left\" and \"user\".\n

\n
frameRate
\n
\n

A ConstrainDouble containing the frame rate or range of frame rates which are acceptable.\n

\n
height
\n
\n

A ConstrainULong containing the video height or range of heights in pixels.\n

\n
width
\n
\n

A ConstrainULong containing the video width or range of widths in pixels.\n

\n
resizeMode
\n
\n

A ConstrainDOMString object containing the mode or an array of modes the UA can use to derive the resolution of the video track.\n

\n
\n
\n

Note:\nIf the user has not granted permission to access the input device an empty object will be returned.\n

" + "returns": "A MediaTrackCapabilities object which specifies the value or range of values which are supported for each of the user agent's supported constrainable properties. It is required to return identical information as returned by calling getCapabilities() on the first MediaStreamTrack of the same kind as this device (video or audio) in the MediaStream returned by getUserMedia({ deviceId: deviceInfo.deviceId }).\n

See MediaStreamTrack.getCapabilities() for a list of commonly supported properties and their types.\n

\n

Note:\nIf the user has not granted permission to access the input device an empty object will be returned.\n

" }, "inputevent": { "url": "$MDN_URL$/web/api/inputevent", @@ -35071,8 +35496,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The InputEvent.isComposing read-only property returns a\nboolean value indicating if the event is fired after\ncompositionstart and before compositionend." }, @@ -35115,7 +35541,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The addRoutes() method of the InstallEvent interface specifies one or more static routes, which define rules for fetching specified resources that will be used even before service worker startup. This allows you to, for example, bypass a service worker in cases where you always want to fetch a resource from the network or a browser Cache, and avoids the performance overhead of unnecessary service worker cycles.", "parameters": { - "routerRules": "A single object, or an array of one or more objects, representing rules for how certain resources should be fetched. Each routerRules object contains the following properties:\n

\n
condition
\n
\n

An object defining one or more conditions that specify which resources should match this rule. The following properties can be included; if multiple properties are used, a resource must meet all specified conditions to match the rule.\n

\n
not Optional
\n
\n

A condition object defining conditions that must explicitly not be met to match the rule. Conditions defined inside a not condition are mutually exclusive with other conditions.\n

\n
or Optional
\n
\n

An array of condition objects. One set of these defined conditions must be met to match the rule. Conditions defined inside an or condition are mutually exclusive with other conditions.\n

\n
requestMethod Optional
\n
\n

A string representing the HTTP method a request should be sent by for it to match the rule, such as \"get\", \"put\", or \"head\".\n

\n
requestMode Optional
\n
\n

A string representing the mode a request should have for it to match the rule, for example \"same-origin\", \"no-cors\", or \"cors\".\n

\n
requestDestination Optional
\n
\n

A string representing the destination of a request, i.e., what content type should be requested, for it to match the rule. Examples include \"audio\", \"document\", \"script\", and \"worker\".\n

\n
runningStatus Optional
\n
\n

An enumerated value representing the required running status of the service worker for a request to match the rule. Values can be \"running\" or \"not-running\".\n

\n
urlPattern Optional
\n
\n

A URLPattern instance, or a URLPattern() constructor input pattern representing the URLs that match the rule.\n

\n
\n
\n
source
\n
\n

An enumerated value or an object specifying the source from which matching resources will be loaded. Possible enumerated values are:\n

\n
\"cache\"
\n
\n

Resources will be loaded from a browser Cache.\n

\n
\"fetch-event\"
\n
\n

Resources will be loaded via the service worker's fetch event handler. This can be combined with the \"runningStatus\" condition to load resources from a service worker if it is running and fall back to a static route on the network if it is not.\n

\n
\"network\"
\n
\n

Resources will be loaded from the network.\n

\n
\"race-network-and-fetch-handler\"
\n
\n

Attempts are made to load resources from the network and the service worker's fetch event handler simultaneously. Whichever one completes first is used.\n

\n
\n

The source value can also be set to an object containing a single property, cacheName, the value of which is a string representing the name of a browser Cache. Matching resources will be loaded from this specific named cache if it exists.\n

\n
" + "routerRules": "A single object, or an array of one or more objects, representing rules for how certain resources should be fetched. Each routerRules object contains the following properties:\n
\n
condition
\n
\n

An object defining one or more conditions that specify which resources should match this rule. The following properties can be included; if multiple properties are used, a resource must meet all specified conditions to match the rule.\n

\n
not Optional
\n
\n

A condition object defining conditions that must explicitly not be met to match the rule. Conditions defined inside a not condition are mutually exclusive with other conditions.\n

\n
or Optional
\n
\n

An array of condition objects. One set of these defined conditions must be met to match the rule. Conditions defined inside an or condition are mutually exclusive with other conditions.\n

\n
requestMethod Optional
\n
\n

A string representing the HTTP method a request should be sent by for it to match the rule, such as \"get\", \"put\", or \"head\".\n

\n
requestMode Optional
\n
\n

A string representing the mode a request should have for it to match the rule, for example \"same-origin\", \"no-cors\", or \"cors\".\n

\n
requestDestination Optional
\n
\n

A string representing the destination of a request, i.e., what content type should be requested, for it to match the rule. Examples include \"audio\", \"document\", \"script\", and \"worker\".\n

\n
runningStatus Optional
\n
\n

An enumerated value representing the required running status of the service worker for a request to match the rule. Values can be \"running\" or \"not-running\".\n

\n
urlPattern Optional
\n
\n

A URLPattern instance, or a URLPattern() constructor input pattern representing the URLs that match the rule. Regular expression capturing groups are not allowed, so URLPattern.hasRegExpGroups must be false.\n

\n
\n
\n
source
\n
\n

An enumerated value or an object specifying the source from which matching resources will be loaded. Possible enumerated values are:\n

\n
\"cache\"
\n
\n

Resources will be loaded from a browser Cache.\n

\n
\"fetch-event\"
\n
\n

Resources will be loaded via the service worker's fetch event handler. This can be combined with the \"runningStatus\" condition to load resources from a service worker if it is running and fall back to a static route on the network if it is not.\n

\n
\"network\"
\n
\n

Resources will be loaded from the network.\n

\n
\"race-network-and-fetch-handler\"
\n
\n

Attempts are made to load resources from the network and the service worker's fetch event handler simultaneously. Whichever one completes first is used.\n

\n
\n

The source value can also be set to an object containing a single property, cacheName, the value of which is a string representing the name of a browser Cache. Matching resources will be loaded from this specific named cache if it exists.\n

\n
" }, "returns": "A Promise that fulfills with undefined.", "throws": { @@ -35144,6 +35570,10 @@ }, "returns": "A new InstallEvent object." }, + "integrityviolationreportbody": { + "url": "$MDN_URL$/web/api/integrityviolationreportbody", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The IntegrityViolationReportBody dictionary is an extension of the Reporting API that represents the body of an Integrity Policy violation report.\n

Integrity violation reports can be reported to reporting server endpoints or via a ReportingObserver.\nThey have a type of \"integrity-violation\", a url indicating the document that contains the violation, and a body property that is an object matching this dictionary." + }, "intersectionobserver": { "url": "$MDN_URL$/web/api/intersectionobserver", "status": [ @@ -35166,6 +35596,23 @@ }, "doc": "The IntersectionObserver interface of the Intersection Observer API provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's viewport. The ancestor element or viewport is referred to as the root.\n

When an IntersectionObserver is created, it's configured to watch for given ratios of visibility within the root. The configuration cannot be changed once the IntersectionObserver is created, so a given observer object is only useful for watching for specific changes in degree of visibility; however, you can watch multiple target elements with the same observer." }, + "intersectionobserver.delay": { + "url": "$MDN_URL$/web/api/intersectionobserver/delay", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "74", + "ChromeAndroid": "74", + "Edge": "79", + "Opera": "62" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The delay read-only property of the IntersectionObserver interface indicates the minimum delay between notifications from this observer.\n

The delay is used to limit the rate at which notifications should be provided when tracking visibility, as this is a computationally intensive operation.\nThe recommendation when tracking visibility is that you set the delay to the largest tolerable value." + }, "intersectionobserver.disconnect": { "url": "$MDN_URL$/web/api/intersectionobserver/disconnect", "status": [ @@ -35186,7 +35633,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserver method\ndisconnect() stops watching all of its target elements\nfor visibility changes.", + "doc": "The disconnect() method of the IntersectionObserver interface stops the observer watching all of its target elements for visibility changes.", "returns": "None (undefined)." }, "intersectionobserver.intersectionobserver": { @@ -35209,14 +35656,14 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserver() constructor creates and returns a new IntersectionObserver object.\n

The rootMargin, if specified, is checked to ensure it's syntactically correct.\nIf not specified, or an empty string, the default is 0px 0px 0px 0px.\n

The thresholds, if specified, are checked to ensure that they're all in the range 0.0 and 1.0 inclusive, and the threshold list is sorted in ascending numeric order.\nIf the threshold list is empty, it's set to the array [0.0].", + "doc": "The IntersectionObserver() constructor creates and returns a new IntersectionObserver object.", "parameters": { - "callback": "A function which is called when the percentage of the target element is visible crosses a threshold.\nThe callback receives as input two parameters:\n

\n
entries
\n
\n

An array of IntersectionObserverEntry objects, each representing one threshold which was crossed, either becoming more or less visible than the percentage specified by that threshold. You should not assume the number of entries, because multiple threshold-crossing events may be reported in a single callback invocation. The entries are dispatched using a queue, so they should be ordered by the time they were generated, but you should preferably use IntersectionObserverEntry.time to correctly order them.\n

\n
observer
\n
\n

The IntersectionObserver for which the callback is being invoked.\n

\n
", - "options": "An optional object which customizes the observer. All properties are optional.\nYou can provide any combination of the following options:\n
\n
root
\n
\n

An Element or Document object which is an ancestor of the intended target, whose bounding rectangle will be considered the viewport.\nAny part of the target not visible in the visible area of the root is not considered visible. If not specified, the observer uses the document's\nviewport as the root, with no margin, and a 0% threshold (meaning that even a one-pixel change is enough to trigger a callback).\n

\n
rootMargin
\n
\n

A string which specifies a set of offsets to add to the root's bounding_box when calculating intersections, effectively shrinking\nor growing the root for calculation purposes.\nThe syntax is approximately the same as that for the CSS margin property;\nsee The intersection root and root margin for more information on how the margin works and the syntax.\nThe default is \"0px 0px 0px 0px\".\n

\n
threshold
\n
\n

Either a single number or an array of numbers between 0.0 and 1.0, specifying a ratio of intersection area to total bounding box area for the observed target.\nA value of 0.0 means that even a single visible pixel counts as the target being visible.\n1.0 means that the entire target element is visible.\nSee Thresholds for a more in-depth description of how thresholds are used.\nThe default is a threshold of 0.0.\n

\n
" + "callback": "A function which is called when the percentage of the target element is visible crosses a threshold.\nThe callback receives as input two parameters:\n
\n
entries
\n
\n

An array of IntersectionObserverEntry objects, each representing one threshold which was crossed, either becoming more or less visible than the percentage specified by that threshold.\nYou should not assume the number of entries, because multiple threshold-crossing events may be reported in a single callback invocation.\nThe entries are dispatched using a queue, so they should be ordered by the time they were generated, but you should preferably use IntersectionObserverEntry.time to correctly order them.\n

\n
observer
\n
\n

The IntersectionObserver for which the callback is being invoked.\n

\n
", + "options": "An optional object which customizes the observer.\n

You can provide any combination (or none) of the following options:\n

\n
delay
\n
\n

A number specifying the minimum permitted delay between notifications from the observer, in milliseconds.\n

The delay is used to limit the rate at which notifications will be provided when tracking visibility, as this is a computationally intensive operation.\nThe recommendation when tracking visibility is that you set the delay to the largest tolerable value.\n

When trackVisibility is true the minimum value is 100.\nThe browser will set the value to 100 if any smaller value is used, or if the value is not specified.\nThe default value is 0.\n

\n
root
\n
\n

An Element or Document object which is an ancestor of the intended target, whose bounding rectangle will be considered the viewport.\nAny part of the target not visible in the visible area of the root is not considered visible.\nIf not specified, the observer uses the document's\nviewport as the root, with no margin, and a 0% threshold (meaning that even a one-pixel change is enough to trigger a callback).\n

\n
rootMargin
\n
\n

A string which specifies a set of offsets to add to the root's bounding_box when calculating intersections, effectively shrinking\nor growing the root for calculation purposes. Each offset value can be only expressed in pixels (px) or percentages (%).\nThe syntax is approximately the same as that for the CSS margin property;\nsee The intersection root and root margin for more information on how the margin works and the syntax.\nThe default is \"0px 0px 0px 0px\".\n

\n
scrollMargin
\n
\n

A string that specifies the offsets to add to every scroll container on path to the target when calculating intersections, effectively shrinking or growing the clip rectangles used to calculate intersections.\nThis allows, for example, better observation of targets inside nested scroll containers that are currently clipped away by the scroll containers.\nThe syntax is the same as rootMargin.\nThe default is \"0px 0px 0px 0px\".\n

\n
threshold
\n
\n

Either a single number or an array of numbers between 0.0 and 1.0, specifying a ratio of intersection area to total bounding box area for the observed target.\nA value of 0.0 means that even a single visible pixel counts as the target being visible.\n1.0 means that the entire target element is visible.\nSee Thresholds for a more in-depth description of how thresholds are used.\nThe default is a threshold of \"0\".\n

\n
trackVisibility
\n
\n

A boolean indicating whether the observer should track visibility.\n

When true, the browser will check that the target does not have compromised visibility when calculating intersections;\nfor example, that it hasn't been covered by other elements or potentially been distorted or hidden by a filter, reduced opacity, or some transform.\n

Tracking visibility is an expensive operation, and should only be done when necessary.\nA delay should also be set when this value is true.\nThe default is false.\n

\n
" }, - "returns": "A new IntersectionObserver which can be used to watch for the visibility of a target element within the specified root crossing through any of the\nspecified visibility thresholds.\nCall its observe() method to begin watching for the visibility changes on a given target.", + "returns": "A new IntersectionObserver which can be used to watch for the visibility of a target element within the specified root crossing through any of the specified visibility thresholds.\n

Call its observe() method to begin watching for the visibility changes on a given target.", "throws": { - "SyntaxError DOMException": "The specified rootMargin is invalid.", + "SyntaxError DOMException": "The specified rootMargin or scrollMargin is invalid.", "RangeError": "One or more of the values in threshold is outside the range 0.0 to 1.0." } }, @@ -35240,9 +35687,9 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserver method\nobserve() adds an element to the set of target elements\nbeing watched by the IntersectionObserver. One observer has one set of\nthresholds and one root, but can watch multiple target elements for visibility changes\nin keeping with those.\n

To stop observing the element, call\nIntersectionObserver.unobserve().\n

When the visibility of the specified element crosses over one of the observer's\nvisibility thresholds (as listed in IntersectionObserver.thresholds), the\nobserver's callback is executed with an array of\nIntersectionObserverEntry objects representing the intersection changes\nwhich occurred. Note that this design allows multiple elements' intersection changes to\nbe processed by a single call to the callback.\n

\n

Note:\nThe observer callback will always fire the first render cycle after observe() is called, even if the observed element has not yet moved with respect to the viewport.\nThis means that, for example, an element that is outside the viewport when observe() is called on it will result in the callback being immediately called with at least one entry with intersecting set to false.\nAn element inside the viewport will result in the callback being immediately called with at least one entry with intersecting set to true.\n

", + "doc": "The observe() method of the IntersectionObserver interface adds an element to the set of target elements being watched by the IntersectionObserver.\nOne observer has one set of thresholds and one root, but can watch multiple target elements for visibility changes in keeping with those.\n

To stop observing the element, call IntersectionObserver.unobserve().\n

When the visibility of the specified element crosses over one of the observer's visibility thresholds (as listed in IntersectionObserver.thresholds), the observer's callback is executed with an array of IntersectionObserverEntry objects representing the intersection changes\nwhich occurred.\nNote that this design allows multiple elements' intersection changes to be processed by a single call to the callback.\n

\n

Note:\nThe observer callback will always fire the first render cycle after observe() is called, even if the observed element has not yet moved with respect to the viewport.\nThis means that, for example, an element that is outside the viewport when observe() is called on it will result in the callback being immediately called with at least one entry with intersecting set to false.\nAn element inside the viewport will result in the callback being immediately called with at least one entry with intersecting set to true.\n

", "parameters": { - "targetElement": "An element whose visibility within the root is to be monitored. This\nelement must be a descendant of the root element (or contained within the current\ndocument, if the root is the document's viewport)." + "targetElement": "An element whose visibility within the root is to be monitored.\nThis element must be a descendant of the root element (or contained within the current document, if the root is the document's viewport)." }, "returns": "None (undefined)." }, @@ -35266,7 +35713,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserver interface's read-only\nroot property identifies the Element or\nDocument whose bounds are treated as the bounding box\nof the viewport for the element which is the observer's target.\n

If the root is null, then the bounds of the actual document\nviewport are used." + "doc": "The root read-only property of the IntersectionObserver interface identifies the Element or Document whose bounds are treated as the bounding box of the viewport for the element which is the observer's target.\n

If the root is null, then the bounds of the actual document viewport are used." }, "intersectionobserver.rootmargin": { "url": "$MDN_URL$/web/api/intersectionobserver/rootmargin", @@ -35288,7 +35735,28 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserver interface's read-only\nrootMargin property is a string with syntax similar to\nthat of the CSS margin property. Each side of the rectangle represented\nby rootMargin is added to the corresponding side in the\nroot element's bounding box\nbefore the intersection test is performed. This lets you, for example, adjust the bounds\noutward so that the target element is considered 100% visible even if a certain number\nof pixels worth of width or height is clipped away, or treat the target as partially\nhidden if an edge is too close to the edge of the root's bounding box.\n

See how intersections are calculated\nfor a more in-depth look at the root margin and how it works with\nthe root's bounding box." + "doc": "The rootMargin read-only property of the IntersectionObserver interface is a string with syntax similar to that of the CSS margin property.\n

Each side of the rectangle represented by rootMargin is added to the corresponding side in the root element's bounding box before the intersection test is performed.\nThis lets you, for example, adjust the bounds outward so that the target element is considered 100% visible even if a certain number of pixels worth of width or height is clipped away, or treat the target as partially hidden if an edge is too close to the edge of the root's bounding box.\n

See how intersections are calculated for a more in-depth look at the root margin and how it works with the root's bounding box." + }, + "intersectionobserver.scrollmargin": { + "url": "$MDN_URL$/web/api/intersectionobserver/scrollmargin", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "120", + "ChromeAndroid": "120", + "Edge": "120", + "Firefox": "141", + "FirefoxAndroid": "141", + "Opera": "106", + "Safari": "26", + "SafariIOS": "26" + }, + "baseline": { + "level": "LOW", + "lowDate": "2025-09-15" + }, + "doc": "The scrollMargin read-only property of the IntersectionObserver interface adds a margin to all nested scroll containers within the root element, including the root element if it is a scroll container.\n

This grows or shrinks the clipping rectangle of the scrollable containers before calculating intersections.\nThis lets you, for example, adjust the bounds of the scroll container so that the target element is considered visible even if its pixels are not yet displayed in the container's viewport, or to treat the target as partially hidden if an edge is too close to the edge of the container's bounding box.\n

Note that if the root element is also a scrollable container, then the scrollMargin and rootMargin are combined to determine the effective bounding rectangle used for calculating intersections with the target.\n

For more information see The intersection root and scroll margin in the API overview." }, "intersectionobserver.takerecords": { "url": "$MDN_URL$/web/api/intersectionobserver/takerecords", @@ -35310,8 +35778,8 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserver method\ntakeRecords() returns an array of\nIntersectionObserverEntry objects, one for each targeted element which\nhas experienced an intersection change since the last time the intersections were\nchecked, either explicitly through a call to this method or implicitly by an automatic\ncall to the observer's callback.\n

\n

Note:\nIf you use the callback to monitor these changes, you don't\nneed to call this method. Calling this method clears the pending intersection list, so\nthe callback will not be run.\n

", - "returns": "An array of IntersectionObserverEntry objects, one for each target\nelement whose intersection with the root has changed since the last time the\nintersections were checked." + "doc": "The takeRecords() method of the IntersectionObserver interface returns an array of IntersectionObserverEntry objects, one for each targeted element which has experienced an intersection change since the last time the intersections were checked, either explicitly through a call to this method or implicitly by an automatic call to the observer's callback.\n
\n

Note:\nIf you use the callback to monitor these changes, you don't need to call this method.\nCalling this method clears the pending intersection list, so the callback will not be run.\n

", + "returns": "An array of IntersectionObserverEntry objects, one for each target element whose intersection with the root has changed since the last time the intersections were checked." }, "intersectionobserver.thresholds": { "url": "$MDN_URL$/web/api/intersectionobserver/thresholds", @@ -35333,7 +35801,24 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserver interface's read-only\nthresholds property returns the list of intersection\nthresholds that was specified when the observer was instantiated with\nIntersectionObserver(). If\nonly one threshold ratio was provided when instantiating the object, this will be an\narray containing that single value.\n

See the Intersection Observer page to\nlearn how thresholds work." + "doc": "The thresholds read-only property of the IntersectionObserver interface returns the list of intersection thresholds that was specified when the observer was instantiated with IntersectionObserver().\n

If only one threshold ratio was provided when instantiating the object, this will be an array containing that single value.\n

See the Intersection Observer page to learn how thresholds work." + }, + "intersectionobserver.trackvisibility": { + "url": "$MDN_URL$/web/api/intersectionobserver/trackvisibility", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "74", + "ChromeAndroid": "74", + "Edge": "79", + "Opera": "62" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The trackVisibility read-only property of the IntersectionObserver interface indicates whether the observer is tracking target visibility in addition to element intersections." }, "intersectionobserver.unobserve": { "url": "$MDN_URL$/web/api/intersectionobserver/unobserve", @@ -35355,9 +35840,9 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserver method\nunobserve() instructs the\nIntersectionObserver to stop observing the specified target\nelement.", + "doc": "The unobserve() method of the IntersectionObserver interface instructs the IntersectionObserver to stop observing the specified target element.", "parameters": { - "target": "The Element to cease observing. If the specified element isn't being\nobserved, this method does nothing and no exception is thrown." + "target": "The Element to cease observing.\nIf the specified element isn't being observed, this method does nothing and no exception is thrown." }, "returns": "None (undefined)." }, @@ -35403,7 +35888,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserverEntry interface's read-only\nboundingClientRect property returns a\nDOMRectReadOnly which in essence describes a rectangle describing the\nsmallest rectangle that contains the entire target element." + "doc": "The boundingClientRect read-only property of the IntersectionObserverEntry interface returns a DOMRectReadOnly which in essence describes a rectangle describing the smallest rectangle that contains the entire target element." }, "intersectionobserverentry.intersectionratio": { "url": "$MDN_URL$/web/api/intersectionobserverentry/intersectionratio", @@ -35425,7 +35910,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserverEntry interface's\nread-only intersectionRatio property tells you how much\nof the target element is currently visible within the root's intersection ratio, as a\nvalue between 0.0 and 1.0." + "doc": "The intersectionRatio read-only property of the IntersectionObserverEntry interface tells you how much of the target element is currently visible within the root's intersection ratio, as a value between 0.0 and 1.0." }, "intersectionobserverentry.intersectionrect": { "url": "$MDN_URL$/web/api/intersectionobserverentry/intersectionrect", @@ -35447,7 +35932,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserverEntry interface's\nread-only intersectionRect property is a\nDOMRectReadOnly object which describes the smallest rectangle that\ncontains the entire portion of the target element which is currently visible within\nthe intersection root." + "doc": "The intersectionRect read-only property of the IntersectionObserverEntry interface is a DOMRectReadOnly object which describes the smallest rectangle that contains the entire portion of the target element which is currently visible within the intersection root." }, "intersectionobserverentry.isintersecting": { "url": "$MDN_URL$/web/api/intersectionobserverentry/isintersecting", @@ -35469,7 +35954,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserverEntry interface's\nread-only isIntersecting property is a Boolean value\nwhich is true if the target element intersects with the intersection\nobserver's root. If this is true, then, the\nIntersectionObserverEntry describes a transition into a state of\nintersection; if it's false, then you know the transition is from\nintersecting to not-intersecting." + "doc": "The isIntersecting read-only property of the IntersectionObserverEntry interface is a Boolean value which is true if the target element intersects with the intersection observer's root.\n

If this is true, then, the IntersectionObserverEntry describes a transition into a state of intersection; if it's false, then you know the transition is from intersecting to not-intersecting." }, "intersectionobserverentry.rootbounds": { "url": "$MDN_URL$/web/api/intersectionobserverentry/rootbounds", @@ -35491,7 +35976,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserverEntry interface's\nread-only rootBounds property is a\nDOMRectReadOnly corresponding to the\ntarget's root intersection\nrectangle, offset by the IntersectionObserver.rootMargin if one is\nspecified." + "doc": "The rootBounds read-only property of the IntersectionObserverEntry interface is a DOMRectReadOnly corresponding to the target's root intersection rectangle, offset by the IntersectionObserver.rootMargin if one is specified." }, "intersectionobserverentry.target": { "url": "$MDN_URL$/web/api/intersectionobserverentry/target", @@ -35513,7 +35998,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserverEntry interface's\nread-only target property indicates which targeted\nElement has changed its amount of intersection with the intersection\nroot." + "doc": "The target read-only property of the IntersectionObserverEntry interface indicates which targeted Element has changed its amount of intersection with the intersection root." }, "intersectionobserverentry.time": { "url": "$MDN_URL$/web/api/intersectionobserverentry/time", @@ -35535,7 +36020,7 @@ "lowDate": "2019-03-25", "highDate": "2021-09-25" }, - "doc": "The IntersectionObserverEntry interface's\nread-only time property is a\nDOMHighResTimeStamp that indicates the time at which the intersection\nchange occurred relative to the time at which the document was created." + "doc": "The time read-only property of the IntersectionObserverEntry interface is a DOMHighResTimeStamp that indicates the time at which the intersection change occurred relative to the time at which the document was created." }, "interventionreportbody": { "url": "$MDN_URL$/web/api/interventionreportbody", @@ -35694,7 +36179,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The Keyboard interface of the Keyboard API provides functions that retrieve keyboard layout maps and toggle capturing of key presses from the physical keyboard.\n

A list of valid code values is found in the UI Events KeyboardEvent code Values spec." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The Keyboard interface of the Keyboard API provides functions that retrieve keyboard layout maps and toggle capturing of key presses from the physical keyboard.\n

A list of valid code values is found in the UI Events KeyboardEvent code Values spec." }, "keyboard.getlayoutmap": { "url": "$MDN_URL$/web/api/keyboard/getlayoutmap", @@ -35739,7 +36224,7 @@ "returns": "A Promise that resolves with undefined when the lock was successful.", "throws": { "AbortError DOMException": "Thrown if a new call to lock() is made before the current one has finished.", - "InvalidAccessError DOMException": "Thrown if any key in keyCodes is not a valid key code attribute value.", + "InvalidAccessError DOMException": "Thrown if any key in keyCodes is not a valid key code attribute value.", "InvalidStateError DOMException": "Thrown if lock() is not called in an active top-level browsing context." } }, @@ -35781,7 +36266,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "KeyboardEvent objects describe a user interaction with the keyboard; each event describes a single interaction between the user and a key (or combination of a key with modifier keys) on the keyboard. The event type (keydown, keypress, or keyup) identifies what kind of keyboard activity occurred.\n

\n

Note: KeyboardEvent events just indicate what interaction the user had with a key on the keyboard at a low level, providing no contextual meaning to that interaction. When you need to handle text input, use the input event instead. Keyboard events may not be fired if the user is using an alternate means of entering text, such as a handwriting system on a tablet or graphics tablet.\n

" + "doc": "KeyboardEvent objects describe a user interaction with the keyboard; each event describes a single interaction between the user and a key (or combination of a key with modifier keys) on the keyboard. The event type (keydown, keypress, or keyup) identifies what kind of keyboard activity occurred.\n
\n

Note:\nKeyboardEvent events just indicate what interaction the user had with a key on the keyboard at a low level, providing no contextual meaning to that interaction. When you need to handle text input, use the input event instead. Keyboard events may not be fired if the user is using an alternate means of entering text, such as a handwriting system on a tablet or graphics tablet.\n

" }, "keyboardevent.altkey": { "url": "$MDN_URL$/web/api/keyboardevent/altkey", @@ -35987,7 +36472,7 @@ "doc": "The KeyboardEvent() constructor creates a new\nKeyboardEvent object.", "parameters": { "type": "A string with the name of the event.\nIt is case-sensitive and browsers set it to keydown, keyup, or keypress.", - "options": "An object that, in addition of the properties defined in UIEvent(), can have the following properties:\n
\n
key Optional
\n
\n

A string, defaulting to \"\", that sets the value of KeyboardEvent.key.\n

\n
code Optional
\n
\n

A string, defaulting to \"\", that sets the value of KeyboardEvent.code.\n

\n
location Optional
\n
\n

A string, defaulting to 0, that sets the value of KeyboardEvent.location.\n

\n
repeat Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.repeat.\n

\n
isComposing Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.isComposing.\n

\n
charCode Optional
\n
\n

A number, defaulting to 0, that sets the value of the deprecated KeyboardEvent.charCode.\n

\n
keyCode Optional
\n
\n

A number, defaulting to 0, that sets the value of the deprecated KeyboardEvent.keyCode.\n

\n
which Optional
\n
\n

A number, defaulting to 0, that sets the value of the deprecated UIEvent.which.\n

\n
ctrlKey Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.ctrlKey.\n

\n
shiftKey Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.shiftKey.\n

\n
altKey Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.altKey.\n

\n
metaKey Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.metaKey.\n

\n
" + "options": "An object that, in addition of the properties defined in UIEvent(), can have the following properties:\n
\n
key Optional
\n
\n

A string, defaulting to \"\", that sets the value of KeyboardEvent.key.\n

\n
code Optional
\n
\n

A string, defaulting to \"\", that sets the value of KeyboardEvent.code.\n

\n
location Optional
\n
\n

A number, defaulting to 0, that sets the value of KeyboardEvent.location.\n

\n
repeat Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.repeat.\n

\n
isComposing Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.isComposing.\n

\n
charCode Optional
\n
\n

A number, defaulting to 0, that sets the value of the deprecated KeyboardEvent.charCode.\n

\n
keyCode Optional
\n
\n

A number, defaulting to 0, that sets the value of the deprecated KeyboardEvent.keyCode.\n

\n
which Optional
\n
\n

A number, defaulting to 0, that sets the value of the deprecated UIEvent.which.\n

\n
ctrlKey Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.ctrlKey.\n

\n
shiftKey Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.shiftKey.\n

\n
altKey Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.altKey.\n

\n
metaKey Optional
\n
\n

A boolean value, defaulting to false, that sets the value of KeyboardEvent.metaKey.\n

\n
" }, "returns": "A new KeyboardEvent object." }, @@ -36018,7 +36503,7 @@ "Safari": "1.2", "SafariIOS": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The deprecated KeyboardEvent.keyIdentifier read-only property returns a \"key identifier\" string that can be used to determine what key was pressed. Its non-deprecated replacement is KeyboardEvent.key." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The deprecated KeyboardEvent.keyIdentifier read-only property returns a \"key identifier\" string that can be used to determine what key was pressed. Its non-deprecated replacement is KeyboardEvent.key." }, "keyboardevent.location": { "url": "$MDN_URL$/web/api/keyboardevent/location", @@ -36070,14 +36555,18 @@ "StandardTrack" ], "compatibility": { + "Chrome": "137", + "ChromeAndroid": "137", "Edge": "12", "Firefox": "28", "FirefoxAndroid": "28", + "Opera": "121", "Safari": "10.1", "SafariIOS": "10.3" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-05-27" }, "doc": "The repeat read-only property of the\nKeyboardEvent interface returns a boolean value that is\ntrue if the given key is being held down such that it is automatically\nrepeating." }, @@ -36118,7 +36607,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The KeyboardLayoutMap interface of the Keyboard API is a read-only object with functions for retrieving the string associated with specific physical keys.\n

A KeyboardLayoutMap instance is a read-only Map-like object, in which each key is a string identifying the unique physical key on the keyboard (a \"key code\"), and the corresponding value is the associated key attribute value (which may be affected by the keyboard layout, and so on).\n

A list of valid keys is found in the UI Events KeyboardEvent code Values specification." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The KeyboardLayoutMap interface of the Keyboard API is a read-only object with functions for retrieving the string associated with specific physical keys.\n

A KeyboardLayoutMap instance is a read-only Map-like object, in which each key is a string identifying the unique physical key on the keyboard (a \"key code\"), and the corresponding value is the associated key attribute value (which may be affected by the keyboard layout, and so on).\n

A list of valid keys is found in the UI Events KeyboardEvent code Values specification." }, "keyboardlayoutmap.entries": { "url": "$MDN_URL$/web/api/keyboardlayoutmap/entries", @@ -36175,7 +36664,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The get() method of the\nKeyboardLayoutMap interface returns the element with the given\nkey.\n

A list of valid keys is found in the UI Events KeyboardEvent code Values spec.\n

The method is otherwise the same as Map.prototype.get().", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The get() method of the\nKeyboardLayoutMap interface returns the element with the given\nkey.\n

A list of valid keys is found in the UI Events KeyboardEvent code Values specification.\n

The method is otherwise the same as Map.prototype.get().", "parameters": { "key": "The key of the item to return from the map." }, @@ -36196,7 +36685,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The has() method of the\nKeyboardLayoutMap interface returns a boolean indicating whether the\nobject has an element with the specified key.\n

A list of valid keys is found in\nthe UI Events KeyboardEvent code Values spec.\n

The method is otherwise the same as Map.prototype.has().", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The has() method of the\nKeyboardLayoutMap interface returns a boolean indicating whether the\nobject has an element with the specified key.\n

A list of valid keys is found in\nthe UI Events KeyboardEvent code Values specification.\n

The method is otherwise the same as Map.prototype.has().", "parameters": { "key": "The key of an element to search for in the map." }, diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-index.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-index.json index 6e7316c0f855..dfa0b53201c5 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-index.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-index.json @@ -37,7 +37,6 @@ "ariamixin.ariaposinset": "elementinternals.ariaposinset", "ariamixin.ariapressed": "elementinternals.ariapressed", "ariamixin.ariareadonly": "elementinternals.ariareadonly", - "ariamixin.ariarelevant": "elementinternals.ariarelevant", "ariamixin.ariarequired": "elementinternals.ariarequired", "ariamixin.ariaroledescription": "elementinternals.ariaroledescription", "ariamixin.ariarowcount": "elementinternals.ariarowcount", @@ -93,7 +92,6 @@ "canvasrect.clearrect": "offscreencanvasrenderingcontext2d.clearrect", "canvasrect.fillrect": "offscreencanvasrenderingcontext2d.fillrect", "canvasrect.strokerect": "offscreencanvasrenderingcontext2d.strokerect", - "canvassettings.getcontextattributes": "canvasrenderingcontext2d.getcontextattributes", "canvasshadowstyles.shadowblur": "offscreencanvasrenderingcontext2d.shadowblur", "canvasshadowstyles.shadowcolor": "offscreencanvasrenderingcontext2d.shadowcolor", "canvasshadowstyles.shadowoffsetx": "offscreencanvasrenderingcontext2d.shadowoffsetx", @@ -131,15 +129,6 @@ "cssgroupingrule.cssrules": "cssstylerule.cssrules", "cssgroupingrule.deleterule": "cssstylerule.deleterule", "cssgroupingrule.insertrule": "cssstylerule.insertrule", - "documentorshadowroot.activeelement": "shadowroot.activeelement", - "documentorshadowroot.adoptedstylesheets": "shadowroot.adoptedstylesheets", - "documentorshadowroot.elementfrompoint": "shadowroot.elementfrompoint", - "documentorshadowroot.elementsfrompoint": "shadowroot.elementsfrompoint", - "documentorshadowroot.fullscreenelement": "shadowroot.fullscreenelement", - "documentorshadowroot.getanimations": "shadowroot.getanimations", - "documentorshadowroot.pictureinpictureelement": "shadowroot.pictureinpictureelement", - "documentorshadowroot.pointerlockelement": "shadowroot.pointerlockelement", - "documentorshadowroot.stylesheets": "shadowroot.stylesheets", "domrect.height": "svgrect.height", "domrect.width": "svgrect.width", "domrect.x": "svgrect.x", @@ -240,10 +229,15 @@ "readonlymap.keys": "rtcstatsreport.keys", "readonlymap.size": "rtcstatsreport.size", "readonlymap.values": "rtcstatsreport.values", - "rtcrtpstreamstats.codecid": "rtcinboundrtpstreamstats.codecid", - "rtcrtpstreamstats.kind": "rtcinboundrtpstreamstats.kind", - "rtcrtpstreamstats.ssrc": "rtcinboundrtpstreamstats.ssrc", - "rtcrtpstreamstats.transportid": "rtcinboundrtpstreamstats.transportid", + "rtcreceivedrtpstreamstats.jitter": "rtcinboundrtpstreamstats.jitter", + "rtcreceivedrtpstreamstats.packetslost": "rtcinboundrtpstreamstats.packetslost", + "rtcreceivedrtpstreamstats.packetsreceived": "rtcinboundrtpstreamstats.packetsreceived", + "rtcrtpstreamstats.codecid": "rtcoutboundrtpstreamstats.codecid", + "rtcrtpstreamstats.kind": "rtcoutboundrtpstreamstats.kind", + "rtcrtpstreamstats.ssrc": "rtcoutboundrtpstreamstats.ssrc", + "rtcrtpstreamstats.transportid": "rtcoutboundrtpstreamstats.transportid", + "rtcsentrtpstreamstats.bytessent": "rtcoutboundrtpstreamstats.bytessent", + "rtcsentrtpstreamstats.packetssent": "rtcoutboundrtpstreamstats.packetssent", "rtcstats.id": "rtctransportstats.id", "rtcstats.timestamp": "rtctransportstats.timestamp", "rtcstats.type": "rtctransportstats.type", @@ -454,7 +448,6 @@ "webglrenderingcontextbase.stencilmaskseparate": "webglrenderingcontext.stencilmaskseparate", "webglrenderingcontextbase.stencilop": "webglrenderingcontext.stencilop", "webglrenderingcontextbase.stencilopseparate": "webglrenderingcontext.stencilopseparate", - "webglrenderingcontextbase.unpackcolorspace": "webglrenderingcontext.unpackcolorspace", "webglrenderingcontextbase.useprogram": "webglrenderingcontext.useprogram", "webglrenderingcontextbase.validateprogram": "webglrenderingcontext.validateprogram", "webglrenderingcontextbase.vertexattribpointer": "webglrenderingcontext.vertexattribpointer", diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-l.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-l.json index eb23fd25d16a..8188fd2f3b4c 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-l.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-l.json @@ -9,6 +9,141 @@ }, "lang": "en-us", "symbols": { + "languagedetector": { + "url": "$MDN_URL$/web/api/languagedetector", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The LanguageDetector interface of the Translator and Language Detector APIs contains all the language detection functionality, including checking AI model availability, creating a new LanguageDetector instance, using it to detect a language, and more." + }, + "languagedetector.availability": { + "url": "$MDN_URL$/web/api/languagedetector/availability_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The availability() static method of the LanguageDetector interface returns an enumerated value that indicates whether the browser AI model supports a given LanguageDetector configuration.", + "parameters": { + "options": "An object specifying configuration options for the LanguageDetector. Possible values include:\n

\n
expectedInputLanguages
\n
\n

An array of strings specifying the expected languages of the input text to have its language detected. These should be valid BCP 47 language tags. Defaults to [\"en\"]\n

\n
" + }, + "returns": "A Promise that fulfills with an enumerated value indicating whether support is available (or will be available) for a given LanguageDetector configuration, or null if support could not be determined.\n

Possible values include:\n

\n
available
\n
\n

The browser supports the given configuration and it can be used immediately.\n

\n
downloadable
\n
\n

The browser supports the given configuration, but it first needs to download an AI model, or some fine-tuning data for the model.\n

\n
downloading
\n
\n

The browser supports the given configuration, but it has to finish an ongoing download before it can proceed.\n

\n
unavailable
\n
\n

The browser does not support the given configuration.\n

\n
", + "throws": { + "InvalidStateError DOMException": "Thrown if the page's Document is not yet active.", + "OperationError DOMException": "Thrown if initialization of the AI model failed for any reason.", + "UnknownError DOMException": "Thrown if the availability() call failed for any other reason, or a reason the user agent did not wish to disclose." + } + }, + "languagedetector.create": { + "url": "$MDN_URL$/web/api/languagedetector/create_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The create() static method of the LanguageDetector interface creates a new LanguageDetector instance to detect languages.\n

\n

Note:\nThe create() method requires transient activation, that is, it must be invoked in response to a user action such as a mouse click or button press.\n

", + "parameters": { + "options": "An object specifying configuration options for the LanguageDetector. Possible values include:\n
\n
expectedInputLanguages
\n
\n

An array of strings specifying the expected languages of the input text, which helps improve the accuracy of the language detection. These should be valid BCP 47 language tags. Defaults to [\"en\"].\n

\n
monitor Optional
\n
\n

A callback function with a CreateMonitor argument that enables monitoring download progress of the AI model.\n

\n
signal Optional
\n
\n

An AbortSignal object instance, which allows the create() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A Promise that fulfills with a LanguageDetector object instance.", + "throws": { + "InvalidStateError DOMException": "Thrown if the page's Document is not yet active.", + "NetworkError DOMException": "Thrown if:\n
    \n
  • The network was not available to download the AI model.
  • \n
  • The user has cancelled the AI model download.
  • \n
", + "NotAllowedError DOMException": "Thrown if:\n", + "NotSupportedError DOMException": "Thrown if:\n
    \n
  • The language tags specified in expectedInputLanguages are invalid, or not supported.
  • \n
  • An AI model to support the specified expectedInputLanguages is not available.
  • \n
", + "OperationError DOMException": "General-purpose exception thrown if LanguageDetector creation failed for any other reason." + } + }, + "languagedetector.destroy": { + "url": "$MDN_URL$/web/api/languagedetector/destroy", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The destroy() method of the LanguageDetector interface destroys the LanguageDetector instance it is called on. It makes sense to destroy these objects if they are no longer going to be used, as they tie up significant resources in their handling.", + "returns": "None (undefined)." + }, + "languagedetector.detect": { + "url": "$MDN_URL$/web/api/languagedetector/detect", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The detect() method of the LanguageDetector interface detects the closest matching language or languages that a given text string is most likely to be written in.", + "parameters": { + "input": "A string representing the text to have its language detected.", + "options": "An object specifying configuration options for the detect() operation. Possible values include:\n

\n
signal
\n
\n

An AbortSignal object instance, which allows the detect() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A Promise that fulfills with an array of objects representing the detected languages. Each object contains the following properties:\n
\n
detectedLanguage
\n
\n

A BCP 47 language tag representing the detected language.\n

\n
confidence
\n
\n

A number between 0 and 1 representing the AI model's confidence that the detected language is correct.\n

\n
\n

The sum of all the returned confidence values should theoretically be 1, however, it may be lower because very low confidence values are excluded from the results.\n

The last array element returned will always have a detectedLanguage value of und — this is an abbreviation of \"undetermined\", and represents the probability that the text is not written in a language the model knows.", + "throws": { + "InvalidStateError DOMException": "Thrown if the current Document is not active.", + "QuotaExceededError": "Thrown if the language detection operation exceeds the available inputQuota." + } + }, + "languagedetector.expectedinputlanguages": { + "url": "$MDN_URL$/web/api/languagedetector/expectedinputlanguages", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The expectedInputLanguages read-only property of the LanguageDetector interface returns the expected languages to be detected in the input text. Specifying expected input languages helps improve the accuracy of the language detection.\n

A LanguageDetector instance's expectedInputLanguages are set when creating it via a create() call." + }, + "languagedetector.inputquota": { + "url": "$MDN_URL$/web/api/languagedetector/inputquota", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The inputQuota read-only property of the LanguageDetector interface returns the input quota available to the browser for detecting languages." + }, + "languagedetector.measureinputusage": { + "url": "$MDN_URL$/web/api/languagedetector/measureinputusage", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The measureInputUsage() method of the LanguageDetector interface reports how much input quota would be used by a language detection operation for a given text input.", + "parameters": { + "input": "A string representing the input text you want an input usage measurement for.", + "options": "An object specifying configuration options for the measureInputUsage() operation. Possible values include:\n

\n
signal
\n
\n

An AbortSignal object instance, which allows the measureInputUsage() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A Promise that fulfills with a number specifying the inputQuota usage of the given input text.\n

This number is implementation-dependant; if it is less than the inputQuota, the string's language can be detected.", + "throws": { + "NotAllowedError DOMException": "Thrown if usage of the LanguageDetector API is blocked by a language-detector Permissions-Policy.", + "UnknownError DOMException": "Thrown if the measureInputUsage() call failed for any other reason, or a reason the user agent did not wish to disclose." + } + }, "largestcontentfulpaint": { "url": "$MDN_URL$/web/api/largestcontentfulpaint", "status": [ @@ -1046,8 +1181,9 @@ "SafariIOS": "13.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The MathMLElement interface represents any MathML element." }, @@ -1085,8 +1221,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The autofocus property of the MathMLElement interface contains a boolean value reflecting the autofocus HTML global attribute. It indicates whether the MathML element should be focused when the page loads or when the element becomes shown if the MathML element is inside a <dialog> or a popover." }, @@ -1106,8 +1243,9 @@ "SafariIOS": "13.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The blur() method of the MathMLElement interface removes keyboard focus from the current MathML element.", "returns": "None (undefined)." @@ -1128,8 +1266,9 @@ "SafariIOS": "13.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The dataset read-only property of the MathMLElement interface provides read/write access to custom data attributes (data-*) on elements. It exposes a map of strings (DOMStringMap) with an entry for each data-* attribute.\n

The dataset property itself can be read, but not directly written. Instead, all writes must be to the individual properties within the dataset, which in turn represent the data attributes." }, @@ -1149,8 +1288,9 @@ "SafariIOS": "13.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The focus() method of the MathMLElement interface sets focus on the specified MathML element, if it can be focused. The focused element is the element that will receive keyboard and similar events by default.\n

By default the browser will scroll the element into view after focusing it, and it may also provide visible indication of the focused element (typically by displaying a \"focus ring\" around the element). Parameter options are provided to disable the default scrolling and force visible indication on elements. If you call focus() from a mousedown event handler, you must call event.preventDefault() to keep the focus from leaving the MathMLElement.", "parameters": { @@ -1174,8 +1314,9 @@ "SafariIOS": "13.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The read-only style property of the MathMLElement returns the inline style of an element in the form of a live CSSStyleDeclaration object that contains a list of all styles properties for that element with values assigned only for the attributes that are defined in the element's inline style attribute.\n

Shorthand properties are expanded. If you set style=\"border-top: 1px solid black\", the longhand properties (border-top-color, border-top-style, and border-top-width) are set instead.\n

This property is read-only, meaning it is not possible to assign a CSSStyleDeclaration object to it. Nevertheless, it is possible to set an inline style by assigning a string directly to the style property. In this case the string is forwarded to CSSStyleDeclaration.cssText. Using style in this manner will completely overwrite all inline styles on the element.\n

Therefore, to add specific styles to an element without altering other style values, it is generally preferable to set individual properties on the CSSStyleDeclaration object. For example, you can write element.style.backgroundColor = \"red\".\n

A style declaration is reset by setting it to null or an empty string, e.g., elt.style.color = null.\n

\n

Note:\nCSS property names are converted to JavaScript identifier with these rules:\n

    \n
  • If the property is made of one word, it remains as it is: height stays as is (in lowercase).
  • \n
  • If the property is made of several words, separated by dashes, the dashes are removed and it is converted to camel case: background-attachment becomes backgroundAttachment.
  • \n
  • The property float, being a reserved JavaScript keyword, is converted to cssFloat.
  • \n
\n

The style property has the same priority in the CSS cascade as an inline style declaration set via the style attribute.\n

" }, @@ -1195,8 +1336,9 @@ "SafariIOS": "13.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-01-12" + "level": "HIGH", + "lowDate": "2023-01-12", + "highDate": "2025-07-12" }, "doc": "The tabIndex property of the MathMLElement interface represents the tab order of the current MathML element.\n

Tab order is as follows:\n

    \n
  1. Elements with a positive tabIndex. Elements that have identical tabIndex values should be navigated in the order they appear. Navigation proceeds from the lowest tabIndex to the highest tabIndex.
  2. \n
  3. Elements that do not support the tabIndex attribute or support it and assign tabIndex to 0, in the order they appear.
  4. \n
\n

Elements that are disabled do not participate in the tabbing order. Values don't need to be sequential, nor must they begin with any particular value. They may even be negative, though each browser trims very large values." }, @@ -1244,7 +1386,7 @@ }, "doc": "

Note: This feature is available in Web Workers.

\n

The decodingInfo() method of the MediaCapabilities interface returns a promise that fulfils with information about how well the user agent can decode/display media with a given configuration.\n

The resolved object contains three boolean properties supported, smooth, and powerefficient, which indicate whether decoding the media described would be supported, and if so, whether decoding would be smooth and power-efficient.\n

The method can also be used to test the user agent capabilities for decoding media encoded with a key system, but only when called in the main thread and in a secure context.\nIf the configuration passed in the configuration.keySystemConfiguration property is supported for decoding the data, the resolved promise also includes a MediaKeySystemAccess object that can be used to create a MediaKeys object to setup encrypted playback.\n

\n

Note:\nCalling decodingInfo() with this property may result in user-visible effects, such as asking for permission to access one or more system resources.\nAs such, this function should only be called when the application is ready to create and use a MediaKeys object with the provided configuration.\n

", "parameters": { - "configuration": "An object with a property type, either a video or audio property containing a configuration of the appropriate type, and optionally a keySystemConfiguration when decoding media encrypted with a key system:\n
\n
type
\n
\n

The type of media being tested. This takes one of three values:\n

\n
file
\n
\n

Represents a configuration that is meant to be used for a plain file playback.\n

\n
media-source
\n
\n

Represents a configuration that is meant to be used for playback of a MediaSource.\n

\n
webrtc
\n
\n

Represents a configuration that is meant to be received using RTCPeerConnection (not allowed when keySystemConfiguration is set).\n

\n
\n
\n
video
\n
\n

Configuration object for a video media source.\nThis has the following properties:\n

\n
contentType
\n
\n

String containing a valid video MIME type, and (optionally) a codecs parameter.\n

\n
width
\n
\n

The width of the video.\n

\n
height
\n
\n

The height of the video.\n

\n
bitrate
\n
\n

The number of bits used to encode one second of the video file.\n

\n
framerate
\n
\n

The number of frames making up one second of video playback.\n

\n
\n
\n
audio
\n
\n

Configuration object for an audio media source.\nThis has the following properties:\n

\n
contentType
\n
\n

String containing a valid audio MIME type, and (optionally) a codecs parameter.\n

\n
channels
\n
\n

The number of channels used by the audio track.\n

\n
bitrate
\n
\n

The number of bits used to encode one second of the audio file.\n

\n
samplerate
\n
\n

The number of audio samples making up one second of the audio file.\n

\n
\n
\n
keySystemConfiguration Optional
\n
\n

Object specifying the key system configuration for encrypted media.\n

\n

Note: Navigator.requestMediaKeySystemAccess() takes arrays some of the same data types in its supportedConfigurations argument.\n

\n

If specified, the type must be media-source or file (not webrtc).\nThis has the following properties:\n

\n
keySystem
\n
\n

A string identifying the media key system.\nFor example org.w3.clearkey or com.widevine.alpha.\n

\n
initDataType Optional
\n
\n

A string indicating the data type name the initialization data format, such as \"cenc\", \"keyids\" and \"webm\".\nAllowed names are defined in the Encrypted Media Extensions Initialization Data Format Registry.\n

\n
distinctiveIdentifier Optional
\n
\n

A string indicating whether the implementation may use \"distinctive identifiers\" (or distinctive permanent identifiers) for any operations associated with any object created from this configuration.\nThe allowed values are:\n

\n
required
\n
\n

The returned object must support this feature.\n

\n
optional
\n
\n

The returned object may support this feature.\nThis is the default\n

\n
not-allowed
\n
\n

The returned object must not support or use this feature.\n

\n
\n
\n
persistentState Optional
\n
\n

A string indicating whether the returned object must be able to persist session data or any other type of state.\nThe allowed values are:\n

\n
required
\n
\n

The returned object must support this feature.\n

\n
optional
\n
\n

The returned object may support this feature.\nThis is the default\n

\n
not-allowed
\n
\n

The returned object must not support or use this feature.\nOnly \"temporary\" sessions may be created when persistent state is not allowed.\n

\n
\n
\n
sessionTypes Optional
\n
\n

An array of strings indicating the session types that must be supported.\nPermitted values include:\n

\n
temporary
\n
\n

A session for which the license, key(s) and record of or data related to the session are not persisted.\nThe application does not need to manage such storage.\nImplementations must support this option, and it is the default.\n

\n
persistent-license
\n
\n

A session for which the license (and potentially other data related to the session) will be persisted.\nA record of the license and associated keys persists even if the license is destroyed, providing an attestation that the license and key(s) it contains are no longer usable by the client.\n

\n
\n
\n
audio Optional
\n
\n

The audio key system track configuration associated with the audio configuration above.\nIf set, then the audio configuration must also be set.\n

\n
encryptionScheme
\n
\n

The encryption scheme associated with the content type, such as cenc, cbcs, cbcs-1-9.\nThis value should be set by an application (it defaults to null, indicating that any encryption scheme may be used).\n

\n
robustness
\n
\n

The robustness level associated with the content type.\nThe empty string indicates that any ability to decrypt and decode the content type is acceptable.\n

\n
\n
\n
video Optional
\n
\n

The video key system track configuration associated with the video configuration above.\nIf set, then the video configuration must also be set.\n

\n
encryptionScheme
\n
\n

The encryption scheme associated with the content type, such as cenc, cbcs, cbcs-1-9.\nThis value should be set by an application (it defaults to null, indicating that any encryption scheme may be used).\n

\n
robustness
\n
\n

The robustness level associated with the content type.\nThe empty string indicates that any ability to decrypt and decode the content type is acceptable.\n

\n
\n
\n
\n
\n
" + "configuration": "An object with a property type, either a video or audio property containing a configuration of the appropriate type, and optionally a keySystemConfiguration when decoding media encrypted with a key system:\n
\n
type
\n
\n

The type of media being tested. This takes one of three values:\n

\n
file
\n
\n

Represents a configuration that is meant to be used for a plain file playback.\n

\n
media-source
\n
\n

Represents a configuration that is meant to be used for playback of a MediaSource.\n

\n
webrtc
\n
\n

Represents a configuration that is meant to be received using RTCPeerConnection (not allowed when keySystemConfiguration is set).\n

\n
\n
\n
video
\n
\n

Configuration object for a video media source.\nThis has the following properties:\n

\n
contentType
\n
\n

String containing a valid video MIME type, and (optionally) a codecs parameter.\n

\n
width
\n
\n

The width of the video.\n

\n
height
\n
\n

The height of the video.\n

\n
bitrate
\n
\n

The number of bits used to encode one second of the video file.\n

\n
framerate
\n
\n

The number of frames making up one second of video playback.\n

\n
\n
\n
audio
\n
\n

Configuration object for an audio media source.\nThis has the following properties:\n

\n
contentType
\n
\n

String containing a valid audio MIME type, and (optionally) a codecs parameter.\n

\n
channels
\n
\n

The number of channels used by the audio track.\n

\n
bitrate
\n
\n

The number of bits used to encode one second of the audio file.\n

\n
samplerate
\n
\n

The number of audio samples making up one second of the audio file.\n

\n
\n
\n
keySystemConfiguration Optional
\n
\n

Object specifying the key system configuration for encrypted media.\n

\n

Note:\nNavigator.requestMediaKeySystemAccess() takes arrays some of the same data types in its supportedConfigurations argument.\n

\n

If specified, the type must be media-source or file (not webrtc).\nThis has the following properties:\n

\n
keySystem
\n
\n

A string identifying the media key system.\nFor example org.w3.clearkey or com.widevine.alpha.\n

\n
initDataType Optional
\n
\n

A string indicating the data type name the initialization data format, such as \"cenc\", \"keyids\" and \"webm\".\nAllowed names are defined in the Encrypted Media Extensions Initialization Data Format Registry.\n

\n
distinctiveIdentifier Optional
\n
\n

A string indicating whether the implementation may use \"distinctive identifiers\" (or distinctive permanent identifiers) for any operations associated with any object created from this configuration.\nThe allowed values are:\n

\n
required
\n
\n

The returned object must support this feature.\n

\n
optional
\n
\n

The returned object may support this feature.\nThis is the default\n

\n
not-allowed
\n
\n

The returned object must not support or use this feature.\n

\n
\n
\n
persistentState Optional
\n
\n

A string indicating whether the returned object must be able to persist session data or any other type of state.\nThe allowed values are:\n

\n
required
\n
\n

The returned object must support this feature.\n

\n
optional
\n
\n

The returned object may support this feature.\nThis is the default\n

\n
not-allowed
\n
\n

The returned object must not support or use this feature.\nOnly \"temporary\" sessions may be created when persistent state is not allowed.\n

\n
\n
\n
sessionTypes Optional
\n
\n

An array of strings indicating the session types that must be supported.\nPermitted values include:\n

\n
temporary
\n
\n

A session for which the license, key(s) and record of or data related to the session are not persisted.\nThe application does not need to manage such storage.\nImplementations must support this option, and it is the default.\n

\n
persistent-license
\n
\n

A session for which the license (and potentially other data related to the session) will be persisted.\nA record of the license and associated keys persists even if the license is destroyed, providing an attestation that the license and key(s) it contains are no longer usable by the client.\n

\n
\n
\n
audio Optional
\n
\n

The audio key system track configuration associated with the audio configuration above.\nIf set, then the audio configuration must also be set.\n

\n
encryptionScheme
\n
\n

The encryption scheme associated with the content type, such as cenc, cbcs, cbcs-1-9.\nThis value should be set by an application (it defaults to null, indicating that any encryption scheme may be used).\n

\n
robustness
\n
\n

The robustness level associated with the content type.\nThe empty string indicates that any ability to decrypt and decode the content type is acceptable.\n

\n
\n
\n
video Optional
\n
\n

The video key system track configuration associated with the video configuration above.\nIf set, then the video configuration must also be set.\n

\n
encryptionScheme
\n
\n

The encryption scheme associated with the content type, such as cenc, cbcs, cbcs-1-9.\nThis value should be set by an application (it defaults to null, indicating that any encryption scheme may be used).\n

\n
robustness
\n
\n

The robustness level associated with the content type.\nThe empty string indicates that any ability to decrypt and decode the content type is acceptable.\n

\n
\n
\n
\n
\n
" }, "returns": "A Promise fulfilling with an object containing the following attributes:\n
\n
supported
\n
\n

true if the media content can be decoded at all. Otherwise, it is false.\n

\n
smooth
\n
\n

true if playback of the media can be played at the frame rate specified by the configuration without needing to drop frames. Otherwise it is false.\n

\n
powerEfficient
\n
\n

true if playback of the media will be power efficient. Otherwise, it is false.\n

\n
keySystemAccess
\n
\n

A MediaKeySystemAccess that can be used to create a MediaKeys object to setup encrypted playback, or null if decoding is not supported using the supplied configuration.\n

\n
\n

Browsers will report a supported media configuration as smooth and powerEfficient until stats on this device have been recorded.\nAll supported audio codecs report powerEfficient as true.", "throws": { @@ -1474,19 +1616,19 @@ "baseline": { "level": "NONE" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The getDisplayMedia() method of the MediaDevices interface prompts the user to select and\ngrant permission to capture the contents of a display or portion thereof (such as a window) as a MediaStream.\n

The resulting stream can then be\nrecorded using the MediaStream Recording API or transmitted as part of a WebRTC session.\n

See Using the Screen Capture API for more details and an example.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The getDisplayMedia() method of the MediaDevices interface prompts the user to select and grant permission to capture the contents of a display or portion thereof (such as a window) as a MediaStream.\n

The resulting stream can then be recorded using the MediaStream Recording API or transmitted as part of a WebRTC session.\n

See Using the Screen Capture API for more details and an example.", "parameters": { - "options": "An optional object specifying requirements for the returned MediaStream. The options for getDisplayMedia() work in the same as the constraints for the MediaDevices.getUserMedia() method, although in that case only audio and video can be specified. The list of possible option properties for getDisplayMedia() is as follows:\n

\n
video Optional
\n
\n

A boolean or a MediaTrackConstraints instance; the default value is true. If this option is omitted or set to true, the stream will contain a video track A value of true indicates that the returned MediaStream will contain a video track. Since getDisplayMedia() requires a video track, if this option is set to false the promise will reject with a TypeError.\n

\n
audio Optional
\n
\n

A boolean or a MediaTrackConstraints instance; the default value is false. A value of true indicates that the returned MediaStream will contain an audio track, if audio is supported and available for the display surface chosen by the user.\n

\n
controller Optional
\n
\n

A CaptureController object instance containing methods that can be used to further manipulate the capture session if included.\n

\n
monitorTypeSurfaces Optional
\n
\n

An enumerated value specifying whether the browser should offer entire screens in the screen capture options presented to the user alongside tab and window options. This option is intended to protect companies from leakage of private information through employee error when using video conferencing apps. Possible values are include, which hints that the browser should include screen options, and exclude, which hints that they should be excluded. A default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n

Note:\nYou cannot set monitorTypeSurfaces: \"exclude\" at the same time as displaySurface: \"monitor\" as the two settings are contradictory. Trying to do so will result in the getDisplayMedia() call failing with a TypeError.\n

\n
\n
preferCurrentTab Optional
\n
\n

A boolean; a value of true instructs the browser to offer the current tab as the most prominent capture source, i.e., as a separate \"This Tab\" option in the \"Choose what to share\" options presented to the user. This is useful as many app types generally just want to share the current tab. For example, a slide deck app might want to let the user stream the current tab containing the presentation to a virtual conference. A default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n
selfBrowserSurface Optional
\n
\n

An enumerated value specifying whether the browser should allow the user to select the current tab for capture. This helps to avoid the \"infinite hall of mirrors\" effect experienced when a video conferencing app inadvertently shares its own display. Possible values are include, which hints that the browser should include the current tab in the choices offered for capture, and exclude, which hints that it should be excluded. A default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n
surfaceSwitching Optional
\n
\n

An enumerated value specifying whether the browser should display a control to allow the user to dynamically switch the shared tab during screen-sharing. This is much more convenient than having to go through the whole sharing process again each time a user wants to switch the shared tab. Possible values are include, which hints that the browser should include the control, and exclude, which hints that it should not be shown. A default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n
systemAudio Optional
\n
\n

An enumerated value specifying whether the browser should include the system audio among the possible audio sources offered to the user. Possible values are include, which hints that the browser should include the system audio in the list of choices, and exclude, which hints that it should be excluded. A default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n
" + "options": "An optional object specifying requirements for the returned MediaStream.\nThe options for getDisplayMedia() work in the same as the constraints for the MediaDevices.getUserMedia() method, although in that case only audio and video can be specified.\nThe list of possible option properties for getDisplayMedia() is as follows:\n
\n
video Optional
\n
\n

A boolean or a MediaTrackConstraints instance; the default value is true.\nIf this option is omitted or set to true, the returned MediaStream will contain a video track.\nSince getDisplayMedia() requires a video track, if this option is set to false the promise will reject with a TypeError.\n

\n
audio Optional
\n
\n

A boolean or a MediaTrackConstraints instance; the default value is false.\nA value of true indicates that the returned MediaStream will contain an audio track, if audio is supported and available for the display surface chosen by the user.\n

\n
controller Optional
\n
\n

A CaptureController object instance containing methods that can be used to further manipulate the capture session if included.\n

\n
monitorTypeSurfaces Optional
\n
\n

An enumerated value specifying whether the browser should offer entire screens in the screen capture options presented to the user alongside tab and window options.\nThis option is intended to protect companies from leakage of private information through employee error when using video conferencing apps.\nPossible values are include, which hints that the browser should include screen options, and exclude, which hints that they should be excluded.\nA default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n

Note:\nYou cannot set monitorTypeSurfaces: \"exclude\" at the same time as displaySurface: \"monitor\" as the two settings are contradictory.\nTrying to do so will result in the getDisplayMedia() call failing with a TypeError.\n

\n
\n
preferCurrentTab Optional
\n
\n

A boolean; a value of true instructs the browser to offer the current tab as the most prominent capture source, i.e., as a separate \"This Tab\" option in the \"Choose what to share\" options presented to the user.\nThis is useful as many app types generally just want to share the current tab.\nFor example, a slide deck app might want to let the user stream the current tab containing the presentation to a virtual conference.\nA default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n
selfBrowserSurface Optional
\n
\n

An enumerated value specifying whether the browser should allow the user to select the current tab for capture.\nThis helps to avoid the \"infinite hall of mirrors\" effect experienced when a video conferencing app inadvertently shares its own display.\nPossible values are include, which hints that the browser should include the current tab in the choices offered for capture, and exclude, which hints that it should be excluded.\nA default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n
surfaceSwitching Optional
\n
\n

An enumerated value specifying whether the browser should display a control to allow the user to dynamically switch the shared tab during screen-sharing.\nThis is much more convenient than having to go through the whole sharing process again each time a user wants to switch the shared tab.\nPossible values are include, which hints that the browser should include the control, and exclude, which hints that it should not be shown.\nA default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n
systemAudio Optional
\n
\n

An enumerated value specifying whether the browser should include the system audio among the possible audio sources offered to the user.\nPossible values are include, which hints that the browser should include the system audio in the list of choices, and exclude, which hints that it should be excluded.\nA default value is not mandated by the spec; see the Browser compatibility section for browser-specific defaults.\n

\n
" }, - "returns": "A Promise that resolves to a MediaStream containing a\nvideo track whose contents come from a user-selected screen area, as well as an optional\naudio track.\n
\n

Note:\nBrowser support for audio tracks varies, both in terms of whether or not they're supported at all by the media recorder and in terms of the audio sources supported. Check the compatibility table for details for each browser.\n

", + "returns": "A Promise that resolves to a MediaStream containing a video track whose contents come from a user-selected screen area, as well as an optional audio track.\n
\n

Note:\nBrowser support for audio tracks varies, both in terms of whether or not they're supported at all by the media recorder and in terms of the audio sources supported.\nCheck the compatibility table for details for each browser.\n

", "throws": { "AbortError DOMException": "Thrown if an error or failure does not match any of the other exceptions listed here.", - "InvalidStateError DOMException": "Thrown if the call to getDisplayMedia() was not made from code running due to a\ntransient activation, such as an event handler. Or if the browser context is\nnot fully active or does not focused. Or if the controller options has been already used in creating\nanother MediaStream.", + "InvalidStateError DOMException": "Thrown if the call to getDisplayMedia() was not made from code running due to a transient activation, such as an event handler.\nOr if the browser context is not fully active or does not focused.\nOr if the controller options has been already used in creating another MediaStream.", "NotAllowedError DOMException": "Thrown if the permission to access a screen area was denied by the user, or the current browsing instance is not permitted access to screen sharing (for example by a Permissions Policy).", "NotFoundError DOMException": "Thrown if no sources of screen video are available for capture.", - "NotReadableError DOMException": "Thrown if the user selected a screen, window, tab, or another source of screen data, but a\nhardware or operating system level error or lockout occurred, preventing the sharing\nof the selected source.", - "OverconstrainedError DOMException": "Thrown if, after creating the stream, applying any specified constraints fails\nbecause no compatible stream could be generated.", - "TypeError": "Thrown if the specified options include values that are not permitted\nwhen calling getDisplayMedia(), for example a video property set to false, or if any specified MediaTrackConstraints are not permitted. min and exact values are not permitted in constraints used in getDisplayMedia() calls." + "NotReadableError DOMException": "Thrown if the user selected a screen, window, tab, or another source of screen data, but a hardware or operating system level error or lockout occurred, preventing the sharing of the selected source.", + "OverconstrainedError DOMException": "Thrown if, after creating the stream, applying any specified constraints fails because no compatible stream could be generated.", + "TypeError": "Thrown if the specified options include values that are not permitted when calling getDisplayMedia(), for example a video property set to false, or if any specified MediaTrackConstraints are not permitted.\nmin and exact values are not permitted in constraints used in getDisplayMedia() calls." } }, "mediadevices.getsupportedconstraints": { @@ -1534,18 +1676,18 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The getUserMedia() method of the MediaDevices interface prompts the user for permission to use a media input which produces a MediaStream with tracks containing the requested types of media.\n

That stream can include, for example, a video track (produced by either a hardware or virtual video source such as a camera, video recording device, screen sharing service, and so forth), an audio track (similarly, produced by a physical or virtual audio source like a microphone, A/D converter, or the like), and possibly other track types.\n

It returns a Promise that resolves to a MediaStream object.\nIf the user denies permission, or matching media is not available, then the promise is rejected with NotAllowedError or NotFoundError DOMException respectively.\n

\n

Note:\nIt's possible for the returned promise to neither resolve nor reject, as the user is not required to make a choice at all and may ignore the request.\n

", "parameters": { - "constraints": "An object specifying the types of media to\nrequest, along with any requirements for each type.\n

The constraints parameter is an object with two members: video and\naudio, describing the media types requested. Either or both must be\nspecified. If the browser cannot find all media tracks with the specified types that\nmeet the constraints given, then the returned promise is rejected with\nNotFoundError DOMException.\n

For both video and audio, its value is either a boolean or an object. The default value is false.\n

    \n
  • If true is specified for a media type, the resulting stream is required to have that type of track in it. If one cannot be included for any reason, the returned promise will reject.
  • \n
  • If false is specified for a media type, the resulting stream must not have that type of track, or the returned promise will reject. Because both video and audio default to false, if the constraints object contains neither property or if it's not present at all, the returned promise will always reject.
  • \n
  • If an object is specified for a media type, the object is read as a MediaTrackConstraints dictionary.
  • \n
" + "constraints": "An object specifying the types of media to request, along with any requirements for each type.\n

The constraints parameter is an object with two members: video and audio, describing the media types requested.\nEither or both must be specified.\nIf the browser cannot find all media tracks with the specified types that meet the constraints given, then the returned promise is rejected with NotFoundError DOMException.\n

For both video and audio, its value is either a boolean or an object.\nThe default value is false.\n

    \n
  • If true is specified for a media type, the resulting stream is required to have that type of track in it.\nIf one cannot be included for any reason, the returned promise will reject.
  • \n
  • If false is specified for a media type, the resulting stream must not have that type of track, or the returned promise will reject.\nBecause both video and audio default to false, if the constraints object contains neither property or if it's not present at all, the returned promise will always reject.
  • \n
  • If an object is specified for a media type, the object is read as a MediaTrackConstraints dictionary.
  • \n
" }, - "returns": "A Promise whose fulfillment handler receives a MediaStream\nobject when the requested media has successfully been obtained.", + "returns": "A Promise whose fulfillment handler receives a MediaStream object when the requested media has successfully been obtained.", "throws": { - "AbortError DOMException": "Although the user and operating system both granted access to the hardware device,\nand no hardware issues occurred that would cause a NotReadableError DOMException, throw if some\nproblem occurred which prevented the device from being used.", + "AbortError DOMException": "Although the user and operating system both granted access to the hardware device, and no hardware issues occurred that would cause a NotReadableError DOMException, throw if some problem occurred which prevented the device from being used.", "InvalidStateError DOMException": "Thrown if current document is not fully active.", - "NotAllowedError DOMException": "Thrown if one or more of the requested source devices cannot be used at this time. This will\nhappen if the browsing context is insecure (that is, the page was loaded using HTTP\nrather than HTTPS). It also happens if the user has specified that the current\nbrowsing instance is not permitted access to the device, the user has denied access\nfor the current session, or the user has denied all access to user media devices\nglobally. On browsers that support managing media permissions with Permissions Policy, this error is\nreturned if Permissions Policy is not configured to allow access to the input source(s).\n
\n

Note:\nOlder versions of the specification used SecurityError\nfor this instead; SecurityError has taken on a new meaning.\n

", + "NotAllowedError DOMException": "Thrown if one or more of the requested source devices cannot be used at this time.\nThis will happen if the browsing context is insecure (that is, the page was loaded using HTTP rather than HTTPS).\nIt also happens if the user has specified that the current browsing instance is not permitted access to the device, the user has denied access for the current session, or the user has denied all access to user media devices globally.\nOn browsers that support managing media permissions with Permissions Policy, this error is returned if Permissions Policy is not configured to allow access to the input source(s).\n
\n

Note:\nOlder versions of the specification used SecurityError for this instead; SecurityError has taken on a new meaning.\n

", "NotFoundError DOMException": "Thrown if no media tracks of the type specified were found that satisfy the given constraints.", - "NotReadableError DOMException": "Thrown if, although the user granted permission to use the matching devices, a hardware error\noccurred at the operating system, browser, or Web page level which prevented access to\nthe device.", - "OverconstrainedError DOMException": "Thrown if the specified constraints resulted in no candidate devices which met the criteria\nrequested. The error is an object of type OverconstrainedError, and has a\nconstraint property whose string value is the name of a constraint which\nwas impossible to meet, and a message property containing a\nhuman-readable string explaining the problem.\n
\n

Note:\nBecause this error can occur even when the user has not yet granted\npermission to use the underlying device, it can potentially be used as a\nfingerprinting surface.\n

", - "SecurityError DOMException": "Thrown if user media support is disabled on the Document on which\ngetUserMedia() was called. The mechanism by which user media support is\nenabled and disabled is left up to the individual user agent.", - "TypeError": "Thrown if the list of constraints specified is empty, or has all constraints set to\nfalse. This can also happen if you try to call\ngetUserMedia() in an insecure context, since\nnavigator.mediaDevices is undefined in an insecure\ncontext." + "NotReadableError DOMException": "Thrown if, although the user granted permission to use the matching devices, a hardware error occurred at the operating system, browser, or Web page level which prevented access to the device.", + "OverconstrainedError DOMException": "Thrown if the specified constraints resulted in no candidate devices which met the criteria requested.\nThe error is an object of type OverconstrainedError, and has a constraint property whose string value is the name of a constraint which was impossible to meet, and a message property containing a human-readable string explaining the problem.\n
\n

Note:\nBecause this error can occur even when the user has not yet granted permission to use the underlying device, it can potentially be used as a fingerprinting surface.\n

", + "SecurityError DOMException": "Thrown if user media support is disabled on the Document on which getUserMedia() was called.\nThe mechanism by which user media support is enabled and disabled is left up to the individual user agent.", + "TypeError": "Thrown if the list of constraints specified is empty, or has all constraints set to false.\nThis can also happen if you try to call getUserMedia() in an insecure context, since navigator.mediaDevices is undefined in an insecure context." } }, "mediadevices.selectaudiooutput": { @@ -1796,7 +1938,7 @@ "lowDate": "2021-09-20", "highDate": "2024-03-20" }, - "doc": "The read-only property MediaError.message returns a\nhuman-readable string offering specific\ndiagnostic details related to the error described by the MediaError object,\nor an empty string (\"\") if no diagnostic information can be determined or\nprovided." + "doc": "The read-only property MediaError.message returns a human-readable string offering specific diagnostic details related to the error described by the MediaError object, or an empty string (\"\") if no diagnostic information can be determined or provided." }, "mediakeymessageevent": { "url": "$MDN_URL$/web/api/mediakeymessageevent", @@ -2102,15 +2244,15 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The generateRequest() method of the MediaKeySession interface returns a Promise after generating a license request based on initialization data.", "parameters": { - "initDataType": "A string that specifies the format of the initData parameter. This must be one of the following values:\n

    \n
  • \"cenc\": The initData parameter uses the \"cenc\" format.
  • \n
  • \"keyids\": The initData parameter uses the \"keyids\" format.
  • \n
  • \"webm\": The initData parameter uses the \"webm\" format.
  • \n
", + "initDataType": "A string that specifies the format of the initData parameter. This must be one of the following values:\n
    \n
  • \"cenc\": The initData parameter uses the \"cenc\" format.
  • \n
  • \"keyids\": The initData parameter uses the \"keyids\" format.
  • \n
  • \"webm\": The initData parameter uses the \"webm\" format.
  • \n
", "initData": "Initialization data for the request, in the format specified by initDataType. It is an instance of any of the following types:\n" }, "returns": "A Promise.", "throws": { "TypeError": "Raised if initDataType is an empty string, if initData is an empty array, or if the provided initData is not valid according to the specified initDataType.", - "DOMException NotSupportedError": "Raised if the Key System implementation associated with the MediaKeySession object does not support the provided initDataType, if the sanitized initialization data is empty, or if the sanitized initialization data is not supported by the content decryption module (CDM).", - "DOMException QuotaExceededError": "Raised if the operation fails due to a lack of resources on the user agent or CDM.", - "DOMException InvalidStateError": "Raised if the MediaKeySession object is in a closing or closed state, or if it has already been initialized." + "NotSupportedError DOMException": "Raised if the Key System implementation associated with the MediaKeySession object does not support the provided initDataType, if the sanitized initialization data is empty, or if the sanitized initialization data is not supported by the content decryption module (CDM).", + "QuotaExceededError": "Raised if the operation fails due to a lack of resources on the user agent or CDM.", + "InvalidStateError DOMException": "Raised if the MediaKeySession object is in a closing or closed state, or if it has already been initialized." } }, "mediakeysession.keystatuses": { @@ -2534,7 +2676,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The MediaList interface represents the media queries of a stylesheet, e.g., those set using a <link> element's media attribute.\n
\n

Note: MediaList is a live list; updating the list using properties or methods listed below will immediately update the behavior of the document.\n

" + "doc": "The MediaList interface represents the media queries of a stylesheet, e.g., those set using a <link> element's media attribute.\n
\n

Note:\nMediaList is a live list; updating the list using properties or methods listed below will immediately update the behavior of the document.\n

" }, "medialist.appendmedium": { "url": "$MDN_URL$/web/api/medialist/appendmedium", @@ -3376,7 +3518,7 @@ "Safari": "14", "SafariIOS": "14" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MediaRecorderErrorEvent interface represents errors returned by the MediaStream Recording API. It is an Event object that encapsulates a reference to a DOMException describing the error that occurred." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MediaRecorderErrorEvent interface represents errors returned by the MediaStream Recording API. It is an Event object that encapsulates a reference to a DOMException describing the error that occurred." }, "mediarecordererrorevent.error": { "url": "$MDN_URL$/web/api/mediarecordererrorevent/error", @@ -3389,7 +3531,7 @@ "Safari": "14", "SafariIOS": "14" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The error read-only property of the\nMediaRecorderErrorEvent interface is a\nDOMException object providing details about the exception that was thrown\nby a MediaRecorder instance.\n

When a MediaRecorderErrorEvent occurs, you can determine to some extent\nwhat went wrong by examining the error property within the\nMediaRecorderErrorEvent received by the MediaRecorder's\nerror event handler, onerror." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The error read-only property of the\nMediaRecorderErrorEvent interface is a\nDOMException object providing details about the exception that was thrown\nby a MediaRecorder instance.\n

When a MediaRecorderErrorEvent occurs, you can determine to some extent\nwhat went wrong by examining the error property within the\nMediaRecorderErrorEvent received by the MediaRecorder's\nerror event handler, onerror." }, "mediarecordererrorevent.mediarecordererrorevent": { "url": "$MDN_URL$/web/api/mediarecordererrorevent/mediarecordererrorevent", @@ -3402,7 +3544,7 @@ "Safari": "14", "SafariIOS": "14" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The\nMediaRecorderErrorEvent() constructor creates a new MediaRecorderErrorEvent object\nthat represents an error that occurred during the recording of media\nby the MediaStream Recording API.\n

\n

Note:\nIn general, you won't create these yourself; they are delivered to your\nimplementation of onerror when errors occur while\nrecording media.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The\nMediaRecorderErrorEvent() constructor creates a new MediaRecorderErrorEvent object\nthat represents an error that occurred during the recording of media\nby the MediaStream Recording API.\n

\n

Note:\nIn general, you won't create these yourself; they are delivered to your\nimplementation of onerror when errors occur while\nrecording media.\n

", "parameters": { "type": "A string with the name of the event.\nIt is case-sensitive and browsers always set it to error.", "options": "An object that, in addition of the properties defined in Event(), can have the following properties:\n
\n
error
\n
\n

A DOMException that describes the error that occurred. This\nobject's name property should indicate the\nname of the error that occurred. The other fields may or may not be present.\n

\n
" @@ -3485,7 +3627,7 @@ }, "doc": "The setActionHandler() method of the MediaSession interface sets a handler for a media session action.\nThese actions let a web app receive notifications when the user engages a device's built-in physical or onscreen media controls, such as play, stop, or seek buttons.", "parameters": { - "type": "A string representing an action type to listen for. It will be one\nof the following:\n
\n
hangup
\n
\n

End a call.\n

\n
nextslide
\n
\n

Moves to the next slide, when presenting a slide deck.\n

\n
nexttrack
\n
\n

Advances playback to the next track.\n

\n
pause
\n
\n

Pauses playback of the media.\n

\n
play
\n
\n

Begins (or resumes) playback of the media.\n

\n
previousslide
\n
\n

Moves to the previous slide, when presenting a slide deck.\n

\n
previoustrack
\n
\n

Moves back to the previous track.\n

\n
seekbackward
\n
\n

Seeks backward through the media from the current position.\nThe seekOffset property passed to the callback specifies the amount of time to seek backward.\n

\n
seekforward
\n
\n

Seeks forward from the current position through the media.\nThe seekOffset property passed to the callback specifies the amount of time to seek forward.\n

\n
seekto
\n
\n

Moves the playback position to the specified time within the media.\nThe time to which to seek is specified in the seekTime property passed to the callback.\nIf you intend to perform multiple seekto operations in rapid succession, you can also specify the fastSeek property passed to the callback with a value of true.\nThis lets the browser know it can take steps to optimize repeated operations, and is likely to result in improved performance.\n

\n
skipad
\n
\n

Skips past the currently playing advertisement or commercial.\nThis action may or may not be available, depending on the platform and user agent, or may be disabled due to subscription level or other circumstances.\n

\n
stop
\n
\n

Halts playback entirely.\n

\n
togglecamera
\n
\n

Turn the user's active camera on or off.\n

\n
togglemicrophone
\n
\n

Mute or unmute the user's microphone.\n

\n
", + "type": "A string representing an action type to listen for. It will be one\nof the following:\n
\n
hangup
\n
\n

End a call.\n

\n
nextslide
\n
\n

Moves to the next slide, when presenting a slide deck.\n

\n
nexttrack
\n
\n

Advances playback to the next track.\n

\n
pause
\n
\n

Pauses playback of the media.\n

\n
play
\n
\n

Begins (or resumes) playback of the media.\n

\n
previousslide
\n
\n

Moves to the previous slide, when presenting a slide deck.\n

\n
previoustrack
\n
\n

Moves back to the previous track.\n

\n
seekbackward
\n
\n

Seeks backward through the media from the current position.\nThe seekOffset property passed to the callback specifies the amount of time to seek backward.\n

\n
seekforward
\n
\n

Seeks forward from the current position through the media.\nThe seekOffset property passed to the callback specifies the amount of time to seek forward.\n

\n
seekto
\n
\n

Moves the playback position to the specified time within the media.\nThe time to which to seek is specified in the seekTime property passed to the callback.\nIf you intend to perform multiple seekto operations in rapid succession, you can also specify the fastSeek property passed to the callback with a value of true.\nThis lets the browser know it can take steps to optimize repeated operations, and is likely to result in improved performance.\n

\n
skipad
\n
\n

Skips past the currently playing advertisement or commercial.\nThis action may or may not be available, depending on the platform and user agent, or may be disabled due to subscription level or other circumstances.\n

\n
stop
\n
\n

Halts playback entirely.\n

\n
togglecamera
\n
\n

Turn the user's active camera on or off.\n

\n
togglemicrophone
\n
\n

Mute or unmute the user's microphone.\n

\n
togglescreenshare
\n
\n

Turn the user's active screenshare on or off.\n

\n
", "callback": "A function to call when the specified action type is invoked. The callback should not return a value. The callback receives a dictionary containing the following properties:\n
\n
action
\n
\n

A string representing the action type. This property allows a single callback to handle multiple action types.\n

\n
fastSeek Optional
\n
\n

A seekto action may optionally include this property, which is a Boolean value indicating whether or not to perform a \"fast\" seek.\nA \"fast\" seek is a seek being performed in a rapid sequence, such as when fast-forwarding or reversing through the media, rapidly skipping through it.\nThis property can be used to indicate that you should use the shortest possible method to seek the media.\nfastSeek is not included on the final action in the seek sequence in this situation.\n

\n
seekOffset Optional
\n
\n

If the action is either seekforward or seekbackward and this property is present, it is a floating point value which indicates the number of seconds to move the play position forward or backward.\nIf this property isn't present, those actions should choose a reasonable default distance to skip forward or backward (such as 7 or 10 seconds).\n

\n
seekTime Optional
\n
\n

If the action is seekto, this property must be present and must be a floating-point value indicating the absolute time within the media to move the playback position to, where 0 indicates the beginning of the media. This property is not present for other action types.\n

\n
" }, "returns": "None (undefined)." @@ -3560,6 +3702,25 @@ "TypeError": "This error can occur in an array of circumstances:\n
    \n
  • The specified object's duration is missing, negative, or null.
  • \n
  • Its position is either negative or greater than duration.
  • \n
  • Its playbackRate is zero.
  • \n
" } }, + "mediasession.setscreenshareactive": { + "url": "$MDN_URL$/web/api/mediasession/setscreenshareactive", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Safari": "18.4", + "SafariIOS": "18.4" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The setScreenshareActive() method of the MediaSession interface is used to indicate to the user agent whether the user's screenshare is considered to be active.\n

Call this method on the navigator object's mediaSession object.\n

Note that the status of the screenshare is not tracked in the MediaSession itself, but must be tracked separately.", + "parameters": { + "active": "A boolean indicating whether the screenshare is considered active or not." + }, + "returns": "None (undefined)." + }, "mediasource": { "url": "$MDN_URL$/web/api/mediasource", "status": [ @@ -3624,7 +3785,7 @@ "InvalidAccessError DOMException": "Thrown if the value specified for mimeType is an empty string rather than a valid\nMIME type.", "InvalidStateError DOMException": "Thrown if the MediaSource is not in the \"open\"\nreadyState.", "NotSupportedError DOMException": "Thrown if the specified mimeType isn't supported by the user agent, or is not compatible with the MIME types of other SourceBuffer objects that are already included in the media source's sourceBuffers list.", - "QuotaExceededError DOMException": "Thrown if the user agent can't handle any more SourceBuffer objects, or creating\na new SourceBuffer using the given mimeType would result in\nan unsupported configuration of SourceBuffers." + "QuotaExceededError": "Thrown if the user agent can't handle any more SourceBuffer objects, or creating\na new SourceBuffer using the given mimeType would result in\nan unsupported configuration of SourceBuffers." } }, "mediasource.canconstructindedicatedworker": { @@ -3728,7 +3889,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is only available in Dedicated Web Workers.

\n

The handle read-only property of the MediaSource interface returns a MediaSourceHandle object, a proxy for the MediaSource that can be transferred from a dedicated worker back to the main thread and attached to a media element via its HTMLMediaElement.srcObject property.\n

\n

Note: handle is only visible on MediaSource instances inside dedicated workers.\n

\n

Each MediaSource object created inside a dedicated worker has its own distinct MediaSourceHandle. The handle getter will always return the MediaSourceHandle instance specific to the associated dedicated worker MediaSource instance. If the handle has already been transferred to the main thread using postMessage(), the handle instance in the worker is technically detached and can't be transferred again." + "doc": "

Note: This feature is only available in Dedicated Web Workers.

\n

The handle read-only property of the MediaSource interface returns a MediaSourceHandle object, a proxy for the MediaSource that can be transferred from a dedicated worker back to the main thread and attached to a media element via its HTMLMediaElement.srcObject property.\n

\n

Note:\nhandle is only visible on MediaSource instances inside dedicated workers.\n

\n

Each MediaSource object created inside a dedicated worker has its own distinct MediaSourceHandle. The handle getter will always return the MediaSourceHandle instance specific to the associated dedicated worker MediaSource instance. If the handle has already been transferred to the main thread using postMessage(), the handle instance in the worker is technically detached and can't be transferred again." }, "mediasource.istypesupported": { "url": "$MDN_URL$/web/api/mediasource/istypesupported_static", @@ -3991,7 +4152,7 @@ "lowDate": "2017-09-19", "highDate": "2020-03-19" }, - "doc": "The getAudioTracks() method of the\nMediaStream interface returns a sequence that represents all the\nMediaStreamTrack objects in this\nstream's track set where MediaStreamTrack.kind\nis audio.", + "doc": "The getAudioTracks() method of the\nMediaStream interface returns a sequence that represents all the\nMediaStreamTrack objects in this\nstream's track set where MediaStreamTrack.kind\nis audio.", "returns": "An array of MediaStreamTrack objects, one for each audio track contained\nin the stream. Audio tracks are those tracks whose kind\nproperty is audio. The array is empty if the stream contains no\naudio tracks.\n

\n

Note:\nThe order of the returned tracks is not defined by the\nspecification and may, in fact, change from one call to getAudioTracks()\nto the next.\n

\n

Early versions of this API included a special AudioStreamTrack interface\nwhich was used as the type for each entry in the list of audio streams; however, this\nhas since been merged into the main MediaStreamTrack interface." }, "mediastream.gettrackbyid": { @@ -4040,7 +4201,7 @@ "lowDate": "2017-09-19", "highDate": "2020-03-19" }, - "doc": "The getTracks() method of the\nMediaStream interface returns a sequence that represents all the\nMediaStreamTrack objects in this\nstream's track set,\nregardless of MediaStreamTrack.kind.", + "doc": "The getTracks() method of the\nMediaStream interface returns a sequence that represents all the\nMediaStreamTrack objects in this\nstream's track set,\nregardless of MediaStreamTrack.kind.", "returns": "An array of MediaStreamTrack objects." }, "mediastream.getvideotracks": { @@ -4298,7 +4459,7 @@ "FirefoxAndroid": "24", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MediaStreamEvent interface represents events that occurs in relation to a MediaStream. Two events of this type can be thrown: addstream and removestream." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MediaStreamEvent interface represents events that occurs in relation to a MediaStream. Two events of this type can be thrown: addstream and removestream." }, "mediastreamevent.mediastreamevent": { "url": "$MDN_URL$/web/api/mediastreamevent/mediastreamevent", @@ -4313,7 +4474,7 @@ "FirefoxAndroid": "24", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MediaStreamEvent() constructor creates a new MediaStreamEvent object.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MediaStreamEvent() constructor creates a new MediaStreamEvent object.", "returns": "A new MediaStreamEvent object." }, "mediastreamevent.stream": { @@ -4329,7 +4490,7 @@ "FirefoxAndroid": "24", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The read-only property MediaStreamEvent.stream returns\nthe MediaStream associated with the event." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The read-only property MediaStreamEvent.stream returns\nthe MediaStream associated with the event." }, "mediastreamtrack": { "url": "$MDN_URL$/web/api/mediastreamtrack", @@ -4459,7 +4620,7 @@ "lowDate": "2024-10-29" }, "doc": "The getCapabilities() method of\nthe MediaStreamTrack interface returns an object detailing the accepted values or value range for each constrainable property of the associated MediaStreamTrack, based upon the platform and user agent.\n

Once you know what the browser's capabilities are, your script can use\napplyConstraints() to ask for the\ntrack to be configured to match ideal or acceptable settings. See Capabilities, constraints, and settings for details of how to work with constrainable properties.", - "returns": "A MediaTrackCapabilities object which specifies the accepted value or range of values supported for each of the user agent's constrainable properties. This can contain the following members:\n

\n
deviceId
\n
\n

A ConstrainDOMString object containing the device ID.\n

\n
groupId
\n
\n

A ConstrainDOMString object containing a group ID.\n

\n
autoGainControl
\n
\n

A ConstrainBoolean object reporting if the source can automatically control the input signal's gain.\nIf the feature can be controlled by a script the source will report both true and false as possible values.\n

\n
channelCount
\n
\n

A ConstrainULong containing the channel count or channel count range.\n

\n
echoCancellation
\n
\n

A ConstrainBoolean object reporting if the source can provide echo cancellation.\nIf the feature can be controlled by a script the source will report both true and false as possible values.\n

\n
latency
\n
\n

A ConstrainDouble containing the latency or latency range.\n

\n
noiseSuppression
\n
\n

A ConstrainBoolean object reporting if the source can provide noise suppression.\nIf the feature can be controlled by a script the source will report both true and false as possible values.\n

\n
sampleRate
\n
\n

A ConstrainULong containing the sample rate or sample rate range.\n

\n
sampleSize
\n
\n

A ConstrainULong containing the sample size or sample size range.\n

\n
aspectRatio
\n
\n

A ConstrainDouble containing the video aspect ratio (width in pixels divided by height in pixels) or aspect ratio range.\n

\n
facingMode
\n
\n

A ConstrainDOMString object containing the camera facing mode. A camera may report multiple facings, for example \"left\" and \"user\".\n

\n
frameRate
\n
\n

A ConstrainDouble containing the frame rate or range of frame rates which are acceptable.\n

\n
height
\n
\n

A ConstrainULong containing the video height or height range, in pixels.\n

\n
width
\n
\n

A ConstrainULong containing the video width or width range, in pixels.\n

\n
resizeMode
\n
\n

A ConstrainDOMString object containing the mode or an array of modes the UA can use to derive the resolution of the video track.\n

\n
" + "returns": "A MediaTrackCapabilities object which specifies the accepted value or range of values supported for each of the user agent's constrainable properties. Note that not every property appears on every track, the available members depend on whether the track is audio or video. This can contain the following members:\n

For both audio and video tracks:\n

\n
deviceId
\n
\n

A string that identifies the capture device.\n

\n
groupId
\n
\n

A string that groups related devices.\n

\n
\n
\n

Note:\nFor historical reasons, these two properties are strings instead of an array of strings like all other capabilities.\n

\n

For audio tracks only:\n

\n
autoGainControl
\n
\n

An array of booleans. If the source cannot do auto gain control, a single false is reported. If auto gain control cannot be turned off, a single true is reported. If the script can control the feature, the source reports both true and false.\n

\n
channelCount
\n
\n

A range object, containing a min and a max property (both containing a non-negative integer), describing the supported number of channels.\n

\n
echoCancellation
\n
\n

An array of booleans or strings indicating if echo cancellation is supported. If the source cannot do echo cancellation, a single false is reported. If the source can do echo cancellation, then the array starts with true. If the script can control the feature, then the array starts with true, false. Additionally, if the source allows controlling which audio sources will be cancelled, the array also includes the values \"all\" and/or \"remote-only\".\n

\n
latency
\n
\n

A range object, containing a min and a max property (both containing a number), describing the expected amount of latency in seconds from when the sound starts to when data becomes available.\n

\n
noiseSuppression
\n
\n

An array of booleans indicating whether noise suppression is available. If the source cannot do noise suppression, a single false is reported. If noise suppression cannot be turned off, a single true is reported. If the script can control the feature, the source reports both true and false.\n

\n
sampleRate
\n
\n

A range object, containing a min and a max property (both containing a non-negative integer), describing the supported audio sample rate range.\n

\n
sampleSize
\n
\n

A range object, containing a min and a max property (both containing a non-negative integer), describing the supported linear sample size range in bits.\n

\n
\n

For video tracks only:\n

\n
aspectRatio
\n
\n

A range object, containing a min and a max property (both containing a number), describing the supported video aspect ratio range (width divided by height).\n

\n
facingMode
\n
\n

An array of strings indicating the camera orientation. See MediaTrackConstraints.facingMode for supported values. On some devices, more than one facing mode may be reported; for example, in a high-end telepresence solution with several cameras facing the user, a camera to the left of the user can report both \"left\" and \"user\".\n

\n
frameRate
\n
\n

A range object, containing a min and a max property (both containing a number), describing the supported frames per second range.\n

\n
height
\n
\n

A range object, containing a min and a max property (both containing a non-negative integer), describing the supported height range in pixels.\n

\n
width
\n
\n

A range object, containing a min and a max property (both containing a non-negative integer), describing the supported width range in pixels.\n

\n
resizeMode
\n
\n

An array of strings that indicates how the user agent may derive the desired resolution from the camera resolution.See MediaTrackConstraints.resizeMode for supported values. The value \"none\" is always included.\n

\n
\n

For more information about what each property means, see MediaTrackConstraints." }, "mediastreamtrack.getconstraints": { "url": "$MDN_URL$/web/api/mediastreamtrack/getconstraints", @@ -4755,7 +4916,7 @@ "Edge": "94", "Opera": "80" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Note:\nConsider using VideoTrackGenerator instead.\n

\n

The MediaStreamTrackGenerator interface of the Insertable Streams for MediaStreamTrack API creates a WritableStream that acts as a MediaStreamTrack source.\nThe object consumes a stream of media frames as input, which can be audio or video frames." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nConsider using VideoTrackGenerator instead.\n

\n

The MediaStreamTrackGenerator interface of the Insertable Streams for MediaStreamTrack API creates a WritableStream that acts as a MediaStreamTrack source.\nThe object consumes a stream of media frames as input, which can be audio or video frames." }, "mediastreamtrackgenerator.mediastreamtrackgenerator": { "url": "$MDN_URL$/web/api/mediastreamtrackgenerator/mediastreamtrackgenerator", @@ -4768,7 +4929,7 @@ "Edge": "94", "Opera": "80" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MediaStreamTrackGenerator() constructor creates a new MediaStreamTrackGenerator object which consumes a stream of media frames and exposes a MediaStreamTrack.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MediaStreamTrackGenerator() constructor creates a new MediaStreamTrackGenerator object which consumes a stream of media frames and exposes a MediaStreamTrack.", "parameters": { "options": "An object containing the property kind, which is one of the following strings:\n

\n
\"audio\"
\n
\n

Specifies that the stream accepts AudioTrack objects.\n

\n
\"video\"
\n
\n

Specifies that the stream accepts VideoTrack objects.\n

\n
" }, @@ -4787,7 +4948,7 @@ "Edge": "94", "Opera": "80" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The writable property of the MediaStreamTrackGenerator interface returns a WritableStream. This allows the writing of media frames to the MediaStreamTrackGenerator. The frames will be audio or video. The type is dictated by the kind of MediaStreamTrackGenerator that was created." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The writable property of the MediaStreamTrackGenerator interface returns a WritableStream. This allows the writing of media frames to the MediaStreamTrackGenerator. The frames will be audio or video. The type is dictated by the kind of MediaStreamTrackGenerator that was created." }, "mediastreamtrackprocessor": { "url": "$MDN_URL$/web/api/mediastreamtrackprocessor", @@ -4801,7 +4962,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is only available in Dedicated Web Workers.

\n
\n

Warning:\nBrowsers differ on which global context they expose this interface in (e.g., only window in some browsers and only dedicated worker in others), making them incompatible. Keep this in mind when comparing support.\n

\n

The MediaStreamTrackProcessor interface of the Insertable Streams for MediaStreamTrack API consumes a video MediaStreamTrack object's source and generates a stream of VideoFrame objects." + "doc": "

Note: This feature is only available in Dedicated Web Workers.

\n
\n

Warning:\nBrowsers differ on which global context they expose this interface in (e.g., only window in some browsers and only dedicated worker in others), making them incompatible. Keep this in mind when comparing support.\n

\n

The MediaStreamTrackProcessor interface of the Insertable Streams for MediaStreamTrack API consumes a video MediaStreamTrack object's source and generates a stream of VideoFrame objects." }, "mediastreamtrackprocessor.mediastreamtrackprocessor": { "url": "$MDN_URL$/web/api/mediastreamtrackprocessor/mediastreamtrackprocessor", @@ -4809,17 +4970,13 @@ "StandardTrack" ], "compatibility": { - "Chrome": "94", - "ChromeAndroid": "94", - "Edge": "94", - "Opera": "80", "Safari": "18", "SafariIOS": "18" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The MediaStreamTrackProcessor() constructor creates a new MediaStreamTrackProcessor object which consumes a video MediaStreamTrack object's source and generates a stream of VideoFrames.", + "doc": "The MediaStreamTrackProcessor() constructor creates a new MediaStreamTrackProcessor object which consumes a video MediaStreamTrack object's source and generates a stream of VideoFrames.", "parameters": { "options": "An object with the following properties:\n

\n
track
\n
\n

A MediaStreamTrack.\n

\n
maxBufferSize Optional
\n
\n

An integer specifying the maximum number of media frames to be buffered.\n

\n
" } @@ -4840,11 +4997,11 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The readable property of the MediaStreamTrackProcessor interface returns a ReadableStream of VideoFrames." + "doc": "The readable property of the MediaStreamTrackProcessor interface returns a ReadableStream of VideoFrames." }, "mediatrackconstraints": { "url": "$MDN_URL$/web/api/mediatrackconstraints", - "doc": "The MediaTrackConstraints dictionary is used to describe a set of capabilities and the value or values each can take on. A constraints dictionary is passed into applyConstraints() to allow a script to establish a set of exact (required) values or ranges and/or preferred values or ranges of values for the track, and the most recently-requested set of custom constraints can be retrieved by calling getConstraints()." + "doc": "The MediaTrackConstraints dictionary is used to describe a set of media capabilities and the value or values each can take on.\n

A constraints dictionary is passed into the applyConstraints() method of the MediaStreamTrack interface to allow a script to establish a set of exact (required) values or ranges and/or preferred values or ranges of values for the track.\n

The most recently-requested set of custom constraints can be retrieved by calling getConstraints().\n

Objects of this type may also be passed to:\n

" }, "mediatrackconstraints.aspectratio": { "url": "$MDN_URL$/web/api/mediatrackconstraints/aspectratio", @@ -4890,7 +5047,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The MediaTrackConstraints dictionary's\nechoCancellation property is a\nConstrainBoolean describing the requested or mandatory constraints placed\nupon the value of the echoCancellation constrainable property.\n

If needed, you can determine whether or not this constraint is supported by checking\nthe value of MediaTrackSupportedConstraints.echoCancellation as returned\nby a call to MediaDevices.getSupportedConstraints(). However, typically\nthis is unnecessary since browsers will ignore any constraints they're unfamiliar with.\n

Because RTP doesn't include this information, tracks associated with a\nWebRTC RTCPeerConnection\nwill never include this property." + "doc": "The MediaTrackConstraints dictionary's\nechoCancellation property is a\nConstrainBooleanOrDOMString describing the requested or mandatory constraints placed\nupon the value of the echoCancellation constrainable property.\n

If needed, you can determine whether or not this constraint is supported by checking\nthe value of MediaTrackSupportedConstraints.echoCancellation as returned\nby a call to MediaDevices.getSupportedConstraints(). However, typically\nthis is unnecessary since browsers will ignore any constraints they're unfamiliar with." }, "mediatrackconstraints.facingmode": { "url": "$MDN_URL$/web/api/mediatrackconstraints/facingmode", @@ -4972,7 +5129,7 @@ }, "mediatrackconstraints.volume": { "url": "$MDN_URL$/web/api/mediatrackconstraints/volume", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MediaTrackConstraints dictionary's\nvolume property is a ConstrainDouble\ndescribing the requested or mandatory constraints placed upon the value of the\nvolume constrainable property.\n

If needed, you can determine whether or not this constraint is supported by checking\nthe value of MediaTrackSupportedConstraints.volume as returned by a call\nto MediaDevices.getSupportedConstraints(). However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MediaTrackConstraints dictionary's\nvolume property is a ConstrainDouble\ndescribing the requested or mandatory constraints placed upon the value of the\nvolume constrainable property.\n

If needed, you can determine whether or not this constraint is supported by checking\nthe value of MediaTrackSupportedConstraints.volume as returned by a call\nto MediaDevices.getSupportedConstraints(). However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with." }, "mediatrackconstraints.width": { "url": "$MDN_URL$/web/api/mediatrackconstraints/width", @@ -5108,6 +5265,10 @@ }, "doc": "The MediaTrackSettings dictionary's\nsampleSize property is an integer indicating the linear\nsample size (in bits per sample) the MediaStreamTrack is currently\nconfigured for. This lets you determine what value was selected to comply with your\nspecified constraints for this property's value as described in the\nMediaTrackConstraints.sampleSize property you provided when calling\neither getUserMedia() or\nMediaStreamTrack.applyConstraints().\n

If needed, you can determine whether or not this constraint is supported by checking\nthe value of MediaTrackSupportedConstraints.sampleSize as returned by a\ncall to MediaDevices.getSupportedConstraints(). However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with." }, + "mediatracksettings.screenpixelratio": { + "url": "$MDN_URL$/web/api/mediatracksettings/screenpixelratio", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The MediaTrackSettings dictionary's screenPixelRatio property is a number representing the ratio of the physical size of a pixel on the captured display surface (displayed at its physical resolution) to the logical size of a CSS pixel on the capturing screen (displayed at its logical resolution). It cannot be used as a constraint or capability.\n

This property allows applications using the Screen Capture API to save resources by sending the video of a screen capture at its logical, or device independent, resolution." + }, "mediatracksettings.suppresslocalaudioplayback": { "url": "$MDN_URL$/web/api/mediatracksettings/suppresslocalaudioplayback", "baseline": { @@ -5117,7 +5278,7 @@ }, "mediatracksettings.volume": { "url": "$MDN_URL$/web/api/mediatracksettings/volume", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MediaTrackSettings dictionary's volume\nproperty is a double-precision floating-point number indicating the volume of the\nMediaStreamTrack as currently configured, as a value from 0.0 (silence)\nto 1.0 (maximum supported volume for the device). This lets you determine what value was\nselected to comply with your specified constraints for this property's value as\ndescribed in the MediaTrackConstraints.volume property you provided when\ncalling either getUserMedia() or\nMediaStreamTrack.applyConstraints().\n

If needed, you can determine whether or not this constraint is supported by checking\nthe value of MediaTrackSupportedConstraints.volume as returned by a call\nto MediaDevices.getSupportedConstraints(). However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MediaTrackSettings dictionary's volume\nproperty is a double-precision floating-point number indicating the volume of the\nMediaStreamTrack as currently configured, as a value from 0.0 (silence)\nto 1.0 (maximum supported volume for the device). This lets you determine what value was\nselected to comply with your specified constraints for this property's value as\ndescribed in the MediaTrackConstraints.volume property you provided when\ncalling either getUserMedia() or\nMediaStreamTrack.applyConstraints().\n

If needed, you can determine whether or not this constraint is supported by checking\nthe value of MediaTrackSupportedConstraints.volume as returned by a call\nto MediaDevices.getSupportedConstraints(). However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with." }, "mediatracksettings.width": { "url": "$MDN_URL$/web/api/mediatracksettings/width", @@ -5258,7 +5419,7 @@ }, "mediatracksupportedconstraints.volume": { "url": "$MDN_URL$/web/api/mediatracksupportedconstraints/volume", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MediaTrackSupportedConstraints dictionary's\nvolume property is a read-only Boolean value which is\npresent (and set to true) in the object returned by\nMediaDevices.getSupportedConstraints() if and only if the\nuser agent supports the volume constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\nfalse.\n

You can access the supported constraints dictionary by calling\nnavigator.mediaDevices.getSupportedConstraints()." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MediaTrackSupportedConstraints dictionary's\nvolume property is a read-only Boolean value which is\npresent (and set to true) in the object returned by\nMediaDevices.getSupportedConstraints() if and only if the\nuser agent supports the volume constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\nfalse.\n

You can access the supported constraints dictionary by calling\nnavigator.mediaDevices.getSupportedConstraints()." }, "mediatracksupportedconstraints.width": { "url": "$MDN_URL$/web/api/mediatracksupportedconstraints/width", @@ -5688,7 +5849,7 @@ }, "doc": "

Note: This feature is available in Web Workers.

\n

The postMessage() method of the\nMessagePort interface sends a message from the port, and optionally,\ntransfers ownership of objects to other browsing contexts.", "parameters": { - "message": "The message you want to send through the channel. This can be of any basic data type. Multiple data items can be sent as an array.", + "message": "The message you want to send through the channel. This can be of any basic data type. Multiple data items can be sent as an array.\n

\n

Note:\nExecution contexts that can message each other may not be in the same agent cluster, and therefore cannot share memory. SharedArrayBuffer objects, or buffer views backed by one, cannot be posted across agent clusters. Trying to do so will generate a messageerror event containing a DataCloneError DOMException on the receiving end.\n

", "transfer": "An optional array of transferable objects to transfer ownership of. The ownership of these objects is given to the destination side and they are no longer usable on the sending side. These transferable objects should be attached to the message; otherwise they would be moved but not actually accessible on the receiving end.", "options": "An optional object containing the following properties:\n
\n
transfer Optional
\n
\n

Has the same meaning as the transfer parameter.\n

\n
" }, @@ -5730,7 +5891,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Metadata interface contains information about a file system entry. This metadata includes the file's size and modification date and time.\n

\n

Note:\nThis interface isn't available through the global scope; instead, you obtain a Metadata object describing a FileSystemEntry using the method FileSystemEntry.getMetadata().\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Metadata interface contains information about a file system entry. This metadata includes the file's size and modification date and time.\n

\n

Note:\nThis interface isn't available through the global scope; instead, you obtain a Metadata object describing a FileSystemEntry using the method FileSystemEntry.getMetadata().\n

" }, "metadata.modificationtime": { "url": "$MDN_URL$/web/api/metadata/modificationtime", @@ -5743,7 +5904,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The read-only modificationTime\nproperty of the Metadata interface is a Date object which\nspecifies the date and time the file system entry (or the data referenced by the\nentry) was last modified. A file system entry is considered to have been\nmodified if the metadata or the contents of the referenced file (or directory, or\nwhatever other kind of file system entry might exist on the platform in use) has\nchanged." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The read-only modificationTime\nproperty of the Metadata interface is a Date object which\nspecifies the date and time the file system entry (or the data referenced by the\nentry) was last modified. A file system entry is considered to have been\nmodified if the metadata or the contents of the referenced file (or directory, or\nwhatever other kind of file system entry might exist on the platform in use) has\nchanged." }, "metadata.size": { "url": "$MDN_URL$/web/api/metadata/size", @@ -5756,7 +5917,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The read-only size property of\nthe Metadata interface specifies the size, in bytes, of the referenced\nfile or other file system object on disk." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The read-only size property of\nthe Metadata interface specifies the size, in bytes, of the referenced\nfile or other file system object on disk." }, "midiaccess": { "url": "$MDN_URL$/web/api/midiaccess", @@ -6408,7 +6569,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The MouseEvent.ctrlKey read-only property is a boolean value that indicates whether the ctrl key was pressed or not when a given mouse event occurs.\n

On Macintosh keyboards, this key is labeled the control key. Also, note that on a Mac, a click combined with the control key is intercepted by the operating system and used to open a context menu, so ctrlKey is not detectable on click events." + "doc": "The MouseEvent.ctrlKey read-only property is a boolean value that indicates whether the ctrl key was pressed or not when a given mouse event occurs.\n

On Macintosh keyboards, this key is labeled the control key. Also, note that on a Mac, a click combined with the control key is intercepted by the operating system and used to open a context menu, so ctrlKey is not detectable on click events.\n

Pinch-zooming using a trackpad also sends a simulated wheel event with ctrlKey set to true." }, "mouseevent.getmodifierstate": { "url": "$MDN_URL$/web/api/mouseevent/getmodifierstate", @@ -6452,7 +6613,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The MouseEvent.initMouseEvent() method initializes the\nvalue of a mouse event once it's been created (normally using the Document.createEvent() method).\n

\n

Warning:\nDo not use this method anymore as it is deprecated.\n

Instead use specific event constructors, like MouseEvent().\nThe page on Creating and triggering events gives more information about the way to use these.\n

\n

Events initialized in this way must have been created with the Document.createEvent() method.\nThis method must be called to set the event\nbefore it is dispatched, using EventTarget.dispatchEvent().", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The MouseEvent.initMouseEvent() method initializes the\nvalue of a mouse event once it's been created (normally using the Document.createEvent() method).\n

\n

Warning:\nDo not use this method anymore as it is deprecated.\n

Instead use specific event constructors, like MouseEvent().\nThe section on Creating and dispatching events gives more information about the way to use these.\n

\n

Events initialized in this way must have been created with the Document.createEvent() method.\nThis method must be called to set the event\nbefore it is dispatched, using EventTarget.dispatchEvent().", "parameters": { "type": "the string to set the event's type to. Possible types\nfor mouse events include: click, mousedown,\nmouseup, mouseover, mousemove,\nmouseout.", "canBubble": "whether or not the event can bubble. Sets the value of Event.bubbles.", @@ -6484,7 +6645,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MouseEvent.layerX read-only property returns the\nhorizontal coordinate of the event relative to the current layer.\n

This property takes scrolling of the page into account and returns a value relative to\nthe whole of the document unless the event occurs inside a positioned element, where the\nreturned value is relative to the top left of the positioned element." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MouseEvent.layerX read-only property returns the\nhorizontal coordinate of the event relative to the current layer.\n

This property takes scrolling of the page into account and returns a value relative to\nthe whole of the document unless the event occurs inside a positioned element, where the\nreturned value is relative to the top left of the positioned element." }, "mouseevent.layery": { "url": "$MDN_URL$/web/api/mouseevent/layery", @@ -6498,7 +6659,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MouseEvent.layerY read-only property returns the\nvertical coordinate of the event relative to the current layer.\n

This property takes scrolling of the page into account, and returns a value relative to\nthe whole of the document, unless the event occurs inside a positioned element, where\nthe returned value is relative to the top left of the positioned element." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MouseEvent.layerY read-only property returns the\nvertical coordinate of the event relative to the current layer.\n

This property takes scrolling of the page into account, and returns a value relative to\nthe whole of the document, unless the event occurs inside a positioned element, where\nthe returned value is relative to the top left of the positioned element." }, "mouseevent.metakey": { "url": "$MDN_URL$/web/api/mouseevent/metakey", @@ -6555,7 +6716,6 @@ ], "compatibility": { "Chrome": "37", - "ChromeAndroid": "37", "Edge": "13", "Firefox": "41", "FirefoxAndroid": "41", @@ -6564,10 +6724,9 @@ "SafariIOS": "17" }, "baseline": { - "level": "LOW", - "lowDate": "2023-09-18" + "level": "NONE" }, - "doc": "The movementX read-only property of the MouseEvent interface provides the difference in the X coordinate of the mouse pointer between the given event and the previous mousemove event.\nIn other words, the value of the property is computed like this: currentEvent.movementX = currentEvent.screenX - previousEvent.screenX.\n

\n

Warning:\nBrowsers use different units for movementX and screenX than what the specification defines. Depending on the browser and operating system, the movementX units may be a physical pixel, a logical pixel, or a CSS pixel. You may want to avoid the movement properties, and instead calculate the delta between the current client values (screenX, screenY) and the previous client values.\n

" + "doc": "The movementX read-only property of the MouseEvent interface provides the difference in the X coordinate of the mouse pointer between the given event and the previous mousemove event.\nIn other words, the value of the property is computed like this: currentEvent.movementX = currentEvent.screenX - previousEvent.screenX.\n
\n

Warning:\nBrowsers use different units for movementX and screenX than what the specification defines. Depending on the browser and operating system, the movementX units may be a physical pixel, a logical pixel, or a CSS pixel. You may want to avoid the movement properties, and instead calculate the delta between the current client values (screenX, screenY) and the previous client values.\n

" }, "mouseevent.movementy": { "url": "$MDN_URL$/web/api/mouseevent/movementy", @@ -6576,7 +6735,6 @@ ], "compatibility": { "Chrome": "37", - "ChromeAndroid": "37", "Edge": "13", "Firefox": "41", "FirefoxAndroid": "41", @@ -6585,14 +6743,13 @@ "SafariIOS": "17" }, "baseline": { - "level": "LOW", - "lowDate": "2023-09-18" + "level": "NONE" }, - "doc": "The movementY read-only property of the MouseEvent interface provides the difference in the Y coordinate of the mouse pointer between the given event and the previous mousemove event.\nIn other words, the value of the property is computed like this: currentEvent.movementY = currentEvent.screenY - previousEvent.screenY.\n
\n

Warning:\nBrowsers use different units for movementY and screenY than what the specification defines. Depending on the browser and operating system, the movementY units may be a physical pixel, a logical pixel, or a CSS pixel. You may want to avoid the movement properties, and instead calculate the delta between the current client values (screenX, screenY) and the previous client values.\n

" + "doc": "The movementY read-only property of the MouseEvent interface provides the difference in the Y coordinate of the mouse pointer between the given event and the previous mousemove event.\nIn other words, the value of the property is computed like this: currentEvent.movementY = currentEvent.screenY - previousEvent.screenY.\n
\n

Warning:\nBrowsers use different units for movementY and screenY than what the specification defines. Depending on the browser and operating system, the movementY units may be a physical pixel, a logical pixel, or a CSS pixel. You may want to avoid the movement properties, and instead calculate the delta between the current client values (screenX, screenY) and the previous client values.\n

" }, "mouseevent.mozinputsource": { "url": "$MDN_URL$/web/api/mouseevent/mozinputsource", - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MouseEvent.mozInputSource read-only property on MouseEvent provides information indicating the type of device that generated the event.\nThis lets you, for example, determine whether a mouse event was generated by an actual mouse or by a touch event (which might affect the degree of accuracy with which you interpret the coordinates associated with the event)." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MouseEvent.mozInputSource read-only property on MouseEvent provides information indicating the type of device that generated the event.\nThis lets you, for example, determine whether a mouse event was generated by an actual mouse or by a touch event (which might affect the degree of accuracy with which you interpret the coordinates associated with the event)." }, "mouseevent.offsetx": { "url": "$MDN_URL$/web/api/mouseevent/offsetx", @@ -6658,7 +6815,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The pageX read-only property of the MouseEvent interface returns the X (horizontal) coordinate (in pixels) at which the mouse was clicked, relative to the left edge of the entire document.\nThis includes any portion of the document not currently visible.\n

Being based on the edge of the document as it is, this property takes into account any horizontal scrolling of the page.\nFor example, if the page is scrolled such that 200 pixels of the left side of the document are scrolled out of view, and the mouse is clicked 100 pixels inward from the left edge of the view, the value returned by pageX will be 300.\n

Originally, this property was defined as a long integer. The CSSOM View Module redefined it as a\ndouble float. See the Browser compatibility section for\ndetails.\n

See Coordinate systems for additional information about coordinates specified in this fashion." + "doc": "The pageX read-only property of the MouseEvent interface returns the X (horizontal) coordinate (in pixels) at which the mouse was clicked, relative to the left edge of the entire document.\nThis includes any portion of the document not currently visible.\n

Being based on the edge of the document as it is, this property takes into account any horizontal scrolling of the page.\nFor example, if the page is scrolled such that 200 pixels of the left side of the document are scrolled out of view, and the mouse is clicked 100 pixels inward from the left edge of the view, the value returned by pageX will be 300.\n

Originally, this property was defined as a long integer. The CSSOM View Module redefined it as a\ndouble float. See the Browser compatibility section for\ndetails.\n

See Coordinate systems for additional information about coordinates specified in this fashion." }, "mouseevent.pagey": { "url": "$MDN_URL$/web/api/mouseevent/pagey", @@ -6724,7 +6881,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The screenX read-only property of the MouseEvent interface provides the horizontal coordinate (offset) of the mouse pointer in screen coordinates.\n

\n

Note:\nIn a multiscreen environment, screens aligned horizontally will be treated as a single device, and so the range of the screenX value will increase to the combined width of the screens.\n

" + "doc": "The screenX read-only property of the MouseEvent interface provides the horizontal coordinate (offset) of the mouse pointer in screen coordinates.\n
\n

Note:\nIn a multiscreen environment, screens aligned horizontally will be treated as a single device, and so the range of the screenX value will increase to the combined width of the screens.\n

" }, "mouseevent.screeny": { "url": "$MDN_URL$/web/api/mouseevent/screeny", @@ -6746,7 +6903,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The screenY read-only property of the MouseEvent interface provides the vertical coordinate (offset) of the mouse pointer in screen coordinates." + "doc": "The screenY read-only property of the MouseEvent interface provides the vertical coordinate (offset) of the mouse pointer in screen coordinates." }, "mouseevent.shiftkey": { "url": "$MDN_URL$/web/api/mouseevent/shiftkey", @@ -6772,15 +6929,15 @@ }, "mouseevent.webkit_force_at_force_mouse_down": { "url": "$MDN_URL$/web/api/mouseevent/webkit_force_at_force_mouse_down_static", - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a proprietary, WebKit-specific, static numeric property whose value is the minimum force necessary for a force click.\n

Because WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a static property of MouseEvent, you always use it as MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, rather than as a property of a MouseEvent instance." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a proprietary, WebKit-specific, static numeric property whose value is the minimum force necessary for a force click.\n

Because WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN is a static property of MouseEvent, you always use it as MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN, rather than as a property of a MouseEvent instance." }, "mouseevent.webkit_force_at_mouse_down": { "url": "$MDN_URL$/web/api/mouseevent/webkit_force_at_mouse_down_static", - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN is a proprietary, WebKit-specific, static numeric property whose value is the minimum force necessary for a normal click.\n

Because WEBKIT_FORCE_AT_MOUSE_DOWN is a static property of MouseEvent, you always use it as MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN, rather than as a property of a MouseEvent instance." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN is a proprietary, WebKit-specific, static numeric property whose value is the minimum force necessary for a normal click.\n

Because WEBKIT_FORCE_AT_MOUSE_DOWN is a static property of MouseEvent, you always use it as MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN, rather than as a property of a MouseEvent instance." }, "mouseevent.webkitforce": { "url": "$MDN_URL$/web/api/mouseevent/webkitforce", - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

MouseEvent.webkitForce is a proprietary, WebKit-specific numeric property whose value represents the amount of pressure that is being applied on the touchpad or touchscreen." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

MouseEvent.webkitForce is a proprietary, WebKit-specific numeric property whose value represents the amount of pressure that is being applied on the touchpad or touchscreen." }, "mouseevent.x": { "url": "$MDN_URL$/web/api/mouseevent/x", @@ -6835,7 +6992,7 @@ "Firefox": "3.5", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The MouseScrollEvent interface represents events that occur due to the user moving a mouse wheel or similar input device.\n

\n

Warning:\nDo not use this interface for wheel events.\n

Like MouseWheelEvent, this interface is non-standard and deprecated. It was used in Gecko-based browsers only. Instead use the standard WheelEvent.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The MouseScrollEvent interface represents events that occur due to the user moving a mouse wheel or similar input device.\n

\n

Warning:\nDo not use this interface for wheel events.\n

Like MouseWheelEvent, this interface is non-standard and deprecated. It was used in Gecko-based browsers only. Instead use the standard WheelEvent.\n

" }, "mutationevent": { "url": "$MDN_URL$/web/api/mutationevent", @@ -6843,13 +7000,9 @@ "Deprecated" ], "compatibility": { - "Firefox": "", - "FirefoxAndroid": "4", - "Opera": "12.1", - "Safari": "", - "SafariIOS": "" + "Opera": "12.1" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The MutationEvent interface provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes.\n

\n

Note:\nUsing mutation events is problematic:\n

    \n
  • Their design is flawed.
  • \n
  • Adding DOM mutation listeners to a document profoundly degrades the performance of further DOM modifications to that document (making them 1.5 - 7 times slower!). Moreover, removing the listeners does not reverse the damage.
  • \n
  • They have poor cross-browser compatibility: Safari doesn't support DOMAttrModified (see WebKit bug 8191) and Firefox doesn't support mutation name events (like DOMElementNameChanged and DOMAttributeNameChanged).
  • \n
\n

They have been deprecated in favor of mutation observers. Consider using these instead.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The MutationEvent interface provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes.\n

\n

Note:\nUsing mutation events is problematic:\n

    \n
  • Their design is flawed.
  • \n
  • Adding DOM mutation listeners to a document profoundly degrades the performance of further DOM modifications to that document (making them 1.5 - 7 times slower!). Moreover, removing the listeners does not reverse the damage.
  • \n
  • They have poor cross-browser compatibility: Safari doesn't support DOMAttrModified (see WebKit bug 8191) and Firefox doesn't support mutation name events (like DOMElementNameChanged and DOMAttributeNameChanged).
  • \n
\n

They have been deprecated in favor of mutation observers. Consider using these instead.\n

" }, "mutationevent.attrchange": { "url": "$MDN_URL$/web/api/mutationevent/attrchange", @@ -6857,13 +7010,9 @@ "Deprecated" ], "compatibility": { - "Firefox": "", - "FirefoxAndroid": "4", - "Opera": "12.1", - "Safari": "", - "SafariIOS": "" + "Opera": "12.1" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The attrChange read-only property of the MutationEvent interface returns a number indicating what kind of change triggered the DOMAttrModified event. The three possible values are MODIFICATION (1), ADDITION (2) or REMOVAL (3). It has no meaning for other events and is then set to 0." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The attrChange read-only property of the MutationEvent interface returns a number indicating what kind of change triggered the DOMAttrModified event. The three possible values are MODIFICATION (1), ADDITION (2) or REMOVAL (3). It has no meaning for other events and is then set to 0." }, "mutationevent.attrname": { "url": "$MDN_URL$/web/api/mutationevent/attrname", @@ -6871,13 +7020,9 @@ "Deprecated" ], "compatibility": { - "Firefox": "", - "FirefoxAndroid": "4", - "Opera": "12.1", - "Safari": "", - "SafariIOS": "" + "Opera": "12.1" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The attrName read-only property of the MutationEvent interface returns a string with the name of the node affected by the DOMAttrModified event. It has no meaning for other events and is then set to the empty string (\"\")." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The attrName read-only property of the MutationEvent interface returns a string with the name of the node affected by the DOMAttrModified event. It has no meaning for other events and is then set to the empty string (\"\")." }, "mutationevent.initmutationevent": { "url": "$MDN_URL$/web/api/mutationevent/initmutationevent", @@ -6885,13 +7030,9 @@ "Deprecated" ], "compatibility": { - "Firefox": "", - "FirefoxAndroid": "4", - "Opera": "12.1", - "Safari": "", - "SafariIOS": "" + "Opera": "12.1" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The initMutationEvent() method of the MutationEvent interface initializes the\nvalue of a mutation event once it's been created (normally using the Document.createEvent() method).\n

This method must be called to set the event before it is dispatched, using EventTarget.dispatchEvent().\n

\n

Note:\nIn general, you won't create these events yourself; they are created by the browser.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The initMutationEvent() method of the MutationEvent interface initializes the\nvalue of a mutation event once it's been created (normally using the Document.createEvent() method).\n

This method must be called to set the event before it is dispatched, using EventTarget.dispatchEvent().\n

\n

Note:\nIn general, you won't create these events yourself; they are created by the browser.\n

", "parameters": { "type": "A string to set the event's type to. Browsers set the following values for MutationEvent:\nDOMAttrModified, DOMAttributeNameChanged, DOMCharacterDataModified, DOMElementNameChanged, DOMNodeInserted, DOMNodeInsertedIntoDocument, DOMNodeRemoved, DOMNodeRemovedFromDocument, DOMSubtreeModified.", "canBubble": "A boolean indicating whether or not the event can bubble. Sets the value of Event.bubbles.", @@ -6910,13 +7051,9 @@ "Deprecated" ], "compatibility": { - "Firefox": "", - "FirefoxAndroid": "4", - "Opera": "12.1", - "Safari": "", - "SafariIOS": "" + "Opera": "12.1" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The newValue read-only property of the MutationEvent interface returns a string. In DOMAttrModified events, it represents the new value of the Attr node. In DOMCharacterDataModified events, it contains the new value of the CharacterData node. In all other cases, returns the empty string (\"\")." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The newValue read-only property of the MutationEvent interface returns a string. In DOMAttrModified events, it represents the new value of the Attr node. In DOMCharacterDataModified events, it contains the new value of the CharacterData node. In all other cases, returns the empty string (\"\")." }, "mutationevent.prevvalue": { "url": "$MDN_URL$/web/api/mutationevent/prevvalue", @@ -6924,13 +7061,9 @@ "Deprecated" ], "compatibility": { - "Firefox": "", - "FirefoxAndroid": "4", - "Opera": "12.1", - "Safari": "", - "SafariIOS": "" + "Opera": "12.1" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The prevValue read-only property of the MutationEvent interface returns a string. In DOMAttrModified events, it represents the previous value of the Attr node. In DOMCharacterDataModified events, it contains the previous value of the CharacterData node. In all other cases, returns the empty string (\"\")." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The prevValue read-only property of the MutationEvent interface returns a string. In DOMAttrModified events, it represents the previous value of the Attr node. In DOMCharacterDataModified events, it contains the previous value of the CharacterData node. In all other cases, returns the empty string (\"\")." }, "mutationevent.relatednode": { "url": "$MDN_URL$/web/api/mutationevent/relatednode", @@ -6938,13 +7071,9 @@ "Deprecated" ], "compatibility": { - "Firefox": "", - "FirefoxAndroid": "4", - "Opera": "12.1", - "Safari": "", - "SafariIOS": "" + "Opera": "12.1" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The relatedNode read-only property of the MutationEvent interface returns a string indicating the node related to the event, like the changed node inside the subtree for DOMSubtreeModified." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The relatedNode read-only property of the MutationEvent interface returns a string indicating the node related to the event, like the changed node inside the subtree for DOMSubtreeModified." }, "mutationobserver": { "url": "$MDN_URL$/web/api/mutationobserver", @@ -7360,7 +7489,7 @@ }, "doc": "The getNamedItemNS() method of the NamedNodeMap interface returns the Attr corresponding to the given local name in the given namespace, or null if there is no corresponding attribute.", "parameters": { - "namespace": "A string with the namespace URI of the desired attribute.\n

\n

Warning: namespace is the URI of the namespace, not the prefix.\n

", + "namespace": "A string with the namespace URI of the desired attribute.\n
\n

Warning:\nnamespace is the URI of the namespace, not the prefix.\n

", "localName": "A string with the localName of the desired attribute." }, "returns": "An Attr corresponding to the namespace and local name given in parameters, or null if none has been found." @@ -7464,7 +7593,7 @@ }, "doc": "The removeNamedItemNS() method of the NamedNodeMap interface\nremoves the Attr corresponding to the given namespace and local name from the map.", "parameters": { - "namespace": "The namespace of the attribute to remove from the map\n
\n

Warning: namespace is the URI of the namespace, not the prefix.\n

", + "namespace": "The namespace of the attribute to remove from the map\n
\n

Warning:\nnamespace is the URI of the namespace, not the prefix.\n

", "localName": "The local name of the attribute to remove from the map." }, "returns": "The removed Attr.", @@ -8642,13 +8771,12 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The activeVRDisplays read-only property of the\nNavigator interface returns an array containing every\nVRDisplay object that is currently presenting\n(VRDisplay.isPresenting is true).\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The activeVRDisplays read-only property of the\nNavigator interface returns an array containing every\nVRDisplay object that is currently presenting\n(VRDisplay.isPresenting is true).\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "navigator.appcodename": { "url": "$MDN_URL$/web/api/navigator/appcodename", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -8660,13 +8788,12 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The value of the Navigator.appCodeName property is\nalways \"Mozilla\", in any browser. This property is kept only for\ncompatibility purposes.\n

\n

Note:\nDo not rely on this property to return a real\nproduct name. All browsers return \"Mozilla\" as the value of this property.\n

" + "doc": "The value of the Navigator.appCodeName property is\nalways \"Mozilla\", in any browser. This property is kept only for\ncompatibility purposes.\n
\n

Note:\nDo not rely on this property to return a real\nproduct name. All browsers return \"Mozilla\" as the value of this property.\n

" }, "navigator.appname": { "url": "$MDN_URL$/web/api/navigator/appname", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -8678,13 +8805,12 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The value of the Navigator.appName property is always\n\"Netscape\", in any browser. This property is kept only for compatibility\npurposes.\n

\n

Note:\nDo not rely on this property to return a real browser name. All browsers return \"Netscape\" as the value of this property.\n

" + "doc": "The value of the Navigator.appName property is always\n\"Netscape\", in any browser. This property is kept only for compatibility\npurposes.\n
\n

Note:\nDo not rely on this property to return a real browser name. All browsers return \"Netscape\" as the value of this property.\n

" }, "navigator.appversion": { "url": "$MDN_URL$/web/api/navigator/appversion", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -8696,7 +8822,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Returns either \"4.0\" or a string representing version information about\nthe browser.\n

\n

Note:\nDo not rely on this property to return the correct browser version.\n

" + "doc": "Returns either \"4.0\" or a string representing version information about\nthe browser.\n
\n

Note:\nDo not rely on this property to return the correct browser version.\n

" }, "navigator.bluetooth": { "url": "$MDN_URL$/web/api/navigator/bluetooth", @@ -8718,7 +8844,7 @@ "Firefox": "2", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Returns the build identifier of the browser. In modern browsers this property now returns a fixed timestamp as a privacy measure, e.g., 20181001000000 in Firefox 64 onwards." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Returns the build identifier of the browser. In modern browsers this property now returns a fixed timestamp as a privacy measure, e.g., 20181001000000 in Firefox 64 onwards." }, "navigator.canshare": { "url": "$MDN_URL$/web/api/navigator/canshare", @@ -8726,11 +8852,11 @@ "StandardTrack" ], "compatibility": { - "Chrome": "129", + "Chrome": "128", "ChromeAndroid": "75", "Edge": "93", "FirefoxAndroid": "96", - "Opera": "115", + "Opera": "114", "Safari": "14", "SafariIOS": "14" }, @@ -8932,7 +9058,7 @@ "FirefoxAndroid": "9", "Opera": "12" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Navigator.doNotTrack property returns the user's Do Not Track setting, which indicates whether the user is requesting websites and advertisers to not track them.\n

The value of the property reflects that of the DNT HTTP header, i.e., values of \"1\", \"0\", or null.\n

The whole DNT (Do Not Track) specification has been discontinued. The mechanism design was flawed, because it was a cooperative feature between users, websites, and browsers. The idea is that the user tells the website to not track them, and the website would comply. However, there is no strict enforcement of this policy, so advertisement websites ignored the DNT header and tracked users anyway. The feature is therefore useless. Moreover, it is harmful as it leaves more user fingerprint in the header, which can be used to track users even more.\n

Browsers are exploring other more enforceable privacy features, such as global privacy control, restriction to third-party cookies, and more." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Navigator.doNotTrack property returns the user's Do Not Track setting, which indicates whether the user is requesting websites and advertisers to not track them.\n

The value of the property reflects that of the DNT HTTP header, i.e., values of \"1\", \"0\", or null.\n

The whole DNT (Do Not Track) specification has been discontinued. The mechanism design was flawed, because it was a cooperative feature between users, websites, and browsers. The idea is that the user tells the website to not track them, and the website would comply. However, there is no strict enforcement of this policy, so advertisement websites ignored the DNT header and tracked users anyway. The feature is therefore useless. Moreover, it is harmful as it leaves more user fingerprint in the header, which can be used to track users even more.\n

Browsers are exploring other more enforceable privacy features, such as global privacy control, restriction to third-party cookies, and more." }, "navigator.geolocation": { "url": "$MDN_URL$/web/api/navigator/geolocation", @@ -9068,7 +9194,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getVRDisplays() method of the Navigator interface returns a promise that resolves to an array of VRDisplay objects representing any available VR displays connected to the computer.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getVRDisplays() method of the Navigator interface returns a promise that resolves to an array of VRDisplay objects representing any available VR displays connected to the computer.", "returns": "A promise that resolves to an array of VRDisplay objects." }, "navigator.globalprivacycontrol": { @@ -9088,7 +9214,6 @@ "navigator.gpu": { "url": "$MDN_URL$/web/api/navigator/gpu", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -9096,12 +9221,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The Navigator.gpu read-only property returns the GPU object for the current browsing context, which is the entry point for the WebGPU API." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The Navigator.gpu read-only property returns the GPU object for the current browsing context, which is the entry point for the WebGPU API." }, "navigator.hardwareconcurrency": { "url": "$MDN_URL$/web/api/navigator/hardwareconcurrency", @@ -9163,8 +9289,7 @@ "navigator.javaenabled": { "url": "$MDN_URL$/web/api/navigator/javaenabled", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -9176,7 +9301,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

This method always returns false.", + "doc": "This method always returns false.", "returns": "The boolean value false." }, "navigator.keyboard": { @@ -9218,7 +9343,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The Navigator.language read-only property returns a string representing the preferred language of the user, usually the language of the browser UI." + "doc": "The language read-only property of the Navigator interface returns a string representing the preferred language of the user, usually the language of the browser UI." }, "navigator.languages": { "url": "$MDN_URL$/web/api/navigator/languages", @@ -9242,7 +9367,7 @@ "lowDate": "2017-10-17", "highDate": "2020-04-17" }, - "doc": "The Navigator.languages read-only property\nreturns an array of strings representing the user's preferred\nlanguages. The language is described using language tags according to\nRFC 5646: Tags for Identifying Languages (also known as BCP 47). In the returned\narray they are ordered by preference with the most preferred language first.\n

The value of navigator.language is the\nfirst element of the returned array.\n

When its value changes, as the user's preferred languages are changed a\nlanguagechange event is fired on the Window object.\n

The Accept-Language HTTP header in every HTTP request from the user's browser generally lists the same locales as the navigator.languages property, with decreasing q values (quality values). Some browsers (Chrome and Safari) add language-only fallback tags in Accept-Language—for example, en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7 when navigator.languages is [\"en-US\", \"zh-CN\"]. For privacy purposes (reducing fingerprinting), both Accept-Language and navigator.languages may not include the full list of user preferences, such as in Safari (always) and Chrome's incognito mode, where only one language is listed." + "doc": "The languages read-only property of the Navigator interface\nreturns an array of strings representing the user's preferred\nlanguages. The language is described using a BCP 47 language tag. In the returned\narray they are ordered by preference with the most preferred language first.\n

The value of navigator.language is the\nfirst element of the returned array.\n

When its value changes, as the user's preferred languages are changed a\nlanguagechange event is fired on the Window object.\n

The Accept-Language HTTP header in every HTTP request from the user's browser generally lists the same locales as the navigator.languages property, with decreasing q values (quality values). Some browsers (Chrome and Safari) add language-only fallback tags in Accept-Language—for example, en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7 when navigator.languages is [\"en-US\", \"zh-CN\"]. For privacy purposes (reducing fingerprinting), both Accept-Language and navigator.languages may not include the full list of user preferences, such as in Safari (always) and Chrome's incognito mode, where only one language is listed." }, "navigator.locks": { "url": "$MDN_URL$/web/api/navigator/locks", @@ -9372,8 +9497,7 @@ "navigator.mimetypes": { "url": "$MDN_URL$/web/api/navigator/mimetypes", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -9385,7 +9509,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Returns a MimeTypeArray object, which contains a list of MimeType objects representing the MIME types recognized and supported by the browser.\nThe array can be queried for information about the enabled plugin that is used to handle a file of the specified type.\nNamed properties of the returned object are not enumerable (except in very old browser versions).\n

Recent versions of the specification hard-code the returned set of MIME types.\nIf PDF files can be displayed inline then application/pdf and text/pdf are listed.\nOtherwise an empty list is returned.\n

\n

Note:\nUse Navigator.pdfViewerEnabled to determine if inline viewing of PDF files is supported. Do not infer it from this property.\n

\n

Legacy browser versions do not hard-code the list returned by the property, and might return other MIME types." + "doc": "Returns a MimeTypeArray object, which contains a list of MimeType objects representing the MIME types recognized and supported by the browser.\nThe array can be queried for information about the enabled plugin that is used to handle a file of the specified type.\nNamed properties of the returned object are not enumerable (except in very old browser versions).\n

Recent versions of the specification hard-code the returned set of MIME types.\nIf PDF files can be displayed inline then application/pdf and text/pdf are listed.\nOtherwise an empty list is returned.\n

\n

Note:\nUse Navigator.pdfViewerEnabled to determine if inline viewing of PDF files is supported. Do not infer it from this property.\n

\n

Legacy browser versions do not hard-code the list returned by the property, and might return other MIME types." }, "navigator.online": { "url": "$MDN_URL$/web/api/navigator/online", @@ -9412,14 +9536,13 @@ "navigator.oscpu": { "url": "$MDN_URL$/web/api/navigator/oscpu", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The Navigator.oscpu property returns a string that identifies the current operating system." + "doc": "The Navigator.oscpu property returns a string that identifies the current operating system." }, "navigator.pdfviewerenabled": { "url": "$MDN_URL$/web/api/navigator/pdfviewerenabled", @@ -9437,8 +9560,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The pdfViewerEnabled read-only property of the Navigator interface indicates whether the browser supports inline display of PDF files when navigating to them.\n

If inline viewing is not supported the PDF is downloaded and may then be handled by some external application.\n

\n

Note:\nThis method replaces a number of legacy methods of inferring support for inline viewing of PDF files.\n

" }, @@ -9467,8 +9591,7 @@ "navigator.platform": { "url": "$MDN_URL$/web/api/navigator/platform", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -9481,13 +9604,12 @@ "SafariIOS": "", "Nodejs": "21.2.0" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The platform property read-only property of the Navigator interface returns a string identifying the platform on which the user's browser is running.\n

\n

Note:\nIn general, you should whenever possible avoid writing code that uses methods or properties like this one to try to find out information about the user's environment, and instead write code that does feature detection.\n

" + "doc": "The platform property read-only property of the Navigator interface returns a string identifying the platform on which the user's browser is running.\n
\n

Note:\nIn general, you should whenever possible avoid writing code that uses methods or properties like this one to try to find out information about the user's environment, and instead write code that does feature detection.\n

" }, "navigator.plugins": { "url": "$MDN_URL$/web/api/navigator/plugins", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -9499,7 +9621,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Returns a PluginArray object, listing the Plugin objects describing the plugins installed in the application.\nNamed properties of the returned object are not enumerable (except in very old browser versions).\n

Recent versions of the specification hard-code the returned list.\nIf inline viewing of PDF files is supported the property lists five standard plugins.\nIf inline PDF viewing is not supported then an empty list is returned.\n

\n

Note:\nUse Navigator.pdfViewerEnabled to determine if inline viewing of PDF files is supported. Do not infer it from this property.\n

The \"five standard plugins\" are those that developers have most commonly used to feature detect inline PDF viewing.\nReturning these ensures that legacy code can more reliably determine whether inline viewing is supported.\nHowever this approach is not recommended for new code because this property may eventually be removed.\n

\n

Legacy browser versions also list plugins for Adobe Flash and PDF viewer extensions." + "doc": "Returns a PluginArray object, listing the Plugin objects describing the plugins installed in the application.\nNamed properties of the returned object are not enumerable (except in very old browser versions).\n

Recent versions of the specification hard-code the returned list.\nIf inline viewing of PDF files is supported the property lists five standard plugins.\nIf inline PDF viewing is not supported then an empty list is returned.\n

\n

Note:\nUse Navigator.pdfViewerEnabled to determine if inline viewing of PDF files is supported. Do not infer it from this property.\n

The \"five standard plugins\" are those that developers have most commonly used to feature detect inline PDF viewing.\nReturning these ensures that legacy code can more reliably determine whether inline viewing is supported.\nHowever this approach is not recommended for new code because this property may eventually be removed.\n

\n

Legacy browser versions also list plugins for Adobe Flash and PDF viewer extensions." }, "navigator.presentation": { "url": "$MDN_URL$/web/api/navigator/presentation", @@ -9520,8 +9642,7 @@ "navigator.product": { "url": "$MDN_URL$/web/api/navigator/product", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -9533,13 +9654,12 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The value of the Navigator.product property is always\n\"Gecko\", in any browser. This property is kept only for compatibility\npurposes.\n

\n

Note:\nDo not rely on this property to return a real product name. All browsers return \"Gecko\" as the value of this property.\n

" + "doc": "The value of the Navigator.product property is always\n\"Gecko\", in any browser. This property is kept only for compatibility\npurposes.\n
\n

Note:\nDo not rely on this property to return a real product name. All browsers return \"Gecko\" as the value of this property.\n

" }, "navigator.productsub": { "url": "$MDN_URL$/web/api/navigator/productsub", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -9551,7 +9671,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The Navigator.productSub read-only property that returns either the string \"20030107\", or the string \"20100101\"." + "doc": "The Navigator.productSub read-only property that returns either the string \"20030107\", or the string \"20100101\"." }, "navigator.registerprotocolhandler": { "url": "$MDN_URL$/web/api/navigator/registerprotocolhandler", @@ -9602,7 +9722,7 @@ "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The requestMediaKeySystemAccess() method of the Navigator interface returns a Promise which delivers a MediaKeySystemAccess object that can be used to access a particular media key system, which can in turn be used to create keys for decrypting a media stream.\n

This method is part of the Encrypted Media Extensions API, which brings support for encrypted media and DRM-protected video to the web.\n

This method may have user-visible effects such as asking for permission to access one or more system resources.\nConsider that when deciding when to call requestMediaKeySystemAccess(); you don't want those requests to happen at inconvenient times.\nAs a general rule, this function should be called only when it's about time to create and use a MediaKeys object by calling the returned MediaKeySystemAccess object's createMediaKeys() method.", "parameters": { "keySystem": "A string identifying the key system.\nFor example com.example.some-system or org.w3.clearkey.", - "supportedConfigurations": "A non-empty Array of objects conforming to the object returned by MediaKeySystemAccess.getConfiguration.\nThe first element with a satisfiable configuration will be used.\n

Each object may have the following properties:\n

\n

Note:\nEither videoCapabilities or audioCapabilities may be empty, but not both!\n

\n
\n
label Optional
\n
\n

An optional label for the configuration, which defaults to \"\".\nThis label is preserved for configurations fetched using MediaKeySystemAccess.getConfiguration\n

\n
initDataTypes
\n
\n

An array of strings that indicate the data type names for the supported initialization data formats (default to an empty array).\nThese names are names like \"cenc\", \"keyids\" and \"webm\" that are defined in the Encrypted Media Extensions Initialization Data Format Registry.\n

\n
audioCapabilities
\n
\n

An array of supported audio capabilities.\nIf the array is empty the content type does not support audio capabilities.\n

Each object in the array has the following properties:\n

\n
contentType
\n
\n

A string indicating the media MIME-type of the media resource, such as \"audio/mp4;codecs=\\\"mp4a.40.2\\\".\nNote that the empty string is invalid, and that if the MIME-type definition includes parameters, such as codecs, these must also be included.\n

\n
encryptionScheme
\n
\n

The encryption scheme associated with the content type, such as cenc, cbcs, cbcs-1-9.\nThis value should be set by an application (it defaults to null, indicating that any encryption scheme may be used).\n

\n
robustness
\n
\n

The robustness level associated with the content type.\nThe empty string indicates that any ability to decrypt and decode the content type is acceptable.\n

\n
\n
\n
videoCapabilities
\n
\n

An array of supported video capabilities.\nThe objects in the array have the same form as those in audioCapabilities.\n

\n
distinctiveIdentifier
\n
\n

A string indicating whether the implementation may use \"distinctive identifiers\" (or distinctive permanent identifiers) for any operations associated with any object created from this configuration.\nThe allowed values are:\n

\n
required
\n
\n

The returned object must support this feature.\n

\n
optional
\n
\n

The returned object may support this feature.\nThis is the default\n

\n
not-allowed
\n
\n

The returned object must not support or use this feature.\n

\n
\n
\n
persistentState
\n
\n

A string indicating whether the returned object must be able to persist session data or any other type of state.\nThe values are the same as for distinctiveIdentifier and have the same meaning: required, optional (default), not-allowed.\nOnly \"temporary\" sessions may be created when persistent state is not allowed.\n

\n
sessionTypes
\n
\n

An array of strings indicating the session types that must be supported.\nPermitted values include:\n

\n
temporary
\n
\n

A session for which the license, key(s) and record of or data related to the session are not persisted.\nThe application does not need to manage such storage.\nImplementations must support this option, and it is the default.\n

\n
persistent-license
\n
\n

A session for which the license (and potentially other data related to the session) will be persisted.\nA record of the license and associated keys persists even if the license is destroyed, providing an attestation that the license and key(s) it contains are no longer usable by the client.\n

\n
\n
\n
" + "supportedConfigurations": "A non-empty Array of objects conforming to the object returned by MediaKeySystemAccess.getConfiguration.\nThe first element with a satisfiable configuration will be used.\n

Each object may have the following properties:\n

\n

Note:\nEither videoCapabilities or audioCapabilities may be empty, but not both!\n

\n
\n
label Optional
\n
\n

An optional label for the configuration, which defaults to \"\".\nThis label is preserved for configurations fetched using MediaKeySystemAccess.getConfiguration\n

\n
initDataTypes
\n
\n

An array of strings that indicate the data type names for the supported initialization data formats (default to an empty array).\nThese names are names like \"cenc\", \"keyids\" and \"webm\" that are defined in the Encrypted Media Extensions Initialization Data Format Registry.\n

\n
audioCapabilities
\n
\n

An array of supported audio capabilities.\nIf the array is empty the content type does not support audio capabilities.\n

Each object in the array has the following properties:\n

\n
contentType
\n
\n

A string indicating the media MIME-type of the media resource, such as \"audio/mp4;codecs=\\\"mp4a.40.2\\\".\nNote that the empty string is invalid, and that if the MIME-type definition includes parameters, such as codecs, these must also be included.\n

\n
encryptionScheme
\n
\n

The encryption scheme associated with the content type, such as cenc, cbcs, cbcs-1-9.\nThis value should be set by an application (it defaults to null, indicating that any encryption scheme may be used).\n

\n
robustness
\n
\n

The robustness level associated with the content type.\nThe empty string indicates that any ability to decrypt and decode the content type is acceptable.\n

\n
\n
\n
videoCapabilities
\n
\n

An array of supported video capabilities.\nThe objects in the array have the same form as those in audioCapabilities.\n

\n
distinctiveIdentifier
\n
\n

A string indicating whether the implementation may use \"distinctive identifiers\" (or distinctive permanent identifiers) for any operations associated with any object created from this configuration.\nThe allowed values are:\n

\n
required
\n
\n

The returned object must support this feature.\n

\n
optional
\n
\n

The returned object may support this feature.\nThis is the default\n

\n
not-allowed
\n
\n

The returned object must not support or use this feature.\n

\n
\n
\n
persistentState
\n
\n

A string indicating whether the returned object must be able to persist session data or any other type of state.\nThe values are the same as for distinctiveIdentifier and have the same meaning: required, optional (default), not-allowed.\nOnly \"temporary\" sessions may be created when persistent state is not allowed.\n

\n
sessionTypes
\n
\n

An array of strings indicating the session types that must be supported.\nPermitted values include:\n

\n
temporary
\n
\n

A session for which the license, key(s) and record of or data related to the session are not persisted.\nThe application does not need to manage such storage.\nImplementations must support this option, and it is the default.\n

\n
persistent-license
\n
\n

A session for which the license (and potentially other data related to the session) will be persisted.\nA record of the license and associated keys persists even if the license is destroyed, providing an attestation that the license and key(s) it contains are no longer usable by the client.\n

\n
\n
\n
" }, "returns": "A Promise that fulfils with a MediaKeySystemAccess object representing the media key system configuration described by keySystem and supportedConfigurations.", "throws": { @@ -9747,11 +9867,11 @@ "StandardTrack" ], "compatibility": { - "Chrome": "129", + "Chrome": "128", "ChromeAndroid": "61", "Edge": "93", "FirefoxAndroid": "79", - "Opera": "115", + "Opera": "114", "Safari": "12.1", "SafariIOS": "12.2" }, @@ -9796,14 +9916,13 @@ "navigator.taintenabled": { "url": "$MDN_URL$/web/api/navigator/taintenabled", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The Navigator.taintEnabled() method always returns\nfalse.\n

Tainting was a security method used by JavaScript 1.2. It has long been removed; this\nmethod only stays for maintaining compatibility with very old scripts.", + "doc": "The Navigator.taintEnabled() method always returns\nfalse.\n

Tainting was a security method used by JavaScript 1.2. It has long been removed; this\nmethod only stays for maintaining compatibility with very old scripts.", "returns": "Always returns false." }, "navigator.unregisterprotocolhandler": { @@ -9911,8 +10030,7 @@ "navigator.vendor": { "url": "$MDN_URL$/web/api/navigator/vendor", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -9924,13 +10042,12 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The value of the Navigator vendor property is always either \"Google Inc.\", \"Apple Computer, Inc.\", or (in Firefox) the empty string." + "doc": "The value of the Navigator vendor property is always either \"Google Inc.\", \"Apple Computer, Inc.\", or (in Firefox) the empty string." }, "navigator.vendorsub": { "url": "$MDN_URL$/web/api/navigator/vendorsub", "status": [ - "StandardTrack", - "Deprecated" + "StandardTrack" ], "compatibility": { "Chrome": "", @@ -9942,7 +10059,7 @@ "Safari": "3", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The value of the Navigator.vendorSub property is always\nthe empty string, in any browser." + "doc": "The value of the Navigator.vendorSub property is always\nthe empty string, in any browser." }, "navigator.vibrate": { "url": "$MDN_URL$/web/api/navigator/vibrate", @@ -9958,7 +10075,7 @@ "baseline": { "level": "NONE" }, - "doc": "The vibrate() method of the Navigator interface pulses the vibration\nhardware on the device, if such hardware exists. If the device doesn't support\nvibration, this method has no effect. If a vibration pattern is already in progress when\nthis method is called, the previous pattern is halted and the new one begins instead.\n

If the method was unable to vibrate because of invalid parameters, it will return\nfalse, else it returns true. If the pattern leads to a too\nlong vibration, it is truncated: the max length depends on the implementation.", + "doc": "The vibrate() method of the Navigator interface pulses the vibration\nhardware on the device, if such hardware exists. If the device doesn't support\nvibration, this method has no effect. If a vibration pattern is already in progress when\nthis method is called, the previous pattern is halted and the new one begins instead.\n

If the method was unable to vibrate because of invalid parameters, it will return\nfalse, else it returns true. If the pattern leads to a too\nlong vibration, it is truncated: the max length depends on the implementation.\n

Some devices may not vibrate if they are in Silent mode or Do Not Disturb (DND) mode. To ensure vibration works, make sure these modes are turned off and that vibration is enabled in the system settings.", "parameters": { "pattern": "Provides a pattern of vibration and pause intervals. Each value indicates a number\nof milliseconds to vibrate or pause, in alternation. You may provide either a single\nvalue (to vibrate once for that many milliseconds) or an array of values to\nalternately vibrate, pause, then vibrate again. See Vibration API for details." }, @@ -10144,9 +10261,9 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The getHighEntropyValues() method of the NavigatorUAData interface is a Promise that resolves with a dictionary object containing the high entropy values the user-agent returns.\n

\n

Note:\nThe terms high entropy and low entropy refer to the amount of information these values reveal about the browser.\nThe values returned as properties are deemed low entropy, and unlikely to identify a user.\nThe values returned by getHighEntropyValues() could potentially reveal more information.\nThese values are therefore retrieved via a Promise, allowing time for the browser to request user permission, or make other checks.\n

", "parameters": { - "hints": "An array containing the hints to be returned, one or more of:\n
    \n
  • \"architecture\"
  • \n
  • \"bitness\"
  • \n
  • \"formFactor\"
  • \n
  • \"fullVersionList\"
  • \n
  • \"model\"
  • \n
  • \"platformVersion\"
  • \n
  • \"uaFullVersion\"
  • \n
  • \"wow64\"
  • \n
" + "hints": "An array containing the hints to be returned, one or more of:\n
    \n
  • \"architecture\"
  • \n
  • \"bitness\"
  • \n
  • \"formFactors\"
  • \n
  • \"fullVersionList\"
  • \n
  • \"model\"
  • \n
  • \"platformVersion\"
  • \n
  • \"uaFullVersion\"
  • \n
  • \"wow64\"
  • \n
" }, - "returns": "A Promise that resolves to an object containing some or all of the following values (based on the hints requested):\n
\n
brands
\n
\n

Returns an array of objects containing brand and version specifying the browser brand and its version (the same information as provided by NavigatorUAData.brands).\nNote that this information can be sent to a server in the Sec-CH-UA header (a low-entropy client hint).\n

\n
mobile
\n
\n

Returns true if the user agent is running on a mobile device (the same information as provided by NavigatorUAData.mobile).\nNote that this information can be sent to a server in the Sec-CH-UA-Mobile header (a low-entropy client hint).\n

\n
platform
\n
\n

Returns a string describing the platform the user agent is running on, like \"Windows\" (the same information as provided by NavigatorUAData.platform).\nNote that this information can be sent to a server in the Sec-CH-UA-Platform header (a low-entropy client hint).\n

\n
architecture
\n
\n

A string containing the platform architecture. For example, \"x86\".\nNote that this information can be sent to a server in the Sec-CH-UA-Arch header after the server explicitly requests it in the Accept-CH header.\n

\n
bitness
\n
\n

A string containing the architecture bitness. For example, \"32\" or \"64\".\nNote that this information can be sent to a server in the Sec-CH-UA-Bitness header if the server explicitly requests it in the Accept-CH header.\n

\n
formFactor
\n
\n

A string containing the form-factor of a device. For example, \"Tablet\" or \"VR\".\nNote that this information can be sent to a server in the Sec-CH-UA-Form-Factors header if the server explicitly requests it in the Accept-CH header.\n

\n
fullVersionList
\n
\n

An array of objects with properties \"brand\" and \"version\" representing the browser name and full version respectively.\nFor example, {\"brand\": \"Google Chrome\", \"version\": \"103.0.5060.134\"}, {\"brand\": \"Chromium\", \"version\": \"103.0.5060.134\"}.\nPlease note that one object may intentionally contain invalid information to prevent sites from relying on a fixed list of browsers.\nNote that this information can be sent to a server in the Sec-CH-UA-Full-Version-List header if the server explicitly requests it in the Accept-CH header.\n

\n
model
\n
\n

A string containing the model of mobile device. For example, \"Pixel 2XL\". If device is not a mobile device or if device model is not known, model will be \"\".\nNote that this information can be sent to a server in the Sec-CH-UA-Model header if the server explicitly requests it in the Accept-CH header.\n

\n
platformVersion
\n
\n

A string containing the platform version. Platform name itself is always available as low-entropy hint platform. For example, \"10.0\".\nNote that this information can be sent to a server in the Sec-CH-UA-Platform-Version header if the server explicitly requests it in the Accept-CH header.\n

\n
uaFullVersion \nDeprecated\n
\n
\n

A string containing the full browser version. For example, \"103.0.5060.134\". Deprecated in favor of fullVersionList.\nNote that this information can be sent to a server in the Sec-CH-UA-Full-Version header if the server explicitly requests it in the Accept-CH header.\n

\n
wow64
\n
\n

A boolean indicating if the user agent's binary is running in 32-bit mode on 64-bit Windows.\nNote that this information can be sent to a server in the Sec-CH-UA-WoW64 header if the server explicitly requests it in the Accept-CH header.\n

\n
", + "returns": "A Promise that resolves to an object containing some or all of the following values (based on the hints requested):\n
\n
brands
\n
\n

Returns an array of objects containing brand and version specifying the browser brand and its version (the same information as provided by NavigatorUAData.brands).\nNote that this information can be sent to a server in the Sec-CH-UA header (a low-entropy client hint).\n

\n
mobile
\n
\n

Returns true if the user agent is running on a mobile device (the same information as provided by NavigatorUAData.mobile).\nNote that this information can be sent to a server in the Sec-CH-UA-Mobile header (a low-entropy client hint).\n

\n
platform
\n
\n

Returns a string describing the platform the user agent is running on, like \"Windows\" (the same information as provided by NavigatorUAData.platform).\nNote that this information can be sent to a server in the Sec-CH-UA-Platform header (a low-entropy client hint).\n

\n
architecture
\n
\n

A string containing the platform architecture. For example, \"x86\".\nNote that this information can be sent to a server in the Sec-CH-UA-Arch header after the server explicitly requests it in the Accept-CH header.\n

\n
bitness
\n
\n

A string containing the architecture bitness. For example, \"32\" or \"64\".\nNote that this information can be sent to a server in the Sec-CH-UA-Bitness header if the server explicitly requests it in the Accept-CH header.\n

\n
formFactors
\n
\n

An array of strings containing the form-factors of a device. For example, [\"Tablet\", \"XR\"].\nNote that this information can be sent to a server in the Sec-CH-UA-Form-Factors header if the server explicitly requests it in the Accept-CH header.\n

\n
fullVersionList
\n
\n

An array of objects with properties \"brand\" and \"version\" representing the browser name and full version respectively.\nFor example, {\"brand\": \"Google Chrome\", \"version\": \"103.0.5060.134\"}, {\"brand\": \"Chromium\", \"version\": \"103.0.5060.134\"}.\nPlease note that one object may intentionally contain invalid information to prevent sites from relying on a fixed list of browsers.\nNote that this information can be sent to a server in the Sec-CH-UA-Full-Version-List header if the server explicitly requests it in the Accept-CH header.\n

\n
model
\n
\n

A string containing the model of mobile device. For example, \"Pixel 2XL\". If device is not a mobile device or if device model is not known, model will be \"\".\nNote that this information can be sent to a server in the Sec-CH-UA-Model header if the server explicitly requests it in the Accept-CH header.\n

\n
platformVersion
\n
\n

A string containing the platform version. Platform name itself is always available as low-entropy hint platform. For example, \"10.0\".\nNote that this information can be sent to a server in the Sec-CH-UA-Platform-Version header if the server explicitly requests it in the Accept-CH header.\n

\n
uaFullVersion \nDeprecated\n
\n
\n

A string containing the full browser version. For example, \"103.0.5060.134\". Deprecated in favor of fullVersionList.\nNote that this information can be sent to a server in the Sec-CH-UA-Full-Version header if the server explicitly requests it in the Accept-CH header.\n

\n
wow64
\n
\n

A boolean indicating if the user agent's binary is running in 32-bit mode on 64-bit Windows.\nNote that this information can be sent to a server in the Sec-CH-UA-WoW64 header if the server explicitly requests it in the Accept-CH header.\n

\n
", "throws": { "NotAllowedError DOMException": "Thrown if the user-agent decides that one or more of the hints requested should not be returned." } @@ -10231,7 +10348,7 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The NDEFMessage() constructor creates a new NDEFMessage object, initialized with the given NDEF records.", "parameters": { - "records": "An array of objects with the following members:\n

\n
data Optional
\n
\n

Contains the data to be transmitted; one of a string, an ArrayBuffer, a TypedArray, a DataView, or an array of nested records.\n

\n
encoding Optional
\n
\n

A string specifying the record's encoding.\n

\n
id Optional
\n
\n

A developer-defined identifier for the record.\n

\n
lang Optional
\n
\n

A valid language tag according to RFC 5646: Tags for Identifying Languages (also known as BCP 47).\n

\n
mediaType Optional
\n
\n

A valid MIME type.\n

\n
recordType
\n
\n

A string indicating the type of data stored in data. It must be one of the following values:\n

\n
\"absolute-url\"
\n
\n

An absolute URL to the data.\n

\n
\"empty\"
\n
\n

An empty NDEFRecord.\n

\n
\"mime\"
\n
\n

A valid MIME type.\n

\n
\"smart-poster\"
\n
\n

A smart poster as defined by the NDEF-SMARTPOSTER specification.\n

\n
\"text\"
\n
\n

Text as defined by the NDEF-TEXT specification.\n

\n
\"unknown\"
\n
\n

The record type is not known.\n

\n
\"URL\"
\n
\n

A URL as defined by the NDEF-URI specification.\n

\n
\n
\n
" + "records": "An array of objects with the following members:\n
\n
data Optional
\n
\n

Contains the data to be transmitted; one of a string, an ArrayBuffer, a TypedArray, a DataView, or an array of nested records.\n

\n
encoding Optional
\n
\n

A string specifying the record's encoding.\n

\n
id Optional
\n
\n

A developer-defined identifier for the record.\n

\n
lang Optional
\n
\n

A valid BCP 47 language tag.\n

\n
mediaType Optional
\n
\n

A valid MIME type.\n

\n
recordType
\n
\n

A string indicating the type of data stored in data. It must be one of the following values:\n

\n
\"absolute-url\"
\n
\n

An absolute URL to the data.\n

\n
\"empty\"
\n
\n

An empty NDEFRecord.\n

\n
\"mime\"
\n
\n

A valid MIME type.\n

\n
\"smart-poster\"
\n
\n

A smart poster as defined by the NDEF-SMARTPOSTER specification.\n

\n
\"text\"
\n
\n

Text as defined by the NDEF-TEXT specification.\n

\n
\"unknown\"
\n
\n

The record type is not known.\n

\n
\"URL\"
\n
\n

A URL as defined by the NDEF-URI specification.\n

\n
\n
\n
" } }, "ndefmessage.records": { @@ -10315,7 +10432,7 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The write() method of the NDEFReader interface attempts to write an NDEF message to a tag and returns a Promise that either resolves when a message has been written to the tag or rejects if a hardware or permission error is encountered. This method triggers a permission prompt if the \"nfc\" permission has not been previously granted.", "parameters": { - "message": "The message to be written, either a string, an ArrayBuffer, a TypedArray,\na DataView, or an array of records. A record has the following members:\n

\n
data Optional
\n
\n

Contains the data to be transmitted, a string, an ArrayBuffer, a TypedArray,\na DataView, or an array of nested records\n

\n
encoding Optional
\n
\n

A string specifying the record's encoding.\n

\n
id Optional
\n
\n

A developer-defined identifier for the record.\n

\n
lang Optional
\n
\n

A valid language tag according to RFC 5646: Tags for Identifying Languages (also known as BCP 47).\n

\n
mediaType Optional
\n
\n

A valid MIME type.\n

\n
recordType
\n
\n

A string indicating the type of data stored in data. It must be one of the following values:\n

\n
\"absolute-url\"
\n
\n

An absolute URL to the data.\n

\n
\"empty\"
\n
\n

An empty NDEFRecord.\n

\n
\"mime\"
\n
\n

A valid MIME type.\n

\n
\"smart-poster\"
\n
\n

A smart poster as defined by the NDEF-SMARTPOSTER specification.\n

\n
\"text\"
\n
\n

Text as defined by the NDEF-TEXT specification.\n

\n
\"unknown\"
\n
\n

The record type is not known.\n

\n
\"URL\"
\n
\n

A URL as defined by the NDEF-URI specification.\n

\n
\n
\n
", + "message": "The message to be written, either a string, an ArrayBuffer, a TypedArray,\na DataView, or an array of records. A record has the following members:\n
\n
data Optional
\n
\n

Contains the data to be transmitted, a string, an ArrayBuffer, a TypedArray,\na DataView, or an array of nested records\n

\n
encoding Optional
\n
\n

A string specifying the record's encoding.\n

\n
id Optional
\n
\n

A developer-defined identifier for the record.\n

\n
lang Optional
\n
\n

A valid BCP 47 language tag.\n

\n
mediaType Optional
\n
\n

A valid MIME type.\n

\n
recordType
\n
\n

A string indicating the type of data stored in data. It must be one of the following values:\n

\n
\"absolute-url\"
\n
\n

An absolute URL to the data.\n

\n
\"empty\"
\n
\n

An empty NDEFRecord.\n

\n
\"mime\"
\n
\n

A valid MIME type.\n

\n
\"smart-poster\"
\n
\n

A smart poster as defined by the NDEF-SMARTPOSTER specification.\n

\n
\"text\"
\n
\n

Text as defined by the NDEF-TEXT specification.\n

\n
\"unknown\"
\n
\n

The record type is not known.\n

\n
\"URL\"
\n
\n

A URL as defined by the NDEF-URI specification.\n

\n
\n
\n
", "options": "An object with the following properties:\n
\n
overwrite
\n
\n

A boolean value specifying whether or not existing records should be overwritten, if such exists.\n

\n
signal Optional
\n
\n

An AbortSignal that allows the current write operation to be canceled.\n

\n
" }, "returns": "A Promise that either resolves when a message has been written to the tag or rejects if a hardware or permission error is encountered.", @@ -10370,7 +10487,7 @@ "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The NDEFReadingEvent() constructor creates a new NDEFReadingEvent object which represents events dispatched on new NFC readings obtained by NDEFReader.", "parameters": { "type": "A string with the name of the event.\nIt is case-sensitive and browsers always set it to reading.", - "options": "An object that, in addition of the properties defined in Event(), can have the following properties:\n

\n
serialNumber Optional
\n
\n

The serial number of the device a message was read from. It default to \"\", and can be set to null.\n

\n
message
\n
\n

An object with the following members:\n

\n
data Optional
\n
\n

Contains the data to be transmitted. It can be a string, an ArrayBuffer, a TypedArray, a DataView, or an array of nested records.\n

\n
encoding Optional
\n
\n

A string specifying the record's encoding.\n

\n
id Optional
\n
\n

A developer-defined identifier for the record.\n

\n
lang Optional
\n
\n

A valid language tag according to RFC 5646: Tags for Identifying Languages (also known as BCP 47).\n

\n
mediaType Optional
\n
\n

A valid MIME type.\n

\n
recordType
\n
\n

A string indicating the type of data stored in data. It must be one of the following values:\n

\n
\"absolute-url\"
\n
\n

An absolute URL to the data.\n

\n
\"empty\"
\n
\n

An empty NDEFRecord.\n

\n
\"mime\"
\n
\n

A valid MIME type.\n

\n
\"smart-poster\"
\n
\n

A smart poster as defined by the NDEF-SMARTPOSTER specification.\n

\n
\"text\"
\n
\n

Text as defined by the NDEF-TEXT specification.\n

\n
\"unknown\"
\n
\n

The record type is not known.\n

\n
\"URL\"
\n
\n

A URL as defined by the NDEF-URI specification.\n

\n
\n
\n
\n
\n
" + "options": "An object that, in addition of the properties defined in Event(), can have the following properties:\n
\n
serialNumber Optional
\n
\n

The serial number of the device a message was read from. It default to \"\", and can be set to null.\n

\n
message
\n
\n

An object with the following members:\n

\n
data Optional
\n
\n

Contains the data to be transmitted. It can be a string, an ArrayBuffer, a TypedArray, a DataView, or an array of nested records.\n

\n
encoding Optional
\n
\n

A string specifying the record's encoding.\n

\n
id Optional
\n
\n

A developer-defined identifier for the record.\n

\n
lang Optional
\n
\n

A valid BCP 47 language tag.\n

\n
mediaType Optional
\n
\n

A valid MIME type.\n

\n
recordType
\n
\n

A string indicating the type of data stored in data. It must be one of the following values:\n

\n
\"absolute-url\"
\n
\n

An absolute URL to the data.\n

\n
\"empty\"
\n
\n

An empty NDEFRecord.\n

\n
\"mime\"
\n
\n

A valid MIME type.\n

\n
\"smart-poster\"
\n
\n

A smart poster as defined by the NDEF-SMARTPOSTER specification.\n

\n
\"text\"
\n
\n

Text as defined by the NDEF-TEXT specification.\n

\n
\"unknown\"
\n
\n

The record type is not known.\n

\n
\"URL\"
\n
\n

A URL as defined by the NDEF-URI specification.\n

\n
\n
\n
\n
\n
" }, "returns": "A new NDEFReadingEvent object." }, @@ -10486,7 +10603,7 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The NDEFRecord()\nconstructor of the Web NFC API returns a\nnewly constructed NDEFRecord object that represents data that can be\nread from, or written to, compatible NFC devices; e.g., NFC tags supporting NDEF.", "parameters": { - "options": "An object with the following properties:\n

\n
data Optional
\n
\n

Contains the data to be transmitted. It can be a string, an ArrayBuffer, a TypedArray, a DataView, or an array of nested records.\n

\n
encoding Optional
\n
\n

A string specifying the record's encoding.\n

\n
id Optional
\n
\n

A developer-defined identifier for the record.\n

\n
lang Optional
\n
\n

A valid language tag according to RFC 5646: Tags for Identifying Languages (also known as BCP 47).\n

\n
mediaType Optional
\n
\n

A valid MIME type.\n

\n
recordType
\n
\n

A string indicating the type of data stored in data. It must be one of the following values:\n

\n
\"absolute-url\"
\n
\n

An absolute URL to the data.\n

\n
\"empty\"
\n
\n

An empty NDEFRecord.\n

\n
\"mime\"
\n
\n

A valid MIME type.\n

\n
\"smart-poster\"
\n
\n

A smart poster as defined by the NDEF-SMARTPOSTER specification.\n

\n
\"text\"
\n
\n

Text as defined by the NDEF-TEXT specification.\n

\n
\"unknown\"
\n
\n

The record type is not known.\n

\n
\"URL\"
\n
\n

A URL as defined by the NDEF-URI specification.\n

\n
\n
\n
" + "options": "An object with the following properties:\n
\n
data Optional
\n
\n

Contains the data to be transmitted. It can be a string, an ArrayBuffer, a TypedArray, a DataView, or an array of nested records.\n

\n
encoding Optional
\n
\n

A string specifying the record's encoding.\n

\n
id Optional
\n
\n

A developer-defined identifier for the record.\n

\n
lang Optional
\n
\n

A valid BCP 47 language tag.\n

\n
mediaType Optional
\n
\n

A valid MIME type.\n

\n
recordType
\n
\n

A string indicating the type of data stored in data. It must be one of the following values:\n

\n
\"absolute-url\"
\n
\n

An absolute URL to the data.\n

\n
\"empty\"
\n
\n

An empty NDEFRecord.\n

\n
\"mime\"
\n
\n

A valid MIME type.\n

\n
\"smart-poster\"
\n
\n

A smart poster as defined by the NDEF-SMARTPOSTER specification.\n

\n
\"text\"
\n
\n

Text as defined by the NDEF-TEXT specification.\n

\n
\"unknown\"
\n
\n

The record type is not known.\n

\n
\"URL\"
\n
\n

A URL as defined by the NDEF-URI specification.\n

\n
\n
\n
" }, "returns": "A new NDEFRecord." }, @@ -10652,7 +10769,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The DOM Node interface is an abstract base\nclass upon which many other DOM API objects are based, thus letting those object types\nto be used similarly and often interchangeably. As an abstract class, there is\nno such thing as a plain Node object. All objects that implement\nNode functionality are based on one of its subclasses. Most notable are\nDocument, Element, and DocumentFragment.\n

In addition, every kind of DOM node is represented by an interface based on\nNode. These include Attr, CharacterData\n(which Text, Comment, CDATASection and\nProcessingInstruction are all based on), and DocumentType.\n

In some cases, a particular feature of the base Node interface may not\napply to one of its child interfaces; in that case, the inheriting node may\nreturn null or throw an exception, depending on circumstances. For example,\nattempting to add children to a node type that cannot have children will throw an\nexception." + "doc": "The DOM Node interface is an abstract base\nclass upon which many other DOM API objects are based, thus letting those object types\nbe used similarly and often interchangeably. As an abstract class, there is\nno such thing as a plain Node object. All objects that implement\nNode functionality are based on one of its subclasses. Most notable are\nDocument, Element, and DocumentFragment.\n

In addition, every kind of DOM node is represented by an interface based on\nNode. These include Attr, CharacterData\n(which Text, Comment, CDATASection and\nProcessingInstruction are all based on), and DocumentType.\n

In some cases, a particular feature of the base Node interface may not\napply to one of its child interfaces; in that case, the inheriting node may\nreturn null or throw an exception, depending on circumstances. For example,\nattempting to add children to a node type that cannot have children will throw an\nexception." }, "node.appendchild": { "url": "$MDN_URL$/web/api/node/appendchild", @@ -10676,11 +10793,11 @@ }, "doc": "The appendChild() method of the Node interface adds a node to the end of the list of children of a specified parent node.\n

\n

Note:\nIf the given child is a reference to an existing node in the document, appendChild() moves it from its current position to the new position.\n

\n

If the given child is a DocumentFragment, the entire contents of the DocumentFragment are moved into the child list of the specified parent node.\n

appendChild() returns the newly appended node, or if the child is a DocumentFragment, the emptied fragment.\n

\n

Note:\nUnlike this method, the Element.append() method supports multiple arguments and appending strings. You can prefer using it if your node is an element.\n

", "parameters": { - "aChild": "The node to append to the given parent node (commonly an element)." + "child": "The node to append to the given parent node (commonly an element)." }, - "returns": "A Node that is the appended child (aChild), except when aChild is a DocumentFragment, in which case the empty DocumentFragment is returned.", + "returns": "A Node that is the appended child (child), except when child is a DocumentFragment, in which case the empty DocumentFragment is returned.", "throws": { - "HierarchyRequestError DOMException": "Thrown when the constraints of the DOM tree are violated, that is if one of the following cases occurs:\n" + "HierarchyRequestError DOMException": "Thrown when the constraints of the DOM tree are violated, that is if one of the following cases occurs:\n" } }, "node.baseuri": { @@ -10725,7 +10842,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The read-only childNodes property of the Node interface returns a live\nNodeList of child nodes of the given element where\nthe first child node is assigned index 0. Child nodes include elements, text and\ncomments.\n
\n

Note:\nThe NodeList being live means that its content is changed each time\nnew children are added or removed.\n

Browsers insert text nodes into a document to represent whitespace in the source markup.\nTherefore a node obtained, for example, using Node.childNodes[0]\nmay refer to a whitespace text node rather than the actual element the author intended to get.\n

See Whitespace in the DOM for more information.\n

\n

The items in the collection of nodes are objects, not strings. To get data from node\nobjects, use their properties. For example, to get the name of the first\nchildNode, you can use elementNodeReference.childNodes[0].nodeName.\n

The document object itself has two children: the Doctype declaration and the\nroot element, typically referred to as documentElement. In HTML\ndocuments the latter is the <html> element.\n

It is important to keep in mind that childNodes includes all child nodes,\nincluding non-element nodes like text and comment.\nTo get a collection containing only elements, use Element.children instead." + "doc": "The read-only childNodes property of the Node interface returns a live\nNodeList of child nodes of the given element where\nthe first child node is assigned index 0. Child nodes include elements, text and\ncomments.\n

\n

Note:\nThe NodeList being live means that its content is changed each time\nnew children are added or removed.\n

Browsers insert text nodes into a document to represent whitespace in the source markup.\nTherefore a node obtained, for example, using Node.childNodes[0]\nmay refer to a whitespace text node rather than the actual element the author intended to get.\n

See Working with whitespace in the DOM for more information.\n

\n

The items in the collection of nodes are objects, not strings. To get data from node\nobjects, use their properties. For example, to get the name of the first\nchildNode, you can use elementNodeReference.childNodes[0].nodeName.\n

The document object itself has two children: the Doctype declaration and the\nroot element, typically referred to as documentElement. In HTML\ndocuments the latter is the <html> element.\n

It is important to keep in mind that childNodes includes all child nodes,\nincluding non-element nodes like text and comment.\nTo get a collection containing only elements, use Element.children instead." }, "node.clonenode": { "url": "$MDN_URL$/web/api/node/clonenode", @@ -10747,7 +10864,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The cloneNode() method of the Node interface\nreturns a duplicate of the node on which this method was called.\nIts parameter controls if the subtree contained in a node is also cloned or not.\n

Cloning a node copies all of its attributes and their values,\nincluding intrinsic (inline) listeners. It does not copy event listeners added\nusing addEventListener() or\nthose assigned to element properties (e.g., node.onclick = someFunction).\nAdditionally, for a <canvas> element, the painted image is not copied.\n

\n

Warning: cloneNode() may lead to duplicate element IDs in a document!\n

If the original node has an id attribute, and the clone\nwill be placed in the same document, then you should modify the clone's ID to be\nunique.\n

Also, name attributes may need to be modified,\ndepending on whether duplicate names are expected.\n

\n

To clone a node to insert into a different document, use\nDocument.importNode() instead.", + "doc": "The cloneNode() method of the Node interface\nreturns a duplicate of the node on which this method was called.\nIts parameter controls if the subtree contained in a node is also cloned or not.\n

Cloning a node copies all of its attributes and their values,\nincluding intrinsic (inline) listeners. It does not copy event listeners added\nusing addEventListener() or\nthose assigned to element properties (e.g., node.onclick = someFunction).\nAdditionally, for a <canvas> element, the painted image is not copied.\n

\n

Warning:\ncloneNode() may lead to duplicate element IDs in a document!\n

If the original node has an id attribute, and the clone\nwill be placed in the same document, then you should modify the clone's ID to be\nunique.\n

Also, name attributes may need to be modified,\ndepending on whether duplicate names are expected.\n

\n

To clone a node to insert into a different document, use\nDocument.importNode() instead.", "parameters": { "deep": "If true, then the node and its whole subtree,\nincluding text that may be in child Text nodes,\nis also copied.\n

If false, only the node will be cloned.\nThe subtree, including any text that the node contains, is not cloned.\n

Note that deep has no effect on void elements,\nsuch as the <img> and <input> elements." }, @@ -10801,7 +10918,7 @@ }, "doc": "The contains() method of the Node interface\nreturns a boolean value indicating\nwhether a node is a descendant of a given node, that is the node itself,\none of its direct children (childNodes),\none of the children's direct children, and so on.\n

\n

Note:\nA node is contained inside itself.\n

", "parameters": { - "otherNode": "The Node to test with.\n
\n

Note: otherNode is not optional, but can be set to null.\n

" + "otherNode": "The Node to test with.\n
\n

Note:\notherNode is not optional, but can be set to null.\n

" }, "returns": "A boolean value that is true if otherNode is contained in the node,\nfalse if not.\n

If the otherNode parameter is null,\ncontains() always returns false." }, @@ -10899,7 +11016,7 @@ "doc": "The insertBefore() method of the Node interface\ninserts a node before a reference node as a child of a specified parent node.\n

If the given node already exists in the document,\ninsertBefore() moves it from its current position to the new position.\n(That is, it will automatically be removed from its existing parent\nbefore appending it to the specified new parent.)\n

This means that a node cannot be in two locations of the document simultaneously.\n

\n

Note:\nThe Node.cloneNode() can be used to make a copy\nof the node before appending it under the new parent. Note that the copies made with\ncloneNode() will not be automatically kept in sync.\n

\n

If the given child is a DocumentFragment, the entire contents of the\nDocumentFragment are moved into the child list of the specified parent\nnode.", "parameters": { "newNode": "The node to be inserted.", - "referenceNode": "The node before which newNode is inserted. If this is\nnull, then newNode is inserted at the end of\nnode's child nodes.\n

\n

Note: referenceNode is not an optional parameter.\nYou must explicitly pass a Node or null.\nFailing to provide it or passing invalid values may behave differently in different browser versions.\n

" + "referenceNode": "The node before which newNode is inserted. If this is\nnull, then newNode is inserted at the end of\nnode's child nodes.\n
\n

Note:\nreferenceNode is not an optional parameter.\nYou must explicitly pass a Node or null.\nFailing to provide it or passing invalid values may behave differently in different browser versions.\n

" }, "returns": "Returns the added child (unless newNode is a DocumentFragment,\nin which case the empty DocumentFragment is returned)." }, @@ -10947,7 +11064,7 @@ }, "doc": "The isDefaultNamespace() method of the Node interface accepts a namespace URI as an argument.\nIt returns a boolean value that is true if the namespace is the default namespace on the given node and false if not.\n
\n

Note:\nThe default namespace of an HTML element is always \"\". For a SVG element, it is set by the xmlns attribute.\n

", "parameters": { - "namespaceURI": "A string representing the namespace against which the element will be checked.\n
\n

Note: namespaceURI is not an optional parameter, but can be null.\n

" + "namespaceURI": "A string representing the namespace against which the element will be checked.\n
\n

Note:\nnamespaceURI is not an optional parameter, but can be null.\n

" }, "returns": "A boolean value that holds the return value true or false, indicating if the parameter is the default namespace, or not." }, @@ -11097,7 +11214,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The read-only nextSibling property of the Node interface\nreturns the node immediately following the specified one in their\nparent's childNodes, or returns null\nif the specified node is the last child in the parent element.\n
\n

Note:\nBrowsers insert Text nodes into a document to represent whitespace in the source markup.\nTherefore a node obtained, for example, using Node.firstChild\nor Node.previousSibling\nmay refer to a whitespace text node rather than the actual element the author\nintended to get.\n

The article Whitespace in the DOM\ncontains more information about this behavior.\n

You can use Element.nextElementSibling to obtain the next element\nskipping any whitespace nodes, other between-element text, or comments.\n

To navigate the opposite way through the child nodes list use Node.previousSibling.\n

" + "doc": "The read-only nextSibling property of the Node interface\nreturns the node immediately following the specified one in their\nparent's childNodes, or returns null\nif the specified node is the last child in the parent element.\n
\n

Note:\nBrowsers insert Text nodes into a document to represent whitespace in the source markup.\nTherefore a node obtained, for example, using Node.firstChild\nor Node.previousSibling\nmay refer to a whitespace text node rather than the actual element the author\nintended to get.\n

The section Working with whitespace in the DOM\ncontains more information about this behavior.\n

You can use Element.nextElementSibling to obtain the next element\nskipping any whitespace nodes, other between-element text, or comments.\n

To navigate the opposite way through the child nodes list use Node.previousSibling.\n

" }, "node.nodename": { "url": "$MDN_URL$/web/api/node/nodename", @@ -11274,7 +11391,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The read-only previousSibling property of the Node interface\nreturns the node immediately preceding the specified one in its parent's\nchildNodes list,\nor null if the specified node is the first in that list.\n
\n

Note:\nBrowsers insert text nodes into a document to represent whitespace in the source markup.\nTherefore a node obtained, for example, using Node.firstChild\nor Node.previousSibling\nmay refer to a whitespace text node rather than the actual element the author intended to get.\n

See Whitespace in the DOM for more information.\n

You can use previousElementSibling\nto get the previous element node (skipping text nodes and any other non-element nodes).\n

To navigate the opposite way through the child nodes list use Node.nextSibling.\n

" + "doc": "The read-only previousSibling property of the Node interface\nreturns the node immediately preceding the specified one in its parent's\nchildNodes list,\nor null if the specified node is the first in that list.\n
\n

Note:\nBrowsers insert text nodes into a document to represent whitespace in the source markup.\nTherefore a node obtained, for example, using Node.firstChild\nor Node.previousSibling\nmay refer to a whitespace text node rather than the actual element the author intended to get.\n

See Working with whitespace in the DOM for more information.\n

You can use previousElementSibling\nto get the previous element node (skipping text nodes and any other non-element nodes).\n

To navigate the opposite way through the child nodes list use Node.nextSibling.\n

" }, "node.removechild": { "url": "$MDN_URL$/web/api/node/removechild", @@ -11300,6 +11417,7 @@ "parameters": { "child": "A Node that is the child node to be removed from the DOM." }, + "returns": "The removed child node.", "throws": { "NotFoundError DOMException": "Thrown if the child is not a child of the node.", "TypeError": "Thrown if the child is null." @@ -11356,7 +11474,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The textContent property of the Node\ninterface represents the text content of the node and its descendants.\n
\n

Note: textContent and HTMLElement.innerText are easily confused,\nbut the two properties are different in important ways.\n

" + "doc": "The textContent property of the Node\ninterface represents the text content of the node and its descendants.\n
\n

Note:\ntextContent and HTMLElement.innerText are easily confused,\nbut the two properties are different in important ways.\n

" }, "nodeiterator": { "url": "$MDN_URL$/web/api/nodeiterator", @@ -11767,9 +11885,7 @@ "Chrome": "53", "ChromeAndroid": "53", "Edge": "18", - "Opera": "39", - "Safari": "17", - "SafariIOS": "17" + "Opera": "39" }, "baseline": { "level": "NONE" @@ -11909,25 +12025,25 @@ "baseline": { "level": "NONE" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The lang read-only property of the\nNotification interface indicates the language used in the notification,\nas specified in the lang option of the\nNotification() constructor.\n

The language itself is specified using a string representing a language tag according to RFC 5646: Tags for Identifying Languages (also known as BCP 47).\nSee the Sitepoint ISO 2 letter language codes page for a simple reference." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The lang read-only property of the\nNotification interface indicates the language used in the notification,\nas specified in the lang option of the\nNotification() constructor.\n

The language itself is specified using a string representing a BCP 47 language tag." }, "notification.maxactions": { "url": "$MDN_URL$/web/api/notification/maxactions_static", "status": [ + "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "48", "ChromeAndroid": "48", "Edge": "18", - "Firefox": "138", - "FirefoxAndroid": "138", + "Firefox": "preview", "Opera": "35" }, "baseline": { "level": "NONE" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The maxActions read-only static property of the\nNotification interface returns the maximum number of actions supported by\nthe device and the User Agent. Effectively, this is the maximum number of elements in\nNotification.actions array which will be respected by the User Agent." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The maxActions read-only static property of the\nNotification interface returns the maximum number of actions supported by\nthe device and the User Agent. Effectively, this is the maximum number of elements in\nNotification.actions array which will be respected by the User Agent." }, "notification.notification": { "url": "$MDN_URL$/web/api/notification/notification", @@ -11945,10 +12061,10 @@ "baseline": { "level": "NONE" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The Notification() constructor creates a new\nNotification object instance, which represents a user notification.\n

\n

Note:\nTrying to create a notification inside the ServiceWorkerGlobalScope using the Notification() constructor will throw a TypeError. Use ServiceWorkerRegistration.showNotification() instead.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The Notification() constructor creates a new Notification object instance, which represents a user notification.\n

Trying to create a notification inside the ServiceWorkerGlobalScope using the Notification() constructor will throw a TypeError. Use ServiceWorkerRegistration.showNotification() instead.\n

You must first get permission before being able to display notifications, using Notification.requestPermission(). The permission may not be grantable, for example if the page is in private browsing mode.\n

This constructor throws a TypeError when called in nearly all mobile browsers and this is unlikely to change, because web pages on mobile devices almost never \"run in the background\", which is the main use case for notifications. Instead, you need to register a service worker and use ServiceWorkerRegistration.showNotification(). See Chrome issue for more information.", "parameters": { "title": "Defines a title for the notification, which is shown at the top of the notification window.", - "options": "An options object containing any custom settings that you want to apply to the notification. The possible options are:\n

\n
actions Optional
\n
\n

Must be unspecified or an empty array. actions is only supported for persistent notifications fired from a service worker using ServiceWorkerRegistration.showNotification().\n

\n
badge Optional
\n
\n

A string containing the URL of the image used to represent the notification when there isn't enough space to display the notification itself; for example, the Android Notification Bar. On Android devices, the badge should accommodate devices up to 4x resolution, about 96x96px, and the image will be automatically masked.\n

\n
body Optional
\n
\n

A string representing the body text of the notification, which is displayed below the title. The default is the empty string.\n

\n
data Optional
\n
\n

Arbitrary data that you want associated with the notification. This can be of any structured-clonable data type. The default is null.\n

\n
dir Optional
\n
\n

The direction in which to display the notification. It defaults to auto, which just adopts the browser's language setting behavior, but you can override that behavior by setting values of ltr and rtl (although most browsers seem to ignore these settings.)\n

\n
icon Optional
\n
\n

A string containing the URL of an icon to be displayed in the notification.\n

\n
image Optional
\n
\n

A string containing the URL of an image to be displayed in the notification.\n

\n
lang Optional
\n
\n

The notification's language, as specified using a string representing a language tag according to RFC 5646: Tags for Identifying Languages (also known as BCP 47). See the Sitepoint ISO 2 letter language codes page for a simple reference. The default is the empty string.\n

\n
renotify Optional
\n
\n

A boolean value specifying whether the user should be notified after a new notification replaces an old one. The default is false, which means they won't be notified. If true, then tag also must be set.\n

\n
requireInteraction Optional
\n
\n

Indicates that a notification should remain active until the user clicks or dismisses it, rather than closing automatically. The default value is false.\n

\n
silent Optional
\n
\n

A boolean value specifying whether the notification should be silent, i.e., no sounds or vibrations should be issued regardless of the device settings. If set to true, the notification is silent; if set to null (the default value), the device's default settings are respected.\n

\n
tag Optional
\n
\n

A string representing an identifying tag for the notification. The default is the empty string.\n

\n
timestamp Optional
\n
\n

A timestamp, given as Unix time in milliseconds, representing the time associated with the notification. This could be in the past when a notification is used for a message that couldn't immediately be delivered because the device was offline, or in the future for a meeting that is about to start.\n

\n
vibrate Optional
\n
\n

A vibration pattern for the device's vibration hardware to emit with the notification. If specified, silent must not be true.\n

\n
" + "options": "An options object containing any custom settings that you want to apply to the notification. The possible options are:\n
\n
actions Optional
\n
\n

Must be unspecified or an empty array. actions is only supported for persistent notifications fired from a service worker using ServiceWorkerRegistration.showNotification().\n

\n
badge Optional
\n
\n

A string containing the URL of the image used to represent the notification when there isn't enough space to display the notification itself; for example, the Android Notification Bar. On Android devices, the badge should accommodate devices up to 4x resolution, about 96x96px, and the image will be automatically masked.\n

\n
body Optional
\n
\n

A string representing the body text of the notification, which is displayed below the title. The default is the empty string.\n

\n
data Optional
\n
\n

Arbitrary data that you want associated with the notification. This can be of any structured-clonable data type. The default is null.\n

\n
dir Optional
\n
\n

The direction in which to display the notification. It defaults to auto, which just adopts the browser's language setting behavior, but you can override that behavior by setting values of ltr and rtl (although most browsers seem to ignore these settings.)\n

\n
icon Optional
\n
\n

A string containing the URL of an icon to be displayed in the notification.\n

\n
image Optional
\n
\n

A string containing the URL of an image to be displayed in the notification.\n

\n
lang Optional
\n
\n

The notification's language, as specified using a string representing a BCP 47 language tag. The default is the empty string.\n

\n
renotify Optional
\n
\n

A boolean value specifying whether the user should be notified after a new notification replaces an old one. The default is false, which means they won't be notified. If true, then tag also must be set.\n

\n
requireInteraction Optional
\n
\n

Indicates that a notification should remain active until the user clicks or dismisses it, rather than closing automatically. The default value is false.\n

\n
silent Optional
\n
\n

A boolean value specifying whether the notification should be silent, i.e., no sounds or vibrations should be issued regardless of the device settings. If set to true, the notification is silent; if set to null (the default value), the device's default settings are respected.\n

\n
tag Optional
\n
\n

A string representing an identifying tag for the notification. The default is the empty string.\n

\n
timestamp Optional
\n
\n

A timestamp, given as Unix time in milliseconds, representing the time associated with the notification. This could be in the past when a notification is used for a message that couldn't immediately be delivered because the device was offline, or in the future for a meeting that is about to start.\n

\n
vibrate Optional
\n
\n

A vibration pattern for the device's vibration hardware to emit with the notification. If specified, silent must not be true.\n

\n
" }, "returns": "An instance of the Notification object.", "throws": { @@ -12137,8 +12253,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is only available in Service Workers.

\n

The NotificationEvent interface of the Notifications API represents a notification event dispatched on the ServiceWorkerGlobalScope of a ServiceWorker.\n

This interface inherits from the ExtendableEvent interface.\n

\n

Note:\nOnly persistent notification events, fired at the ServiceWorkerGlobalScope object, implement the NotificationEvent interface. Non-persistent notification events, fired at the Notification object, implement the Event interface.\n

" }, @@ -12193,8 +12310,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is only available in Service Workers.

\n

The NotificationEvent() constructor creates a new NotificationEvent object.", "parameters": { @@ -12621,8 +12739,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

When using the <canvas> element or the Canvas API, rendering, animation, and user interaction usually happen on the main execution thread of a web application.\nThe computation relating to canvas animations and rendering can have a significant impact on application performance.\n

The OffscreenCanvas interface provides a canvas that can be rendered off screen, decoupling the DOM and the Canvas API so that the <canvas> element is no longer entirely dependent on the DOM.\nRendering operations can also be run inside a worker context, allowing you to run some tasks in a separate thread and avoid heavy work on the main thread.\n

OffscreenCanvas is a transferable object." }, @@ -12642,8 +12761,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The OffscreenCanvas.convertToBlob() method creates a Blob object representing the image contained in the canvas.\n

The desired file format and image quality may be specified.\nIf the file format is not specified, or if the given format is not supported, then the data will be exported as image/png.\nBrowsers are required to support image/png; many will support additional formats including image/jpeg and image/webp.\n

The created image will have a resolution of 96dpi for file formats that support encoding resolution metadata.", "parameters": { @@ -12708,17 +12828,19 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" } }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The OffscreenCanvas.getContext() method returns a drawing context for an offscreen canvas, or null if the context identifier is not supported, or the offscreen canvas has already been set to a different context mode.", "parameters": { "contextType": "A string containing the context identifier defining the drawing context associated to the canvas. Possible values are:\n

\n
2d
\n
\n

Creates a OffscreenCanvasRenderingContext2D object representing a two-dimensional rendering context.\n

\n
webgl
\n
\n

Creates a WebGLRenderingContext object representing a three-dimensional rendering context. This context is only available on browsers that implement WebGL version 1 (OpenGL ES 2.0).\n

\n
webgl2
\n
\n

Creates a WebGL2RenderingContext object representing a three-dimensional rendering context. This context is only available on browsers that implement WebGL version 2 (OpenGL ES 3.0).\n

\n
\"webgpu\"
\n
\n

Creates a GPUCanvasContext object representing a three-dimensional rendering context for WebGPU render pipelines. This context is only available on browsers that implement WebGPU API.\n

\n
bitmaprenderer
\n
\n

Creates a ImageBitmapRenderingContext which only provides functionality to replace the content of the canvas with a given ImageBitmap.\n

\n
\n
\n

Note:\nThe identifiers \"experimental-webgl\" or \"experimental-webgl2\" are also used in implementations of WebGL.\nThese implementations have not reached test suite conformance, or the graphic drivers situation on the platform is not yet stable.\nThe Khronos Group certifies WebGL implementations under certain conformance rules.\n

", - "contextAttributes": "You can use several context attributes when creating your rendering context, for example:\n
\n```js\noffscreen.getContext(\"webgl\", { antialias: false, depth: false });\n```\n
\n

2d context attributes:\n

\n
alpha
\n
\n

Boolean that indicates if the canvas contains an alpha channel. If set to false, the browser now knows that the backdrop is always opaque, which can speed up drawing of transparent content and images then.\n

\n
willReadFrequently
\n
\n

Boolean that indicates whether or not a lot of read-back operations are planned.\nThis will force the use of a software (instead of hardware accelerated) 2D canvas and can save memory when calling getImageData() frequently.\nIn Firefox this option is only available if the flag gfx.canvas.willReadFrequently.enable is set to true (which, by default, is only the case for B2G/Firefox OS).\n

\n
\n

WebGL context attributes:\n

\n
alpha
\n
\n

Boolean that indicates if the canvas contains an alpha buffer.\n

\n
depth
\n
\n

Boolean that indicates that the drawing buffer is requested to have a depth buffer of at least 16 bits.\n

\n
stencil
\n
\n

Boolean that indicates that the drawing buffer is requested to have a stencil buffer of at least 8 bits.\n

\n
antialias
\n
\n

Boolean that indicates whether or not to perform anti-aliasing if possible.\n

\n
premultipliedAlpha
\n
\n

Boolean that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.\n

\n
preserveDrawingBuffer
\n
\n

If the value is true the buffers will not be cleared and will preserve their values until cleared or overwritten by the author.\n

\n
failIfMajorPerformanceCaveat
\n
\n

Boolean that indicates if a context will be created if the system performance is low.\n

\n
" + "contextAttributes": "You can use several context attributes when creating your rendering context, for example:\n
\n```js\nconst gl = canvas.getContext(\"webgl\", {\n  antialias: false,\n  depth: false,\n});\n```\n
\n

2d context attributes:\n

\n
alpha
\n
\n

A boolean value that indicates if the canvas contains an alpha channel. If set to false, the browser now knows that the backdrop is always opaque, which can speed up drawing of transparent content and images.\n

\n
colorSpace Optional
\n
\n

Specifies the color space of the rendering context. Possible values are:\n

\n
\n
colorType Optional
\n
\n

Specifies the color type of the rendering context. Possible values are:\n

    \n
  • \"unorm8\" sets the color channels to 8 bit unsigned values. This is the default value.
  • \n
  • \"float16\" sets the color channels to 16-bit floating-point values.
  • \n
\n
\n
desynchronized
\n
\n

A boolean value that hints the user agent to reduce the latency by desynchronizing the canvas paint cycle from the event loop.\n

\n
willReadFrequently
\n
\n

A boolean value that indicates whether or not a lot of read-back operations are planned. This will force the use of a software (instead of hardware accelerated) 2D canvas and can save memory when calling getImageData() frequently.\n

\n
\n

WebGL context attributes:\n

\n
alpha
\n
\n

A boolean value that indicates if the canvas contains an alpha buffer.\n

\n
depth
\n
\n

A boolean value that indicates that the drawing buffer is requested to have a depth buffer of at least 16 bits.\n

\n
stencil
\n
\n

A boolean value that indicates that the drawing buffer is requested to have a stencil buffer of at least 8 bits.\n

\n
desynchronized
\n
\n

A boolean value that hints the user agent to reduce the latency by desynchronizing the canvas paint cycle from the event loop.\n

\n
antialias
\n
\n

A boolean value that indicates whether or not to perform anti-aliasing if possible.\n

\n
failIfMajorPerformanceCaveat
\n
\n

A boolean value that indicates if a context will be created if the system performance is low or if no hardware GPU is available.\n

\n
powerPreference
\n
\n

A hint to the user agent indicating what configuration of GPU is suitable for the WebGL context. Possible values are:\n

\n
\"default\"
\n
\n

Let the user agent decide which GPU configuration is most suitable. This is the default value.\n

\n
\"high-performance\"
\n
\n

Prioritizes rendering performance over power consumption.\n

\n
\"low-power\"
\n
\n

Prioritizes power saving over rendering performance.\n

\n
\n
\n
premultipliedAlpha
\n
\n

A boolean value that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.\n

\n
preserveDrawingBuffer
\n
\n

If the value is true the buffers will not be cleared and will preserve their values until cleared or overwritten by the author.\n

\n
xrCompatible
\n
\n

A boolean value that hints to the user agent to use a compatible graphics adapter for an immersive XR device. Setting this synchronous flag at context creation is discouraged; rather call the asynchronous WebGLRenderingContext.makeXRCompatible() method the moment you intend to start an XR session.\n

\n
\n
\n

Note:\nThe WebGPU specification does not define any specific context attributes for getContext(). Instead, it provides configuration options via the GPUCanvasContext.configure() method.\n

" }, "returns": "A rendering context which is either a\n\n

If the context identifier is not supported, or the canvas has already been set to a different context mode, null is returned.", "throws": { @@ -12741,8 +12863,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The height property returns and sets the height of an OffscreenCanvas object." }, @@ -12762,8 +12885,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The OffscreenCanvas() constructor returns a newly instantiated OffscreenCanvas object.", "parameters": { @@ -12787,8 +12911,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The OffscreenCanvas.transferToImageBitmap() method creates an ImageBitmap object from the most recently rendered image of the OffscreenCanvas. The OffscreenCanvas allocates a new image for its subsequent rendering.", "returns": "A newly-allocated ImageBitmap.\n

This ImageBitmap references a potentially large graphics resource, and to ensure your web application remains robust, it is important to avoid allocating too many of these resources at any point in time. For this reason it is important to ensure that the ImageBitmap is either consumed or closed.\n

As described in the OffscreenCanvas examples, passing this ImageBitmap to ImageBitmapRenderingContext.transferFromImageBitmap() consumes the ImageBitmap object; it no longer references the underlying graphics resource, and can not be passed to any other web APIs.\n

If your goal is to pass the ImageBitmap to other web APIs which do not consume it - for example, CanvasRenderingContext2D.drawImage() - then you should close it when you're done with it by calling ImageBitmap.close(). Don't simply drop the JavaScript reference to the ImageBitmap; doing so will keep its graphics resource alive until the next time the garbage collector runs.\n

If you call transferToImageBitmap() and don't intend to pass it to ImageBitmapRenderingContext.transferFromImageBitmap(), consider whether you need to call transferToImageBitmap() at all. Many web APIs which accept ImageBitmap also accept OffscreenCanvas as an argument.", @@ -12812,8 +12937,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The width property returns and sets the width of an OffscreenCanvas object." }, @@ -12833,8 +12959,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The OffscreenCanvasRenderingContext2D interface is a CanvasRenderingContext2D rendering context for drawing to the bitmap of an OffscreenCanvas object.\nIt is similar to the CanvasRenderingContext2D object, with the following differences:\n

    \n
  • there is no support for user-interface features (drawFocusIfNeeded)
  • \n
  • its canvas attribute refers to an OffscreenCanvas object rather than a <canvas> element
  • \n
  • the bitmap for the placeholder <canvas> element belonging to the OffscreenCanvas object is updated during the rendering update of the Window or Worker that owns the OffscreenCanvas
  • \n
" }, @@ -13066,7 +13193,8 @@ "Firefox": "105", "FirefoxAndroid": "105" }, - "doc": "

Note: This feature is available in Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The\nOffscreenCanvasRenderingContext2D.commit()\nmethod of the Canvas 2D API was intended to copy the rendering context's bitmap to the bitmap of the placeholder <canvas> element of the associated OffscreenCanvas object.\nThe copy operation is synchronous. Calling this method is not needed for the transfer, since it happens automatically during the event-loop execution." + "doc": "

Note: This feature is available in Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The\nOffscreenCanvasRenderingContext2D.commit()\nmethod of the Canvas 2D API was intended to copy the rendering context's bitmap to the bitmap of the placeholder <canvas> element of the associated OffscreenCanvas object.\nThe copy operation is synchronous. Calling this method is not needed for the transfer, since it happens automatically during the event-loop execution.", + "returns": "None (undefined)." }, "offscreencanvasrenderingcontext2d.createconicgradient": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/createconicgradient", @@ -13119,7 +13247,7 @@ "parameters": { "width": "The width to give the new ImageData object. A negative value flips the\nrectangle around the vertical axis.", "height": "The height to give the new ImageData object. A negative value flips the\nrectangle around the horizontal axis.", - "settings": "An object with the following properties:\n

", + "settings": "An object with the following properties:\n
\n
colorSpace
\n
\n

Specifies the color space of the image data. Can be set to \"srgb\" for the sRGB color space or \"display-p3\" for the display-p3 color space.\n

\n
pixelFormat
\n
\n

Specifies the pixel format. Possible values:\n

    \n
  • \"rgba-unorm8\", for RGBA with 8 bit per component unsigned normalized format, using a Uint8ClampedArray.
  • \n
  • \"rgba-float16\", for RGBA with 16 bits per component, using a Float16Array. Floating-point pixel values allow representing colors in arbitrarily wide gamuts and high dynamic range (HDR).
  • \n
\n
\n
", "imagedata": "An existing ImageData object from which to copy the width and height.\nThe image itself is not copied." }, "returns": "A new ImageData object with the specified width and height. The new\nobject is filled with transparent black pixels.", @@ -13268,12 +13396,12 @@ "image": "An element to draw into the context. The specification permits any canvas image\nsource, specifically,\nan HTMLImageElement,\nan SVGImageElement,\nan HTMLVideoElement,\nan HTMLCanvasElement,\nan ImageBitmap,\nan OffscreenCanvas,\nor a VideoFrame.", "sx": "The x-axis coordinate of the top left corner of the sub-rectangle of the source\nimage to draw into the destination context. Use the 3- or 5-argument syntax\nto omit this argument.", "sy": "The y-axis coordinate of the top left corner of the sub-rectangle of the source\nimage to draw into the destination context. Use the 3- or 5-argument syntax\nto omit this argument.", - "sWidth": "The width of the sub-rectangle of the source image to draw into the\ndestination context. If not specified, the entire rectangle from the coordinates\nspecified by sx and sy to the bottom-right corner of the\nimage is used. Use the 3- or 5-argument syntax to omit this argument.\nA negative value will flip the image.", - "sHeight": "The height of the sub-rectangle of the source image to draw into the\ndestination context. Use the 3- or 5-argument syntax to omit this argument.\nA negative value will flip the image.", + "sWidth": "The width of the sub-rectangle of the source image to draw into the\ndestination context. If not specified, the entire rectangle from the coordinates\nspecified by sx and sy to the bottom-right corner of the\nimage is used. Use the 3- or 5-argument syntax to omit this argument.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped.", + "sHeight": "The height of the sub-rectangle of the source image to draw into the\ndestination context. Use the 3- or 5-argument syntax to omit this argument.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped.", "dx": "The x-axis coordinate in the destination canvas at which to place the top-left\ncorner of the source image.", "dy": "The y-axis coordinate in the destination canvas at which to place the top-left\ncorner of the source image.", - "dWidth": "The width to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in width when\ndrawn. Note that this argument is not included in the 3-argument syntax.", - "dHeight": "The height to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in height when\ndrawn. Note that this argument is not included in the 3-argument syntax." + "dWidth": "The width to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in width when\ndrawn. Note that this argument is not included in the 3-argument syntax.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped.", + "dHeight": "The height to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in height when\ndrawn. Note that this argument is not included in the 3-argument syntax.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped." }, "returns": "None (undefined).", "throws": { @@ -13390,7 +13518,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The\nCanvasRenderingContext2D.fillStyle\nproperty of the Canvas 2D API specifies the\ncolor, gradient, or pattern to use inside shapes. The default style is #000\n(black).\n
\n

Note:\nFor more examples of fill and stroke styles, see Applying styles and color in the Canvas tutorial.\n

" + "doc": "The\nCanvasRenderingContext2D.fillStyle\nproperty of the Canvas 2D API specifies the\ncolor, gradient, or pattern to use inside shapes. The default style is black.\n
\n

Note:\nFor more examples of fill and stroke styles, see Applying styles and color in the Canvas tutorial.\n

" }, "offscreencanvasrenderingcontext2d.filltext": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/filltext", @@ -13514,6 +13642,28 @@ }, "doc": "The CanvasRenderingContext2D.fontVariantCaps property of the Canvas API specifies an alternative capitalization of the rendered text.\n

This corresponds to the CSS font-variant-caps property." }, + "offscreencanvasrenderingcontext2d.getcontextattributes": { + "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/getcontextattributes", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "73", + "ChromeAndroid": "73", + "Edge": "79", + "Firefox": "117", + "FirefoxAndroid": "117", + "Opera": "60", + "Safari": "15", + "SafariIOS": "15" + }, + "baseline": { + "level": "LOW", + "lowDate": "2023-08-29" + }, + "doc": "The CanvasRenderingContext2D.getContextAttributes() method returns an object that contains attributes used by the context.\n

Note that context attributes may be requested when creating the context with HTMLCanvasElement.getContext(), but the attributes that are actually supported and used may differ.", + "returns": "A CanvasRenderingContext2DSettings object that contains the actual context parameters.\nIt has the following members:\n

\n
alpha Optional
\n
\n

A Boolean indicating if the canvas contains an alpha channel.\nIf false, the backdrop is always opaque, which can speed up drawing of transparent content and images.\n

\n
colorSpace Optional
\n
\n

Indicates the color space of the rendering context. Possible values are:\n

\n
\n
colorType Optional
\n
\n

Indicates the color type of the rendering context. Possible values are:\n

    \n
  • \"unorm8\" denotes the color channels to 8 bit unsigned values. This is the default value.
  • \n
  • \"float16\" denotes the color channels to 16-bit floating-point values.
  • \n
\n
\n
desynchronized Optional
\n
\n

A Boolean indicating the user agent reduced the latency by desynchronizing the canvas paint cycle from the event loop.\n

\n
willReadFrequently Optional
\n
\n

A Boolean indicating whether or not this canvas uses software acceleration (instead of hardware acceleration) to support frequent read-back operations via getImageData().\n

\n
" + }, "offscreencanvasrenderingcontext2d.getimagedata": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/getimagedata", "status": [ @@ -13540,7 +13690,7 @@ "sy": "The y-axis coordinate of the top-left corner of the rectangle from which the\nImageData will be extracted.", "sw": "The width of the rectangle from which the ImageData will be extracted.\nPositive values are to the right, and negative to the left.", "sh": "The height of the rectangle from which the ImageData will be extracted.\nPositive values are down, and negative are up.", - "settings": "An object with the following properties:\n" + "settings": "An object with the following properties:\n
\n
colorSpace
\n
\n

Specifies the color space of the image data. Can be set to \"srgb\" for the sRGB color space or \"display-p3\" for the display-p3 color space.\n

\n
pixelFormat
\n
\n

Specifies the pixel format. Possible values:\n

    \n
  • \"rgba-unorm8\", for RGBA with 8 bit per component unsigned normalized format, using a Uint8ClampedArray.
  • \n
  • \"rgba-float16\", for RGBA with 16 bits per component, using a Float16Array. Floating-point pixel values allow representing colors in arbitrarily wide gamuts and high dynamic range (HDR).
  • \n
\n
\n
" }, "returns": "An ImageData object containing the image data for the rectangle of the\ncanvas specified. The coordinates of the rectangle's top-left corner are\n(sx, sy), while the coordinates of the bottom corner are\n(sx + sw - 1, sy + sh - 1).", "throws": { @@ -13754,6 +13904,23 @@ }, "returns": "
\n
A boolean value
\n
\n

A Boolean, which is true if the point is inside the area contained by\nthe stroking of a path, otherwise false.\n

\n
" }, + "offscreencanvasrenderingcontext2d.lang": { + "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/lang", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "ChromeAndroid": "136", + "Edge": "136", + "Opera": "121" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The CanvasRenderingContext2D.lang property of the Canvas 2D API gets or sets the language of the canvas drawing context." + }, "offscreencanvasrenderingcontext2d.letterspacing": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/letterspacing", "status": [ @@ -14101,7 +14268,8 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The\nCanvasRenderingContext2D.resetTransform()\nmethod of the Canvas 2D API resets the current transform to the identity matrix." + "doc": "The\nCanvasRenderingContext2D.resetTransform()\nmethod of the Canvas 2D API resets the current transform to the identity matrix.", + "returns": "None (undefined)." }, "offscreencanvasrenderingcontext2d.restore": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/restore", @@ -14454,7 +14622,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The CanvasRenderingContext2D.strokeStyle property of the\nCanvas 2D API specifies the color, gradient, or pattern to use for the strokes\n(outlines) around shapes. The default is #000 (black).\n

\n

Note:\nFor more examples of stroke and fill styles, see Applying styles and color in the Canvas tutorial.\n

" + "doc": "The CanvasRenderingContext2D.strokeStyle property of the\nCanvas 2D API specifies the color, gradient, or pattern to use for the strokes\n(outlines) around shapes. The default is black.\n
\n

Note:\nFor more examples of stroke and fill styles, see Applying styles and color in the Canvas tutorial.\n

" }, "offscreencanvasrenderingcontext2d.stroketext": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/stroketext", @@ -15350,12 +15518,12 @@ "image": "An element to draw into the context. The specification permits any canvas image\nsource, specifically,\nan HTMLImageElement,\nan SVGImageElement,\nan HTMLVideoElement,\nan HTMLCanvasElement,\nan ImageBitmap,\nan OffscreenCanvas,\nor a VideoFrame.", "sx": "The x-axis coordinate of the top left corner of the sub-rectangle of the source\nimage to draw into the destination context. Use the 3- or 5-argument syntax\nto omit this argument.", "sy": "The y-axis coordinate of the top left corner of the sub-rectangle of the source\nimage to draw into the destination context. Use the 3- or 5-argument syntax\nto omit this argument.", - "sWidth": "The width of the sub-rectangle of the source image to draw into the\ndestination context. If not specified, the entire rectangle from the coordinates\nspecified by sx and sy to the bottom-right corner of the\nimage is used. Use the 3- or 5-argument syntax to omit this argument.\nA negative value will flip the image.", - "sHeight": "The height of the sub-rectangle of the source image to draw into the\ndestination context. Use the 3- or 5-argument syntax to omit this argument.\nA negative value will flip the image.", + "sWidth": "The width of the sub-rectangle of the source image to draw into the\ndestination context. If not specified, the entire rectangle from the coordinates\nspecified by sx and sy to the bottom-right corner of the\nimage is used. Use the 3- or 5-argument syntax to omit this argument.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped.", + "sHeight": "The height of the sub-rectangle of the source image to draw into the\ndestination context. Use the 3- or 5-argument syntax to omit this argument.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped.", "dx": "The x-axis coordinate in the destination canvas at which to place the top-left\ncorner of the source image.", "dy": "The y-axis coordinate in the destination canvas at which to place the top-left\ncorner of the source image.", - "dWidth": "The width to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in width when\ndrawn. Note that this argument is not included in the 3-argument syntax.", - "dHeight": "The height to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in height when\ndrawn. Note that this argument is not included in the 3-argument syntax." + "dWidth": "The width to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in width when\ndrawn. Note that this argument is not included in the 3-argument syntax.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped.", + "dHeight": "The height to draw the image in the destination canvas. This allows\nscaling of the drawn image. If not specified, the image is not scaled in height when\ndrawn. Note that this argument is not included in the 3-argument syntax.\nNegative values grow the sub-rectangle in the opposite direction, but pixels are always processed in the original direction and the image is not flipped." }, "returns": "None (undefined).", "throws": { @@ -15439,7 +15607,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The\nCanvasRenderingContext2D.fillStyle\nproperty of the Canvas 2D API specifies the\ncolor, gradient, or pattern to use inside shapes. The default style is #000\n(black).\n
\n

Note:\nFor more examples of fill and stroke styles, see Applying styles and color in the Canvas tutorial.\n

" + "doc": "The\nCanvasRenderingContext2D.fillStyle\nproperty of the Canvas 2D API specifies the\ncolor, gradient, or pattern to use inside shapes. The default style is black.\n
\n

Note:\nFor more examples of fill and stroke styles, see Applying styles and color in the Canvas tutorial.\n

" }, "paintrenderingcontext2d.filter": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/filter", @@ -15776,7 +15944,8 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The\nCanvasRenderingContext2D.resetTransform()\nmethod of the Canvas 2D API resets the current transform to the identity matrix." + "doc": "The\nCanvasRenderingContext2D.resetTransform()\nmethod of the Canvas 2D API resets the current transform to the identity matrix.", + "returns": "None (undefined)." }, "paintrenderingcontext2d.restore": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/restore", @@ -16097,7 +16266,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The CanvasRenderingContext2D.strokeStyle property of the\nCanvas 2D API specifies the color, gradient, or pattern to use for the strokes\n(outlines) around shapes. The default is #000 (black).\n
\n

Note:\nFor more examples of stroke and fill styles, see Applying styles and color in the Canvas tutorial.\n

" + "doc": "The CanvasRenderingContext2D.strokeStyle property of the\nCanvas 2D API specifies the color, gradient, or pattern to use for the strokes\n(outlines) around shapes. The default is black.\n
\n

Note:\nFor more examples of stroke and fill styles, see Applying styles and color in the Canvas tutorial.\n

" }, "paintrenderingcontext2d.transform": { "url": "$MDN_URL$/web/api/canvasrenderingcontext2d/transform", @@ -16768,10 +16937,10 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The PasswordCredential()\nconstructor creates a new PasswordCredential object. In\nsupporting browsers, an instance of this class may be passed the credential\nfrom the init object for global fetch().", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The PasswordCredential() constructor creates a new PasswordCredential object.", "parameters": { "data": "An object with the following properties:\n

\n
iconURL Optional
\n
\n

A string representing the URL of an icon or avatar to be associated with the credential.\n

\n
id
\n
\n

A string representing a unique ID for the credential.\n

\n
name Optional
\n
\n

A string representing the credential username.\n

\n
origin
\n
\n

A string representing the credential's origin. PasswordCredential objects are origin-bound, which means that they will only be usable on the specified origin they were intended to be used on.\n

\n
password
\n
\n

A string representing the credential password.\n

\n
", - "form": "A reference to an HTMLFormElement with appropriate input fields. The\nform should, at the very least, contain an id and password. It could also require a\nCSRF token." + "form": "A reference to an HTMLFormElement with appropriate input fields.\nThe form should, at the very least, contain an id and password.\nIt could also require a CSRF token." }, "throws": { "TypeError": "Thrown if one of the id, origin or password option is empty." @@ -17164,7 +17333,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The PaymentAddress interface of the Payment Request API is used to store shipping or payment address information.\n

It may be useful to refer to the Universal Postal Union website's Addressing S42 standard materials, which provide information about international standards for postal addresses." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The PaymentAddress interface of the Payment Request API is used to store shipping or payment address information.\n

It may be useful to refer to the Universal Postal Union website's Addressing S42 standard materials, which provide information about international standards for postal addresses." }, "paymentaddress.addressline": { "url": "$MDN_URL$/web/api/paymentaddress/addressline", @@ -17179,7 +17348,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The addressLine read-only\nproperty of the PaymentAddress interface is an array of\nstrings, each specifying a line of the address that is not\ncovered by one of the other properties of PaymentAddress.\n

These\nlines may include the street name, house number, apartment number, rural delivery route,\ndescriptive instructions, or post office box." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The addressLine read-only\nproperty of the PaymentAddress interface is an array of\nstrings, each specifying a line of the address that is not\ncovered by one of the other properties of PaymentAddress.\n

These\nlines may include the street name, house number, apartment number, rural delivery route,\ndescriptive instructions, or post office box." }, "paymentaddress.city": { "url": "$MDN_URL$/web/api/paymentaddress/city", @@ -17194,7 +17363,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The city read-only property of\nthe PaymentAddress interface returns a string containing the city or\ntown portion of the address." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The city read-only property of\nthe PaymentAddress interface returns a string containing the city or\ntown portion of the address." }, "paymentaddress.country": { "url": "$MDN_URL$/web/api/paymentaddress/country", @@ -17209,7 +17378,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The country read-only property of the\nPaymentAddress interface is a string identifying the address's country\nusing the ISO 3166-1 alpha-2 standard. The string is\nalways in its canonical upper-case form.\n

Some examples of valid country values: \"US\",\n\"GB\", \"CN\", or \"JP\"." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The country read-only property of the\nPaymentAddress interface is a string identifying the address's country\nusing the ISO 3166-1 alpha-2 standard. The string is\nalways in its canonical upper-case form.\n

Some examples of valid country values: \"US\",\n\"GB\", \"CN\", or \"JP\"." }, "paymentaddress.dependentlocality": { "url": "$MDN_URL$/web/api/paymentaddress/dependentlocality", @@ -17224,7 +17393,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The read-only dependentLocality\nproperty of the PaymentAddress interface is a string containing a\nsublocality designation within a city, such as a neighborhood, borough, district, or,\nin the United Kingdom, a dependent locality. Also known as a post\ntown." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The read-only dependentLocality\nproperty of the PaymentAddress interface is a string containing a\nsublocality designation within a city, such as a neighborhood, borough, district, or,\nin the United Kingdom, a dependent locality. Also known as a post\ntown." }, "paymentaddress.organization": { "url": "$MDN_URL$/web/api/paymentaddress/organization", @@ -17239,7 +17408,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The organization read-only\nproperty of the PaymentAddress interface returns a string containing\nthe name of the organization, firm, company, or institution at the address." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The organization read-only\nproperty of the PaymentAddress interface returns a string containing\nthe name of the organization, firm, company, or institution at the address." }, "paymentaddress.phone": { "url": "$MDN_URL$/web/api/paymentaddress/phone", @@ -17254,7 +17423,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The read-only phone property of the\nPaymentAddress interface returns a string containing the telephone number\nof the recipient or contact person." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The read-only phone property of the\nPaymentAddress interface returns a string containing the telephone number\nof the recipient or contact person." }, "paymentaddress.postalcode": { "url": "$MDN_URL$/web/api/paymentaddress/postalcode", @@ -17269,7 +17438,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The postalCode read-only property of the\nPaymentAddress interface returns a string containing a code used by a\njurisdiction for mail routing, for example, the ZIP Code\nin the United States or the Postal Index Number (PIN code)\nin India." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The postalCode read-only property of the\nPaymentAddress interface returns a string containing a code used by a\njurisdiction for mail routing, for example, the ZIP Code\nin the United States or the Postal Index Number (PIN code)\nin India." }, "paymentaddress.recipient": { "url": "$MDN_URL$/web/api/paymentaddress/recipient", @@ -17284,7 +17453,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The read-only recipient property of the\nPaymentAddress interface returns a string containing the name of the\nrecipient, purchaser, or contact person at the payment address." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The read-only recipient property of the\nPaymentAddress interface returns a string containing the name of the\nrecipient, purchaser, or contact person at the payment address." }, "paymentaddress.region": { "url": "$MDN_URL$/web/api/paymentaddress/region", @@ -17299,7 +17468,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The read-only region property of the\nPaymentAddress interface returns a string containing the top-level\nadministrative subdivision of the country in which the address is located. For example,\nthis may be a state, province, oblast, or prefecture." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The read-only region property of the\nPaymentAddress interface returns a string containing the top-level\nadministrative subdivision of the country in which the address is located. For example,\nthis may be a state, province, oblast, or prefecture." }, "paymentaddress.sortingcode": { "url": "$MDN_URL$/web/api/paymentaddress/sortingcode", @@ -17314,7 +17483,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The sortingCode read-only property of the\nPaymentAddress interface returns a string containing a postal sorting\ncode such as is used in France." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The sortingCode read-only property of the\nPaymentAddress interface returns a string containing a postal sorting\ncode such as is used in France." }, "paymentaddress.tojson": { "url": "$MDN_URL$/web/api/paymentaddress/tojson", @@ -17329,7 +17498,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The toJSON() method of the PaymentAddress interface is a standard serializer that returns a JSON representation of the PaymentAddress object's properties.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The toJSON() method of the PaymentAddress interface is a standard serializer that returns a JSON representation of the PaymentAddress object's properties.", "returns": "A JSON object." }, "paymentmanager": { @@ -17565,6 +17734,24 @@ "SecurityError DOMException": "Use of this feature was blocked by a Permissions Policy." } }, + "paymentrequest.securepaymentconfirmationavailability": { + "url": "$MDN_URL$/web/api/paymentrequest/securepaymentconfirmationavailability_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The securePaymentConfirmationAvailability() static method of the PaymentRequest interface indicates whether the Secure payment confirmation (SPC) feature is available.", + "returns": "A Promise that resolves with an enumerated value indicating whether SPC is available, and if not, a reason for non-availability.\n

Possible values are:\n

\n
available
\n
\n

SPC is available in the calling frame. This doesn't guarantee that an SPC-compatible credential is available to authenticate against.\n

\n
unavailable-unknown-reason
\n
\n

SPC is not available in the calling frame, for an unknown reason. The browser may return this result instead of a more specific reason, in order to protect user privacy.\n

\n
unavailable-feature-not-enabled
\n
\n

SPC is not available in the calling frame because it is not enabled.\n

\n
unavailable-no-permission-policy
\n
\n

SPC is not available in the calling frame, because it is blocked by a payment Permissions Policy.\n

\n
unavailable-no-user-verifying-platform-authenticator
\n
\n

SPC is not available in the calling frame, because there is no user-verifying platform authenticator available (PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() can also be used to discern this information).\n

\n
" + }, "paymentrequest.shippingaddress": { "url": "$MDN_URL$/web/api/paymentrequest/shippingaddress", "status": [ @@ -17578,7 +17765,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The shippingAddress read-only property of\nthe PaymentRequest interface returns the shipping address provided by the\nuser. It is null by default." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The shippingAddress read-only property of\nthe PaymentRequest interface returns the shipping address provided by the\nuser. It is null by default." }, "paymentrequest.shippingoption": { "url": "$MDN_URL$/web/api/paymentrequest/shippingoption", @@ -17593,7 +17780,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The shippingOption read-only attribute of the PaymentRequest interface returns either the id of a selected shipping option, null (if no shipping option was set to be selected) or a shipping option selected by the user.\nIt is initially null by when no \"selected\" shipping options are provided.\n

This attribute is only populated if the constructor is called with the requestShipping flag set to true.\nIf requestShipping was false (or missing), shippingOption returns null, even the developer provides a selected a shipping option." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The shippingOption read-only attribute of the PaymentRequest interface returns either the id of a selected shipping option, null (if no shipping option was set to be selected) or a shipping option selected by the user.\nIt is initially null by when no \"selected\" shipping options are provided.\n

This attribute is only populated if the constructor is called with the requestShipping flag set to true.\nIf requestShipping was false (or missing), shippingOption returns null, even the developer provides a selected a shipping option." }, "paymentrequest.shippingtype": { "url": "$MDN_URL$/web/api/paymentrequest/shippingtype", @@ -17608,7 +17795,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The shippingType read-only property of the\nPaymentRequest interface returns one of \"shipping\",\n\"delivery\", \"pickup\", or null if one was not\nprovided by the constructor." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The shippingType read-only property of the\nPaymentRequest interface returns one of \"shipping\",\n\"delivery\", \"pickup\", or null if one was not\nprovided by the constructor." }, "paymentrequest.show": { "url": "$MDN_URL$/web/api/paymentrequest/show", @@ -17677,10 +17864,6 @@ }, "returns": "A Promise that resolves with a PaymentRequestDetailsUpdate object. This object contains the following properties:\n

\n
error
\n
\n

A string that explains why the user-selected payment method cannot be used.\n

\n
total
\n
\n

An updated total based on the changed payment method. The total can change, for example, because the billing address of the payment method selected by the user changes the applicable sales tax.\n

\n
modifiers
\n
\n

An Array of PaymentDetailsModifier objects, whose properties are described in PaymentRequestEvent.modifiers.\n

\n
paymentMethodErrors
\n
\n

An object containing validation errors for the payment method, if any.\n

\n
" }, - "paymentrequestevent.instrumentkey": { - "url": "$MDN_URL$/web/api/paymentrequestevent/instrumentkey", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is only available in Service Workers.

\n

The instrumentKey read-only property of the\nPaymentRequestEvent interface returns a\nPaymentInstrument object reflecting the payment instrument selected by\nthe user or an empty string if the user has not registered or chosen a payment\ninstrument." - }, "paymentrequestevent.methoddata": { "url": "$MDN_URL$/web/api/paymentrequestevent/methoddata", "status": [ @@ -18076,7 +18259,7 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The PaymentResponse interface's\nretry() method makes it possible to ask the user to\nretry a payment after an error occurs during processing.\n

This lets your app\ngracefully deal with situations such as invalid shipping addresses or declined credit\ncards.", "parameters": { - "errorFields": "An object, with the following properties:\n

\n
error Optional
\n
\n

A general description of a payment error from which the user may attempt to recover by retrying the payment, possibly after correcting mistakes in the payment information. error can be provided all by itself to provide only a generic error message, or in concert with the other properties to serve as an overview while other properties' values guide the user to errors in specific fields in the payment form.\n

\n
`paymentMethod Optional
\n
\n

Any payment-method-specific errors which may have occurred. This object's contents will vary depending on the payment method used.\n

\n
" + "errorFields": "An object, with the following properties:\n
\n
error Optional
\n
\n

A general description of a payment error from which the user may attempt to recover by retrying the payment, possibly after correcting mistakes in the payment information. error can be provided all by itself to provide only a generic error message, or in concert with the other properties to serve as an overview while other properties' values guide the user to errors in specific fields in the payment form.\n

\n
paymentMethod Optional
\n
\n

Any payment-method-specific errors which may have occurred. This object's contents will vary depending on the payment method used.\n

\n
" }, "returns": "A Promise which is resolved when the payment is successfully completed.\nThe promise is rejected with an appropriate exception value if the payment fails again.\n

Typically you will use this by calling show(),\nthen entering a loop or recursive function that checks the\nPaymentResponse for errors or other reasons to retry the payment request.\nIf a retry is needed, the loop calls retry(), then loops back to check the\nresponse when it comes in. The loop exits only when the user either cancels the payment\nrequest or the request is successful.\n

See the example below for a thorough example, but the basic\nconcept, in outline form, is:\n

    \n
  1. \n

    Create a new PaymentRequest\n(new PaymentRequest())\n

  2. \n
  3. \n

    Display the payment request (PaymentRequest.show()\n

  4. \n
  5. \n

    If show() resolves, the returned PaymentResponse\ndescribes the requested payment and the options chosen by the user. Continue with the following steps:\n

      \n
    1. Validate the returned response; if there are any fields whose values are not\nacceptable, call the response's complete() method with a value of \"fail\" to indicate failure.
    2. \n
    3. If the response's data is valid and acceptable, call\ncomplete(\"success\") to finalize the payment and process it.
    4. \n
    \n
  6. \n
  7. \n

    If show() is rejected, the payment request failed, usually because\neither there's already one being processed, because the user agent\ndoesn't support any of the specified payment methods, or because of a security issue.\nSee the list of exceptions for show() for further details. Call\ncomplete(\"fail\") to close the payment request.\n

  8. \n
\n
js
async function handlePayment() {\n  const payRequest = new PaymentRequest(methodData, details, options);\n\n  try {\n    let payResponse = await payRequest.show();\n\n    while (validate(payResponse)) {\n      /* let the user edit the payment information,\n         wait until they submit */\n      await response.retry();\n    }\n    await payResponse.complete(\"success\");\n  } catch (err) {\n    /* handle the exception */\n  }\n}\n
" }, @@ -18425,7 +18608,7 @@ "level": "NONE" }, "doc": "

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The measureUserAgentSpecificMemory() method is used to estimate the memory usage of a web application including all its iframes and workers.", - "returns": "A Promise that resolves to an object containing the following properties:\n

\n
bytes
\n
\n

A number representing the total memory usage.\n

\n
breakdown
\n
\n

An Array of objects partitioning the total bytes and providing attribution and type information. The object contains the following properties:\n

\n
bytes
\n
\n

The size of the memory that this entry describes.\n

\n
attribution
\n
\n

An Array of container elements of the JavaScript realms that use the memory. This object has the following properties:\n

\n
url
\n
\n

If this attribution corresponds to a same-origin JavaScript realm, then this property contains the realm's URL. Otherwise it is the string \"cross-origin-url\".\n

\n
container
\n
\n

An object describing the DOM element that contains this JavaScript realm. This object has the following properties:\n

\n
id
\n
\n

The id attribute of the container element.\n

\n
src
\n
\n

The src attribute of the container element. If the container element is an <object> element, then this field contains the value of the data attribute.\n

\n
\n
\n
scope
\n
\n

A string describing the type of the same-origin JavaScript realm. Either \"Window\", \"DedicatedWorkerGlobalScope\", \"SharedWorkerGlobalScope\", \"ServiceWorkerGlobalScope\" or \"cross-origin-aggregated\" for the cross-origin case.\n

\n
\n
\n
types
\n
\n

An array of implementation-defined memory types associated with the memory.\n

\n
\n
\n
\n

An example return value looks like this:\n

json
{\n  \"bytes\": 1500000,\n  \"breakdown\": [\n    {\n      \"bytes\": 1000000,\n      \"attribution\": [\n        {\n          \"url\": \"https://example.com\",\n          \"scope\": \"Window\",\n        },\n      ],\n      \"types\": [\"DOM\", \"JS\"],\n    },\n    {\n      \"bytes\": 0,\n      \"attribution\": [],\n      \"types\": [],\n    },\n    {\n      \"bytes\": 500000,\n      \"attribution\": [\n        {\n          \"url\": \"https://example.com/iframe.html\"\n          \"container\": {\n            \"id\": \"example-id\",\n            \"src\": \"redirect.html?target=iframe.html\",\n          },\n          \"scope\": \"Window\",\n        }\n      ],\n      \"types\": [\"JS\", \"DOM\"],\n    },\n  ],\n}\n
", + "returns": "A Promise that resolves to an object containing the following properties:\n
\n
bytes
\n
\n

A number representing the total memory usage.\n

\n
breakdown
\n
\n

An Array of objects partitioning the total bytes and providing attribution and type information. The object contains the following properties:\n

\n
bytes
\n
\n

The size of the memory that this entry describes.\n

\n
attribution
\n
\n

An Array of container elements of the JavaScript realms that use the memory. This object has the following properties:\n

\n
url
\n
\n

If this attribution corresponds to a same-origin JavaScript realm, then this property contains the realm's URL. Otherwise it is the string \"cross-origin-url\".\n

\n
container
\n
\n

An object describing the DOM element that contains this JavaScript realm. This object has the following properties:\n

\n
id
\n
\n

The id attribute of the container element.\n

\n
src
\n
\n

The src attribute of the container element. If the container element is an <object> element, then this field contains the value of the data attribute.\n

\n
\n
\n
scope
\n
\n

A string describing the type of the same-origin JavaScript realm. Either \"Window\", \"DedicatedWorkerGlobalScope\", \"SharedWorkerGlobalScope\", \"ServiceWorkerGlobalScope\" or \"cross-origin-aggregated\" for the cross-origin case.\n

\n
\n
\n
types
\n
\n

An array of implementation-defined memory types associated with the memory.\n

\n
\n
\n
\n

An example return value looks like this:\n

json
{\n  \"bytes\": 1500000,\n  \"breakdown\": [\n    {\n      \"bytes\": 1000000,\n      \"attribution\": [\n        {\n          \"url\": \"https://example.com\",\n          \"scope\": \"Window\"\n        }\n      ],\n      \"types\": [\"DOM\", \"JS\"]\n    },\n    {\n      \"bytes\": 0,\n      \"attribution\": [],\n      \"types\": []\n    },\n    {\n      \"bytes\": 500000,\n      \"attribution\": [\n        {\n          \"url\": \"https://example.com/iframe.html\",\n          \"container\": {\n            \"id\": \"example-id\",\n            \"src\": \"redirect.html?target=iframe.html\"\n          },\n          \"scope\": \"Window\"\n        }\n      ],\n      \"types\": [\"JS\", \"DOM\"]\n    }\n  ]\n}\n
", "throws": { "SecurityError DOMException": "Thrown if the security requirements for preventing cross-origin information leaks aren't fulfilled." } @@ -18441,7 +18624,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The non-standard and legacy memory read-only property returns the size of the JavaScript heap which can be helpful to measure and reduce the memory footprint of websites.\n

Note that the information this API provides is unreliable as it might overestimate actual memory usage if web pages share the same heap, or might underestimate actual memory usage if web pages use workers and/or cross-site iframes that are allocated in separate heaps. It is not standardized what \"heap\" means exactly. The API is only available in Chromium-based browsers.\n

A new API aiming to replace performance.memory is Performance.measureUserAgentSpecificMemory(). It tries to estimate the memory used by a web page." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The non-standard and legacy memory read-only property returns the size of the JavaScript heap which can be helpful to measure and reduce the memory footprint of websites.\n

Note that the information this API provides is unreliable as it might overestimate actual memory usage if web pages share the same heap, or might underestimate actual memory usage if web pages use workers and/or cross-site iframes that are allocated in separate heaps. It is not standardized what \"heap\" means exactly. The API is only available in Chromium-based browsers.\n

A new API aiming to replace performance.memory is Performance.measureUserAgentSpecificMemory(). It tries to estimate the memory used by a web page." }, "performance.navigation": { "url": "$MDN_URL$/web/api/performance/navigation", @@ -18952,20 +19135,20 @@ "performanceeventtiming.interactionid": { "url": "$MDN_URL$/web/api/performanceeventtiming/interactionid", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "96", "ChromeAndroid": "96", "Edge": "96", - "Firefox": "preview", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "82" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The read-only interactionId property returns an ID that uniquely identifies a user interaction which triggered a series of associated events." + "doc": "The read-only interactionId property or the PerformanceEventTiming interface returns an ID that uniquely identifies a user interaction which triggered a series of associated events." }, "performanceeventtiming.processingend": { "url": "$MDN_URL$/web/api/performanceeventtiming/processingend", @@ -19089,7 +19272,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The firstUIEventTimestamp read-only property of the PerformanceLongAnimationFrameTiming interface returns a DOMHighResTimeStamp indicating the time of the first UI event — such as a mouse or keyboard event — to be queued during the current animation frame." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The firstUIEventTimestamp read-only property of the PerformanceLongAnimationFrameTiming interface returns a DOMHighResTimeStamp indicating the time of the first UI event — such as a mouse or keyboard event — to be processed during the current animation frame. Note this timestamp can be before the start of this animation frame if there was a delay between the event happening and it being processed." }, "performancelonganimationframetiming.renderstart": { "url": "$MDN_URL$/web/api/performancelonganimationframetiming/renderstart", @@ -19702,7 +19885,7 @@ "lowDate": "2021-10-25", "highDate": "2024-04-25" }, - "doc": "The unloadEventEnd read-only property returns a DOMHighResTimeStamp representing the time immediately after the current document's unload event handler completes." + "doc": "The unloadEventEnd read-only property returns a DOMHighResTimeStamp representing the time immediately after the previous document's unload event handler completes." }, "performancenavigationtiming.unloadeventstart": { "url": "$MDN_URL$/web/api/performancenavigationtiming/unloadeventstart", @@ -19724,7 +19907,7 @@ "lowDate": "2021-10-25", "highDate": "2024-04-25" }, - "doc": "The unloadEventStart read-only property returns a DOMHighResTimeStamp representing the time immediately before the current document's unload event handler starts." + "doc": "The unloadEventStart read-only property returns a DOMHighResTimeStamp representing the time immediately before the previous document's unload event handler starts." }, "performanceobserver": { "url": "$MDN_URL$/web/api/performanceobserver", @@ -20099,8 +20282,9 @@ "Nodejs": "18.2.0" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The decodedBodySize read-only property returns the size (in octets) received from the fetch (HTTP or cache) of the message body after removing any applied content encoding (like gzip or Brotli). If the resource is retrieved from an application cache or local resources, it returns the size of the payload after removing any applied content encoding." }, @@ -20185,8 +20369,9 @@ "Nodejs": "18.2.0" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The encodedBodySize read-only property represents the size (in octets) received from the fetch (HTTP or cache) of the payload body before removing any applied content encodings (like gzip or Brotli). If the resource is retrieved from an application cache or a local resource, it must\nreturn the size of the payload body before removing any applied content encoding." }, @@ -20479,8 +20664,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The serverTiming read-only property returns an array of PerformanceServerTiming entries containing server timing metrics.\n

Server timing metrics require the server to send the Server-Timing header. For example:\n

\n```http\nServer-Timing: cache;desc=\"Cache Read\";dur=23.2\n```\n
\n

The serverTiming entries can live on navigation and resource entries." }, @@ -20525,8 +20711,9 @@ "Nodejs": "18.2.0" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The transferSize read-only property represents the size (in octets) of the fetched resource. The size includes the response header fields plus the response payload body (as defined by RFC7230).\n

If the resource is fetched from a local cache, or if it is a cross-origin resource, this property returns zero." }, @@ -20687,7 +20874,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The sourceFunctionName read-only property of the PerformanceScriptTiming interface returns a string representing the name of the function that contributed to the long animation frame (LoAF).\n

It is important to note that the reported function name will be the \"entry point\" of the script, that is, the top level of the stack, not any specific slow sub-function.\n

For example, if an event handler calls a top-level function, which then calls a slow sub-function, the source* fields will report the name and location of the top-level function, not the slow sub-function — the function that was passed to the platform API is always the one reported. This is because of performance reasons; a full stack trace is costly.\n

In the following snippet:\n

\n```js\nsetTimeout(function lib_func() {\n  slow_function();\n});\n```\n
\n

sourceFunctionName would report lib_func, not slow_function." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The sourceFunctionName read-only property of the PerformanceScriptTiming interface returns a string representing the name of the function that contributed to the long animation frame (LoAF).\n

It is important to note that the reported function name will be the \"entry point\" of the script, that is, the top level of the stack, not any specific slow sub-function.\n

For example, if an event handler calls a top-level function, which then calls a slow sub-function, the source* fields will report the name and location of the top-level function, not the slow sub-function — the function that was passed to the platform API is always the one reported. This is because of performance reasons; a full stack trace is costly.\n

In the following snippet:\n

\n```js\nsetTimeout(function libFunc() {\n  slowFunction();\n});\n```\n
\n

sourceFunctionName would report libFunc, not slowFunction." }, "performancescripttiming.sourceurl": { "url": "$MDN_URL$/web/api/performancescripttiming/sourceurl", @@ -20774,8 +20961,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The PerformanceServerTiming interface surfaces server metrics that are sent with the response in the Server-Timing HTTP header.\n

This interface is restricted to the same origin, but you can use the Timing-Allow-Origin header to specify the domains that are allowed to access the server metrics. Note that this interface is only available in secure contexts (HTTPS) in some browsers." }, @@ -20795,8 +20983,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The description read-only property returns a\nstring value of the server-specified metric description, or an empty\nstring." }, @@ -20816,8 +21005,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The duration read-only property returns a double that contains the server-specified metric duration, or the value 0.0." }, @@ -20837,8 +21027,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The name read-only property returns a\nstring value of the server-specified metric name." }, @@ -20858,8 +21049,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The toJSON() method of the PerformanceServerTiming interface is a serializer; it returns a JSON representation of the PerformanceServerTiming object.", "returns": "A JSON object that is the serialization of the PerformanceServerTiming object." @@ -21078,7 +21270,7 @@ "Safari": "8", "SafariIOS": "9" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis interface of this property is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming\ninterface's PerformanceNavigationTiming.loadEventEnd read-only property instead.\n

\n

The legacy\nPerformanceTiming.loadEventEnd\nread-only property returns an unsigned long long representing the moment,\nin milliseconds since the UNIX epoch, when the load event handler\nterminated, that is when the load event is completed. If this event has not yet been\nsent, or is not yet completed, it returns 0." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis interface of this property is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming\ninterface's PerformanceNavigationTiming.loadEventEnd read-only property instead.\n

\n

The legacy\nPerformanceTiming.loadEventEnd\nread-only property returns an unsigned long long representing the moment,\nin milliseconds since the UNIX epoch, when the load event handler\nterminated, that is when the load event is completed. If this event has not yet been\nsent, or is not yet completed, it returns 0." }, "performancetiming.loadeventstart": { "url": "$MDN_URL$/web/api/performancetiming/loadeventstart", @@ -21096,7 +21288,7 @@ "Safari": "8", "SafariIOS": "9" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis interface of this property is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming\ninterface's PerformanceNavigationTiming.loadEventStart read-only property instead.\n

\n

The legacy\nPerformanceTiming.loadEventStart\nread-only property returns an unsigned long long representing the moment,\nin milliseconds since the UNIX epoch, when the load event was sent for the\ncurrent document. If this event has not yet been sent, it returns 0." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning:\nThis interface of this property is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming\ninterface's PerformanceNavigationTiming.loadEventStart read-only property instead.\n

\n

The legacy\nPerformanceTiming.loadEventStart\nread-only property returns an unsigned long long representing the moment,\nin milliseconds since the UNIX epoch, when the load event was sent for the\ncurrent document. If this event has not yet been sent, it returns 0." }, "performancetiming.navigationstart": { "url": "$MDN_URL$/web/api/performancetiming/navigationstart", @@ -21291,6 +21483,9 @@ "Edge": "80", "Opera": "67" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is only available in Service Workers.

\n

The PeriodicSyncEvent interface of the Web Periodic Background Synchronization API provides a way to run tasks in the service worker with network connectivity.\n

An instance of this event is passed to the periodicsync handler. This happens periodically, at an interval greater than or equal to that set in the PeriodicSyncManager.register() method. Other implementation-specific factors such as the user's engagement with the site decide the actual interval." }, "periodicsyncevent.periodicsyncevent": { @@ -21305,6 +21500,9 @@ "Edge": "80", "Opera": "67" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is only available in Service Workers.

\n

The PeriodicSyncEvent() constructor\ncreates a new PeriodicSyncEvent object. This constructor is not typically\nused. The browser creates these objects itself and provides them to\nonperiodicsync callback.", "parameters": { "type": "A string with the name of the event.\nIt is case-sensitive and browsers set it to periodicsync.", @@ -21324,6 +21522,9 @@ "Edge": "80", "Opera": "67" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is only available in Service Workers.

\n

The tag read-only property of the\nPeriodicSyncEvent interface returns the developer-defined identifier for\nthe PeriodicSyncEvent. This is specified when calling the\nPeriodicSyncManager.register() method of the\nPeriodicSyncManager interface. Multiple tags can be used by the web app\nto run different periodic tasks at different frequencies." }, "periodicsyncmanager": { @@ -21338,6 +21539,9 @@ "Edge": "80", "Opera": "67" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The PeriodicSyncManager interface of the Web Periodic Background Synchronization API provides a way to register tasks to be run in a service worker at periodic intervals with network connectivity. These tasks are referred to as periodic background sync requests. Access PeriodicSyncManager through the ServiceWorkerRegistration.periodicSync." }, "periodicsyncmanager.gettags": { @@ -21352,6 +21556,9 @@ "Edge": "80", "Opera": "67" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The getTags() method of the\nPeriodicSyncManager interface returns a Promise that\nresolves with a list of String objects representing the tags that are\ncurrently registered for periodic syncing.", "returns": "A Promise which resolves with a list of String objects\nrepresenting tags that are currently registered for periodic syncing." }, @@ -21367,6 +21574,9 @@ "Edge": "80", "Opera": "67" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The register() method of the\nPeriodicSyncManager interface registers a periodic sync request with the\nbrowser with the specified tag and options. It returns a Promise that\nresolves when the registration completes.", "parameters": { "tag": "A unique String identifier.", @@ -21391,6 +21601,9 @@ "Edge": "80", "Opera": "67" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The unregister() method of the\nPeriodicSyncManager interface unregisters the periodic sync request\ncorresponding to the specified tag and returns a Promise that resolves\nwhen unregistration completes.", "parameters": { "tag": "The unique String descriptor for the specific background sync." @@ -21488,7 +21701,7 @@ "lowDate": "2022-09-12", "highDate": "2025-03-12" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The query() method of the Permissions interface returns the state of a user permission on the global scope.\n

The user permission names are defined in the respective specifications for each feature.\nThe permissions supported by different browser versions are listed in the compatibility data of the Permissions interface (see also the relevant source code for Firefox values, Chromium values, and WebKit values).\n

The APIs that are gated by each permission are listed in Permission-aware APIs in the Permissions API overview topic.", + "doc": "

Note: This feature is available in Web Workers.

\n

The query() method of the Permissions interface returns the state of a user permission on the global scope.\n

The user permission names are defined in the respective specifications for each feature.\nThe permissions supported by different browser versions are listed in the compatibility data of the Permissions interface (see also the relevant source code for Firefox values, Chromium values, and WebKit values).\n

The APIs that are gated by each permission are listed in Permission-aware APIs in the Permissions API overview topic.", "parameters": { "permissionDescriptor": "An object that sets options for the query operation.\nThe available options for this descriptor depend on the permission type.\n

All permissions have a name:\n

\n
name
\n
\n

A string containing the name of the API whose permissions you want to query, such as camera, bluetooth, microphone, geolocation (see Permissions for a more complete list).\nThe returned Promise will reject with a TypeError if the permission name is not supported by the browser.\n

\n
\n

For the push permissions you can also specify:\n

\n
userVisibleOnly Optional
\n
\n

(Push only, not supported in Firefox — see the Browser Support section below) Indicates whether you want to show a notification for every message or be able to send silent push notifications.\nThe default is false.\n

\n
\n

For the midi permission you can also specify:\n

\n
sysex Optional
\n
\n

Indicates whether you need and/or receive system exclusive messages.\nThe default is false.\n

\n
" }, @@ -21882,19 +22095,20 @@ "pointerevent.persistentdeviceid": { "url": "$MDN_URL$/web/api/pointerevent/persistentdeviceid", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "128", "ChromeAndroid": "128", "Edge": "128", + "Firefox": "141", + "FirefoxAndroid": "141", "Opera": "114" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The persistentDeviceId read-only property of the\nPointerEvent interface is a unique identifier for the pointing device generating the PointerEvent. This provides a secure, reliable way to identify multiple pointing devices (such as pens) interacting with the screen simultaneously.\n

A persistentDeviceId persists for the lifetime of a browsing session. To avoid the risk of fingerprinting/tracking, pointing devices are assigned a new persistentDeviceId at the start of each session.\n

Pointer events whose generating device could not be identified are assigned a persistentDeviceId value of 0." + "doc": "The persistentDeviceId read-only property of the PointerEvent interface is a unique identifier for the pointing device generating the PointerEvent.\nThis provides a secure, reliable way to identify multiple pointing devices (such as pens) interacting with the screen simultaneously.\n

A persistentDeviceId persists for the lifetime of a browsing session.\nTo avoid the risk of fingerprinting/tracking, pointing devices are assigned a new persistentDeviceId at the start of each session.\n

Pointer events whose generating device could not be identified are assigned a persistentDeviceId value of 0." }, "pointerevent.pointerevent": { "url": "$MDN_URL$/web/api/pointerevent/pointerevent", @@ -21943,7 +22157,7 @@ "lowDate": "2020-07-28", "highDate": "2023-01-28" }, - "doc": "The pointerId read-only property of the\nPointerEvent interface is an identifier assigned to a given pointer\nevent. The identifier is unique, being different from the identifiers of all other\nactive pointer events. Since the value may be randomly generated, it is not guaranteed\nto convey any particular meaning.\n

\n

Note:\nThe pointerId property is implemented inconsistently across browsers and does not always persist for each ink stroke or interaction with the screen. For a reliable way of identifying multiple pointing devices on a screen simultaneously, see PointerEvent.persistentDeviceId.\n

" + "doc": "The pointerId read-only property of the PointerEvent interface\nis an identifier assigned to the pointer that triggered the event. The identifier\nis unique, being different from the identifiers of all other active pointer events.\n

A value -1 indicates that the PointerEvent was not generated by a pointing device.\n(For example, a click event fired on a button\nactivated via keyboard.) Otherwise, the value may be randomly generated and should\nnot be relied on to convey any specific information about the device. The value is\nonly guaranteed to be stable for the lifetime of the page or session.\n

\n

Note:\nThe pointerId property is implemented inconsistently across browsers and does not always persist for each ink stroke or interaction with the screen. For a reliable way of identifying multiple pointing devices on a screen simultaneously, see PointerEvent.persistentDeviceId.\n

" }, "pointerevent.pointertype": { "url": "$MDN_URL$/web/api/pointerevent/pointertype", @@ -22194,7 +22408,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The PositionSensorVRDevice interface of the WebVR API represents VR hardware's position sensor. You can access information such as the current position and orientation of the sensor in relation to the head mounted display through the PositionSensorVRDevice.getState() method." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The PositionSensorVRDevice interface of the WebVR API represents VR hardware's position sensor. You can access information such as the current position and orientation of the sensor in relation to the head mounted display through the PositionSensorVRDevice.getState() method." }, "positionsensorvrdevice.getimmediatestate": { "url": "$MDN_URL$/web/api/positionsensorvrdevice/getimmediatestate", @@ -22202,7 +22416,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getImmediateState() method of the VRDisplay interface returns the current instantaneous position sensor state. This is intended to only be used rarely, for certain special uses, for example sampling the immediate position of a hand orientation sensor — or at least it will be, in the future.\n

For most standard uses, you'll probably want to use PositionSensorVRDevice.getState instead.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getImmediateState() method of the VRDisplay interface returns the current instantaneous position sensor state. This is intended to only be used rarely, for certain special uses, for example sampling the immediate position of a hand orientation sensor — or at least it will be, in the future.\n

For most standard uses, you'll probably want to use PositionSensorVRDevice.getState instead.", "returns": "A VRPose object." }, "positionsensorvrdevice.getstate": { @@ -22211,7 +22425,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getState() method of the PositionSensorVRDevice interface returns the current state of the position sensor for the current frame (e.g., within the current window.requestAnimationFrame callback) or for the previous frame, contained with a VRPose object. This is the method you'd normally want to use, vs. PositionSensorVRDevice.getImmediateState.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getState() method of the PositionSensorVRDevice interface returns the current state of the position sensor for the current frame (e.g., within the current window.requestAnimationFrame callback) or for the previous frame, contained with a VRPose object. This is the method you'd normally want to use, vs. PositionSensorVRDevice.getImmediateState.", "returns": "A VRPose object." }, "positionsensorvrdevice.resetsensor": { @@ -22220,7 +22434,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The resetSensor() method of the VRDisplay interface can be used to reset the sensor if desired, returning the position and orientation values to zero.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The resetSensor() method of the VRDisplay interface can be used to reset the sensor if desired, returning the position and orientation values to zero.", "returns": "None (undefined)." }, "presentation": { @@ -22881,7 +23095,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The ProcessingInstruction interface represents a processing instruction; that is, a Node which embeds an instruction targeting a specific application but that can be ignored by any other applications which don't recognize the instruction.\n

\n

Warning: ProcessingInstruction nodes are only supported in XML documents, not in HTML documents. In these, a process instruction will be considered as a comment and be represented as a Comment object in the tree.\n

\n

A processing instruction may be different than the XML declaration.\n

\n

Note:\nUser-defined processing instructions cannot begin with \"xml\", as xml-prefixed processing-instruction target names are reserved by the XML specification for particular, standard uses (see, for example, <?xml-stylesheet ?>.\n

\n

For example:\n

\n```html\n\n```\n
\n

is a processing instruction whose target is xml." + "doc": "The ProcessingInstruction interface represents a processing instruction; that is, a Node which embeds an instruction targeting a specific application but that can be ignored by any other applications which don't recognize the instruction.\n

\n

Warning:\nProcessingInstruction nodes are only supported in XML documents, not in HTML documents. In these, a process instruction will be considered as a comment and be represented as a Comment object in the tree.\n

\n

A processing instruction may be different than the XML declaration.\n

\n

Note:\nUser-defined processing instructions cannot begin with \"xml\", as xml-prefixed processing-instruction target names are reserved by the XML specification for particular, standard uses (see, for example, <?xml-stylesheet ?>.\n

\n

For example:\n

\n```html\n\n```\n
\n

is a processing instruction whose target is xml." }, "processinginstruction.sheet": { "url": "$MDN_URL$/web/api/processinginstruction/sheet", @@ -23007,7 +23221,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The ProgressEvent interface represents events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>)." + "doc": "

Note: This feature is available in Web Workers.

\n

The ProgressEvent interface represents events that measure the progress of an underlying process, like an HTTP request (e.g., an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>)." }, "progressevent.lengthcomputable": { "url": "$MDN_URL$/web/api/progressevent/lengthcomputable", @@ -23053,7 +23267,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The ProgressEvent.loaded read-only property is a 64-bit unsigned integer\nindicating the size, in bytes, of the data already transmitted or processed. The ratio can be calculated by dividing the value of this property by ProgressEvent.total.\nWhen downloading a resource using HTTP, this only counts the body of the HTTP message, and doesn't include headers and other overhead.\n

Note that for compressed requests of unknown total size, loaded might contain the size of the compressed, or decompressed, data, depending on the browser. As of 2024, it contains the size of the compressed data in Firefox, and the size of the uncompressed data in Chrome." + "doc": "

Note: This feature is available in Web Workers.

\n

The ProgressEvent.loaded read-only property is a number indicating the size of the data already transmitted or processed.\nThe progress ratio can be calculated by dividing the value of this property by ProgressEvent.total.\n

For ProgressEvents dispatched by the browser in HTTP messages, the value refers to the amount of bytes of a resource that are completed, and is derived from the Content-Length header.\nFor compressed requests of unknown total size, loaded might contain the size of the compressed or decompressed data, depending on the browser.\nAs of 2024, it contains the size of the compressed data in Firefox, and the size of the uncompressed data in Chrome.\n

In a ProgressEvent you create yourself, you can assign any numeric value to loaded that represents the amount of work completed relative to the total value." }, "progressevent.progressevent": { "url": "$MDN_URL$/web/api/progressevent/progressevent", @@ -23079,7 +23293,7 @@ "doc": "

Note: This feature is available in Web Workers.

\n

The ProgressEvent() constructor returns a new ProgressEvent object, representing the current completion of a long process.", "parameters": { "type": "A string with the name of the event.\nIt is case-sensitive and browsers set it to loadstart, progress, abort, error, load, timeout, or loadend.", - "options": "An object that, in addition of the properties defined in Event(), can have the following properties:\n

\n
lengthComputable Optional
\n
\n

A boolean value indicating if the total work to be done, and the\namount of work already done, by the underlying process is calculable. In other words,\nit tells if the progress is measurable or not. It defaults to false.\n

\n
loaded Optional
\n
\n

A number representing the amount of work already\nperformed by the underlying process. The ratio of work done can be calculated with the\nproperty and ProgressEvent.total. When downloading a resource using HTTP,\nthis only represent the part of the content itself, not headers and other overhead. It\ndefaults to 0.\n

\n
total Optional
\n
\n

A number representing the total amount of work that the\nunderlying process is in the progress of performing. When downloading a resource using\nHTTP, this only represent the content itself, not headers and other overhead. It\ndefaults to 0.\n

\n
" + "options": "An object that, in addition of the properties defined in Event(), can have the following properties:\n
\n
lengthComputable Optional
\n
\n

A boolean value indicating if the total work to be done, and the amount of work already done, by the underlying process is calculable.\nIn other words, it tells if the progress is measurable or not.\nIt defaults to false.\n

\n
loaded Optional
\n
\n

A number representing the amount of work already performed by the underlying process.\nFor a ProgressEvent dispatched by the browser in HTTP messages, the value refers to the size, in bytes, of the message body, excluding headers and other overhead.\nIn a ProgressEvent you create yourself, you can assign any numeric value to loaded that represents the amount of work completed relative to the total value.\nIt defaults to 0.\n

\n
total Optional
\n
\n

A number indicating the total size of the data being transmitted or processed.\nFor ProgressEvents dispatched by the browser in HTTP messages, the value refers to the size, in bytes, of a resource and is derived from the Content-Length response header.\nIn a ProgressEvent you create yourself, you may wish to normalize total to a value such as 100 or 1 if revealing the precise amount of bytes of a resource is a concern.\nIf using 1 as a total, for example, then loaded should be a decimal value between 0 and 1.\nIt defaults to 0.\n

\n
" }, "returns": "A new ProgressEvent object." }, @@ -23104,7 +23318,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The ProgressEvent.total read-only property is a 64-bit unsigned integer\nindicating the total size, in bytes, of the data being transmitted or processed.\n

When downloading a resource using HTTP, this value is taken from the Content-Length response header. It only counts the body of the HTTP message, and doesn't include headers and other overhead.\n

If the event's lengthComputable\nproperty is false, this value is meaningless and should be ignored." + "doc": "

Note: This feature is available in Web Workers.

\n

The ProgressEvent.total read-only property is a number indicating the total size of the data being transmitted or processed.\n

For ProgressEvents dispatched by the browser, the value refers to the size, in bytes, of a resource and is derived from the Content-Length response header.\n

In a ProgressEvent you create yourself, this may also be the total bytes of a resource, although this can be any number.\nFor example, you may wish to normalize total to a value such as 100 or 1 if revealing the precise amount of bytes of a resource is a concern.\nIf using 1 as a total, then ProgressEvent.loaded would be a decimal value between 0 and 1.\n

If the event's lengthComputable property is false, this value is meaningless and should be ignored." }, "promiserejectionevent": { "url": "$MDN_URL$/web/api/promiserejectionevent", @@ -23271,8 +23485,8 @@ "lowDate": "2021-09-07", "highDate": "2024-03-07" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The getClientExtensionResults() method of the PublicKeyCredential interface returns a map between the identifiers of extensions requested during credential creation or authentication, and their results after processing by the user agent.\n

During the creation or fetching of a PublicKeyCredential (via navigator.credentials.create() and navigator.credentials.get() respectively), it is possible to request \"custom\" processing by the client for different extensions, specified in the publicKey option's extensions property. You can find more information about requesting the different extensions in Web Authentication extensions.\n

\n

Note: getClientExtensionResults() only returns the results from extensions processed by the user agent (client). The results from extensions processed by the authenticator can be found in the authenticator data available in AuthenticatorAssertionResponse.authenticatorData.\n

", - "returns": "A map, with each entry being an extensions' identifier string as the key, and the output from the processing of the extension by the client as the value.", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The getClientExtensionResults() method of the PublicKeyCredential interface returns an object mapping the identifiers of extensions requested during credential creation or authentication, and their results after processing by the user agent.\n

During the creation or fetching of a PublicKeyCredential (via navigator.credentials.create() and navigator.credentials.get() respectively), it is possible to request \"custom\" processing by the client for different extensions, specified in the publicKey option's extensions property. You can find more information about requesting the different extensions in Web Authentication extensions.\n

\n

Note:\ngetClientExtensionResults() only returns the results from extensions processed by the user agent (client). The results from extensions processed by the authenticator can be found in the authenticator data available in AuthenticatorAssertionResponse.authenticatorData.\n

", + "returns": "An object with each entry being an extensions' identifier string as the key, and the output from the processing of the extension by the client as the value.", "throws": { "SecurityError DOMException": "The RP domain is not valid." } @@ -23437,16 +23651,20 @@ "publickeycredential.signalallacceptedcredentials": { "url": "$MDN_URL$/web/api/publickeycredential/signalallacceptedcredentials_static", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "132", "ChromeAndroid": "132", "Edge": "132", - "Opera": "117" + "Opera": "117", + "Safari": "26", + "SafariIOS": "26" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The signalAllAcceptedCredentials() static method of the PublicKeyCredential interface signals to the authenticator all of the valid credential IDs that the relying party (RP) server still holds for a particular user.\n

This allows the authenticator to update credential information, removing all credentials that are no longer recognized by the RP, such as those for deleted accounts. The method should be called each time a user authenticates with the RP.\n

signalAllAcceptedCredentials() should only be called when the current user is authenticated — after sign up or sign-in, or when the user deletes a credential — as it exposes sensitive information belonging to the user.", + "baseline": { + "level": "NONE" + }, + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The signalAllAcceptedCredentials() static method of the PublicKeyCredential interface signals to the authenticator all of the valid credential IDs that the relying party (RP) server still holds for a particular user.\n

This allows the authenticator to update credential information, removing all credentials that are no longer recognized by the RP, such as those for deleted accounts. The method should be called each time a user authenticates with the RP.\n

signalAllAcceptedCredentials() should only be called when the current user is authenticated — after sign up or sign-in, or when the user deletes a credential — as it exposes sensitive information belonging to the user.", "parameters": { "options": "An object representing the valid credentials, which contains the following properties:\n

\n
allAcceptedCredentialIds
\n
\n

An array of base64url-encoded strings representing the ids of the credentials that are still valid.\n

\n
rpId
\n
\n

A string representing the id of the RP that sent the signal.\n

\n
userId
\n
\n

A base64url-encoded string representing the id of the user the credentials relate to.\n

\n
" }, @@ -23459,16 +23677,20 @@ "publickeycredential.signalcurrentuserdetails": { "url": "$MDN_URL$/web/api/publickeycredential/signalcurrentuserdetails_static", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "132", "ChromeAndroid": "132", "Edge": "132", - "Opera": "117" + "Opera": "117", + "Safari": "26", + "SafariIOS": "26" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The signalCurrentUserDetails() static method of the PublicKeyCredential interface signals to the authenticator that a particular user has updated their user name and/or display name on the relying party (RP) server.\n

This allows the authenticator to update user account details, to make sure they stay in sync with those held by the RP. It should only be used when the current user is authenticated — after sign in, or when they change the metadata associated with their credentials on the RP web app.", + "baseline": { + "level": "NONE" + }, + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The signalCurrentUserDetails() static method of the PublicKeyCredential interface signals to the authenticator that a particular user has updated their user name and/or display name on the relying party (RP) server.\n

This allows the authenticator to update user account details, to make sure they stay in sync with those held by the RP. It should only be used when the current user is authenticated — after sign in, or when they change the metadata associated with their credentials on the RP web app.", "parameters": { "options": "An object representing the updated user information, which contains the following properties:\n

\n
displayName
\n
\n

A string representing the updated user displayName.\n

\n
name
\n
\n

A string representing the updated user name.\n

\n
rpId
\n
\n

A string representing the id of the RP that sent the signal.\n

\n
userId
\n
\n

A base64url-encoded string representing the id of the user the credentials relate to.\n

\n
" }, @@ -23481,16 +23703,20 @@ "publickeycredential.signalunknowncredential": { "url": "$MDN_URL$/web/api/publickeycredential/signalunknowncredential_static", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "132", "ChromeAndroid": "132", "Edge": "132", - "Opera": "117" + "Opera": "117", + "Safari": "26", + "SafariIOS": "26" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The signalUnknownCredential() static method of the PublicKeyCredential interface signals to the authenticator that a credential ID was not recognized by the relying party (RP) server.\n

This allows the authenticator to remove credentials that are not allowed by the RP, such as those for deleted accounts, or accounts that were created and stored on the authenticator but not properly updated on the server. Generally the method is called after sign in fails because the account details were not available to the RP. It can be used even when the current user is not authenticated because it does not expose sensitive information.", + "baseline": { + "level": "NONE" + }, + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The signalUnknownCredential() static method of the PublicKeyCredential interface signals to the authenticator that a credential ID was not recognized by the relying party (RP) server.\n

This allows the authenticator to remove credentials that are not allowed by the RP, such as those for deleted accounts, or accounts that were created and stored on the authenticator but not properly updated on the server. Generally the method is called after sign in fails because the account details were not available to the RP. It can be used even when the current user is not authenticated because it does not expose sensitive information.", "parameters": { "options": "An object representing the unrecognized credential, which contains the following properties:\n

\n
credentialId
\n
\n

A base64url-encoded string representing the id of the credential that was unrecognized.\n

\n
rpId
\n
\n

A string representing the id of the RP that sent the signal.\n

\n
" }, @@ -23536,6 +23762,11 @@ }, "publickeycredentialrequestoptions": { "url": "$MDN_URL$/web/api/publickeycredentialrequestoptions", + "baseline": { + "level": "HIGH", + "lowDate": "2019-09-19", + "highDate": "2022-03-19" + }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The PublicKeyCredentialRequestOptions dictionary represents the object passed to CredentialsContainer.get() as the value of the publicKey option.\n

It is used to request a PublicKeyCredential provided by an authenticator that supports the Web Authentication API." }, "pushevent": { @@ -23554,8 +23785,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The PushEvent interface of the Push API represents a push message that has been received. This event is sent to the global scope of a ServiceWorker. It contains the information sent from an application server to a PushSubscription." }, @@ -23575,8 +23807,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The data read-only property of the PushEvent interface returns a reference to a PushMessageData object containing data sent to the PushSubscription." }, @@ -23596,8 +23829,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The PushEvent() constructor creates a new\nPushEvent object. Note that this constructor is exposed only to a\nservice worker context.", "parameters": { @@ -23622,8 +23856,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The PushManager interface of the Push API provides a way to receive notifications from third-party servers as well as request URLs for push notifications.\n

This interface is accessed via the ServiceWorkerRegistration.pushManager property." }, @@ -23643,8 +23878,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The PushManager.getSubscription() method of the PushManager interface retrieves an existing push subscription.\n

It returns a Promise that resolves to a PushSubscription object containing details of an existing subscription. If no existing subscription exists, this resolves to a null value.", "returns": "A Promise that resolves to a PushSubscription object or null." @@ -23662,7 +23898,7 @@ "FirefoxAndroid": "48", "Opera": "29" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The PushManager.hasPermission() method of the PushManager interface returns a Promise that resolves to the PushPermissionStatus of the requesting webapp, which will be one of granted, denied, or default.\n

\n

Note:\nThis feature has been superseded by the PushManager.permissionState() method.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The PushManager.hasPermission() method of the PushManager interface returns a Promise that resolves to the PushPermissionStatus of the requesting webapp, which will be one of granted, denied, or default.\n

\n

Note:\nThis feature has been superseded by the PushManager.permissionState() method.\n

", "returns": "A Promise that resolves to the PushPermissionStatus." }, "pushmanager.permissionstate": { @@ -23681,8 +23917,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The permissionState() method of the\nPushManager interface returns a Promise that resolves to a\nstring indicating the permission state of the push manager. Possible\nvalues are 'prompt', 'denied', or 'granted'.\n

\n

Note:\nAs of Firefox 44, the permissions for Notifications and Push have been merged. If permission is\ngranted for notifications, push will also be enabled.\n

", "parameters": { @@ -23703,7 +23940,7 @@ "FirefoxAndroid": "48", "Opera": "29" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The register method is used to ask the system to request\na new endpoint for notifications.\n

\n

Note:\nThis method has been superseded by PushManager.subscribe().\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The register method is used to ask the system to request\na new endpoint for notifications.\n

\n

Note:\nThis method has been superseded by PushManager.subscribe().\n

", "returns": "A DOMRequest object to handle the success or failure of the method call.\n

If the method call is successful, the request's result will be a string,\nwhich is the endpoint URL.\n

\n

Note:\nIf you do not need the URL any more, please use\nPushManager.unregister() to clean up after yourself.\n

" }, "pushmanager.registrations": { @@ -23719,7 +23956,7 @@ "FirefoxAndroid": "48", "Opera": "29" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The registrations method is used to ask the system about\nexisting push endpoint registrations.\n

\n

Note:\nThis method has been superseded by the PushManager.getSubscription() method.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The registrations method is used to ask the system about\nexisting push endpoint registrations.\n

\n

Note:\nThis method has been superseded by the PushManager.getSubscription() method.\n

", "returns": "A DOMRequest object to handle the success or failure of the method call.\n

If the method call is successful, the request's result will be an array of\nPushRegistration objects." }, "pushmanager.subscribe": { @@ -23738,8 +23975,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The subscribe() method of the PushManager\ninterface subscribes to a push service.\n

It returns a Promise that resolves to a PushSubscription\nobject containing details of a push subscription. A new push subscription is created if\nthe current service worker does not have an existing subscription.", "parameters": { @@ -23784,7 +24022,7 @@ "FirefoxAndroid": "48", "Opera": "29" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Note: This feature is available in Web Workers.

\n

The unregister() method was used to ask the system to\nunregister and delete the specified endpoint.\n

\n

Note:\nIn the updated API, a subscription can be unregistered via the PushSubscription.unsubscribe() method.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Note: This feature is available in Web Workers.

\n

The unregister() method was used to ask the system to\nunregister and delete the specified endpoint.\n

\n

Note:\nIn the updated API, a subscription can be unregistered via the PushSubscription.unsubscribe() method.\n

", "parameters": { "pushEndpoint": "A pushEndpoint to be unregistered." }, @@ -23806,8 +24044,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The PushMessageData interface of the Push API provides methods which let you retrieve the push data sent by a server in various formats.\n

Unlike the similar methods in the Fetch API, which only allow the method to be invoked once, these methods can be called multiple times.\n

Messages received through the Push API are sent encrypted by push services and then automatically decrypted by browsers before they are made accessible through the methods of the PushMessageData interface." }, @@ -23827,8 +24066,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The arrayBuffer() method of the PushMessageData interface extracts push message data as an ArrayBuffer object.", "returns": "An ArrayBuffer." @@ -23849,8 +24089,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The blob() method of the PushMessageData interface extracts push message data as a Blob object.", "returns": "A Blob." @@ -23893,8 +24134,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The json() method of the PushMessageData interface extracts push message data by parsing it as a JSON string and returning the result.", "returns": "The result of parsing push event data as JSON. This could be anything that can be represented by JSON — an object, an array, a string, a number…" @@ -23915,8 +24157,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The text() method of the PushMessageData interface extracts push message data as a plain text string.", "returns": "A string." @@ -23937,8 +24180,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The PushSubscription interface of the Push API provides a subscription's URL endpoint along with the public key and secrets that should be used for encrypting push messages to this subscription.\nThis information must be passed to the application server, using any desired application-specific method.\n

The interface also provides information about when the subscription will expire, and a method to unsubscribe from the subscription." }, @@ -23958,8 +24202,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The endpoint read-only property of the\nPushSubscription interface returns a string containing\nthe endpoint associated with the push subscription.\n

The endpoint takes the form of a custom URL pointing to a push server, which can be\nused to send a push message to the particular service worker instance that subscribed to\nthe push service. For this reason, it is a good idea to keep your endpoint a secret, so\nothers do not hijack it and abuse the push functionality." }, @@ -23979,8 +24224,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The expirationTime read-only property of the\nPushSubscription interface returns a DOMHighResTimeStamp\nof the subscription expiration time associated with the push subscription, if there is\none, or null otherwise." }, @@ -24000,8 +24246,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getKey() method of the PushSubscription interface\nreturns an ArrayBuffer representing a client public key, which can then\nbe sent to a server and used in encrypting push message data.", "parameters": { @@ -24025,8 +24272,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The options read-only property\nof the PushSubscription interface is an object containing the options\nused to create the subscription." }, @@ -24041,7 +24289,7 @@ "Edge": "17", "Opera": "29" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The subscriptionId read-only property of the\nPushSubscription interface returns a string containing\nthe subscription ID associated with the push subscription.\n

\n

Warning:\nInstead of this feature, use the PushSubscription.endpoint property on the same interface.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The subscriptionId read-only property of the\nPushSubscription interface returns a string containing\nthe subscription ID associated with the push subscription.\n

\n

Warning:\nInstead of this feature, use the PushSubscription.endpoint property on the same interface.\n

" }, "pushsubscription.tojson": { "url": "$MDN_URL$/web/api/pushsubscription/tojson", @@ -24059,8 +24307,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The toJSON() method of the PushSubscription interface is a\nstandard serializer: it returns a JSON representation of the subscription properties,\nproviding a useful shortcut.", "returns": "A JSON object. It contains the subscription endpoint, expirationTime and public keys, as an\nendpoint member, an expirationTime member and a keys member." @@ -24081,8 +24330,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The unsubscribe() method of the PushSubscription interface\nreturns a Promise that resolves to a boolean value when the\ncurrent subscription is successfully unsubscribed.", "returns": "A Promise that resolves to a boolean value when the current\nsubscription is successfully unsubscribed." @@ -24103,8 +24353,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The PushSubscriptionOptions interface of the Push API represents the options associated with a push subscription.\n

The read-only PushSubscriptionOptions object is returned by calling PushSubscription.options on a PushSubscription. This interface has no constructor of its own." }, @@ -24124,8 +24375,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The applicationServerKey read-only property of the PushSubscriptionOptions interface contains the public key used by the push server." }, @@ -24169,6 +24421,69 @@ "callback": "A function to be executed when the browser engine determines it is\nsafe to call your code. Enqueued microtasks are executed after all pending tasks have\ncompleted but before yielding control to the browser's event loop." }, "returns": "None (undefined)." + }, + "quotaexceedederror": { + "url": "$MDN_URL$/web/api/quotaexceedederror", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The QuotaExceededError interface represents an error when a requested operation would exceed a system-imposed storage quota.\n

\n

Note:\nIn browser versions before this interface was implemented, it was a regular DOMException. The subclassing allows for extra information like quota and requested to be included.\n

" + }, + "quotaexceedederror.quota": { + "url": "$MDN_URL$/web/api/quotaexceedederror/quota", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The quota read-only property of the QuotaExceededError interface returns the system-defined storage quota (in bytes) that the operation attempted to exceed, or undefined if the information is not available." + }, + "quotaexceedederror.quotaexceedederror": { + "url": "$MDN_URL$/web/api/quotaexceedederror/quotaexceedederror", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The QuotaExceededError() constructor creates a new QuotaExceededError object.", + "parameters": { + "message": "The message. Defaults to \"\".", + "options": "An object that can have the following properties:\n

\n
quota Optional
\n
\n

A number representing the system-defined storage quota (in bytes) that was exceeded, or undefined if the information isn't available. Corresponds to QuotaExceededError.quota.\n

\n
requested Optional
\n
\n

A number representing the amount of storage (in bytes) that was requested during the operation, or undefined if the information isn't available. Corresponds to QuotaExceededError.requested.\n

\n
" + }, + "throws": { + "RangeError": "Thrown if option.quota or options.requested is negative, or if option.requested < option.quota." + } + }, + "quotaexceedederror.requested": { + "url": "$MDN_URL$/web/api/quotaexceedederror/requested", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The requested read-only property of the QuotaExceededError interface returns the number of bytes that were requested when the error occurred, or undefined if the information is not available." } } } \ No newline at end of file diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-r.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-r.json index a418be0785c6..3d9b10497815 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-r.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-r.json @@ -179,7 +179,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The Range.commonAncestorContainer read-only property\nreturns the deepest — or furthest down the document tree — Node that\ncontains both boundary points of the Range. This means that if\nRange.startContainer and Range.endContainer both refer to\nthe same node, this node is the common ancestor container.\n

Since a Range need not be continuous, and may also partially select nodes,\nthis is a convenient way to find a Node which encloses a\nRange.\n

This property is read-only. To change the ancestor container of a Node,\nconsider using the various methods available to set the start and end positions of the\nRange, such as Range.setStart() and\nRange.setEnd()." + "doc": "The Range.commonAncestorContainer read-only property\nreturns the deepest — or furthest down the document tree — Node that\ncontains both boundary points of the Range. This means that if\nRange.startContainer and Range.endContainer both refer to\nthe same node, this node is the common ancestor container.\n

Since a Range need not be continuous, and may also partially select nodes,\nthis is a convenient way to find a Node which encloses a\nRange.\n

This property is read-only. To change the ancestor container of a Node,\nconsider using the various methods available to set the start and end positions of the\nRange, such as Range.setStart() and\nRange.setEnd()." }, "range.compareboundarypoints": { "url": "$MDN_URL$/web/api/range/compareboundarypoints", @@ -220,7 +220,7 @@ "Safari": "3", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The compareNode() method of the Range interface returns a constant indicating the\nposition of the Node.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The compareNode() method of the Range interface returns a constant indicating the\nposition of the Node.", "parameters": { "referenceNode": "The Node to compare with the Range." }, @@ -944,7 +944,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The enqueue() method of the ReadableByteStreamController interface enqueues a given chunk on the associated readable byte stream (the chunk is copied into the stream's internal queues).\n

This should only be used to transfer data to the queue when byobRequest is null.", + "doc": "

Note: This feature is available in Web Workers.

\n

The enqueue() method of the ReadableByteStreamController interface enqueues a given chunk on the associated readable byte stream (the chunk is transferred into the stream's internal queues).\n

This should only be used to transfer data to the queue when byobRequest is null.", "parameters": { "chunk": "The chunk to enqueue." }, @@ -1625,7 +1625,7 @@ }, "returns": "None (undefined).", "throws": { - "TypeError": "Thrown if the source object is not a ReadableStreamDefaultController." + "TypeError": "Thrown if enqueue() is called when the stream is not readable — because it is already closed, cancelled, or errored — or because it has been requested to close by the underlying source but it has not yet done so because there are still enqueued chunks to read." } }, "readablestreamdefaultcontroller.error": { @@ -1991,9 +1991,6 @@ "Safari": "16.4", "SafariIOS": "16.4" }, - "baseline": { - "level": "NONE" - }, "doc": "

Note: This feature is available in Web Workers.

\n

The Report interface of the Reporting API represents a single report.\n

Reports can be accessed in a number of ways:\n

    \n
  • Via the ReportingObserver.takeRecords() method — this returns all reports in an observer's report queue, and then empties the queue.
  • \n
  • Via the reports parameter of the callback function passed into the ReportingObserver() constructor upon creation of a new observer instance. This contains the list of reports currently contained in the observer's report queue.
  • \n
  • By sending requests to the endpoints defined via the Reporting-Endpoints HTTP header.
  • \n
" }, "report.body": { @@ -2009,9 +2006,6 @@ "Safari": "16.4", "SafariIOS": "16.4" }, - "baseline": { - "level": "NONE" - }, "doc": "

Note: This feature is available in Web Workers.

\n

The body read-only property of the Report\ninterface returns the body of the report, which is a ReportBody object\ncontaining the detailed report information." }, "report.type": { @@ -2027,9 +2021,6 @@ "Safari": "16.4", "SafariIOS": "16.4" }, - "baseline": { - "level": "NONE" - }, "doc": "

Note: This feature is available in Web Workers.

\n

The type read-only property of the Report\ninterface returns the type of report generated, e.g., deprecation or\nintervention." }, "report.url": { @@ -2045,9 +2036,6 @@ "Safari": "16.4", "SafariIOS": "16.4" }, - "baseline": { - "level": "NONE" - }, "doc": "

Note: This feature is available in Web Workers.

\n

The url read-only property of the Report\ninterface returns the URL of the document that generated the report." }, "reportbody": { @@ -2063,15 +2051,13 @@ "Safari": "16.4", "SafariIOS": "16.4" }, - "baseline": { - "level": "NONE" - }, "doc": "

Note: This feature is available in Web Workers.

\n

The ReportBody interface of the Reporting API represents the body of a report. Individual report types inherit from this interface, adding specific attributes relevant to the particular report." }, "reportbody.tojson": { "url": "$MDN_URL$/web/api/reportbody/tojson", "status": [ - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "69", @@ -2081,10 +2067,7 @@ "Safari": "16.4", "SafariIOS": "16.4" }, - "baseline": { - "level": "NONE" - }, - "doc": "

Note: This feature is available in Web Workers.

\n

The toJSON() method of the ReportBody interface is a serializer, and returns a JSON representation of the ReportBody object.", + "doc": "

Note: This feature is available in Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The toJSON() method of the ReportBody interface is a serializer, and returns a JSON representation of the ReportBody object.", "returns": "A JSON object that is the serialization of the ReportBody object." }, "reporterror": { @@ -2443,7 +2426,24 @@ "lowDate": "2018-06-26", "highDate": "2020-12-26" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The destination read-only\nproperty of the Request interface returns a string\ndescribing the type of content being requested.\n

The string must be one of the audio, audioworklet,\ndocument, embed, fencedframe, font, frame,\niframe, image, json, manifest, object,\npaintworklet, report, script, sharedworker,\nstyle, track, video, worker\nor xslt strings, or the empty string, which is the default value.\n

The destination is used by the user agent to, for example,\nhelp determine which set of rules to follow for CORS purposes, or how to navigate any\ncomplicated code paths that affect how specific types of request get handled.\n

These destinations vary substantially in how they operate. Some are data receptacles,\nwhere the received data is stored for processing later. Others are script-based, in\nwhich case the received data is delivered to a script by calling it and passing the data\nalong. Script-based destinations include <script> elements, as well as\nany of the Worklet-based destinations\n(including subclasses like AudioWorklet), and the\nWorker-based destinations, including ServiceWorker\nand SharedWorker." + "doc": "

Note: This feature is available in Web Workers.

\n

The destination read-only property of the Request interface returns a string describing the type of content being requested.\n

The string must be one of the audio, audioworklet, document, embed, fencedframe, font, frame, iframe, image, json, manifest, object, paintworklet, report, script, sharedworker, speculationrules, style, track, video, worker or xslt strings, or the empty string, which is the default value.\n

The destination is used by the user agent to, for example, help determine which set of rules to follow for CORS purposes, or how to navigate any complicated code paths that affect how specific types of request get handled.\n

These destinations vary substantially in how they operate. Some are data receptacles, where the received data is stored for processing later. Others are script-based, in which case the received data is delivered to a script by calling it and passing the data along.\nScript-based destinations include <script> elements, as well as any of the Worklet-based destinations (including subclasses like AudioWorklet), and the Worker-based destinations, including ServiceWorker and SharedWorker." + }, + "request.duplex": { + "url": "$MDN_URL$/web/api/request/duplex", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "131", + "Edge": "131", + "Opera": "116", + "Nodejs": "19.3.0" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The duplex read-only property of the Request interface returns the duplex mode of the request, which determines whether the browser must send the entire request before processing the response." }, "request.formdata": { "url": "$MDN_URL$/web/api/request/formdata", @@ -2724,7 +2724,7 @@ }, "doc": "

Note: This feature is available in Web Workers.

\n

The Request() constructor creates a new\nRequest object.", "parameters": { - "input": "Defines the resource that you wish to fetch. This can either be:\n

    \n
  • \n

    A string containing the URL of the resource you want to fetch. The URL may be relative to the base URL, which is the document's baseURI in a window context, or WorkerGlobalScope.location in a worker context.\n

  • \n
  • \n

    A Request object, effectively creating a copy. Note the following\nbehavioral updates to retain security while making the constructor less likely to\nthrow exceptions:\n

      \n
    • If this object exists on another origin to the constructor call, the\nRequest.referrer is stripped out.
    • \n
    • If this object has a Request.mode of navigate,\nthe mode value is converted to same-origin.
    • \n
    \n
  • \n
", + "input": "Defines the resource that you wish to fetch. This can either be:\n
    \n
  • A string containing the URL of the resource you want to fetch. The URL may be relative to the base URL, which is the document's baseURI in a window context, or WorkerGlobalScope.location in a worker context.
  • \n
  • A Request object, effectively creating a copy. Note the following\nbehavioral updates to retain security while making the constructor less likely to\nthrow exceptions:\n
      \n
    • If this object exists on another origin to the constructor call, the\nRequest.referrer is stripped out.
    • \n
    • If this object has a Request.mode of navigate,\nthe mode value is converted to same-origin.
    • \n
    \n
  • \n
", "options": "A RequestInit object containing any custom settings that you want to apply to the request.\n

If you construct a new Request from an existing Request, any options you set in an options argument for the new request replace any corresponding options set in the original Request. For example:\n

\n```js\nconst oldRequest = new Request(\n  \"https://github.com/mdn/content/issues/12959\",\n  { headers: { From: \"webmaster@example.org\" } },\n);\noldRequest.headers.get(\"From\"); // \"webmaster@example.org\"\nconst newRequest = new Request(oldRequest, {\n  headers: { From: \"developer@example.org\" },\n});\nnewRequest.headers.get(\"From\"); // \"developer@example.org\"\n```\n
" }, "throws": { @@ -3174,7 +3174,7 @@ "doc": "

Note: This feature is available in Web Workers.

\n

The arrayBuffer() method of the Response interface\ntakes a Response stream and reads it to completion. It returns a promise\nthat resolves with an ArrayBuffer.", "returns": "A promise that resolves with an ArrayBuffer.", "throws": { - "DOMException AbortError": "The request was aborted.", + "AbortError DOMException": "The request was aborted.", "TypeError": "Thrown for one of the following reasons:\n

", "RangeError": "There was a problem creating the associated ArrayBuffer.\nFor example, if the data size is more than Number.MAX_SAFE_INTEGER." } @@ -3204,7 +3204,7 @@ "doc": "

Note: This feature is available in Web Workers.

\n

The blob() method of the Response interface takes\na Response stream and reads it to completion. It returns a promise that\nresolves with a Blob.", "returns": "A promise that resolves with a Blob.", "throws": { - "DOMException AbortError": "The request was aborted.", + "AbortError DOMException": "The request was aborted.", "TypeError": "Thrown for one of the following reasons:\n

" } }, @@ -3280,7 +3280,7 @@ "doc": "

Note: This feature is available in Web Workers.

\n

The bytes() method of the Response interface takes a Response stream and reads it to completion.\nIt returns a promise that resolves with a Uint8Array.", "returns": "A promise that resolves with an Uint8Array.", "throws": { - "DOMException AbortError": "The request was aborted.", + "AbortError DOMException": "The request was aborted.", "TypeError": "Thrown for one of the following reasons:\n

", "RangeError": "There was a problem creating the associated ArrayBuffer.\nFor example, if the data size is more than Number.MAX_SAFE_INTEGER." } @@ -3360,7 +3360,7 @@ "doc": "

Note: This feature is available in Web Workers.

\n

The formData() method of the Response interface\ntakes a Response stream and reads it to completion. It returns a promise\nthat resolves with a FormData object.\n

\n

Note:\nThis is mainly relevant to service workers. If a user submits\na form and a service worker intercepts the request, you could for example call\nformData() on it to obtain a key-value map, modify some fields, then send\nthe form onwards to the server (or use it locally).\n

", "returns": "A Promise that resolves with a FormData object.", "throws": { - "DOMException AbortError": "The request was aborted.", + "AbortError DOMException": "The request was aborted.", "TypeError": "Thrown for one of the following reasons:\n
    \n
  • The response body is disturbed or locked.
  • \n
  • There was an error decoding the body content (for example, because the Content-Encoding header is incorrect).
  • \n
  • The MIME type of the body cannot be determined from the Content-Type headers included in the response.
  • \n
  • The body cannot be parsed as a FormData object.
  • \n
" } }, @@ -3601,7 +3601,7 @@ "doc": "

Note: This feature is available in Web Workers.

\n

The text() method of the Response interface takes a Response stream and reads it to completion.\nIt returns a promise that resolves with a String.\nThe response is always decoded using UTF-8.", "returns": "A Promise that resolves with a String.", "throws": { - "DOMException AbortError": "The request was aborted.", + "AbortError DOMException": "The request was aborted.", "TypeError": "Thrown for one of the following reasons:\n

" } }, @@ -3627,7 +3627,7 @@ "lowDate": "2017-03-27", "highDate": "2019-09-27" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The type read-only property of the Response interface contains the type of the response.\nIt can be one of the following:\n

    \n
  • basic: Normal, same origin response, with all headers exposed except \"Set-Cookie\".
  • \n
  • cors: Response was received from a valid cross-origin request. Certain headers and the body may be accessed.
  • \n
  • error: Network error.\nNo useful information describing the error is available.\nThe Response's status is 0, headers are empty and immutable.\nThis is the type for a Response obtained from Response.error().
  • \n
  • opaque: Response for \"no-cors\" request to cross-origin resource.\nSeverely restricted.
  • \n
  • opaqueredirect: The fetch request was made with redirect: \"manual\".\nThe Response's status is 0, headers are empty, body is null and trailer is empty.
  • \n
\n
\n

Note:\nAn \"error\" Response never really gets exposed to script: such a response to a fetch() would reject the promise.\n

" + "doc": "

Note: This feature is available in Web Workers.

\n

The type read-only property of the Response interface contains the type of the response. The type determines whether scripts are able to access the response body and headers." }, "response.url": { "url": "$MDN_URL$/web/api/response/url", @@ -3718,7 +3718,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The audioLevel property of the RTCAudioSourceStats dictionary represents the audio level of the media source.\n

The level is averaged over some small implementation-dependent interval.\nUsers can alternatively calculate the average audio level over some arbitrary duration using the algorithm described in the RTCAudioSourceStats description.\n

\n

Note:\nFor audio levels of remotely sourced tracks, see RTCInboundRtpStreamStats.audioLevel.\n

" + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The audioLevel property of the RTCAudioSourceStats dictionary represents the audio level of the media source.\n

The level is averaged over some small implementation-dependent interval.\nUsers can alternatively calculate the average audio level over some arbitrary duration using the algorithm described in the RTCAudioSourceStats description.\n

\n

Note:\nFor audio levels of remotely sourced tracks, see RTCInboundRtpStreamStats.audioLevel.\n

" }, "rtcaudiosourcestats.id": { "url": "$MDN_URL$/web/api/rtcaudiosourcestats/id", @@ -3749,14 +3749,14 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The totalAudioEnergy property of the RTCAudioSourceStats dictionary represents the total audio energy of the media source over the lifetime of this stats object.\n

The total energy across a particular duration can be determined by subtracting the value of this property returned by two different getStats() calls.\n

\n

Note:\nFor audio energy of remotely sourced tracks, see RTCInboundRtpStreamStats.totalAudioEnergy.\n

" + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The totalAudioEnergy property of the RTCAudioSourceStats dictionary represents the total audio energy of the media source over the lifetime of this stats object.\n

The total energy across a particular duration can be determined by subtracting the value of this property returned by two different getStats() calls.\n

\n

Note:\nFor audio energy of remotely sourced tracks, see RTCInboundRtpStreamStats.totalAudioEnergy.\n

" }, "rtcaudiosourcestats.totalsamplesduration": { "url": "$MDN_URL$/web/api/rtcaudiosourcestats/totalsamplesduration", "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The totalSamplesDuration property of the RTCAudioSourceStats dictionary represents the combined duration of all samples produced by the media source over the lifetime of this stats object, in seconds.\nIt does not include samples dropped before reaching this media source.\n

This can be used with totalAudioEnergy to compute an average audio level over different intervals.\n

\n

Note:\nFor audio duration of remotely sourced tracks, see RTCInboundRtpStreamStats.totalSamplesDuration.\n

" + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The totalSamplesDuration property of the RTCAudioSourceStats dictionary represents the combined duration of all samples produced by the media source over the lifetime of this stats object, in seconds.\nIt does not include samples dropped before reaching this media source.\n

This can be used with totalAudioEnergy to compute an average audio level over different intervals.\n

\n

Note:\nFor audio duration of remotely sourced tracks, see RTCInboundRtpStreamStats.totalSamplesDuration.\n

" }, "rtcaudiosourcestats.trackidentifier": { "url": "$MDN_URL$/web/api/rtcaudiosourcestats/trackidentifier", @@ -3834,7 +3834,8 @@ "SafariIOS": "12.2" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-04-29" }, "doc": "The getFingerprints() method of the RTCCertificate interface is used to get an array of certificate fingerprints.\n

This can be used in application-level code to get certificate fingerprints, which are hashes of the certificate created using the various algorithms supported by the browser.", "returns": "An Array of fingerprint values.\nEach fingerprint is represented by an object with the following properties:\n

\n
algorithm
\n
\n

A string indicating the hash function algorithm used to create the fingerprint in value.\nAllowed values include: \"sha-1\", \"sha-224\", \"sha-256\", \"sha-384\", \"sha-512\", \"md5\", \"md2\".\n

\n
value
\n
\n

A string containing the certificate fingerprint in lowercase hex string, as calculated with the algorithm hash function.\nThe format is more precisely defined in RFC4572, Section 5.\n

\n
" @@ -4062,7 +4063,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The RTCDataChannel property\nbufferedAmountLowThreshold is used to specify the number\nof bytes of buffered outgoing data that is considered \"low.\" The default value is\n0. When the number of buffered outgoing bytes, as indicated by the\nbufferedAmount property, falls to or\nbelow this value, a bufferedamountlow event is fired. This event may be\nused, for example, to implement code which queues more messages to be sent whenever\nthere's room to buffer them. Listeners may be added with\nonbufferedamountlow or\naddEventListener().\n

The user agent may implement the process of actually sending data in any way it\nchooses; this may be done periodically during the event loop or truly asynchronously. As\nmessages are actually sent, this value is reduced accordingly.\n

\n

Note: bufferedamountlow events are not fired after the data channel is closed.\n

" + "doc": "The RTCDataChannel property\nbufferedAmountLowThreshold is used to specify the number\nof bytes of buffered outgoing data that is considered \"low.\" The default value is\n0. When the number of buffered outgoing bytes, as indicated by the\nbufferedAmount property, falls to or\nbelow this value, a bufferedamountlow event is fired. This event may be\nused, for example, to implement code which queues more messages to be sent whenever\nthere's room to buffer them. Listeners may be added with\nonbufferedamountlow or\naddEventListener().\n

The user agent may implement the process of actually sending data in any way it\nchooses; this may be done periodically during the event loop or truly asynchronously. As\nmessages are actually sent, this value is reduced accordingly.\n

\n

Note:\nbufferedamountlow events are not fired after the data channel is closed.\n

" }, "rtcdatachannel.close": { "url": "$MDN_URL$/web/api/rtcdatachannel/close", @@ -4272,11 +4273,10 @@ "Chrome": "24", "ChromeAndroid": "25", "Edge": "79", - "Firefox": "22", "FirefoxAndroid": "24", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The read-only RTCDataChannel property\nreliable indicates whether or not the data channel is\nreliable.\n

\n

Warning:\nThis property is obsolete. Use RTCDataChannel.ordered instead in any\nnew code, and update existing code as soon as possible.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The read-only RTCDataChannel property\nreliable indicates whether or not the data channel is\nreliable.\n

\n

Warning:\nThis property is obsolete. Use RTCDataChannel.ordered instead in any\nnew code, and update existing code as soon as possible.\n

" }, "rtcdatachannel.send": { "url": "$MDN_URL$/web/api/rtcdatachannel/send", @@ -4305,7 +4305,7 @@ "returns": "None (undefined).", "throws": { "InvalidStateError DOMException": "Thrown when the data channel has not finished establishing its own connection (that is, its\nreadyState is connecting). The data channel\nmust establish its own connection because it uses a transport channel separate from that of the media content. This error occurs without sending or buffering the data.", - "NetworkError DOMException": "Thrown when the specified data would need to be buffered, and there isn't room for\nit in the buffer. In this scenario, the underlying transport is immediately closed.", + "OperationError DOMException": "Thrown when the specified data would need to be buffered, and there isn't room for it in the buffer.", "TypeError": "Thrown if the specified data is too large for the other peer to receive. Since\nthere are multiple techniques for breaking up large data into smaller pieces for\ntransfer, it's possible to encounter scenarios in which the other peer does not\nsupport the same ones. For example, if one peer is a modern browser that supports\nusing the EOR (End of Record) flag to indicate when a received message is\nthe last piece of a multi-part object sent using send(). For more\ninformation about message size restrictions, see\nUnderstanding message size limits." } }, @@ -4318,6 +4318,8 @@ "Chrome": "130", "ChromeAndroid": "130", "Edge": "130", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "115", "Safari": "15", "SafariIOS": "15" @@ -4777,7 +4779,7 @@ "lowDate": "2023-08-29" }, "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

The getMetadata() method of the RTCEncodedAudioFrame interface returns an object containing the metadata associated with the frame.\n

This includes information about the frame, including the audio encoding used, the synchronization source and contributing sources, and the sequence number (for incoming frames).", - "returns": "An object with the following properties:\n

\n
synchronizationSource
\n
\n

A positive integer value indicating synchronization source (\"ssrc\") of the stream of RTP packets that are described by this frame.\nA source might be something like a microphone, or a mixer application that combines multiple sources.\nAll packets from the same source share the same time source and sequence space, and so can be ordered relative to each other.\nNote that two frames with the same value refer to the same source.\n

\n
payloadType
\n
\n

A positive integer value in the range from 0 to 127 that describes the format of the RTP payload.\nThe mappings of values to formats is defined in RFC3550, and more specifically Section 6: Payload Type Definitions of RFC3551.\n

\n
contributingSources
\n
\n

An Array of sources (ssrc) that have contributed to the frame.\nConsider the case of a conferencing application that combines audio from multiple users.\nThe synchronizationSource would include the ssrc of the application, while contributingSources would include the ssrc values of all the individual audio sources.\n

\n
sequenceNumber
\n
\n

The sequence number of an incoming audio frame (not used for outgoing frames) that can be used for reconstructing the original send-order of frames.\nThis is number between 0 and 32767.\nNote that while numbers are allocated sequentially when sent, they will overflow at 32767 and restart back at 0.\nTherefore to compare two frame sequence numbers, in order to determine whether one is assumed to be after another, you must use serial number arithmetic. \n

\n
" + "returns": "An object with the following properties:\n
\n
audioLevel
\n
\n

A number representing the audio level of this frame. The value is between 0 and 1 inclusive (linear), where 1.0 represents 0 dBov (decibels relative to full scale (DBFS)), 0 represents silence, and 0.5 represents approximately 6 dB SPL change in the sound pressure level from 0 dBov. The value is converted from the -127 to 0 range specified in RFC6464 via the equation 10^(-rfc_level/20). If the RFC6464 header extension is not present in the received packets of the frame, audioLevel will be undefined.\n

\n
synchronizationSource
\n
\n

A positive integer value indicating synchronization source (\"ssrc\") of the stream of RTP packets that are described by this frame.\nA source might be something like a microphone, or a mixer application that combines multiple sources.\nAll packets from the same source share the same time source and sequence space, and so can be ordered relative to each other.\nNote that two frames with the same value refer to the same source.\n

\n
payloadType
\n
\n

A positive integer value in the range from 0 to 127 that describes the format of the RTP payload.\nThe mappings of values to formats is defined in RFC3550, and more specifically Section 6: Payload Type Definitions of RFC3551.\n

\n
contributingSources
\n
\n

An Array of sources (ssrc) that have contributed to the frame.\nConsider the case of a conferencing application that combines audio from multiple users.\nThe synchronizationSource would include the ssrc of the application, while contributingSources would include the ssrc values of all the individual audio sources.\n

\n
sequenceNumber
\n
\n

The sequence number of an incoming audio frame (not used for outgoing frames) that can be used for reconstructing the original send-order of frames.\nThis is number between 0 and 32767.\nNote that while numbers are allocated sequentially when sent, they will overflow at 32767 and restart back at 0.\nTherefore to compare two frame sequence numbers, in order to determine whether one is assumed to be after another, you must use serial number arithmetic. \n

\n
" }, "rtcencodedaudioframe.timestamp": { "url": "$MDN_URL$/web/api/rtcencodedaudioframe/timestamp", @@ -4794,7 +4796,7 @@ "Safari": "15.4", "SafariIOS": "15.4" }, - "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The timestamp read-only property of the RTCEncodedAudioFrame interface indicates the time at which frame sampling started." + "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The timestamp read-only property of the RTCEncodedAudioFrame interface indicates the time at which frame sampling started." }, "rtcencodedvideoframe": { "url": "$MDN_URL$/web/api/rtcencodedvideoframe", @@ -4875,7 +4877,7 @@ "Safari": "15.4", "SafariIOS": "15.4" }, - "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The timestamp read-only property of the RTCEncodedVideoFrame interface indicates the time at which frame sampling started." + "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The timestamp read-only property of the RTCEncodedVideoFrame interface indicates the time at which frame sampling started." }, "rtcencodedvideoframe.type": { "url": "$MDN_URL$/web/api/rtcencodedvideoframe/type", @@ -5549,11 +5551,11 @@ }, "rtcicecandidatepairstats.priority": { "url": "$MDN_URL$/web/api/rtcicecandidatepairstats/priority", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The priority property of the RTCIceCandidatePairStats dictionary reports the priority of the candidate pair as an integer value.\n

The higher the value, the more likely the WebRTC layer is to select the candidate pair when the time comes to establish (or re-establish) a connection between the two peers." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The priority property of the RTCIceCandidatePairStats dictionary reports the priority of the candidate pair as an integer value.\n

The higher the value, the more likely the WebRTC layer is to select the candidate pair when the time comes to establish (or re-establish) a connection between the two peers." }, "rtcicecandidatepairstats.readable": { "url": "$MDN_URL$/web/api/rtcicecandidatepairstats/readable", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The readable property of the RTCIceCandidatePairStats dictionary reports whether or not the connection described by the candidate pair has received at least one valid incoming ICE request." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The readable property of the RTCIceCandidatePairStats dictionary reports whether or not the connection described by the candidate pair has received at least one valid incoming ICE request." }, "rtcicecandidatepairstats.remotecandidateid": { "url": "$MDN_URL$/web/api/rtcicecandidatepairstats/remotecandidateid", @@ -5581,9 +5583,10 @@ "rtcicecandidatepairstats.responsesreceived": { "url": "$MDN_URL$/web/api/rtcicecandidatepairstats/responsesreceived", "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-08-19" }, - "doc": "The responsesReceived property in the RTCIceCandidatePairStats dictionary indicates the total number of STUN connectivity check responses that have been received on the connection described by this pair of candidates." + "doc": "The responsesReceived property of the RTCIceCandidatePairStats dictionary indicates the total number of STUN connectivity check responses that have been received on the connection described by this pair of candidates." }, "rtcicecandidatepairstats.responsessent": { "url": "$MDN_URL$/web/api/rtcicecandidatepairstats/responsessent", @@ -5594,7 +5597,7 @@ }, "rtcicecandidatepairstats.selected": { "url": "$MDN_URL$/web/api/rtcicecandidatepairstats/selected", - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The selected property of the RTCIceCandidatePairStats dictionary indicates whether or not the candidate pair described by the object is the one currently being used to communicate with the remote peer.\n

This property is non-standard and is only supported by Firefox.\nThe standard way to determine the selected candidate pair is to look at the selectedCandidatePairId property of the stats object of type transport." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The selected property of the RTCIceCandidatePairStats dictionary indicates whether or not the candidate pair described by the object is the one currently being used to communicate with the remote peer.\n

This property is non-standard and is only supported by Firefox.\nThe standard way to determine the selected candidate pair is to look at the selectedCandidatePairId property of the stats object of type transport." }, "rtcicecandidatepairstats.state": { "url": "$MDN_URL$/web/api/rtcicecandidatepairstats/state", @@ -5617,7 +5620,8 @@ "rtcicecandidatepairstats.totalroundtriptime": { "url": "$MDN_URL$/web/api/rtcicecandidatepairstats/totalroundtriptime", "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-08-19" }, "doc": "The totalRoundTripTime property of the RTCIceCandidatePairStats dictionary indicates the total time that has elapsed between sending STUN requests and receiving the responses, for all such requests that have been made so far on the pair of candidates described by this RTCIceCandidatePairStats object.\n

This value includes both connectivity check and consent check requests." }, @@ -5641,7 +5645,7 @@ }, "rtcicecandidatepairstats.writable": { "url": "$MDN_URL$/web/api/rtcicecandidatepairstats/writable", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The writable property of the RTCIceCandidatePairStats dictionary indicates whether or not the connection described by the candidate pair is writable." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The writable property of the RTCIceCandidatePairStats dictionary indicates whether or not the connection described by the candidate pair is writable." }, "rtcicecandidatestats": { "url": "$MDN_URL$/web/api/rtcicecandidatestats", @@ -5677,7 +5681,7 @@ "baseline": { "level": "NONE" }, - "doc": "The foundation property of the RTCIceCandidateStats interface is a string that allows correlation of candidates from a common network path on multiple RTCIceTransport objects.\n

It is the same for two candidates that are of the same type, are using the same transport protocol, originate from the same IP address, use ports that fall within the same range, and come from the same STUN server.\n

For more information see RTCIceCandidate.foundation." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The foundation property of the RTCIceCandidateStats interface is a string that allows correlation of candidates from a common network path on multiple RTCIceTransport objects.\n

It is the same for two candidates that are of the same type, are using the same transport protocol, originate from the same IP address, use ports that fall within the same range, and come from the same STUN server.\n

For more information see RTCIceCandidate.foundation." }, "rtcicecandidatestats.id": { "url": "$MDN_URL$/web/api/rtcicecandidatestats/id", @@ -5753,7 +5757,7 @@ "baseline": { "level": "NONE" }, - "doc": "The usernameFragment property of the RTCIceCandidateStats interface is a string that represents the ICE username fragment (\"ice-ufrag\").\n

The fragment uniquely identifies a single ICE interaction session, and can be used to identify communications that are part of the same session even across ICE restarts.\n

For more information see RTCIceCandidate.usernameFragment." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The usernameFragment property of the RTCIceCandidateStats interface is a string that represents the ICE username fragment (\"ice-ufrag\").\n

The fragment uniquely identifies a single ICE interaction session, and can be used to identify communications that are part of the same session even across ICE restarts.\n

For more information see RTCIceCandidate.usernameFragment." }, "rtciceparameters": { "url": "$MDN_URL$/web/api/rtciceparameters", @@ -5955,9 +5959,12 @@ }, "doc": "The RTCInboundRtpStreamStats dictionary of the WebRTC API is used to report statistics related to the receiving end of an RTP stream on the local end of the RTCPeerConnection.\n

The statistics can be obtained by iterating the RTCStatsReport returned by RTCPeerConnection.getStats() or RTCRtpReceiver.getStats() until you find a report with the type of inbound-rtp." }, - "rtcinboundrtpstreamstats.averagertcpinterval": { - "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/averagertcpinterval", - "doc": "The averageRtcpInterval property\nof the RTCInboundRtpStreamStats dictionary is a floating-point value\nindicating the average RTCP transmission interval, in seconds.\n

The RTCP interval is the amount of time that should elapse between transmissions of RTCP\npackets." + "rtcinboundrtpstreamstats.audiolevel": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/audiolevel", + "baseline": { + "level": "NONE" + }, + "doc": "The audioLevel property of the RTCInboundRtpStreamStats dictionary indicates the audio level of the received (remote) track.\n

The audioLevel is averaged over some small interval, using the algorithm described under totalAudioEnergy.\nThe interval used is implementation dependent.\n

\n

Note:\nThe value is undefined for video streams.\n

" }, "rtcinboundrtpstreamstats.bytesreceived": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/bytesreceived", @@ -5966,7 +5973,7 @@ "lowDate": "2020-03-24", "highDate": "2022-09-24" }, - "doc": "The RTCInboundRtpStreamStats dictionary's\nbytesReceived property is an integer value which\nindicates the total number of bytes received so far from this synchronization source\n(SSRC)." + "doc": "The bytesReceived property of the RTCInboundRtpStreamStats dictionary indicates the total number of bytes received so far from this synchronization source (SSRC), not including header and padding bytes.\n

The value can be used to calculate an approximation of the average media data rate:\n

\n```js\navgDataRate = rtcInboundRtpStreamStats.bytesReceived / elapsedTime;\n```\n
\n

The property value is reset to zero if the sender's SSRC identifier changes for any reason." }, "rtcinboundrtpstreamstats.codecid": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/codecid", @@ -5975,6 +5982,31 @@ }, "doc": "The codecId property of the RTCInboundRtpStreamStats dictionary is a string that uniquely identifies the object that was inspected to produce the data in the RTCCodecStats for the RTP stream.\n

RTCInboundRtpStreamStats and RTCCodecStats objects are correlated by iterating the RTCStatsReport to find the statistics objects where RTCInboundRtpStreamStats.codecId is equal to RTCCodecStats.id." }, + "rtcinboundrtpstreamstats.concealedsamples": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/concealedsamples", + "baseline": { + "level": "HIGH", + "lowDate": "2022-08-23", + "highDate": "2025-02-23" + }, + "doc": "The concealedSamples property of the RTCInboundRtpStreamStats dictionary indicates the total number of concealed samples for the received audio track over the lifetime of this stats object.\n

A concealed sample is a sample that was lost or arrived too late to be played out, and therefore had to be replaced with a locally generated synthesized sample.\nNote that lost samples are reported in packetsLost, while late packets are reported in fecPacketsDiscarded.\n

\n

Note:\nThe value is undefined for video streams.\n

" + }, + "rtcinboundrtpstreamstats.concealmentevents": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/concealmentevents", + "baseline": { + "level": "HIGH", + "lowDate": "2022-10-18", + "highDate": "2025-04-18" + }, + "doc": "The concealmentEvents property of the RTCInboundRtpStreamStats dictionary indicates the total number of concealment events for the received audio track over the lifetime of this stats object.\n

A concealed sample is a sample that was lost or arrived too late to be played out, and therefore had to be replaced with a locally generated synthesized sample.\nAny number of consecutive concealed samples following a non-concealed sample comprise a single concealment event.\nThe value in this property will therefore be less than or equal to concealedSamples, which counts every sample.\n

\n

Note:\nThe value is undefined for video streams.\n

" + }, + "rtcinboundrtpstreamstats.estimatedplayouttimestamp": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/estimatedplayouttimestamp", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The estimatedPlayoutTimestamp property of the RTCInboundRtpStreamStats dictionary indicates the estimated playout time of this receiver's track.\n

This is the Network Time Protocol (NTP) timestamp of the last playable audio sample or video frame that has a known timestamp, extrapolated with the time elapsed since it was ready to be played out.\nIn other words, it is the estimated current playout time of the track in the NTP clock time of the sender, and can be present even if there is no audio currently playing.\n

This can be used to estimate how much audio and video tracks from the same source are out of sync." + }, "rtcinboundrtpstreamstats.fecpacketsdiscarded": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/fecpacketsdiscarded", "baseline": { @@ -5982,7 +6014,7 @@ "lowDate": "2022-10-18", "highDate": "2025-04-18" }, - "doc": "The fecPacketsDiscarded property\nof the RTCInboundRtpStreamStats dictionary is a numeric value\nindicating the number of RTP Forward Error Correction (FEC) packets\nthat have been discarded." + "doc": "The fecPacketsDiscarded property of the RTCInboundRtpStreamStats dictionary indicates the number of RTP Forward Error Correction (FEC) packets that have been discarded.\n

A FEC packet provides parity information that can be used to attempt to reconstruct RTP data packets which have been corrupted in transit.\nThis kind of packet might be discarded if all the packets that it covers have already been received or recovered using another FEC packet, or if the FEC packet arrived outside the recovery window and the lost RTP packets have already been skipped during playback as a result.\nThe value of fecPacketsReceived includes these discarded packets." }, "rtcinboundrtpstreamstats.fecpacketsreceived": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/fecpacketsreceived", @@ -5991,14 +6023,65 @@ "lowDate": "2022-10-18", "highDate": "2025-04-18" }, - "doc": "The fecPacketsReceived property\nof the RTCInboundRtpStreamStats dictionary indicates how many\nForward Error Correction (FEC) packets have been received by this RTP receiver\nfrom the remote peer.\n

An FEC packet provides parity information which can\nbe used to attempt to reconstruct RTP data packets which have been corrupted in\ntransit." + "doc": "The fecPacketsReceived property of the RTCInboundRtpStreamStats dictionary indicates how many Forward Error Correction (FEC) packets have been received by this RTP receiver from the remote peer.\n

A FEC packet provides parity information that can be used to attempt to reconstruct RTP data packets which have been corrupted in transit." + }, + "rtcinboundrtpstreamstats.frameheight": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/frameheight", + "baseline": { + "level": "NONE" + }, + "doc": "The frameHeight property of the RTCInboundRtpStreamStats dictionary indicates the height of the last decoded frame, in pixels.\n

Note that the resolution of the encoded frame may be lower than that of the media source, which is provided in RTCVideoSourceStats.height.\n

\n

Note:\nThe property is undefined for audio streams, and before the first frame is decoded.\n

" + }, + "rtcinboundrtpstreamstats.framesassembledfrommultiplepackets": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/framesassembledfrommultiplepackets", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The framesAssembledFromMultiplePackets property of the RTCInboundRtpStreamStats dictionary indicates the total number of correctly decoded frames for this RTP stream that were assembled from more than one RTP packet.\n

This property can be used with totalAssemblyTime to determine the average assembly time: totalAssemblyTime / framesAssembledFromMultiplePacket.\nA higher average assembly time might indicate network issues or inefficiencies in the receiving pipeline.\n

\n

Note:\nThe value is undefined for audio streams.\n

" }, "rtcinboundrtpstreamstats.framesdecoded": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/framesdecoded", "baseline": { "level": "NONE" }, - "doc": "The framesDecoded property of\nthe RTCInboundRtpStreamStats dictionary indicates the total number of\nframes which have been decoded successfully for this media source." + "doc": "The framesDecoded property of the RTCInboundRtpStreamStats dictionary indicates the total number of video frames which have been decoded successfully for this media source.\n

This represents the number of frames that would have been displayed assuming no frames were skipped.\n

\n

Note:\nThe property is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.framespersecond": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/framespersecond", + "baseline": { + "level": "NONE" + }, + "doc": "The framesPerSecond property of the RTCInboundRtpStreamStats dictionary indicates the number of frames decoded in the last second.\n

Note that this may be lower than the media source frame rate, which is provided in RTCVideoSourceStats.framesPerSecond.\n

\n

Note:\nThe value is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.framesreceived": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/framesreceived", + "baseline": { + "level": "NONE" + }, + "doc": "The framesReceived property of the RTCInboundRtpStreamStats dictionary indicates the total number of complete frames received on this RTP stream over its lifetime.\n

Note that this may be lower than the total number of media source frames, which is provided in RTCVideoSourceStats.frames.\n

\n

Note:\nThe value is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.framewidth": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/framewidth", + "baseline": { + "level": "NONE" + }, + "doc": "The frameWidth property of the RTCInboundRtpStreamStats dictionary indicates the width of the last decoded frame, in pixels.\n

Note that the resolution of the encoded frame may be lower than that of the media source, which is provided in RTCVideoSourceStats.width.\n

\n

Note:\nThe value is undefined for audio streams, or before the first frame is encoded.\n

" + }, + "rtcinboundrtpstreamstats.freezecount": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/freezecount", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The freezeCount property of the RTCInboundRtpStreamStats dictionary indicates the total number of video freezes experienced by this receiver.\n

A freeze is counted if the interval between two rendered frames is equal to or greater than the larger of \"three times the average duration\", or \"the average + 150ms\".\nThis ensures that the delay required to increment the freeze count scales appropriately with the frame rate.\n

\n

Note:\nThe value is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.headerbytesreceived": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/headerbytesreceived", + "baseline": { + "level": "HIGH", + "lowDate": "2022-10-18", + "highDate": "2025-04-18" + }, + "doc": "The headerBytesReceived property of the RTCInboundRtpStreamStats dictionary indicates the total number of RTP header and padding bytes received for this synchronization source (SSRC), including those sent in retransmissions.\n

Note that the total number of bytes received as payload over the transport is equal to: headerBytesReceived + bytesReceived." }, "rtcinboundrtpstreamstats.id": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/id", @@ -6009,6 +6092,63 @@ }, "doc": "The id property of the RTCInboundRtpStreamStats dictionary is a string that uniquely identifies the object for which this object provides statistics.\n

Using the id, you can correlate this statistics object with others, in order to monitor statistics over time for a given WebRTC object, such as an RTCPeerConnection, or an RTCDataChannel." }, + "rtcinboundrtpstreamstats.insertedsamplesfordeceleration": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/insertedsamplesfordeceleration", + "baseline": { + "level": "HIGH", + "lowDate": "2022-10-18", + "highDate": "2025-04-18" + }, + "doc": "The insertedSamplesForDeceleration property of the RTCInboundRtpStreamStats dictionary accumulates the difference between the number of samples received and the number of samples played out of the jitter buffer while audio playout is slowed down.\n

The WebRTC jitter buffer sets a target playout delay level such that the inflow and outflow of the jitter buffer should be approximately the same.\nIf the jitter buffer empties too quickly the audio sample that is next in line to be output may be \"ahead of schedule\", and the jitter buffer may slow down playout.\nIf the jitter buffer slows down the playout of the sample by inserting additional audio samples, this property indicates the accumulated number of such added samples.\n

Slowing down and/or speeding up the audio (as tracked with removedSamplesForAcceleration) may result in audible warbling or other distortion.\nThe totals at the end of the call also give you some indication of how many samples or seconds were impacted, and insertedSamplesForDeceleration can be correlated with totalSamplesReceived to get a relative measure of deceleration.\nLogging insertedSamplesForDeceleration and removedSamplesForAcceleration in timeslices can be helpful for isolating the times at which the problem occurred and you can then correlate other metrics in the same timeslice to determine likely causes.\n

\n

Note:\nThe value is undefined for video streams.\n

" + }, + "rtcinboundrtpstreamstats.jitter": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/jitter", + "baseline": { + "level": "HIGH", + "lowDate": "2020-03-24", + "highDate": "2022-09-24" + }, + "doc": "The jitter property of the RTCInboundRtpStreamStats dictionary indicates the packet interarrival jitter for this synchronization source (SSRC), in seconds.\n

The packet jitter is calculated as defined in RFC 3550, section 6.4.1." + }, + "rtcinboundrtpstreamstats.jitterbufferdelay": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/jitterbufferdelay", + "baseline": { + "level": "HIGH", + "lowDate": "2022-08-23", + "highDate": "2025-02-23" + }, + "doc": "The jitterBufferDelay property of the RTCInboundRtpStreamStats dictionary indicates the accumulated time that all audio samples and complete video frames have spent in the jitter buffer.\n

For an audio sample the time is calculated from the time that the sample is received by the jitter buffer (\"ingest timestamp\"), until the time that the sample is emitted (\"exit timestamp\").\nFor a video frame, the ingest time is when the first packet in the frame was ingested until the time at which the whole frame exits the buffer.\nNote that several audio samples in an RTP packet will have the same ingest timestamp but different exit timestamps, while a video frame might be split across a number of RTP packets.\n

jitterBufferDelay is incremented, along with jitterBufferEmittedCount, when samples or frames exit the buffer.\nThe average jitter buffer delay is jitterBufferDelay / jitterBufferEmittedCount.\n

The jitter buffer may hold samples/frames for a longer (or shorter) delay, allowing samples to build up in the buffer so that it can provide a more smooth and continuous playout.\nA low and relatively constant jitterBufferDelay is desirable, as it indicates the buffer does not need to hold as many frames/samples, and the network is stable.\nHigher values might indicate that the network is less reliable or predictable.\n

Similarly, a steady average delay indicates a more stable network, while a rising average delay indicates growing latency." + }, + "rtcinboundrtpstreamstats.jitterbufferemittedcount": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/jitterbufferemittedcount", + "baseline": { + "level": "HIGH", + "lowDate": "2022-08-23", + "highDate": "2025-02-23" + }, + "doc": "The jitterBufferEmittedCount property of the RTCInboundRtpStreamStats dictionary indicates the total number of audio samples and/or video frames that have come out of the jitter buffer.\n

The jitterBufferEmittedCount and jitterBufferDelay are incremented when samples or frames exit the buffer.\nThe average jitter buffer delay is jitterBufferDelay / jitterBufferEmittedCount." + }, + "rtcinboundrtpstreamstats.jitterbufferminimumdelay": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/jitterbufferminimumdelay", + "baseline": { + "level": "NONE" + }, + "doc": "The jitterBufferMinimumDelay property of the RTCInboundRtpStreamStats dictionary indicates the minimum jitter buffer delay that might be achieved given only the network characteristics such as jitter and packet loss.\n

The jitter buffer delay may be impacted by user settings such as RTCRtpReceiver.jitterBufferTarget, and WebRTC mechanisms such as AV synchronization.\njitterBufferMinimumDelay can be compared to the jitterBufferTargetDelay to examine the effect of these external factors on the delay.\n

The property is updated when jitterBufferEmittedCount is updated." + }, + "rtcinboundrtpstreamstats.jitterbuffertargetdelay": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/jitterbuffertargetdelay", + "baseline": { + "level": "NONE" + }, + "doc": "The jitterBufferTargetDelay property of the RTCInboundRtpStreamStats dictionary indicates the accumulated target jitter buffer delay, in seconds.\n

The target jitter buffer delay is the playout delay that the jitter buffer estimates that it needs to maintain in order to compensate for jitter and ensure smooth playback.\nThe estimate is affected by network variability and latency as well as mechanisms such as AV synchronization. Developers can influence it by setting the RTCRtpReceiver.jitterBufferTarget property.\n

The property is updated when jitterBufferEmittedCount is updated.\nThe average target jitter buffer delay is jitterBufferTargetDelay / jitterBufferEmittedCount.\n

The property can be compared to the average of the jitterBufferMinimumDelay to determine the effects of external factors on the target, such as the configured jitterBufferTarget hint." + }, + "rtcinboundrtpstreamstats.keyframesdecoded": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/keyframesdecoded", + "baseline": { + "level": "NONE" + }, + "doc": "The keyFramesDecoded property of the RTCInboundRtpStreamStats dictionary represents the total number of key frames successfully decoded in this RTP media stream.\nThis includes, for example, key frames in VP8 (RFC 6386) or IDR-frames in H.264 (RFC 6184).\n

Note that the number of delta frames is calculated by subtracting this value from the total number of frames (framesDecoded - keyFramesEncoded).\n

\n

Note:\nThe property is undefined for audio streams.\n

" + }, "rtcinboundrtpstreamstats.kind": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/kind", "baseline": { @@ -6038,41 +6178,80 @@ "baseline": { "level": "NONE" }, - "doc": "The nackCount property of the\nRTCInboundRtpStreamStats dictionary is a numeric value indicating the\nnumber of times the receiver sent a NACK packet to the sender.\n

A NACK (Negative ACKnowledgement, also called \"Generic NACK\") packet tells the sender\nthat one or more of the RTP packets it sent were lost in transport." + "doc": "The nackCount property of the RTCInboundRtpStreamStats dictionary indicates the number of times the receiver sent a NACK packet to the sender.\n

A NACK (Negative ACKnowledgement, also called \"Generic NACK\") packet tells the sender that one or more of the RTP packets it sent were lost in transport." }, - "rtcinboundrtpstreamstats.packetsduplicated": { - "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/packetsduplicated", - "doc": "The packetsDuplicated property\nof the RTCInboundRtpStreamStats dictionary indicates the total number\nof packets discarded because they were duplicates of previously-received\npackets.\n

These packets are not counted by the\npacketsDiscarded property." + "rtcinboundrtpstreamstats.packetsdiscarded": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/packetsdiscarded", + "baseline": { + "level": "HIGH", + "lowDate": "2022-03-14", + "highDate": "2024-09-14" + }, + "doc": "The packetsDiscarded property of the RTCInboundRtpStreamStats dictionary indicates the cumulative number of RTP packets that have been discarded by the jitter buffer due to late or early-arrival, and are hence not played out.\n

The value does not include packets that are discarded to due to packet duplication." }, - "rtcinboundrtpstreamstats.packetsfaileddecryption": { - "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/packetsfaileddecryption", - "doc": "The packetsFailedDecryption\nproperty of the RTCInboundRtpStreamStats dictionary indicates the total\nnumber of RTP packets which failed to be decrypted successfully after\nbeing received by the local end of the connection during this session." + "rtcinboundrtpstreamstats.packetslost": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/packetslost", + "baseline": { + "level": "HIGH", + "lowDate": "2020-07-28", + "highDate": "2023-01-28" + }, + "doc": "The packetsLost property of the RTCRemoteInboundRtpStreamStats dictionary returns the total number of RTP packets lost from the synchronization source (SSRC) since the beginning of reception.\n

Note that this can be negative." }, - "rtcinboundrtpstreamstats.perdscppacketsreceived": { - "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/perdscppacketsreceived", - "doc": "The perDscpPacketsReceived\nproperty of the RTCInboundRtpStreamStats dictionary is a record\ncomprised of key/value pairs in which each key is a string representation of a\nDifferentiated Services Code Point and the value is the number of packets received for\nthat DCSP.\n

\n

Note:\nNot all operating systems make data available on a per-DSCP\nbasis, so this property shouldn't be relied upon on those systems.\n

" + "rtcinboundrtpstreamstats.packetsreceived": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/packetsreceived", + "baseline": { + "level": "HIGH", + "lowDate": "2020-07-28", + "highDate": "2023-01-28" + }, + "doc": "The packetsReceived property of the RTCInboundRtpStreamStats dictionary returns the total number of RTP packets received from the synchronization source (SSRC) of this stream, including retransmissions." + }, + "rtcinboundrtpstreamstats.pausecount": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/pausecount", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The pauseCount property of the RTCRemoteInboundRtpStreamStats dictionary indicates the total number of pauses experienced by this receiver.\n

A pause is counted when a new frame is rendered more than 5 seconds after the last frame was rendered.\n

The average pause duration can be calculated using totalPausesDuration / pauseCount.\n

\n

Note:\nThe property is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.playoutid": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/playoutid", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The playoutId property of the RTCInboundRtpStreamStats dictionary indicates the id of the RTCAudioPlayoutStats object that corresponds to this stream.\n

\n

Note:\nThe value is undefined for video streams.\n

" }, "rtcinboundrtpstreamstats.qpsum": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/qpsum", "baseline": { "level": "NONE" }, - "doc": "The qpSum property of the\nRTCInboundRtpStreamStats dictionary is a value generated by adding the\nQuantization Parameter (QP) values for every frame\nsent or received to date on the video track corresponding to this\nRTCInboundRtpStreamStats object.\n

In general, the higher this\nnumber is, the more heavily compressed the video data is." - }, - "rtcinboundrtpstreamstats.receiverid": { - "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/receiverid", - "doc": "The receiverId property of the RTCInboundRtpStreamStats dictionary specifies the id of the RTCAudioReceiverStats or RTCVideoReceiverStats object representing the RTCRtpReceiver receiving the stream." + "doc": "The qpSum property of the RTCInboundRtpStreamStats dictionary indicates the sum of the Quantization Parameter (QP) values for every frame sent or received on the video track corresponding to this RTCInboundRtpStreamStats object.\n

In general, a larger numbers indicates that the video data is more heavily compressed.\n

\n

Note:\nThis value is only available for video media.\n

" }, "rtcinboundrtpstreamstats.remoteid": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/remoteid", "baseline": { "level": "NONE" }, - "doc": "The remoteId property of the\nRTCInboundRtpStreamStats dictionary specifies the id of the RTCRemoteOutboundRtpStreamStats object representing the remote peer's RTCRtpSender which is sending the media to the local peer." + "doc": "The remoteId property of the RTCInboundRtpStreamStats dictionary specifies the id of the RTCRemoteOutboundRtpStreamStats object representing the remote peer's RTCRtpSender which is sending the media to the local peer." }, - "rtcinboundrtpstreamstats.slicount": { - "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/slicount", - "doc": "The sliCount property of the\nRTCInboundRtpStreamStats dictionary indicates how many Slice\nLoss Indication (SLI) packets the\nRTCRtpReceiver for which this object provides statistics sent to the\nremote RTCRtpSender.\n

An SLI packet is used by a decoder to let\nthe encoder know that it's detected corruption of one or more consecutive macroblocks\n(in scan order) in the received media.\n

In general, what's usually of interest is that the higher this number is, the more the\nstream data is becoming corrupted between the sender and the receiver, requiring resends\nor dropping frames." + "rtcinboundrtpstreamstats.removedsamplesforacceleration": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/removedsamplesforacceleration", + "baseline": { + "level": "HIGH", + "lowDate": "2022-10-18", + "highDate": "2025-04-18" + }, + "doc": "The removedSamplesForAcceleration property of the RTCInboundRtpStreamStats dictionary accumulates the difference between the number of samples played out of the jitter buffer and the number of samples received while audio playout is sped up.\n

The WebRTC jitter buffer sets a target playout delay level such that the inflow and outflow of the jitter buffer should be approximately the same.\nIf the jitter buffer empties too slowly the audio sample that is next in line to be output may be \"behind schedule\", and the engine may speed up playout to catch up.\nIf the engine speeds up playout by removing some audio samples, this property indicates the accumulated number of such removed samples.\n

Speeding up or slowing down the audio (as tracked with insertedSamplesForDeceleration) may result in audible warbling or other distortion.\nThe totals at the end of the call also give you some indication of how many samples or seconds were impacted, and removedSamplesForAcceleration can be correlated with totalSamplesReceived to get a relative measure of acceleration.\nLogging insertedSamplesForDeceleration and removedSamplesForAcceleration in timeslices can be helpful for isolating the times at which the problem occurred and you can then correlate other metrics in the same timeslice to determine likely causes.\n

\n

Note:\nThe value is undefined for video streams.\n

" + }, + "rtcinboundrtpstreamstats.silentconcealedsamples": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/silentconcealedsamples", + "baseline": { + "level": "HIGH", + "lowDate": "2022-08-23", + "highDate": "2025-02-23" + }, + "doc": "The silentConcealedSamples property of the RTCInboundRtpStreamStats dictionary indicates the total number of silent concealed samples for the received audio track over the lifetime of this stats object.\n

A concealed sample is a sample that was lost or arrived too late to be played out, and therefore had to be replaced with a locally generated synthesized sample.\nA silent concealed sample is one where the inserted sample is either silent or comfort noise.\n

\n

Note:\nThe value is undefined for video streams.\n

" }, "rtcinboundrtpstreamstats.ssrc": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/ssrc", @@ -6081,7 +6260,7 @@ "lowDate": "2020-02-07", "highDate": "2022-08-07" }, - "doc": "The ssrc property of the RTCInboundRtpStreamStats dictionary contains a positive integer value that identifies the synchronization source (SSRC) of this stream of RTP packets.\n

A source might be something like a microphone, or a mixer application that combines multiple sources.\nAll packets from the same source share the same time source and sequence space, and so can be ordered relative to each other.\nNote that two streams with the same ssrc value refer to the same source." + "doc": "The ssrc property of the RTCInboundRtpStreamStats dictionary identifies the synchronization source (SSRC) of this stream of RTP packets." }, "rtcinboundrtpstreamstats.timestamp": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/timestamp", @@ -6092,6 +6271,91 @@ }, "doc": "The timestamp property of the RTCInboundRtpStreamStats dictionary is a DOMHighResTimeStamp object specifying the time at which the data in the object was sampled." }, + "rtcinboundrtpstreamstats.totalassemblytime": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totalassemblytime", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The totalAssemblyTime property of the RTCInboundRtpStreamStats dictionary indicates the total time spent assembling successfully decoded video frames that were transported in multiple RTP packets.\n

\n

Note:\nThe value is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.totalaudioenergy": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totalaudioenergy", + "baseline": { + "level": "HIGH", + "lowDate": "2022-10-18", + "highDate": "2025-04-18" + }, + "doc": "The totalAudioEnergy property of the RTCInboundRtpStreamStats dictionary represents the total audio energy of a received audio track over the lifetime of this stats object.\n

The total energy across a particular duration can be determined by subtracting the value of this property returned by two different getStats() calls.\n

\n

Note:\nThe value is undefined for video streams.\n

" + }, + "rtcinboundrtpstreamstats.totaldecodetime": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totaldecodetime", + "baseline": { + "level": "NONE" + }, + "doc": "The totalDecodeTime property of the RTCInboundRtpStreamStats dictionary indicates the total time spend decoding frames for this media source/stream, in seconds.\n

The time it takes to decode one frame is the time passed between feeding the decoder a frame and the decoder returning decoded data for that frame.\n

The number of decoded frames is given in framesDecoded, and the average decode time is totalDecodeTime / framesDecoded.\n

\n

Note:\nThe property is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.totalfreezesduration": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totalfreezesduration", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The totalFreezesDuration property of the RTCRemoteInboundRtpStreamStats dictionary indicates the total time that the video in this stream has spent frozen, in seconds.\n

A freeze is counted if the interval between two rendered frames is equal or greater than the larger of \"three times the average duration\", or \"the average + 150ms\", and the time taken between frames is added to the totalFreezesDuration.\n

The average freeze duration can be calculated using totalFreezesDuration / freezeCount.\n

\n

Note:\nThe property is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.totalinterframedelay": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totalinterframedelay", + "baseline": { + "level": "NONE" + }, + "doc": "The totalInterFrameDelay property of the RTCInboundRtpStreamStats dictionary indicates the total accumulated time between consecutively rendered frames, in seconds.\nIt is recorded after each frame is rendered.\n

The inter-frame delay variance can be calculated from totalInterFrameDelay, totalSquaredInterFrameDelay , and framesRendered according to the formula: (totalSquaredInterFrameDelay - totalInterFrameDelay^2/ framesRendered)/framesRendered.\n

\n

Note:\nThe property is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.totalpausesduration": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totalpausesduration", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The totalPausesDuration property of the RTCRemoteInboundRtpStreamStats dictionary indicates the total time that the video in this stream has spent paused, in seconds\n

A pause is counted when a new frame is rendered more than 5 seconds after the last frame was rendered, and the time taken between frames is added to the totalPausesDuration.\n

The average pause duration can be calculated using totalPausesDuration / pauseCount.\n

\n

Note:\nThe property is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.totalprocessingdelay": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totalprocessingdelay", + "baseline": { + "level": "NONE" + }, + "doc": "The totalProcessingDelay property of the RTCInboundRtpStreamStats dictionary indicates the total accumulated time spent processing audio or video samples, in seconds.\n

The processing time for each audio or video sample is calculated from the time the first RTP packet is received (reception timestamp) to the time that the corresponding sample or frame is decoded (decoded timestamp).\nAt this point the audio sample or video frame is fully decoded by the decoder and is ready for playout by the MediaStreamTrack.\n

For audio streams, an RTP packet may contain multiple audio samples: these will share the same reception timestamp.\nFor video streams, a complete frame may arrive in several RTP packets, and the reception timestamp is that of the first RTP packet that was received that contains data for the frame.\nIn both cases the decoded timestamp is the time at which the sample or frame is ready to play.\n

For video, the property only accumulates for decoded frames (not those that were dropped).\nThe average processing delay can be calculated by dividing the totalProcessingDelay with the framesDecoded." + }, + "rtcinboundrtpstreamstats.totalsamplesduration": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totalsamplesduration", + "baseline": { + "level": "HIGH", + "lowDate": "2022-10-18", + "highDate": "2025-04-18" + }, + "doc": "The totalSamplesDuration property of the RTCRemoteInboundRtpStreamStats dictionary indicates the total duration of all audio samples that have been received.\nIn other words, the current duration of the track.\n

This can be used with totalAudioEnergy to compute an average audio level over different intervals.\n

\n

Note:\nThe value is undefined for video streams.\n

" + }, + "rtcinboundrtpstreamstats.totalsamplesreceived": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totalsamplesreceived", + "baseline": { + "level": "HIGH", + "lowDate": "2022-08-23", + "highDate": "2025-02-23" + }, + "doc": "The totalSamplesReceived property of the RTCInboundRtpStreamStats dictionary indicates the total number of samples received on this stream, including concealedSamples.\n
\n

Note:\nThe value is undefined for video streams.\n

" + }, + "rtcinboundrtpstreamstats.totalsquaredinterframedelay": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/totalsquaredinterframedelay", + "baseline": { + "level": "NONE" + }, + "doc": "The totalSquaredInterFrameDelay property of the RTCInboundRtpStreamStats dictionary indicates the sum of the square of each inter-frame delay between consecutively rendered frames.\nIt is recorded after each frame is rendered.\n

The inter-frame delay variance be calculated from totalInterFrameDelay, totalSquaredInterFrameDelay, and framesRendered, according to the formula: (totalSquaredInterFrameDelay - totalInterFrameDelay^2/ framesRendered)/framesRendered.\n

\n

Note:\nThe property is undefined for audio streams.\n

" + }, + "rtcinboundrtpstreamstats.trackidentifier": { + "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/trackidentifier", + "baseline": { + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" + }, + "doc": "The trackIdentifier property of the RTCInboundRtpStreamStats dictionary is a string that identifies the MediaStreamTrack associated with the inbound stream.\n

This value will match the MediaStreamTrack.id value of the associated track." + }, "rtcinboundrtpstreamstats.transportid": { "url": "$MDN_URL$/web/api/rtcinboundrtpstreamstats/transportid", "baseline": { @@ -6291,6 +6555,9 @@ }, "rtcoutboundrtpstreamstats.rid": { "url": "$MDN_URL$/web/api/rtcoutboundrtpstreamstats/rid", + "baseline": { + "level": "NONE" + }, "doc": "The rid property of the RTCOutboundRtpStreamStats dictionary is a string that specifies the RTP stream ID, if defined.\n

The property is only defined where the rid has been set for the corresponding RTCRtpSender.\nIf set, this value will be present regardless of whether the RID RTP header extension has been negotiated." }, "rtcoutboundrtpstreamstats.scalabilitymode": { @@ -6298,7 +6565,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The scalabilityMode property of the RTCOutboundRtpStreamStats dictionary represents the scalability mode for the RTP stream, if one has been configured.\nIf not configured, the property is undefined.\n

The mode is used in Scalable Video Coding (SVC) to define how define how a video stream may be encoded to allow for adaptation to different network conditions and receiver capabilities.\nDifferent codecs allow for various kinds of scalability, such as providing different resolution, different frame rates, or different quality levels for a particular video.\n

The mode may be configured, for example, by specifying the scalability mode as a parameter option in VideoEncoder.configure(), RTCRtpSender.setParameters(), or RTCPeerConnection.addTransceiver().\n

\n

Note:\nThe property is undefined for audio streams.\n

" + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The scalabilityMode property of the RTCOutboundRtpStreamStats dictionary represents the scalability mode for the RTP stream, if one has been configured.\nIf not configured, the property is undefined.\n

The mode is used in Scalable Video Coding (SVC) to define how define how a video stream may be encoded to allow for adaptation to different network conditions and receiver capabilities.\nDifferent codecs allow for various kinds of scalability, such as providing different resolution, different frame rates, or different quality levels for a particular video.\n

The mode may be configured, for example, by specifying the scalability mode as a parameter option in VideoEncoder.configure(), RTCRtpSender.setParameters(), or RTCPeerConnection.addTransceiver().\n

\n

Note:\nThe property is undefined for audio streams.\n

" }, "rtcoutboundrtpstreamstats.ssrc": { "url": "$MDN_URL$/web/api/rtcoutboundrtpstreamstats/ssrc", @@ -6428,7 +6695,7 @@ "FirefoxAndroid": "24", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The addStream() method of the RTCPeerConnection interface adds a MediaStream as a local source of audio or video.\nInstead of using this obsolete method, you should instead use addTrack() once for each track you wish to send to the remote peer.\n

If the signalingState is set to closed, an InvalidStateError is raised.\nIf the signalingState is set to stable, the event negotiationneeded is sent on the RTCPeerConnection to indicate that ICE negotiation must be repeated to consider the new stream.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The addStream() method of the RTCPeerConnection interface adds a MediaStream as a local source of audio or video.\nInstead of using this obsolete method, you should instead use addTrack() once for each track you wish to send to the remote peer.\n

If the signalingState is set to closed, an InvalidStateError is raised.\nIf the signalingState is set to stable, the event negotiationneeded is sent on the RTCPeerConnection to indicate that ICE negotiation must be repeated to consider the new stream.", "parameters": { "mediaStream": "A MediaStream object indicating the stream to add to the WebRTC peer connection." }, @@ -6540,7 +6807,8 @@ "lowDate": "2017-09-19", "highDate": "2020-03-19" }, - "doc": "The close() method of the RTCPeerConnection interface closes the current peer connection." + "doc": "The close() method of the RTCPeerConnection interface closes the current peer connection.\n

Calling this method terminates the RTCPeerConnection's ICE agent, ending any ongoing ICE processing and any active streams.\nThis also releases any resources in use by the ICE agent, including TURN permissions.\nAll RTCRtpSender objects are considered to be stopped once this returns (they may still be in the process of stopping, but for all intents and purposes, they're stopped).\n

Once this method returns, the signaling state as returned by RTCPeerConnection.signalingState is closed.\n

Make sure that you delete all references to the previous RTCPeerConnection before attempting to create a new one that connects to the same remote peer, as not doing so might result in some errors depending on the browser.", + "returns": "None (undefined)." }, "rtcpeerconnection.connectionstate": { "url": "$MDN_URL$/web/api/rtcpeerconnection/connectionstate", @@ -6638,7 +6906,7 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The createDTMFSender() method of the RTCPeerConnection interface creates a new RTCDTMFSender object associated with the specified MediaStreamTrack, which can be used to send DTMF tones over the connection.\n

This method is deprecated and should not be used. Instead, use the RTCRtpSender.dtmf property to access the DTMF sender associated with a specific sender.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The createDTMFSender() method of the RTCPeerConnection interface creates a new RTCDTMFSender object associated with the specified MediaStreamTrack, which can be used to send DTMF tones over the connection.\n

This method is deprecated and should not be used. Instead, use the RTCRtpSender.dtmf property to access the DTMF sender associated with a specific sender.", "parameters": { "track": "A MediaStreamTrack object representing the track to associate with the new DTMF sender." }, @@ -6780,7 +7048,8 @@ "Firefox": "40", "FirefoxAndroid": "40" }, - "doc": "The getIdentityAssertion() method of the RTCPeerConnection interface initiates the gathering of an identity assertion.\nThis has an effect only if the signalingState is not \"closed\".\n

The method returns a JavaScript Promise which resolves to an identity assertion encoded as a string.\n

It is not expected for the application dealing with the RTCPeerConnection: this is automatically done; an explicit call only allows to anticipate the need." + "doc": "The getIdentityAssertion() method of the RTCPeerConnection interface initiates the gathering of an identity assertion.\nThis has an effect only if the signalingState is not \"closed\".\n

It is not expected for the application dealing with the RTCPeerConnection: this is automatically done; an explicit call only allows to anticipate the need.", + "returns": "A Promise which resolves to an identity assertion encoded as a string." }, "rtcpeerconnection.getreceivers": { "url": "$MDN_URL$/web/api/rtcpeerconnection/getreceivers", @@ -7034,7 +7303,7 @@ "Edge": "15", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The removeStream() method of the RTCPeerConnection interface removes a MediaStream as a local source of audio or video.\nIf the negotiation already happened, a new one will be needed for the remote peer to be able to use it.\nBecause this method has been deprecated, you should instead use removeTrack() if your target browser versions have implemented it.\n

If the signalingState is set to \"closed\", an InvalidStateError is raised.\nIf the signalingState is set to \"stable\", the event negotiationneeded is sent on the RTCPeerConnection.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The removeStream() method of the RTCPeerConnection interface removes a MediaStream as a local source of audio or video.\nIf the negotiation already happened, a new one will be needed for the remote peer to be able to use it.\nBecause this method has been deprecated, you should instead use removeTrack() if your target browser versions have implemented it.\n

If the signalingState is set to \"closed\", an InvalidStateError is raised.\nIf the signalingState is set to \"stable\", the event negotiationneeded is sent on the RTCPeerConnection.", "parameters": { "mediaStream": "A MediaStream specifying the stream to remove from the connection." }, @@ -7163,6 +7432,7 @@ "parameters": { "configuration": "An object which provides the options to be set.\nThe changes are not additive; instead, the new values completely replace the existing ones.\nSee RTCPeerConnection() for more information on what options are allowed." }, + "returns": "None (undefined).", "throws": { "InvalidAccessError DOMException": "Thrown if one or more of the URLs specified in configuration.iceServers is a TURN server, but complete login information is not provided (that is, either the username or credential is missing, or if credentialType is \"password\" and credential is not a string).\nThis prevents successful login to the server.", "InvalidModificationError DOMException": "Thrown if the configuration includes changed identity information, but the connection already has identity information specified.\nThis happens if configuration.peerIdentity or configuration.certificates are set and their values differ from the current configuration.\nThis may also be thrown if there are changes to configuration.bundlePolicy or configuration.rtcpMuxPolicy, or to configuration.iceCandidatePoolSize when RTCPeerConnection.setLocalDescription() has already been called.", @@ -7806,7 +8076,7 @@ "baseline": { "level": "NONE" }, - "doc": "The jitterBufferTarget property of the RTCRtpReceiver interface is a DOMHighResTimeStamp that indicates the application's preferred duration, in milliseconds, for which the jitter buffer should hold media before playing it out.\n

The application can use it to influence the tradeoff between playout delay and the risk of running out of audio or video frames due to network jitter.", + "doc": "The jitterBufferTarget property of the RTCRtpReceiver interface is a DOMHighResTimeStamp that indicates the application's preferred duration, in milliseconds, for which the jitter buffer should hold media before playing it out.\n

The application can use it to influence the tradeoff between playout delay and the risk of running out of audio or video frames due to network jitter.", "throws": { "RangeError": "Thrown if the target is set to a negative value or a value that is greater than 4000 milliseconds." } @@ -7839,6 +8109,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -7877,6 +8150,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -7893,6 +8169,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -7917,6 +8196,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -7958,6 +8240,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -7974,6 +8259,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -7990,6 +8278,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -8010,6 +8301,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -8106,11 +8400,11 @@ }, "baseline": { "level": "HIGH", - "lowDate": "≤2020-01-15", - "highDate": "≤2022-07-15" + "lowDate": "2020-01-15", + "highDate": "2022-07-15" }, "doc": "The getParameters() method of the RTCRtpSender interface returns an object describing the current configuration for how the sender's track will be encoded and transmitted to a remote RTCRtpReceiver.", - "returns": "An object indicating the current configuration of the sender. \n\n

\n
encodings
\n
\n

An array of objects, each specifying the parameters and settings for a single codec that could be used to encode the track's media.\nThe properties of the objects include:\n

\n
active
\n
\n

true (the default) if the encoding is being sent, false if it is not being sent or used.\n

\n
dtx \nDeprecated\n \nNon-standard\n
\n
\n

Only used for an RTCRtpSender whose kind is audio, this property indicates whether or not discontinuous transmission is being used (a feature by which a phone is turned off or the microphone muted automatically in the absence of voice activity).\nThe value is taken either enabled or disabled.\n

\n
maxBitrate
\n
\n

A positive integer indicating the maximum number of bits per second that the user agent is allowed to grant to tracks encoded with this encoding.\nOther parameters may further constrain the bit rate, such as the value of maxFramerate, or the bandwidth available for the transport or physical network.\n

The value is computed using the standard Transport Independent Application Specific Maximum (TIAS) bandwidth as defined by RFC 3890, section 6.2.2; this is the maximum bandwidth needed without considering protocol overheads from IP, TCP or UDP, and so forth.\n

Note that the bitrate can be achieved in a number of ways, depending on the media and encoding.\nFor example, for video a low bit rate might be achieved by dropping frames (a bitrate of zero might allow just one frame to be sent), while for audio the track might have to stop playing if the bitrate is too low for it to be sent.\n

\n
maxFramerate
\n
\n

A value specifying the maximum number of frames per second to allow for this encoding.\n

\n
priority
\n
\n

A string indicating the priority of the RTCRtpSender, which may determine how the user agent allocates bandwidth between senders.\nAllowed values are very-low, low (default), medium, high.\n

\n
rid
\n
\n

A string which, if set, specifies an RTP stream ID (RID) to be sent using the RID header extension.\nThis parameter cannot be modified using setParameters().\nIts value can only be set when the transceiver is first created.\n

\n
scaleResolutionDownBy
\n
\n

Only used for senders whose track's kind is video, this is a floating-point value specifying a factor by which to scale down the video during encoding.\nThe default value, 1.0, means that the video will be encoded at its original size.\nA value of 2.0 scales the video frames down by a factor of 2 in each dimension, resulting in a video 1/4 the size of the original.\nThe value must not be less than 1.0 (attempting to scale the video to a larger size will throw a RangeError).\n

\n
\n
\n
transactionId
\n
\n

A string containing a unique ID.\nThis value is used to ensure that setParameters() can only be called to modify the parameters returned by a specific previous call to getParameters().\nThis parameter cannot be changed by the caller.\n\n

\n
codecs
\n
\n

An array of objects describing the media codecs that the sender has set as enabled, and is prepared to use.\nThis parameter cannot be changed once initially set.\n

Each codec object in the array may have the following properties: \n

\n
channels Optional
\n
\n

A positive integer indicating the number of channels supported by the codec.\nFor example, for audio codecs a value of 1 specifies monaural sound, while 2 indicates stereo.\n

\n
clockRate
\n
\n

A positive integer specifying the codec's clock rate in Hertz (Hz).\nThe clock rate is the rate at which the codec's RTP timestamp advances.\nMost codecs have specific values or ranges of values they permit.\nThe IANA maintains a list of codecs and their parameters, including their clock rates.\n

\n
mimeType
\n
\n

A string indicating the codec's MIME media type and subtype, specified as a string of the form \"type/subtype\".\nThe MIME type strings used by RTP differ from those used elsewhere.\nIANA maintains a registry of valid MIME types.\nAlso see Codecs used by WebRTC for details about potential codecs that might be referenced here.\n

\n
payloadType
\n
\n

The RTP payload type used to identify this codec.\n

\n
sdpFmtpLine Optional
\n
\n

A string giving the format specific parameters provided by the local description.\n

\n
\n
\n
headerExtensions
\n
\n

An array of zero or more RTP header extensions, each identifying an extension supported by the sender or receiver. Header extensions are described in RFC 3550, section 5.3.1.\nThis parameter cannot be changed once initially set.\n

\n
rtcp
\n
\n

An RTCRtcpParameters object providing the configuration parameters used for RTCP on the sender or receiver.\nThis parameter cannot be changed once initially set.\n

\n
degradationPreference \nDeprecated\n Optional
\n
\n

Specifies the preferred way the WebRTC layer should handle optimizing bandwidth against quality in constrained-bandwidth situations.\nThe possible values are maintain-framerate, maintain-resolution, or balanced.\nThe default value is balanced.\n

\n
" + "returns": "An object indicating the current configuration of the sender. \n\n
\n
encodings
\n
\n

An array of objects, each specifying the parameters and settings for a single codec that could be used to encode the track's media.\nThe properties of the objects include:\n

\n
active
\n
\n

true (the default) if the encoding is being sent, false if it is not being sent or used.\n

\n
codec Optional
\n
\n

Selects the media codec that is used for this encoding's RTP stream.\nIf not set, the user agent may select any codec negotiated for sending.\n\n

\n
channels Optional
\n
\n

A positive integer indicating the number of channels supported by the codec.\nFor example, for audio codecs a value of 1 specifies monaural sound, while 2 indicates stereo.\n

\n
clockRate
\n
\n

A positive integer specifying the codec's clock rate in Hertz (Hz).\nThe clock rate is the rate at which the codec's RTP timestamp advances.\nMost codecs have specific values or ranges of values they permit.\nThe IANA maintains a list of codecs and their parameters, including their clock rates.\n

\n
mimeType
\n
\n

A string indicating the codec's MIME media type and subtype, specified as a string of the form \"type/subtype\".\nThe MIME type strings used by RTP differ from those used elsewhere.\nIANA maintains a registry of valid MIME types.\nAlso see Codecs used by WebRTC for details about potential codecs that might be referenced here.\n

\n
sdpFmtpLine Optional
\n
\n

A string giving the format specific parameters provided by the local description.\n

\n
\n
\n
dtx \nDeprecated\n \nNon-standard\n
\n
\n

Only used for an RTCRtpSender whose kind is audio, this property indicates whether or not discontinuous transmission is being used (a feature by which a phone is turned off or the microphone muted automatically in the absence of voice activity).\nThe value is taken either enabled or disabled.\n

\n
maxBitrate
\n
\n

A positive integer indicating the maximum number of bits per second that the user agent is allowed to grant to tracks encoded with this encoding.\nOther parameters may further constrain the bit rate, such as the value of maxFramerate, or the bandwidth available for the transport or physical network.\n

The value is computed using the standard Transport Independent Application Specific Maximum (TIAS) bandwidth as defined by RFC 3890, section 6.2.2; this is the maximum bandwidth needed without considering protocol overheads from IP, TCP or UDP, and so forth.\n

Note that the bitrate can be achieved in a number of ways, depending on the media and encoding.\nFor example, for video a low bit rate might be achieved by dropping frames (a bitrate of zero might allow just one frame to be sent), while for audio the track might have to stop playing if the bitrate is too low for it to be sent.\n

\n
maxFramerate
\n
\n

A value specifying the maximum number of frames per second to allow for this encoding.\n

\n
priority
\n
\n

A string indicating the priority of the RTCRtpSender, which may determine how the user agent allocates bandwidth between senders.\nAllowed values are very-low, low (default), medium, high.\n

\n
rid
\n
\n

A string which, if set, specifies an RTP stream ID (RID) to be sent using the RID header extension.\nThis parameter cannot be modified using setParameters().\nIts value can only be set when the transceiver is first created.\n

\n
scaleResolutionDownBy
\n
\n

Only used for senders whose track's kind is video, this is a floating-point value specifying a factor by which to scale down the video during encoding.\nThe default value, 1.0, means that the video will be encoded at its original size.\nA value of 2.0 scales the video frames down by a factor of 2 in each dimension, resulting in a video 1/4 the size of the original.\nThe value must not be less than 1.0 (attempting to scale the video to a larger size will throw a RangeError).\n

\n
\n
\n
transactionId
\n
\n

A string containing a unique ID.\nThis value is used to ensure that setParameters() can only be called to modify the parameters returned by a specific previous call to getParameters().\nThis parameter cannot be changed by the caller.\n\n

\n
codecs
\n
\n

An array of objects describing the media codecs that the sender has set as enabled, and is prepared to use.\nThis parameter cannot be changed once initially set.\n

Each codec object in the array may have the following properties: \n

\n
channels Optional
\n
\n

A positive integer indicating the number of channels supported by the codec.\nFor example, for audio codecs a value of 1 specifies monaural sound, while 2 indicates stereo.\n

\n
clockRate
\n
\n

A positive integer specifying the codec's clock rate in Hertz (Hz).\nThe clock rate is the rate at which the codec's RTP timestamp advances.\nMost codecs have specific values or ranges of values they permit.\nThe IANA maintains a list of codecs and their parameters, including their clock rates.\n

\n
mimeType
\n
\n

A string indicating the codec's MIME media type and subtype, specified as a string of the form \"type/subtype\".\nThe MIME type strings used by RTP differ from those used elsewhere.\nIANA maintains a registry of valid MIME types.\nAlso see Codecs used by WebRTC for details about potential codecs that might be referenced here.\n

\n
payloadType
\n
\n

The RTP payload type used to identify this codec.\n

\n
sdpFmtpLine Optional
\n
\n

A string giving the format specific parameters provided by the local description.\n

\n
\n
\n
headerExtensions
\n
\n

An array of zero or more RTP header extensions, each identifying an extension supported by the sender or receiver. Header extensions are described in RFC 3550, section 5.3.1.\nThis parameter cannot be changed once initially set.\n

\n
rtcp
\n
\n

An object providing the configuration parameters used for RTCP on the sender.\nThis parameter cannot be changed.\n

The object may have the following properties: \n

\n
cname
\n
\n

A read-only string giving the canonical name (CNAME) used by RTCP (e.g., in SDES messages).\n

\n
reducedSize
\n
\n

A read-only boolean that is True if reduced size RTCP is configured (RFC 5506), and False if compound RTCP is specified (RFC 3550).\n

\n
\n
\n
degradationPreference \nDeprecated\n Optional
\n
\n

Specifies the preferred way the WebRTC layer should handle optimizing bandwidth against quality in constrained-bandwidth situations.\nThe possible values are maintain-framerate, maintain-resolution, or balanced.\nThe default value is balanced.\n

\n
" }, "rtcrtpsender.getstats": { "url": "$MDN_URL$/web/api/rtcrtpsender/getstats", @@ -8183,12 +8477,12 @@ }, "baseline": { "level": "HIGH", - "lowDate": "≤2020-01-15", - "highDate": "≤2022-07-15" + "lowDate": "2020-01-15", + "highDate": "2022-07-15" }, "doc": "The setParameters() method of the RTCRtpSender interface applies changes the configuration of sender's track, which is the MediaStreamTrack for which the RTCRtpSender is responsible.\n

In other words, setParameters() updates the configuration of the RTP transmission as well as the encoding configuration for a specific outgoing media track on the WebRTC connection.", "parameters": { - "parameters": "A parameters object previously obtained by calling the same sender's getParameters() method, with the desired changes to the sender's configuration parameters.\nThese parameters include potential codecs that could be use for encoding the sender's track.\nThe available parameters are:\n

\n
encodings
\n
\n

An array of objects, each specifying the parameters for a single codec that could be used to encode the track's media.\nThe properties of the objects include:\n

\n
active
\n
\n

Setting this value true (the default) causes this encoding to be sent, while false stops it from being sent and used (but does not cause the SSRC to be removed).\n

\n
dtx
\n
\n

Only used for an RTCRtpSender whose kind is audio, this property indicates whether or not to use discontinuous transmission (a feature by which a phone is turned off or the microphone muted automatically in the absence of voice activity).\nThe value is taken either enabled or disabled.\n

\n
maxBitrate
\n
\n

A positive integer indicating the maximum number of bits per second that the user agent is allowed to grant to tracks encoded with this encoding.\nOther parameters may further constrain the bit rate, such as the value of maxFramerate, or the bandwidth available for the transport or physical network.\n

The value is computed using the standard Transport Independent Application Specific Maximum (TIAS) bandwidth as defined by RFC 3890, section 6.2.2; this is the maximum bandwidth needed without considering protocol overheads from IP, TCP or UDP, and so forth.\n

Note that the bitrate can be achieved in a number of ways, depending on the media and encoding.\nFor example, for video a low bit rate might be achieved by dropping frames (a bitrate of zero might allow just one frame to be sent), while for audio the track might have to stop playing if the bitrate is too low for it to be sent.\n

\n
maxFramerate
\n
\n

A value specifying the maximum number of frames per second to allow for this encoding.\n

\n
priority
\n
\n

A string indicating the priority of the RTCRtpSender, which may determine how the user agent allocates bandwidth between senders.\nAllowed values are very-low, low (default), medium, high.\n

\n
rid
\n
\n

A string which, if set, specifies an RTP stream ID (RID) to be sent using the RID header extension.\nThis parameter cannot be modified using setParameters().\nIts value can only be set when the transceiver is first created.\n

\n
scaleResolutionDownBy
\n
\n

Only used for senders whose track's kind is video, this is a floating-point value specifying a factor by which to scale down the video during encoding.\nThe default value, 1.0, means that the video will be encoded at its original size.\nA value of 2.0 scales the video frames down by a factor of 2 in each dimension, resulting in a video 1/4 the size of the original.\nThe value must not be less than 1.0 (attempting to scale the video to a larger size will throw a RangeError).\n

\n
\n
\n
transactionId
\n
\n

A string containing a unique ID.\nThis ID is set in the previous getParameters() call, and ensures that the parameters originated from a previous call to getParameters().\n

\n
codecs
\n
\n

An array of objects describing the media codecs from which the sender will choose.\nThis parameter cannot be changed once initially set.\n

Each codec object in the array may have the following properties:\n

\n
channels Optional
\n
\n

A positive integer indicating the number of channels supported by the codec.\nFor example, for audio codecs a value of 1 specifies monaural sound, while 2 indicates stereo.\n

\n
clockRate
\n
\n

A positive integer specifying the codec's clock rate in Hertz (Hz).\nThe clock rate is the rate at which the codec's RTP timestamp advances.\nMost codecs have specific values or ranges of values they permit.\nThe IANA maintains a list of codecs and their parameters, including their clock rates.\n

\n
mimeType
\n
\n

A string indicating the codec's MIME media type and subtype, specified as a string of the form \"type/subtype\".\nThe MIME type strings used by RTP differ from those used elsewhere.\nIANA maintains a registry of valid MIME types.\nAlso see Codecs used by WebRTC for details about potential codecs that might be referenced here.\n

\n
payloadType
\n
\n

The RTP payload type used to identify this codec.\n

\n
sdpFmtpLine Optional
\n
\n

A string giving the format specific parameters provided by the local description.\n

\n
\n
\n
headerExtensions
\n
\n

An array of zero or more RTP header extensions, each identifying an extension supported by the sender.\nHeader extensions are described in RFC 3550, section 5.3.1.\nThis parameter cannot be changed.\n

\n
rtcp
\n
\n

An RTCRtcpParameters object providing the configuration parameters used for RTCP on the sender.\nThis parameter cannot be changed.\n

\n
degradationPreference
\n
\n

Specifies the preferred way the WebRTC layer should handle optimizing bandwidth against quality in constrained-bandwidth situations.\nThe possible values are maintain-framerate, maintain-resolution, or balanced.\nThe default value is balanced.\n

\n
" + "parameters": "A parameters object previously obtained by calling the same sender's getParameters() method, with the desired changes to the sender's configuration parameters.\nThese parameters include potential codecs that could be use for encoding the sender's track.\nThe available parameters are:\n
\n
encodings
\n
\n

An array of objects, each specifying the parameters for a single codec that could be used to encode the track's media.\nThe properties of the objects include:\n

\n
active
\n
\n

Setting this value true (the default) causes this encoding to be sent, while false stops it from being sent and used (but does not cause the SSRC to be removed).\n

\n
codec Optional
\n
\n

Selects the media codec that is used for this encoding's RTP stream.\nIf not set, the user agent may select any codec negotiated for sending.\n

\n
channels Optional
\n
\n

A positive integer indicating the number of channels supported by the codec.\nFor example, for audio codecs a value of 1 specifies monaural sound, while 2 indicates stereo.\n

\n
clockRate
\n
\n

A positive integer specifying the codec's clock rate in Hertz (Hz).\nThe clock rate is the rate at which the codec's RTP timestamp advances.\nMost codecs have specific values or ranges of values they permit.\nThe IANA maintains a list of codecs and their parameters, including their clock rates.\n

\n
mimeType
\n
\n

A string indicating the codec's MIME media type and subtype, specified as a string of the form \"type/subtype\".\nThe MIME type strings used by RTP differ from those used elsewhere.\nIANA maintains a registry of valid MIME types.\nAlso see Codecs used by WebRTC for details about potential codecs that might be referenced here.\n

\n
sdpFmtpLine Optional
\n
\n

A string giving the format specific parameters provided by the local description.\n

\n
\n
\n
dtx
\n
\n

Only used for an RTCRtpSender whose kind is audio, this property indicates whether or not to use discontinuous transmission (a feature by which a phone is turned off or the microphone muted automatically in the absence of voice activity).\nThe value is taken either enabled or disabled.\n

\n
maxBitrate
\n
\n

A positive integer indicating the maximum number of bits per second that the user agent is allowed to grant to tracks encoded with this encoding.\nOther parameters may further constrain the bit rate, such as the value of maxFramerate, or the bandwidth available for the transport or physical network.\n

The value is computed using the standard Transport Independent Application Specific Maximum (TIAS) bandwidth as defined by RFC 3890, section 6.2.2; this is the maximum bandwidth needed without considering protocol overheads from IP, TCP or UDP, and so forth.\n

Note that the bitrate can be achieved in a number of ways, depending on the media and encoding.\nFor example, for video a low bit rate might be achieved by dropping frames (a bitrate of zero might allow just one frame to be sent), while for audio the track might have to stop playing if the bitrate is too low for it to be sent.\n

\n
maxFramerate
\n
\n

A value specifying the maximum number of frames per second to allow for this encoding.\n

\n
priority
\n
\n

A string indicating the priority of the RTCRtpSender, which may determine how the user agent allocates bandwidth between senders.\nAllowed values are very-low, low (default), medium, high.\n

\n
rid
\n
\n

A string which, if set, specifies an RTP stream ID (RID) to be sent using the RID header extension.\nThis parameter cannot be modified using setParameters().\nIts value can only be set when the transceiver is first created.\n

\n
scaleResolutionDownBy
\n
\n

Only used for senders whose track's kind is video, this is a floating-point value specifying a factor by which to scale down the video during encoding.\nThe default value, 1.0, means that the video will be encoded at its original size.\nA value of 2.0 scales the video frames down by a factor of 2 in each dimension, resulting in a video 1/4 the size of the original.\nThe value must not be less than 1.0 (attempting to scale the video to a larger size will throw a RangeError).\n

\n
\n
\n
transactionId
\n
\n

A string containing a unique ID.\nThis ID is set in the previous getParameters() call, and ensures that the parameters originated from a previous call to getParameters().\n

\n
codecs
\n
\n

An array of objects describing the media codecs from which the sender will choose.\nThis parameter cannot be changed once initially set.\n

Each codec object in the array may have the following properties:\n

\n
channels Optional
\n
\n

A positive integer indicating the number of channels supported by the codec.\nFor example, for audio codecs a value of 1 specifies monaural sound, while 2 indicates stereo.\n

\n
clockRate
\n
\n

A positive integer specifying the codec's clock rate in Hertz (Hz).\nThe clock rate is the rate at which the codec's RTP timestamp advances.\nMost codecs have specific values or ranges of values they permit.\nThe IANA maintains a list of codecs and their parameters, including their clock rates.\n

\n
mimeType
\n
\n

A string indicating the codec's MIME media type and subtype, specified as a string of the form \"type/subtype\".\nThe MIME type strings used by RTP differ from those used elsewhere.\nIANA maintains a registry of valid MIME types.\nAlso see Codecs used by WebRTC for details about potential codecs that might be referenced here.\n

\n
payloadType
\n
\n

The RTP payload type used to identify this codec.\n

\n
sdpFmtpLine Optional
\n
\n

A string giving the format specific parameters provided by the local description.\n

\n
\n
\n
headerExtensions
\n
\n

An array of zero or more RTP header extensions, each identifying an extension supported by the sender.\nHeader extensions are described in RFC 3550, section 5.3.1.\nThis parameter cannot be changed.\n

\n
rtcp
\n
\n

An object providing the configuration parameters used for RTCP on the sender.\nThis parameter cannot be changed.\n

The object may have the following properties:\n

\n
cname
\n
\n

A read-only string giving the canonical name (CNAME) used by RTCP (e.g., in SDES messages).\n

\n
reducedSize
\n
\n

A read-only boolean that is True if reduced size RTCP is configured (RFC 5506), and False if compound RTCP is specified (RFC 3550).\n

\n
\n
\n
degradationPreference
\n
\n

Specifies the preferred way the WebRTC layer should handle optimizing bandwidth against quality in constrained-bandwidth situations.\nThe possible values are maintain-framerate, maintain-resolution, or balanced.\nThe default value is balanced.\n

\n
" }, "returns": "A Promise that resolves when the RTCRtpSender.track property is updated with the given parameters.", "throws": { @@ -8254,6 +8548,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -9065,6 +9362,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -9081,6 +9381,9 @@ "StandardTrack" ], "compatibility": { + "Chrome": "141", + "ChromeAndroid": "141", + "Edge": "141", "Firefox": "117", "FirefoxAndroid": "117", "Safari": "15.4", @@ -9098,6 +9401,62 @@ }, "doc": "The RTCTransportStats dictionary of the WebRTC API provides information about the transport (RTCDtlsTransport and its underlying RTCIceTransport) used by a particular candidate pair.\n

The BUNDLE feature is an SDP extension that allows negotiation to use a single transport for sending and receiving media described by multiple SDP media descriptions.\nIf the remote endpoint is aware of this feature, all MediaStreamTrack and data channels are bundled onto a single transport at the completion of negotiation.\nThis is true for current browsers, but if connecting to an older endpoint that is not BUNDLE-aware, then separate transports might be used for different media.\nThe policy to use in the negotiation is configured in the RTCPeerConnection constructor.\n

These statistics can be obtained by iterating the RTCStatsReport returned by RTCPeerConnection.getStats() until you find a report with the type of transport." }, + "rtctransportstats.bytesreceived": { + "url": "$MDN_URL$/web/api/rtctransportstats/bytesreceived", + "baseline": { + "level": "NONE" + }, + "doc": "The bytesReceived property of the RTCTransportStats dictionary indicates the total number of payload bytes received on this transport.\n

Only data bytes are counted; overhead such as padding, headers, and so on are not included in this count." + }, + "rtctransportstats.bytessent": { + "url": "$MDN_URL$/web/api/rtctransportstats/bytessent", + "baseline": { + "level": "NONE" + }, + "doc": "The bytesSent property of the RTCTransportStats dictionary indicates the total number of payload bytes sent on this transport.\n

Only data bytes are counted; overhead such as padding, headers, and so on are not included in this count." + }, + "rtctransportstats.dtlscipher": { + "url": "$MDN_URL$/web/api/rtctransportstats/dtlscipher", + "baseline": { + "level": "NONE" + }, + "doc": "The dtlsCipher property of the RTCTransportStats dictionary is a string that indicates the descriptive name of the cipher suite used for the DTLS transport.\n

Allowed names are defined in the \"Description\" column of the TLS Cipher Suites section in the IANA cipher suite registry.\nFor example \"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\"." + }, + "rtctransportstats.dtlsrole": { + "url": "$MDN_URL$/web/api/rtctransportstats/dtlsrole", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The dtlsRole property of the RTCTransportStats dictionary is a string that indicates the role of the associated RTCPeerConnection in the DTLS negotiation.\n

Specifically, whether it acted like a server and listened for connections, or like a client and initiated the connection, or that negotiation has not yet started." + }, + "rtctransportstats.dtlsstate": { + "url": "$MDN_URL$/web/api/rtctransportstats/dtlsstate", + "baseline": { + "level": "NONE" + }, + "doc": "The dtlsState property of the RTCTransportStats dictionary is a string that indicates the current state of the underlying RTCDtlsTransport.\n

This has the same value as the corresponding RTCDtlsTransport.state property." + }, + "rtctransportstats.icelocalusernamefragment": { + "url": "$MDN_URL$/web/api/rtctransportstats/icelocalusernamefragment", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The iceLocalUsernameFragment property of the RTCTransportStats dictionary is a string that indicates the local username fragment (\"ufrag\" or \"ice-ufrag\") that uniquely identifies the ICE interaction session managed by this transport.\n

The same username fragment is used to identify the session for any communication with the STUN server.\n

This has the same values as the corresponding local RTCIceCandidate.usernameFragment property.\nIt will change if the connection is renegotiated, for example on ICE restart, or if RTCPeerConnection.setLocalDescription() is called." + }, + "rtctransportstats.icerole": { + "url": "$MDN_URL$/web/api/rtctransportstats/icerole", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The iceRole property of the RTCTransportStats dictionary is a string that indicates the ICE role that the transport is fulfilling: that of the controlling agent, or the agent that is being controlled.\n

This has the same value as the RTCIceTransport.role property of the underlying RTCDtlsTransport.iceTransport." + }, + "rtctransportstats.icestate": { + "url": "$MDN_URL$/web/api/rtctransportstats/icestate", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The iceState property of the RTCTransportStats dictionary is a string that indicates the current ICE state of the underlying RTCIceTransport.\n

This has the same value as the corresponding RTCIceTransport.state property." + }, "rtctransportstats.id": { "url": "$MDN_URL$/web/api/rtctransportstats/id", "baseline": { @@ -9105,6 +9464,55 @@ }, "doc": "The id property of the RTCTransportStats dictionary is a string which uniquely identifies the object for which this object provides statistics.\n

Using the id, you can correlate this statistics object with others, in order to monitor statistics over time for a given WebRTC object, such as an RTCDtlsTransport, or an RTCPeerConnection." }, + "rtctransportstats.localcertificateid": { + "url": "$MDN_URL$/web/api/rtctransportstats/localcertificateid", + "baseline": { + "level": "NONE" + }, + "doc": "The localCertificateId property of the RTCTransportStats dictionary is a string that indicates the id of the local certificate used by this RTCIceTransport.\n

It is only present for DTLS transports, and after DTLS has been negotiated." + }, + "rtctransportstats.packetsreceived": { + "url": "$MDN_URL$/web/api/rtctransportstats/packetsreceived", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The packetsReceived property of the RTCTransportStats dictionary indicates the total number of packets received on this transport." + }, + "rtctransportstats.packetssent": { + "url": "$MDN_URL$/web/api/rtctransportstats/packetssent", + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The packetsSent property of the RTCTransportStats dictionary indicates the total number of packets sent over this transport." + }, + "rtctransportstats.remotecertificateid": { + "url": "$MDN_URL$/web/api/rtctransportstats/remotecertificateid", + "baseline": { + "level": "NONE" + }, + "doc": "The remoteCertificateId property of the RTCTransportStats dictionary is a string that indicates the id of the remote certificate used by this RTCIceTransport.\n

It is only present for DTLS transports, and after DTLS has been negotiated." + }, + "rtctransportstats.selectedcandidatepairchanges": { + "url": "$MDN_URL$/web/api/rtctransportstats/selectedcandidatepairchanges", + "baseline": { + "level": "NONE" + }, + "doc": "The selectedCandidatePairChanges property of the RTCTransportStats dictionary indicates the total number of times that the selected candidate pair of this transport has changed." + }, + "rtctransportstats.selectedcandidatepairid": { + "url": "$MDN_URL$/web/api/rtctransportstats/selectedcandidatepairid", + "baseline": { + "level": "NONE" + }, + "doc": "The selectedCandidatePairId property of the RTCTransportStats dictionary represents the unique identifier for the candidate pair stats associated with this transport." + }, + "rtctransportstats.srtpcipher": { + "url": "$MDN_URL$/web/api/rtctransportstats/srtpcipher", + "baseline": { + "level": "NONE" + }, + "doc": "The srtpCipher property of the RTCTransportStats dictionary indicates the descriptive name of the protection profile used for the Secure Real-time Transport Protocol (SRTP) transport." + }, "rtctransportstats.timestamp": { "url": "$MDN_URL$/web/api/rtctransportstats/timestamp", "baseline": { @@ -9112,6 +9520,13 @@ }, "doc": "The timestamp property of the RTCTransportStats dictionary is a DOMHighResTimeStamp object specifying the time at which the data in the object was sampled." }, + "rtctransportstats.tlsversion": { + "url": "$MDN_URL$/web/api/rtctransportstats/tlsversion", + "baseline": { + "level": "NONE" + }, + "doc": "The tlsVersion property of the RTCTransportStats dictionary indicates the negotiated TLS version of an underlying DTLS transport.\n

It is only present for DTLS transports, and only exists after DTLS has been negotiated.\n

The value comes from the DTLS handshake ServerHello.version, and is represented as four upper case hexadecimal digits, where the digits represent the two bytes of the version.\nNote however that the bytes might not map directly to version numbers.\nFor example, DTLS represents version 1.2 as 'FEFD' which numerically is {254, 253}." + }, "rtctransportstats.type": { "url": "$MDN_URL$/web/api/rtctransportstats/type", "baseline": { @@ -9195,6 +9610,178 @@ }, "doc": "The width property of the RTCVideoSourceStats dictionary indicates the width, in pixels, of the last frame originating from this source.\n

This property is not defined on the stats object until after the first frame has been produced." }, + "sanitizer": { + "url": "$MDN_URL$/web/api/Sanitizer", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Sanitizer interface of the HTML Sanitizer API defines a configuration object that specifies what elements, attributes and comments are allowed or should be removed when inserting strings of HTML into an Element or ShadowRoot, or when parsing an HTML string into a Document.\n

A Sanitizer instance is effectively a wrapper around a SanitizerConfig, and can be passed as a configuration alternative in the same sanitization methods:\n

\n

Note that Sanitizer is expected to be more efficient to reuse and modify when needed." + }, + "sanitizer.allowattribute": { + "url": "$MDN_URL$/web/api/sanitizer/allowattribute", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The allowAttribute() method of the Sanitizer interface sets an attribute to be allowed on all elements.\n

The specified attribute is added to the list of attributes in this sanitizer's configuration.\nThe attribute is removed from the removeAttributes list if present.\n

Note that to allow/disallow attributes only on specific elements use Sanitizer.allowElement().", + "parameters": { + "attribute": "A string indicating the name of the attribute to be allowed globally on elements, or an object with the following properties:\n

\n
name
\n
\n

A string containing the name of the attribute.\n

\n
namespace Optional
\n
\n

A string containing the namespace of the attribute, which defaults to null.\n

\n
" + }, + "returns": "None (undefined)." + }, + "sanitizer.allowelement": { + "url": "$MDN_URL$/web/api/sanitizer/allowelement", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The allowElement() method of the Sanitizer interface sets that the specified element is allowed in the output when the sanitizer is used.\nThe element can be specified with lists of attributes that are allowed or disallowed on elements of that type.\n

The specified element is added to the elements list in this sanitizer's configuration.\nIf the element is already present in the list, then the existing entry is first removed and the new definition is appended to the end of the list.\nNote that if you need both per-element add-attribute and remove-attribute lists, they must be added in a single call to this method (since if done in two calls, the second call will replace the element definition added in the first call).\n

The specified element is removed from the sanitizer configuration removeElements or replaceWithChildrenElements lists if present.", + "parameters": { + "element": "A string indicating the name of the allowed element, or an object with the following properties:\n

\n
name
\n
\n

A string containing the name of the element.\n

\n
namespace Optional
\n
\n

A string containing the namespace of the element.\nThe default namespace is \"http://www.w3.org/1999/xhtml\".\n

\n
attributes Optional
\n
\n

An array indicating the attributes to allow on this (allowed) element when sanitizing HTML.\n

Each attribute can be specified by name (a string), or as a object with the following properties:\n

\n
name
\n
\n

A string containing the name of the attribute.\n

\n
namespace Optional
\n
\n

A string containing the namespace of the attribute, which defaults to null.\n

\n
\n
\n
removeAttributes Optional
\n
\n

An array indicating the attributes to remove on this (allowed) element when sanitizing HTML.\n

Each attribute can be specified by name (a string), or as a object with the following properties:\n

\n
name
\n
\n

A string containing the name of the attribute.\n

\n
namespace Optional
\n
\n

A string containing the namespace of the attribute, which defaults to null.\n

\n
\n
\n
" + }, + "returns": "None (undefined)." + }, + "sanitizer.get": { + "url": "$MDN_URL$/web/api/sanitizer/get", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The get() method of the Sanitizer interface returns a SanitizerConfig dictionary instance that represents the current Sanitizer configuration.\n

This may be used to create a sanitizer that is slightly modified from the default; by first getting and then modifying the default sanitizer configuration, and then using it to construct a new sanitizer.\n

The returned configuration can also be used to inspect the configuration, and can be passed directly the HTML parsing functions.\nNote however that it will be more efficient to pass a Sanitizer rather than a configuration dictionary, particularly where the Sanitizer is to be used multiple times.", + "returns": "A SanitizerConfig." + }, + "sanitizer.removeattribute": { + "url": "$MDN_URL$/web/api/sanitizer/removeattribute", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The removeAttribute() method of the Sanitizer interface sets an attribute to be disallowed on all elements.\n

The specified attribute is added to the list of removeAttributes in this sanitizer's configuration.\nThe attribute is removed from the attributes list if present.\n

Note that to allow/disallow attributes only on specific elements use Sanitizer.allowElement().", + "parameters": { + "attribute": "A string indicating the name of the attribute to be disallowed globally on elements, or an object with the following properties:\n

\n
name
\n
\n

A string containing the name of the attribute.\n

\n
namespace Optional
\n
\n

A string containing the namespace of the attribute, which defaults to null.\n

\n
" + }, + "returns": "None (undefined)." + }, + "sanitizer.removeelement": { + "url": "$MDN_URL$/web/api/sanitizer/removeelement", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The removeElement() method of the Sanitizer interface sets an element to be disallowed — removed from input when the sanitizer is used.\n

The specified element is added to the list of removeElements in this sanitizer's configuration.\nThe element is removed from the elements or replaceWithChildrenElements lists if present.", + "parameters": { + "element": "A string indicating the name of the element to be disallowed, or an object with the following properties:\n

\n
name
\n
\n

A string containing the name of the element.\n

\n
namespace Optional
\n
\n

A string containing the namespace of the element.\nThe default namespace is \"http://www.w3.org/1999/xhtml\".\n

\n
" + }, + "returns": "None (undefined)." + }, + "sanitizer.removeunsafe": { + "url": "$MDN_URL$/web/api/sanitizer/removeunsafe", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The removeUnsafe() method of the Sanitizer interface configures the sanitizer configuration so that it will remove all elements, attributes, and event handler content attributes that are considered XSS-unsafe by the browser.\n

The unsafe elements and attributes are added to the configuration by calling Sanitizer.removeElement() and Sanitizer.removeAttribute() for each, respectively.\nThis adds them to the sanitizer configuration disallow lists: removeElements and removeAttributes, and removes them (if present) from the configuration allow lists: elements, replaceWithChildrenElements and attributes.\n

The method can be called to make any custom configuration XSS-safe.\nIf used with a configuration that uses the allow lists, it will remove the XSS-unsafe entities from those lists.\nIf used with a configuration that uses only the disallow (\"remove\") lists, then it ensures the configuration includes the unsafe elements in those lists.\n

Note that if you're using the sanitizer with one of the \"safe\" HTML setters, such as Element.setHTML() and ShadowRoot.setHTML(), you do not need to call this method to make the sanitizer safe.\nWhen used in these setters the method is called implicitly, without modifying the Sanitizer instance that is passed.", + "returns": "None (undefined)." + }, + "sanitizer.replaceelementwithchildren": { + "url": "$MDN_URL$/web/api/sanitizer/replaceelementwithchildren", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The replaceElementWithChildren() method of the Sanitizer interface sets an element to be replaced by its child HTML elements when the sanitizer is used.\nThe is primarily used for stripping styles from text.\n

The specified element, along with its namespace, is added to the list of replaceWithChildrenElements in this sanitizer's configuration.\nThe element is removed from the elements or removeElements lists if present.", + "parameters": { + "element": "A string indicating the name of the element to be replaced, or an object with the following properties:\n

\n
name
\n
\n

A string containing the name of the element.\n

\n
namespace Optional
\n
\n

A string containing the namespace of the element.\nThe default namespace is \"http://www.w3.org/1999/xhtml\".\n

\n
" + }, + "returns": "None (undefined)." + }, + "sanitizer.sanitizer": { + "url": "$MDN_URL$/web/api/Sanitizer/Sanitizer", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Sanitizer() constructor creates a new Sanitizer object, which can be used to filter unwanted elements and attributes from HTML or documents before they are inserted/parsed into the DOM.\n

The default Sanitizer() configuration allows only XSS-safe input by default, omitting elements such as <script>, <frame>, <iframe>, <object>, <use>, and event handler attributes from their respective allow lists, and disallowing data attributes, and comments.\n

The constructor configuration option can be used to customize the sanitizer behavior.", + "parameters": { + "configuration": "A SanitizerConfig defining a sanitizer configuration, or the string \"default\" to indicate the default configuration." + }, + "throws": { + "TypeError": "Thrown if a non-normalized SanitizerConfig is passed (one that includes both \"allowed\" and \"removed\" configuration settings), or if a string is passed that isn't \"default\"." + } + }, + "sanitizer.setcomments": { + "url": "$MDN_URL$/web/api/sanitizer/setcomments", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The setComments() method of the Sanitizer interface sets whether comments will be allowed or removed by the sanitizer.\n

The method sets the comments property in this sanitizer's configuration.", + "parameters": { + "allow": "true if comments are allowed, and false if they are to be removed." + }, + "returns": "None (undefined)." + }, + "sanitizer.setdataattributes": { + "url": "$MDN_URL$/web/api/sanitizer/setdataattributes", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": {}, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The setDataAttributes() method of the Sanitizer interface sets whether data attributes will be allowed or removed by the sanitizer.\n

The method sets the dataAttributes property in this sanitizer's configuration.", + "parameters": { + "allow": "true if data attributes are allowed, and false if they are to be removed." + }, + "returns": "None (undefined)." + }, + "sanitizerconfig": { + "url": "$MDN_URL$/web/api/sanitizerconfig", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The SanitizerConfig dictionary of the HTML Sanitizer API represents a sanitizer configuration object.\nThe configuration specifies what elements, attributes and comments are allowed or should be removed when inserting strings of HTML into an Element or ShadowRoot, or when parsing an HTML string into a Document.\n

An instance of this type can be passed to the Sanitizer() constructor to configure a Sanitizer, and is returned by Sanitizer.get().\nIt can also be passed as the option.sanitizer parameter when calling the sanitization methods:\n

\n

Note that normally a Sanitizer instance would be passed as the option instead of SanitizerConfig in the above methods, in particular because sanitizer instances are more efficient to share and modify." + }, "scheduler": { "url": "$MDN_URL$/web/api/window/scheduler", "status": [ @@ -9204,7 +9791,8 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { @@ -9221,7 +9809,8 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { @@ -9237,20 +9826,20 @@ "scheduler.yield": { "url": "$MDN_URL$/web/api/scheduler/yield", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "129", "ChromeAndroid": "129", "Edge": "129", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "115" }, "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The yield() method of the Scheduler interface is used for yielding to the main thread during a task and continuing execution later, with the continuation scheduled as a prioritized task (see the Prioritized Task Scheduling API for more information). This allows long-running work to be broken up so the browser stays responsive.\n

The task can continue when the promise returned by the method is resolved. The priority for when the promise is resolved defaults to \"user-visible\", but can inherit a different priority if the yield() call occurs within a Scheduler.postTask() callback.\n

In addition, the continuation of work after the yield() call can be canceled if it occurs within a postTask() callback and the task is aborted.", + "doc": "

Note: This feature is available in Web Workers.

\n

The yield() method of the Scheduler interface is used for yielding to the main thread during a task and continuing execution later, with the continuation scheduled as a prioritized task (see the Prioritized Task Scheduling API for more information). This allows long-running work to be broken up so the browser stays responsive.\n

The task can continue when the promise returned by the method is resolved. The priority for when the promise is resolved defaults to \"user-visible\", but can inherit a different priority if the yield() call occurs within a Scheduler.postTask() callback.\n

In addition, the continuation of work after the yield() call can be canceled if it occurs within a postTask() callback and the task is aborted.", "returns": "Returns a Promise that is fulfilled with undefined, or rejected with an AbortSignal.reason." }, "scheduling": { @@ -9479,7 +10068,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Indicates how bright the screen's backlight is, on a scale from 0 (very dim) to 1 (full\nbrightness); this value is a double-precision float.\n

You can read and write this attribute even when the screen is disabled, but the\nbacklight is off while the screen is disabled. If you write a value of X into this\nattribute, the attribute may not have the same value X when you later read it. Most\nscreens don't support as many different brightness levels as there are doubles between 0\nand 1. The value's precision might be reduced before storing it." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Indicates how bright the screen's backlight is, on a scale from 0 (very dim) to 1 (full\nbrightness); this value is a double-precision float.\n

You can read and write this attribute even when the screen is disabled, but the\nbacklight is off while the screen is disabled. If you write a value of X into this\nattribute, the attribute may not have the same value X when you later read it. Most\nscreens don't support as many different brightness levels as there are doubles between 0\nand 1. The value's precision might be reduced before storing it." }, "screen.mozenabled": { "url": "$MDN_URL$/web/api/screen/mozenabled", @@ -9487,7 +10076,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

This Boolean attribute controls the device's screen. Setting it to false\nwill turn off the screen." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

This Boolean attribute controls the device's screen. Setting it to false\nwill turn off the screen." }, "screen.orientation": { "url": "$MDN_URL$/web/api/screen/orientation", @@ -9505,8 +10094,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The orientation read-only property of the\nScreen interface returns the current orientation of the screen." }, @@ -9738,7 +10328,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The ScreenDetails interface of the Window Management API represents the details of all the screens available to the user's device.\n

This information is accessed via the Window.getScreenDetails() method.\n

\n

Note: ScreenDetails is a live object, meaning that it updates as the available screens change. You can therefore keep querying the same object to get updated values, rather than repeatedly calling getScreenDetails().\n

" + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The ScreenDetails interface of the Window Management API represents the details of all the screens available to the user's device.\n

This information is accessed via the Window.getScreenDetails() method.\n

\n

Note:\nScreenDetails is a live object, meaning that it updates as the available screens change. You can therefore keep querying the same object to get updated values, rather than repeatedly calling getScreenDetails().\n

" }, "screendetails.currentscreen": { "url": "$MDN_URL$/web/api/screendetails/currentscreen", @@ -9788,8 +10378,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The ScreenOrientation interface of the Screen Orientation API provides information about the current orientation of the document.\n

A ScreenOrientation instance object can be retrieved using the screen.orientation property." }, @@ -9809,8 +10400,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The angle read-only property of the\nScreenOrientation interface returns the document's current orientation\nangle." }, @@ -9821,7 +10413,8 @@ ], "compatibility": { "ChromeAndroid": "38", - "Firefox": "preview" + "Firefox": "144", + "FirefoxAndroid": "144" }, "baseline": { "level": "NONE" @@ -9835,7 +10428,7 @@ "InvalidStateError DOMException": "Thrown if the document is not fully active.", "SecurityError DOMException": "Thrown if the document's visibility state is hidden or if the document is forbidden to use the feature (for example, by omitting the keyword allow-orientation-lock of the sandbox attribute of the iframe element).", "NotSupportedError DOMException": "Thrown if the user agent does not support locking the screen orientation of the specific orientation.", - "AbortError DOMException": "Thrown if there is any other lock() method invoking." + "AbortError DOMException": "Thrown if there is any other lock() method invoking or if unlock() is called while the lock promise is pending." } }, "screenorientation.type": { @@ -9854,8 +10447,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The type read-only property of the\nScreenOrientation interface returns the document's current orientation\ntype, one of portrait-primary, portrait-secondary, landscape-primary, or\nlandscape-secondary." }, @@ -9865,17 +10459,18 @@ "StandardTrack" ], "compatibility": { - "ChromeAndroid": "38" + "ChromeAndroid": "38", + "Firefox": "144", + "FirefoxAndroid": "144" }, "baseline": { "level": "NONE" }, - "doc": "The unlock() method of the\nScreenOrientation interface unlocks the orientation of the containing\ndocument from its default orientation.", + "doc": "The unlock() method of the ScreenOrientation interface unlocks the orientation of the containing document, effectively locking it to the default screen orientation.", "returns": "None (undefined).", "throws": { "InvalidStateError DOMException": "Thrown if the document is not fully active.", - "SecurityError DOMException": "Thrown if the document's visibility state is hidden or if the document is forbidden to use the feature (for example, by omitting the keyword allow-orientation-lock of the sandbox attribute of the iframe element).", - "AbortError DOMException": "Thrown if there is any other lock() method invoking." + "SecurityError DOMException": "Thrown if the document's visibility state is hidden or if the document is forbidden to use the feature (for example, by omitting the keyword allow-orientation-lock of the sandbox attribute of the iframe element)." } }, "scriptprocessornode": { @@ -9917,53 +10512,56 @@ "scrolltimeline": { "url": "$MDN_URL$/web/api/scrolltimeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ScrollTimeline interface of the Web Animations API represents a scroll progress timeline (see CSS scroll-driven animations for more details).\n

Pass a ScrollTimeline instance to the Animation() constructor or the animate() method to specify it as the timeline that will control the progress of the animation." + "doc": "The ScrollTimeline interface of the Web Animations API represents a scroll progress timeline (see CSS scroll-driven animations for more details).\n

Pass a ScrollTimeline instance to the Animation() constructor or the animate() method to specify it as the timeline that will control the progress of the animation." }, "scrolltimeline.axis": { "url": "$MDN_URL$/web/api/scrolltimeline/axis", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The axis read-only property of the\nScrollTimeline interface returns an enumerated value representing the scroll axis that is driving the progress of the timeline." + "doc": "The axis read-only property of the\nScrollTimeline interface returns an enumerated value representing the scroll axis that is driving the progress of the timeline." }, "scrolltimeline.scrolltimeline": { "url": "$MDN_URL$/web/api/scrolltimeline/scrolltimeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ScrollTimeline() constructor creates a new ScrollTimeline object instance.", + "doc": "The ScrollTimeline() constructor creates a new ScrollTimeline object instance.", "parameters": { "options": "An object that can contain the following properties:\n

\n
source
\n
\n

A reference to an Element representing the scrollable element (scroller) whose scroll position will drive the progress of the timeline.\n

\n
axis Optional
\n
\n

An enumerated value representing the scroll axis that will drive the progress of the timeline. Possible values are:\n

    \n
  • \"block\": The scrollbar on the block axis of the scroll container, which is the axis in the direction perpendicular to the flow of text within a line. For horizontal writing modes, such as standard English, this is the same as \"y\", while for vertical writing modes, it is the same as \"x\".
  • \n
  • \"inline\": The scrollbar on the inline axis of the scroll container, which is the axis in the direction parallel to the flow of text in a line. For horizontal writing modes, this is the same as \"x\", while for vertical writing modes, this is the same as \"y\".
  • \n
  • \"y\": The scrollbar on the vertical axis of the scroll container.
  • \n
  • \"x\": The scrollbar on the horizontal axis of the scroll container.
  • \n
\n

If omitted, axis defaults to \"block\".\n

\n
" }, @@ -9972,19 +10570,20 @@ "scrolltimeline.source": { "url": "$MDN_URL$/web/api/scrolltimeline/source", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The source read-only property of the\nScrollTimeline interface returns a reference to the scrollable element (scroller) whose scroll position is driving the progress of the timeline and therefore the animation." + "doc": "The source read-only property of the\nScrollTimeline interface returns a reference to the scrollable element (scroller) whose scroll position is driving the progress of the timeline and therefore the animation." }, "securepaymentconfirmationrequest": { "url": "$MDN_URL$/web/api/securepaymentconfirmationrequest", @@ -10323,7 +10922,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "A Selection object represents the range of text selected by the user or the current position of the caret. Each document is associated with a unique selection object, which can be retrieved by document.getSelection() or window.getSelection() and then be examined and modified.\n

A user may make a selection from left to right (in document order) or right to left (reverse of document order). The anchor is where the user began the selection and the focus is where the user ends the selection. If you make a selection with a desktop mouse, the anchor is placed where you pressed the mouse button, and the focus is placed where you released the mouse button.\n

\n

Note: Anchor and focus should not be confused with the start and end positions of a selection. The anchor can be placed before the focus or vice versa, depending on the direction you made your selection.\n

" + "doc": "A Selection object represents the range of text selected by the user or the current position of the caret. Each document is associated with a unique selection object, which can be retrieved by document.getSelection() or window.getSelection() and then be examined and modified.\n

A user may make a selection from left to right (in document order) or right to left (reverse of document order). The anchor is where the user began the selection and the focus is where the user ends the selection. If you make a selection with a desktop mouse, the anchor is placed where you pressed the mouse button, and the focus is placed where you released the mouse button.\n

\n

Note:\nAnchor and focus should not be confused with the start and end positions of a selection. The anchor can be placed before the focus or vice versa, depending on the direction you made your selection.\n

" }, "selection.addrange": { "url": "$MDN_URL$/web/api/selection/addrange", @@ -10371,7 +10970,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The Selection.anchorNode read-only property returns the\nNode in which the selection begins.\n

A user may make a selection from left to right (in document order) or right to left\n(reverse of document order). The anchor is where the user began the selection. This can\nbe visualized by holding the Shift key and pressing the arrow keys on your keyboard. The\nselection's anchor does not move, but the selection's focus, the other end of the\nselection, does move." + "doc": "The Selection.anchorNode read-only property returns the Node in which the selection begins. It can return null if selection never existed in the document (e.g., an iframe that was never clicked on, or the node belongs to another document tree).\n

A user may make a selection from left to right (in document order) or right to left (reverse of document order). The anchor is where the user began the selection. This can be visualized by holding the Shift key and pressing the arrow keys on your keyboard. The selection's anchor does not move, but the selection's focus, the other end of the selection, does move." }, "selection.anchoroffset": { "url": "$MDN_URL$/web/api/selection/anchoroffset", @@ -10529,11 +11128,13 @@ "Edge": "137", "Firefox": "126", "FirefoxAndroid": "126", + "Opera": "121", "Safari": "17", "SafariIOS": "17" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-05-29" }, "doc": "The direction read-only property of the Selection interface is a string that provides the direction of the current selection.\n

The value is determined by the order in which the user chooses the boundary points of the selection.\nFor example, a user might make a selection by clicking a starting boundary point, dragging the cursor, and releasing at an end boundary point.\nIf the end boundary point is later in the document than the start point, then the direction is \"forwards\", while the direction is \"backwards\" if the end point is before the start point within the document.\nThe value is \"directionless\" if no direction is implied by the user. For example, if the user made the selection by double-clicking on a word or element, or the selection was made programmatically.\n

The direction does not change if a selection's range is mutated, for example, using methods like Range.selectNode()." }, @@ -10607,7 +11208,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The Selection.focusNode read-only property returns the\nNode in which the selection ends.\n

A user may make a selection from left to right (in document order) or right to left\n(reverse of document order). The focus is where the user ended the selection. This can\nbe visualized by holding the Shift key and pressing the arrow keys on your\nkeyboard to modify the current selection. The selection's focus moves, but the\nselection's anchor, the other end of the selection, does not move." + "doc": "The Selection.focusNode read-only property returns the Node in which the selection ends. It can return null if selection never existed in the document (e.g., an iframe that was never clicked on, or the node belongs to another document tree).\n

A user may make a selection from left to right (in document order) or right to left (reverse of document order). The focus is where the user ended the selection. This can be visualized by holding the Shift key and pressing the arrow keys on your keyboard. The selection's focus moves, but the selection's anchor, the other end of the selection, does not move." }, "selection.focusoffset": { "url": "$MDN_URL$/web/api/selection/focusoffset", @@ -10640,14 +11241,17 @@ "Chrome": "137", "ChromeAndroid": "137", "Edge": "137", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", + "Opera": "121", "Safari": "17", "SafariIOS": "17" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-08-19" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Selection.getComposedRanges() method returns an array of StaticRange objects representing the current selection ranges, and can return ranges that potentially cross shadow boundaries.\n

As the selection range endpoints may be within a shadow tree, or even different shadow trees, and because these may be closed, the method cannot by default return nodes from within a shadow tree.\nIf the method needs to return a selection that includes nodes inside shadow trees, then the ShadowRoot objects for these trees must be passed as arguments to the method.\nIf a corresponding roots are not provided and the start or endpoint of the selection are within a shadow tree, the returned range is re-scoped to include the host of the shadow root rather than some node with in the root.\n

The returned ranges represent the range at the time that getComposedRanges() was called.\nIf the DOM or a shadow DOM is mutated, the selected range is likely to be incorrect.\nApplication code might use a MutationObserver to monitor for DOM mutations and then call Selection.setBaseAndExtent() to update the selection.\n

\n

Note:\nThis method should be used instead of Selection.getRangeAt() when selecting ranges that can potentially cross shadow root boundaries.\nSelection.getRangeAt() is not aware of shadow roots.\nThe returned range is not specified, and varies between browsers.\n

", + "doc": "The Selection.getComposedRanges() method returns an array of StaticRange objects representing the current selection ranges, and can return ranges that potentially cross shadow boundaries.\n

As the selection range endpoints may be within a shadow tree, or even different shadow trees, and because these may be closed, the method cannot by default return nodes from within a shadow tree.\nIf the method needs to return a selection that includes nodes inside shadow trees, then the ShadowRoot objects for these trees must be passed as arguments to the method.\nIf a corresponding roots are not provided and the start or endpoint of the selection are within a shadow tree, the returned range is re-scoped to include the host of the shadow root rather than some node with in the root.\n

The returned ranges represent the range at the time that getComposedRanges() was called.\nIf the DOM or a shadow DOM is mutated, the selected range is likely to be incorrect.\nApplication code might use a MutationObserver to monitor for DOM mutations and then call Selection.setBaseAndExtent() to update the selection.\n

\n

Note:\nThis method should be used instead of Selection.getRangeAt() when selecting ranges that can potentially cross shadow root boundaries.\nSelection.getRangeAt() is not aware of shadow roots.\nThe returned range is not specified, and varies between browsers.\n

", "parameters": { "options": "An object with the following properties, all optional:\n
\n
shadowRoots Optional
\n
\n

An array of ShadowRoot objects.\nIf a selection endpoint is within one of the provided shadow roots, the range will be able to return nodes within its corresponding Shadow DOM tree.\nOtherwise, if the selection crosses a shadow boundary and the corresponding ShadowRoot is not provided, the returned range will be adjusted to include the entire host element for the shadow root.\n

\n
" }, @@ -11368,7 +11972,7 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The postMessage() method of the ServiceWorker interface sends a message to the worker. The first parameter is the data to send to the worker. The data may be any JavaScript object which can be handled by the structured clone algorithm.\n

The service worker can send back information to its clients by using the postMessage() method. The message will not be sent back to this ServiceWorker object but to the associated ServiceWorkerContainer available via navigator.serviceWorker.", "parameters": { - "message": "The object to deliver to the worker; this will be in the data field in the event delivered to the message event. This may be any JavaScript object handled by the structured clone algorithm.\n

The message parameter is mandatory. If the data to be passed to the worker is unimportant, null or undefined must be passed explicitly.", + "message": "The object to deliver to the worker; this will be in the data field in the event delivered to the message event. This may be any JavaScript object handled by the structured clone algorithm.\n

The message parameter is mandatory. If the data to be passed to the worker is unimportant, null or undefined must be passed explicitly.\n

\n

Note:\nA service worker is not in the same agent cluster as its client, and therefore cannot share memory. SharedArrayBuffer objects, or buffer views backed by one, cannot be posted across agent clusters. Trying to do so will generate a messageerror event containing a DataCloneError DOMException on the receiving end.\n

", "transfer": "An optional array of transferable objects to transfer ownership of. The ownership of these objects is given to the destination side and they are no longer usable on the sending side. These transferable objects should be attached to the message; otherwise they would be moved but not actually accessible on the receiving end.", "options": "An optional object containing the following properties:\n
\n
transfer Optional
\n
\n

Has the same meaning as the transfer parameter.\n

\n
" }, @@ -11463,7 +12067,7 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The controller read-only\nproperty of the ServiceWorkerContainer interface returns a\nServiceWorker object if its state is activating or\nactivated (the same object returned by\nServiceWorkerRegistration.active). This property returns\nnull if the request is a force refresh (Shift + refresh) or if\nthere is no active worker." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The controller read-only property of the ServiceWorkerContainer interface represents the active service worker controlling the current page (associated with this ServiceWorkerContainer), or null if the page has no active or activating service worker.\n

This is the same object returned by ServiceWorkerRegistration.active." }, "serviceworkercontainer.getregistration": { "url": "$MDN_URL$/web/api/serviceworkercontainer/getregistration", @@ -11534,7 +12138,7 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The ready read-only property of\nthe ServiceWorkerContainer interface provides a way of delaying code\nexecution until a service worker is active. It returns a Promise that\nwill never reject, and which waits indefinitely until\nthe ServiceWorkerRegistration associated with the current page has\nan active worker. Once that\ncondition is met, it resolves with\nthe ServiceWorkerRegistration." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The ready read-only property of the ServiceWorkerContainer interface provides a way of delaying code execution until a service worker is active.\n

The property returns a Promise that will never reject, and which waits indefinitely until the ServiceWorkerRegistration associated with the current page has an active worker.\nOnce that condition is met, it resolves with the ServiceWorkerRegistration." }, "serviceworkercontainer.register": { "url": "$MDN_URL$/web/api/serviceworkercontainer/register", @@ -11556,7 +12160,7 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The register() method of the ServiceWorkerContainer interface creates or updates a ServiceWorkerRegistration for the given scope.\nIf successful, the registration associates the provided script URL to a scope, which is subsequently used for matching documents to a specific service worker.\n

A single registration is created for each unique scope.\nIf register() is called for a scope that has an existing registration, the registration is updated with any changes to the scriptURL or options.\nIf there are no changes, then the existing registration is returned.\nNote that calling register() with the same scope and scriptURL does not restart the installation process.\nYou can therefore call this method unconditionally from a controlled page: you don't need to first check whether there's an active registration or service worker.\n

A document can potentially be within the scope of several registrations with different service workers and options.\nThe browser will associate the document with the matching registration that has the most specific scope.\nThis ensures that only one service worker runs for each document.\n

\n

Note:\nIt is generally safer not to define registrations that have overlapping scopes.\n

", + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The register() method of the ServiceWorkerContainer interface creates or updates a ServiceWorkerRegistration for the given scope.\nIf successful, the registration associates the provided script URL to a scope, which is subsequently used for matching documents to a specific service worker.\n

A single registration is created for each unique scope.\nIf register() is called for a scope that has an existing registration, the registration is updated with any changes to the scriptURL or options.\nIf there are no changes, then the existing registration is returned.\nCalling register() with the same scope and scriptURL does not restart the installation process, so it is generally safe to call this method unconditionally from a controlled page.\nHowever, it does send a network request for the service worker script, which may put more load on the server.\nIf this is a concern, you can first check for an existing registration using ServiceWorkerContainer.getRegistration().\n

A document can potentially be within the scope of several registrations with different service workers and options.\nThe browser will associate the document with the matching registration that has the most specific scope.\nThis ensures that only one service worker runs for each document.\n

\n

Note:\nIt is generally safer not to define registrations that have overlapping scopes.\n

", "parameters": { "scriptURL": "The URL of the service worker script.\nThe registered service worker file needs to have a valid JavaScript MIME type.", "options": "An object containing registration options. Currently available options are:\n
\n
scope
\n
\n

A string representing a URL that defines a service worker's registration scope; that is, what range of URLs a service worker can control.\n

This is usually specified as a URL that is relative to the base URL of the site (e.g., /some/path/), so that the resolved scope is the same irrespective of what page the registration code is called from.\nThe default scope for a service worker registration is the directory where the service worker script is located (resolving ./ against scriptURL).\n

The scope should be used to specify documents that are in the same directory or more deeply nested than the service worker.\nIf you need a broader scope, this can be permitted via the HTTP Service-Worker-Allowed header.\nSee the Examples section for information on broadening the default scope of a service worker.\n

\n
type
\n
\n

A string specifying the type of worker to create.\nValid values are:\n

\n
'classic'
\n
\n

The loaded service worker is in a standard script.\nThis is the default.\n

\n
'module'
\n
\n

The loaded service worker is in an ES module and the import statement is available on worker contexts.\nFor ES module compatibility info, see the browser compatibility data table for the ServiceWorker interface.\n

\n
\n
\n
updateViaCache
\n
\n

A string indicating how the HTTP cache is used for service worker scripts resources during updates.\nNote: This only refers to the service worker script and its imports, not other resources fetched by these scripts.\n

\n
'all'
\n
\n

The HTTP cache will be queried for the main script, and all imported scripts. If no fresh entry is found in the HTTP cache, then the scripts are fetched from the network.\n

\n
'imports'
\n
\n

The HTTP cache will be queried for imports, but the main script will always be updated from the network. If no fresh entry is found in the HTTP cache for the imports, they're fetched from the network.\n

\n
'none'
\n
\n

The HTTP cache will not be used for the main script or its imports. All service worker script resources will be updated from the network.\n

\n
\n
\n
" @@ -11643,13 +12247,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Service Workers.

\n

The cookieStore read-only property of the ServiceWorkerGlobalScope interface returns a reference to the CookieStore object associated with this service worker." }, @@ -11780,19 +12386,20 @@ "serviceworkerregistration.cookies": { "url": "$MDN_URL$/web/api/serviceworkerregistration/cookies", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Service Workers.

\n

The cookies read-only property of the ServiceWorkerRegistration interface returns a reference to the CookieStoreManager interface, which enables a web app to subscribe to and unsubscribe from cookie change events in a service worker. This is an entry point for the Cookie Store API." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Service Workers.

\n

The cookies read-only property of the ServiceWorkerRegistration interface returns a reference to the CookieStoreManager interface, which enables a web app to subscribe to and unsubscribe from cookie change events in a service worker. This is an entry point for the Cookie Store API." }, "serviceworkerregistration.getnotifications": { "url": "$MDN_URL$/web/api/serviceworkerregistration/getnotifications", @@ -11810,8 +12417,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getNotifications() method of\nthe ServiceWorkerRegistration interface returns a list of the\nnotifications in the order that they were created from the current origin via the\ncurrent service worker registration. Origins can have many active but\ndifferently-scoped service worker registrations. Notifications created by one service\nworker on the same origin will not be available to other active service workers on\nthat same origin.", "parameters": { @@ -11892,6 +12500,9 @@ "Edge": "80", "Opera": "67" }, + "baseline": { + "level": "NONE" + }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The periodicSync read-only property of\nthe ServiceWorkerRegistration interface returns a reference to the\nPeriodicSyncManager interface, which allows for registering of tasks to\nrun at specific intervals." }, "serviceworkerregistration.pushmanager": { @@ -11910,8 +12521,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The pushManager read-only property of the\nServiceWorkerRegistration interface returns a reference to the\nPushManager interface for managing push subscriptions; this includes\nsupport for subscribing, getting an active subscription, and accessing push permission\nstatus." }, @@ -11953,13 +12565,14 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The showNotification() method of the\nServiceWorkerRegistration interface creates a notification on an active\nservice worker.", "parameters": { "title": "Defines a title for the notification, which is shown at the top of the notification window.", - "options": "An options object containing any custom settings that you want to apply to the notification. The possible options are:\n

\n
actions Optional
\n
\n

An array of actions to display in the notification, for which the default is an empty array. Each element in the array can be an object with the following members:\n

\n
action
\n
\n

A string identifying a user action to be displayed on the notification.\n

\n
title
\n
\n

A string containing action text to be shown to the user.\n

\n
icon Optional
\n
\n

A string containing the URL of an icon to display with the action.\n

\n
\n

Appropriate responses are built using event.action within the notificationclick event.\n

\n
badge Optional
\n
\n

A string containing the URL of the image used to represent the notification when there isn't enough space to display the notification itself; for example, the Android Notification Bar. On Android devices, the badge should accommodate devices up to 4x resolution, about 96x96px, and the image will be automatically masked.\n

\n
body Optional
\n
\n

A string representing the body text of the notification, which is displayed below the title. The default is the empty string.\n

\n
data Optional
\n
\n

Arbitrary data that you want associated with the notification. This can be of any structured-clonable data type. The default is null.\n

\n
dir Optional
\n
\n

The direction in which to display the notification. It defaults to auto, which just adopts the browser's language setting behavior, but you can override that behavior by setting values of ltr and rtl (although most browsers seem to ignore these settings.)\n

\n
icon Optional
\n
\n

A string containing the URL of an icon to be displayed in the notification.\n

\n
image Optional
\n
\n

A string containing the URL of an image to be displayed in the notification.\n

\n
lang Optional
\n
\n

The notification's language, as specified using a string representing a language tag according to RFC 5646: Tags for Identifying Languages (also known as BCP 47). See the Sitepoint ISO 2 letter language codes page for a simple reference. The default is the empty string.\n

\n
renotify Optional
\n
\n

A boolean value specifying whether the user should be notified after a new notification replaces an old one. The default is false, which means they won't be notified. If true, then tag also must be set.\n

\n
requireInteraction Optional
\n
\n

Indicates that a notification should remain active until the user clicks or dismisses it, rather than closing automatically. The default value is false.\n

\n
silent Optional
\n
\n

A boolean value specifying whether the notification is silent (no sounds or vibrations issued), regardless of the device settings. The default, null, means to respect device defaults. If true, then vibrate must not be present.\n

\n
tag Optional
\n
\n

A string representing an identifying tag for the notification. The default is the empty string.\n

\n
timestamp Optional
\n
\n

A timestamp, given as Unix time in milliseconds, representing the time associated with the notification. This could be in the past when a notification is used for a message that couldn't immediately be delivered because the device was offline, or in the future for a meeting that is about to start.\n

\n
vibrate Optional
\n
\n

A vibration pattern for the device's vibration hardware to emit with the notification. If specified, silent must not be true.\n

\n
" + "options": "An options object containing any custom settings that you want to apply to the notification. The possible options are:\n
\n
actions Optional
\n
\n

An array of actions to display in the notification, for which the default is an empty array. Each element in the array can be an object with the following members:\n

\n
action
\n
\n

A string identifying a user action to be displayed on the notification.\n

\n
title
\n
\n

A string containing action text to be shown to the user.\n

\n
icon Optional
\n
\n

A string containing the URL of an icon to display with the action.\n

\n
\n

Appropriate responses are built using event.action within the notificationclick event.\n

\n
badge Optional
\n
\n

A string containing the URL of the image used to represent the notification when there isn't enough space to display the notification itself; for example, the Android Notification Bar. On Android devices, the badge should accommodate devices up to 4x resolution, about 96x96px, and the image will be automatically masked.\n

\n
body Optional
\n
\n

A string representing the body text of the notification, which is displayed below the title. The default is the empty string.\n

\n
data Optional
\n
\n

Arbitrary data that you want associated with the notification. This can be of any structured-clonable data type. The default is null.\n

\n
dir Optional
\n
\n

The direction in which to display the notification. It defaults to auto, which just adopts the browser's language setting behavior, but you can override that behavior by setting values of ltr and rtl (although most browsers seem to ignore these settings.)\n

\n
icon Optional
\n
\n

A string containing the URL of an icon to be displayed in the notification.\n

\n
image Optional
\n
\n

A string containing the URL of an image to be displayed in the notification.\n

\n
lang Optional
\n
\n

The notification's language, as specified using a string representing a BCP 47 language tag. The default is the empty string.\n

\n
renotify Optional
\n
\n

A boolean value specifying whether the user should be notified after a new notification replaces an old one. The default is false, which means they won't be notified. If true, then tag also must be set.\n

\n
requireInteraction Optional
\n
\n

Indicates that a notification should remain active until the user clicks or dismisses it, rather than closing automatically. The default value is false.\n

\n
silent Optional
\n
\n

A boolean value specifying whether the notification is silent (no sounds or vibrations issued), regardless of the device settings. The default, null, means to respect device defaults. If true, then vibrate must not be present.\n

\n
tag Optional
\n
\n

A string representing an identifying tag for the notification. The default is the empty string.\n

\n
timestamp Optional
\n
\n

A timestamp, given as Unix time in milliseconds, representing the time associated with the notification. This could be in the past when a notification is used for a message that couldn't immediately be delivered because the device was offline, or in the future for a meeting that is about to start.\n

\n
vibrate Optional
\n
\n

A vibration pattern for the device's vibration hardware to emit with the notification. If specified, silent must not be true.\n

\n
" }, "returns": "A Promise that resolves to undefined.", "throws": { @@ -12153,7 +12766,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The ShadowRoot interface of the Shadow DOM API is the root node of a DOM subtree that is rendered separately from a document's main DOM tree.\n

You can retrieve a reference to an element's shadow root using its Element.shadowRoot property, provided it was created using Element.attachShadow() with the mode option set to open." + "doc": "The ShadowRoot interface of the Shadow DOM API is the root node of a DOM subtree that is rendered separately from a document's main DOM tree.\n

You can retrieve a reference to an element's shadow root using its Element.shadowRoot property, provided it was created using Element.attachShadow() with the mode option set to open." }, "shadowroot.activeelement": { "url": "$MDN_URL$/web/api/shadowroot/activeelement", @@ -12188,8 +12801,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The adoptedStyleSheets property of the ShadowRoot interface sets an array of constructed stylesheets to be used by the shadow DOM subtree.\n

\n

Note:\nA constructed stylesheet is a stylesheet created programmatically using the CSSStyleSheet() constructor (as compared to one created by a user-agent when importing a stylesheet from a script, imported using <style> and @import, or linked to via <link>).\n

\n

The same constructed stylesheet can be adopted by multiple ShadowRoot instances, and by the parent document (using the Document.adoptedStyleSheets property).\nChanging an adopted stylesheet will affect all the adopting objects.\n

Stylesheets in the adoptedStyleSheets property are considered along with the shadow DOM's other stylesheets.\nFor the purpose of determining the final computed CSS of any element, they are considered to have been added after the other stylesheets in the shadow DOM (ShadowRoot.styleSheets).\n

Only stylesheets created using the CSSStyleSheet() constructor, and from within the same parent Document as the shadow root, may be adopted." }, @@ -12248,7 +12862,7 @@ "Safari": "10.1", "SafariIOS": "10.3" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The elementFromPoint() method, available on the ShadowRoot object, returns the element at the topmost shadow root layer at the specified coordinates relative to the viewport (the shadow root highest in the display z-order, that is able to receive pointer events). Shadow root elements that have pointer-events set to none are ignored.\n

If the specified point is outside the bounds of the shadow root, the result is undefined.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The elementFromPoint() method, available on the ShadowRoot object, returns the element at the topmost shadow root layer at the specified coordinates relative to the viewport (the shadow root highest in the display z-order, that is able to receive pointer events). Shadow root elements that have pointer-events set to none are ignored.\n

If the specified point is outside the bounds of the shadow root, the result is undefined.", "parameters": { "x": "The horizontal coordinate of a point, relative to the left edge of the current viewport.", "y": "The vertical coordinate of a point, relative to the top edge of the current viewport." @@ -12267,7 +12881,7 @@ "Safari": "11.1", "SafariIOS": "11.3" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The elementsFromPoint() method of the ShadowRoot interface returns an array of all the shadow root elements at the specified coordinates (relative to the viewport). The elements are ordered from the topmost element (highest in the display z-order), to the bottommost element.\n

It operates in a similar way to the ShadowRoot.elementFromPoint method. Some browsers return only the shadow root elements present at that location. Other browsers include elements outside of the shadow DOM, from the shadow DOM element in the topmost layer to the document root node, such as the <html> or <svg> root element. In these browsers, it operates similar to the Document.elementsFromPoint method, but with the ability to cross the shadow boundary.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The elementsFromPoint() method of the ShadowRoot interface returns an array of all the shadow root elements at the specified coordinates (relative to the viewport). The elements are ordered from the topmost element (highest in the display z-order), to the bottommost element.\n

It operates in a similar way to the ShadowRoot.elementFromPoint method. Some browsers return only the shadow root elements present at that location. Other browsers include elements outside of the shadow DOM, from the shadow DOM element in the topmost layer to the document root node, such as the <html> or <svg> root element. In these browsers, it operates similar to the Document.elementsFromPoint method, but with the ability to cross the shadow boundary.", "parameters": { "x": "The horizontal coordinate of a point, relative to the left edge of the current viewport.", "y": "The vertical coordinate of a point, relative to the top edge of the current viewport." @@ -12335,7 +12949,7 @@ "level": "LOW", "lowDate": "2024-09-16" }, - "doc": "The getHTML() method of the ShadowRoot interface is used to serialize a shadow root's DOM to an HTML string.\n

The method provides an options argument that enables the serialization of child nodes that are shadow roots.\nThe options can be used to include nested shadow roots that have been set as serializable, and/or a specified array of ShadowRoot objects, which may be either open or closed.\n

Without arguments, child nodes that are shadow roots are not serialized, and this method behaves in the same way as reading the value of Element.innerHTML.", + "doc": "The getHTML() method of the ShadowRoot interface is used to serialize a shadow root's DOM to an HTML string.\n

The method provides an options argument that enables the serialization of child nodes that are shadow roots.\nThe options can be used to include nested shadow roots that have been set as serializable, and/or a specified array of ShadowRoot objects, which may be either open or closed.\n

Without arguments, child nodes that are shadow roots are not serialized, and this method behaves in the same way as reading the value of Element.innerHTML.\n

Note that some browsers serialize the < and > characters as &lt; and &gt; when they appear in attribute values (see Browser compatibility).\nThis is to prevent a potential security vulnerability (mutation XSS) in which an attacker can craft input that bypasses a sanitization function, enabling a cross-site scripting (XSS) attack.", "parameters": { "options": "An options object with the following optional parameters:\n

\n
serializableShadowRoots
\n
\n

A boolean value that specifies whether to include serializable shadow roots.\nThe default value is false.\n

\n
shadowRoots
\n
\n

An array of ShadowRoot objects to serialize.\nThese are included regardless of whether they are marked as serializable, or if they are open or closed.\nThe default value is an empty array.\n

\n
" }, @@ -12378,7 +12992,11 @@ "Safari": "10", "SafariIOS": "10" }, - "doc": "The innerHTML property of the ShadowRoot\ninterface sets or returns a reference to the DOM tree inside the\nShadowRoot." + "doc": "
\n

Warning:\nThis property parses its input as HTML, writing the result into the DOM.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks, if the input originally came from an attacker.\n

You can mitigate this risk by always assigning TrustedHTML objects instead of strings and enforcing trusted types.\nSee Security considerations for more information.\n

\n

The innerHTML property of the ShadowRoot interface gets or sets the HTML markup to the DOM tree inside the ShadowRoot.", + "throws": { + "SyntaxError DOMException": "Thrown if an attempt was made to set the value of innerHTML using a string which is not properly-formed HTML.", + "TypeError": "Thrown if the property is set to a string when Trusted Types are enforced by a CSP and no default policy is defined." + } }, "shadowroot.mode": { "url": "$MDN_URL$/web/api/shadowroot/mode", @@ -12400,7 +13018,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The mode read-only property of the ShadowRoot specifies its mode — either open or closed.\nThis defines whether or not the shadow root's internal features are accessible from JavaScript.\n

When the mode of a shadow root is \"closed\", the shadow root's implementation internals are inaccessible and unchangeable from JavaScript—in the same way the implementation internals of, for example, the <video> element are inaccessible and unchangeable from JavaScript.\n

The property value is set using the options.mode property of the object passed to Element.attachShadow(), or using the shadowrootmode attribute of the <template> element when a shadow root is created declaratively." + "doc": "The mode read-only property of the ShadowRoot specifies its mode — either open or closed.\nThis defines whether or not the shadow root's internal features are accessible from JavaScript.\n

When the mode of a shadow root is \"closed\", the shadow root's implementation internals are inaccessible and unchangeable from JavaScript—in the same way the implementation internals of, for example, the <video> element are inaccessible and unchangeable from JavaScript.\n

The property value is set using the mode property of the object passed to Element.attachShadow(), or using the shadowrootmode attribute of the <template> element when a shadow root is created declaratively." }, "shadowroot.pictureinpictureelement": { "url": "$MDN_URL$/web/api/shadowroot/pictureinpictureelement", @@ -12427,7 +13045,6 @@ ], "compatibility": { "Chrome": "53", - "ChromeAndroid": "53", "Edge": "79", "Firefox": "63", "FirefoxAndroid": "63", @@ -12457,6 +13074,27 @@ }, "doc": "The serializable read-only property of the ShadowRoot interface returns true if the shadow root is serializable.\n

If set, the shadow root may be serialized by calling the Element.getHTML() or ShadowRoot.getHTML() methods with the options.serializableShadowRoots parameter set true.\n

The serializable property of a shadow root is specified when the shadow root is created, either declaratively by adding the shadowrootserializable attribute on a <template> element (along with an allowed shadowrootmode value), or by setting the options.serializable parameter to true when using Element.attachShadow()." }, + "shadowroot.sethtml": { + "url": "$MDN_URL$/web/api/shadowroot/sethtml", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Firefox": "preview" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The setHTML() method of the ShadowRoot interface provides an XSS-safe method to parse and sanitize a string of HTML into a DocumentFragment, which then replaces the existing tree in the Shadow DOM.", + "parameters": { + "input": "A string defining HTML to be sanitized and injected into the shadow root.", + "options": "An options object with the following optional parameters:\n

\n
sanitizer
\n
\n

A Sanitizer or SanitizerConfig object which defines what elements of the input will be allowed or removed, or the string \"default\" for the default sanitizer configuration.\nNote that generally a \"Sanitizer is expected to be more efficient than a SanitizerConfig if the configuration is to reused.\nIf not specified, the default sanitizer configuration is used.\n

\n
" + }, + "returns": "None (undefined).", + "throws": { + "TypeError": "This is thrown if options.sanitizer is passed a:\n
    \n
  • non-normalized SanitizerConfig (one that includes both \"allowed\" and \"removed\" configuration settings).
  • \n
  • string that does not have the value \"default\".
  • \n
  • value that is not a Sanitizer, SanitizerConfig, or string.
  • \n
" + } + }, "shadowroot.sethtmlunsafe": { "url": "$MDN_URL$/web/api/shadowroot/sethtmlunsafe", "status": [ @@ -12469,18 +13107,22 @@ "Firefox": "123", "FirefoxAndroid": "123", "Opera": "110", - "Safari": "17.4", - "SafariIOS": "17.4" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "LOW", - "lowDate": "2024-04-18" + "lowDate": "2025-09-15" }, - "doc": "The setHTMLUnsafe() method of the ShadowRoot interface is used to parse a string of HTML into a DocumentFragment, which then replaces the element's subtree in the DOM.\nThe input HTML may include declarative shadow roots.\n

The suffix \"Unsafe\" in the method name indicates that the method does not sanitize or remove potentially unsafe XSS-relevant input, such as <script> elements, and script or event handler content attributes.\n

If the string of HTML defines more than one declarative shadow root in a particular shadow host then only the first ShadowRoot is created — subsequent declarations are parsed as <template> elements within that shadow root.\n

\n

Note:\nThis method should be used instead of ShadowRoot.innerHTML when a string of HTML may contain declarative shadow roots.\n

", + "doc": "
\n

Warning:\nThis method parses its input as HTML, writing the result into the DOM.\nAPIs like this are known as injection sinks, and are potentially a vector for cross-site-scripting (XSS) attacks, if the input originally came from an attacker.\n

You can mitigate this risk by always passing TrustedHTML objects instead of strings and enforcing trusted types.\nSee Security considerations for more information.\n

\n
\n

Note:\nShadowRoot.setHTML() should almost always be used instead of this method — on browsers where it is supported — as it always removes XSS-unsafe HTML entities.\n

\n

The setHTMLUnsafe() method of the ShadowRoot interface can be used to parse HTML input into a DocumentFragment, optionally filtering out unwanted elements and attributes, and then use it to replace the existing tree in the Shadow DOM.", "parameters": { - "html": "A string defining HTML to be parsed." + "input": "A TrustedHTML or string instance defining HTML to be parsed.", + "options": "An options object with the following optional parameters:\n

\n
sanitizer Optional
\n
\n

A Sanitizer or SanitizerConfig object that defines what elements of the input will be allowed or removed.\nThis can also be a string with the value \"default\", which applies a Sanitizer with the default (XSS-safe) configuration.\nIf not specified, no sanitizer is used.\n

Note that generally a Sanitizer is expected to be more efficient than a SanitizerConfig if the configuration is to reused.\n

\n
" }, - "returns": "None (undefined)." + "returns": "None (undefined).", + "throws": { + "TypeError": "This is thrown if:\n
    \n
  • input is passed a string when Trusted Types are enforced by a CSP and no default policy is defined.
  • \n
  • options.sanitizer is passed a:\n
      \n
    • value that is not a Sanitizer, SanitizerConfig, or string.
    • \n
    • non-normalized SanitizerConfig (one that includes both \"allowed\" and \"removed\" configuration settings).
    • \n
    • string that does not have the value \"default\".
    • \n
    \n
  • \n
" + } }, "shadowroot.slotassignment": { "url": "$MDN_URL$/web/api/shadowroot/slotassignment", @@ -12498,8 +13140,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The read-only slotAssignment property of the ShadowRoot interface returns the slot assignment mode for the shadow DOM tree. Nodes are either automatically assigned (named) or manually assigned (manual). The value of this property defined using the slotAssignment option when calling Element.attachShadow()." }, @@ -12532,9 +13175,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "117", - "ChromeAndroid": "117", - "Edge": "117", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -12549,9 +13192,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "117", - "ChromeAndroid": "117", - "Edge": "117", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -12571,9 +13214,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "117", - "ChromeAndroid": "117", - "Edge": "117", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -12589,9 +13232,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "117", - "ChromeAndroid": "117", - "Edge": "117", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -12610,9 +13253,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "117", - "ChromeAndroid": "117", - "Edge": "117", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -12662,9 +13305,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "117", - "ChromeAndroid": "117", - "Edge": "117", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -12679,9 +13322,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "117", - "ChromeAndroid": "117", - "Edge": "117", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -12696,9 +13339,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "117", - "ChromeAndroid": "117", - "Edge": "117", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -12721,9 +13364,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "117", - "ChromeAndroid": "117", - "Edge": "117", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -12788,14 +13431,14 @@ }, "doc": "The SharedWorker() constructor creates a\nSharedWorker object that executes the script at the specified URL. This\nscript must obey the same-origin policy.\n
\n

Note:\nThere is disagreement among browser manufacturers about\nwhether a data URL is of the same origin or not. Although Firefox 10.0\nand later accept data URLs, that's not the case in all other\nbrowsers.\n

", "parameters": { - "aURL": "A string representing the URL of the script the worker will\nexecute. It must obey the same-origin policy.", + "url": "A string representing the URL of the script the worker will\nexecute. It must obey the same-origin policy.", "name": "A string specifying an identifying name for the\nSharedWorkerGlobalScope representing the scope of the worker, which is useful for creating new instances of the same SharedWorker and debugging.", "options": "An object containing option properties that can set when creating the object\ninstance. Available properties are as follows:\n
\n
type
\n
\n

A string specifying the type of worker to\ncreate. The value can be classic or module. If not\nspecified, the default used is classic.\n

\n
credentials
\n
\n

A string specifying the type of\ncredentials to use for the worker. The value can be omit,\nsame-origin, or include. If not\nspecified, or if type is classic, the default used is\nomit (no credentials required).\n

\n
name
\n
\n

A string specifying an\nidentifying name for the SharedWorkerGlobalScope representing the\nscope of the worker, which is mainly useful for debugging purposes.\n

\n
sameSiteCookies
\n
\n

A string indicating which SameSite cookies\nshould be available to the worker. Can have one of the following two values:\n

\n
'all'
\n
\n

SameSite=Strict, SameSite=Lax, and SameSite=None cookies will all be available to the worker.\nThis option is only supported in first-party contexts, and is the default in first-party contexts.\n

\n
'none'
\n
\n

Only SameSite=None cookies will be available to the worker. This option is supported in first-party\nand third-party contexts, and is the default in third-party contexts.\n

\n
\n
\n
" }, "throws": { "SecurityError DOMException": "Thrown if the document is not allowed to start workers, for example if the URL has an invalid syntax or if the same-origin policy is violated, or if the sameSiteCookies value is not supported in the given context.", "NetworkError DOMException": "Thrown if the MIME type of the worker script is incorrect. It should always be text/javascript (for historical reasons other JavaScript MIME types may be accepted).", - "SyntaxError DOMException": "Thrown if aURL cannot be parsed." + "SyntaxError DOMException": "Thrown if url cannot be parsed." } }, "sharedworkerglobalscope": { @@ -12879,12 +13522,7 @@ "Experimental", "StandardTrack" ], - "compatibility": { - "Chrome": "129", - "ChromeAndroid": "129", - "Edge": "129", - "Opera": "115" - }, + "compatibility": {}, "baseline": { "level": "NONE" }, @@ -12999,7 +13637,7 @@ "Experimental" ], "compatibility": {}, - "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The appendBufferAsync() method\nof the SourceBuffer interface begins the process of asynchronously\nappending media segment data from an ArrayBuffer,\na TypedArray or a DataView object to the SourceBuffer object.\nIt returns a Promise which is fulfilled once the buffer has been appended.", + "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The appendBufferAsync() method\nof the SourceBuffer interface begins the process of asynchronously\nappending media segment data from an ArrayBuffer,\na TypedArray or a DataView object to the SourceBuffer object.\nIt returns a Promise which is fulfilled once the buffer has been appended.", "parameters": { "source": "Either an ArrayBuffer, a TypedArray or a DataView object that contains the media segment data you want to add to the SourceBuffer." }, @@ -13168,7 +13806,7 @@ "Experimental" ], "compatibility": {}, - "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The removeAsync() method of the\nSourceBuffer interface starts the process of asynchronously removing\nfrom the SourceBuffer media segments found within a specific time\nrange. A Promise is returned, which is fulfilled when the buffers\nin the specified time range have been removed.\n

This method can only be called when updating is\nfalse. If that's not the case, call abort() instead.", + "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The removeAsync() method of the\nSourceBuffer interface starts the process of asynchronously removing\nfrom the SourceBuffer media segments found within a specific time\nrange. A Promise is returned, which is fulfilled when the buffers\nin the specified time range have been removed.\n

This method can only be called when updating is\nfalse. If that's not the case, call abort() instead.", "parameters": { "start": "A double representing the start of the time range, in seconds.", "end": "A double representing the end of the time range, in seconds." @@ -13284,10 +13922,11 @@ "speechgrammar": { "url": "$MDN_URL$/web/api/speechgrammar", "status": [ + "StandardTrack", "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The SpeechGrammar interface of the Web Speech API represents a set of words or patterns of words that we want the recognition service to recognize.\n

Grammar is defined using JSpeech Grammar Format (JSGF.) Other formats may also be supported in the future." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The SpeechGrammar interface of the Web Speech API represents a set of words or patterns of words for the recognition service to recognize.\n

Grammar is defined using JSpeech Grammar Format (JSGF).\n

\n

Note:\nThe concept of grammar has been removed from the Web Speech API. Related features remain in the specification and are still recognized by supporting browsers for backwards compatibility, but they have no effect on speech recognition services.\n

" }, "speechgrammar.speechgrammar": { "url": "$MDN_URL$/web/api/speechgrammar/speechgrammar", @@ -13295,11 +13934,12 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The SpeechGrammar() constructor of the\nSpeechGrammar interface creates a new SpeechGrammar object\ninstance." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The SpeechGrammar() constructor of the\nSpeechGrammar interface creates a new SpeechGrammar object\ninstance." }, "speechgrammar.src": { "url": "$MDN_URL$/web/api/speechgrammar/src", "status": [ + "StandardTrack", "Deprecated" ], "compatibility": { @@ -13308,11 +13948,12 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The src property of the SpeechGrammar interface\nis used to get or set a string that contains the grammar within the SpeechGrammar object." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The src property of the SpeechGrammar interface\nis used to get or set a string that contains the grammar within the SpeechGrammar object." }, "speechgrammar.weight": { "url": "$MDN_URL$/web/api/speechgrammar/weight", "status": [ + "StandardTrack", "Deprecated" ], "compatibility": { @@ -13321,29 +13962,33 @@ "Edge": "79", "Opera": "15" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The optional weight property of the\nSpeechGrammar interface sets and returns the weight of the\nSpeechGrammar object." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The optional weight property of the\nSpeechGrammar interface sets and returns the weight of the\nSpeechGrammar object." }, "speechgrammarlist": { "url": "$MDN_URL$/web/api/speechgrammarlist", "status": [ - "Experimental", - "StandardTrack" + "StandardTrack", + "Deprecated" ], - "compatibility": {}, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The SpeechGrammarList interface of the Web Speech API represents a list of SpeechGrammar objects containing words or patterns of words that we want the recognition service to recognize.\n

Grammar is defined using JSpeech Grammar Format (JSGF.) Other formats may also be supported in the future." + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139" + }, + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The SpeechGrammarList interface of the Web Speech API represents a list of SpeechGrammar objects containing words or patterns of words that we want the recognition service to recognize.\n

Grammar is defined using JSpeech Grammar Format (JSGF).\n

\n

Note:\nThe concept of grammar has been removed from the Web Speech API. Related features remain in the specification and are still recognized by supporting browsers for backwards compatibility, but they have no effect on speech recognition services.\n

" }, "speechgrammarlist.addfromstring": { "url": "$MDN_URL$/web/api/speechgrammarlist/addfromstring", "status": [ - "Experimental", - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "33", "ChromeAndroid": "33", "Edge": "79" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The addFromString() method of the\nSpeechGrammarList interface takes a grammar present in a specific\nstring within the code base (e.g., stored in a variable) and adds it to\nthe SpeechGrammarList as a new SpeechGrammar object.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The addFromString() method of the\nSpeechGrammarList interface takes a grammar present in a specific\nstring within the code base (e.g., stored in a variable) and adds it to\nthe SpeechGrammarList as a new SpeechGrammar object.", "parameters": { "string": "A string representing the grammar to be added.", "weight": "A float representing the weight of the grammar relative to other grammars present in\nthe SpeechGrammarList. The weight means the importance of this grammar,\nor the likelihood that it will be recognized by the speech recognition service. The\nvalue can be between 0.0 and 1.0; If not specified, the\ndefault used is 1.0." @@ -13353,15 +13998,15 @@ "speechgrammarlist.addfromuri": { "url": "$MDN_URL$/web/api/speechgrammarlist/addfromuri", "status": [ - "Experimental", - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "33", "ChromeAndroid": "33", "Edge": "79" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The addFromURI() method of the\nSpeechGrammarList interface takes a grammar present at a specific URI and\nadds it to the SpeechGrammarList as a new SpeechGrammar\nobject.\n

Note that some speech recognition services may support built-in grammars that can be\nspecified by URI.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The addFromURI() method of the\nSpeechGrammarList interface takes a grammar present at a specific URI and\nadds it to the SpeechGrammarList as a new SpeechGrammar\nobject.\n

Note that some speech recognition services may support built-in grammars that can be\nspecified by URI.", "parameters": { "src": "A string representing the URI of the grammar to be added.", "weight": "A float representing the weight of the grammar relative to other grammars present in\nthe SpeechGrammarList. The weight means the importance of this grammar,\nor the likelihood that it will be recognized by the speech recognition service. The\nvalue can be between 0.0 and 1.0; If not specified, the\ndefault used is 1.0." @@ -13371,15 +14016,15 @@ "speechgrammarlist.item": { "url": "$MDN_URL$/web/api/speechgrammarlist/item", "status": [ - "Experimental", - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "33", "ChromeAndroid": "33", "Edge": "79" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The item getter of the SpeechGrammarList\ninterface is a standard getter — it allows individual SpeechGrammar\nobjects to be retrieved from the SpeechGrammarList using array syntax.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The item getter of the SpeechGrammarList\ninterface is a standard getter — it allows individual SpeechGrammar\nobjects to be retrieved from the SpeechGrammarList using array syntax.", "parameters": { "index": "Index of the item to retrieve." }, @@ -13388,31 +14033,40 @@ "speechgrammarlist.length": { "url": "$MDN_URL$/web/api/speechgrammarlist/length", "status": [ - "Experimental", - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "33", "ChromeAndroid": "33", "Edge": "79" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The length read-only property of the\nSpeechGrammarList interface returns the number of\nSpeechGrammar objects contained in the SpeechGrammarList." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The length read-only property of the\nSpeechGrammarList interface returns the number of\nSpeechGrammar objects contained in the SpeechGrammarList." }, "speechgrammarlist.speechgrammarlist": { "url": "$MDN_URL$/web/api/speechgrammarlist/speechgrammarlist", "status": [ - "Experimental", - "StandardTrack" + "StandardTrack", + "Deprecated" ], - "compatibility": {}, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The SpeechGrammarList() constructor creates a new\nSpeechGrammarList object instance." + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139" + }, + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The SpeechGrammarList() constructor creates a new\nSpeechGrammarList object instance." }, "speechrecognition": { "url": "$MDN_URL$/web/api/speechrecognition", "status": [ "StandardTrack" ], - "compatibility": {}, + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123" + }, "baseline": { "level": "NONE" }, @@ -13424,9 +14078,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -13437,14 +14091,34 @@ "doc": "The abort() method of the Web Speech API stops the speech\nrecognition service from listening to incoming audio, and doesn't attempt to return a\nSpeechRecognitionResult.", "returns": "None (undefined)." }, + "speechrecognition.available": { + "url": "$MDN_URL$/web/api/speechrecognition/available_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "142", + "Edge": "142" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The available() static method of the Web Speech API checks whether the specified languages are available for speech recognition.\n

To install a language pack for speech recognition locally, use the SpeechRecognition.install() method.\n

Access to the available() method is controlled by the on-device-speech-recognition Permissions-Policy. Specifically, where a defined policy blocks usage, any attempts to call the method will fail.", + "parameters": { + "options": "An object specifying options for the availability check. Possible properties include:\n

\n
langs
\n
\n

An array of one or more strings containing BCP 47 language tags, each representing a language to check for availability. Passing an empty langs array will not throw an error, but the return value will always resolve to unavailable.\n

\n
processLocally Optional
\n
\n

A boolean that specifies whether to check availability of the languages only for on-device speech recognition (true) or for on-device or remote speech recognition (false). The default value is false.\n

\n

Note:\nIt is not possible to use available() to guarantee that a remote service supports the specified languages. A value of false means that either an on-device or a remote speech recognition service supports them.\n

\n
\n
" + }, + "returns": "A Promise that resolves with an enumerated value indicating the availability of the specified languages for speech recognition.\n

Possible values include:\n

\n
available
\n
\n

Indicates that support for all the specified languages is available.\n

    \n
  • If processLocally is set to true, available means that speech recognition is available for those languages on-device (the required language packs have been downloaded and installed on the user's computer).
  • \n
  • If processLocally is set to false, available means that speech recognition is available for those languages either on-device or remotely.
  • \n
\n
\n
downloading
\n
\n

Indicates that support for the specified languages is available on-device, and the relevant language pack for at least one language is in the process of being downloaded. Only relevant when processLocally is true.\n

\n
downloadable
\n
\n

Indicates that support for the specified languages is available on-device, but the relevant language pack for at least one language has not yet been downloaded. Only relevant when processLocally is true.\n

\n
unavailable
\n
\n

Indicates that support for at least one of the specified languages is not available.\n

    \n
  • If processLocally is set to true, unavailable means that on-device speech recognition is not available for at least one of the specified languages.
  • \n
  • If processLocally is set to false, unavailable means that speech recognition is not available for at least one of the specified languages either on-device or remotely.
  • \n
\n
\n
\n

Final return value for multiple languages with different statuses

\n

Only one status value is returned, even if multiple languages are specified in the langs array. If different specified languages have different availability statuses, the final return value is the \"furthest away\" status from available for any of the languages, in the order shown in the following lists:\n

If processLocally is false:\n

    \n
  • If all languages are available, then return available.
  • \n
  • Otherwise, return unavailable.
  • \n
\n

If processLocally is true:\n

    \n
  • If all languages are available, return available.
  • \n
  • If at least one language is downloading, return downloading.
  • \n
  • If at least one language is downloadable, return downloadable.
  • \n
  • If at least one language is unavailable, return unavailable.
  • \n
", + "throws": { + "InvalidStateError DOMException": "The current document is not fully active.", + "SyntaxError DOMException": "One or more of the strings specified in langs is not a valid BCP 47 language tag." + } + }, "speechrecognition.continuous": { "url": "$MDN_URL$/web/api/speechrecognition/continuous", "status": [ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "Edge": "79", + "Chrome": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -13465,7 +14139,27 @@ "Edge": "79", "Opera": "20" }, - "doc": "The grammars property of the\nSpeechRecognition interface returns and sets a collection of\nSpeechGrammar objects that represent the grammars that will be understood\nby the current SpeechRecognition." + "doc": "The grammars property of the\nSpeechRecognition interface returns and sets a collection of\nSpeechGrammar objects that represent the grammars that will be understood\nby the current SpeechRecognition.\n
\n

Note:\nThe concept of grammar has been removed from the Web Speech API. Related features remain in the specification and are still recognized by supporting browsers for backwards compatibility, but they have no effect on speech recognition services.\n

" + }, + "speechrecognition.install": { + "url": "$MDN_URL$/web/api/speechrecognition/install_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "142", + "Edge": "142" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The install() static method of the Web Speech API installs the required language packs for on-device speech recognition in the specified languages.\n

To check if the language packs are already available, use the SpeechRecognition.available() method.\n

Access to the install() method is controlled by the on-device-speech-recognition Permissions-Policy directive. Specifically, where a defined policy blocks usage, any attempts to call the method will fail.", + "parameters": { + "options": "An object specifying options for the installation. Possible properties include:\n

\n
langs
\n
\n

An array of one or more strings containing BCP 47 language tags, each representing a language that you want to install the language pack for.\n

\n
" + }, + "returns": "A Promise that resolves with a boolean value indicating whether the language pack was installed successfully. The conditions that result in each return value are as follows:\n
\n
true
\n
\n

All installation attempts succeeded for the requested languages, or the languages were already installed.\n

\n
false
\n
\n

One or more of the requested languages are not supported, a supported language pack failed to install, or an empty array was passed for the langs property.\n

\n
", + "throws": { + "InvalidStateError DOMException": "The current document is not fully active.", + "SyntaxError DOMException": "One or more of the strings specified in langs is not a valid BCP 47 language tag." + } }, "speechrecognition.interimresults": { "url": "$MDN_URL$/web/api/speechrecognition/interimresults", @@ -13473,9 +14167,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -13491,9 +14185,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -13509,9 +14203,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -13521,12 +14215,40 @@ }, "doc": "The maxAlternatives property of the\nSpeechRecognition interface sets the maximum number of\nSpeechRecognitionAlternatives provided per\nSpeechRecognitionResult.\n

The default value is 1." }, + "speechrecognition.phrases": { + "url": "$MDN_URL$/web/api/speechrecognition/phrases", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "142", + "Edge": "142" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The phrases property of the\nSpeechRecognition interface sets an array of SpeechRecognitionPhrase objects to be used for contextual biasing." + }, + "speechrecognition.processlocally": { + "url": "$MDN_URL$/web/api/speechrecognition/processlocally", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "142", + "Edge": "142" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The processLocally property of the\nSpeechRecognition interface specifies whether speech recognition must be performed locally on the user's device.\n

See On-device speech recognition for more information." + }, "speechrecognition.speechrecognition": { "url": "$MDN_URL$/web/api/speechrecognition/speechrecognition", "status": [ "StandardTrack" ], - "compatibility": {}, + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139" + }, "baseline": { "level": "NONE" }, @@ -13538,9 +14260,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -13548,8 +14270,14 @@ "baseline": { "level": "NONE" }, - "doc": "The start() method of the Web Speech API starts the speech\nrecognition service listening to incoming audio with intent to recognize grammars\nassociated with the current SpeechRecognition.", - "returns": "None (undefined)." + "doc": "The start() method of the Web Speech API starts the speech recognition service to listen for incoming audio (from a microphone or an audio track) and returns the results of that recognition.", + "parameters": { + "audioTrack": "A MediaStreamTrack instance to perform speech recognition on. If not specified, the service attempts to recognize audio from the user's microphone instead." + }, + "returns": "None (undefined).", + "throws": { + "InvalidStateError DOMException": "Thrown if an audioTrack is specified and one or both of the following are true:\n

    \n
  • The track's kind property is not audio.
  • \n
  • The track's readyState property is not live.
  • \n
" + } }, "speechrecognition.stop": { "url": "$MDN_URL$/web/api/speechrecognition/stop", @@ -13557,9 +14285,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "20", "Safari": "14.1", "SafariIOS": "14.5" @@ -13567,7 +14295,7 @@ "baseline": { "level": "NONE" }, - "doc": "The stop() method of the Web Speech API stops the speech\nrecognition service from listening to incoming audio, and attempts to return a\nSpeechRecognitionResult using the audio captured so far.", + "doc": "The stop() method of the Web Speech API stops the speech recognition service from listening for incoming audio and attempts to return a SpeechRecognitionResult based on the results captured so far.", "returns": "None (undefined)." }, "speechrecognitionalternative": { @@ -13627,6 +14355,10 @@ "StandardTrack" ], "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123", "Safari": "14.1", "SafariIOS": "14.5" }, @@ -13641,9 +14373,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "77", - "ChromeAndroid": "77", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "64", "Safari": "14.1", "SafariIOS": "14.5" @@ -13659,9 +14391,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "77", - "ChromeAndroid": "77", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Opera": "64", "Safari": "14.1", "SafariIOS": "14.5" @@ -13671,12 +14403,37 @@ }, "doc": "The message read-only property of the\nSpeechRecognitionErrorEvent interface returns a message describing the\nerror in more detail." }, + "speechrecognitionerrorevent.speechrecognitionerrorevent": { + "url": "$MDN_URL$/web/api/speechrecognitionerrorevent/speechrecognitionerrorevent", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Opera": "123", + "Safari": "14.1", + "SafariIOS": "14.5" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The SpeechRecognitionErrorEvent() constructor creates a new\nSpeechRecognitionErrorEvent object instance.", + "parameters": { + "type": "A string containing the name of the event. This will always be error.", + "init": "An initialization object that contains the following properties:\n
\n
error
\n
\n

An enumerated value representing the type of error. See the possible error values.\n

\n
message Optional
\n
\n

A string containing more details about the error that was raised. Note that the specification does not define the exact wording of these messages — implementers must define their own wording.\n

\n
" + } + }, "speechrecognitionevent": { "url": "$MDN_URL$/web/api/speechrecognitionevent", "status": [ "StandardTrack" ], "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Safari": "14.1", "SafariIOS": "14.5" }, @@ -13685,39 +14442,15 @@ }, "doc": "The SpeechRecognitionEvent interface of the Web Speech API represents the event object for the result and nomatch events, and contains all the data associated with an interim or final speech recognition result." }, - "speechrecognitionevent.emma": { - "url": "$MDN_URL$/web/api/speechrecognitionevent/emma", - "status": [ - "Deprecated" - ], - "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79" - }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The emma read-only property of the\nSpeechRecognitionEvent interface returns an Extensible\nMultiModal Annotation markup language (EMMA) — XML — representation of the\nresult.\n

\n

Note:\nEMMA is defined in the specification EMMA: Extensible MultiModal Annotation markup language. You can see multiple EMMA examples in the spec.\n

" - }, - "speechrecognitionevent.interpretation": { - "url": "$MDN_URL$/web/api/speechrecognitionevent/interpretation", - "status": [ - "Deprecated" - ], - "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79" - }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The interpretation read-only property of the\nSpeechRecognitionEvent interface returns the semantic meaning of what the\nuser said.\n

This might be determined, for instance, through the SISR specification of semantics in\na grammar (see\nSemantic Interpretation for Speech Recognition (SISR) Version 1.0\nfor specification and examples.)" - }, "speechrecognitionevent.resultindex": { "url": "$MDN_URL$/web/api/speechrecognitionevent/resultindex", "status": [ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Safari": "14.1", "SafariIOS": "14.5" }, @@ -13732,9 +14465,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "33", - "ChromeAndroid": "33", - "Edge": "79", + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", "Safari": "14.1", "SafariIOS": "14.5" }, @@ -13743,6 +14476,83 @@ }, "doc": "The results read-only property of the\nSpeechRecognitionEvent interface returns a\nSpeechRecognitionResultList object representing all the speech\nrecognition results for the current session.\n

Specifically this object will contain all final results that have been returned,\nfollowed by the current best hypothesis for all interim results. When subsequent\nresult events are fired, interim results may be overwritten by a newer\ninterim result or by a final result — they may even be removed, if they are at the end\nof the \"results\" array and the array length decreases. Final results on the other hand\nwill not be overwritten or removed." }, + "speechrecognitionevent.speechrecognitionevent": { + "url": "$MDN_URL$/web/api/speechrecognitionevent/speechrecognitionevent", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "139", + "ChromeAndroid": "139", + "Edge": "139", + "Safari": "14.1", + "SafariIOS": "14.5" + }, + "baseline": { + "level": "NONE" + }, + "doc": "The SpeechRecognitionEvent() constructor creates a new\nSpeechRecognitionEvent object instance.", + "parameters": { + "type": "A string containing the name of the event. This will be result or nomatch, depending on the event that created the instance.", + "init": "An initialization object that contains the following properties:\n

\n
resultIndex Optional
\n
\n

A number representing the lowest index value result in the SpeechRecognitionResultList instance that has actually changed.\n

\n
results
\n
\n

A SpeechRecognitionResultList object representing all the speech recognition results returned in the associated event.\n

\n
" + } + }, + "speechrecognitionphrase": { + "url": "$MDN_URL$/web/api/speechrecognitionphrase", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "142", + "Edge": "142" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The SpeechRecognitionPhrase interface of the Web Speech API represents a phrase that can be passed to the speech recognition engine for contextual biasing." + }, + "speechrecognitionphrase.boost": { + "url": "$MDN_URL$/web/api/speechrecognitionphrase/boost", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "142", + "Edge": "142" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The boost read-only property of the\nSpeechRecognitionPhrase interface returns a floating point number representing the weight you want to give the corresponding phrase." + }, + "speechrecognitionphrase.phrase": { + "url": "$MDN_URL$/web/api/speechrecognitionphrase/phrase", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "142", + "Edge": "142" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The phrase read-only property of the SpeechRecognitionPhrase interface returns a string containing the word or phrase you want boosted in the recognition engine's contextual bias." + }, + "speechrecognitionphrase.speechrecognitionphrase": { + "url": "$MDN_URL$/web/api/speechrecognitionphrase/speechrecognitionphrase", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "142", + "Edge": "142" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The SpeechRecognitionPhrase() constructor creates a new SpeechRecognitionPhrase object.\n

An array of SpeechRecognitionPhrase objects is passed into the speech recognition engine via the SpeechRecognition.phrases property for contextual biasing.", + "parameters": { + "boost": "A floating point number between 0.0 and 10.0 (inclusive) that represents the weight you want to apply to the phrase. This value is roughly equivalent to the natural log of the number of times more likely the website thinks this phrase to appear than what the speech recognition model knows. Higher values make the phrase more likely to be recognized. A value of 0.0 means the phrase is not boosted at all, whereas a value of 10.0 means the phrase is extremely likely to appear. If not specified, the boost defaults to 1.0.\n

\n

Note:\nA high value such as 9.0 or 10.0 might make the recognition engine erroneously recognize other phrases as the specified phrase. Therefore, such values should be used rarely when constructing SpeechRecognitionPhrase objects.\n

", + "phrase": "A string containing a word or phrase you want boosted." + }, + "returns": "A new SpeechRecognitionPhrase object.", + "throws": { + "SyntaxError DOMException": "The specified boost value is less than 0.0 or greater than 10.0." + } + }, "speechrecognitionresult": { "url": "$MDN_URL$/web/api/speechrecognitionresult", "status": [ @@ -14549,7 +15359,7 @@ "lowDate": "2018-09-05", "highDate": "2021-03-05" }, - "doc": "The lang read-only property of the SpeechSynthesisVoice interface returns a BCP 47 language tag indicating the language of the voice." + "doc": "The lang read-only property of the SpeechSynthesisVoice interface returns a BCP 47 language tag indicating the language of the voice." }, "speechsynthesisvoice.localservice": { "url": "$MDN_URL$/web/api/speechsynthesisvoice/localservice", @@ -15028,7 +15838,7 @@ }, "returns": "None (undefined).", "throws": { - "QuotaExceededError DOMException": "Thrown if the storage run out of disk quota or the user declined to grant you more space." + "QuotaExceededError": "Thrown if the storage run out of disk quota or the user declined to grant you more space." } }, "storageaccesshandle": { @@ -15239,7 +16049,7 @@ }, "doc": "
\n

Note:\nSee SharedWorker() to understand usage.\n

", "parameters": { - "aURL": "See SharedWorker().", + "url": "See SharedWorker().", "name": "See SharedWorker().", "options": "See SharedWorker()." }, @@ -15499,13 +16309,15 @@ "SafariIOS": "15.2" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-14" + "level": "HIGH", + "lowDate": "2023-03-14", + "highDate": "2025-09-14" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getDirectory() method of the StorageManager interface is used to obtain a reference to a FileSystemDirectoryHandle object allowing access to a directory and its contents, stored in the origin private file system (OPFS).", "returns": "A Promise that fulfills with a FileSystemDirectoryHandle object.", "throws": { - "SecurityError DOMException": "Thrown if the user agent is not able to map the requested directory to the local OPFS." + "SecurityError DOMException": "Thrown if the browser is not able to map the requested directory to the local OPFS, for example due to storage or memory constraints. Also thrown in some browsers if getDirectory() is called in private browsing mode.", + "UnknownError DOMException": "Thrown in some browsers if getDirectory() is called in private browsing mode." } }, "storagemanager.persist": { @@ -16350,7 +17162,7 @@ "parameters": { "algorithm": "An object defining the derivation algorithm to use.\n

", "baseKey": "A CryptoKey representing the input to the derivation algorithm.\nIf algorithm is ECDH or X25519, then this will be the ECDH or X25519 private key.\nOtherwise it will be the initial key material for the derivation function: for example, for PBKDF2 it might be a password, imported as a CryptoKey using SubtleCrypto.importKey().", - "derivedKeyAlgorithm": "An object defining the algorithm the derived key will be used for:\n", + "derivedKeyType": "An object defining the algorithm the derived key will be used for:\n", "extractable": "A boolean value indicating whether it will be possible to export the key using SubtleCrypto.exportKey() or SubtleCrypto.wrapKey().", "keyUsages": "An Array indicating what can be done with the derived key.\nNote that the key usages must be allowed by the algorithm set in derivedKeyAlgorithm.\nPossible values of the array are:\n
    \n
  • encrypt: The key may be used to encrypt messages.
  • \n
  • decrypt: The key may be used to decrypt messages.
  • \n
  • sign: The key may be used to sign messages.
  • \n
  • verify: The key may be used to verify signatures.
  • \n
  • deriveKey: The key may be used in deriving a new key.
  • \n
  • deriveBits: The key may be used in deriving bits.
  • \n
  • wrapKey: The key may be used to wrap a key.
  • \n
  • unwrapKey: The key may be used to unwrap a key.
  • \n
" }, @@ -16387,7 +17199,7 @@ "parameters": { "algorithm": "An object defining the derivation algorithm to use.\n", "baseKey": "A CryptoKey representing the input to the derivation algorithm.\nIf algorithm is ECDH or X25519, then this will be the ECDH or X25519 private key.\nOtherwise it will be the initial key material for the derivation function: for example, for PBKDF2 it might be a password, imported as a CryptoKey using SubtleCrypto.importKey().", - "derivedKeyAlgorithm": "An object defining the algorithm the derived key will be used for:\n", + "derivedKeyType": "An object defining the algorithm the derived key will be used for:\n", "extractable": "A boolean value indicating whether it will be possible to export the key using SubtleCrypto.exportKey() or SubtleCrypto.wrapKey().", "keyUsages": "An Array indicating what can be done with the derived key.\nNote that the key usages must be allowed by the algorithm set in derivedKeyAlgorithm.\nPossible values of the array are:\n
    \n
  • encrypt: The key may be used to encrypt messages.
  • \n
  • decrypt: The key may be used to decrypt messages.
  • \n
  • sign: The key may be used to sign messages.
  • \n
  • verify: The key may be used to verify signatures.
  • \n
  • deriveKey: The key may be used in deriving a new key.
  • \n
  • deriveBits: The key may be used in deriving bits.
  • \n
  • wrapKey: The key may be used to wrap a key.
  • \n
  • unwrapKey: The key may be used to unwrap a key.
  • \n
" }, @@ -16873,6 +17685,287 @@ "TypeError": "Raised when trying to use an invalid format." } }, + "summarizer": { + "url": "$MDN_URL$/web/api/Summarizer", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The Summarizer interface of the Summarizer API contains all the functionality for this API, including checking AI model availability, creating a new Summarizer instance, using it to generate a new summary, and more." + }, + "summarizer.availability": { + "url": "$MDN_URL$/web/api/summarizer/availability_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The availability() static method of the Summarizer interface returns an enumerated value that indicates whether the browser AI model supports (or will support) a given Summarizer configuration.", + "parameters": { + "options": "An options object specifying a possible configuration for a Summarizer. Possible values include:\n

\n
expectedInputLanguages
\n
\n

An array of strings equal to BCP 47 language tags specifying the expected languages of the input text. Defaults to [\"en\"].\n

\n
expectedContextLanguages
\n
\n

An array of strings equal to BCP 47 language tags specifying the expected languages of any provided context strings (either the sharedContext passed to the Summarizer, or a context specified during a summarize() or summarizeStreaming() call). Defaults to [\"en\"].\n

\n
format
\n
\n

An enumerated value specifying the text format you want summaries returned in. Defaults to markdown.\n

\n
length
\n
\n

An enumerated value specifying the relative length for the generated summaries. Defaults to short.\n

\n
outputLanguage
\n
\n

A string equal to a BCP 47 language tag specifying the expected language of summaries generated by the Summarizer. Defaults to en.\n

\n
type
\n
\n

An enumerated value specifying the type of summary you want this Summarizer to generate. Defaults to key-points.\n

\n
" + }, + "returns": "A Promise that fulfills with an enumerated value indicating whether support is available (or will be available) for a given Summarizer configuration, or null if support could not be determined.\n

Possible values include:\n

\n
available
\n
\n

The browser supports the given configuration and can be used immediately.\n

\n
downloadable
\n
\n

The browser supports the given configuration, but it first needs to download an AI model, or some fine-tuning data for the model.\n

\n
downloading
\n
\n

The browser supports the given configuration, but it needs to finish an ongoing download before it can proceed.\n

\n
unavailable
\n
\n

The browser does not support the given configuration.\n

\n
", + "throws": { + "NotAllowedError DOMException": "Thrown if usage of the Summarizer API is blocked by a summarizer Permissions-Policy.", + "NotSupportedError DOMException": "Thrown if the provided context is not in language the Summarizer supports.", + "UnknownError DOMException": "Thrown if the measureInputUsage() call failed for any other reason, or a reason the user agent did not wish to disclose." + } + }, + "summarizer.create": { + "url": "$MDN_URL$/web/api/summarizer/create_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The create() static method of the Summarizer interface creates a new Summarizer instance from which to generate summaries.\n

\n

Note:\nThe create() method requires transient activation, that is, it must be invoked in response to a user action such as a mouse click or button press.\n

", + "parameters": { + "options": "An object specifying configuration options for the Summarizer. Possible values include:\n
\n
expectedInputLanguages
\n
\n

An array of strings specifying the expected languages of the input text, which should be valid BCP 47 language tags. Defaults to [\"en\"].\n

\n
expectedContextLanguages
\n
\n

An array of strings specifying the expected languages of any provided context strings (either the sharedContext passed to the Summarizer, or a context specified during a summarize() or summarizeStreaming() call), which should be valid BCP 47 language tags. Defaults to [\"en\"].\n

\n
format
\n
\n

An enumerated value specifying the text format you want summaries returned in. Defaults to markdown.\n

\n
length
\n
\n

An enumerated value specifying the relative length for the generated summaries. Defaults to short.\n

\n
monitor
\n
\n

A callback function with a CreateMonitor argument that enables monitoring download progress of the AI model.\n

\n
outputLanguage
\n
\n

A string specifying the expected language of summaries generated by the Summarizer, which should be a valid BCP 47 language tag. Defaults to en.\n

\n
sharedContext
\n
\n

A sharedContext string describing the context the pieces of text to summarize are being used in, which helps the Summarizer generate more suitable summaries.\n

\n
signal
\n
\n

An AbortSignal object instance, which allows the create() operation to be aborted via the associated AbortController.\n

\n
type
\n
\n

An enumerated value specifying the type of summary you want this Summarizer to generate. Defaults to key-points.\n

\n
" + }, + "returns": "A Promise that fulfills with a Summarizer object instance.", + "throws": { + "NotAllowedError DOMException": "Thrown if usage of the Summarizer API is blocked by a summarizer Permissions-Policy.", + "NotSupportedError DOMException": "Thrown if any of the language tags specified in expectedContextLanguages, expectedInputLanguages, or outputLanguage are invalid, or not supported.", + "OperationError DOMException": "General-purpose exception thrown if Summarizer creation failed for any other reason." + } + }, + "summarizer.destroy": { + "url": "$MDN_URL$/web/api/summarizer/destroy", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The destroy() method of the Summarizer interface destroys the Summarizer instance it is called on. It makes sense to destroy Summarizer objects if they are no longer going to be used, as they tie up significant resources in their handling.", + "returns": "None (undefined)." + }, + "summarizer.expectedcontextlanguages": { + "url": "$MDN_URL$/web/api/summarizer/expectedcontextlanguages", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The expectedContextLanguages read-only property of the Summarizer interface returns the languages the context strings should be written in." + }, + "summarizer.expectedinputlanguages": { + "url": "$MDN_URL$/web/api/summarizer/expectedinputlanguages", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The expectedInputLanguages read-only property of the Summarizer interface returns the languages the Summarizer should support." + }, + "summarizer.format": { + "url": "$MDN_URL$/web/api/summarizer/format", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The format read-only property of the Summarizer interface returns the text format summaries will be returned in." + }, + "summarizer.inputquota": { + "url": "$MDN_URL$/web/api/summarizer/inputquota", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The inputQuota read-only property of the Summarizer interface returns the input quota available to the browser for generating summaries." + }, + "summarizer.length": { + "url": "$MDN_URL$/web/api/summarizer/length", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The length read-only property of the Summarizer interface returns the relative length of the generated summaries." + }, + "summarizer.measureinputusage": { + "url": "$MDN_URL$/web/api/summarizer/measureinputusage", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The measureInputUsage() method of the Summarizer interface reports how much inputQuota would be used by a summarize operation for a given text input.", + "parameters": { + "input": "A string representing the input text you want an input usage measurement for.", + "options": "An object specifying configuration options for the measureInputUsage() operation. Possible values include:\n

\n
context
\n
\n

A string describing the context the input text would be used in, to help generate a more suitable summary.\n

\n
signal
\n
\n

An AbortSignal object instance, which allows the measureInputUsage() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A Promise that fulfills with a number specifying the inputQuota usage of the given input text.", + "throws": { + "NotAllowedError DOMException": "Thrown if usage of the Summarizer API is blocked by a summarizer Permissions-Policy.", + "NotReadableError DOMException": "Thrown if the output summary was filtered by the user agent, for example because it was detected to be harmful, inaccurate, or nonsensical.", + "NotSupportedError DOMException": "Thrown if the provided context is not in language the Summarizer supports.", + "UnknownError DOMException": "Thrown if the measureInputUsage() call failed for any other reason, or a reason the user agent did not wish to disclose." + } + }, + "summarizer.outputlanguage": { + "url": "$MDN_URL$/web/api/summarizer/outputlanguage", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The outputLanguage read-only property of the Summarizer interface returns the language the summary should be generated in." + }, + "summarizer.sharedcontext": { + "url": "$MDN_URL$/web/api/summarizer/sharedcontext", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The sharedContext read-only property of the Summarizer interface returns a string describing the context the pieces of text to summarize are being used in. This helps the Summarizer to generate more suitable summaries." + }, + "summarizer.summarize": { + "url": "$MDN_URL$/web/api/summarizer/summarize", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The summarize() method of the Summarizer interface generates a new summary string.", + "parameters": { + "input": "A string representing the text to be summarized.", + "options": "An object specifying configuration options for the summarize() operation. Possible values include:\n

\n
context
\n
\n

A string describing the context the input text is being used in, which helps the Summarizer generate a more suitable summary.\n

\n
signal
\n
\n

An AbortSignal object instance, which allows the summarize() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A Promise that fulfills with a string containing the generated summary.", + "throws": { + "InvalidStateError DOMException": "Thrown if the current Document is not active.", + "NotAllowedError DOMException": "Thrown if usage of the Summarizer API is blocked by a summarizer Permissions-Policy.", + "NotReadableError DOMException": "Thrown if the output summary was filtered by the user agent, for example because it was detected to be harmful, inaccurate, or nonsensical.", + "NotSupportedError DOMException": "Thrown if the provided context is not in language the Summarizer supports.", + "QuotaExceededError": "Thrown if the summarize operation exceeds the available inputQuota.", + "UnknownError DOMException": "Thrown if the summarize() call failed for any other reason, or a reason the user agent did not wish to disclose." + } + }, + "summarizer.summarizestreaming": { + "url": "$MDN_URL$/web/api/summarizer/summarizestreaming", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The summarizeStreaming() method of the Summarizer interface generates a new summary as a ReadableStream.", + "parameters": { + "input": "A string representing the text to be summarized.", + "options": "An object specifying configuration options for the summarizeStreaming() operation. Possible values include:\n

\n
context
\n
\n

A string describing the context the input text is being used in, which helps the Summarizer generate a more suitable summary.\n

\n
signal
\n
\n

An AbortSignal object instance, which allows the summarizeStreaming() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A ReadableStream containing the generated summary.", + "throws": { + "InvalidStateError DOMException": "Thrown if the current Document is not active.", + "NotAllowedError DOMException": "Thrown if usage of the Summarizer API is blocked by a summarizer Permissions-Policy.", + "NotReadableError DOMException": "Thrown if the output summary was filtered by the user agent, for example because it was detected to be harmful, inaccurate, or nonsensical.", + "NotSupportedError DOMException": "Thrown if the provided context is not in language the Summarizer supports.", + "QuotaExceededError": "Thrown if the summarize operation exceeds the available inputQuota.", + "UnknownError DOMException": "Thrown if the summarizeStreaming() call failed for any other reason, or a reason the user agent did not wish to disclose." + } + }, + "summarizer.type": { + "url": "$MDN_URL$/web/api/summarizer/type", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The type read-only property of the Summarizer interface returns the type of summary that will generated by the Summarizer." + }, "svgaelement": { "url": "$MDN_URL$/web/api/svgaelement", "status": [ @@ -16917,6 +18010,48 @@ }, "doc": "The href read-only property of the SVGAElement returns an SVGAnimatedString object reflecting the value of the href attribute, and, in certain cases, the xlink:href attribute. It specifies the target URI associated with the link.\n

This property enables access to the URI set for a link within an SVG document." }, + "svgaelement.rel": { + "url": "$MDN_URL$/web/api/svgaelement/rel", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "ChromeAndroid": "136", + "Edge": "136", + "Firefox": "61", + "FirefoxAndroid": "61", + "Opera": "121", + "Safari": "14", + "SafariIOS": "14" + }, + "baseline": { + "level": "LOW", + "lowDate": "2025-05-01" + }, + "doc": "The rel property of the SVGAElement returns a string reflecting the value of the rel attribute of the SVG <a> element.\n

The rel attribute specifies the space-separated list of link types, the <list-of-Link-Types>, indicating the relationship between the target or resource represented by the <a> element and the current document. The property can get or set the rel attribute value." + }, + "svgaelement.rellist": { + "url": "$MDN_URL$/web/api/svgaelement/rellist", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "136", + "ChromeAndroid": "136", + "Edge": "136", + "Firefox": "61", + "FirefoxAndroid": "61", + "Opera": "121", + "Safari": "14", + "SafariIOS": "14" + }, + "baseline": { + "level": "LOW", + "lowDate": "2025-05-01" + }, + "doc": "The relList read-only property of the SVGAElement returns a live DOMTokenList reflecting the space-separated string <list-of-Link-Types> values of the rel attribute of the SVG <a> element.\n

The property itself is read-only, meaning you can't substitute the\nDOMTokenList by another one, but the content of the returned list can be\nchanged." + }, "svgaelement.target": { "url": "$MDN_URL$/web/api/svgaelement/target", "status": [ @@ -18613,14 +19748,11 @@ "svgdiscardelement": { "url": "$MDN_URL$/web/api/svgdiscardelement", "status": [ - "Experimental", - "StandardTrack" + "StandardTrack", + "Deprecated" ], - "compatibility": { - "Firefox": "136", - "FirefoxAndroid": "136" - }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The SVGDiscardElement interface is an interface for the <discard> element.\n

Note that it does not provide access to the specific attributes of the <discard> element (begin and href)." + "compatibility": {}, + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The SVGDiscardElement interface is an interface for the deprecated <discard> element.\n

Note that it does not provide access to the specific attributes of the <discard> element (begin and href)." }, "svgelement": { "url": "$MDN_URL$/web/api/svgelement", @@ -18678,8 +19810,9 @@ "SafariIOS": "15.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-02-14" + "level": "HIGH", + "lowDate": "2023-02-14", + "highDate": "2025-08-14" }, "doc": "The autofocus property of the SVGElement interface contains a boolean value reflecting the autofocus HTML global attribute. It indicates whether the SVG element should be focused when the page loads or when the element becomes shown if the SVG element is inside a <dialog> or a popover." }, @@ -23896,7 +25029,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The SVGGraphicsElement.getBBox() method allows us to determine\nthe coordinates of the smallest rectangle in which the object fits. The coordinates\nreturned are with respect to the current SVG space (after the application of all\ngeometry attributes on all the elements contained in the target element).\n

\n

Note: getBBox() must return the actual bounding box at\nthe time the method was called—even in case the element has not yet been rendered. It\nalso does not account for any transformation applied to the element or its parents.\n

\n
\n

Note: getBBox returns different values than\ngetBoundingClientRect(), as the\nlatter returns value relative to the viewport\n

", + "doc": "The SVGGraphicsElement.getBBox() method allows us to determine\nthe coordinates of the smallest rectangle in which the object fits. The coordinates\nreturned are with respect to the current SVG space (after the application of all\ngeometry attributes on all the elements contained in the target element).\n
\n

Note:\ngetBBox() must return the actual bounding box at\nthe time the method was called—even in case the element has not yet been rendered. It\nalso does not account for any transformation applied to the element or its parents.\n

\n
\n

Note:\ngetBBox returns different values than\ngetBoundingClientRect(), as the\nlatter returns value relative to the viewport\n

", "parameters": { "options": "An options dictionary used to control which parts of the element are included in the\nbounding box. The available options are:\n
\n
fill
\n
\n

A boolean value indicating that the fill should be included in the bounding box,\ndefaults to true.\n

\n
stroke
\n
\n

A boolean value indicating that the stroke should be included in the bounding\nbox, defaults to false.\n

\n
markers
\n
\n

A boolean value indicating that the markers should be included in the bounding\nbox, defaults to false.\n

\n
clipped
\n
\n

A boolean value indicating that the bounding box should be clipped, defaults to\nfalse.\n

\n
" }, @@ -24444,7 +25577,7 @@ }, "returns": "The SVGLength that was added to the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown when the list is read-only." + "NoModificationAllowedError DOMException": "Thrown when the list is read-only." } }, "svglengthlist.clear": { @@ -24470,7 +25603,7 @@ "doc": "The clear() method of the SVGLengthList interface clears all existing items from the list, with the result being an empty list.", "returns": "None (undefined).", "throws": { - "DOMException NoModificationAllowedError": "Thrown when the list is read-only." + "NoModificationAllowedError DOMException": "Thrown when the list is read-only." } }, "svglengthlist.getitem": { @@ -24499,7 +25632,7 @@ }, "returns": "The SVGLength at the specified index in the list.", "throws": { - "DOMException IndexSizeError": "Thrown when the index is out of bounds for the list." + "IndexSizeError DOMException": "Thrown when the index is out of bounds for the list." } }, "svglengthlist.initialize": { @@ -24528,7 +25661,7 @@ }, "returns": "The SVGLength that was added to the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown when the list is read-only." + "NoModificationAllowedError DOMException": "Thrown when the list is read-only." } }, "svglengthlist.insertitembefore": { @@ -24558,7 +25691,7 @@ }, "returns": "The SVGLength that was added to the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown when the list is read-only." + "NoModificationAllowedError DOMException": "Thrown when the list is read-only." } }, "svglengthlist.length": { @@ -24631,8 +25764,8 @@ }, "returns": "The SVGLength that was removed from the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown when the list is read-only.", - "DOMException IndexSizeError": "Thrown when the index is out of bounds for the list." + "NoModificationAllowedError DOMException": "Thrown when the list is read-only.", + "IndexSizeError DOMException": "Thrown when the index is out of bounds for the list." } }, "svglengthlist.replaceitem": { @@ -24662,8 +25795,8 @@ }, "returns": "The SVGLength that was added the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown when the list is read-only.", - "DOMException IndexSizeError": "Thrown when the index is out of bounds for the list." + "NoModificationAllowedError DOMException": "Thrown when the list is read-only.", + "IndexSizeError DOMException": "Thrown when the index is out of bounds for the list." } }, "svglineargradientelement": { @@ -25197,7 +26330,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The read-only height property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the height attribute of the <marker>.\n
\n

Note:\nAlthough this property is read-only, it is merely a container for two values you can modify, baseVal and animVal.\n

" + "doc": "The read-only height property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the height attribute of the <mask>.\n
\n

Note:\nAlthough this property is read-only, it is merely a container for two values you can modify, baseVal and animVal.\n

" }, "svgmaskelement.maskcontentunits": { "url": "$MDN_URL$/web/api/svgmaskelement/maskcontentunits", @@ -25263,7 +26396,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The read-only width property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the width attribute of the <marker>.\n
\n

Note:\nAlthough this property is read-only, it is merely a container for two values you can modify, baseVal and animVal.\n

" + "doc": "The read-only width property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the width attribute of the <mask>.\n
\n

Note:\nAlthough this property is read-only, it is merely a container for two values you can modify, baseVal and animVal.\n

" }, "svgmaskelement.x": { "url": "$MDN_URL$/web/api/svgmaskelement/x", @@ -25307,7 +26440,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The read-only y property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the y attribute of the <marker>. It represents the y-axis coordinate of the top-left corner of the masking area.\n
\n

Note:\nAlthough this property is read-only, it is merely a container for two values you can modify, baseVal and animVal.\n

" + "doc": "The read-only y property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the y attribute of the <mask>. It represents the y-axis coordinate of the top-left corner of the masking area.\n
\n

Note:\nAlthough this property is read-only, it is merely a container for two values you can modify, baseVal and animVal.\n

" }, "svgmetadataelement": { "url": "$MDN_URL$/web/api/svgmetadataelement", @@ -25467,7 +26600,7 @@ }, "returns": "The SVGNumber that was added to the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only." + "NoModificationAllowedError DOMException": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only." } }, "svgnumberlist.clear": { @@ -25493,7 +26626,7 @@ "doc": "The clear() method of the SVGNumberList interface clears all existing items from the list, with the result being an empty list.", "returns": "None (undefined).", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only." + "NoModificationAllowedError DOMException": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only." } }, "svgnumberlist.getitem": { @@ -25522,7 +26655,7 @@ }, "returns": "The SVGNumber at the specified index in the list.", "throws": { - "DOMException IndexSizeError": "Thrown when the index is out of bounds for the list." + "IndexSizeError DOMException": "Thrown when the index is out of bounds for the list." } }, "svgnumberlist.initialize": { @@ -25551,7 +26684,7 @@ }, "returns": "The SVGNumber that was added to the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only." + "NoModificationAllowedError DOMException": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only." } }, "svgnumberlist.insertitembefore": { @@ -25581,7 +26714,7 @@ }, "returns": "The SVGNumber that was added to the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only." + "NoModificationAllowedError DOMException": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only." } }, "svgnumberlist.length": { @@ -25654,8 +26787,8 @@ }, "returns": "The SVGNumber that was removed from the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only.", - "DOMException IndexSizeError": "Thrown when the index is out of bounds for the list." + "NoModificationAllowedError DOMException": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only.", + "IndexSizeError DOMException": "Thrown when the index is out of bounds for the list." } }, "svgnumberlist.replaceitem": { @@ -25685,8 +26818,8 @@ }, "returns": "The SVGNumber that was added the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only.", - "DOMException IndexSizeError": "Thrown when the index is out of bounds for the list." + "NoModificationAllowedError DOMException": "Thrown if the SVGNumberList corresponds to a read-only attribute or when the object itself is read-only.", + "IndexSizeError DOMException": "Thrown when the index is out of bounds for the list." } }, "svgpathelement": { @@ -26073,7 +27206,7 @@ "Safari": "3", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n
\n

Warning: SVGPoint is deprecated.\nUse DOMPoint or DOMPointReadOnly instead.\n

\n

An SVGPoint represents a 2D or 3D point in the SVG coordinate system." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

An SVGPoint represents a 2D or 3D point in the SVG coordinate system. It has been replaced in SVG 2 with DOMPoint and DOMPointReadOnly. All APIs that used to return an SVGPoint, including SVGSVGElement.createSVGPoint(), now return a DOMPoint instead." }, "svgpointlist": { "url": "$MDN_URL$/web/api/svgpointlist", @@ -26095,7 +27228,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The SVGPointList interface represents a list of SVGPoint objects.\n

An SVGPointList can be designated as read-only, which means that attempts to modify the object will result in an exception being thrown." + "doc": "The SVGPointList interface represents a list of DOMPoint objects.\n

An SVGPointList can be designated as read-only, which means that attempts to modify the object will result in an exception being thrown." }, "svgpointlist.appenditem": { "url": "$MDN_URL$/web/api/svgpointlist/appenditem", @@ -26117,11 +27250,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The appendItem() method of the SVGPointList interface adds a point to the end of the list.", + "doc": "The appendItem() method of the SVGPointList interface adds a DOMPoint to the end of the list.", "parameters": { - "obj": "An SVGPoint object containing the coordinates of the point to be appended." + "obj": "A DOMPoint object containing the coordinates of the point to be appended." }, - "returns": "The SVGPoint object that was appended.", + "returns": "The DOMPoint object that was appended.", "throws": { "NoModificationAllowedError DOMException": "Thrown if the list is read-only." } @@ -26176,7 +27309,7 @@ "parameters": { "index": "The index of the item to return." }, - "returns": "An SVGPoint object.", + "returns": "A DOMPoint object.", "throws": { "IndexSizeError DOMException": "Thrown if the index passed in is greater than the number of items in the list." } @@ -26201,11 +27334,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The initialize() method of the SVGPointList interface clears the list then adds a single new SVGPoint object to the list.", + "doc": "The initialize() method of the SVGPointList interface clears the list then adds a single new DOMPoint object to the list.", "parameters": { - "obj": "An SVGPoint object containing the coordinates of the point to be added when the list is initialized." + "obj": "A DOMPoint object containing the coordinates of the point to be added when the list is initialized." }, - "returns": "The added SVGPoint object.", + "returns": "The added DOMPoint object.", "throws": { "NoModificationAllowedError DOMException": "Thrown if the list is read-only." } @@ -26230,12 +27363,12 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The insertItemBefore() method of the SVGPointList interface inserts a point before another item in the list.", + "doc": "The insertItemBefore() method of the SVGPointList interface inserts a DOMPoint before another item in the list.", "parameters": { - "obj": "An SVGPoint object containing the coordinates of the point to be inserted.", + "obj": "A DOMPoint object containing the coordinates of the point to be inserted.", "index": "The index of the item the object should be inserted before. If the index passed in is greater than the length of the list, then index will be set to the list length and the item inserted before the last item in the list." }, - "returns": "The SVGPoint object that was inserted.", + "returns": "The DOMPoint object that was inserted.", "throws": { "NoModificationAllowedError DOMException": "Thrown if the list is read-only." } @@ -26304,11 +27437,11 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The removeItem() method of the SVGPointList interface removes a point from the list.", + "doc": "The removeItem() method of the SVGPointList interface removes a DOMPoint from the list.", "parameters": { "index": "The index of the item to remove." }, - "returns": "The removed SVGPoint object.", + "returns": "The removed DOMPoint object.", "throws": { "NoModificationAllowedError DOMException": "Thrown if the list is read-only.", "IndexSizeError DOMException": "Thrown if the index passed in is greater than the number of items in the list." @@ -26334,12 +27467,12 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The replaceItem() method of the SVGPointList interface replaces a point in the list.", + "doc": "The replaceItem() method of the SVGPointList interface replaces a DOMPoint in the list.", "parameters": { - "obj": "An point object containing the coordinates of the point to be inserted.", + "obj": "A DOMPoint object containing the coordinates of the point to be inserted.", "index": "The index of the item to replace." }, - "returns": "The new SVGPoint object.", + "returns": "The new DOMPoint object.", "throws": { "NoModificationAllowedError DOMException": "Thrown if the list is read-only.", "IndexSizeError DOMException": "Thrown if the index passed in is greater than the number of items in the list." @@ -26968,7 +28101,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The SVGRenderingIntent interface defines the enumerated list of possible values for rendering-intent attributes or descriptors.\n

\n

Warning:\nThis interface was removed in the SVG 2 specification.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The SVGRenderingIntent interface defines the enumerated list of possible values for rendering-intent attributes or descriptors.\n

\n

Warning:\nThis interface was removed in the SVG 2 specification.\n

" }, "svgscriptelement": { "url": "$MDN_URL$/web/api/svgscriptelement", @@ -27150,7 +28283,7 @@ }, "returns": "The string that was added to the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." + "NoModificationAllowedError DOMException": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." } }, "svgstringlist.clear": { @@ -27176,7 +28309,7 @@ "doc": "The clear() method of the SVGStringList interface clears all existing items from the list, with the result being an empty list.", "returns": "None (undefined).", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." + "NoModificationAllowedError DOMException": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." } }, "svgstringlist.getitem": { @@ -27205,7 +28338,7 @@ }, "returns": "The string at the specified index in the list.", "throws": { - "DOMException IndexSizeError": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." + "IndexSizeError DOMException": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." } }, "svgstringlist.initialize": { @@ -27234,7 +28367,7 @@ }, "returns": "The string that was added to the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." + "NoModificationAllowedError DOMException": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." } }, "svgstringlist.insertitembefore": { @@ -27264,7 +28397,7 @@ }, "returns": "The string that was added to the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." + "NoModificationAllowedError DOMException": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only." } }, "svgstringlist.length": { @@ -27337,8 +28470,8 @@ }, "returns": "The string that was removed from the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only.", - "DOMException IndexSizeError": "Thrown when the index is out of bounds for the list." + "NoModificationAllowedError DOMException": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only.", + "IndexSizeError DOMException": "Thrown when the index is out of bounds for the list." } }, "svgstringlist.replaceitem": { @@ -27368,8 +28501,8 @@ }, "returns": "The string that was added the list.", "throws": { - "DOMException NoModificationAllowedError": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only.", - "DOMException IndexSizeError": "Thrown when the index is out of bounds for the list." + "NoModificationAllowedError DOMException": "Thrown if the SVGStringList corresponds to a read-only attribute or when the object itself is read-only.", + "IndexSizeError DOMException": "Thrown when the index is out of bounds for the list." } }, "svgstyleelement": { @@ -27454,8 +28587,9 @@ "SafariIOS": "16.4" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "The SVGStyleElement.sheet read-only property returns the CSSStyleSheet corresponding to the given SVG style element, or null if there is none." }, @@ -27702,8 +28836,8 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The createSVGPoint() method of the SVGSVGElement interface creates an SVGPoint object outside of any document trees.", - "returns": "An SVGPoint object, initialized to the point (0,0) in the user coordinate system." + "doc": "The createSVGPoint() method of the SVGSVGElement interface creates a DOMPoint object outside of any document trees.", + "returns": "An DOMPoint object, initialized to the point (0,0) in the user coordinate system." }, "svgsvgelement.createsvgrect": { "url": "$MDN_URL$/web/api/svgsvgelement/createsvgrect", @@ -28029,7 +29163,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The viewBox read-only property of the SVGSVGElement interface reflects the <svg> element's viewBox attribute as an SVGAnimatedRect.\n

The property describes the <svg> element's <viewBox> attribute, which is used to defined the x-coordinate, y-coordinate, width, and height of an <svg> element. The SVGAnimatedRect.baseVal and SVGAnimatedRect.animVal properties are both SVGRect objects, or null if the viewBox is not defined. These objects' components my differ from the SVGSVGElement.x, SVGSVGElement.y, SVGSVGElement.width and SVGSVGElement.height properties, as the x, y, width, and height attributes take precedence over the viewBox attribute.\n

For non-nested SVG elements, the values of the CSS x, y, width, and height properties take precedence over any element attributes, so the values defined by the viewBox may not be reflected in the element's appearance." + "doc": "The viewBox read-only property of the SVGSVGElement interface reflects the <svg> element's viewBox attribute as an SVGAnimatedRect.\n

The property describes the <svg> element's viewBox attribute, which is used to defined the x-coordinate, y-coordinate, width, and height of an <svg> element. The SVGAnimatedRect.baseVal and SVGAnimatedRect.animVal properties are both SVGRect objects, or null if the viewBox is not defined. These objects' components may differ from the SVGSVGElement.x, SVGSVGElement.y, SVGSVGElement.width and SVGSVGElement.height properties, as the x, y, width, and height attributes take precedence over the viewBox attribute.\n

For non-nested SVG elements, the values of the CSS x, y, width, and height properties take precedence over any element attributes, so the values defined by the viewBox may not be reflected in the element's appearance." }, "svgsvgelement.width": { "url": "$MDN_URL$/web/api/svgsvgelement/width", @@ -29823,7 +30957,8 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { @@ -29840,7 +30975,8 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { @@ -29864,7 +31000,8 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { @@ -29884,7 +31021,8 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { @@ -29901,7 +31039,8 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { @@ -29918,7 +31057,8 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { @@ -29939,35 +31079,37 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The TaskSignal interface of the Prioritized Task Scheduling API represents a signal object that allows you to communicate with a prioritized task, and abort it or change the priority (if required) via a TaskController object.\n

An object of this type is created, and associated with, a TaskController.\nThe initial priority of the signal may be set by specifying it as an argument to the TaskController() constructor (by default it is \"user-visible\").\nThe priority can be changed by calling TaskController.setPriority() on the controller.\n

The signal may be passed as the options.signal argument in Scheduler.postTask(), after which it's associated controller can be used to abort the task.\nIf the task priority is mutable, the controller can also be used to change the task's priority.\nAbortable tasks that do not need the priority to change may instead specify an AbortSignal as the options.signal argument." + "doc": "

Note: This feature is available in Web Workers.

\n

The TaskSignal interface of the Prioritized Task Scheduling API represents a signal object that allows you to communicate with a prioritized task, and abort it or change the priority (if required) via a TaskController object.\n

An object of this type is created, and associated with, a TaskController.\nThe initial priority of the signal may be set by specifying it as an argument to the TaskController() constructor (by default it is \"user-visible\").\nThe priority can be changed by calling TaskController.setPriority() on the controller.\n

The signal may be passed as the options.signal argument in Scheduler.postTask(), after which its associated controller can be used to abort the task.\nIf the task priority is mutable, the controller can also be used to change the task's priority.\nAbortable tasks that do not need the priority to change may instead specify an AbortSignal as the options.signal argument." }, "tasksignal.any": { "url": "$MDN_URL$/web/api/tasksignal/any_static", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "116", "ChromeAndroid": "116", "Edge": "116", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "102" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The TaskSignal.any() static method takes an iterable of AbortSignal objects and returns a TaskSignal. The returned task signal is aborted when any of the abort signals is aborted.\n

When the task signal is aborted, its reason property will be set to the reason of the first signal that is aborted.", + "doc": "

Note: This feature is available in Web Workers.

\n

The TaskSignal.any() static method takes an iterable of AbortSignal objects and returns a TaskSignal. The returned task signal is aborted when any of the abort signals is aborted.\n

When the task signal is aborted, its reason property will be set to the reason of the first signal that is aborted.", "parameters": { "signals": "An iterable (such as an Array) of abort signals.", - "init": "Contains optional configuration parameters. Currently only one property is defined:\n

\n
priority Optional
\n
\n

One of the following:\n

    \n
  • A string which is one of user-blocking, user-visible and background.
  • \n
  • A TaskSignal.
  • \n
\n
\n
" + "init": "Contains optional configuration parameters. Currently only one property is defined:\n
\n
priority Optional
\n
\n

One of the following:\n

    \n
  • A priority string which is one of user-blocking, user-visible and background.
  • \n
  • A TaskSignal.
  • \n
\n
\n
" }, - "returns": "A TaskSignal instance. It will be aborted when the first signal passed into signals is aborted. When this happens:\n
    \n
  • \n

    Its reason property will be set to the reason of the signal that caused this signal to abort.\n

  • \n
  • \n

    Its priority property will be determined by the priority parameter:\n

      \n
    • If the priority parameter was a string, it will be the value of the string.
    • \n
    • If the priority parameter was a TaskSignal, it will be the value of that signal's priority.
    • \n
    \n
  • \n
" + "returns": "A TaskSignal instance. It will be aborted when the first signal passed into signals is aborted. When this happens:\n
    \n
  • \n

    Its reason property will be set to the reason of the signal that caused this signal to abort.\n

  • \n
  • \n

    Its priority property will be determined by the priority parameter:\n

      \n
    • If the priority parameter was a string, it will be the value of the string.
    • \n
    • If the priority parameter was a TaskSignal, it will be the value of that signal's priority.
    • \n
    \n
  • \n
" }, "tasksignal.priority": { "url": "$MDN_URL$/web/api/tasksignal/priority", @@ -29978,7 +31120,8 @@ "Chrome": "94", "ChromeAndroid": "94", "Edge": "94", - "Firefox": "preview", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "80" }, "baseline": { @@ -30130,7 +31273,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The TextDecoder interface represents a decoder for a specific text encoding, such as UTF-8, ISO-8859-2, KOI8-R, GBK, etc. A decoder takes a stream of bytes as input and emits a stream of code points." + "doc": "

Note: This feature is available in Web Workers.

\n

The TextDecoder interface represents a decoder for a specific text encoding, such as UTF-8, ISO-8859-2, or GBK. A decoder takes an array of bytes as input and returns a JavaScript string." }, "textdecoder.decode": { "url": "$MDN_URL$/web/api/textdecoder/decode", @@ -30186,7 +31329,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The TextDecoder.encoding read-only property returns a string containing the name of the decoding algorithm used by the specific decoder object.\n

The encoding is set by the constructor label parameter, and defaults to utf-8." + "doc": "

Note: This feature is available in Web Workers.

\n

The TextDecoder.encoding read-only property returns a string containing the name of the character encoding that this decoder will use.\n

The encoding is set by the label parameter passed to the constructor, and defaults to utf-8." }, "textdecoder.fatal": { "url": "$MDN_URL$/web/api/textdecoder/fatal", @@ -30210,7 +31353,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The fatal read-only property of the TextDecoder interface is a Boolean indicating whether the error mode is fatal.\n

If the property is true, then a decoder will throw a TypeError if it encounters malformed data while decoding.\nIf false, the decoder will substitute the invalid data with the replacement character U+FFFD (�).\nThe value of the property is set in the TextDecoder() constructor." + "doc": "

Note: This feature is available in Web Workers.

\n

The fatal read-only property of the TextDecoder interface is a Boolean indicating whether the error mode is fatal.\n

If the property is true, then a decoder will throw a TypeError if it encounters malformed data while decoding.\nIf false, the decoder will substitute the invalid data with the replacement character U+FFFD (�).\nThe value of the property is set in the fatal argument to the decoder's constructor." }, "textdecoder.ignorebom": { "url": "$MDN_URL$/web/api/textdecoder/ignorebom", @@ -30234,7 +31377,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The ignoreBOM read-only property of the TextDecoder interface is a Boolean indicating whether the byte order mark will be included in the output or skipped over." + "doc": "

Note: This feature is available in Web Workers.

\n

The ignoreBOM read-only property of the TextDecoder interface is a Boolean indicating whether the byte order mark will be included in the output or skipped over. The value of the property is set in the ignoreBOM argument to the decoder's constructor." }, "textdecoder.textdecoder": { "url": "$MDN_URL$/web/api/textdecoder/textdecoder", @@ -30258,9 +31401,9 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The TextDecoder() constructor returns a newly created TextDecoder object for the encoding specified in parameter.", + "doc": "

Note: This feature is available in Web Workers.

\n

The TextDecoder() constructor returns a new TextDecoder object.", "parameters": { - "label": "A string, defaulting to \"utf-8\".\nThis may be any valid label.", + "label": "A string identifying the character encoding that this decoder will use. This may be any valid label.\n

Defaults to \"utf-8\".", "options": "An object with the following properties:\n

\n
fatal Optional
\n
\n

A boolean value indicating if the TextDecoder.decode() method must throw a TypeError when decoding invalid data.\nIt defaults to false, which means that the decoder will substitute malformed data with a replacement character.\n

\n
ignoreBOM Optional
\n
\n

A boolean value indicating whether the byte order mark will be included in the output or skipped over.\nIt defaults to false, which means that the byte order mark will be skipped over when decoding and will not be included in the decoded text.\n

\n
" }, "throws": { @@ -30464,7 +31607,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder interface takes a stream of code points as input and emits a stream of UTF-8 bytes." + "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder interface enables you to encode a JavaScript string using UTF-8." }, "textencoder.encode": { "url": "$MDN_URL$/web/api/textencoder/encode", @@ -30488,11 +31631,11 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder.encode() method takes a string as input, and returns a Uint8Array containing the text given in parameters encoded with the specific method for that TextEncoder object.", + "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder.encode() method takes a string as input, and returns a Uint8Array containing the string encoded using UTF-8.", "parameters": { "string": "A string containing the text to encode." }, - "returns": "A Uint8Array object." + "returns": "A Uint8Array object containing the UTF-8 encoding of the input string." }, "textencoder.encodeinto": { "url": "$MDN_URL$/web/api/textencoder/encodeinto", @@ -30516,12 +31659,12 @@ "lowDate": "2021-04-26", "highDate": "2023-10-26" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder.encodeInto() method takes a\nstring to encode and a destination Uint8Array to put resulting UTF-8 encoded text into, and returns a dictionary object indicating the\nprogress of the encoding.\nThis is potentially more performant than the older encode() method — especially when the target buffer is a view into a Wasm heap.", + "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder.encodeInto() method takes a string to encode and a destination Uint8Array to put resulting UTF-8 encoded text into, and returns an object indicating the progress of the encoding.\nThis is potentially more performant than the encode() method — especially when the target buffer is a view into a Wasm heap.", "parameters": { "string": "A string containing the text to encode.", "uint8Array": "A Uint8Array object instance to place the resulting UTF-8 encoded text into." }, - "returns": "An object, which contains two members:\n

\n
read
\n
\n

The number of UTF-16 units of code from the source that has been converted over to UTF-8.\nThis may be less than string.length if uint8Array did not have enough space.\n

\n
written
\n
\n

The number of bytes modified in the destination Uint8Array.\nThe bytes written are guaranteed to form complete UTF-8 byte sequences.\n

\n
" + "returns": "An object, which contains two members:\n
\n
read
\n
\n

The number of UTF-16 code units from the source that have been converted to UTF-8.\nThis may be less than string.length if uint8Array did not have enough space.\n

\n
written
\n
\n

The number of bytes modified in the destination Uint8Array.\nThe bytes written are guaranteed to form complete UTF-8 byte sequences.\n

\n
" }, "textencoder.encoding": { "url": "$MDN_URL$/web/api/textencoder/encoding", @@ -30545,7 +31688,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder.encoding read-only property returns a string containing the name of the encoding algorithm used by the specific encoder.\n

It can only have the following value utf-8." + "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder.encoding read-only property returns a string containing the name of the encoding algorithm used by the specific encoder.\n

It always has the value utf-8." }, "textencoder.textencoder": { "url": "$MDN_URL$/web/api/textencoder/textencoder", @@ -30569,7 +31712,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder() constructor returns a newly created TextEncoder object that will generate a byte stream with UTF-8 encoding." + "doc": "

Note: This feature is available in Web Workers.

\n

The TextEncoder() constructor returns a newly created TextEncoder object." }, "textencoderstream": { "url": "$MDN_URL$/web/api/textencoderstream", @@ -30707,7 +31850,7 @@ "Safari": "3", "SafariIOS": "2" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The TextEvent interface is a legacy UI event interface for reporting changes to text UI elements.\n

\n

Note: TextEvent events have been superseded by events such as input, beforeinput, keypress, keyup, and keydown.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The TextEvent interface is a legacy UI event interface for reporting changes to text UI elements.\n

\n

Note:\nTextEvent events have been superseded by events such as input, beforeinput, keypress, keyup, and keydown.\n

" }, "textevent.data": { "url": "$MDN_URL$/web/api/textevent/data", @@ -31380,7 +32523,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The language read-only property of the TextTrack interface returns the language of the text track.\n

This uses the same values as the HTML lang attribute. These values are documented in RFC 5646: Tags for Identifying Languages (also known as BCP 47)." + "doc": "The language read-only property of the TextTrack interface returns the language of the text track." }, "texttrack.mode": { "url": "$MDN_URL$/web/api/texttrack/mode", @@ -31976,7 +33119,7 @@ "level": "LOW", "lowDate": "2023-11-21" }, - "doc": "The ToggleEvent interface represents an event notifying the user an Element's state has changed.\n

This is the event object for the HTMLElement beforetoggle and toggle events, which fire on some elements just before and just after they transition between showing and hidden, respectively.\n

" + "doc": "The ToggleEvent interface represents an event notifying the user an Element's state has changed.\n

This is the event object for the HTMLElement beforetoggle and toggle events, which fire on some elements just before and just after they transition between showing and hidden, respectively.\n

" }, "toggleevent.newstate": { "url": "$MDN_URL$/web/api/toggleevent/newstate", @@ -32020,6 +33163,20 @@ }, "doc": "The oldState read-only property of the ToggleEvent interface is a string representing the state the element is transitioning from." }, + "toggleevent.source": { + "url": "$MDN_URL$/web/api/toggleevent/source", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "140", + "ChromeAndroid": "140", + "Edge": "140", + "Opera": "124" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The source read-only property of the ToggleEvent interface is an Element object instance representing the HTML popover control element that initiated the toggle." + }, "toggleevent.toggleevent": { "url": "$MDN_URL$/web/api/toggleevent/toggleevent", "status": [ @@ -32042,7 +33199,7 @@ "doc": "The ToggleEvent() constructor creates a new ToggleEvent object.", "parameters": { "type": "A string representing the type of event. In the case of ToggleEvent this is always beforetoggle or toggle.", - "init": "An object containing the following properties:\n

\n
newState
\n
\n

A string representing the state the element is transitioning to. Possible values are \"open\" and \"closed\".\n

\n
oldState
\n
\n

A string representing the state the element is transitioning from. Possible values are \"open\" and \"closed\".\n

\n
" + "init": "An object containing the following properties:\n
\n
newState Optional
\n
\n

A string representing the state the element is transitioning to. Can be any value, but events fired by the browser set this to \"open\" or \"closed\". Defaults to \"\".\n

\n
oldState Optional
\n
\n

A string representing the state the element is transitioning from. Can be any value, but events fired by the browser set this to \"open\" or \"closed\". Defaults to \"\".\n

\n
source Optional
\n
\n

An Element representing the HTML popover control element that initiated the toggle. Defaults to null.\n

\n
" } }, "touch": { @@ -32924,7 +34081,7 @@ "lowDate": "2020-01-15", "highDate": "2022-07-15" }, - "doc": "The TransitionEvent.pseudoElement read-only property is a\nstring, starting with '::', containing the name of the pseudo-element the animation runs on.\nIf the transition doesn't run on a pseudo-element but on the element, an empty string:\n''``." + "doc": "The TransitionEvent.pseudoElement read-only property is a\nstring, starting with '::', containing the name of the pseudo-element the animation runs on.\nIf the transition doesn't run on a pseudo-element but on the element, an empty string:\n\"\"." }, "transitionevent.transitionevent": { "url": "$MDN_URL$/web/api/transitionevent/transitionevent", @@ -32953,6 +34110,175 @@ }, "returns": "A new TransitionEvent object." }, + "translator": { + "url": "$MDN_URL$/web/api/Translator", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The Translator interface of the Translator and Language Detector APIs contains all the associated translation functionality, including checking AI model availability, creating a new Translator instance, using it to create a translation, and more." + }, + "translator.availability": { + "url": "$MDN_URL$/web/api/translator/availability_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The availability() static method of the Translator interface returns an enumerated value that indicates the availability of the AI model for the given Translator configuration.", + "parameters": { + "options": "An object specifying configuration options for the Translator. Possible values include:\n

\n
sourceLanguage
\n
\n

A string specifying the language of the input text to be translated, which should be a valid BCP 47 language tag.\n

\n
targetLanguage
\n
\n

A string specifying the language that the input text will be translated into, which should be valid BCP 47 language tag.\n

\n
" + }, + "returns": "A Promise that fulfills with an enumerated value indicating whether support is available (or will be available) for a given Translator configuration, or null if support could not be determined.\n

Possible values include:\n

\n
available
\n
\n

The browser supports the given configuration and it can be used immediately.\n

\n
downloadable
\n
\n

The browser supports the given configuration, but it first needs to download an AI model, or some fine-tuning data for the model.\n

\n
downloading
\n
\n

The browser supports the given configuration, but it has to finish an ongoing download before it can proceed.\n

\n
unavailable
\n
\n

The browser does not support the given configuration. This value is also returned if the specified sourceLanguage and targetLanguage are the same.\n

\n
", + "throws": { + "InvalidStateError DOMException": "Thrown if the page's Document is not yet active.", + "OperationError DOMException": "Thrown if initialization of the AI model failed for any reason.", + "UnknownError DOMException": "Thrown if the availability() call failed for any other reason, or a reason the user agent did not wish to disclose." + } + }, + "translator.create": { + "url": "$MDN_URL$/web/api/translator/create_static", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The create() static method of the Translator interface creates a new Translator instance that can be used to translate text.\n

\n

Note:\nThe create() method requires transient activation, that is, it must be invoked in response to a user action such as a mouse click or button press.\n

", + "parameters": { + "options": "An object specifying configuration options for the Translator. Possible values include:\n
\n
sourceLanguage
\n
\n

A string specifying the expected language of the input text to be translated, which should be a valid BCP 47 language tag.\n

\n
targetLanguage
\n
\n

A string specifying the language that the input text will be translated into, which should be valid BCP 47 language tag.\n

\n
monitor Optional
\n
\n

A callback function with a CreateMonitor argument that enables monitoring download progress of the AI model.\n

\n
signal Optional
\n
\n

An AbortSignal object instance, which allows the create() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A Promise that fulfills with a Translator object instance.", + "throws": { + "InvalidStateError DOMException": "Thrown if the page's Document is not yet active.", + "NetworkError DOMException": "Thrown if:\n
    \n
  • The network was not available to download the AI model.
  • \n
  • The user has cancelled the AI model download.
  • \n
", + "NotAllowedError DOMException": "Thrown if:\n", + "NotSupportedError DOMException": "Thrown if:\n
    \n
  • The language tags specified in sourceLanguage or targetLanguage are invalid, or not supported. This is the case if the specified sourceLanguage and targetLanguage are the same.
  • \n
  • An AI model to support the specified combination of sourceLanguage and targetLanguage is not available.
  • \n
", + "OperationError DOMException": "General-purpose exception thrown if Translator creation failed for any other reason." + } + }, + "translator.destroy": { + "url": "$MDN_URL$/web/api/translator/destroy", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The destroy() method of the Translator interface destroys the Translator instance it is called on. It makes sense to destroy these objects if they are no longer going to be used, as they tie up significant resources in their handling.", + "returns": "None (undefined)." + }, + "translator.inputquota": { + "url": "$MDN_URL$/web/api/translator/inputquota", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The inputQuota read-only property of the Translator interface returns the input quota available to the browser for generating translations." + }, + "translator.measureinputusage": { + "url": "$MDN_URL$/web/api/translator/measureinputusage", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The measureInputUsage() method of the Translator interface reports how much input quota would be used by a translation operation for a given text input.", + "parameters": { + "input": "A string representing the input text you want an input usage measurement for.", + "options": "An object specifying configuration options for the measureInputUsage() operation. Possible values include:\n

\n
signal
\n
\n

An AbortSignal object instance, which allows the measureInputUsage() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A Promise that fulfills with a number specifying the inputQuota usage of the given input text.\n

This number is implementation-dependant; if it is less than the inputQuota, the string can be translated.", + "throws": { + "NotAllowedError DOMException": "Thrown if usage of the Translator API is blocked by a translator Permissions-Policy.", + "NotReadableError DOMException": "Thrown if the output translation was filtered by the user agent, for example because it was detected to be harmful, inaccurate, or nonsensical.", + "UnknownError DOMException": "Thrown if the measureInputUsage() call failed for any other reason, or a reason the user agent did not wish to disclose." + } + }, + "translator.sourcelanguage": { + "url": "$MDN_URL$/web/api/translator/sourcelanguage", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The sourceLanguage read-only property of the Translator interface returns the expected language of the input text to be translated.\n

A Translator instance's sourceLanguage is set when creating it via a create() call." + }, + "translator.targetlanguage": { + "url": "$MDN_URL$/web/api/translator/targetlanguage", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The targetLanguage read-only property of the Translator interface returns the language that the input text will be translated into.\n

A Translator instance's targetLanguage is set when creating it via a create() call." + }, + "translator.translate": { + "url": "$MDN_URL$/web/api/translator/translate", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The translate() method of the Translator interface returns a translation of an input string.", + "parameters": { + "input": "A string representing the text to be translated.", + "options": "An object specifying configuration options for the translate() operation. Possible values include:\n

\n
signal
\n
\n

An AbortSignal object instance, which allows the translate() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A Promise that fulfills with a string containing the generated translation.", + "throws": { + "InvalidStateError DOMException": "Thrown if the current Document is not active.", + "QuotaExceededError": "Thrown if the translation operation exceeds the available inputQuota." + } + }, + "translator.translatestreaming": { + "url": "$MDN_URL$/web/api/translator/translatestreaming", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "Opera": "122" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The translateStreaming() method of the Translator interface generates a translation as a ReadableStream.", + "parameters": { + "input": "A string representing the text to be translated.", + "options": "An object specifying configuration options for the translateStreaming() operation. Possible values include:\n

\n
signal
\n
\n

An AbortSignal object instance, which allows the translateStreaming() operation to be aborted via the associated AbortController.\n

\n
" + }, + "returns": "A ReadableStream containing the generated translation.", + "throws": { + "InvalidStateError DOMException": "Thrown if the current Document is not active.", + "QuotaExceededError": "Thrown if the translation operation exceeds the available inputQuota." + } + }, "treewalker": { "url": "$MDN_URL$/web/api/treewalker", "status": [ @@ -33234,7 +34560,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33251,7 +34578,8 @@ "ChromeAndroid": "90", "Edge": "90", "Opera": "76", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33269,7 +34597,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33287,7 +34616,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33304,7 +34634,8 @@ "ChromeAndroid": "90", "Edge": "90", "Opera": "76", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33322,7 +34653,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33340,7 +34672,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33357,7 +34690,8 @@ "ChromeAndroid": "90", "Edge": "90", "Opera": "76", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33375,7 +34709,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33393,7 +34728,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33410,7 +34746,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33435,7 +34772,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33460,7 +34798,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33485,7 +34824,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33502,7 +34842,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33519,7 +34860,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33544,7 +34886,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33561,7 +34904,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33578,7 +34922,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33595,7 +34940,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33619,7 +34965,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33642,7 +34989,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33663,7 +35011,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33684,7 +35033,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" @@ -33705,7 +35055,8 @@ "ChromeAndroid": "83", "Edge": "83", "Opera": "69", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" diff --git a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-u.json b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-u.json index efec5e0d4b90..f6f8296ef0e4 100644 --- a/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-u.json +++ b/xml/xml-psi-impl/resources-gen/com/intellij/documentation/mdn/WebApi-u.json @@ -59,7 +59,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The UIEvent.initUIEvent() method initializes a UI event\nonce it's been created.\n

Events initialized in this way must have been created with the Document.createEvent() method. This method must be called to set the event\nbefore it is dispatched, using EventTarget.dispatchEvent(). Once\ndispatched, it doesn't do anything anymore.\n

\n

Warning:\nDo not use this method anymore as it is deprecated.\n

Instead use specific event constructors, like UIEvent(). The page on Creating and triggering events gives more information about the way to use these.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The UIEvent.initUIEvent() method initializes a UI event\nonce it's been created.\n

Events initialized in this way must have been created with the Document.createEvent() method. This method must be called to set the event\nbefore it is dispatched, using EventTarget.dispatchEvent(). Once\ndispatched, it doesn't do anything anymore.\n

\n

Warning:\nDo not use this method anymore as it is deprecated.\n

Instead use specific event constructors, like UIEvent(). The page on Creating and dispatching events gives more information about the way to use these.\n

", "parameters": { "type": "A string defining the type of event.", "canBubble": "A boolean value deciding whether the event should bubble up through the\nevent chain or not. Once set, the read-only property Event.bubbles\nwill give its value.", @@ -213,9 +213,9 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The createObjectURL() static method of the URL interface\ncreates a string containing a URL representing the object given in the parameter.\n

The URL lifetime is tied to the document\nin the window on which it was created. The new object URL represents the specified\nFile object or Blob object.\n

To release an object URL, call revokeObjectURL().\n

\n

Note:\nThis feature is not available in Service Workers due to its\npotential to create memory leaks.\n

", + "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The createObjectURL() static method of the URL interface\ncreates a string containing a blob URL pointing to the object given in the parameter.\n

For more information, see blob URLs.\n

To release an object URL, call revokeObjectURL().\n

\n

Note:\nThis feature is not available in Service Workers due to its\npotential to create memory leaks.\n

", "parameters": { - "object": "A File, Blob, or MediaSource object to\ncreate an object URL for." + "object": "A Blob (such as a File) or MediaSource object to\ncreate an object URL for." }, "returns": "A string containing an object URL that can be used to reference the\ncontents of the specified source object." }, @@ -289,7 +289,7 @@ "lowDate": "2016-09-20", "highDate": "2019-03-20" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The hostname property of the URL interface is a string containing either the domain name or IP address of the URL. If the URL does not have a hostname, this property contains an empty string, \"\". IPv4 and IPv6 addresses are normalized, such as stripping leading zeros, and domain names are converted to IDN.\n

This property can be set to change the hostname of the URL. If the URL's scheme is not hierarchical (which the URL standard calls \"special schemes\"), then it has no concept of a host and setting this property has no effect.\n

The hostname is percent-encoded when setting but not percent-decoded when reading." + "doc": "

Note: This feature is available in Web Workers.

\n

The hostname property of the URL interface is a string containing either the domain name or IP address of the URL. If the URL does not have a hostname, this property contains an empty string, \"\". IPv4 and IPv6 addresses are normalized, such as stripping leading zeros, and domain names are converted to IDN.\n

This property can be set to change the hostname of the URL. If the URL's scheme is not hierarchical (which the URL standard calls \"special schemes\"), then it has no concept of a host and setting this property has no effect." }, "url.href": { "url": "$MDN_URL$/web/api/url/href", @@ -413,7 +413,7 @@ "lowDate": "2016-09-20", "highDate": "2019-03-20" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The pathname property of the URL interface represents a location in a hierarchical structure. It is a string constructed from a list of path segments, each of which is prefixed by a / character.\n

HTTPS, HTTP, or other URLs with hierarchical schemes (which the URL standard calls \"special schemes\") always have at least one (invisible) path segment: the empty string.\nThe pathname value for such URLs will therefore always have at least one / character.\n

For non-hierarchical schemes, if the URL has no path segments, the value of its pathname property will be the empty string." + "doc": "

Note: This feature is available in Web Workers.

\n

The pathname property of the URL interface represents a location in a hierarchical structure. It is a string constructed from a list of path segments, each of which is prefixed by a / character.\n

HTTPS, HTTP, or other URLs with hierarchical schemes (which the URL standard calls \"special schemes\") always have at least one (invisible) path segment: the empty string.\nThe pathname value for such URLs will therefore always have at least one / character.\n

For non-hierarchical schemes, the pathname is known as an opaque path (meaning, the URL parser does not try to split it into a list of segments). In this case, an empty path results in the pathname property being the empty string. Trailing spaces in opaque paths are stripped during initial parsing if the hash and search are both empty; otherwise, they are percent-encoded as %20 even when hash and search are later set to empty strings.\n

\n

Note:\nPercent-encoding trailing spaces in opaque paths is not widely implemented. Some browsers implement the old behavior of stripping trailing spaces from pathname whenever the hash and search properties are both empty strings. In these browsers, setting hash or search may change the pathname as well. In even older browsers, the trailing space remains after removing hash and search, causing serialization and parsing to not round-trip.\n

" }, "url.port": { "url": "$MDN_URL$/web/api/url/port", @@ -485,7 +485,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The revokeObjectURL() static method of the URL interface\nreleases an existing object URL which was previously created by calling\nURL.createObjectURL().\n

Call this method when you've finished\nusing an object URL to let the browser know not to keep the reference to the file any\nlonger.\n

\n

Note:\nThis method is not available in Service Workers, due to\nissues with the Blob interface's life cycle and the potential for leaks.\n

", + "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The revokeObjectURL() static method of the URL interface\nreleases an existing object URL which was previously created by calling\nURL.createObjectURL().\n

For more information, see blob URLs.\n

Call this method when you've finished\nusing an object URL to let the browser know not to keep the reference to the file any\nlonger.\n

\n

Note:\nThis method is not available in Service Workers, due to\nissues with the Blob interface's life cycle and the potential for leaks.\n

", "parameters": { "objectURL": "A string representing an object URL that was previously created by\ncalling createObjectURL()." }, @@ -647,236 +647,315 @@ "urlpattern": { "url": "$MDN_URL$/web/api/urlpattern", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The URLPattern interface of the URL Pattern API matches URLs or parts of URLs against a pattern. The pattern can contain capturing groups that extract parts of the matched URL.\n

More information about the syntax of patterns can be found on the API overview\npage: URL Pattern API." + "doc": "

Note: This feature is available in Web Workers.

\n

The URLPattern interface of the URL Pattern API matches URLs or parts of URLs against a pattern. The pattern can contain capturing groups that extract parts of the matched URL.\n

More information about the syntax of patterns can be found on the API overview\npage: URL Pattern API." }, "urlpattern.exec": { "url": "$MDN_URL$/web/api/urlpattern/exec", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The exec() method of the URLPattern interface takes a URL or\nobject of URL parts, and returns either an object containing the results of\nmatching the URL to the pattern, or null if the URL does not match the\npattern.", + "doc": "

Note: This feature is available in Web Workers.

\n

The exec() method of the URLPattern interface takes a URL or object of URL parts, and returns either an object containing the results of matching the URL to the pattern, or null if the URL does not match the pattern.", "parameters": { - "input": "The URL or URL parts to match against. This can either be a\nstring, or an object providing the individual URL parts.\nThe object members can be any of protocol, username, password,\nhostname, port, pathname, search, hash, or baseURL. Omitted\nparts in the object will be treated as empty strings. If the input cannot be\nparsed, or a relative URL without a base is provided, the method will return\nnull.", - "baseURL": "A string representing the base URL to use in cases where\ninput is a relative URL. If not specified, it defaults to undefined. If\nthis parameter cannot be parsed, the method will return null." + "input": "An object providing the individual URL parts.\nThe object members can be any of protocol, username, password, hostname, port, pathname, search, hash, or baseURL.", + "url": "A string defining an absolute or relative URL.\nIf a relative URL, then baseURL must also be provided and together they must resolve to an absolute URL.\nIf the input cannot be parsed, or a relative URL without a base URL is provided, the method will return false.", + "baseURL": "A string representing the base URL to use in cases where url is a relative URL.\nIf not specified, it defaults to undefined.\nIf provided but the base URL cannot be parsed, the method will return false." }, - "returns": "An object with an inputs key containing the array of arguments\npassed into the function, and keys for each of the URL parts containing the\nmatched input, and matched groups for that part." + "returns": "An object that defines the matching elements and groups, or null if the passed inputs do not match the pattern.\n

The object has the following properties:\n

\n
inputs
\n
\n

An array containing the inputs passed to the exec() function.\nThis will either contain a passed input object, an absolute url string, or a relative url and a baseURL.\n

\n
protocol, username, password, hostname, port, pathname, search, and hash
\n
\n

Named properties for each URL-part.\nEach property contains an object with the following properties:\n

\n
input
\n
\n

The part of the input corresponding to the current URL-part property (which must have matched the pattern).\nThis might be the empty string (\"\").\n

\n
groups
\n
\n

An object with properties for each match group in the URL part (if any), and the corresponding matched values in the inputs.\nThe group properties are numbered from 0 for unnamed match groups (such as the wildcard).\nFor named match groups, the property name is the group name.\n

\n
\n
\n
", + "throws": { + "TypeError": "Indicates that a baseURL is provided when an input object is passed (it should only be passed with the url string)." + } }, "urlpattern.hash": { "url": "$MDN_URL$/web/api/urlpattern/hash", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The hash read-only property of the URLPattern interface is a\nstring containing the pattern used to match the fragment part\nof a URL. This value may differ from the input to the constructor due to\nnormalization." + "doc": "

Note: This feature is available in Web Workers.

\n

The hash read-only property of the URLPattern interface is a string containing the pattern used to match the fragment part of a URL.\n

This is the normalized value of the hash pattern passed to the constructor, an inherited value from a baseURL passed to the constructor, or the default value (\"*\"), which matches any hash." + }, + "urlpattern.hasregexpgroups": { + "url": "$MDN_URL$/web/api/urlpattern/hasregexpgroups", + "status": [ + "StandardTrack" + ], + "compatibility": { + "Chrome": "122", + "ChromeAndroid": "122", + "Edge": "122", + "Firefox": "142", + "FirefoxAndroid": "142", + "Opera": "108", + "Safari": "26", + "SafariIOS": "26", + "Deno": "1.46" + }, + "baseline": { + "level": "LOW", + "lowDate": "2025-09-15" + }, + "doc": "

Note: This feature is available in Web Workers.

\n

The hasRegExpGroups read-only property of the URLPattern interface is a boolean indicating whether or not any of the URLPattern components contain regular expression capturing groups.\n

You can use the hasRegExpGroups property to check if a URLPattern object is usable with certain web platform APIs which do not allow regular expression capturing groups. For example:\n

    \n
  • The match directive in the Use-As-Dictionary HTTP header prohibits regular expression capturing groups, as well as
  • \n
  • the urlPattern condition when adding static routes using the InstallEvent.addRoutes() method.
  • \n
" }, "urlpattern.hostname": { "url": "$MDN_URL$/web/api/urlpattern/hostname", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The hostname read-only property of the URLPattern interface is a\nstring containing the pattern used to match the hostname part\nof a URL. This value may differ from the input to the constructor due to\nnormalization." + "doc": "

Note: This feature is available in Web Workers.

\n

The hostname read-only property of the URLPattern interface is a string containing the pattern used to match the hostname part of a URL.\n

This is the normalized value of the hostname pattern passed to the constructor, an inherited value from a baseURL passed to the constructor, or the default value (\"*\"), which matches any hostname." }, "urlpattern.password": { "url": "$MDN_URL$/web/api/urlpattern/password", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The password read-only property of the URLPattern interface is a\nstring containing the pattern used to match the password part\nof a URL. This value may differ from the input to the constructor due to\nnormalization." + "doc": "

Note: This feature is available in Web Workers.

\n

The password read-only property of the URLPattern interface is a string containing the pattern used to match the password part of a URL.\n

This is the normalized value of the password pattern passed to the constructor or the default value (\"*\"), which matches any password." }, "urlpattern.pathname": { "url": "$MDN_URL$/web/api/urlpattern/pathname", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The pathname read-only property of the URLPattern interface is a\nstring containing the pattern used to match the pathname part\nof a URL. This value may differ from the input to the constructor due to\nnormalization." + "doc": "

Note: This feature is available in Web Workers.

\n

The pathname read-only property of the URLPattern interface is a string containing the pattern used to match the pathname part of a URL.\n

This is the normalized value of the pathname pattern passed to the constructor, an inherited value from a baseURL passed to the constructor, or the default value (\"*\"), which matches any path." }, "urlpattern.port": { "url": "$MDN_URL$/web/api/urlpattern/port", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The port read-only property of the URLPattern interface is a\nstring containing the pattern used to match the port part of a\nURL. This value may differ from the input to the constructor due to\nnormalization." + "doc": "

Note: This feature is available in Web Workers.

\n

The port read-only property of the URLPattern interface is a string containing the pattern used to match the port part of a URL.\n

This is the normalized value of the port pattern passed to the constructor, or an inherited value from a baseURL passed to the constructor, or the default value (\"*\"), which matches any port.\n

Note that it may also be set implicitly to the empty string (\"\") if the pattern is specified using an url or baseURL string and the port is not explicitly set.\nThis empty string matches against URLs that use the default port (443)." }, "urlpattern.protocol": { "url": "$MDN_URL$/web/api/urlpattern/protocol", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The protocol read-only property of the URLPattern interface is a\nstring containing the pattern used to match the protocol part\nof a URL. This value may differ from the input to the constructor due to\nnormalization." + "doc": "

Note: This feature is available in Web Workers.

\n

The protocol read-only property of the URLPattern interface is a string containing the pattern used to match the protocol part of a URL.\n

This is the normalized value of the protocol pattern passed to the constructor, an inherited value from a baseURL passed to the constructor, or the default value (\"*\"), which matches any protocol." }, "urlpattern.search": { "url": "$MDN_URL$/web/api/urlpattern/search", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The search read-only property of the URLPattern interface is a\nstring containing the pattern used to match the search part of\na URL. This value may differ from the input to the constructor due to\nnormalization." + "doc": "

Note: This feature is available in Web Workers.

\n

The search read-only property of the URLPattern interface is a string containing the pattern used to match the search part of a URL.\n

This is the normalized value of the search pattern passed to the constructor, an inherited value from a baseURL passed to the constructor, or the default value (\"*\"), which matches any search part." }, "urlpattern.test": { "url": "$MDN_URL$/web/api/urlpattern/test", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The test() method of the URLPattern interface takes a URL or\nobject of URL parts, and returns a boolean indicating if the given input matches\nthe current pattern.", + "doc": "

Note: This feature is available in Web Workers.

\n

The test() method of the URLPattern interface takes a URL string or object of URL parts, and returns a boolean indicating if the given input matches the current pattern.", "parameters": { - "input": "The URL or URL parts to match against. This can either be a\nstring, or an object providing the individual URL parts.\nThe object members can be any of protocol, username, password,\nhostname, port, pathname, search, hash, or baseURL. Omitted\nparts in the object will be treated as empty strings. If the input cannot be\nparsed, or a relative URL without a base is provided, the method will return\nnull.", - "baseURL": "A string representing the base URL to use in cases where\ninput is a relative URL. If not specified, it defaults to undefined. If\nthis parameter cannot be parsed, the method will return false." + "input": "An object providing the individual URL parts.\nThe object members can be any of protocol, username, password, hostname, port, pathname, search, hash, or baseURL.", + "url": "A string defining an absolute or relative URL.\nIf a relative URL, then baseURL must also be provided and together they must resolve to an absolute URL.\nIf the input cannot be parsed, or a relative URL without a base URL is provided, the method will return false.", + "baseURL": "A string representing the base URL to use in cases where url is a relative URL.\nIf not specified, it defaults to undefined.\nIf provided but the base URL cannot be parsed, the method will return false." }, - "returns": "A boolean." + "returns": "A boolean.", + "throws": { + "TypeError": "Indicates that a baseURL is provided when an input object is passed (it should only be passed with the url string)." + } }, "urlpattern.urlpattern": { "url": "$MDN_URL$/web/api/urlpattern/urlpattern", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The URLPattern() constructor returns a new URLPattern\nobject representing the url pattern defined by the parameters.", + "doc": "

Note: This feature is available in Web Workers.

\n

The URLPattern() constructor returns a new URLPattern object representing the URLs that will be matched by this pattern.", "parameters": { - "input": "The input pattern that will be used for matching. This can either be a\nstring, or an object providing patterns for each URL part\nindividually. The object members can be any of:\n

    \n
  • protocol
  • \n
  • username
  • \n
  • password
  • \n
  • hostname
  • \n
  • port
  • \n
  • pathname
  • \n
  • search
  • \n
  • hash
  • \n
  • baseURL
  • \n
\n
\n

Note:\nOmitted parts of the object will be treated as wildcards (*).\n

", - "baseURL": "A string representing the base URL to use in cases where\ninput is a relative pattern. If not specified, it defaults to undefined.", - "options": "An object providing options for matching the given pattern. The possible object members are as follows:\n
\n
ignoreCase Optional
\n
\n

Enables case-insensitive matching if set to true. If omitted or set to false, matching will be case-sensitive.\n

\n
" + "input": "An object that has separate properties for defining the patterns used to match each part of a URL.\n

The object members can be any (or none) of:\n

\n
protocol Optional
\n
\n

A pattern that matches a URL protocol, such as http, https, or \"http{s}?\" (to match both https and http).\n

\n
username Optional
\n
\n

A pattern that matches a URL username.\n

\n
password Optional
\n
\n

A pattern that matches a URL password.\n

\n
hostname Optional
\n
\n

A pattern that matches a URL hostname.\n

\n
port Optional
\n
\n

A pattern that matches a URL port.\n

\n
pathname Optional
\n
\n

A pattern that matches a URL pathname.\n

\n
search Optional
\n
\n

A pattern that matches a URL search.\n

\n
hash Optional
\n
\n

A pattern that matches a URL hash.\n

\n
baseURL Optional
\n
\n

A string that provides an absolute URL from which undefined less-specific object properties may be inherited.\n

\n
", + "url": "A string representing URL patterns to match.\n

This is formatted as an absolute or relative URL but may contain markup to indicate matching patterns and escape sequences.\nIf formatted as a relative URL, then baseURL must also be provided.", + "baseURL": "A string that provides an absolute URL from which undefined less-specific URL-parts may be inherited\nThis must be set when url is a relative URL, and must not be set if input is used (input.baseURL may be used to provide inherited values for a input, but, unlike this property, is never required).", + "options": "An object providing options for matching the given pattern.\nThe allowed object members are:\n

\n
ignoreCase Optional
\n
\n

Enables case-insensitive matching if set to true.\nIf omitted or set to false, matching will be case-sensitive.\n

\n
" }, "throws": { - "TypeError": "Indicates one of the following:\n
    \n
  • The given input or baseURL is not valid or syntactically correct.
  • \n
  • The given input is relative, but no baseURL is provided to form a complete absolute URL.
  • \n
  • A baseURL is provided, and input is an absolute pattern or a structured object.
  • \n
" + "TypeError": "Indicates one of the following:\n
    \n
  • The given input, url or baseURL is not valid or syntactically correct.
  • \n
  • The given url is relative, but no baseURL is provided to form a complete absolute URL.
  • \n
  • A baseURL is provided, and input is an absolute pattern or a structured object.
  • \n
" } }, "urlpattern.username": { "url": "$MDN_URL$/web/api/urlpattern/username", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "95", "ChromeAndroid": "95", "Edge": "95", + "Firefox": "142", + "FirefoxAndroid": "142", "Opera": "81", + "Safari": "26", + "SafariIOS": "26", "Deno": "1.15" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-09-15" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The username read-only property of the URLPattern interface is a\nstring containing the pattern used to match the username part\nof a URL. This value may differ from the input to the constructor due to\nnormalization." + "doc": "

Note: This feature is available in Web Workers.

\n

The username read-only property of the URLPattern interface is a string containing the pattern used to match the username part of a URL.\n

This is the normalized value of the username pattern passed to the constructor, or the default value (\"*\"), which matches any username." }, "urlsearchparams": { "url": "$MDN_URL$/web/api/urlsearchparams", @@ -1198,7 +1277,7 @@ "lowDate": "2018-04-30", "highDate": "2020-10-30" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The URLSearchParams.sort() method sorts all key/value\npairs contained in this object in place and returns undefined. The sort\norder is according to unicode code points of the keys. This method uses a stable sorting\nalgorithm (i.e., the relative order between key/value pairs with equal keys will be\npreserved).", + "doc": "

Note: This feature is available in Web Workers.

\n

The URLSearchParams.sort() method sorts all key/value\npairs contained in this object in place and returns undefined. Key/value pairs are sorted by the values of the UTF-16 code units of the keys. This method uses a stable sorting\nalgorithm (i.e., the relative order between key/value pairs with equal keys will be\npreserved).", "returns": "None (undefined)." }, "urlsearchparams.tostring": { @@ -1331,7 +1410,7 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The requestDevice() method of the USB\ninterface returns a Promise that resolves with an instance of\nUSBDevice if the specified device is found. Calling this function\ntriggers the user agent's pairing flow.", "parameters": { - "filters": "An array of filter objects for possible devices you would like to pair. Each filter\nobject can have the following properties:\n

    \n
  • vendorId
  • \n
  • productId
  • \n
  • classCode
  • \n
  • subclassCode
  • \n
  • protocolCode
  • \n
  • serialNumber
  • \n
" + "options": "An object that sets options for selecting an appropriate device.\nThe available options are:\n
\n
filters
\n
\n

An array of filter objects for possible devices you would like to pair. Each filter\nobject can have the following properties:\n

    \n
  • vendorId
  • \n
  • productId
  • \n
  • classCode
  • \n
  • subclassCode
  • \n
  • protocolCode
  • \n
  • serialNumber
  • \n
\n
\n
" }, "returns": "A Promise that resolves with an instance of USBDevice." }, @@ -2787,7 +2866,7 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Dedicated Web Workers.

\n

The configure() method of the VideoDecoder interface enqueues a control message to configure the video decoder for decoding chunks.", "parameters": { - "config": "An object containing the following members:\n

\n
codec
\n
\n

A string containing a valid codec string. See \"codecs\" parameter for details on codec string construction.\n

\n
description Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView containing a sequence of codec specific bytes, commonly known as extradata.\n

\n
codedWidth Optional
\n
\n

An integer representing the width of the VideoFrame in pixels, including any non-visible padding, before any ratio adjustments.\n

\n
codedHeight Optional
\n
\n

An integer representing the height of the VideoFrame in pixels, including any non-visible padding, before any ratio adjustments.\n

\n
displayAspectWidth Optional
\n
\n

An integer representing the horizontal dimension of the VideoFrame in pixels when displayed.\n

\n
displayAspectHeight Optional
\n
\n

An integer representing the vertical dimension of the VideoFrame in pixels when displayed.\n

\n
colorSpace Optional
\n
\n

An object representing a VideoColorSpace, containing the following members:\n

\n
primaries
\n
\n

A string representing the color gamut of the video sample. One of:\n

    \n
  • \"bt709\"
  • \n
  • \"bt470bg\"
  • \n
  • \"smpte170m\"
  • \n
\n
\n
transfer
\n
\n

A string representing transfer characteristics. One of:\n

    \n
  • \"bt709\"
  • \n
  • \"smpte170m\"
  • \n
  • \"iec61966-2-1\"
  • \n
\n
\n
matrix
\n
\n

A string representing a matrix coefficient. One of:\n

    \n
  • \"rgb\"
  • \n
  • \"bt709\"
  • \n
  • \"bt470bg\"
  • \n
  • \"smpte170m\"
  • \n
\n
\n
\n
\n
hardwareAcceleration Optional
\n
\n

A hint as to the hardware acceleration method to use. One of:\n

    \n
  • \"no-preference\"
  • \n
  • \"prefer-hardware\"
  • \n
  • \"prefer-software\"
  • \n
\n
\n
optimizeForLatency Optional
\n
\n

A boolean. If true this is a hint that the selected decoder should be optimized to minimize the number of EncodedVideoChunk objects that have to be decoded before a VideoFrame is output.\n

\n
" + "config": "An object containing the following members:\n
\n
codec
\n
\n

A string containing a valid codec string. See \"codecs\" parameter for details on codec string construction.\n

\n
description Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView containing a sequence of codec specific bytes, commonly known as extradata.\n

\n
codedWidth Optional
\n
\n

An integer representing the width of the VideoFrame in pixels, including any non-visible padding, before any ratio adjustments.\n

\n
codedHeight Optional
\n
\n

An integer representing the height of the VideoFrame in pixels, including any non-visible padding, before any ratio adjustments.\n

\n
displayAspectWidth Optional
\n
\n

An integer representing the horizontal dimension of the VideoFrame in pixels when displayed.\n

\n
displayAspectHeight Optional
\n
\n

An integer representing the vertical dimension of the VideoFrame in pixels when displayed.\n

\n
colorSpace Optional
\n
\n

An object representing a VideoColorSpace, containing the following members:\n

\n
primaries
\n
\n

A string representing the color gamut of the video sample. One of:\n

    \n
  • \"bt709\"
  • \n
  • \"bt470bg\"
  • \n
  • \"smpte170m\"
  • \n
\n
\n
transfer
\n
\n

A string representing transfer characteristics. One of:\n

    \n
  • \"bt709\"
  • \n
  • \"smpte170m\"
  • \n
  • \"iec61966-2-1\"
  • \n
\n
\n
matrix
\n
\n

A string representing a matrix coefficient. One of:\n

    \n
  • \"rgb\"
  • \n
  • \"bt709\"
  • \n
  • \"bt470bg\"
  • \n
  • \"smpte170m\"
  • \n
\n
\n
\n
\n
hardwareAcceleration Optional
\n
\n

A hint as to the hardware acceleration method to use. One of:\n

    \n
  • \"no-preference\"
  • \n
  • \"prefer-hardware\"
  • \n
  • \"prefer-software\"
  • \n
\n
\n
optimizeForLatency Optional
\n
\n

A boolean. If true this is a hint that the selected decoder should be optimized to minimize the number of EncodedVideoChunk objects that have to be decoded before a VideoFrame is output.\n

\n
flip Optional
\n
\n

A boolean. If true, horizontal mirroring is applied. Defaults to false.\n

\n
rotation Optional
\n
\n

An integer representing the rotation (0, 90, 180, or 270) in degrees clockwise. Defaults to 0. Arbitrary numbers (including negatives) are rounded to the next quarter turn.\n

\n
" }, "returns": "None (undefined).", "throws": { @@ -3010,7 +3089,7 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Dedicated Web Workers.

\n

The configure() method of the VideoEncoder interface changes the state of the encoder to \"configured\" and asynchronously prepares the encoder to accept VideoEncoders for encoding with the specified parameters. If the encoder doesn't support the specified parameters or can't be initialized for other reasons an error will be reported via the error callback provided to the VideoEncoder constructor.\n

If the VideoEncoder has been previously configured, the new configuration will not be applied until all previous tasks have completed.", "parameters": { - "config": "A dictionary object containing the following members:\n

\n
codec
\n
\n

A string containing a valid codec string. See \"codecs\" parameter for details on codec string construction.\n

\n
width Optional
\n
\n

An integer representing the width of each output EncodedVideoChunk in pixels, before any ratio adjustments.\n

\n
height Optional
\n
\n

An integer representing the height of each output EncodedVideoChunk in pixels, before any ratio adjustments.\n

\n
displayWidth Optional
\n
\n

An integer representing the intended display width of each output EncodedVideoChunk in pixels when displayed.\n

\n
displayHeight Optional
\n
\n

An integer representing the vertical dimension of each output EncodedVideoChunk in pixels when displayed.\n

\n
hardwareAcceleration
\n
\n

A hint that configures the hardware acceleration method of this codec. One of:\n

    \n
  • \"no-preference\"
  • \n
  • \"prefer-hardware\"
  • \n
  • \"prefer-software\"
  • \n
\n
\n
bitrate
\n
\n

An integer containing the average bitrate of the encoded video in units of bits per second.\n

\n
framerate
\n
\n

An integer containing the expected frame rate in frames per second.\n

\n
alpha
\n
\n

A string indicating whether the alpha component of the VideoFrame inputs should be kept or discarded prior to encoding. One of:\n

    \n
  • \"discard\" (default)
  • \n
  • \"keep\"
  • \n
\n
\n
scalabilityMode
\n
\n

A string containing an encoding scalability mode identifier as defined in WebRTC.\n

\n
bitrateMode Optional
\n
\n

A string containing a bitrate mode. One of:\n

\n
\"constant\"
\n
\n

The encoder will target constant bitrate.\n

\n
\"variable\" (default)
\n
\n

The encoder will target a variable bitrate, allowing more space to be used for complex signals and less space for less complex signals.\n

\n
\"quantizer\"
\n
\n

The encoder will disregard the bitrate option and instead it will use codec-specific quantizer values specified for each frame in the options parameter to VideoEncoder.encode().\n

\n
\n
\n
latencyMode Optional
\n
\n

A string containing a value that configures the latency behavior of this codec. One of:\n

\n
\"quality\" (default)
\n
\n

The encoder should optimize for encoding quality.\n

\n
\"realtime\"
\n
\n

The encoder should optimize for low latency and may even drop frames to honor framerate.\n

\n
\n
\n
" + "config": "A dictionary object containing the following members:\n
\n
codec
\n
\n

A string containing a valid codec string. See \"codecs\" parameter for details on codec string construction.\n

\n
width Optional
\n
\n

An integer representing the width of each output EncodedVideoChunk in pixels, before any ratio adjustments.\n

\n
height Optional
\n
\n

An integer representing the height of each output EncodedVideoChunk in pixels, before any ratio adjustments.\n

\n
displayWidth Optional
\n
\n

An integer representing the intended display width of each output EncodedVideoChunk in pixels when displayed.\n

\n
displayHeight Optional
\n
\n

An integer representing the vertical dimension of each output EncodedVideoChunk in pixels when displayed.\n

\n
hardwareAcceleration
\n
\n

A hint that configures the hardware acceleration method of this codec. One of:\n

    \n
  • \"no-preference\"
  • \n
  • \"prefer-hardware\"
  • \n
  • \"prefer-software\"
  • \n
\n
\n
bitrate
\n
\n

An integer containing the average bitrate of the encoded video in units of bits per second.\n

\n
framerate
\n
\n

An integer containing the expected frame rate in frames per second.\n

\n
alpha
\n
\n

A string indicating whether the alpha component of the VideoFrame inputs should be kept or discarded prior to encoding. One of:\n

    \n
  • \"discard\" (default)
  • \n
  • \"keep\"
  • \n
\n
\n
scalabilityMode
\n
\n

A string containing an encoding scalability mode identifier as defined in WebRTC.\n

\n
bitrateMode Optional
\n
\n

A string containing a bitrate mode. One of:\n

\n
\"constant\"
\n
\n

The encoder will target constant bitrate.\n

\n
\"variable\" (default)
\n
\n

The encoder will target a variable bitrate, allowing more space to be used for complex signals and less space for less complex signals.\n

\n
\"quantizer\"
\n
\n

The encoder will disregard the bitrate option and instead it will use codec-specific quantizer values specified for each frame in the options parameter to VideoEncoder.encode().\n

\n
\n
\n
latencyMode Optional
\n
\n

A string containing a value that configures the latency behavior of this codec. One of:\n

\n
\"quality\" (default)
\n
\n

The encoder should optimize for encoding quality.\n

\n
\"realtime\"
\n
\n

The encoder should optimize for low latency and may even drop frames to honor framerate.\n

\n
\n
\n
" }, "returns": "None (undefined).", "throws": { @@ -3044,7 +3123,7 @@ "returns": "None (undefined).", "throws": { "InvalidStateError DOMException": "Thrown if the state is not \"configured\".", - "DataError DOMException": "Thrown if the chunk cannot be decoded due to relying on other frames for decoding." + "DataError DOMException": "Thrown if the given frame object's rotation and flip do not match the rotation and flip of the first VideoFrame passed to encode() (the \"active orientation\")." } }, "videoencoder.encodequeuesize": { @@ -3176,7 +3255,7 @@ }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Dedicated Web Workers.

\n

The VideoEncoder() constructor creates a new VideoEncoder object with the provided options.output callback assigned as the output callback, the provided options.error callback as the error callback, and sets the VideoEncoder.state to \"unconfigured\".", "parameters": { - "options": "An object containing two required callbacks.\n

\n
output
\n
\n

A callback which takes an EncodedVideoChunk object as the first argument, and an optional metadata object as the second. The metadata object has three members:\n

\n
decoderConfig Optional
\n
\n

An object containing:\n

\n
codec
\n
\n

A string containing a valid codec string.\n

\n
description Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView containing a sequence of codec-specific bytes, commonly known as \"extradata\".\n

\n
codedWidth Optional
\n
\n

An integer representing the width of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n

\n
codedHeight Optional
\n
\n

An integer representing the height of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n

\n
displayAspectWidth Optional
\n
\n

An integer representing the horizontal dimension of the VideoFrame's aspect ratio when displayed.\n

\n
displayAspectHeight Optional
\n
\n

An integer representing the vertical dimension of the VideoFrame's aspect ratio when displayed.\n

\n
colorSpace Optional
\n
\n

An object you pass to the VideoColorSpace constructor as the init argument, configuring the VideoFrame.colorSpace for VideoFrames associated with this decoderConfig object. If colorSpace exists, the provided values will override any in-band values from the bitstream.\n

\n
hardwareAcceleration Optional
\n
\n

A string that configures hardware acceleration for this codec. Defaults to \"no-preference\". Options are:\n

    \n
  • \"no-preference\"
  • \n
  • \"prefer-hardware\"
  • \n
  • \"prefer-software\"
  • \n
\n
\n
optimizeForLatency Optional
\n
\n

A boolean representing whether the selected decoder should be configured to minimize the number of EncodedVideoChunks that have to be decoded before a VideoFrame is output.\n

\n
\n
\n
svc Optional
\n
\n

An optional object with only one member: temporalLayerId, which is a number that identifies the temporal layer for the associated EncodedVideoChunk.\n

\n
alphaSideData Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView\nthat contains the EncodedVideoChunk's extra alpha channel data.\n

\n
\n
\n
error
\n
\n

A callback which takes an Error object as its only argument.\n

\n
" + "options": "An object containing two required callbacks.\n
\n
output
\n
\n

A callback which takes an EncodedVideoChunk object as the first argument, and an optional metadata object as the second. The metadata object has three members:\n

\n
decoderConfig Optional
\n
\n

An object containing:\n

\n
codec
\n
\n

A string containing a valid codec string.\n

\n
description Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView containing a sequence of codec-specific bytes, commonly known as \"extradata\".\n

\n
codedWidth Optional
\n
\n

An integer representing the width of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n

\n
codedHeight Optional
\n
\n

An integer representing the height of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n

\n
displayAspectWidth Optional
\n
\n

An integer representing the horizontal dimension of the VideoFrame's aspect ratio when displayed.\n

\n
displayAspectHeight Optional
\n
\n

An integer representing the vertical dimension of the VideoFrame's aspect ratio when displayed.\n

\n
colorSpace Optional
\n
\n

An object you pass to the VideoColorSpace constructor as the init argument, configuring the VideoFrame.colorSpace for VideoFrames associated with this decoderConfig object. If colorSpace exists, the provided values will override any in-band values from the bitstream.\n

\n
hardwareAcceleration Optional
\n
\n

A string that configures hardware acceleration for this codec. Defaults to \"no-preference\". Options are:\n

    \n
  • \"no-preference\"
  • \n
  • \"prefer-hardware\"
  • \n
  • \"prefer-software\"
  • \n
\n
\n
optimizeForLatency Optional
\n
\n

A boolean representing whether the selected decoder should be configured to minimize the number of EncodedVideoChunks that have to be decoded before a VideoFrame is output.\n

\n
\n
\n
svc Optional
\n
\n

An optional object with only one member: temporalLayerId, which is a number that identifies the temporal layer for the associated EncodedVideoChunk.\n

\n
alphaSideData Optional
\n
\n

An ArrayBuffer, a TypedArray, or a DataView\nthat contains the EncodedVideoChunk's extra alpha channel data.\n

\n
\n
\n
error
\n
\n

A callback which takes an Error object as its only argument.\n

\n
" } }, "videoframe": { @@ -3445,6 +3524,23 @@ }, "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

The duration property of the VideoFrame interface returns an integer indicating the duration of the video in microseconds." }, + "videoframe.flip": { + "url": "$MDN_URL$/web/api/videoframe/flip", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The flip property of the VideoFrame interface returns a boolean that indicates whether the VideoFrame is horizontally mirrored." + }, "videoframe.format": { "url": "$MDN_URL$/web/api/videoframe/format", "status": [ @@ -3466,6 +3562,23 @@ }, "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

The format property of the VideoFrame interface returns the pixel format of the VideoFrame." }, + "videoframe.rotation": { + "url": "$MDN_URL$/web/api/videoframe/rotation", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The rotation property of the VideoFrame interface returns the rotation of the video frame." + }, "videoframe.timestamp": { "url": "$MDN_URL$/web/api/videoframe/timestamp", "status": [ @@ -3509,7 +3622,7 @@ "doc": "

Note: This feature is available in Dedicated Web Workers.

\n

The VideoFrame() constructor creates a new VideoFrame object representing a frame of a video.", "parameters": { "image": "An image containing the image data for the new VideoFrame. It can be one of the following objects:\nan SVGImageElement,\nan HTMLVideoElement,\nan HTMLCanvasElement,\nan ImageBitmap,\nan OffscreenCanvas,\nor another VideoFrame.", - "options": "An object containing the following:\n

\n
duration Optional
\n
\n

An integer representing the duration of the frame in microseconds.\n

\n
timestamp
\n
\n

An integer representing the timestamp of the frame in microseconds.\n

\n
alpha Optional
\n
\n

A string, describing how the user agent should behave when dealing with alpha channels. The default value is \"keep\".\n

    \n
  • \"keep\": Indicates that the user agent should preserve alpha channel data.
  • \n
  • \"discard\": Indicates that the user agent should ignore or remove alpha channel data.
  • \n
\n
\n
visibleRect Optional
\n
\n

An object representing the visible rectangle of the VideoFrame, containing the following:\n

\n
x
\n
\n

The x-coordinate.\n

\n
y
\n
\n

The y-coordinate.\n

\n
width
\n
\n

The width of the frame.\n

\n
height
\n
\n

The height of the frame.\n

\n
\n
\n
displayWidth Optional
\n
\n

The width of the VideoFrame when displayed after applying aspect-ratio adjustments.\n

\n
displayHeight Optional
\n
\n

The height of the VideoFrame when displayed after applying aspect-ratio adjustments.\n

\n

An object containing the following:\n

\n
format
\n
\n

A string representing the video pixel format. One of the following strings, which are fully described on the page for the format property:\n

    \n
  • \"I420\"
  • \n
  • \"I420A\"
  • \n
  • \"I422\"
  • \n
  • \"I444\"
  • \n
  • \"NV12\"
  • \n
  • \"RGBA\"
  • \n
  • \"RGBX\"
  • \n
  • \"BGRA\"
  • \n
  • \"BGRX\"
  • \n
\n
\n
codedWidth
\n
\n

Width of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n

\n
codedHeight
\n
\n

Height of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n

\n
timestamp
\n
\n

An integer representing the timestamp of the frame in microseconds.\n

\n
duration Optional
\n
\n

An integer representing the duration of the frame in microseconds.\n

\n
layout Optional
\n
\n

A list containing the following values for each plane in the VideoFrame:\n

\n
offset
\n
\n

An integer representing the offset in bytes where the given plane begins.\n

\n
stride
\n
\n

An integer representing the number of bytes, including padding, used by each row of the plane.\nPlanes may not overlap. If no layout is specified, the planes will be tightly packed.\n

\n
\n
\n
visibleRect Optional
\n
\n

An object representing the visible rectangle of the VideoFrame, containing the following:\n

\n
x
\n
\n

The x-coordinate.\n

\n
y
\n
\n

The y-coordinate.\n

\n
width
\n
\n

The width of the frame.\n

\n
height
\n
\n

The height of the frame.\n

\n
\n
\n
displayWidth Optional
\n
\n

The width of the VideoFrame when displayed after applying aspect ratio adjustments.\n

\n
displayHeight Optional
\n
\n

The height of the VideoFrame when displayed after applying aspect ratio adjustments.\n

\n
colorSpace
\n
\n

An object representing the color space of the VideoFrame, containing the following:\n

\n
primaries
\n
\n

A string representing the video color primaries, described on the page for the VideoColorSpace.primaries property.\n

\n
transfer
\n
\n

A string representing the video color transfer function, described on the page for the VideoColorSpace.transfer property.\n

\n
matrix
\n
\n

A string representing the video color matrix, described on the page for the VideoColorSpace.matrix property.\n

\n
fullRange
\n
\n

A Boolean. If true, indicates that full-range color values are used.\n

\n
\n
\n
transfer
\n
\n

An array of ArrayBuffers that VideoFrame will detach and take ownership of. If the array contains the ArrayBuffer backing data, VideoFrame will use that buffer directly instead of copying from it.\n

\n
", + "options": "An object containing the following:\n
\n
duration Optional
\n
\n

An integer representing the duration of the frame in microseconds.\n

\n
timestamp
\n
\n

An integer representing the timestamp of the frame in microseconds.\n

\n
alpha Optional
\n
\n

A string, describing how the user agent should behave when dealing with alpha channels. The default value is \"keep\".\n

    \n
  • \"keep\": Indicates that the user agent should preserve alpha channel data.
  • \n
  • \"discard\": Indicates that the user agent should ignore or remove alpha channel data.
  • \n
\n
\n
visibleRect Optional
\n
\n

An object representing the visible rectangle of the VideoFrame, containing the following:\n

\n
x
\n
\n

The x-coordinate.\n

\n
y
\n
\n

The y-coordinate.\n

\n
width
\n
\n

The width of the frame.\n

\n
height
\n
\n

The height of the frame.\n

\n
\n
\n
displayWidth Optional
\n
\n

The width of the VideoFrame when displayed after applying aspect-ratio adjustments.\n

\n
displayHeight Optional
\n
\n

The height of the VideoFrame when displayed after applying aspect-ratio adjustments.\n

\n
flip Optional
\n
\n

A boolean. If true, horizontal mirroring is applied. Defaults to false.\n

\n
rotation Optional
\n
\n

An integer representing the rotation (0, 90, 180, or 270) in degrees clockwise. Defaults to 0. Arbitrary numbers (including negatives) are rounded to the next quarter turn.\n

\n

An object containing the following:\n

\n
format
\n
\n

A string representing the video pixel format. One of the following strings, which are fully described on the page for the format property:\n

    \n
  • \"I420\"
  • \n
  • \"I420A\"
  • \n
  • \"I422\"
  • \n
  • \"I444\"
  • \n
  • \"NV12\"
  • \n
  • \"RGBA\"
  • \n
  • \"RGBX\"
  • \n
  • \"BGRA\"
  • \n
  • \"BGRX\"
  • \n
\n
\n
codedWidth
\n
\n

Width of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n

\n
codedHeight
\n
\n

Height of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.\n

\n
timestamp
\n
\n

An integer representing the timestamp of the frame in microseconds.\n

\n
duration Optional
\n
\n

An integer representing the duration of the frame in microseconds.\n

\n
layout Optional
\n
\n

A list containing the following values for each plane in the VideoFrame:\n

\n
offset
\n
\n

An integer representing the offset in bytes where the given plane begins.\n

\n
stride
\n
\n

An integer representing the number of bytes, including padding, used by each row of the plane.\nPlanes may not overlap. If no layout is specified, the planes will be tightly packed.\n

\n
\n
\n
visibleRect Optional
\n
\n

An object representing the visible rectangle of the VideoFrame, containing the following:\n

\n
x
\n
\n

The x-coordinate.\n

\n
y
\n
\n

The y-coordinate.\n

\n
width
\n
\n

The width of the frame.\n

\n
height
\n
\n

The height of the frame.\n

\n
\n
\n
displayWidth Optional
\n
\n

The width of the VideoFrame when displayed after applying aspect ratio adjustments.\n

\n
displayHeight Optional
\n
\n

The height of the VideoFrame when displayed after applying aspect ratio adjustments.\n

\n
colorSpace
\n
\n

An object representing the color space of the VideoFrame, containing the following:\n

\n
primaries
\n
\n

A string representing the video color primaries, described on the page for the VideoColorSpace.primaries property.\n

\n
transfer
\n
\n

A string representing the video color transfer function, described on the page for the VideoColorSpace.transfer property.\n

\n
matrix
\n
\n

A string representing the video color matrix, described on the page for the VideoColorSpace.matrix property.\n

\n
fullRange
\n
\n

A Boolean. If true, indicates that full-range color values are used.\n

\n
\n
\n
transfer
\n
\n

An array of ArrayBuffers that VideoFrame will detach and take ownership of. If the array contains the ArrayBuffer backing data, VideoFrame will use that buffer directly instead of copying from it.\n

\n
flip Optional
\n
\n

A boolean. If true, horizontal mirroring is applied. Defaults to false.\n

\n
rotation Optional
\n
\n

An integer representing the rotation (0, 90, 180, or 270) in degrees clockwise. Defaults to 0. Arbitrary numbers (including negatives) are rounded to the next quarter turn.\n

\n
", "data": "An ArrayBuffer, a TypedArray, or a DataView containing the data for the new VideoFrame." } }, @@ -3625,7 +3738,7 @@ "Safari": "8", "SafariIOS": "12.2" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VideoPlaybackQuality.totalFrameDelay read-only\nproperty returns a double containing the sum of the frame delay since the\ncreation of the associated HTMLVideoElement. The frame delay is the\ndifference between a frame's theoretical presentation time and its effective display\ntime." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VideoPlaybackQuality.totalFrameDelay read-only\nproperty returns a double containing the sum of the frame delay since the\ncreation of the associated HTMLVideoElement. The frame delay is the\ndifference between a frame's theoretical presentation time and its effective display\ntime." }, "videoplaybackquality.totalvideoframes": { "url": "$MDN_URL$/web/api/videoplaybackquality/totalvideoframes", @@ -3881,90 +3994,129 @@ }, "doc": "The read-only VideoTrackList\nproperty selectedIndex returns the index of the\ncurrently selected track, if any, or -1 otherwise." }, + "viewport": { + "url": "$MDN_URL$/web/api/viewport", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The Viewport interface of the Viewport Segments API represents the device's viewport." + }, + "viewport.segments": { + "url": "$MDN_URL$/web/api/viewport/segments", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The segments read-only property of the Viewport interface returns an array of DOMRect objects representing the position and dimensions of each viewport segment within the overall display." + }, "viewtimeline": { "url": "$MDN_URL$/web/api/viewtimeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ViewTimeline interface of the Web Animations API represents a view progress timeline (see CSS scroll-driven animations for more details).\n

Pass a ViewTimeline instance to the Animation() constructor or the animate() method to specify it as the timeline that will control the progress of the animation." + "doc": "The ViewTimeline interface of the Web Animations API represents a view progress timeline (see CSS scroll-driven animations for more details).\n

Pass a ViewTimeline instance to the Animation() constructor or the animate() method to specify it as the timeline that will control the progress of the animation." }, "viewtimeline.endoffset": { "url": "$MDN_URL$/web/api/viewtimeline/endoffset", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The endOffset read-only property of the ViewTimeline interface returns a CSSNumericValue representing the ending (100% progress) scroll position of the timeline as an offset from the start of the overflowing section of content in the scroller." + "doc": "The endOffset read-only property of the ViewTimeline interface returns a CSSNumericValue representing the ending (100% progress) scroll position of the timeline as an offset from the start of the overflowing section of content in the scroller." }, "viewtimeline.startoffset": { "url": "$MDN_URL$/web/api/viewtimeline/startoffset", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The startOffset read-only property of the ViewTimeline interface returns a CSSNumericValue representing the starting (0% progress) scroll position of the timeline as an offset from the start of the overflowing section of content in the scroller." + "doc": "The startOffset read-only property of the ViewTimeline interface returns a CSSNumericValue representing the starting (0% progress) scroll position of the timeline as an offset from the start of the overflowing section of content in the scroller." }, "viewtimeline.subject": { "url": "$MDN_URL$/web/api/viewtimeline/subject", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The subject read-only property of the ViewTimeline interface returns a reference to the subject element whose visibility within its nearest ancestor scrollable element (scroller) is driving the progress of the timeline." + "doc": "The subject read-only property of the ViewTimeline interface returns a reference to the subject element whose visibility within its nearest ancestor scrollable element (scroller) is driving the progress of the timeline." }, "viewtimeline.viewtimeline": { "url": "$MDN_URL$/web/api/viewtimeline/viewtimeline", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { "Chrome": "115", "ChromeAndroid": "115", "Edge": "115", - "Opera": "101" + "Opera": "101", + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The ViewTimeline() constructor creates a new ViewTimeline object instance.", + "doc": "The ViewTimeline() constructor creates a new ViewTimeline object instance.", "parameters": { "options": "An object that can contain the following properties:\n

\n
subject
\n
\n

A reference to an Element representing the subject element whose visibility within its nearest ancestor scrollable element (scroller) will drive the progress of the timeline.\n

\n
axis Optional
\n
\n

An enumerated value representing the scroll axis that will drive the progress of the timeline. Possible values are:\n

    \n
  • \"block\": The scrollbar on the block axis of the scroll container, which is the axis in the direction perpendicular to the flow of text within a line. For horizontal writing modes, such as standard English, this is the same as \"y\", while for vertical writing modes, it is the same as \"x\".
  • \n
  • \"inline\": The scrollbar on the inline axis of the scroll container, which is the axis in the direction parallel to the flow of text in a line. For horizontal writing modes, this is the same as \"x\", while for vertical writing modes, this is the same as \"y\".
  • \n
  • \"y\": The scrollbar on the vertical axis of the scroll container.
  • \n
  • \"x\": The scrollbar on the horizontal axis of the scroll container.
  • \n
\n

If omitted, axis defaults to \"block\".\n

\n
inset Optional
\n
\n

A value or array of values representing an adjustment to the position of the scrollport (see Scroll container for more details) in which the subject is deemed to be visible. Possible values are:\n

    \n
  • \"auto\": The default box position is used.
  • \n
  • A string: If a string is specified, it can consist of one or two values equal to auto or a CSS <length-percentage> value. To put it another way, the string should be a valid view-timeline-inset value.
  • \n
  • An array of one or two values, which can be \"auto\" or a suitable CSSNumericValue to represent a length or percentage offset (for example CSS.px() or CSS.percent(). If an array is provided, the first value represents the start inset (which affects the ViewTimeline.endOffset value) and the second value represents the end inset (which affects the ViewTimeline.startOffset value).
  • \n
\n

If the array has only one value, it is duplicated.\n

If omitted, inset defaults to auto.\n

\n
" }, @@ -3979,6 +4131,8 @@ "Chrome": "111", "ChromeAndroid": "111", "Edge": "111", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "97", "Safari": "18", "SafariIOS": "18" @@ -3997,6 +4151,8 @@ "Chrome": "111", "ChromeAndroid": "111", "Edge": "111", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "97", "Safari": "18", "SafariIOS": "18" @@ -4015,6 +4171,8 @@ "Chrome": "111", "ChromeAndroid": "111", "Edge": "111", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "97", "Safari": "18", "SafariIOS": "18" @@ -4033,6 +4191,8 @@ "Chrome": "111", "ChromeAndroid": "111", "Edge": "111", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "97", "Safari": "18", "SafariIOS": "18" @@ -4052,6 +4212,8 @@ "Chrome": "111", "ChromeAndroid": "111", "Edge": "111", + "Firefox": "144", + "FirefoxAndroid": "144", "Opera": "97", "Safari": "18", "SafariIOS": "18" @@ -4347,7 +4509,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VRDisplay interface of the WebVR API represents any VR device supported by this API. It includes generic information such as device IDs and descriptions, as well as methods for starting to present a VR scene, retrieving eye parameters and display capabilities, and other important functionality.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

An array of all connected VR Devices can be returned by invoking the Navigator.getVRDisplays() method." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRDisplay interface of the WebVR API represents any VR device supported by this API. It includes generic information such as device IDs and descriptions, as well as methods for starting to present a VR scene, retrieving eye parameters and display capabilities, and other important functionality.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

An array of all connected VR Devices can be returned by invoking the Navigator.getVRDisplays() method." }, "vrdisplay.cancelanimationframe": { "url": "$MDN_URL$/web/api/vrdisplay/cancelanimationframe", @@ -4355,7 +4517,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The cancelAnimationFrame() method of the VRDisplay interface is a special implementation of Window.cancelAnimationFrame that unregisters callbacks registered with VRDisplay.requestAnimationFrame().\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The cancelAnimationFrame() method of the VRDisplay interface is a special implementation of Window.cancelAnimationFrame that unregisters callbacks registered with VRDisplay.requestAnimationFrame().\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", "parameters": { "handle": "The handle returned by the VRDisplay.requestAnimationFrame() call that you want to unregister." }, @@ -4367,7 +4529,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The capabilities read-only property of the VRDisplay interface returns a VRDisplayCapabilities object that indicates the various capabilities of the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The capabilities read-only property of the VRDisplay interface returns a VRDisplayCapabilities object that indicates the various capabilities of the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplay.depthfar": { "url": "$MDN_URL$/web/api/vrdisplay/depthfar", @@ -4375,7 +4537,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The depthFar property of the VRDisplay interface gets and sets the z-depth defining the far plane of the eye view frustum, i.e., the furthest viewable boundary of the scene.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

Generally you should leave the value as is, but you might want to reduce it if you are trying to improve performance on slower computers." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The depthFar property of the VRDisplay interface gets and sets the z-depth defining the far plane of the eye view frustum, i.e., the furthest viewable boundary of the scene.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

Generally you should leave the value as is, but you might want to reduce it if you are trying to improve performance on slower computers." }, "vrdisplay.depthnear": { "url": "$MDN_URL$/web/api/vrdisplay/depthnear", @@ -4383,7 +4545,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The depthNear property of the VRDisplay interface gets and sets the z-depth defining the near plane of the eye view frustum, i.e., the nearest viewable boundary of the scene.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

Generally you should leave the value as is, but you might want to increase it if you are trying to improve performance on slower computers, and/or your UI makes sense with the near boundary made further away." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The depthNear property of the VRDisplay interface gets and sets the z-depth defining the near plane of the eye view frustum, i.e., the nearest viewable boundary of the scene.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

Generally you should leave the value as is, but you might want to increase it if you are trying to improve performance on slower computers, and/or your UI makes sense with the near boundary made further away." }, "vrdisplay.displayid": { "url": "$MDN_URL$/web/api/vrdisplay/displayid", @@ -4391,7 +4553,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The displayId read-only property of the VRDisplay interface returns an identifier for this particular VRDisplay, which is also used as an association point in the Gamepad API (see Gamepad.displayId).\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The displayId read-only property of the VRDisplay interface returns an identifier for this particular VRDisplay, which is also used as an association point in the Gamepad API (see Gamepad.displayId).\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplay.displayname": { "url": "$MDN_URL$/web/api/vrdisplay/displayname", @@ -4399,7 +4561,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The displayName read-only property of the VRDisplay interface returns a human-readable name to identify the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This will generally be something like \"Oculus VR HMD (HMD)\" or \"Oculus VR HMD (Sensor)\"." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The displayName read-only property of the VRDisplay interface returns a human-readable name to identify the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This will generally be something like \"Oculus VR HMD (HMD)\" or \"Oculus VR HMD (Sensor)\"." }, "vrdisplay.exitpresent": { "url": "$MDN_URL$/web/api/vrdisplay/exitpresent", @@ -4407,7 +4569,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The exitPresent() method of the VRDisplay interface stops the VRDisplay presenting a scene.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The exitPresent() method of the VRDisplay interface stops the VRDisplay presenting a scene.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", "returns": "A promise that resolves once the presentation has ended. If the VRDisplay is not presenting when exitPresent() is called, the promise will reject." }, "vrdisplay.geteyeparameters": { @@ -4416,7 +4578,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getEyeParameters() method of the VRDisplay interface returns the VREyeParameters object containing the eye parameters for the specified eye.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getEyeParameters() method of the VRDisplay interface returns the VREyeParameters object containing the eye parameters for the specified eye.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", "parameters": { "whichEye": "A string representing the eye you want to return the eye parameters for. Available values are left and right (defined in the VREye enum)." }, @@ -4428,7 +4590,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getFrameData() method of the VRDisplay interface accepts a VRFrameData object and populates it with the information required to render the current frame.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This includes the VRPose and view and projection matrices for the current frame.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getFrameData() method of the VRDisplay interface accepts a VRFrameData object and populates it with the information required to render the current frame.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This includes the VRPose and view and projection matrices for the current frame.", "parameters": { "frameData": "The VRFrameData object you want to populate." }, @@ -4440,7 +4602,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getImmediatePose() method of the VRDisplay interface returns a VRPose object defining the current pose of the VRDisplay, with no prediction applied.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getImmediatePose() method of the VRDisplay interface returns a VRPose object defining the current pose of the VRDisplay, with no prediction applied.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", "returns": "A VRPose object." }, "vrdisplay.getlayers": { @@ -4449,7 +4611,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getLayers() method of the VRDisplay interface returns the layers currently being presented by the VRDisplay.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getLayers() method of the VRDisplay interface returns the layers currently being presented by the VRDisplay.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", "returns": "If the VRDisplay is presenting, this method returns an array of the VRLayerInit objects currently being presented (this will currently be one, as VRDisplayCapabilities.maxLayers is currently always 1). If the VRDisplay is not presenting, this method returns an empty array." }, "vrdisplay.getpose": { @@ -4458,7 +4620,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getPose() method of the VRDisplay interface returns a VRPose object defining the future predicted pose of the VRDisplay as it will be when the current frame is actually presented.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

It was even deprecated there — instead, you should use VRDisplay.getFrameData(), which also provides a VRPose object.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getPose() method of the VRDisplay interface returns a VRPose object defining the future predicted pose of the VRDisplay as it will be when the current frame is actually presented.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

It was even deprecated there — instead, you should use VRDisplay.getFrameData(), which also provides a VRPose object.\n

", "returns": "A VRPose object." }, "vrdisplay.isconnected": { @@ -4467,7 +4629,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The isConnected read-only property of the VRDisplay interface returns a boolean value indicating whether the VRDisplay is connected to the computer.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The isConnected read-only property of the VRDisplay interface returns a boolean value indicating whether the VRDisplay is connected to the computer.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplay.ispresenting": { "url": "$MDN_URL$/web/api/vrdisplay/ispresenting", @@ -4475,7 +4637,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The isPresenting read-only property of the VRDisplay interface returns a boolean value indicating whether the VRDisplay is currently having content presented through it.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The isPresenting read-only property of the VRDisplay interface returns a boolean value indicating whether the VRDisplay is currently having content presented through it.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplay.requestanimationframe": { "url": "$MDN_URL$/web/api/vrdisplay/requestanimationframe", @@ -4483,7 +4645,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The requestAnimationFrame() method of the VRDisplay interface is a special implementation of Window.requestAnimationFrame containing a callback function that will be called every time a new frame of the VRDisplay presentation is rendered:\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n
    \n
  • When the VRDisplay is not presenting a scene, this is functionally equivalent to Window.requestAnimationFrame.
  • \n
  • When the VRDisplay is presenting, the callback is called at its native refresh rate.
  • \n
", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The requestAnimationFrame() method of the VRDisplay interface is a special implementation of Window.requestAnimationFrame containing a callback function that will be called every time a new frame of the VRDisplay presentation is rendered:\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n
    \n
  • When the VRDisplay is not presenting a scene, this is functionally equivalent to Window.requestAnimationFrame.
  • \n
  • When the VRDisplay is presenting, the callback is called at its native refresh rate.
  • \n
", "parameters": { "callback": "A callback function that will be called every time a new frame of the VRDisplay presentation is rendered." }, @@ -4495,7 +4657,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The requestPresent() method of the VRDisplay interface starts the VRDisplay presenting a scene.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The requestPresent() method of the VRDisplay interface starts the VRDisplay presenting a scene.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", "parameters": { "layers": "An array of VRLayerInit objects representing the scene you want to present. At the moment, this can be a minimum of 0 and a maximum of 1." }, @@ -4507,7 +4669,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The resetPose() method of the VRDisplay interface resets the pose for the VRDisplay, treating its current VRPose.position and VRPose.orientation as the \"origin/zero\" values.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

After resetPost() has been called, future poses returned from VRDisplay.getPose()/VRDisplay.getImmediatePose() will describe positions relative to the VRDisplay's position when resetPose() was last called and will treat the display's yaw when resetPose() was last called as the forward orientation.\n

The VRDisplay's reported roll and pitch do not change when resetPose() is called as they are relative to gravity. Calling resetPose() may change the VRStageParameters.sittingToStandingTransform matrix.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The resetPose() method of the VRDisplay interface resets the pose for the VRDisplay, treating its current VRPose.position and VRPose.orientation as the \"origin/zero\" values.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

After resetPost() has been called, future poses returned from VRDisplay.getPose()/VRDisplay.getImmediatePose() will describe positions relative to the VRDisplay's position when resetPose() was last called and will treat the display's yaw when resetPose() was last called as the forward orientation.\n

The VRDisplay's reported roll and pitch do not change when resetPose() is called as they are relative to gravity. Calling resetPose() may change the VRStageParameters.sittingToStandingTransform matrix.", "returns": "None (undefined)." }, "vrdisplay.stageparameters": { @@ -4516,7 +4678,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The stageParameters read-only property of the VRDisplay interface returns a VRStageParameters object containing room-scale parameters, if the VRDisplay is capable of supporting room-scale experiences.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The stageParameters read-only property of the VRDisplay interface returns a VRStageParameters object containing room-scale parameters, if the VRDisplay is capable of supporting room-scale experiences.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplay.submitframe": { "url": "$MDN_URL$/web/api/vrdisplay/submitframe", @@ -4524,7 +4686,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The submitFrame() method of the VRDisplay interface captures the current state of the VRLayerInit currently being presented and displays it on the VRDisplay.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The frame should subsequently be rendered using the VRPose and matrices provided by the last call to getFrameData().", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The submitFrame() method of the VRDisplay interface captures the current state of the VRLayerInit currently being presented and displays it on the VRDisplay.\n

\n

Note:\nThis method was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The frame should subsequently be rendered using the VRPose and matrices provided by the last call to getFrameData().", "returns": "None (undefined)." }, "vrdisplaycapabilities": { @@ -4533,7 +4695,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VRDisplayCapabilities interface of the WebVR API describes the capabilities of a VRDisplay — its features can be used to perform VR device capability tests, for example can it return position information.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This interface is accessible through the VRDisplay.capabilities property." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRDisplayCapabilities interface of the WebVR API describes the capabilities of a VRDisplay — its features can be used to perform VR device capability tests, for example can it return position information.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This interface is accessible through the VRDisplay.capabilities property." }, "vrdisplaycapabilities.canpresent": { "url": "$MDN_URL$/web/api/vrdisplaycapabilities/canpresent", @@ -4541,7 +4703,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The canPresent read-only property of the VRDisplayCapabilities interface returns a boolean value stating whether the VR display is capable of presenting content (e.g., through an HMD).\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This is useful for identifying \"magic window\" devices that are capable of 6DoF tracking but for which VRDisplay.requestPresent() is not meaningful. If canPresent is false, calls to VRDisplay.requestPresent() will fail, and VRDisplay.getEyeParameters() will return null." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The canPresent read-only property of the VRDisplayCapabilities interface returns a boolean value stating whether the VR display is capable of presenting content (e.g., through an HMD).\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This is useful for identifying \"magic window\" devices that are capable of 6DoF tracking but for which VRDisplay.requestPresent() is not meaningful. If canPresent is false, calls to VRDisplay.requestPresent() will fail, and VRDisplay.getEyeParameters() will return null." }, "vrdisplaycapabilities.hasexternaldisplay": { "url": "$MDN_URL$/web/api/vrdisplaycapabilities/hasexternaldisplay", @@ -4549,7 +4711,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The hasExternalDisplay read-only property of the VRDisplayCapabilities interface returns true if the VR display is separate from the device's primary display.\n

\n

Note:\nIf presenting VR content would obscure other content on the device, this will return false, in which case the application should not attempt to mirror VR content or update non-VR UI because that content will not be visible.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The hasExternalDisplay read-only property of the VRDisplayCapabilities interface returns true if the VR display is separate from the device's primary display.\n

\n

Note:\nIf presenting VR content would obscure other content on the device, this will return false, in which case the application should not attempt to mirror VR content or update non-VR UI because that content will not be visible.\n

" }, "vrdisplaycapabilities.hasorientation": { "url": "$MDN_URL$/web/api/vrdisplaycapabilities/hasorientation", @@ -4557,7 +4719,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The hasOrientation read-only property of the VRDisplayCapabilities interface returns true if the VR display can track and return orientation information.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The hasOrientation read-only property of the VRDisplayCapabilities interface returns true if the VR display can track and return orientation information.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplaycapabilities.hasposition": { "url": "$MDN_URL$/web/api/vrdisplaycapabilities/hasposition", @@ -4565,7 +4727,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The hasPosition read-only property of the VRDisplayCapabilities interface returns true if the VR display can track and return position information.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The hasPosition read-only property of the VRDisplayCapabilities interface returns true if the VR display can track and return position information.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplaycapabilities.maxlayers": { "url": "$MDN_URL$/web/api/vrdisplaycapabilities/maxlayers", @@ -4573,7 +4735,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The maxLayers read-only property of the VRDisplayCapabilities interface returns a number indicating the maximum number of VRLayerInits that the VR display can present at once (e.g., the maximum length of the array that VRDisplay.requestPresent() can accept.)\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The maxLayers read-only property of the VRDisplayCapabilities interface returns a number indicating the maximum number of VRLayerInits that the VR display can present at once (e.g., the maximum length of the array that VRDisplay.requestPresent() can accept.)\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplayevent": { "url": "$MDN_URL$/web/api/vrdisplayevent", @@ -4581,7 +4743,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VRDisplayEvent interface of the WebVR API represents the event object of WebVR-related events (see the list of WebVR window extensions).\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRDisplayEvent interface of the WebVR API represents the event object of WebVR-related events (see the list of WebVR window extensions).\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplayevent.display": { "url": "$MDN_URL$/web/api/vrdisplayevent/display", @@ -4589,7 +4751,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The display read-only property of the VRDisplayEvent interface returns the VRDisplay associated with this event.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The display read-only property of the VRDisplayEvent interface returns the VRDisplay associated with this event.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplayevent.reason": { "url": "$MDN_URL$/web/api/vrdisplayevent/reason", @@ -4597,7 +4759,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The reason read-only property of the VRDisplayEvent interface returns a human-readable reason why the event was fired.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The reason read-only property of the VRDisplayEvent interface returns a human-readable reason why the event was fired.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrdisplayevent.vrdisplayevent": { "url": "$MDN_URL$/web/api/vrdisplayevent/vrdisplayevent", @@ -4605,7 +4767,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VRDisplayEvent() constructor creates a VRDisplayEvent object.\n

\n

Note:\nThis constructor was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRDisplayEvent() constructor creates a VRDisplayEvent object.\n

\n

Note:\nThis constructor was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

", "parameters": { "type": "A string with the name of the event.\nIt is case-sensitive and browsers set it to vrdisplayconnect, vrdisplaydisconnect, vrdisplayactivate, vrdisplaydeactivate, vrdisplayblur,\nvrdisplaypointerrestricted, vrdisplaypointerunrestricted, or vrdisplaypresentchange.", "options": "An object that, in addition of the properties defined in Event(), can have the following properties:\n
\n
display
\n
\n

The VRDisplay the event is to be associated with.\n

\n
reason
\n
\n

A string representing the human-readable reason why the event is to be fired (see VRDisplayEvent.reason).\n

\n
" @@ -4618,7 +4780,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VREyeParameters interface of the WebVR API represents all the information required to correctly render a scene for a given eye, including field of view information.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This interface is accessible through the VRDisplay.getEyeParameters() method.\n

\n

Warning:\nThe values in this interface should not be used to compute view or projection matrices. In order to ensure the widest possible hardware compatibility use the matrices provided by VRFrameData.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VREyeParameters interface of the WebVR API represents all the information required to correctly render a scene for a given eye, including field of view information.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This interface is accessible through the VRDisplay.getEyeParameters() method.\n

\n

Warning:\nThe values in this interface should not be used to compute view or projection matrices. In order to ensure the widest possible hardware compatibility use the matrices provided by VRFrameData.\n

" }, "vreyeparameters.fieldofview": { "url": "$MDN_URL$/web/api/vreyeparameters/fieldofview", @@ -4626,7 +4788,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The fieldOfView read-only property of the VREyeParameters interface returns a VRFieldOfView object describing the current field of view for the eye, which can vary as the user adjusts their interpupillary distance (IPD).\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The fieldOfView read-only property of the VREyeParameters interface returns a VRFieldOfView object describing the current field of view for the eye, which can vary as the user adjusts their interpupillary distance (IPD).\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vreyeparameters.maximumfieldofview": { "url": "$MDN_URL$/web/api/vreyeparameters/maximumfieldofview", @@ -4634,7 +4796,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The maximumFieldOfView read-only property of the VREyeParameters interface describes the maximum supported field of view for the current eye.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The maximumFieldOfView read-only property of the VREyeParameters interface describes the maximum supported field of view for the current eye.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vreyeparameters.minimumfieldofview": { "url": "$MDN_URL$/web/api/vreyeparameters/minimumfieldofview", @@ -4642,7 +4804,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The minimumFieldOfView read-only property of the VREyeParameters interface describes the minimum supported field of view for the current eye.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The minimumFieldOfView read-only property of the VREyeParameters interface describes the minimum supported field of view for the current eye.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vreyeparameters.offset": { "url": "$MDN_URL$/web/api/vreyeparameters/offset", @@ -4650,7 +4812,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The offset read-only property of the VREyeParameters interface represents the offset from the center point between the user's eyes to the center of the eye, measured in meters.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value should represent half the user's interpupillary distance (IPD), but may also represent the distance from the center point of the headset to the center point of the lens for the given eye." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The offset read-only property of the VREyeParameters interface represents the offset from the center point between the user's eyes to the center of the eye, measured in meters.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value should represent half the user's interpupillary distance (IPD), but may also represent the distance from the center point of the headset to the center point of the lens for the given eye." }, "vreyeparameters.renderheight": { "url": "$MDN_URL$/web/api/vreyeparameters/renderheight", @@ -4658,7 +4820,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The renderHeight read-only property of the VREyeParameters interface describes the recommended render target height of each eye viewport, in pixels.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This is already in device pixel units, so there's no need to multiply by Window.devicePixelRatio before setting to HTMLCanvasElement.height." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The renderHeight read-only property of the VREyeParameters interface describes the recommended render target height of each eye viewport, in pixels.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This is already in device pixel units, so there's no need to multiply by Window.devicePixelRatio before setting to HTMLCanvasElement.height." }, "vreyeparameters.renderwidth": { "url": "$MDN_URL$/web/api/vreyeparameters/renderwidth", @@ -4666,7 +4828,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The renderWidth read-only property of the VREyeParameters interface describes the recommended render target width of each eye viewport, in pixels.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This is already in device pixel units, so there's no need to multiply by Window.devicePixelRatio before setting to HTMLCanvasElement.width." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The renderWidth read-only property of the VREyeParameters interface describes the recommended render target width of each eye viewport, in pixels.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This is already in device pixel units, so there's no need to multiply by Window.devicePixelRatio before setting to HTMLCanvasElement.width." }, "vrfieldofview": { "url": "$MDN_URL$/web/api/vrfieldofview", @@ -4674,7 +4836,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VRFieldOfView interface of the WebVR API represents a field of view defined by 4 different degree values describing the view from a center point.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRFieldOfView interface of the WebVR API represents a field of view defined by 4 different degree values describing the view from a center point.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrfieldofview.downdegrees": { "url": "$MDN_URL$/web/api/vrfieldofview/downdegrees", @@ -4682,7 +4844,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The downDegrees read-only property of the VRFieldOfView interface returns the number of degrees downwards that the field of view extends in.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The downDegrees read-only property of the VRFieldOfView interface returns the number of degrees downwards that the field of view extends in.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrfieldofview.leftdegrees": { "url": "$MDN_URL$/web/api/vrfieldofview/leftdegrees", @@ -4690,7 +4852,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The leftDegrees read-only property of the VRFieldOfView interface returns the number of degrees to the left that the field of view extends in.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The leftDegrees read-only property of the VRFieldOfView interface returns the number of degrees to the left that the field of view extends in.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrfieldofview.rightdegrees": { "url": "$MDN_URL$/web/api/vrfieldofview/rightdegrees", @@ -4698,7 +4860,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The rightDegrees read-only property of the VRFieldOfView interface returns the number of degrees to the right that the field of view extends in.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The rightDegrees read-only property of the VRFieldOfView interface returns the number of degrees to the right that the field of view extends in.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrfieldofview.updegrees": { "url": "$MDN_URL$/web/api/vrfieldofview/updegrees", @@ -4706,7 +4868,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The upDegrees read-only property of the VRFieldOfView interface returns the number of degrees upwards that the field of view extends in.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The upDegrees read-only property of the VRFieldOfView interface returns the number of degrees upwards that the field of view extends in.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrframedata": { "url": "$MDN_URL$/web/api/vrframedata", @@ -4714,7 +4876,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VRFrameData interface of the WebVR API represents all the information needed to render a single frame of a VR scene; constructed by VRDisplay.getFrameData().\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRFrameData interface of the WebVR API represents all the information needed to render a single frame of a VR scene; constructed by VRDisplay.getFrameData().\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrframedata.leftprojectionmatrix": { "url": "$MDN_URL$/web/api/vrframedata/leftprojectionmatrix", @@ -4722,7 +4884,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The leftProjectionMatrix read-only property of the VRFrameData interface returns a Float32Array representing a 4x4 matrix that describes the projection to be used for the left eye's rendering.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value may be passed directly to WebGL's uniformMatrix4fv function.\n

\n

Warning:\nIt is highly recommended that applications use this matrix without modification. Failure to use this projection matrix when rendering may cause the presented frame to be distorted or badly aligned, resulting in varying degrees of user discomfort.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The leftProjectionMatrix read-only property of the VRFrameData interface returns a Float32Array representing a 4x4 matrix that describes the projection to be used for the left eye's rendering.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value may be passed directly to WebGL's uniformMatrix4fv function.\n

\n

Warning:\nIt is highly recommended that applications use this matrix without modification. Failure to use this projection matrix when rendering may cause the presented frame to be distorted or badly aligned, resulting in varying degrees of user discomfort.\n

" }, "vrframedata.leftviewmatrix": { "url": "$MDN_URL$/web/api/vrframedata/leftviewmatrix", @@ -4730,7 +4892,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The leftViewMatrix read-only property of the VRFrameData interface returns a Float32Array representing a 4x4 matrix that describes the view transform to be used for the left eye's rendering.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value may be passed directly to WebGL's uniformMatrix4fv function.\n

\n

Warning:\nIt is highly recommended that applications use this matrix when rendering.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The leftViewMatrix read-only property of the VRFrameData interface returns a Float32Array representing a 4x4 matrix that describes the view transform to be used for the left eye's rendering.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value may be passed directly to WebGL's uniformMatrix4fv function.\n

\n

Warning:\nIt is highly recommended that applications use this matrix when rendering.\n

" }, "vrframedata.pose": { "url": "$MDN_URL$/web/api/vrframedata/pose", @@ -4738,7 +4900,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The pose read-only property of the VRFrameData interface returns the VRPose of the VRDisplay at the current VRFrameData.timestamp.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The pose read-only property of the VRFrameData interface returns the VRPose of the VRDisplay at the current VRFrameData.timestamp.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrframedata.rightprojectionmatrix": { "url": "$MDN_URL$/web/api/vrframedata/rightprojectionmatrix", @@ -4746,7 +4908,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The rightProjectionMatrix read-only property of the VRFrameData interface returns a Float32Array representing a 4x4 matrix that describes the projection to be used for the right eye's rendering.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value may be passed directly to WebGL's uniformMatrix4fv function.\n

\n

Warning:\nIt is highly recommended that applications use this matrix without modification. Failure to use this projection matrix when rendering may cause the presented frame to be distorted or badly aligned, resulting in varying degrees of user discomfort.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The rightProjectionMatrix read-only property of the VRFrameData interface returns a Float32Array representing a 4x4 matrix that describes the projection to be used for the right eye's rendering.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value may be passed directly to WebGL's uniformMatrix4fv function.\n

\n

Warning:\nIt is highly recommended that applications use this matrix without modification. Failure to use this projection matrix when rendering may cause the presented frame to be distorted or badly aligned, resulting in varying degrees of user discomfort.\n

" }, "vrframedata.rightviewmatrix": { "url": "$MDN_URL$/web/api/vrframedata/rightviewmatrix", @@ -4754,7 +4916,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The rightViewMatrix read-only property of the VRFrameData interface returns a Float32Array representing a 4x4 matrix that describes the view transform to be used for the right eye's rendering.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value may be passed directly to WebGL's uniformMatrix4fv function.\n

\n

Warning:\nIt is highly recommended that applications use this matrix when rendering.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The rightViewMatrix read-only property of the VRFrameData interface returns a Float32Array representing a 4x4 matrix that describes the view transform to be used for the right eye's rendering.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This value may be passed directly to WebGL's uniformMatrix4fv function.\n

\n

Warning:\nIt is highly recommended that applications use this matrix when rendering.\n

" }, "vrframedata.timestamp": { "url": "$MDN_URL$/web/api/vrframedata/timestamp", @@ -4762,7 +4924,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The timestamp read-only property of the VRFrameData interface returns a constantly increasing timestamp value representing the time a frame update occurred.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

Timestamps are useful for determining if position state data has been updated from the hardware. Since values are monotonically increasing, they can be compared to determine the ordering of updates — newer values will always be greater than or equal to older values.\n

The timestamp starts at 0 the first time VRDisplay.getFrameData() is invoked for a given VRDisplay." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The timestamp read-only property of the VRFrameData interface returns a constantly increasing timestamp value representing the time a frame update occurred.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

Timestamps are useful for determining if position state data has been updated from the hardware. Since values are monotonically increasing, they can be compared to determine the ordering of updates — newer values will always be greater than or equal to older values.\n

The timestamp starts at 0 the first time VRDisplay.getFrameData() is invoked for a given VRDisplay." }, "vrframedata.vrframedata": { "url": "$MDN_URL$/web/api/vrframedata/vrframedata", @@ -4770,23 +4932,23 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VRFrameData() constructor creates a VRFrameData object instance.\n

\n

Note:\nThis constructor was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRFrameData() constructor creates a VRFrameData object instance.\n

\n

Note:\nThis constructor was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrlayerinit": { "url": "$MDN_URL$/web/api/vrlayerinit", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The VRLayerInit dictionary of the WebVR API represents a content layer (an HTMLCanvasElement or OffscreenCanvas) that you want to present in a VR display.\n

\n

Note:\nThis dictionary was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

You can retrieve VRLayerInit objects using VRDisplay.getLayers(), and present them using the VRDisplay.requestPresent() method." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRLayerInit dictionary of the WebVR API represents a content layer (an HTMLCanvasElement or OffscreenCanvas) that you want to present in a VR display.\n

\n

Note:\nThis dictionary was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

You can retrieve VRLayerInit objects using VRDisplay.getLayers(), and present them using the VRDisplay.requestPresent() method." }, "vrlayerinit.leftbounds": { "url": "$MDN_URL$/web/api/vrlayerinit/leftbounds", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The leftBounds property of the VRLayerInit interface (dictionary) defines the left texture bounds of the canvas whose contents will be presented by the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The leftBounds property of the VRLayerInit interface (dictionary) defines the left texture bounds of the canvas whose contents will be presented by the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrlayerinit.rightbounds": { "url": "$MDN_URL$/web/api/vrlayerinit/rightbounds", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The rightBounds property of the VRLayerInit interface (dictionary) defines the right texture bounds of the canvas whose contents will be presented by the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The rightBounds property of the VRLayerInit interface (dictionary) defines the right texture bounds of the canvas whose contents will be presented by the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrlayerinit.source": { "url": "$MDN_URL$/web/api/vrlayerinit/source", - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The source property of the VRLayerInit interface (dictionary) defines the canvas whose contents will be presented by the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The source property of the VRLayerInit interface (dictionary) defines the canvas whose contents will be presented by the VRDisplay.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

" }, "vrpose": { "url": "$MDN_URL$/web/api/vrpose", @@ -4794,7 +4956,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VRPose interface of the WebVR API represents the state of a VR sensor at a given timestamp (which includes orientation, position, velocity, and acceleration information).\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This interface is accessible through the VRDisplay.getPose() and VRDisplay.getFrameData() methods. VRDisplay.getPose() is deprecated." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRPose interface of the WebVR API represents the state of a VR sensor at a given timestamp (which includes orientation, position, velocity, and acceleration information).\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This interface is accessible through the VRDisplay.getPose() and VRDisplay.getFrameData() methods. VRDisplay.getPose() is deprecated." }, "vrpose.angularacceleration": { "url": "$MDN_URL$/web/api/vrpose/angularacceleration", @@ -4802,7 +4964,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The angularAcceleration read-only property of the VRPose interface returns an array representing the angular acceleration vector of the VRDisplay at the current timestamp, in meters per second per second.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

In other words, the current acceleration of the sensor's rotation around the x, y, and z axes." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The angularAcceleration read-only property of the VRPose interface returns an array representing the angular acceleration vector of the VRDisplay at the current timestamp, in meters per second per second.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

In other words, the current acceleration of the sensor's rotation around the x, y, and z axes." }, "vrpose.angularvelocity": { "url": "$MDN_URL$/web/api/vrpose/angularvelocity", @@ -4810,7 +4972,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The angularVelocity read-only property of the VRPose interface returns an array representing the angular velocity vector of the VRDisplay at the current timestamp, in radians per second.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

In other words, the current velocity at which the sensor is rotating around the x, y, and z axes." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The angularVelocity read-only property of the VRPose interface returns an array representing the angular velocity vector of the VRDisplay at the current timestamp, in radians per second.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

In other words, the current velocity at which the sensor is rotating around the x, y, and z axes." }, "vrpose.linearacceleration": { "url": "$MDN_URL$/web/api/vrpose/linearacceleration", @@ -4818,7 +4980,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The linearAcceleration read-only property of the VRPose interface returns an array representing the linear acceleration vector of the VRDisplay at the current timestamp, in meters per second per second.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

In other words, the current acceleration of the sensor, along the x, y, and z axes." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The linearAcceleration read-only property of the VRPose interface returns an array representing the linear acceleration vector of the VRDisplay at the current timestamp, in meters per second per second.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

In other words, the current acceleration of the sensor, along the x, y, and z axes." }, "vrpose.linearvelocity": { "url": "$MDN_URL$/web/api/vrpose/linearvelocity", @@ -4826,7 +4988,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The linearVelocity read-only property of the VRPose interface returns an array representing the linear velocity vector of the VRDisplay at the current timestamp, in meters per second.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

In other words, the current velocity at which the sensor is moving along the x, y, and z axes." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The linearVelocity read-only property of the VRPose interface returns an array representing the linear velocity vector of the VRDisplay at the current timestamp, in meters per second.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

In other words, the current velocity at which the sensor is moving along the x, y, and z axes." }, "vrpose.orientation": { "url": "$MDN_URL$/web/api/vrpose/orientation", @@ -4834,7 +4996,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The orientation read-only property of the VRPose interface returns the orientation of the sensor at the current timestamp, as a quarternion value.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The value is a Float32Array, made up of the following values:\n

    \n
  • pitch — rotation around the X axis.
  • \n
  • yaw — rotation around the Y axis.
  • \n
  • roll — rotation around the Z axis.
  • \n
  • w — the fourth dimension (usually 1).
  • \n
\n

The orientation yaw (rotation around the y axis) is relative to the initial yaw of the sensor when it was first read or the yaw of the sensor at the point that VRDisplay.resetPose() was last called." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The orientation read-only property of the VRPose interface returns the orientation of the sensor at the current timestamp, as a quaternion value.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The value is a Float32Array, made up of the following values:\n

    \n
  • pitch — rotation around the X axis.
  • \n
  • yaw — rotation around the Y axis.
  • \n
  • roll — rotation around the Z axis.
  • \n
  • w — the fourth dimension (usually 1).
  • \n
\n

The orientation yaw (rotation around the y axis) is relative to the initial yaw of the sensor when it was first read or the yaw of the sensor at the point that VRDisplay.resetPose() was last called." }, "vrpose.position": { "url": "$MDN_URL$/web/api/vrpose/position", @@ -4842,7 +5004,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The position read-only property of the VRPose interface returns the position of the VRDisplay at the current timestamp as a 3D vector.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The coordinate system is as follows:\n

    \n
  • Positive X is to the user's right.
  • \n
  • Positive Y is up.
  • \n
  • Positive Z is behind the user.
  • \n
\n

Positions are measured in meters from an origin point — this point is either the position the sensor was first read at, or the position of the sensor at the point that VRDisplay.resetPose() was last called.\n

\n

Note:\nBy default, all positions are given as a sitting space position. Transforming this point with VRStageParameters.sittingToStandingTransform — when you are working with a room display for example — converts this to a standing space position.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The position read-only property of the VRPose interface returns the position of the VRDisplay at the current timestamp as a 3D vector.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The coordinate system is as follows:\n

    \n
  • Positive X is to the user's right.
  • \n
  • Positive Y is up.
  • \n
  • Positive Z is behind the user.
  • \n
\n

Positions are measured in meters from an origin point — this point is either the position the sensor was first read at, or the position of the sensor at the point that VRDisplay.resetPose() was last called.\n

\n

Note:\nBy default, all positions are given as a sitting space position. Transforming this point with VRStageParameters.sittingToStandingTransform — when you are working with a room display for example — converts this to a standing space position.\n

" }, "vrstageparameters": { "url": "$MDN_URL$/web/api/vrstageparameters", @@ -4850,7 +5012,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The VRStageParameters interface of the WebVR API represents the values describing the stage area for devices that support room-scale experiences.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This interface is accessible through the VRDisplay.stageParameters property." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The VRStageParameters interface of the WebVR API represents the values describing the stage area for devices that support room-scale experiences.\n

\n

Note:\nThis interface was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

This interface is accessible through the VRDisplay.stageParameters property." }, "vrstageparameters.sittingtostandingtransform": { "url": "$MDN_URL$/web/api/vrstageparameters/sittingtostandingtransform", @@ -4858,7 +5020,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The sittingToStandingTransform read-only property of the VRStageParameters interface contains a matrix that transforms the sitting-space view matrices of VRFrameData to standing-space.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

Basically, this can be passed into your WebGL code to transform the rendered view from a sitting to standing view." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The sittingToStandingTransform read-only property of the VRStageParameters interface contains a matrix that transforms the sitting-space view matrices of VRFrameData to standing-space.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

Basically, this can be passed into your WebGL code to transform the rendered view from a sitting to standing view." }, "vrstageparameters.sizex": { "url": "$MDN_URL$/web/api/vrstageparameters/sizex", @@ -4866,7 +5028,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The sizeX read-only property of the VRStageParameters interface returns the width of the play-area bounds in meters.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The bounds are defined as an axis-aligned rectangle on the floor, for safety purposes. Content should not require the user to move beyond these bounds; however, it is possible for the user to ignore the bounds resulting in position values outside of this rectangle. The center of the rectangle is at (0,0,0) in standing-space coordinates." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The sizeX read-only property of the VRStageParameters interface returns the width of the play-area bounds in meters.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The bounds are defined as an axis-aligned rectangle on the floor, for safety purposes. Content should not require the user to move beyond these bounds; however, it is possible for the user to ignore the bounds resulting in position values outside of this rectangle. The center of the rectangle is at (0,0,0) in standing-space coordinates." }, "vrstageparameters.sizey": { "url": "$MDN_URL$/web/api/vrstageparameters/sizey", @@ -4874,7 +5036,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The sizeY read-only property of the VRStageParameters interface returns the depth of the play-area bounds in meters.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The bounds are defined as an axis-aligned rectangle on the floor, for safety purposes. Content should not require the user to move beyond these bounds; however, it is possible for the user to ignore the bounds resulting in position values outside of this rectangle. The center of the rectangle is at (0,0,0) in standing-space coordinates." + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The sizeY read-only property of the VRStageParameters interface returns the depth of the play-area bounds in meters.\n

\n

Note:\nThis property was part of the old WebVR API. It has been superseded by the WebXR Device API.\n

\n

The bounds are defined as an axis-aligned rectangle on the floor, for safety purposes. Content should not require the user to move beyond these bounds; however, it is possible for the user to ignore the bounds resulting in position values outside of this rectangle. The center of the rectangle is at (0,0,0) in standing-space coordinates." }, "vttcue": { "url": "$MDN_URL$/web/api/vttcue", @@ -5466,7 +5628,8 @@ "parameters": { "program": "A WebGLProgram.", "shader": "A fragment or vertex WebGLShader." - } + }, + "returns": "None (undefined)." }, "webgl2renderingcontext.beginquery": { "url": "$MDN_URL$/web/api/webgl2renderingcontext/beginquery", @@ -5737,7 +5900,7 @@ }, "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.bindTexture() method of the WebGL API binds a given\nWebGLTexture to a target (binding point).", "parameters": { - "target": "A GLenum specifying the binding point (target). Possible values:\n

    \n
  • \n

    gl.TEXTURE_2D: A two-dimensional texture.\n

  • \n
  • \n

    gl.TEXTURE_CUBE_MAP: A cube-mapped texture.\nWhen using a WebGL 2 context,\nthe following values are available additionally:\n

      \n
    • gl.TEXTURE_3D: A three-dimensional texture.
    • \n
    • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
    • \n
    \n
  • \n
", + "target": "A GLenum specifying the binding point (target). Possible values:\n
\n
gl.TEXTURE_2D
\n
\n

A two-dimensional texture.\n

\n
gl.TEXTURE_CUBE_MAP
\n
\n

A cube-mapped texture.\n

\n
\n

When using a WebGL 2 context, the following values are available additionally:\n

\n
gl.TEXTURE_3D
\n
\n

A three-dimensional texture.\n

\n
gl.TEXTURE_2D_ARRAY
\n
\n

A two-dimensional array texture.\n

\n
", "texture": "A WebGLTexture object to bind.\nIf null is passed, the currently bound texture for the specified target is unbound." }, "returns": "None (undefined)." @@ -6043,8 +6206,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.canvas property is a read-only\nreference to the HTMLCanvasElement or OffscreenCanvas\nobject that is associated with the context. It might be null if it is not\nassociated with a <canvas> element or an OffscreenCanvas\nobject.", - "returns": "Either a HTMLCanvasElement or OffscreenCanvas object or\nnull." + "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.canvas property is a read-only\nreference to the HTMLCanvasElement or OffscreenCanvas\nobject that is associated with the context. It might be null if it is not\nassociated with a <canvas> element or an OffscreenCanvas\nobject." }, "webgl2renderingcontext.checkframebufferstatus": { "url": "$MDN_URL$/web/api/webglrenderingcontext/checkframebufferstatus", @@ -6092,7 +6254,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.clear() method of the WebGL API clears buffers to preset values.\n

The preset values can be set by clearColor(), clearDepth() or clearStencil().\n

The scissor box, dithering, and buffer writemasks can affect the clear()\nmethod.", + "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.clear() method of the WebGL API clears buffers to preset values.\n

The preset values can be set by clearColor(), clearDepth() or clearStencil().\n

The scissor box, dithering, and buffer writemasks can affect the clear() method. For example, if buffer writing is disabled via colorMask(), depthMask(), or stencilMask(), clear() has no effect on the corresponding buffer.", "parameters": { "mask": "A GLbitfield bitwise OR mask that indicates the buffers to be\ncleared. Possible values are:\n

    \n
  • gl.COLOR_BUFFER_BIT
  • \n
  • gl.DEPTH_BUFFER_BIT
  • \n
  • gl.STENCIL_BUFFER_BIT
  • \n
" }, @@ -6315,18 +6477,20 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The compressedTexImage2D() method of the WebGLRenderingContext interface\nof the WebGL API specifies a two-dimensional texture image in a compressed format.\n

Compressed image formats must be enabled by WebGL extensions before\nusing these methods.", + "doc": "

Note: This feature is available in Web Workers.

\n

The compressedTexImage2D() method of the WebGLRenderingContext interface of the WebGL API specifies a two-dimensional texture image in a compressed format.\n

Compressed image formats are only available via the WebGL2RenderingContext or some WebGL extension.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values for compressedTexImage2D:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "internalformat": "A GLenum specifying the compressed image format. Compressed image\nformats must be enabled by WebGL extensions before\nusing this method. All values are possible for compressedTexImage2D. Possible\nvalues:\n
    \n
  • \n

    When using the WEBGL_compressed_texture_s3tc extension:\n

      \n
    • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_s3tc_srgb extension:\n

      \n
    • ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc extension:\n

      \n
    • ext.COMPRESSED_R11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_R11_EAC
    • \n
    • ext.COMPRESSED_RG11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_RG11_EAC
    • \n
    • ext.COMPRESSED_RGB8_ETC2
    • \n
    • ext.COMPRESSED_RGBA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_SRGB8_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_pvrtc extension:\n

      \n
    • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc1 extension:\n

      \n
    • ext.COMPRESSED_RGB_ETC1_WEBGL
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_astc extension:\n

      \n
    • ext.COMPRESSED_RGBA_ASTC_4x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x8_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x12_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_bptc extension:\n

      \n
    • ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_rgtc extension:\n

      \n
    • ext.COMPRESSED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_RED_GREEN_RGTC2_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
    • \n
    \n
  • \n
", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", - "depth": "A GLsizei specifying the depth of the texture/the number of textures\nin a TEXTURE_2D_ARRAY.", + "target": "A GLenum specifying the binding point (target) of the active compressed texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "internalformat": "A GLenum specifying the compressed image format. Compressed image formats are only available via the WebGL2RenderingContext or some WebGL extension. Possible values:\n
    \n
  • \n

    When using WebGL2RenderingContext:\n

      \n
    • gl.GL_COMPRESSED_R11_EAC
    • \n
    • gl.GL_COMPRESSED_SIGNED_R11_EAC
    • \n
    • gl.GL_COMPRESSED_RG11_EAC
    • \n
    • gl.GL_COMPRESSED_SIGNED_RG11_EAC
    • \n
    • gl.GL_COMPRESSED_RGB8_ETC2
    • \n
    • gl.GL_COMPRESSED_SRGB8_ETC2
    • \n
    • gl.GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • gl.GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • gl.GL_COMPRESSED_RGBA8_ETC2_EAC
    • \n
    • gl.GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_s3tc extension:\n

      \n
    • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_s3tc_srgb extension:\n

      \n
    • ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc extension:\n

      \n
    • ext.COMPRESSED_R11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_R11_EAC
    • \n
    • ext.COMPRESSED_RG11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_RG11_EAC
    • \n
    • ext.COMPRESSED_RGB8_ETC2
    • \n
    • ext.COMPRESSED_RGBA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_SRGB8_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_pvrtc extension:\n

      \n
    • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc1 extension:\n

      \n
    • ext.COMPRESSED_RGB_ETC1_WEBGL
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_astc extension:\n

      \n
    • ext.COMPRESSED_RGBA_ASTC_4x4_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x4_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x5_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x5_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x6_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x5_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x6_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x8_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x5_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x10_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x10_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x12_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_bptc extension:\n

      \n
    • ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_rgtc extension:\n

      \n
    • ext.COMPRESSED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_RED_GREEN_RGTC2_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
    • \n
    \n
  • \n
", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", + "depth": "A GLsizei specifying the depth of the texture/the number of textures in a TEXTURE_2D_ARRAY.", "border": "A GLint specifying the width of the border. Must be 0.", - "imageSize": "A GLsizei specifying the number of bytes to read from the buffer\nbound to gl.PIXEL_UNPACK_BUFFER.", - "offset": "A GLintptr specifying the offset in bytes from which to read from the\nbuffer bound to gl.PIXEL_UNPACK_BUFFER.", - "pixels": "A TypedArray or a DataView that will be used as a data store for the\ncompressed image data in memory." + "srcData": "A TypedArray or DataView containing the compressed texture data.", + "srcOffset": "(WebGL 2 only) An integer specifying the index of srcData to start reading from. Defaults to 0.", + "srcLengthOverride": "(WebGL 2 only) An integer specifying the number of elements in srcData to read. Defaults to srcData.length - srcOffset.", + "imageSize": "(WebGL 2 only) A GLsizei specifying the size of the image data in bytes.", + "offset": "(WebGL 2 only) A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -6350,17 +6514,20 @@ "lowDate": "2021-09-20", "highDate": "2024-03-20" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The compressedTexImage3D() method of the WebGL2RenderingContext interface\nof the WebGL API specifies a three-dimensional texture image in a compressed format.\n

Compressed image formats must be enabled by WebGL extensions before\nusing these methods.", + "doc": "

Note: This feature is available in Web Workers.

\n

The compressedTexImage3D() method of the WebGL2RenderingContext interface of the WebGL API specifies a three-dimensional texture image in a compressed format.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values for compressedTexImage3D:\n

    \n
  • gl.TEXTURE_2D_ARRAY
  • \n
  • gl.TEXTURE_3D
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "internalformat": "A GLenum specifying the compressed image format. Compressed image\nformats must be enabled by WebGL extensions before\nusing this method. See\ncompressed texture formats for which are valid for compressedTexImage3D. Possible\nvalues:\n
    \n
  • \n

    When using the WEBGL_compressed_texture_s3tc extension:\n

      \n
    • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_s3tc_srgb extension:\n

      \n
    • ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc extension:\n

      \n
    • ext.COMPRESSED_R11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_R11_EAC
    • \n
    • ext.COMPRESSED_RG11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_RG11_EAC
    • \n
    • ext.COMPRESSED_RGB8_ETC2
    • \n
    • ext.COMPRESSED_RGBA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_SRGB8_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_pvrtc extension:\n

      \n
    • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc1 extension:\n

      \n
    • ext.COMPRESSED_RGB_ETC1_WEBGL
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_astc extension:\n

      \n
    • ext.COMPRESSED_RGBA_ASTC_4x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x8_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x12_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_bptc extension:\n

      \n
    • ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_rgtc extension:\n

      \n
    • ext.COMPRESSED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_RED_GREEN_RGTC2_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
    • \n
    \n
  • \n
", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", - "depth": "A GLsizei specifying the depth of the texture/the number of textures\nin a TEXTURE_2D_ARRAY.", + "target": "A GLenum specifying the binding point (target) of the active compressed texture. Possible values:\n
    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "internalformat": "A GLenum specifying the compressed image format. For a list of possible values, see WebGLRenderingContext.compressedTexImage2D().", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", + "depth": "A GLsizei specifying the depth of the texture/the number of textures in a TEXTURE_2D_ARRAY.", "border": "A GLint specifying the width of the border. Must be 0.", - "imageSize": "A GLsizei specifying the number of bytes to read from the buffer\nbound to gl.PIXEL_UNPACK_BUFFER.", - "offset": "A GLintptr specifying the offset in bytes from which to read from the\nbuffer bound to gl.PIXEL_UNPACK_BUFFER." + "srcData": "A TypedArray or DataView containing the compressed texture data.", + "srcOffset": "An integer specifying the index of srcData to start reading from. Defaults to 0.", + "srcLengthOverride": "An integer specifying the number of elements in srcData to read. Defaults to srcData.length - srcOffset.", + "imageSize": "A GLsizei specifying the size of the image data in bytes.", + "offset": "A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -6384,18 +6551,20 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.compressedTexSubImage2D()\nmethod of the WebGL API specifies a\ntwo-dimensional sub-rectangle for a texture image in a compressed format.\n

Compressed image formats must be enabled by WebGL extensions before\nusing this method or a WebGL2RenderingContext must be used.", + "doc": "

Note: This feature is available in Web Workers.

\n

The compressedTexSubImage2D() method of the WebGLRenderingContext interface of the WebGL API specifies a two-dimensional sub-rectangle for a texture image in a compressed format.\n

Compressed image formats are only available via the WebGL2RenderingContext or some WebGL extension.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active\ncompressed texture. Possible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "xoffset": "A GLint specifying the horizontal offset within the compressed\ntexture image.", - "yoffset": "A GLint specifying the vertical offset within the compressed texture\nimage.", + "target": "A GLenum specifying the binding point (target) of the active compressed texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "xoffset": "A GLint specifying the horizontal offset within the compressed texture image.", + "yoffset": "A GLint specifying the vertical offset within the compressed texture image.", "width": "A GLsizei specifying the width of the compressed texture.", "height": "A GLsizei specifying the height of the compressed texture.", - "format": "A GLenum specifying the compressed image format. Compressed image\nformats must be enabled by WebGL extensions before\nusing this method. Possible values:\n
    \n
  • \n

    When using the WEBGL_compressed_texture_s3tc extension:\n

      \n
    • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_s3tc_srgb extension:\n

      \n
    • ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc extension:\n

      \n
    • ext.COMPRESSED_R11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_R11_EAC
    • \n
    • ext.COMPRESSED_RG11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_RG11_EAC
    • \n
    • ext.COMPRESSED_RGB8_ETC2
    • \n
    • ext.COMPRESSED_RGBA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_SRGB8_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_pvrtc extension:\n

      \n
    • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_astc extension:\n

      \n
    • ext.COMPRESSED_RGBA_ASTC_4x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x8_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x12_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_bptc extension:\n

      \n
    • ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_rgtc extension:\n

      \n
    • ext.COMPRESSED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_RED_GREEN_RGTC2_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
    • \n
    \n
  • \n
", - "imageSize": "A GLsizei specifying the number of bytes to read from the buffer\nbound to gl.PIXEL_UNPACK_BUFFER.", - "offset": "A GLintptr specifying the offset in bytes from which to read from the\nbuffer bound to gl.PIXEL_UNPACK_BUFFER.", - "srcData": "A TypedArray or a DataView that will be used as a data store for the compressed\nimage data in memory." + "format": "A GLenum specifying the compressed image format. For a list of possible values, see WebGLRenderingContext.compressedTexImage2D().", + "srcData": "A TypedArray or DataView containing the compressed texture data.", + "srcOffset": "(WebGL 2 only) An integer specifying the index of srcData to start reading from. Defaults to 0.", + "srcLengthOverride": "(WebGL 2 only) An integer specifying the number of elements in srcData to read. Defaults to srcData.length - srcOffset.", + "imageSize": "(WebGL 2 only) A GLsizei specifying the size of the image data in bytes.", + "offset": "(WebGL 2 only) A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -6419,20 +6588,22 @@ "lowDate": "2021-09-20", "highDate": "2024-03-20" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGL2RenderingContext.compressedTexSubImage3D()\nmethod of the WebGL API specifies a\nthree-dimensional sub-rectangle for a texture image in a compressed format.", + "doc": "

Note: This feature is available in Web Workers.

\n

The compressedTexSubImage3D() method of the WebGL2RenderingContext interface of the WebGL API specifies a three-dimensional sub-rectangle for a texture image in a compressed format.\n

Compressed image formats are only available via some WebGL extension.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", + "target": "A GLenum specifying the binding point (target) of the active compressed texture. Possible values:\n
    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", "xoffset": "A GLint specifying the x offset within the compressed texture image.", "yoffset": "A GLint specifying the y offset within the compressed texture image.", "zoffset": "A GLint specifying the z offset within the compressed texture image.", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", - "depth": "A GLsizei specifying the depth of the texture.", - "format": "A GLenum specifying the compressed image format. Possible values:\n
    \n
  • gl.COMPRESSED_R11_EAC
  • \n
  • gl.COMPRESSED_SIGNED_R11_EAC
  • \n
  • gl.COMPRESSED_RG11_EAC
  • \n
  • gl.COMPRESSED_SIGNED_RG11_EAC
  • \n
  • gl.COMPRESSED_RGB8_ETC2
  • \n
  • gl.COMPRESSED_RGBA8_ETC2_EAC
  • \n
  • gl.COMPRESSED_SRGB8_ETC2
  • \n
  • gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
  • \n
  • gl.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • \n
  • gl.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • \n
", - "imageSize": "A GLint specifying the number of bytes to read from the buffer bound\nto gl.PIXEL_UNPACK_BUFFER.", - "offset": "A GLint specifying the offset in bytes from which to read from the\nbuffer bound to gl.PIXEL_UNPACK_BUFFER.", - "srcData": "A TypedArray or a DataView object that will be used as a data store for the compressed\nimage data in memory." + "width": "A GLsizei specifying the width of the compressed texture in texels.", + "height": "A GLsizei specifying the height of the compressed texture in texels.", + "depth": "A GLsizei specifying the depth of the texture/the number of textures in a TEXTURE_2D_ARRAY.", + "format": "A GLenum specifying the compressed image format. For a list of possible values, see WebGLRenderingContext.compressedTexImage2D().", + "srcData": "A TypedArray or DataView containing the compressed texture data.", + "srcOffset": "An integer specifying the index of srcData to start reading from. Defaults to 0.", + "srcLengthOverride": "An integer specifying the number of elements in srcData to read. Defaults to srcData.length - srcOffset.", + "imageSize": "A GLsizei specifying the size of the image data in bytes.", + "offset": "A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -6484,15 +6655,15 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.copyTexImage2D() method of the\nWebGL API copies pixels from the current\nWebGLFramebuffer into a 2D texture image.", + "doc": "

Note: This feature is available in Web Workers.

\n

The copyTexImage2D() method of the WebGLRenderingContext interface of the WebGL API copies pixels from the current WebGLFramebuffer into a 2D texture image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "internalformat": "A GLenum specifying the color components in the texture. Possible\nvalues:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the\nalpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and\nblue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the\ncolor buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha\nis 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
", - "x": "A GLint specifying the x coordinate of the lower left corner where to\nstart copying.", - "y": "A GLint specifying the y coordinate of the lower left corner where to\nstart copying.", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "internalformat": "A GLenum specifying how the texture should be stored after it's loaded. Possible values:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the alpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and blue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the color buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha is 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
", + "x": "A GLint specifying the x coordinate of the lower left corner where to start copying.", + "y": "A GLint specifying the y coordinate of the lower left corner where to start copying.", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", "border": "A GLint specifying the width of the border. Must be 0." }, "returns": "None (undefined)." @@ -6517,16 +6688,16 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.copyTexSubImage2D() method of\nthe WebGL API copies pixels from the current\nWebGLFramebuffer into an existing 2D texture sub-image.", + "doc": "

Note: This feature is available in Web Workers.

\n

The copyTexSubImage2D() method of the WebGLRenderingContext interface of the WebGL API copies pixels from the current WebGLFramebuffer into a 2D texture sub-image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", "xoffset": "A GLint specifying the horizontal offset within the texture image.", "yoffset": "A GLint specifying the vertical offset within the texture image.", - "x": "A GLint specifying the x coordinate of the lower left corner where to\nstart copying.", - "y": "A GLint specifying the y coordinate of the lower left corner where to\nstart copying.", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture." + "x": "A GLint specifying the x coordinate of the lower left corner where to start copying.", + "y": "A GLint specifying the y coordinate of the lower left corner where to start copying.", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels." }, "returns": "None (undefined)." }, @@ -6550,17 +6721,17 @@ "lowDate": "2021-09-20", "highDate": "2024-03-20" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGL2RenderingContext.copyTexSubImage3D() method of\nthe WebGL API copies pixels from the current\nWebGLFramebuffer into an existing 3D texture sub-image.", + "doc": "

Note: This feature is available in Web Workers.

\n

The copyTexSubImage3D() method of the WebGL2RenderingContext interface of the WebGL API copies pixels from the current WebGLFramebuffer into a 3D texture sub-image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", "xoffset": "A GLint specifying the x offset within the texture image.", "yoffset": "A GLint specifying the y offset within the texture image.", "zoffset": "A GLint specifying the z offset within the texture image.", - "x": "A GLint specifying the x coordinate of the lower left corner where to\nstart copying.", - "y": "A GLint specifying the y coordinate of the lower left corner where to\nstart copying.", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture." + "x": "A GLint specifying the x coordinate of the lower left corner where to start copying.", + "y": "A GLint specifying the y coordinate of the lower left corner where to start copying.", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels." }, "returns": "None (undefined)." }, @@ -7208,11 +7379,12 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.detachShader() method of the WebGL API detaches a previously\nattached WebGLShader from a WebGLProgram.", + "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.detachShader() method of the WebGL API detaches a previously\nattached WebGLShader from a WebGLProgram.", "parameters": { "program": "A WebGLProgram.", "shader": "A fragment or vertex WebGLShader." - } + }, + "returns": "None (undefined)." }, "webgl2renderingcontext.disable": { "url": "$MDN_URL$/web/api/webglrenderingcontext/disable", @@ -7871,7 +8043,7 @@ "program": "A WebGLProgram specifying the WebGL shader program from which to\nobtain the uniform variable's information.", "index": "A GLuint specifying the index of the uniform attribute to get. This\nvalue is an index 0 to N - 1 as returned\nby gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS)." }, - "returns": "A WebGLActiveInfo object describing the uniform.\n

The type attribute of the return value will be one of the following:\n

    \n
  • \n

    gl.FLOAT\n

  • \n
  • \n

    gl.FLOAT_VEC2\n

  • \n
  • \n

    gl.FLOAT_VEC3\n

  • \n
  • \n

    gl.FLOAT_VEC4\n

  • \n
  • \n

    gl.INT\n

  • \n
  • \n

    gl.INT_VEC2\n

  • \n
  • \n

    gl.INT_VEC3\n

  • \n
  • \n

    gl.INT_VEC4\n

  • \n
  • \n

    gl.BOOL\n

  • \n
  • \n

    gl.BOOL_VEC2\n

  • \n
  • \n

    gl.BOOL_VEC3\n

  • \n
  • \n

    gl.BOOL_VEC4\n

  • \n
  • \n

    gl.FLOAT_MAT2\n

  • \n
  • \n

    gl.FLOAT_MAT3\n

  • \n
  • \n

    gl.FLOAT_MAT4\n

  • \n
  • \n

    gl.SAMPLER_2D\n

  • \n
  • \n

    gl.SAMPLER_CUBE\n

  • \n
  • \n

    When using a WebGL 2 context, the\nfollowing values are possible additionally:\n

      \n
    • gl.UNSIGNED_INT
    • \n
    • gl.UNSIGNED_INT_VEC2
    • \n
    • gl.UNSIGNED_INT_VEC3
    • \n
    • gl.UNSIGNED_INT_VEC4
    • \n
    • gl.FLOAT_MAT2x3
    • \n
    • gl.FLOAT_MAT2x4
    • \n
    • gl.FLOAT_MAT3x2
    • \n
    • gl.FLOAT_MAT3x4
    • \n
    • gl.FLOAT_MAT4x2
    • \n
    • gl.FLOAT_MAT4x3
    • \n
    • gl.SAMPLER_3D
    • \n
    • gl.SAMPLER_2D_SHADOW
    • \n
    • gl.SAMPLER_2D_ARRAY
    • \n
    • gl.SAMPLER_2D_ARRAY_SHADOW
    • \n
    • gl.SAMPLER_CUBE_SHADOW
    • \n
    • gl.INT_SAMPLER_2D
    • \n
    • gl.INT_SAMPLER_3D
    • \n
    • gl.INT_SAMPLER_CUBE
    • \n
    • gl.INT_SAMPLER_2D_ARRAY
    • \n
    • gl.UNSIGNED_INT_SAMPLER_2D
    • \n
    • gl.UNSIGNED_INT_SAMPLER_3D
    • \n
    • gl.UNSIGNED_INT_SAMPLER_CUBE
    • \n
    • gl.UNSIGNED_INT_SAMPLER_2D_ARRAY
    • \n
    \n
  • \n
\n

When gl.linkProgram is called, WebGL creates a list of active uniforms.\nThese are possible values of the name attribute of return values of\ngetActiveUniform. WebGL\ngenerates one or more entries in the list depending on the declared type of the uniform\nin the shader:\n

    \n
  • \n

    Single basic type: one entry with the name of the uniform. E.g.\nuniform vec4 a; will result in a.\n

  • \n
  • \n

    Array of basic type: one entry with the name of the uniform suffixed with\n[0]. E.g. uniform vec4 b[]; will result in\nb[0].\n

  • \n
  • \n

    Struct type: one entry for each member of the struct. E.g.\nuniform struct { float foo; vec4 bar; } c; will result in\nc.foo and c.bar.\n

  • \n
  • \n

    Arrays of structs or arrays: each entry of the array will generate its own entries.\nE.g. uniform struct { float foo; vec4 bar; } d[2]; will result in:\n

      \n
    • d[0].foo
    • \n
    • d[0].bar
    • \n
    • d[1].foo
    • \n
    • d[1].bar
    • \n
    \n
  • \n
  • \n

    Uniform blocks: one entry for each member. If the uniform block has an instance\nname, the block name is prefixed. E.g. uniform Block { float foo; }; will\nresult in foo, and uniform Block { float bar; } e; will\nresult in e.bar.\n

  • \n
\n

The size attribute of the return value corresponds to the length of the\narray for uniforms declared as arrays. Otherwise, it is 1 (this includes interface\nblocks instanced with arrays)." + "returns": "A WebGLActiveInfo object describing the uniform.\n

The type attribute of the return value will be one of the following:\n

    \n
  • gl.FLOAT
  • \n
  • gl.FLOAT_VEC2
  • \n
  • gl.FLOAT_VEC3
  • \n
  • gl.FLOAT_VEC4
  • \n
  • gl.INT
  • \n
  • gl.INT_VEC2
  • \n
  • gl.INT_VEC3
  • \n
  • gl.INT_VEC4
  • \n
  • gl.BOOL
  • \n
  • gl.BOOL_VEC2
  • \n
  • gl.BOOL_VEC3
  • \n
  • gl.BOOL_VEC4
  • \n
  • gl.FLOAT_MAT2
  • \n
  • gl.FLOAT_MAT3
  • \n
  • gl.FLOAT_MAT4
  • \n
  • gl.SAMPLER_2D
  • \n
  • gl.SAMPLER_CUBE
  • \n
  • When using a WebGL 2 context, the\nfollowing values are possible additionally:\n
      \n
    • gl.UNSIGNED_INT
    • \n
    • gl.UNSIGNED_INT_VEC2
    • \n
    • gl.UNSIGNED_INT_VEC3
    • \n
    • gl.UNSIGNED_INT_VEC4
    • \n
    • gl.FLOAT_MAT2x3
    • \n
    • gl.FLOAT_MAT2x4
    • \n
    • gl.FLOAT_MAT3x2
    • \n
    • gl.FLOAT_MAT3x4
    • \n
    • gl.FLOAT_MAT4x2
    • \n
    • gl.FLOAT_MAT4x3
    • \n
    • gl.SAMPLER_3D
    • \n
    • gl.SAMPLER_2D_SHADOW
    • \n
    • gl.SAMPLER_2D_ARRAY
    • \n
    • gl.SAMPLER_2D_ARRAY_SHADOW
    • \n
    • gl.SAMPLER_CUBE_SHADOW
    • \n
    • gl.INT_SAMPLER_2D
    • \n
    • gl.INT_SAMPLER_3D
    • \n
    • gl.INT_SAMPLER_CUBE
    • \n
    • gl.INT_SAMPLER_2D_ARRAY
    • \n
    • gl.UNSIGNED_INT_SAMPLER_2D
    • \n
    • gl.UNSIGNED_INT_SAMPLER_3D
    • \n
    • gl.UNSIGNED_INT_SAMPLER_CUBE
    • \n
    • gl.UNSIGNED_INT_SAMPLER_2D_ARRAY
    • \n
    \n
  • \n
\n

When gl.linkProgram is called, WebGL creates a list of active uniforms.\nThese are possible values of the name attribute of return values of\ngetActiveUniform. WebGL\ngenerates one or more entries in the list depending on the declared type of the uniform\nin the shader:\n

    \n
  • \n

    Single basic type: one entry with the name of the uniform. E.g.\nuniform vec4 a; will result in a.\n

  • \n
  • \n

    Array of basic type: one entry with the name of the uniform suffixed with\n[0]. E.g. uniform vec4 b[]; will result in\nb[0].\n

  • \n
  • \n

    Struct type: one entry for each member of the struct. E.g.\nuniform struct { float foo; vec4 bar; } c; will result in\nc.foo and c.bar.\n

  • \n
  • \n

    Arrays of structs or arrays: each entry of the array will generate its own entries.\nE.g. uniform struct { float foo; vec4 bar; } d[2]; will result in:\n

      \n
    • d[0].foo
    • \n
    • d[0].bar
    • \n
    • d[1].foo
    • \n
    • d[1].bar
    • \n
    \n
  • \n
  • \n

    Uniform blocks: one entry for each member. If the uniform block has an instance\nname, the block name is prefixed. E.g. uniform Block { float foo; }; will\nresult in foo, and uniform Block { float bar; } e; will\nresult in e.bar.\n

  • \n
\n

The size attribute of the return value corresponds to the length of the\narray for uniforms declared as arrays. Otherwise, it is 1 (this includes interface\nblocks instanced with arrays)." }, "webgl2renderingcontext.getactiveuniformblockname": { "url": "$MDN_URL$/web/api/webgl2renderingcontext/getactiveuniformblockname", @@ -9816,18 +9988,20 @@ "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.texImage2D() method of the WebGL API specifies a two-dimensional texture\nimage.", + "doc": "

Note: This feature is available in Web Workers.

\n

The texImage2D() method of the WebGLRenderingContext interface of the WebGL API specifies a two-dimensional texture image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "internalformat": "A GLenum specifying the color components in the texture.\n

Possible values in both WebGL1 and WebGL2\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FormatTypeChannelsBytes per pixel
RGBAUNSIGNED_BYTE44
RGBUNSIGNED_BYTE33
RGBAUNSIGNED_SHORT_4_4_4_442
RGBAUNSIGNED_SHORT_5_5_5_142
RGBUNSIGNED_SHORT_5_6_532
LUMINANCE_ALPHAUNSIGNED_BYTE22
LUMINANCEUNSIGNED_BYTE11
ALPHAUNSIGNED_BYTE11
\n

Other possible values in WebGL2 for the versions of texImage2D that\ntake a TypedArray or a DataView, or a GLintptr offset\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\nSized
Format
\n
\nBase
Format
\n
\nR
bits
\n
\nG
bits
\n
\nB
bits
\n
\nA
bits
\n
\nShared
bits
\n
\nColor
renderable
\n
\nTexture
filterable
\n
R8RED8●●
R8_SNORMREDs8●
RG8RG88●●
RG8_SNORMRGs8s8●
RGB8RGB888●●
RGB8_SNORMRGBs8s8s8●
RGB565RGB565●●
RGBA4RGBA4444●●
RGB5_A1RGBA5551●●
RGBA8RGBA8888●●
RGBA8_SNORMRGBAs8s8s8s8●
RGB10_A2RGBA1010102●●
RGB10_A2UIRGBAui10ui10ui10ui2●
SRGB8RGB888●
SRGB8_ALPHA8RGBA8888●●
R16FREDf16●
RG16FRGf16f16●
RGB16FRGBf16f16f16●
RGBA16FRGBAf16f16f16f16●
R32FREDf32
RG32FRGf32f32
RGB32FRGBf32f32f32
RGBA32FRGBAf32f32f32f32
R11F_G11F_B10FRGBf11f11f10●
RGB9_E5RGB9995●
R8IREDi8●
R8UIREDui8●
R16IREDi16●
R16UIREDui16●
R32IREDi32●
R32UIREDui32●
RG8IRGi8i8●
RG8UIRGui8ui8●
RG16IRGi16i16●
RG16UIRGui16ui16●
RG32IRGi32i32●
RG32UIRGui32ui32●
RGB8IRGBi8i8i8
RGB8UIRGBui8ui8ui8
RGB16IRGBi16i16i16
RGB16UIRGBui16ui16ui16
RGB32IRGBi32i32i32
RGB32UIRGBui32ui32ui32
RGBA8IRGBAi8i8i8i8●
RGBA8UIRGBAui8ui8ui8ui8●
RGBA16IRGBAi16i16i16i16●
RGBA16UIRGBAui16ui16ui16ui16●
RGBA32IRGBAi32i32i32i32●
RGBA32UIRGBAui32ui32ui32ui32●
\n

Possible values in WebGL2 for the versions of texImage2D that take a\ntexture an HTMLImageElement, HTMLCanvasElement,\nHTMLVideoElement, ImageBitmap, or ImageData\n

    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the\nalpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and blue\ncomponents.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the color\nbuffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha is\n1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
\n

When using the WEBGL_depth_texture extension:\n

    \n
  • gl.DEPTH_COMPONENT
  • \n
  • gl.DEPTH_STENCIL
  • \n
\n

When using the EXT_sRGB extension:\n

    \n
  • ext.SRGB_EXT
  • \n
  • ext.SRGB_ALPHA_EXT
  • \n
\n

When using a WebGL 2 context, the\nfollowing values are available additionally:\n

    \n
  • gl.R8
  • \n
  • gl.R16F
  • \n
  • gl.R32F
  • \n
  • gl.R8UI
  • \n
  • gl.RG8
  • \n
  • gl.RG16F
  • \n
  • gl.RG32F
  • \n
  • gl.RG8UI
  • \n
  • gl.RG16UI
  • \n
  • gl.RG32UI
  • \n
  • gl.RGB8
  • \n
  • gl.SRGB8
  • \n
  • gl.RGB565
  • \n
  • gl.R11F_G11F_B10F
  • \n
  • gl.RGB9_E5
  • \n
  • gl.RGB16F
  • \n
  • gl.RGB32F
  • \n
  • gl.RGB8UI
  • \n
  • gl.RGBA8
  • \n
  • gl.SRGB8_ALPHA8
  • \n
  • gl.RGB5_A1
  • \n
  • gl.RGB10_A2
  • \n
  • gl.RGBA4
  • \n
  • gl.RGBA16F
  • \n
  • gl.RGBA32F
  • \n
  • gl.RGBA8UI
  • \n
", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "internalformat": "A GLenum specifying how the texture should be stored after it's loaded. See below for available values.", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", "border": "A GLint specifying the width of the border. Must be 0.", - "format": "A GLenum specifying the format of the texel data. In WebGL 1, this\nmust be the same as internalformat (see above). In WebGL 2, the\ncombinations are listed in this table.", - "type": "A GLenum specifying the data type of the texel data. Possible values:\n
    \n
  • gl.UNSIGNED_BYTE: 8 bits per channel for gl.RGBA
  • \n
  • gl.UNSIGNED_SHORT_5_6_5: 5 red bits, 6 green bits, 5 blue bits.
  • \n
  • gl.UNSIGNED_SHORT_4_4_4_4: 4 red bits, 4 green bits, 4 blue bits, 4\nalpha bits.
  • \n
  • gl.UNSIGNED_SHORT_5_5_5_1: 5 red bits, 5 green bits, 5 blue bits, 1\nalpha bit.
  • \n
\n

When using the WEBGL_depth_texture extension:\n

    \n
  • \n

    gl.UNSIGNED_SHORT\n

  • \n
  • \n

    gl.UNSIGNED_INT\n

  • \n
  • \n

    ext.UNSIGNED_INT_24_8_WEBGL (constant provided by the extension)\n

  • \n
  • \n

    When using the OES_texture_float extension:\n

      \n
    • gl.FLOAT
    • \n
    \n
  • \n
\n

When using the OES_texture_half_float extension:\n

    \n
  • ext.HALF_FLOAT_OES (constant provided by the extension)
  • \n
\n

When using a WebGL 2 context,\nthe following values are available additionally:\n

    \n
  • gl.BYTE
  • \n
  • gl.UNSIGNED_SHORT
  • \n
  • gl.SHORT
  • \n
  • gl.UNSIGNED_INT
  • \n
  • gl.INT
  • \n
  • gl.HALF_FLOAT
  • \n
  • gl.FLOAT
  • \n
  • gl.UNSIGNED_INT_2_10_10_10_REV
  • \n
  • gl.UNSIGNED_INT_10F_11F_11F_REV
  • \n
  • gl.UNSIGNED_INT_5_9_9_9_REV
  • \n
  • gl.UNSIGNED_INT_24_8
  • \n
  • gl.FLOAT_32_UNSIGNED_INT_24_8_REV (pixels must be\nnull)
  • \n
", - "pixels": "The following types can always be used as a pixel source for the texture:\n\n

The following types can only be used as a pixel source when width, height, and border are specified:\n

    \n
  • Uint8Array (must be used if type is gl.UNSIGNED_BYTE)
  • \n
  • Uint16Array (must be used if type is either\ngl.UNSIGNED_SHORT_5_6_5, gl.UNSIGNED_SHORT_4_4_4_4,\ngl.UNSIGNED_SHORT_5_5_5_1, gl.UNSIGNED_SHORT or\next.HALF_FLOAT_OES)
  • \n
  • Uint32Array (must be used if type is gl.UNSIGNED_INT or ext.UNSIGNED_INT_24_8_WEBGL)
  • \n
  • Float32Array (must be used if type is gl.FLOAT)
  • \n
", - "offset": "(WebGL 2 only) A GLintptr byte offset into the\nWebGLBuffer's data store. Used to upload data to the currently bound\nWebGLTexture from the WebGLBuffer bound to the\nPIXEL_UNPACK_BUFFER target." + "format": "A GLenum specifying how each integer element in the raw texel data should be interpreted as color components. In WebGL 1, this must be the same as internalformat. See below for available values.", + "type": "A GLenum specifying the size of each integer element in the raw texel data.\n

The internalformat, format, and type values must be compatible with each other. Possible combinations in both WebGL 1 and WebGL 2 (these internal formats are unsized because you can't specify how many bytes each pixel takes internally):\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
internalformatformattypeInput bytes per pixelInput pixel layout (bits per channel)
RGBRGBUNSIGNED_BYTE3(R, G, B) = (8, 8, 8)
RGBRGBUNSIGNED_SHORT_5_6_52(R, G, B) = (5, 6, 5)
RGBARGBAUNSIGNED_BYTE4(R, G, B, A) = (8, 8, 8, 8)
RGBARGBAUNSIGNED_SHORT_4_4_4_42(R, G, B, A) = (4, 4, 4, 4)
RGBARGBAUNSIGNED_SHORT_5_5_5_12(R, G, B, A) = (5, 5, 5, 1)
LUMINANCE_ALPHALUMINANCE_ALPHAUNSIGNED_BYTE2(L, A) = (8, 8)
LUMINANCELUMINANCEUNSIGNED_BYTE1(L) = (8)
ALPHAALPHAUNSIGNED_BYTE1(A) = (8)
\n

When the OES_texture_float extension is enabled, type can additionally be FLOAT. When the OES_texture_half_float extension is enabled, type can additionally be ext.HALF_FLOAT_OES (constant provided by the extension).\n

When the EXT_sRGB extension is enabled, internalformat can additionally be ext.SRGB_EXT or ext.SRGB_ALPHA_EXT.\n

In WebGL 2, when specifying the source as srcData or offset, the following combinations are additionally available (these internal formats are sized because the internal pixel layout is exactly specified; we omit the input layout here because it works similarly to the one above):\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
internalformatformattypeInternal pixel layoutColor renderableTexture filterable
R8REDUNSIGNED_BYTE(R) = (8)YY
R8_SNORMREDBYTE(R) = (s8)Y
R16FREDHALF_FLOAT, FLOAT(R) = (f16)Y
R32FREDFLOAT(R) = (f32)
R8UIRED_INTEGERUNSIGNED_BYTE(R) = (ui8)Y
R8IRED_INTEGERBYTE(R) = (i8)Y
R16UIRED_INTEGERUNSIGNED_SHORT(R) = (ui16)Y
R16IRED_INTEGERSHORT(R) = (i16)Y
R32UIRED_INTEGERUNSIGNED_INT(R) = (ui32)Y
R32IRED_INTEGERINT(R) = (i32)Y
RG8RGUNSIGNED_BYTE(R, G) = (8, 8)YY
RG8_SNORMRGBYTE(R, G) = (s8, s8)Y
RG16FRGHALF_FLOAT, FLOAT(R, G) = (f16, f16)Y
RG32FRGFLOAT(R, G) = (f32, f32)
RG8UIRG_INTEGERUNSIGNED_BYTE(R, G) = (ui8, ui8)Y
RG8IRG_INTEGERBYTE(R, G) = (i8, i8)Y
RG16UIRG_INTEGERUNSIGNED_SHORT(R, G) = (ui16, ui16)Y
RG16IRG_INTEGERSHORT(R, G) = (i16, i16)Y
RG32UIRG_INTEGERUNSIGNED_INT(R, G) = (ui32, ui32)Y
RG32IRG_INTEGERINT(R, G) = (i32, i32)Y
RGB8RGBUNSIGNED_BYTE(R, G, B) = (8, 8, 8)YY
SRGB8RGBUNSIGNED_BYTE(R, G, B) = (8, 8, 8)Y
RGB565RGBUNSIGNED_BYTE, UNSIGNED_SHORT_5_6_5(R, G, B) = (5, 6, 5)YY
RGB8_SNORMRGBBYTE(R, G, B) = (s8, s8, s8)Y
R11F_G11F_B10FRGBUNSIGNED_INT_10F_11F_11F_REV, HALF_FLOAT, FLOAT(R, G, B) = (f11, f11, f10)Y
RGB9_E5RGBUNSIGNED_INT_5_9_9_9_REV, HALF_FLOAT, FLOAT(R, G, B) = (f9, f9, f9), 5 shared bitsY
RGB16FRGBHALF_FLOAT, FLOAT(R, G, B) = (f16, f16, f16)Y
RGB32FRGBFLOAT(R, G, B) = (f32, f32, f32)
RGB8UIRGB_INTEGERUNSIGNED_BYTE(R, G, B) = (ui8, ui8, ui8)Y
RGB8IRGB_INTEGERBYTE(R, G, B) = (i8, i8, i8)Y
RGB16UIRGB_INTEGERUNSIGNED_SHORT(R, G, B) = (ui16, ui16, ui16)Y
RGB16IRGB_INTEGERSHORT(R, G, B) = (i16, i16, i16)Y
RGB32UIRGB_INTEGERUNSIGNED_INT(R, G, B) = (ui32, ui32, ui32)Y
RGB32IRGB_INTEGERINT(R, G, B) = (i32, i32, i32)Y
RGBA8RGBAUNSIGNED_BYTE(R, G, B, A) = (8, 8, 8, 8)YY
SRGB8_ALPHA8RGBAUNSIGNED_BYTE(R, G, B, A) = (8, 8, 8, 8)YY
RGBA8_SNORMRGBABYTE(R, G, B, A) = (s8, s8, s8, s8)Y
RGB5_A1RGBAUNSIGNED_BYTE, UNSIGNED_SHORT_5_5_5_1, UNSIGNED_INT_2_10_10_10_REV(R, G, B, A) = (5, 5, 5, 1)YY
RGBA4RGBAUNSIGNED_BYTE, UNSIGNED_SHORT_4_4_4_4(R, G, B, A) = (4, 4, 4, 4)YY
RGB10_A2RGBAUNSIGNED_INT_2_10_10_10_REV(R, G, B, A) = (10, 10, 10, 2)YY
RGBA16FRGBAHALF_FLOAT, FLOAT(R, G, B, A) = (f16, f16, f16, f16)Y
RGBA32FRGBAFLOAT(R, G, B, A) = (f32, f32, f32, f32)
RGBA8UIRGBA_INTEGERUNSIGNED_BYTE(R, G, B, A) = (ui8, ui8, ui8, ui8)Y
RGBA8IRGBA_INTEGERBYTE(R, G, B, A) = (i8, i8, i8, i8)Y
RGBA10_A2UIRGBA_INTEGERUNSIGNED_INT_2_10_10_10_REV(R, G, B, A) = (ui10, ui10, ui10, ui2)Y
RGBA16UIRGBA_INTEGERUNSIGNED_SHORT(R, G, B, A) = (ui16, ui16, ui16, ui16)Y
RGBA16IRGBA_INTEGERSHORT(R, G, B, A) = (i16, i16, i16, i16)Y
RGBA32UIRGBA_INTEGERUNSIGNED_INT(R, G, B, A) = (ui32, ui32, ui32, ui32)Y
RGBA32IRGBA_INTEGERINT(R, G, B, A) = (i32, i32, i32, i32)Y
\n

In WebGL 2, when specifying the source as srcData or offset, the following combinations are additionally available, and they can be enabled in WebGL 1 via the WEBGL_depth_texture extension:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
internalformatformattypeInternal pixel layout
DEPTH_COMPONENT16DEPTH_COMPONENTUNSIGNED_SHORT, UNSIGNED_INT(D) = (16)
DEPTH_COMPONENT24DEPTH_COMPONENTUNSIGNED_INT(D) = (24)
DEPTH_COMPONENT32FDEPTH_COMPONENTFLOAT(D) = (f32)
DEPTH24_STENCIL8DEPTH_STENCILUNSIGNED_INT_24_8 (ext.UNSIGNED_INT_24_8_WEBGL)(D, S) = (24, 8)
DEPTH32F_STENCIL8DEPTH_STENCILFLOAT_32_UNSIGNED_INT_24_8_REV(D, S) = (f32, 8)
\n

When the data source is a DOM pixel source, commonly each channel's representation is an unsigned integer type of at least 8 bits. Converting such representation to signed integers or unsigned integers with more bits is not clearly defined. For example, when converting RGBA8 to RGBA16UI, it is unclear whether or not the intention is to scale up values to the full range of a 16-bit unsigned integer. Therefore, only converting to unsigned integer of at most 8 bits, half float, or float is allowed.", + "srcData": "A TypedArray or DataView containing the compressed texture data. Its type must match the type parameter:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
srcData typetype value
Int8ArrayBYTE
Uint8Array, Uint8ClampedArrayUNSIGNED_BYTE
Int16ArraySHORT
Uint16ArrayUNSIGNED_SHORT, UNSIGNED_SHORT_5_6_5, UNSIGNED_SHORT_5_5_5_1, UNSIGNED_SHORT_4_4_4_4, HALF_FLOAT
Int32ArrayINT
Uint32ArrayUNSIGNED_INT, UNSIGNED_INT_5_9_9_9_REV, UNSIGNED_INT_2_10_10_10_REV, UNSIGNED_INT_10F_11F_11F_REV, UNSIGNED_INT_24_8
Float32ArrayFLOAT
\n

When type is FLOAT_32_UNSIGNED_INT_24_8_REV, srcData must be null.", + "srcOffset": "(WebGL 2 only) An integer specifying the index of srcData to start reading from. Defaults to 0.", + "source": "Read from a DOM pixel source, which can be one of:\n

\n

In WebGL 1, the width and height are always inferred from the source. In WebGL 2, they can also be explicitly specified.", + "offset": "(WebGL 2 only) A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -9851,20 +10025,21 @@ "lowDate": "2021-09-20", "highDate": "2024-03-20" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.texImage3D() method of the WebGL API specifies a three-dimensional\ntexture image.", + "doc": "

Note: This feature is available in Web Workers.

\n

The texImage3D() method of the WebGL2RenderingContext interface of the WebGL API specifies a three-dimensional texture image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "internalformat": "A GLint specifying the color components in the texture. Possible\nvalues:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the\nalpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and\nblue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the\ncolor buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha\nis 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
  • gl.R8
  • \n
  • gl.R16F
  • \n
  • gl.R32F
  • \n
  • gl.R8UI
  • \n
  • gl.RG8
  • \n
  • gl.RG16F
  • \n
  • gl.RG32F
  • \n
  • gl.RGUI
  • \n
  • gl.RGB8
  • \n
  • gl.SRGB8
  • \n
  • gl.RGB565
  • \n
  • gl.R11F_G11F_B10F
  • \n
  • gl.RGB9_E5
  • \n
  • gl.RGB16F
  • \n
  • gl.RGB32F
  • \n
  • gl.RGB8UI
  • \n
  • gl.RGBA8
  • \n
  • gl.SRGB8_ALPHA8
  • \n
  • gl.RGB5_A1
  • \n
  • gl.RGBA4444
  • \n
  • gl.RGBA16F
  • \n
  • gl.RGBA32F
  • \n
  • gl.RGBA8UI
  • \n
", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", - "depth": "A GLsizei specifying the depth of the texture.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "internalformat": "A GLenum specifying how the texture should be stored after it's loaded.", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", + "depth": "A GLsizei specifying the depth of the texture/the number of textures in a TEXTURE_2D_ARRAY.", "border": "A GLint specifying the width of the border. Must be 0.", - "format": "A GLenum specifying the format of the texel data. The correct\ncombinations with internalformat are listed in this table.", - "type": "A GLenum specifying the data type of the texel data. Possible values:\n
    \n
  • gl.UNSIGNED_BYTE: 8 bits per channel for gl.RGBA
  • \n
  • gl.UNSIGNED_SHORT_5_6_5: 5 red bits, 6 green bits, 5 blue bits.
  • \n
  • gl.UNSIGNED_SHORT_4_4_4_4: 4 red bits, 4 green bits, 4 blue bits, 4\nalpha bits.
  • \n
  • gl.UNSIGNED_SHORT_5_5_5_1: 5 red bits, 5 green bits, 5 blue bits, 1\nalpha bit.
  • \n
  • gl.BYTE
  • \n
  • gl.UNSIGNED_SHORT
  • \n
  • gl.SHORT
  • \n
  • gl.UNSIGNED_INT
  • \n
  • gl.INT
  • \n
  • gl.HALF_FLOAT
  • \n
  • gl.FLOAT
  • \n
  • gl.UNSIGNED_INT_2_10_10_10_REV
  • \n
  • gl.UNSIGNED_INT_10F_11F_11F_REV
  • \n
  • gl.UNSIGNED_INT_5_9_9_9_REV
  • \n
  • gl.UNSIGNED_INT_24_8
  • \n
  • gl.FLOAT_32_UNSIGNED_INT_24_8_REV (pixels must be\nnull)
  • \n
", - "source": "One of the following objects can be used as a pixel source for the texture:\n", - "srcData": "A TypedArray or a DataView object.", - "offset": "A GLintptr byte offset into the WebGLBuffer's data\nstore. Used to upload data to the currently bound WebGLTexture from the\nWebGLBuffer bound to the PIXEL_UNPACK_BUFFER target." + "format": "A GLenum specifying how each integer element in the raw texel data should be interpreted as color components.", + "type": "A GLenum specifying the size of each integer element in the raw texel data.\n

The internalformat, format, and type values must be compatible with each other. For all valid combinations, see WebGLRenderingContext.texImage2D().", + "srcData": "A TypedArray or DataView containing the compressed texture data. Its type must match the type parameter; see WebGLRenderingContext.texImage2D(). When type is FLOAT_32_UNSIGNED_INT_24_8_REV, srcData must be null.", + "srcOffset": "An integer specifying the index of srcData to start reading from. Defaults to 0.", + "source": "Read from a DOM pixel source, which can be one of:\n

", + "offset": "A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -9911,13 +10086,13 @@ "lowDate": "2021-09-20", "highDate": "2024-03-20" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGL2RenderingContext.texStorage2D() method of the\nWebGL API specifies all levels of\ntwo-dimensional texture storage.", + "doc": "

Note: This feature is available in Web Workers.

\n

The texStorage2D() method of the WebGL2RenderingContext of the WebGL API specifies all levels of two-dimensional texture storage.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP: A cube-mapped texture.
  • \n
", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP: A cube-mapped texture.
  • \n
", "levels": "A GLint specifying the number of texture levels.", - "internalformat": "A GLenum specifying the texture store format. Possible values:\n
    \n
  • gl.R8
  • \n
  • gl.R16F
  • \n
  • gl.R32F
  • \n
  • gl.R8UI
  • \n
  • gl.RG8
  • \n
  • gl.RG16F
  • \n
  • gl.RG32F
  • \n
  • gl.RG8UI
  • \n
  • gl.RGB8
  • \n
  • gl.SRGB8
  • \n
  • gl.RGB565
  • \n
  • gl.R11F_G11F_B10F
  • \n
  • gl.RGB9_E5
  • \n
  • gl.RGB16F
  • \n
  • gl.RGB32F
  • \n
  • gl.RGB8UI
  • \n
  • gl.RGBA8
  • \n
  • gl.SRGB8_ALPHA8
  • \n
  • gl.RGB5_A1
  • \n
  • gl.RGBA4
  • \n
  • gl.RGBA16F
  • \n
  • gl.RGBA32F
  • \n
  • gl.RGBA8UI
  • \n
\n

Unlike OpenGL 3.0, WebGL 2 doesn't support the following ETC2 and\nEAC compressed texture formats (see section 5.37 in the WebGL 2 spec). You might be able to enable them via the\nWEBGL_compressed_texture_etc extension, though.\n

    \n
  • gl.COMPRESSED_R11_EAC
  • \n
  • gl.COMPRESSED_SIGNED_R11_EAC
  • \n
  • gl.COMPRESSED_RG11_EAC
  • \n
  • gl.COMPRESSED_SIGNED_RG11_EAC
  • \n
  • gl.COMPRESSED_RGB8_ETC2
  • \n
  • gl.COMPRESSED_RGBA8_ETC2_EAC
  • \n
  • gl.COMPRESSED_SRGB8_ETC2
  • \n
  • gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
  • \n
  • gl.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • \n
  • gl.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • \n
", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture." + "internalformat": "A GLenum specifying the texture store format. Possible values:\n
    \n
  • gl.R8
  • \n
  • gl.R8_SNORM
  • \n
  • gl.R16F
  • \n
  • gl.R32F
  • \n
  • gl.R8UI
  • \n
  • gl.R8I
  • \n
  • gl.R16UI
  • \n
  • gl.R16I
  • \n
  • gl.R32UI
  • \n
  • gl.R32I
  • \n
  • gl.RG8
  • \n
  • gl.RG8_SNORM
  • \n
  • gl.RG16F
  • \n
  • gl.RG32F
  • \n
  • gl.RG8UI
  • \n
  • gl.RG8I
  • \n
  • gl.RG16UI
  • \n
  • gl.RG16I
  • \n
  • gl.RG32UI
  • \n
  • gl.RG32I
  • \n
  • gl.RGB8
  • \n
  • gl.SRGB8
  • \n
  • gl.RGB565
  • \n
  • gl.RGB8_SNORM
  • \n
  • gl.R11F_G11F_B10F
  • \n
  • gl.RGB9_E5
  • \n
  • gl.RGB16F
  • \n
  • gl.RGB32F
  • \n
  • gl.RGB8UI
  • \n
  • gl.RGB8I
  • \n
  • gl.RGB16UI
  • \n
  • gl.RGB16I
  • \n
  • gl.RGB32UI
  • \n
  • gl.RGB32I
  • \n
  • gl.RGBA8
  • \n
  • gl.SRGB8_ALPHA8
  • \n
  • gl.RGBA8_SNORM
  • \n
  • gl.RGB5_A1
  • \n
  • gl.RGBA4
  • \n
  • gl.RGB10_A2
  • \n
  • gl.RGBA16F
  • \n
  • gl.RGBA32F
  • \n
  • gl.RGBA8UI
  • \n
  • gl.RGBA8I
  • \n
  • gl.RGB10_A2UI
  • \n
  • gl.RGBA16UI
  • \n
  • gl.RGBA16I
  • \n
  • gl.RGBA32UI
  • \n
  • gl.RGBA32I
  • \n
  • gl.DEPTH_COMPONENT16
  • \n
  • gl.DEPTH_COMPONENT24
  • \n
  • gl.DEPTH_COMPONENT32F
  • \n
  • gl.DEPTH24_STENCIL8
  • \n
  • gl.DEPTH32F_STENCIL8
  • \n
\n

Unlike OpenGL 3.0, WebGL 2 doesn't support the following ETC2 and EAC compressed texture formats (see section 5.37 in the WebGL 2 spec). You might be able to enable them via the WEBGL_compressed_texture_etc extension, though.\n

    \n
  • gl.COMPRESSED_R11_EAC
  • \n
  • gl.COMPRESSED_SIGNED_R11_EAC
  • \n
  • gl.COMPRESSED_RG11_EAC
  • \n
  • gl.COMPRESSED_SIGNED_RG11_EAC
  • \n
  • gl.COMPRESSED_RGB8_ETC2
  • \n
  • gl.COMPRESSED_SRGB8_ETC2
  • \n
  • gl.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • \n
  • gl.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • \n
  • gl.COMPRESSED_RGBA8_ETC2_EAC
  • \n
  • gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
  • \n
\n

For the description of these formats, see WebGLRenderingContext.texImage2D(). Because texStorage2D does not actually specify a buffer source, the format and type parameters are irrelevant, and can be considered to be any of the valid values corresponding to the internalformat.", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels." }, "returns": "None (undefined)." }, @@ -9941,14 +10116,14 @@ "lowDate": "2021-09-20", "highDate": "2024-03-20" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGL2RenderingContext.texStorage3D() method of the\nWebGL API specifies all levels of a\nthree-dimensional texture or two-dimensional array texture.", + "doc": "

Note: This feature is available in Web Workers.

\n

The texStorage3D() method of the WebGL2RenderingContext of the WebGL API specifies all levels of three-dimensional texture storage.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", - "level": "A GLint specifying the number of texture levels.", - "internalformat": "A GLenum specifying the texture store format. Possible values:\n
    \n
  • gl.R8
  • \n
  • gl.R16F
  • \n
  • gl.R32F
  • \n
  • gl.R8UI
  • \n
  • gl.RG8
  • \n
  • gl.RG16F
  • \n
  • gl.RG32F
  • \n
  • gl.RGUI
  • \n
  • gl.RGB8
  • \n
  • gl.SRGB8
  • \n
  • gl.RGB565
  • \n
  • gl.R11F_G11F_B10F
  • \n
  • gl.RGB9_E5
  • \n
  • gl.RGB16F
  • \n
  • gl.RGB32F
  • \n
  • gl.RGB8UI
  • \n
  • gl.RGBA8
  • \n
  • gl.SRGB_ALPHA8
  • \n
  • gl.RGB5_A1
  • \n
  • gl.RGBA4444
  • \n
  • gl.RGBA16F
  • \n
  • gl.RGBA32F
  • \n
  • gl.RGBA8UI
  • \n
\n

In addition if the WEBGL_compressed_texture_etc extension is supported, the following values are also possible:\n

    \n
  • gl.COMPRESSED_R11_EAC
  • \n
  • gl.COMPRESSED_SIGNED_R11_EAC
  • \n
  • gl.COMPRESSED_RG11_EAC
  • \n
  • gl.COMPRESSED_SIGNED_RG11_EAC
  • \n
  • gl.COMPRESSED_RGB8_ETC2
  • \n
  • gl.COMPRESSED_RGBA8_ETC2_EAC
  • \n
  • gl.COMPRESSED_SRGB8_ETC2
  • \n
  • gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
  • \n
  • gl.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • \n
  • gl.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • \n
", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", - "depth": "A GLsizei specifying the depth of the texture." + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", + "levels": "A GLint specifying the number of texture levels.", + "internalformat": "A GLenum specifying the texture store format. For a list of possible values, see WebGL2RenderingContext.texStorage2D().", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", + "depth": "A GLsizei specifying the depth of the texture/the number of textures in a TEXTURE_2D_ARRAY." }, "returns": "None (undefined)." }, @@ -9969,18 +10144,20 @@ "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.texSubImage2D() method of the\nWebGL API specifies a sub-rectangle of the\ncurrent texture.", + "doc": "

Note: This feature is available in Web Workers.

\n

The texSubImage2D() method of the WebGLRenderingContext interface of the WebGL API specifies a two-dimensional sub-rectangle for a texture image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "xoffset": "A GLint specifying the lower left texel x coordinate of a width-wide\nby height-wide rectangular subregion of the texture array.", - "yoffset": "A GLint specifying the lower left texel y coordinate of a width-wide\nby height-wide rectangular subregion of the texture array.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "xoffset": "A GLint specifying the lower left texel x coordinate of a width-wide by height-wide rectangular subregion of the texture array.", + "yoffset": "A GLint specifying the lower left texel y coordinate of a width-wide by height-wide rectangular subregion of the texture array.", "width": "A GLsizei specifying the width of the texture in texels.", "height": "A GLsizei specifying the height of the texture in texels.", - "format": "A GLenum specifying the format of the texel data. Possible values:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the\nalpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and\nblue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the\ncolor buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha\nis 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
\n

When using the EXT_sRGB extension:\n

    \n
  • ext.SRGB_EXT
  • \n
  • ext.SRGB_ALPHA_EXT
  • \n
\n

When using a WebGL 2 context,\nthe following values are available additionally:\n

    \n
  • gl.RED
  • \n
  • gl.RG
  • \n
  • gl.RED_INTEGER
  • \n
  • gl.RG_INTEGER
  • \n
  • gl.RGB_INTEGER
  • \n
  • gl.RGBA_INTEGER
  • \n
", - "type": "A GLenum specifying the data type of the texel data. Possible values:\n
    \n
  • gl.UNSIGNED_BYTE: 8 bits per channel for gl.RGBA
  • \n
  • gl.UNSIGNED_SHORT_5_6_5: 5 red bits, 6 green bits, 5 blue bits.
  • \n
  • gl.UNSIGNED_SHORT_4_4_4_4: 4 red bits, 4 green bits, 4 blue bits, 4\nalpha bits.
  • \n
  • gl.UNSIGNED_SHORT_5_5_5_1: 5 red bits, 5 green bits, 5 blue bits, 1\nalpha bit.
  • \n
\n

When using the OES_texture_float extension:\n

    \n
  • gl.FLOAT
  • \n
\n

When using the OES_texture_half_float extension:\n

    \n
  • gl.HALF_FLOAT_OES
  • \n
\n

When using a WebGL 2 context,\nthe following values are available additionally:\n

    \n
  • gl.BYTE
  • \n
  • gl.UNSIGNED_SHORT
  • \n
  • gl.SHORT
  • \n
  • gl.UNSIGNED_INT
  • \n
  • gl.INT
  • \n
  • gl.HALF_FLOAT
  • \n
  • gl.FLOAT
  • \n
  • gl.UNSIGNED_INT_2_10_10_10_REV
  • \n
  • gl.UNSIGNED_INT_10F_11F_11F_REV
  • \n
  • gl.UNSIGNED_INT_5_9_9_9_REV
  • \n
  • gl.UNSIGNED_INT_24_8
  • \n
  • gl.FLOAT_32_UNSIGNED_INT_24_8_REV (pixels must be\nnull)
  • \n
", - "pixels": "One of the following objects can be used as a pixel source for the texture:\n", - "offset": "(WebGL 2 only) A GLintptr byte offset into the\nWebGLBuffer's data store. Used to upload data to the currently bound\nWebGLTexture from the WebGLBuffer bound to the\nPIXEL_UNPACK_BUFFER target." + "format": "A GLenum specifying how each integer element in the raw texel data should be interpreted as color components. Possible values:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the alpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and blue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the color buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha is 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
\n

When using the EXT_sRGB extension:\n

    \n
  • ext.SRGB_EXT
  • \n
  • ext.SRGB_ALPHA_EXT
  • \n
\n

When using a WebGL2RenderingContext, the following values are available additionally:\n

    \n
  • gl.RED
  • \n
  • gl.RED_INTEGER
  • \n
  • gl.RG
  • \n
  • gl.RG_INTEGER
  • \n
  • gl.RGB_INTEGER
  • \n
  • gl.RGBA_INTEGER
  • \n
  • gl.DEPTH_COMPONENT
  • \n
  • gl.DEPTH_STENCIL
  • \n
", + "type": "A GLenum specifying the size of each integer element in the raw texel data. For the combinations of format and type available, see WebGLRenderingContext.texImage2D().", + "srcData": "A TypedArray or DataView containing the compressed texture data. Its type must match the type parameter; see WebGLRenderingContext.texImage2D().", + "srcOffset": "(WebGL 2 only) An integer specifying the index of srcData to start reading from. Defaults to 0.", + "source": "Read from a DOM pixel source, which can be one of:\n\n

In WebGL 1, the width and height are always inferred from the source. In WebGL 2, they can also be explicitly specified.", + "offset": "(WebGL 2 only) A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -10004,21 +10181,22 @@ "lowDate": "2021-09-20", "highDate": "2024-03-20" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGL2RenderingContext.texSubImage3D() method of the\nWebGL API specifies a sub-rectangle of the\ncurrent texture.", + "doc": "

Note: This feature is available in Web Workers.

\n

The texSubImage3D() method of the WebGL2RenderingContext interface of the WebGL API specifies a three-dimensional sub-rectangle for a texture image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_3D: A three-dimensional texture.
  • \n
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", "xoffset": "A GLint specifying the x offset within the texture image.", "yoffset": "A GLint specifying the y offset within the texture image.", "zoffset": "A GLint specifying the z offset within the texture image.", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", - "depth": "A GLsizei specifying the depth of the texture.", - "format": "A GLenum specifying the format of the texel data. Possible values:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the\nalpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and\nblue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the\ncolor buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha\nis 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
  • gl.R8
  • \n
  • gl.R16F
  • \n
  • gl.R32F
  • \n
  • gl.R8UI
  • \n
  • gl.RG8
  • \n
  • gl.RG16F
  • \n
  • gl.RG32F
  • \n
  • gl.RGUI
  • \n
  • gl.RGB8
  • \n
  • gl.SRGB8
  • \n
  • gl.RGB565
  • \n
  • gl.R11F_G11F_B10F
  • \n
  • gl.RGB9_E5
  • \n
  • gl.RGB16F
  • \n
  • gl.RGB32F
  • \n
  • gl.RGB8UI
  • \n
  • gl.RGBA8
  • \n
  • gl.SRGB_ALPHA8
  • \n
  • gl.RGB5_A1
  • \n
  • gl.RGBA4444
  • \n
  • gl.RGBA16F
  • \n
  • gl.RGBA32F
  • \n
  • gl.RGBA8UI
  • \n
", - "type": "A GLenum specifying the data type of the texel data. Possible values:\n
    \n
  • gl.UNSIGNED_BYTE: 8 bits per channel for gl.RGBA
  • \n
  • gl.UNSIGNED_SHORT_5_6_5: 5 red bits, 6 green bits, 5 blue bits.
  • \n
  • gl.UNSIGNED_SHORT_4_4_4_4: 4 red bits, 4 green bits, 4 blue bits, 4\nalpha bits.
  • \n
  • gl.UNSIGNED_SHORT_5_5_5_1: 5 red bits, 5 green bits, 5 blue bits, 1\nalpha bit.
  • \n
  • gl.BYTE
  • \n
  • gl.UNSIGNED_SHORT
  • \n
  • gl.SHORT
  • \n
  • gl.UNSIGNED_INT
  • \n
  • gl.INT
  • \n
  • gl.HALF_FLOAT
  • \n
  • gl.FLOAT
  • \n
  • gl.UNSIGNED_INT_2_10_10_10_REV
  • \n
  • gl.UNSIGNED_INT_10F_11F_11F_REV
  • \n
  • gl.UNSIGNED_INT_5_9_9_9_REV
  • \n
  • gl.UNSIGNED_INT_24_8
  • \n
  • gl.FLOAT_32_UNSIGNED_INT_24_8_REV (pixels must be\nnull)
  • \n
", - "pixels": "One of the following objects can be used as a pixel source for the texture:\n", - "srcData": "A TypedArray or a DataView object.", - "offset": "A GLintptr byte offset into the WebGLBuffer's data\nstore. Used to upload data to the currently bound WebGLTexture from the\nWebGLBuffer bound to the PIXEL_UNPACK_BUFFER target." + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", + "depth": "A GLsizei specifying the depth of the texture/the number of textures in a TEXTURE_2D_ARRAY.", + "format": "A GLenum specifying how each integer element in the raw texel data should be interpreted as color components.", + "type": "A GLenum specifying the size of each integer element in the raw texel data. For the combinations of format and type available, see WebGLRenderingContext.texSubImage2D().", + "srcData": "A TypedArray or DataView containing the compressed texture data. Its type must match the type parameter; see WebGLRenderingContext.texImage2D().", + "srcOffset": "An integer specifying the index of srcData to start reading from. Defaults to 0.", + "source": "Read from a DOM pixel source, which can be one of:\n", + "offset": "A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -10644,7 +10822,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL).\n

To create a WebGLProgram, call the GL context's createProgram() function. After attaching the shader programs using attachShader(), you link them into a usable program. This is shown in the code below.\n

\n```js\nconst program = gl.createProgram();\n// Attach pre-existing shaders\ngl.attachShader(program, vertexShader);\ngl.attachShader(program, fragmentShader);\ngl.linkProgram(program);\nif (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n  const info = gl.getProgramInfoLog(program);\n  throw `Could not compile WebGL program. \\n\\n${info}`;\n}\n```\n
\n

See WebGLShader for information on creating the vertexShader and fragmentShader in the above example." + "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL).\n

To create a WebGLProgram, call the GL context's createProgram() function. After attaching the shader programs using attachShader(), you link them into a usable program. This is shown in the code below.\n

\n```js\nconst program = gl.createProgram();\n// Attach pre-existing shaders\ngl.attachShader(program, vertexShader);\ngl.attachShader(program, fragmentShader);\ngl.linkProgram(program);\nif (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n  const info = gl.getProgramInfoLog(program);\n  throw new Error(`Could not compile WebGL program. \\n\\n${info}`);\n}\n```\n
\n

See WebGLShader for information on creating the vertexShader and fragmentShader in the above example." }, "webglquery": { "url": "$MDN_URL$/web/api/webglquery", @@ -10762,7 +10940,8 @@ "parameters": { "program": "A WebGLProgram.", "shader": "A fragment or vertex WebGLShader." - } + }, + "returns": "None (undefined)." }, "webglrenderingcontext.bindattriblocation": { "url": "$MDN_URL$/web/api/webglrenderingcontext/bindattriblocation", @@ -10895,7 +11074,7 @@ }, "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.bindTexture() method of the WebGL API binds a given\nWebGLTexture to a target (binding point).", "parameters": { - "target": "A GLenum specifying the binding point (target). Possible values:\n

    \n
  • \n

    gl.TEXTURE_2D: A two-dimensional texture.\n

  • \n
  • \n

    gl.TEXTURE_CUBE_MAP: A cube-mapped texture.\nWhen using a WebGL 2 context,\nthe following values are available additionally:\n

      \n
    • gl.TEXTURE_3D: A three-dimensional texture.
    • \n
    • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
    • \n
    \n
  • \n
", + "target": "A GLenum specifying the binding point (target). Possible values:\n
\n
gl.TEXTURE_2D
\n
\n

A two-dimensional texture.\n

\n
gl.TEXTURE_CUBE_MAP
\n
\n

A cube-mapped texture.\n

\n
\n

When using a WebGL 2 context, the following values are available additionally:\n

\n
gl.TEXTURE_3D
\n
\n

A three-dimensional texture.\n

\n
gl.TEXTURE_2D_ARRAY
\n
\n

A two-dimensional array texture.\n

\n
", "texture": "A WebGLTexture object to bind.\nIf null is passed, the currently bound texture for the specified target is unbound." }, "returns": "None (undefined)." @@ -11117,8 +11296,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.canvas property is a read-only\nreference to the HTMLCanvasElement or OffscreenCanvas\nobject that is associated with the context. It might be null if it is not\nassociated with a <canvas> element or an OffscreenCanvas\nobject.", - "returns": "Either a HTMLCanvasElement or OffscreenCanvas object or\nnull." + "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.canvas property is a read-only\nreference to the HTMLCanvasElement or OffscreenCanvas\nobject that is associated with the context. It might be null if it is not\nassociated with a <canvas> element or an OffscreenCanvas\nobject." }, "webglrenderingcontext.checkframebufferstatus": { "url": "$MDN_URL$/web/api/webglrenderingcontext/checkframebufferstatus", @@ -11166,7 +11344,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.clear() method of the WebGL API clears buffers to preset values.\n

The preset values can be set by clearColor(), clearDepth() or clearStencil().\n

The scissor box, dithering, and buffer writemasks can affect the clear()\nmethod.", + "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.clear() method of the WebGL API clears buffers to preset values.\n

The preset values can be set by clearColor(), clearDepth() or clearStencil().\n

The scissor box, dithering, and buffer writemasks can affect the clear() method. For example, if buffer writing is disabled via colorMask(), depthMask(), or stencilMask(), clear() has no effect on the corresponding buffer.", "parameters": { "mask": "A GLbitfield bitwise OR mask that indicates the buffers to be\ncleared. Possible values are:\n

    \n
  • gl.COLOR_BUFFER_BIT
  • \n
  • gl.DEPTH_BUFFER_BIT
  • \n
  • gl.STENCIL_BUFFER_BIT
  • \n
" }, @@ -11331,18 +11509,20 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The compressedTexImage2D() method of the WebGLRenderingContext interface\nof the WebGL API specifies a two-dimensional texture image in a compressed format.\n

Compressed image formats must be enabled by WebGL extensions before\nusing these methods.", + "doc": "

Note: This feature is available in Web Workers.

\n

The compressedTexImage2D() method of the WebGLRenderingContext interface of the WebGL API specifies a two-dimensional texture image in a compressed format.\n

Compressed image formats are only available via the WebGL2RenderingContext or some WebGL extension.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values for compressedTexImage2D:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "internalformat": "A GLenum specifying the compressed image format. Compressed image\nformats must be enabled by WebGL extensions before\nusing this method. All values are possible for compressedTexImage2D. Possible\nvalues:\n
    \n
  • \n

    When using the WEBGL_compressed_texture_s3tc extension:\n

      \n
    • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_s3tc_srgb extension:\n

      \n
    • ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc extension:\n

      \n
    • ext.COMPRESSED_R11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_R11_EAC
    • \n
    • ext.COMPRESSED_RG11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_RG11_EAC
    • \n
    • ext.COMPRESSED_RGB8_ETC2
    • \n
    • ext.COMPRESSED_RGBA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_SRGB8_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_pvrtc extension:\n

      \n
    • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc1 extension:\n

      \n
    • ext.COMPRESSED_RGB_ETC1_WEBGL
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_astc extension:\n

      \n
    • ext.COMPRESSED_RGBA_ASTC_4x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x8_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x12_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_bptc extension:\n

      \n
    • ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_rgtc extension:\n

      \n
    • ext.COMPRESSED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_RED_GREEN_RGTC2_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
    • \n
    \n
  • \n
", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", - "depth": "A GLsizei specifying the depth of the texture/the number of textures\nin a TEXTURE_2D_ARRAY.", + "target": "A GLenum specifying the binding point (target) of the active compressed texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "internalformat": "A GLenum specifying the compressed image format. Compressed image formats are only available via the WebGL2RenderingContext or some WebGL extension. Possible values:\n
    \n
  • \n

    When using WebGL2RenderingContext:\n

      \n
    • gl.GL_COMPRESSED_R11_EAC
    • \n
    • gl.GL_COMPRESSED_SIGNED_R11_EAC
    • \n
    • gl.GL_COMPRESSED_RG11_EAC
    • \n
    • gl.GL_COMPRESSED_SIGNED_RG11_EAC
    • \n
    • gl.GL_COMPRESSED_RGB8_ETC2
    • \n
    • gl.GL_COMPRESSED_SRGB8_ETC2
    • \n
    • gl.GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • gl.GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • gl.GL_COMPRESSED_RGBA8_ETC2_EAC
    • \n
    • gl.GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_s3tc extension:\n

      \n
    • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_s3tc_srgb extension:\n

      \n
    • ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc extension:\n

      \n
    • ext.COMPRESSED_R11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_R11_EAC
    • \n
    • ext.COMPRESSED_RG11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_RG11_EAC
    • \n
    • ext.COMPRESSED_RGB8_ETC2
    • \n
    • ext.COMPRESSED_RGBA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_SRGB8_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_pvrtc extension:\n

      \n
    • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc1 extension:\n

      \n
    • ext.COMPRESSED_RGB_ETC1_WEBGL
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_astc extension:\n

      \n
    • ext.COMPRESSED_RGBA_ASTC_4x4_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x4_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x5_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x5_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x6_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x5_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x6_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x8_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x5_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x10_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x10_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x12_KHR, ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_bptc extension:\n

      \n
    • ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_rgtc extension:\n

      \n
    • ext.COMPRESSED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_RED_GREEN_RGTC2_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
    • \n
    \n
  • \n
", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", + "depth": "A GLsizei specifying the depth of the texture/the number of textures in a TEXTURE_2D_ARRAY.", "border": "A GLint specifying the width of the border. Must be 0.", - "imageSize": "A GLsizei specifying the number of bytes to read from the buffer\nbound to gl.PIXEL_UNPACK_BUFFER.", - "offset": "A GLintptr specifying the offset in bytes from which to read from the\nbuffer bound to gl.PIXEL_UNPACK_BUFFER.", - "pixels": "A TypedArray or a DataView that will be used as a data store for the\ncompressed image data in memory." + "srcData": "A TypedArray or DataView containing the compressed texture data.", + "srcOffset": "(WebGL 2 only) An integer specifying the index of srcData to start reading from. Defaults to 0.", + "srcLengthOverride": "(WebGL 2 only) An integer specifying the number of elements in srcData to read. Defaults to srcData.length - srcOffset.", + "imageSize": "(WebGL 2 only) A GLsizei specifying the size of the image data in bytes.", + "offset": "(WebGL 2 only) A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -11366,18 +11546,20 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.compressedTexSubImage2D()\nmethod of the WebGL API specifies a\ntwo-dimensional sub-rectangle for a texture image in a compressed format.\n

Compressed image formats must be enabled by WebGL extensions before\nusing this method or a WebGL2RenderingContext must be used.", + "doc": "

Note: This feature is available in Web Workers.

\n

The compressedTexSubImage2D() method of the WebGLRenderingContext interface of the WebGL API specifies a two-dimensional sub-rectangle for a texture image in a compressed format.\n

Compressed image formats are only available via the WebGL2RenderingContext or some WebGL extension.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active\ncompressed texture. Possible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "xoffset": "A GLint specifying the horizontal offset within the compressed\ntexture image.", - "yoffset": "A GLint specifying the vertical offset within the compressed texture\nimage.", + "target": "A GLenum specifying the binding point (target) of the active compressed texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "xoffset": "A GLint specifying the horizontal offset within the compressed texture image.", + "yoffset": "A GLint specifying the vertical offset within the compressed texture image.", "width": "A GLsizei specifying the width of the compressed texture.", "height": "A GLsizei specifying the height of the compressed texture.", - "format": "A GLenum specifying the compressed image format. Compressed image\nformats must be enabled by WebGL extensions before\nusing this method. Possible values:\n
    \n
  • \n

    When using the WEBGL_compressed_texture_s3tc extension:\n

      \n
    • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_s3tc_srgb extension:\n

      \n
    • ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_etc extension:\n

      \n
    • ext.COMPRESSED_R11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_R11_EAC
    • \n
    • ext.COMPRESSED_RG11_EAC
    • \n
    • ext.COMPRESSED_SIGNED_RG11_EAC
    • \n
    • ext.COMPRESSED_RGB8_ETC2
    • \n
    • ext.COMPRESSED_RGBA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_SRGB8_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
    • \n
    • ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    • ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_pvrtc extension:\n

      \n
    • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
    • \n
    • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
    • \n
    \n
  • \n
  • \n

    When using the WEBGL_compressed_texture_astc extension:\n

      \n
    • ext.COMPRESSED_RGBA_ASTC_4x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_5x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_6x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_8x8_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_10x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
    • \n
    • ext.COMPRESSED_RGBA_ASTC_12x12_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_bptc extension:\n

      \n
    • ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
    • \n
    • ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
    • \n
    \n
  • \n
  • \n

    When using the EXT_texture_compression_rgtc extension:\n

      \n
    • ext.COMPRESSED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
    • \n
    • ext.COMPRESSED_RED_GREEN_RGTC2_EXT
    • \n
    • ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
    • \n
    \n
  • \n
", - "imageSize": "A GLsizei specifying the number of bytes to read from the buffer\nbound to gl.PIXEL_UNPACK_BUFFER.", - "offset": "A GLintptr specifying the offset in bytes from which to read from the\nbuffer bound to gl.PIXEL_UNPACK_BUFFER.", - "srcData": "A TypedArray or a DataView that will be used as a data store for the compressed\nimage data in memory." + "format": "A GLenum specifying the compressed image format. For a list of possible values, see WebGLRenderingContext.compressedTexImage2D().", + "srcData": "A TypedArray or DataView containing the compressed texture data.", + "srcOffset": "(WebGL 2 only) An integer specifying the index of srcData to start reading from. Defaults to 0.", + "srcLengthOverride": "(WebGL 2 only) An integer specifying the number of elements in srcData to read. Defaults to srcData.length - srcOffset.", + "imageSize": "(WebGL 2 only) A GLsizei specifying the size of the image data in bytes.", + "offset": "(WebGL 2 only) A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -11401,15 +11583,15 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.copyTexImage2D() method of the\nWebGL API copies pixels from the current\nWebGLFramebuffer into a 2D texture image.", + "doc": "

Note: This feature is available in Web Workers.

\n

The copyTexImage2D() method of the WebGLRenderingContext interface of the WebGL API copies pixels from the current WebGLFramebuffer into a 2D texture image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "internalformat": "A GLenum specifying the color components in the texture. Possible\nvalues:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the\nalpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and\nblue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the\ncolor buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha\nis 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
", - "x": "A GLint specifying the x coordinate of the lower left corner where to\nstart copying.", - "y": "A GLint specifying the y coordinate of the lower left corner where to\nstart copying.", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "internalformat": "A GLenum specifying how the texture should be stored after it's loaded. Possible values:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the alpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and blue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the color buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha is 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
", + "x": "A GLint specifying the x coordinate of the lower left corner where to start copying.", + "y": "A GLint specifying the y coordinate of the lower left corner where to start copying.", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", "border": "A GLint specifying the width of the border. Must be 0." }, "returns": "None (undefined)." @@ -11434,16 +11616,16 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.copyTexSubImage2D() method of\nthe WebGL API copies pixels from the current\nWebGLFramebuffer into an existing 2D texture sub-image.", + "doc": "

Note: This feature is available in Web Workers.

\n

The copyTexSubImage2D() method of the WebGLRenderingContext interface of the WebGL API copies pixels from the current WebGLFramebuffer into a 2D texture sub-image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", "xoffset": "A GLint specifying the horizontal offset within the texture image.", "yoffset": "A GLint specifying the vertical offset within the texture image.", - "x": "A GLint specifying the x coordinate of the lower left corner where to\nstart copying.", - "y": "A GLint specifying the y coordinate of the lower left corner where to\nstart copying.", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture." + "x": "A GLint specifying the x coordinate of the lower left corner where to start copying.", + "y": "A GLint specifying the y coordinate of the lower left corner where to start copying.", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels." }, "returns": "None (undefined)." }, @@ -11869,11 +12051,12 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.detachShader() method of the WebGL API detaches a previously\nattached WebGLShader from a WebGLProgram.", + "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.detachShader() method of the WebGL API detaches a previously\nattached WebGLShader from a WebGLProgram.", "parameters": { "program": "A WebGLProgram.", "shader": "A fragment or vertex WebGLShader." - } + }, + "returns": "None (undefined)." }, "webglrenderingcontext.disable": { "url": "$MDN_URL$/web/api/webglrenderingcontext/disable", @@ -12310,7 +12493,7 @@ "program": "A WebGLProgram specifying the WebGL shader program from which to\nobtain the uniform variable's information.", "index": "A GLuint specifying the index of the uniform attribute to get. This\nvalue is an index 0 to N - 1 as returned\nby gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS)." }, - "returns": "A WebGLActiveInfo object describing the uniform.\n

The type attribute of the return value will be one of the following:\n

    \n
  • \n

    gl.FLOAT\n

  • \n
  • \n

    gl.FLOAT_VEC2\n

  • \n
  • \n

    gl.FLOAT_VEC3\n

  • \n
  • \n

    gl.FLOAT_VEC4\n

  • \n
  • \n

    gl.INT\n

  • \n
  • \n

    gl.INT_VEC2\n

  • \n
  • \n

    gl.INT_VEC3\n

  • \n
  • \n

    gl.INT_VEC4\n

  • \n
  • \n

    gl.BOOL\n

  • \n
  • \n

    gl.BOOL_VEC2\n

  • \n
  • \n

    gl.BOOL_VEC3\n

  • \n
  • \n

    gl.BOOL_VEC4\n

  • \n
  • \n

    gl.FLOAT_MAT2\n

  • \n
  • \n

    gl.FLOAT_MAT3\n

  • \n
  • \n

    gl.FLOAT_MAT4\n

  • \n
  • \n

    gl.SAMPLER_2D\n

  • \n
  • \n

    gl.SAMPLER_CUBE\n

  • \n
  • \n

    When using a WebGL 2 context, the\nfollowing values are possible additionally:\n

      \n
    • gl.UNSIGNED_INT
    • \n
    • gl.UNSIGNED_INT_VEC2
    • \n
    • gl.UNSIGNED_INT_VEC3
    • \n
    • gl.UNSIGNED_INT_VEC4
    • \n
    • gl.FLOAT_MAT2x3
    • \n
    • gl.FLOAT_MAT2x4
    • \n
    • gl.FLOAT_MAT3x2
    • \n
    • gl.FLOAT_MAT3x4
    • \n
    • gl.FLOAT_MAT4x2
    • \n
    • gl.FLOAT_MAT4x3
    • \n
    • gl.SAMPLER_3D
    • \n
    • gl.SAMPLER_2D_SHADOW
    • \n
    • gl.SAMPLER_2D_ARRAY
    • \n
    • gl.SAMPLER_2D_ARRAY_SHADOW
    • \n
    • gl.SAMPLER_CUBE_SHADOW
    • \n
    • gl.INT_SAMPLER_2D
    • \n
    • gl.INT_SAMPLER_3D
    • \n
    • gl.INT_SAMPLER_CUBE
    • \n
    • gl.INT_SAMPLER_2D_ARRAY
    • \n
    • gl.UNSIGNED_INT_SAMPLER_2D
    • \n
    • gl.UNSIGNED_INT_SAMPLER_3D
    • \n
    • gl.UNSIGNED_INT_SAMPLER_CUBE
    • \n
    • gl.UNSIGNED_INT_SAMPLER_2D_ARRAY
    • \n
    \n
  • \n
\n

When gl.linkProgram is called, WebGL creates a list of active uniforms.\nThese are possible values of the name attribute of return values of\ngetActiveUniform. WebGL\ngenerates one or more entries in the list depending on the declared type of the uniform\nin the shader:\n

    \n
  • \n

    Single basic type: one entry with the name of the uniform. E.g.\nuniform vec4 a; will result in a.\n

  • \n
  • \n

    Array of basic type: one entry with the name of the uniform suffixed with\n[0]. E.g. uniform vec4 b[]; will result in\nb[0].\n

  • \n
  • \n

    Struct type: one entry for each member of the struct. E.g.\nuniform struct { float foo; vec4 bar; } c; will result in\nc.foo and c.bar.\n

  • \n
  • \n

    Arrays of structs or arrays: each entry of the array will generate its own entries.\nE.g. uniform struct { float foo; vec4 bar; } d[2]; will result in:\n

      \n
    • d[0].foo
    • \n
    • d[0].bar
    • \n
    • d[1].foo
    • \n
    • d[1].bar
    • \n
    \n
  • \n
  • \n

    Uniform blocks: one entry for each member. If the uniform block has an instance\nname, the block name is prefixed. E.g. uniform Block { float foo; }; will\nresult in foo, and uniform Block { float bar; } e; will\nresult in e.bar.\n

  • \n
\n

The size attribute of the return value corresponds to the length of the\narray for uniforms declared as arrays. Otherwise, it is 1 (this includes interface\nblocks instanced with arrays)." + "returns": "A WebGLActiveInfo object describing the uniform.\n

The type attribute of the return value will be one of the following:\n

    \n
  • gl.FLOAT
  • \n
  • gl.FLOAT_VEC2
  • \n
  • gl.FLOAT_VEC3
  • \n
  • gl.FLOAT_VEC4
  • \n
  • gl.INT
  • \n
  • gl.INT_VEC2
  • \n
  • gl.INT_VEC3
  • \n
  • gl.INT_VEC4
  • \n
  • gl.BOOL
  • \n
  • gl.BOOL_VEC2
  • \n
  • gl.BOOL_VEC3
  • \n
  • gl.BOOL_VEC4
  • \n
  • gl.FLOAT_MAT2
  • \n
  • gl.FLOAT_MAT3
  • \n
  • gl.FLOAT_MAT4
  • \n
  • gl.SAMPLER_2D
  • \n
  • gl.SAMPLER_CUBE
  • \n
  • When using a WebGL 2 context, the\nfollowing values are possible additionally:\n
      \n
    • gl.UNSIGNED_INT
    • \n
    • gl.UNSIGNED_INT_VEC2
    • \n
    • gl.UNSIGNED_INT_VEC3
    • \n
    • gl.UNSIGNED_INT_VEC4
    • \n
    • gl.FLOAT_MAT2x3
    • \n
    • gl.FLOAT_MAT2x4
    • \n
    • gl.FLOAT_MAT3x2
    • \n
    • gl.FLOAT_MAT3x4
    • \n
    • gl.FLOAT_MAT4x2
    • \n
    • gl.FLOAT_MAT4x3
    • \n
    • gl.SAMPLER_3D
    • \n
    • gl.SAMPLER_2D_SHADOW
    • \n
    • gl.SAMPLER_2D_ARRAY
    • \n
    • gl.SAMPLER_2D_ARRAY_SHADOW
    • \n
    • gl.SAMPLER_CUBE_SHADOW
    • \n
    • gl.INT_SAMPLER_2D
    • \n
    • gl.INT_SAMPLER_3D
    • \n
    • gl.INT_SAMPLER_CUBE
    • \n
    • gl.INT_SAMPLER_2D_ARRAY
    • \n
    • gl.UNSIGNED_INT_SAMPLER_2D
    • \n
    • gl.UNSIGNED_INT_SAMPLER_3D
    • \n
    • gl.UNSIGNED_INT_SAMPLER_CUBE
    • \n
    • gl.UNSIGNED_INT_SAMPLER_2D_ARRAY
    • \n
    \n
  • \n
\n

When gl.linkProgram is called, WebGL creates a list of active uniforms.\nThese are possible values of the name attribute of return values of\ngetActiveUniform. WebGL\ngenerates one or more entries in the list depending on the declared type of the uniform\nin the shader:\n

    \n
  • \n

    Single basic type: one entry with the name of the uniform. E.g.\nuniform vec4 a; will result in a.\n

  • \n
  • \n

    Array of basic type: one entry with the name of the uniform suffixed with\n[0]. E.g. uniform vec4 b[]; will result in\nb[0].\n

  • \n
  • \n

    Struct type: one entry for each member of the struct. E.g.\nuniform struct { float foo; vec4 bar; } c; will result in\nc.foo and c.bar.\n

  • \n
  • \n

    Arrays of structs or arrays: each entry of the array will generate its own entries.\nE.g. uniform struct { float foo; vec4 bar; } d[2]; will result in:\n

      \n
    • d[0].foo
    • \n
    • d[0].bar
    • \n
    • d[1].foo
    • \n
    • d[1].bar
    • \n
    \n
  • \n
  • \n

    Uniform blocks: one entry for each member. If the uniform block has an instance\nname, the block name is prefixed. E.g. uniform Block { float foo; }; will\nresult in foo, and uniform Block { float bar; } e; will\nresult in e.bar.\n

  • \n
\n

The size attribute of the return value corresponds to the length of the\narray for uniforms declared as arrays. Otherwise, it is 1 (this includes interface\nblocks instanced with arrays)." }, "webglrenderingcontext.getattachedshaders": { "url": "$MDN_URL$/web/api/webglrenderingcontext/getattachedshaders", @@ -13553,18 +13736,20 @@ "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.texImage2D() method of the WebGL API specifies a two-dimensional texture\nimage.", + "doc": "

Note: This feature is available in Web Workers.

\n

The texImage2D() method of the WebGLRenderingContext interface of the WebGL API specifies a two-dimensional texture image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "internalformat": "A GLenum specifying the color components in the texture.\n

Possible values in both WebGL1 and WebGL2\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
FormatTypeChannelsBytes per pixel
RGBAUNSIGNED_BYTE44
RGBUNSIGNED_BYTE33
RGBAUNSIGNED_SHORT_4_4_4_442
RGBAUNSIGNED_SHORT_5_5_5_142
RGBUNSIGNED_SHORT_5_6_532
LUMINANCE_ALPHAUNSIGNED_BYTE22
LUMINANCEUNSIGNED_BYTE11
ALPHAUNSIGNED_BYTE11
\n

Other possible values in WebGL2 for the versions of texImage2D that\ntake a TypedArray or a DataView, or a GLintptr offset\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\nSized
Format
\n
\nBase
Format
\n
\nR
bits
\n
\nG
bits
\n
\nB
bits
\n
\nA
bits
\n
\nShared
bits
\n
\nColor
renderable
\n
\nTexture
filterable
\n
R8RED8●●
R8_SNORMREDs8●
RG8RG88●●
RG8_SNORMRGs8s8●
RGB8RGB888●●
RGB8_SNORMRGBs8s8s8●
RGB565RGB565●●
RGBA4RGBA4444●●
RGB5_A1RGBA5551●●
RGBA8RGBA8888●●
RGBA8_SNORMRGBAs8s8s8s8●
RGB10_A2RGBA1010102●●
RGB10_A2UIRGBAui10ui10ui10ui2●
SRGB8RGB888●
SRGB8_ALPHA8RGBA8888●●
R16FREDf16●
RG16FRGf16f16●
RGB16FRGBf16f16f16●
RGBA16FRGBAf16f16f16f16●
R32FREDf32
RG32FRGf32f32
RGB32FRGBf32f32f32
RGBA32FRGBAf32f32f32f32
R11F_G11F_B10FRGBf11f11f10●
RGB9_E5RGB9995●
R8IREDi8●
R8UIREDui8●
R16IREDi16●
R16UIREDui16●
R32IREDi32●
R32UIREDui32●
RG8IRGi8i8●
RG8UIRGui8ui8●
RG16IRGi16i16●
RG16UIRGui16ui16●
RG32IRGi32i32●
RG32UIRGui32ui32●
RGB8IRGBi8i8i8
RGB8UIRGBui8ui8ui8
RGB16IRGBi16i16i16
RGB16UIRGBui16ui16ui16
RGB32IRGBi32i32i32
RGB32UIRGBui32ui32ui32
RGBA8IRGBAi8i8i8i8●
RGBA8UIRGBAui8ui8ui8ui8●
RGBA16IRGBAi16i16i16i16●
RGBA16UIRGBAui16ui16ui16ui16●
RGBA32IRGBAi32i32i32i32●
RGBA32UIRGBAui32ui32ui32ui32●
\n

Possible values in WebGL2 for the versions of texImage2D that take a\ntexture an HTMLImageElement, HTMLCanvasElement,\nHTMLVideoElement, ImageBitmap, or ImageData\n

    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the\nalpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and blue\ncomponents.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the color\nbuffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha is\n1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
\n

When using the WEBGL_depth_texture extension:\n

    \n
  • gl.DEPTH_COMPONENT
  • \n
  • gl.DEPTH_STENCIL
  • \n
\n

When using the EXT_sRGB extension:\n

    \n
  • ext.SRGB_EXT
  • \n
  • ext.SRGB_ALPHA_EXT
  • \n
\n

When using a WebGL 2 context, the\nfollowing values are available additionally:\n

    \n
  • gl.R8
  • \n
  • gl.R16F
  • \n
  • gl.R32F
  • \n
  • gl.R8UI
  • \n
  • gl.RG8
  • \n
  • gl.RG16F
  • \n
  • gl.RG32F
  • \n
  • gl.RG8UI
  • \n
  • gl.RG16UI
  • \n
  • gl.RG32UI
  • \n
  • gl.RGB8
  • \n
  • gl.SRGB8
  • \n
  • gl.RGB565
  • \n
  • gl.R11F_G11F_B10F
  • \n
  • gl.RGB9_E5
  • \n
  • gl.RGB16F
  • \n
  • gl.RGB32F
  • \n
  • gl.RGB8UI
  • \n
  • gl.RGBA8
  • \n
  • gl.SRGB8_ALPHA8
  • \n
  • gl.RGB5_A1
  • \n
  • gl.RGB10_A2
  • \n
  • gl.RGBA4
  • \n
  • gl.RGBA16F
  • \n
  • gl.RGBA32F
  • \n
  • gl.RGBA8UI
  • \n
", - "width": "A GLsizei specifying the width of the texture.", - "height": "A GLsizei specifying the height of the texture.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "internalformat": "A GLenum specifying how the texture should be stored after it's loaded. See below for available values.", + "width": "A GLsizei specifying the width of the texture in texels.", + "height": "A GLsizei specifying the height of the texture in texels.", "border": "A GLint specifying the width of the border. Must be 0.", - "format": "A GLenum specifying the format of the texel data. In WebGL 1, this\nmust be the same as internalformat (see above). In WebGL 2, the\ncombinations are listed in this table.", - "type": "A GLenum specifying the data type of the texel data. Possible values:\n
    \n
  • gl.UNSIGNED_BYTE: 8 bits per channel for gl.RGBA
  • \n
  • gl.UNSIGNED_SHORT_5_6_5: 5 red bits, 6 green bits, 5 blue bits.
  • \n
  • gl.UNSIGNED_SHORT_4_4_4_4: 4 red bits, 4 green bits, 4 blue bits, 4\nalpha bits.
  • \n
  • gl.UNSIGNED_SHORT_5_5_5_1: 5 red bits, 5 green bits, 5 blue bits, 1\nalpha bit.
  • \n
\n

When using the WEBGL_depth_texture extension:\n

    \n
  • \n

    gl.UNSIGNED_SHORT\n

  • \n
  • \n

    gl.UNSIGNED_INT\n

  • \n
  • \n

    ext.UNSIGNED_INT_24_8_WEBGL (constant provided by the extension)\n

  • \n
  • \n

    When using the OES_texture_float extension:\n

      \n
    • gl.FLOAT
    • \n
    \n
  • \n
\n

When using the OES_texture_half_float extension:\n

    \n
  • ext.HALF_FLOAT_OES (constant provided by the extension)
  • \n
\n

When using a WebGL 2 context,\nthe following values are available additionally:\n

    \n
  • gl.BYTE
  • \n
  • gl.UNSIGNED_SHORT
  • \n
  • gl.SHORT
  • \n
  • gl.UNSIGNED_INT
  • \n
  • gl.INT
  • \n
  • gl.HALF_FLOAT
  • \n
  • gl.FLOAT
  • \n
  • gl.UNSIGNED_INT_2_10_10_10_REV
  • \n
  • gl.UNSIGNED_INT_10F_11F_11F_REV
  • \n
  • gl.UNSIGNED_INT_5_9_9_9_REV
  • \n
  • gl.UNSIGNED_INT_24_8
  • \n
  • gl.FLOAT_32_UNSIGNED_INT_24_8_REV (pixels must be\nnull)
  • \n
", - "pixels": "The following types can always be used as a pixel source for the texture:\n\n

The following types can only be used as a pixel source when width, height, and border are specified:\n

    \n
  • Uint8Array (must be used if type is gl.UNSIGNED_BYTE)
  • \n
  • Uint16Array (must be used if type is either\ngl.UNSIGNED_SHORT_5_6_5, gl.UNSIGNED_SHORT_4_4_4_4,\ngl.UNSIGNED_SHORT_5_5_5_1, gl.UNSIGNED_SHORT or\next.HALF_FLOAT_OES)
  • \n
  • Uint32Array (must be used if type is gl.UNSIGNED_INT or ext.UNSIGNED_INT_24_8_WEBGL)
  • \n
  • Float32Array (must be used if type is gl.FLOAT)
  • \n
", - "offset": "(WebGL 2 only) A GLintptr byte offset into the\nWebGLBuffer's data store. Used to upload data to the currently bound\nWebGLTexture from the WebGLBuffer bound to the\nPIXEL_UNPACK_BUFFER target." + "format": "A GLenum specifying how each integer element in the raw texel data should be interpreted as color components. In WebGL 1, this must be the same as internalformat. See below for available values.", + "type": "A GLenum specifying the size of each integer element in the raw texel data.\n

The internalformat, format, and type values must be compatible with each other. Possible combinations in both WebGL 1 and WebGL 2 (these internal formats are unsized because you can't specify how many bytes each pixel takes internally):\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
internalformatformattypeInput bytes per pixelInput pixel layout (bits per channel)
RGBRGBUNSIGNED_BYTE3(R, G, B) = (8, 8, 8)
RGBRGBUNSIGNED_SHORT_5_6_52(R, G, B) = (5, 6, 5)
RGBARGBAUNSIGNED_BYTE4(R, G, B, A) = (8, 8, 8, 8)
RGBARGBAUNSIGNED_SHORT_4_4_4_42(R, G, B, A) = (4, 4, 4, 4)
RGBARGBAUNSIGNED_SHORT_5_5_5_12(R, G, B, A) = (5, 5, 5, 1)
LUMINANCE_ALPHALUMINANCE_ALPHAUNSIGNED_BYTE2(L, A) = (8, 8)
LUMINANCELUMINANCEUNSIGNED_BYTE1(L) = (8)
ALPHAALPHAUNSIGNED_BYTE1(A) = (8)
\n

When the OES_texture_float extension is enabled, type can additionally be FLOAT. When the OES_texture_half_float extension is enabled, type can additionally be ext.HALF_FLOAT_OES (constant provided by the extension).\n

When the EXT_sRGB extension is enabled, internalformat can additionally be ext.SRGB_EXT or ext.SRGB_ALPHA_EXT.\n

In WebGL 2, when specifying the source as srcData or offset, the following combinations are additionally available (these internal formats are sized because the internal pixel layout is exactly specified; we omit the input layout here because it works similarly to the one above):\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
internalformatformattypeInternal pixel layoutColor renderableTexture filterable
R8REDUNSIGNED_BYTE(R) = (8)YY
R8_SNORMREDBYTE(R) = (s8)Y
R16FREDHALF_FLOAT, FLOAT(R) = (f16)Y
R32FREDFLOAT(R) = (f32)
R8UIRED_INTEGERUNSIGNED_BYTE(R) = (ui8)Y
R8IRED_INTEGERBYTE(R) = (i8)Y
R16UIRED_INTEGERUNSIGNED_SHORT(R) = (ui16)Y
R16IRED_INTEGERSHORT(R) = (i16)Y
R32UIRED_INTEGERUNSIGNED_INT(R) = (ui32)Y
R32IRED_INTEGERINT(R) = (i32)Y
RG8RGUNSIGNED_BYTE(R, G) = (8, 8)YY
RG8_SNORMRGBYTE(R, G) = (s8, s8)Y
RG16FRGHALF_FLOAT, FLOAT(R, G) = (f16, f16)Y
RG32FRGFLOAT(R, G) = (f32, f32)
RG8UIRG_INTEGERUNSIGNED_BYTE(R, G) = (ui8, ui8)Y
RG8IRG_INTEGERBYTE(R, G) = (i8, i8)Y
RG16UIRG_INTEGERUNSIGNED_SHORT(R, G) = (ui16, ui16)Y
RG16IRG_INTEGERSHORT(R, G) = (i16, i16)Y
RG32UIRG_INTEGERUNSIGNED_INT(R, G) = (ui32, ui32)Y
RG32IRG_INTEGERINT(R, G) = (i32, i32)Y
RGB8RGBUNSIGNED_BYTE(R, G, B) = (8, 8, 8)YY
SRGB8RGBUNSIGNED_BYTE(R, G, B) = (8, 8, 8)Y
RGB565RGBUNSIGNED_BYTE, UNSIGNED_SHORT_5_6_5(R, G, B) = (5, 6, 5)YY
RGB8_SNORMRGBBYTE(R, G, B) = (s8, s8, s8)Y
R11F_G11F_B10FRGBUNSIGNED_INT_10F_11F_11F_REV, HALF_FLOAT, FLOAT(R, G, B) = (f11, f11, f10)Y
RGB9_E5RGBUNSIGNED_INT_5_9_9_9_REV, HALF_FLOAT, FLOAT(R, G, B) = (f9, f9, f9), 5 shared bitsY
RGB16FRGBHALF_FLOAT, FLOAT(R, G, B) = (f16, f16, f16)Y
RGB32FRGBFLOAT(R, G, B) = (f32, f32, f32)
RGB8UIRGB_INTEGERUNSIGNED_BYTE(R, G, B) = (ui8, ui8, ui8)Y
RGB8IRGB_INTEGERBYTE(R, G, B) = (i8, i8, i8)Y
RGB16UIRGB_INTEGERUNSIGNED_SHORT(R, G, B) = (ui16, ui16, ui16)Y
RGB16IRGB_INTEGERSHORT(R, G, B) = (i16, i16, i16)Y
RGB32UIRGB_INTEGERUNSIGNED_INT(R, G, B) = (ui32, ui32, ui32)Y
RGB32IRGB_INTEGERINT(R, G, B) = (i32, i32, i32)Y
RGBA8RGBAUNSIGNED_BYTE(R, G, B, A) = (8, 8, 8, 8)YY
SRGB8_ALPHA8RGBAUNSIGNED_BYTE(R, G, B, A) = (8, 8, 8, 8)YY
RGBA8_SNORMRGBABYTE(R, G, B, A) = (s8, s8, s8, s8)Y
RGB5_A1RGBAUNSIGNED_BYTE, UNSIGNED_SHORT_5_5_5_1, UNSIGNED_INT_2_10_10_10_REV(R, G, B, A) = (5, 5, 5, 1)YY
RGBA4RGBAUNSIGNED_BYTE, UNSIGNED_SHORT_4_4_4_4(R, G, B, A) = (4, 4, 4, 4)YY
RGB10_A2RGBAUNSIGNED_INT_2_10_10_10_REV(R, G, B, A) = (10, 10, 10, 2)YY
RGBA16FRGBAHALF_FLOAT, FLOAT(R, G, B, A) = (f16, f16, f16, f16)Y
RGBA32FRGBAFLOAT(R, G, B, A) = (f32, f32, f32, f32)
RGBA8UIRGBA_INTEGERUNSIGNED_BYTE(R, G, B, A) = (ui8, ui8, ui8, ui8)Y
RGBA8IRGBA_INTEGERBYTE(R, G, B, A) = (i8, i8, i8, i8)Y
RGBA10_A2UIRGBA_INTEGERUNSIGNED_INT_2_10_10_10_REV(R, G, B, A) = (ui10, ui10, ui10, ui2)Y
RGBA16UIRGBA_INTEGERUNSIGNED_SHORT(R, G, B, A) = (ui16, ui16, ui16, ui16)Y
RGBA16IRGBA_INTEGERSHORT(R, G, B, A) = (i16, i16, i16, i16)Y
RGBA32UIRGBA_INTEGERUNSIGNED_INT(R, G, B, A) = (ui32, ui32, ui32, ui32)Y
RGBA32IRGBA_INTEGERINT(R, G, B, A) = (i32, i32, i32, i32)Y
\n

In WebGL 2, when specifying the source as srcData or offset, the following combinations are additionally available, and they can be enabled in WebGL 1 via the WEBGL_depth_texture extension:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
internalformatformattypeInternal pixel layout
DEPTH_COMPONENT16DEPTH_COMPONENTUNSIGNED_SHORT, UNSIGNED_INT(D) = (16)
DEPTH_COMPONENT24DEPTH_COMPONENTUNSIGNED_INT(D) = (24)
DEPTH_COMPONENT32FDEPTH_COMPONENTFLOAT(D) = (f32)
DEPTH24_STENCIL8DEPTH_STENCILUNSIGNED_INT_24_8 (ext.UNSIGNED_INT_24_8_WEBGL)(D, S) = (24, 8)
DEPTH32F_STENCIL8DEPTH_STENCILFLOAT_32_UNSIGNED_INT_24_8_REV(D, S) = (f32, 8)
\n

When the data source is a DOM pixel source, commonly each channel's representation is an unsigned integer type of at least 8 bits. Converting such representation to signed integers or unsigned integers with more bits is not clearly defined. For example, when converting RGBA8 to RGBA16UI, it is unclear whether or not the intention is to scale up values to the full range of a 16-bit unsigned integer. Therefore, only converting to unsigned integer of at most 8 bits, half float, or float is allowed.", + "srcData": "A TypedArray or DataView containing the compressed texture data. Its type must match the type parameter:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
srcData typetype value
Int8ArrayBYTE
Uint8Array, Uint8ClampedArrayUNSIGNED_BYTE
Int16ArraySHORT
Uint16ArrayUNSIGNED_SHORT, UNSIGNED_SHORT_5_6_5, UNSIGNED_SHORT_5_5_5_1, UNSIGNED_SHORT_4_4_4_4, HALF_FLOAT
Int32ArrayINT
Uint32ArrayUNSIGNED_INT, UNSIGNED_INT_5_9_9_9_REV, UNSIGNED_INT_2_10_10_10_REV, UNSIGNED_INT_10F_11F_11F_REV, UNSIGNED_INT_24_8
Float32ArrayFLOAT
\n

When type is FLOAT_32_UNSIGNED_INT_24_8_REV, srcData must be null.", + "srcOffset": "(WebGL 2 only) An integer specifying the index of srcData to start reading from. Defaults to 0.", + "source": "Read from a DOM pixel source, which can be one of:\n

\n

In WebGL 1, the width and height are always inferred from the source. In WebGL 2, they can also be explicitly specified.", + "offset": "(WebGL 2 only) A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -13608,18 +13793,20 @@ "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.texSubImage2D() method of the\nWebGL API specifies a sub-rectangle of the\ncurrent texture.", + "doc": "

Note: This feature is available in Web Workers.

\n

The texSubImage2D() method of the WebGLRenderingContext interface of the WebGL API specifies a two-dimensional sub-rectangle for a texture image.", "parameters": { - "target": "A GLenum specifying the binding point (target) of the active texture.\nPossible values:\n

    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped\ntexture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped\ntexture.
  • \n
", - "level": "A GLint specifying the level of detail. Level 0 is the base image\nlevel and level n is the n-th mipmap reduction level.", - "xoffset": "A GLint specifying the lower left texel x coordinate of a width-wide\nby height-wide rectangular subregion of the texture array.", - "yoffset": "A GLint specifying the lower left texel y coordinate of a width-wide\nby height-wide rectangular subregion of the texture array.", + "target": "A GLenum specifying the binding point (target) of the active texture. Possible values:\n
    \n
  • gl.TEXTURE_2D: A two-dimensional texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
  • \n
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
  • \n
", + "level": "A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.", + "xoffset": "A GLint specifying the lower left texel x coordinate of a width-wide by height-wide rectangular subregion of the texture array.", + "yoffset": "A GLint specifying the lower left texel y coordinate of a width-wide by height-wide rectangular subregion of the texture array.", "width": "A GLsizei specifying the width of the texture in texels.", "height": "A GLsizei specifying the height of the texture in texels.", - "format": "A GLenum specifying the format of the texel data. Possible values:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the\nalpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and\nblue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the\ncolor buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha\nis 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
\n

When using the EXT_sRGB extension:\n

    \n
  • ext.SRGB_EXT
  • \n
  • ext.SRGB_ALPHA_EXT
  • \n
\n

When using a WebGL 2 context,\nthe following values are available additionally:\n

    \n
  • gl.RED
  • \n
  • gl.RG
  • \n
  • gl.RED_INTEGER
  • \n
  • gl.RG_INTEGER
  • \n
  • gl.RGB_INTEGER
  • \n
  • gl.RGBA_INTEGER
  • \n
", - "type": "A GLenum specifying the data type of the texel data. Possible values:\n
    \n
  • gl.UNSIGNED_BYTE: 8 bits per channel for gl.RGBA
  • \n
  • gl.UNSIGNED_SHORT_5_6_5: 5 red bits, 6 green bits, 5 blue bits.
  • \n
  • gl.UNSIGNED_SHORT_4_4_4_4: 4 red bits, 4 green bits, 4 blue bits, 4\nalpha bits.
  • \n
  • gl.UNSIGNED_SHORT_5_5_5_1: 5 red bits, 5 green bits, 5 blue bits, 1\nalpha bit.
  • \n
\n

When using the OES_texture_float extension:\n

    \n
  • gl.FLOAT
  • \n
\n

When using the OES_texture_half_float extension:\n

    \n
  • gl.HALF_FLOAT_OES
  • \n
\n

When using a WebGL 2 context,\nthe following values are available additionally:\n

    \n
  • gl.BYTE
  • \n
  • gl.UNSIGNED_SHORT
  • \n
  • gl.SHORT
  • \n
  • gl.UNSIGNED_INT
  • \n
  • gl.INT
  • \n
  • gl.HALF_FLOAT
  • \n
  • gl.FLOAT
  • \n
  • gl.UNSIGNED_INT_2_10_10_10_REV
  • \n
  • gl.UNSIGNED_INT_10F_11F_11F_REV
  • \n
  • gl.UNSIGNED_INT_5_9_9_9_REV
  • \n
  • gl.UNSIGNED_INT_24_8
  • \n
  • gl.FLOAT_32_UNSIGNED_INT_24_8_REV (pixels must be\nnull)
  • \n
", - "pixels": "One of the following objects can be used as a pixel source for the texture:\n", - "offset": "(WebGL 2 only) A GLintptr byte offset into the\nWebGLBuffer's data store. Used to upload data to the currently bound\nWebGLTexture from the WebGLBuffer bound to the\nPIXEL_UNPACK_BUFFER target." + "format": "A GLenum specifying how each integer element in the raw texel data should be interpreted as color components. Possible values:\n
    \n
  • gl.ALPHA: Discards the red, green and blue components and reads the alpha component.
  • \n
  • gl.RGB: Discards the alpha components and reads the red, green and blue components.
  • \n
  • gl.RGBA: Red, green, blue and alpha components are read from the color buffer.
  • \n
  • gl.LUMINANCE: Each color component is a luminance component, alpha is 1.0.
  • \n
  • gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
  • \n
\n

When using the EXT_sRGB extension:\n

    \n
  • ext.SRGB_EXT
  • \n
  • ext.SRGB_ALPHA_EXT
  • \n
\n

When using a WebGL2RenderingContext, the following values are available additionally:\n

    \n
  • gl.RED
  • \n
  • gl.RED_INTEGER
  • \n
  • gl.RG
  • \n
  • gl.RG_INTEGER
  • \n
  • gl.RGB_INTEGER
  • \n
  • gl.RGBA_INTEGER
  • \n
  • gl.DEPTH_COMPONENT
  • \n
  • gl.DEPTH_STENCIL
  • \n
", + "type": "A GLenum specifying the size of each integer element in the raw texel data. For the combinations of format and type available, see WebGLRenderingContext.texImage2D().", + "srcData": "A TypedArray or DataView containing the compressed texture data. Its type must match the type parameter; see WebGLRenderingContext.texImage2D().", + "srcOffset": "(WebGL 2 only) An integer specifying the index of srcData to start reading from. Defaults to 0.", + "source": "Read from a DOM pixel source, which can be one of:\n\n

In WebGL 1, the width and height are always inferred from the source. In WebGL 2, they can also be explicitly specified.", + "offset": "(WebGL 2 only) A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER." }, "returns": "None (undefined)." }, @@ -13694,7 +13881,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.unpackColorSpace property specifies the color space to convert to when importing textures. Along with the default (srgb), the display-p3 color space can be used.\n

Texture image sources can be the following:\n

\n

Textures are imported using the WebGL2RenderingContext.texImage2D() and WebGL2RenderingContext.texSubImage2D() methods and conversion to the specified unpackColorSpace color space happens during import.\n

Note that this doesn't apply to HTMLImageElement when the UNPACK_COLORSPACE_CONVERSION_WEBGL pixel storage parameter is set to NONE." + "doc": "

Note: This feature is available in Web Workers.

\n

The WebGLRenderingContext.unpackColorSpace property specifies the color space to convert to when importing textures. Along with the default (srgb), the display-p3 color space can be used.\n

Texture image sources can be the following:\n

\n

Textures are imported using the WebGLRenderingContext.texImage2D() and WebGLRenderingContext.texSubImage2D() methods and conversion to the specified unpackColorSpace color space happens during import.\n

Note that this doesn't apply to HTMLImageElement when the UNPACK_COLORSPACE_CONVERSION_WEBGL pixel storage parameter is set to NONE." }, "webglrenderingcontext.useprogram": { "url": "$MDN_URL$/web/api/webglrenderingcontext/useprogram", @@ -14087,7 +14274,7 @@ "Safari": "4", "SafariIOS": "3.2" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Point is an interface which represents a point in 2-dimensional space. It is non-standard, not broadly compatible, and should not be used.\n

\n

Note:\nAlthough it is not directly related to this defunct interface, you are probably looking for DOMPoint.\n

" + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Point is an interface which represents a point in 2-dimensional space. It is non-standard, not broadly compatible, and should not be used.\n

\n

Note:\nAlthough it is not directly related to this defunct interface, you are probably looking for DOMPoint.\n

" }, "websocket": { "url": "$MDN_URL$/web/api/websocket", @@ -14378,7 +14565,7 @@ "Edge": "124", "Opera": "110" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The close() method of the\nWebSocketStream interface closes the WebSocket connection. The method optionally accepts an object containing a custom code and/or reason indicating why the connection was closed.\n

An alternative mechanism for closing a WebSocketStream is to specify an AbortSignal in the signal option of the constructor upon creation. The associated AbortController can then be used to close the WebSocket connection. This is generally the preferred mechanism. However, close() can be used if you wish to specify a custom code and/or reason.", + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The close() method of the\nWebSocketStream interface closes the WebSocket connection. The method optionally accepts an object containing a custom code and/or reason indicating why the connection was closed.", "parameters": { "options": "An options object containing the following properties:\n

\n
closeCode Optional
\n
\n

A number representing the closing code (see the full list of CloseEvent status codes).\n

\n
reason Optional
\n
\n

A string representing a human-readable description of the reason why the socket connection is closed. The maximum allowed length for a reason string is 123 bytes. The string is automatically encoded as UTF-8 when the function is invoked.\n

\n
" }, @@ -14444,7 +14631,7 @@ "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Note: This feature is available in Web Workers.

\n

The WebSocketStream() constructor creates a new\nWebSocketStream object instance.", "parameters": { "url": "A string representing the URL of the WebSocket server you want to connect to with this WebSocketStream instance. Allowed URL schemes are \"ws\", \"wss\", \"http\", and \"https\".", - "options": "An object that can contain the following properties:\n

\n
protocols Optional
\n
\n

A single string or an array of strings representing the sub-protocol(s) that the client would like to use, for example \"amqp\" or \"mqtt\". Subprotocols may be selected from the IANA WebSocket Subprotocol Name Registry or may be custom names jointly understood by the client and the server. A single server can implement multiple WebSocket sub-protocols, and handle different types of interactions depending on the specified value. If it is omitted, an empty array is used by default. If protocols is included, the connection will only be established if the server reports that it has selected one of these sub-protocols.\n

\n
signal Optional
\n
\n

An AbortSignal belonging to an AbortController that you want to use to close the WebSocket connection.\n

\n
" + "options": "An object that can contain the following properties:\n
\n
protocols Optional
\n
\n

A single string or an array of strings representing the sub-protocol(s) that the client would like to use, for example \"amqp\" or \"mqtt\". Subprotocols may be selected from the IANA WebSocket Subprotocol Name Registry or may be custom names jointly understood by the client and the server. A single server can implement multiple WebSocket sub-protocols, and handle different types of interactions depending on the specified value. If it is omitted, an empty array is used by default. If protocols is included, the connection will only be established if the server reports that it has selected one of these sub-protocols.\n

\n
signal Optional
\n
\n

An AbortSignal, which can be used to abort the connection before the handshake has completed (that is, before the opened promise resolves). This is primarily intended to help implement connection timeouts. As such, it does nothing after the connection is established.\n

\n
" }, "throws": { "SyntaxError DOMException": "Thrown if the URL scheme is not one of \"ws\", \"wss\", \"http\", or \"https\"." @@ -14603,7 +14790,7 @@ "level": "NONE" }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The getStats() method of the WebTransport interface asynchronously returns an object containing HTTP/3 connection statistics.", - "returns": "A Promise that resolves to a object containing HTTP/3 connection statistics.\nThe returned object may have the following properties/statistics:\n

\n
timestamp
\n
\n

A DOMHighResTimeStamp indicating the timestamp at which the statistics were gathered, relative to Jan 1, 1970, UTC.\n

\n
bytesSent
\n
\n

A positive integer indicating the number of bytes sent on the QUIC connection, including retransmissions.\nNote that this count does not include additional data from protocols used by QUIC, such as UDP, or any other outer framing.\n

\n
packetsSent
\n
\n

A positive integer indicating the number of packets sent on the QUIC connection, including those that are known to have been lost.\n

\n
packetsLost
\n
\n

A positive integer indicating the number of packets lost on the QUIC connection.\nThis value will increase as packets are declared lost, and decrease if they are subsequently received.\n

\n
numOutgoingStreamsCreated
\n
\n

A positive integer indicating the number of outgoing QUIC streams created on the QUIC connection.\n

\n
numIncomingStreamsCreated
\n
\n

A positive integer indicating the number of incoming QUIC streams created on the QUIC connection.\n

\n
bytesReceived
\n
\n

A positive integer indicating the total number of bytes received on the QUIC connection.\nThis count includes duplicate data from streams, but does not include additional data for protocols used by QUIC, such as UDP, or any other outer framing.\n

\n
packetsReceived
\n
\n

A positive integer indicating the total number of packets received on the QUIC connection, including packets that were not processable.\n

\n
smoothedRtt
\n
\n

A DOMHighResTimeStamp containing the smoothed round-trip time (RTT) currently observed on the connection, calculated as an exponentially weighted moving average of an endpoint's RTT samples after taking account of acknowledgement delays.\n

\n
rttVariation
\n
\n

A DOMHighResTimeStamp containing the mean variation in round-trip time samples currently observed on the connection.\n

\n
minRtt
\n
\n

A DOMHighResTimeStamp containing the minimum round-trip time observed on the entire connection.\n

\n
datagrams
\n
\n

An object containing statistics for datagram transmission over the connection.\nThe object has the following properties:\n

\n
timestamp
\n
\n

A DOMHighResTimeStamp indicating the timestamp at which the statistics were gathered, relative to Jan 1, 1970, UTC.\n

\n
expiredOutgoing
\n
\n

A positive integer indicating the number of datagrams that were dropped from the queue for sending because they expired.\nNote that the maximum age before a datagram in the send-queue expires can be found in outgoingMaxAge.\n

\n
droppedIncoming
\n
\n

A positive integer indicating the number incoming datagrams that were dropped.\nIncoming datagrams are dropped if the application does not read them before new datagrams overflow the readable stream receive queue.\n

\n
lostOutgoing
\n
\n

A positive integer indicating the number of sent datagrams that were declared lost.\nNote that a datagram may be declared lost if, for example, no acknowledgement arrived within a timeout, or an acknowledgement for a later datagram was received first.\n

\n
\n
\n
\n" + "returns": "A Promise that resolves to a object containing HTTP/3 connection statistics.\nThe returned object may have the following properties/statistics:\n
\n
timestamp
\n
\n

A DOMHighResTimeStamp indicating the timestamp at which the statistics were gathered, relative to Jan 1, 1970, UTC.\n

\n
bytesSent
\n
\n

A positive integer indicating the number of bytes sent on the QUIC connection, including retransmissions.\nNote that this count does not include additional data from protocols used by QUIC, such as UDP, or any other outer framing.\n

\n
packetsSent
\n
\n

A positive integer indicating the number of packets sent on the QUIC connection, including those that are known to have been lost.\n

\n
packetsLost
\n
\n

A positive integer indicating the number of packets lost on the QUIC connection.\nThis value will increase as packets are declared lost, and decrease if they are subsequently received.\n

\n
numOutgoingStreamsCreated
\n
\n

A positive integer indicating the number of outgoing QUIC streams created on the QUIC connection.\n

\n
numIncomingStreamsCreated
\n
\n

A positive integer indicating the number of incoming QUIC streams created on the QUIC connection.\n

\n
bytesReceived
\n
\n

A positive integer indicating the total number of bytes received on the QUIC connection.\nThis count includes duplicate data from streams, but does not include additional data for protocols used by QUIC, such as UDP, or any other outer framing.\n

\n
packetsReceived
\n
\n

A positive integer indicating the total number of packets received on the QUIC connection, including packets that were not processable.\n

\n
smoothedRtt
\n
\n

A DOMHighResTimeStamp containing the smoothed round-trip time (RTT) currently observed on the connection, calculated as an exponentially weighted moving average of an endpoint's RTT samples after taking account of acknowledgement delays.\n

\n
rttVariation
\n
\n

A DOMHighResTimeStamp containing the mean variation in round-trip time samples currently observed on the connection.\n

\n
minRtt
\n
\n

A DOMHighResTimeStamp containing the minimum round-trip time observed on the entire connection.\n

\n
datagrams
\n
\n

An object containing statistics for datagram transmission over the connection.\nThe object has the following properties:\n

\n
timestamp
\n
\n

A DOMHighResTimeStamp indicating the timestamp at which the statistics were gathered, relative to Jan 1, 1970, UTC.\n

\n
expiredOutgoing
\n
\n

A positive integer indicating the number of datagrams that were dropped from the queue for sending because they expired.\nNote that the maximum age before a datagram in the send-queue expires can be found in outgoingMaxAge.\n

\n
droppedIncoming
\n
\n

A positive integer indicating the number incoming datagrams that were dropped.\nIncoming datagrams are dropped if the application does not read them before new datagrams overflow the readable stream receive queue.\n

\n
lostOutgoing
\n
\n

A positive integer indicating the number of sent datagrams that were declared lost.\nNote that a datagram may be declared lost if, for example, no acknowledgement arrived within a timeout, or an acknowledgement for a later datagram was received first.\n

\n
\n
\n
\n" }, "webtransport.incomingbidirectionalstreams": { "url": "$MDN_URL$/web/api/webtransport/incomingbidirectionalstreams", @@ -14884,7 +15071,8 @@ "webtransportdatagramduplexstream.writable": { "url": "$MDN_URL$/web/api/webtransportdatagramduplexstream/writable", "status": [ - "StandardTrack" + "StandardTrack", + "Deprecated" ], "compatibility": { "Chrome": "97", @@ -14894,10 +15082,7 @@ "FirefoxAndroid": "114", "Opera": "83" }, - "baseline": { - "level": "NONE" - }, - "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The writable read-only property of the WebTransportDatagramDuplexStream interface returns a WritableStream instance that can be used to unreliably write outgoing datagrams to the stream.\n

\"Unreliably\" means that transmission of data is not guaranteed, nor is arrival in a specific order. This is fine in some situations and provides very fast delivery. For example, you might want to transmit regular game state updates where each message supersedes the last one that arrives, and order is not important." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The writable read-only property of the WebTransportDatagramDuplexStream interface returns a WritableStream instance that can be used to unreliably write outgoing datagrams to the stream.\n

\"Unreliably\" means that transmission of data is not guaranteed, nor is arrival in a specific order. This is fine in some situations and provides very fast delivery. For example, you might want to transmit regular game state updates where each message supersedes the last one that arrives, and order is not important." }, "webtransporterror": { "url": "$MDN_URL$/web/api/webtransporterror", @@ -15054,7 +15239,6 @@ "wgsllanguagefeatures": { "url": "$MDN_URL$/web/api/wgsllanguagefeatures", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -15062,12 +15246,13 @@ "ChromeAndroid": "121", "Edge": "115", "Opera": "101", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The WGSLLanguageFeatures interface of the WebGPU API is a setlike object that reports the WGSL language extensions supported by the WebGPU implementation.\n

The WGSLLanguageFeatures object is accessed via the GPU.wgslLanguageFeatures property.\n

\n

Note:\nNot all WGSL language extensions are available to WebGPU in all browsers that support the API. We recommend you thoroughly test any extensions you choose to use.\n

" + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is available in Web Workers.

\n

The WGSLLanguageFeatures interface of the WebGPU API is a setlike object that reports the WGSL language extensions supported by the WebGPU implementation.\n

The WGSLLanguageFeatures object is accessed via the GPU.wgslLanguageFeatures property.\n

\n

Note:\nNot all WGSL language extensions are available to WebGPU in all browsers that support the API. We recommend you thoroughly test any extensions you choose to use.\n

" }, "wheelevent": { "url": "$MDN_URL$/web/api/wheelevent", @@ -15267,7 +15452,7 @@ "parameters": { "encodedData": "A base64-encoded string, using the alphabet produced by Window.btoa()." }, - "returns": "A binary string containing raw bytes decoded from encodedData. Strings in JavaScript are encoded as UTF-16, so this means each character must have a code point less than 256, representing one byte of data.", + "returns": "A binary string containing raw bytes decoded from encodedData. Strings in JavaScript are encoded as UTF-16, so this means each character must have a code point less than 256, representing one byte of data.", "throws": { "InvalidCharacterError DOMException": "Thrown if encodedData is not valid base64." } @@ -15300,7 +15485,7 @@ }, "doc": "The btoa() method of the Window interface creates a\nBase64-encoded ASCII string from a binary string (i.e., a\nstring in which each character in the string is treated as a byte\nof binary data).\n

You can use this method to encode data which may otherwise cause communication\nproblems, transmit it, then use the Window.atob() method to decode the data again.\nFor example, you can encode control characters such as ASCII values 0 through 31.\n

Also consider using the Uint8Array.prototype.toBase64() method if your data is in a Uint8Array object to avoid creating a string containing raw bytes.", "parameters": { - "stringToEncode": "The binary string to encode. Strings in JavaScript are encoded as UTF-16, so this means each character must have a code point less than 256, representing one byte of data." + "stringToEncode": "The binary string to encode. Strings in JavaScript are encoded as UTF-16, so this means each character must have a code point less than 256, representing one byte of data." }, "returns": "An ASCII string containing the Base64 representation of stringToEncode.", "throws": { @@ -15380,7 +15565,7 @@ "Safari": "", "SafariIOS": "" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The Window.captureEvents() method does nothing.\n

\n

Note:\nThis is an method long removed from the specification. It is kept in browsers to prevent code breakage but does nothing.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

The Window.captureEvents() method does nothing. Its original behavior has been removed from the specification, but the method itself has been retained so as not to break code that calls it.", "returns": "None (undefined)." }, "window.clearimmediate": { @@ -15389,7 +15574,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

This method clears the action specified by window.setImmediate.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

This method clears the action specified by window.setImmediate.", "parameters": { "immediateID": "The ID returned by window.setImmediate." }, @@ -15434,15 +15619,14 @@ "FirefoxAndroid": "4", "Opera": "3", "Safari": "1", - "SafariIOS": "1", - "Deno": "" + "SafariIOS": "1" }, "baseline": { "level": "HIGH", "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The Window.close() method closes the current window, or\nthe window on which it was called.\n

This method can only be called on windows that were opened by a script using the\nWindow.open() method, or on top-level windows that have a single history entry. If the window doesn't match these requirements, an error\nsimilar to this one appears in the console:\nScripts may not close windows that were not opened by script.\n

Note also that close() has no effect when called on Window\nobjects returned by\nHTMLIFrameElement.contentWindow.", + "doc": "The Window.close() method closes the current window, or\nthe window on which it was called.\n

Windows are script-closable if they were created by web content. This generally includes:\n

    \n
  • Windows opened using Window.open()
  • \n
  • Windows opened via web content, such as links (<a target=\"_blank\">) or forms (<form target=\"_blank\">), without user modifier actions
  • \n
\n

Windows opened by browser UI actions — such as right-click → Open in new tab, Ctrl+Click, Shift+Click, or middle-click — are often not script-closable. They may only be closed if they have not been navigated (history length remains 1). Calling close() otherwise typically shows a console warning: Scripts may not close windows that were not opened by script.\n

Note also that close() has no effect when called on Window\nobjects returned by\nHTMLIFrameElement.contentWindow.", "returns": "None (undefined)." }, "window.closed": { @@ -15504,13 +15688,15 @@ "Chrome": "87", "ChromeAndroid": "87", "Edge": "87", - "Firefox": "preview", + "Firefox": "140", + "FirefoxAndroid": "140", "Opera": "73", "Safari": "18.4", "SafariIOS": "18.4" }, "baseline": { - "level": "NONE" + "level": "LOW", + "lowDate": "2025-06-24" }, "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The cookieStore read-only property of the Window interface returns a reference to the CookieStore object for the current document context. This is an entry point for the Cookie Store API." }, @@ -15643,7 +15829,7 @@ "window.dump": { "url": "$MDN_URL$/web/api/window/dump", "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Window.dump() method logs messages to the browser's standard output (stdout). If the browser was started from a terminal, output sent to dump() will appear in the terminal.\n

Output from dump() is not sent to the browser's developer tools console. To log to the developer tools console, use console.log().", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Window.dump() method logs messages to the browser's standard output (stdout). If the browser was started from a terminal, output sent to dump() will appear in the terminal.\n

Output from dump() is not sent to the browser's developer tools console. To log to the developer tools console, use console.log().", "parameters": { "message": "A string containing the message to log." }, @@ -15690,9 +15876,9 @@ "StandardTrack" ], "compatibility": { - "Chrome": "115", - "ChromeAndroid": "115", - "Edge": "115", + "Chrome": "126", + "ChromeAndroid": "126", + "Edge": "126", "Opera": "112" }, "baseline": { @@ -15716,22 +15902,11 @@ "throws": { "AbortError DOMException": "The request was aborted due to a call to the AbortController\nabort() method.", "NotAllowedError DOMException": "Thrown if use of the Topics API is specifically disallowed by a browsing-topics Permissions Policy, and a fetch() request was made with browsingTopics: true.", - "TypeError": "Can occur for the following reasons:", - "Blocked by a permissions policy": "Use of the\nAttribution Reporting API\nis blocked by a\nattribution-reporting\nPermissions-Policy\n, and a\nfetch()\nrequest was made with\nattributionReporting\nspecified.", - "Invalid header name.": "

\n```js\n// space in \"C ontent-Type\"\nconst headers = {\n  \"C ontent-Type\": \"text/xml\",\n  \"Breaking-Bad\": \"<3\",\n};\nfetch(\"https://example.com/\", { headers });\n        \n```\n
", - "Invalid header value
\nThe header object must contain exactly two elements.": "
\n```js\nconst headers = [\n  [\"Content-Type\", \"text/html\", \"extra\"],\n  [\"Accept\"],\n];\nfetch(\"https://example.com/\", { headers });\n        \n```\n
", - "Invalid URL or scheme
\nor using a scheme that fetch does not support
\nor using a scheme that is not supported for a particular request mode.": "
\n```js\nfetch(\"blob://example.com/\", { mode: \"cors\" });\n        \n```\n
", - "URL includes credentials.": "
\n```js\nfetch(\"https://user:password@example.com/\");\n        \n```\n
", - "Invalid referrer URL.": "
\n```js\nfetch(\"https://example.com/\", { referrer: \"./abc\\u0000df\" });\n        \n```\n
", - "Invalid modes (navigate and websocket).": "
\n```js\nfetch(\"https://example.com/\", { mode: \"navigate\" });\n        \n```\n
", - "If the request cache mode is \"only-if-cached\" and the request mode is other than \"same-origin\".": "
\n```js\nfetch(\"https://example.com/\", {\n  cache: \"only-if-cached\",\n  mode: \"no-cors\",\n});\n        \n```\n
", - "If the request method is an invalid name token or one of the forbidden headers\n(CONNECT, TRACE or TRACK).": "
\n```js\nfetch(\"https://example.com/\", { method: \"CONNECT\" });\n        \n```\n
", - "If the request mode is \"no-cors\" and the request method is not a CORS-safe-listed method\n(GET, HEAD, or POST).": "
\n```js\nfetch(\"https://example.com/\", {\n  method: \"CONNECT\",\n  mode: \"no-cors\",\n});\n        \n```\n
", - "If the request method is GET or HEAD and the body is non-null or not undefined.": "
\n```js\nfetch(\"https://example.com/\", {\n  method: \"GET\",\n  body: new FormData(),\n});\n        \n```\n
" + "TypeError": "Can occur for the following reasons:\n
    \n
  • The requested URL is invalid.
  • \n
  • The requested URL includes credentials (username and password).
  • \n
  • The RequestInit object passed as the value of options included properties with invalid values.
  • \n
  • The request is blocked by a permissions policy.
  • \n
  • There is a network error (for example, because the device does not have connectivity).
  • \n
" } }, "window.fetchlater": { - "url": "$MDN_URL$/web/api/window/fetchLater", + "url": "$MDN_URL$/web/api/window/fetchlater", "status": [ "Experimental", "StandardTrack" @@ -15752,7 +15927,7 @@ }, "returns": "A FetchLaterResult containing an activated boolean property indicating if the request has been sent yet.\n
\n

Note:\nOnce the fetch request is sent, its response — including the body and headers — is not made available and will be ignored.\n

", "throws": { - "QuotaExceededError DOMException": "Use of this feature was blocked due to exceeding the available quota. See fetchLater() quotas for more details. Callers of fetchLater() should be defensive and catch QuotaExceededError errors in almost all cases, especially if they are embedding third-party JavaScript.", + "QuotaExceededError": "Use of this feature was blocked due to exceeding the available quota. See fetchLater() quotas for more details. Callers of fetchLater() should be defensive and catch QuotaExceededError errors in almost all cases, especially if they are embedding third-party JavaScript.", "RangeError DOMException": "Thrown when a negative activateAfter value is specified.", "TypeError DOMException": "In addition to the reasons for fetch(), this exception will also be thrown for a ReadableStream request (which cannot be deferred) or for use of untrustworthy URLs (such as http://)." } @@ -15769,15 +15944,15 @@ "Safari": "3", "SafariIOS": "" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n
\n

Note:\nSupport for Window.find() might change in future\nversions of Gecko. See Firefox bug 672395.\n

\n

The Window.find() method finds a string in a window sequentially.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n
\n

Note:\nSupport for Window.find() might change in future\nversions of Gecko. See Firefox bug 672395.\n

\n

The Window.find() method finds a string in a window sequentially.", "parameters": { - "aString": "The text string for which to search.", - "aCaseSensitive": "A boolean value. If true, specifies a case-sensitive search.", - "aBackwards": "A boolean value. If true, specifies a backward search.", - "aWrapAround": "A boolean value. If true, specifies a wrap around search.", - "aWholeWord": "A boolean value. If true, specifies a whole word search.", - "aSearchInFrames": "A boolean value. If true, specifies a search in frames.", - "aShowDialog": "A boolean value. If true, a search dialog is shown." + "string": "The text string for which to search.", + "caseSensitive": "A boolean value. If true, specifies a case-sensitive search.", + "backwards": "A boolean value. If true, specifies a backward search.", + "wrapAround": "A boolean value. If true, specifies a wrap around search.", + "wholeWord": "A boolean value. If true, specifies a whole word search.", + "searchInFrames": "A boolean value. If true, specifies a search in frames.", + "showDialog": "A boolean value. If true, a search dialog is shown." }, "returns": "true if the string is found; otherwise, false." }, @@ -15854,7 +16029,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The fullScreen property of the Window\ninterface indicates whether the window is displayed in full screen mode or not." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The fullScreen property of the Window\ninterface indicates whether the window is displayed in full screen mode or not." }, "window.getcomputedstyle": { "url": "$MDN_URL$/web/api/window/getcomputedstyle", @@ -15883,7 +16058,7 @@ }, "returns": "A live CSSStyleDeclaration object, which updates automatically when the element's styles are changed.\n

Note that:\n

    \n
  • The returned CSSStyleDeclaration object contains active values for CSS property longhand names as well as shorthand names. For example, the returned object contains entries for border-bottom-width in addition to the border-width and border shorthand property names.
  • \n
  • Returned values are sometimes deliberately inaccurate. To avoid the \"CSS History Leak\" security issue, browsers may lie about the computed styles for a visited link, returning values as if the user never visited the linked URL. See Plugging the CSS history leak and Privacy-related changes coming to CSS :visited for examples of how this is implemented.
  • \n
  • During CSS transitions, getComputedStyle returns the original property value in Firefox, but the final property value in WebKit.
  • \n
  • In Firefox, properties with the value auto return the used value, not the value auto. So if you apply top:auto and bottom:0 on an element with height:30px and a containing block of height:100px, Firefox's computed style for top returns 70px, as 100 − 30 = 70.
  • \n
  • For compatibility reasons, serialized color values are expressed as rgb() colors if the alpha channel value is exactly 1, and rgba() colors otherwise. In both cases, legacy syntax is used, with commas as separators (for example rgb(255, 0, 0)).
  • \n
\n

The returned object is the same CSSStyleDeclaration type as the object returned from the element's style property. However, the two objects have different purposes:\n

    \n
  • The object from getComputedStyle is read-only, and should be used to inspect the element's style — including those set by a <style> element or an external stylesheet.
  • \n
  • The element.style object should be used to set styles on that element, or inspect styles directly added to it from JavaScript manipulation or the global style attribute.
  • \n
", "throws": { - "TypeError": "If the passed object is not an Element or the\npseudoElt is not a valid pseudo-element selector or is\n::part() or ::slotted().\n
\n

Note:\nValid pseudo-element selector refers to syntactic\nvalidity, e.g., ::unsupported is considered valid, even though the\npseudo-element itself is not supported. Additionally, the latest W3 standard explicitly supports only ::before and ::after, while the CSS\nWG draft does not restrict this value. Browser compatibility may vary.\n

" + "TypeError": "If the passed object is not an Element or the\npseudoElt is not a valid pseudo-element selector or is\n::part() or ::slotted().\n
\n

Note:\nValid pseudo-element selector refers to syntactic\nvalidity, e.g., ::unsupported is considered valid, even though the\npseudo-element itself is not supported.\n

" } }, "window.getdefaultcomputedstyle": { @@ -15892,7 +16067,7 @@ "Firefox": "19", "FirefoxAndroid": "19" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The getDefaultComputedStyle() method gives the default computed values of all the CSS\nproperties of an element, ignoring author styling. That is, only user-agent and user\nstyles are taken into account.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The getDefaultComputedStyle() method gives the default computed values of all the CSS\nproperties of an element, ignoring author styling. That is, only user-agent and user\nstyles are taken into account.", "parameters": { "element": "The Element for which to get the computed style.", "pseudoElt": "A string specifying the pseudo-element to match. Must be null (or not\nspecified) for regular elements." @@ -16158,7 +16333,7 @@ }, "doc": "The Window interface's matchMedia() method\nreturns a new MediaQueryList object that can then be used to determine if\nthe document matches the media query string,\nas well as to monitor the document to detect when it matches (or stops matching) that\nmedia query.", "parameters": { - "mediaQueryString": "A string specifying the media query to parse into a MediaQueryList.\n

Just like in CSS, any media feature must be wrapped in parentheses inside the expression. For example: matchMedia(\"(max-width: 600px)\") works, whereas matchMedia(\"max-width: 600px\") does not. Keywords for media types (all, print, screen) and logical operators (and, or, not, only) do not need to be wrapped in parentheses." + "mediaQueryString": "A string specifying the media query to parse into a MediaQueryList.\n

Just like in CSS, any media feature must be wrapped in parentheses inside the expression. For example: matchMedia(\"(width <= 600px)\") or matchMedia(\"(orientation: landscape)\") work, whereas matchMedia(\"width < 600px\") or matchMedia(\"orientation: landscape\") do not. Keywords for media types (all, print, screen) and logical operators (and, or, not, only) do not need to be wrapped in parentheses." }, "returns": "A new MediaQueryList object for the media query. Use this object's\nproperties and events to detect matches and to monitor for changes to those matches over\ntime." }, @@ -16244,7 +16419,7 @@ "Firefox": "3.6", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Gets the X coordinate of the top-left corner of the window's viewport, in screen\ncoordinates.\n

\n

Note:\nThis coordinate is reported in CSS pixels, not in hardware pixels. That means it can be affected by the zoom level; to compute the actual number of physical screen pixels, you should use the nsIDOMWindowUtils.screenPixelsPerCSSPixel property.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Gets the X coordinate of the top-left corner of the window's viewport, in screen\ncoordinates.\n

\n

Note:\nThis coordinate is reported in CSS pixels, not in hardware pixels. That means it can be affected by the zoom level; to compute the actual number of physical screen pixels, you should use the nsIDOMWindowUtils.screenPixelsPerCSSPixel property.\n

" }, "window.mozinnerscreeny": { "url": "$MDN_URL$/web/api/window/mozinnerscreeny", @@ -16252,7 +16427,7 @@ "Firefox": "3.6", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The mozInnerScreenY property of the Window interface returns the Y coordinate of the top-left corner of the window's viewport, in screen\ncoordinates.\n

\n

Note:\nThis coordinate is reported in CSS pixels, not in hardware pixels.\n

" + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The mozInnerScreenY property of the Window interface returns the Y coordinate of the top-left corner of the window's viewport, in screen\ncoordinates.\n

\n

Note:\nThis coordinate is reported in CSS pixels, not in hardware pixels.\n

" }, "window.name": { "url": "$MDN_URL$/web/api/window/name", @@ -16338,7 +16513,7 @@ "parameters": { "url": "A string indicating the URL or path of the resource to be loaded. If an empty string (\"\") is specified or this parameter is omitted, a blank page is opened into the targeted browsing context.", "target": "A string, without whitespace, specifying the name of the browsing context the resource is being loaded into. If the name doesn't identify an existing context, a new context is created and given the specified name. The special target keywords, _self, _blank (default), _parent, _top, and _unfencedTop can also be used. _unfencedTop is only relevant to fenced frames.\n

This name can be used as the target attribute of <a> or <form> elements.", - "windowFeatures": "A string containing a comma-separated list of window features in the form name=value. Boolean values can be set to true using one of: name, name=yes, name=true, or name=n where n is any non-zero integer. These features include options such as the window's default size and position, whether or not to open a minimal popup window, and so forth. The following options are supported:\n

\n
attributionsrc
\n
\n

Indicates that you want the browser to send an Attribution-Reporting-Eligible header along with the open() call. This call must be made with transient activation (i.e., inside a user interaction event handle such as click), within five seconds of user interaction. On the server-side this is used to trigger sending an Attribution-Reporting-Register-Source header in the response to complete registration of an attribution source.\n

In addition, the browser is also triggered to store the associated source data (as provided in the Attribution-Reporting-Register-Source response header) when the open() method completes.\n

See the Attribution Reporting API for more details.\n

\n

Note: open() calls cannot be used to register an attribution trigger.\n

\n
\n
popup
\n
\n

By default, window.open opens the page in a new tab. If popup is set to true, it requests that a minimal popup window be used. The UI features included in the popup window will be automatically decided by the browser, generally including an address bar only. If popup is present and set to false, a new tab is still opened.\n

There are a few legacy features, which used to control UI features of the opened window. In modern browsers, they only have the effect of requesting a popup. If popup is unspecified, and windowFeatures contains any features (including unrecognized ones) other than noopener, noreferrer, or attributionsrc, the window is also opened as a popup if any of the following conditions apply:\n

    \n
  • location and toolbar are both false or absent
  • \n
  • menubar is false or absent
  • \n
  • resizable is false
  • \n
  • scrollbars is false or absent
  • \n
  • status is false or absent
  • \n
\n

Otherwise the window is opened as a tab.\n

\n
width or innerWidth
\n
\n

Specifies the width of the content area, including scrollbars. The minimum required value is 100.\n

\n
height or innerHeight
\n
\n

Specifies the height of the content area, including scrollbars. The minimum required value is 100.\n

\n
left or screenX
\n
\n

Specifies the distance in pixels from the left side of the work area as defined by the user's operating system where the new window will be generated.\n

\n
top or screenY
\n
\n

Specifies the distance in pixels from the top side of the work area as defined by the user's operating system where the new window will be generated.\n

\n
noopener
\n
\n

If this feature is set, the new window will not have access to the originating window via Window.opener and returns null.\n

When noopener is used, non-empty target names, other than _top, _self, and _parent, are treated like _blank in terms of deciding whether to open a new browsing context.\n

\n
noreferrer
\n
\n

If this feature is set, the browser will omit the Referer header, as well as set noopener to true. See rel=\"noreferrer\" for more information.\n

\n
\n

A null value is treated the same as the empty string (\"\")." + "windowFeatures": "A string containing a comma-separated list of window features in the form name=value. Boolean values can be set to true using one of: name, name=yes, name=true, or name=n where n is any non-zero integer. These features include options such as the window's default size and position, whether or not to open a minimal popup window, and so forth. The following options are supported:\n

\n
attributionsrc
\n
\n

Indicates that you want the browser to send an Attribution-Reporting-Eligible header along with the open() call. This call must be made with transient activation (i.e., inside a user interaction event handle such as click), within five seconds of user interaction. On the server-side this is used to trigger sending an Attribution-Reporting-Register-Source header in the response to complete registration of an attribution source.\n

In addition, the browser is also triggered to store the associated source data (as provided in the Attribution-Reporting-Register-Source response header) when the open() method completes.\n

See the Attribution Reporting API for more details.\n

\n

Note:\nopen() calls cannot be used to register an attribution trigger.\n

\n
\n
popup
\n
\n

By default, window.open opens the page in a new tab. If popup is set to true, it requests that a minimal popup window be used. The UI features included in the popup window will be automatically decided by the browser, generally including an address bar only. If popup is present and set to false, a new tab is still opened.\n

There are a few legacy features, which used to control UI features of the opened window. In modern browsers, they only have the effect of requesting a popup. If popup is unspecified, and windowFeatures contains any features (including unrecognized ones) other than noopener, noreferrer, or attributionsrc, the window is also opened as a popup if any of the following conditions apply:\n

    \n
  • location and toolbar are both false or absent
  • \n
  • menubar is false or absent
  • \n
  • resizable is false
  • \n
  • scrollbars is false or absent
  • \n
  • status is false or absent
  • \n
\n

Otherwise the window is opened as a tab.\n

\n
width or innerWidth
\n
\n

Specifies the width of the content area, including scrollbars. The minimum required value is 100.\n

\n
height or innerHeight
\n
\n

Specifies the height of the content area, including scrollbars. The minimum required value is 100.\n

\n
left or screenX
\n
\n

Specifies the distance in pixels from the left side of the work area as defined by the user's operating system where the new window will be generated.\n

\n
top or screenY
\n
\n

Specifies the distance in pixels from the top side of the work area as defined by the user's operating system where the new window will be generated.\n

\n
noopener
\n
\n

If this feature is set, the new window will not have access to the originating window via Window.opener and returns null.\n

When noopener is used, non-empty target names, other than _top, _self, and _parent, are treated like _blank in terms of deciding whether to open a new browsing context.\n

\n
noreferrer
\n
\n

If this feature is set, the browser will omit the Referer header, as well as set noopener to true. See rel=\"noreferrer\" for more information.\n

\n
\n

A null value is treated the same as the empty string (\"\")." }, "returns": "If the browser successfully opens the new browsing context, a WindowProxy object is returned.\nThe returned reference can be used to access properties and methods of the new context as long as it complies with the same-origin policy security requirements.\n

If the Cross-Origin-Opener-Policy HTTP header is being used, and the document policies are such that the document is opened in a new browsing context group, references to the opened window are severed and the returned object will indicate that the opened window is closed (closed is true).\n

null is returned if the browser fails to open the new browsing context, for example because it was blocked by a browser popup blocker." }, @@ -16513,10 +16688,10 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The window.postMessage() method safely enables cross-origin communication between Window objects; e.g., between a page and a pop-up that it spawned, or between a page and an iframe embedded within it.\n

Normally, scripts on different pages are allowed to access each other if and only if the pages they originate from share the same origin (also known as the \"same-origin policy\"). window.postMessage() provides a controlled mechanism to securely circumvent this restriction (if used properly).\n

Furthermore, an accessing script must have obtained the window object of the accessed document beforehand. This can occur through methods such as window.open() for popups or iframe.contentWindow for iframes.\n

Broadly, one window may obtain a reference to another (e.g., via targetWindow = window.opener), and then dispatch a MessageEvent on it with targetWindow.postMessage(). The receiving window is then free to handle this event as needed. The arguments passed to window.postMessage() (i.e., the \"message\") are exposed to the receiving window through the event object.", + "doc": "The window.postMessage() method safely enables cross-origin communication between Window objects; e.g., between a page and a pop-up that it spawned, or between a page and an iframe embedded within it.\n

Normally, scripts on different pages are allowed to access each other if and only if the pages they originate from share the same origin (also known as the \"same-origin policy\"). window.postMessage() provides a controlled mechanism to securely circumvent this restriction (if used properly).\n

Furthermore, an accessing script must have obtained the window object of the accessed document beforehand. This can occur through methods such as window.open() for popups or iframe.contentWindow for iframes.\n

Broadly, one window may obtain a reference to another (e.g., via targetWindow = window.opener), and then dispatch a MessageEvent on it with targetWindow.postMessage(). The receiving window is then free to handle this event as needed. The arguments passed to window.postMessage() (i.e., the \"message\") are exposed to the receiving window through the event object.", "parameters": { "message": "Data to be dispatched to the other window. The data is serialized using the structured clone algorithm. This means you can pass a broad variety of data objects safely to the destination window without having to serialize them yourself.", - "targetOrigin": "Specifies the origin the recipient window must have in order to receive the event. In order for the event to be dispatched, the origin must match exactly (including scheme, hostname, and port). If omitted, then defaults to the origin that is calling the method. This mechanism provides control over where messages are sent; for example, if postMessage() was used to transmit a password, it would be absolutely critical that this argument be a URI whose origin is the same as the intended receiver of the message containing the password, to prevent interception of the password by a malicious third party. * may also be provided, which means the message can be dispatched to a listener with any origin.\n

\n

Note:\nAlways provide a specific targetOrigin, not *, if you know where the other window's document should be located. Failing to provide a specific target could disclose data to a malicious site.\n

", + "targetOrigin": "Specifies the origin the recipient window must have in order to receive the event. In order for the event to be dispatched, the origin must match exactly (including scheme, hostname, and port). If omitted, it defaults to \"/\", which is the origin that is calling the method. This mechanism provides control over where messages are sent; for example, if postMessage() was used to transmit a password, it would be absolutely critical that this argument be a URI whose origin is the same as the intended receiver of the message containing the password, to prevent interception of the password by a malicious third party. * may also be provided, which means the message can be dispatched to a listener with any origin.\n
\n

Note:\nAlways provide a specific targetOrigin, not *, if you know where the other window's document should be located. Failing to provide a specific target could disclose data to a malicious site.\n

Because data: URLs have opaque origins, in order to send messages to a context with a data: URL, you must specify \"*\".\n

", "transfer": "An optional array of transferable objects to transfer ownership of. The ownership of these objects is given to the destination side and they are no longer usable on the sending side. These transferable objects should be attached to the message; otherwise they would be moved but not actually accessible on the receiving end.", "options": "An optional object containing the following properties:\n
\n
transfer Optional
\n
\n

Has the same meaning as the transfer parameter.\n

\n
targetOrigin Optional
\n
\n

Has the same meaning as the targetOrigin parameter.\n

\n
" }, @@ -16661,7 +16836,7 @@ "parameters": { "callback": "The function to call when it's time to update your animation for the next repaint. This callback function is passed a single argument:\n
\n
timestamp
\n
\n

A DOMHighResTimeStamp indicating the end time of the previous frame's rendering (based on the number of milliseconds since time origin). The timestamp is a decimal number, in milliseconds, but with a minimal precision of 1 millisecond. For Window objects (not Workers), it is equal to document.timeline.currentTime. This timestamp is shared between all windows that run on the same agent (all same-origin windows and, more importantly, same-origin iframes) — which allows synchronizing animations across multiple requestAnimationFrame callbacks. The timestamp value is also similar to calling performance.now() at the start of the callback function, but it is never the same value.\n

When multiple callbacks queued by requestAnimationFrame() begin to fire in a single frame, each receives the same timestamp even though time has passed during the computation of every previous callback's workload.\n

\n
" }, - "returns": "An unsigned long integer value, the request ID, that uniquely identifies the entry\nin the callback list. You should not make any assumptions about its value. You can pass this value to\nwindow.cancelAnimationFrame() to cancel the refresh callback request.\n
\n

Warning:\nThe request ID is typically implemented as a per-window incrementing counter. Therefore, even when it starts counting at 1, it may overflow and end up reaching 0.\nWhile unlikely to cause issues for short-lived applications, you should avoid 0 as a sentinel value for invalid request identifier IDs and instead prefer unattainable values such as null.\nThe spec doesn't specify the overflowing behavior, so browsers have divergent behaviors. When overflowing, the value would either wrap around to 0, to a negative value, or fail with an error.\nUnless overflow throws, request IDs are also not truly unique because there are only finitely many 32-bit integers for possibly infinitely many callbacks.\nNote that it would however take ~500 days to reach the issue when rendering at 60Hz with 100 calls to requestAnimationFrame() per frame.\n

" + "returns": "An unsigned long integer value, the request ID, that uniquely identifies the entry\nin the callback list. You should not make any assumptions about its value. You can pass this value to\nwindow.cancelAnimationFrame() to cancel the refresh callback request.\n
\n

Warning:\nThe request ID is typically implemented as a per-window incrementing counter. Therefore, even when it starts counting at 1, it may overflow and end up reaching 0.\nWhile unlikely to cause issues for short-lived applications, you should avoid 0 as a sentinel value for invalid request identifier IDs and instead prefer unattainable values such as null.\nThe spec doesn't specify the overflowing behavior, so browsers have divergent behaviors. When overflowing, the value would either wrap around to 0, to a negative value, or fail with an error.\nUnless overflow throws, request IDs are also not truly unique because there are only finitely many 32-bit integers for possibly infinitely many callbacks.\nNote, however, that it would take ~500 days to reach the issue when rendering at 60Hz with 100 calls to requestAnimationFrame() per frame.\n

" }, "window.requestfilesystem": { "url": "$MDN_URL$/web/api/window/requestfilesystem", @@ -16669,7 +16844,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The non-standard Window method\nrequestFileSystem() method is a Google Chrome-specific\nmethod which lets a website or app gain access to a sandboxed file system for its own\nuse. The returned FileSystem is then available for use with the other file system APIs.\n

\n

Note:\nThis method is prefixed with webkit in all browsers that implement it.\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The non-standard Window method\nrequestFileSystem() method is a Google Chrome-specific\nmethod which lets a website or app gain access to a sandboxed file system for its own\nuse. The returned FileSystem is then available for use with the other file system APIs.\n

\n

Note:\nThis method is prefixed with webkit in all browsers that implement it.\n

", "parameters": { "type": "The type of storage to request. Specify Window.TEMPORARY if it's\nacceptable for the browser to delete the files at its own discretion, such as if\nstorage space runs low, or Window.PERSISTENT if you need the files to\nremain in place unless the user or the website or app explicitly permit it.\nPersistent storage requires that the user grant the site quota.", "size": "The amount of storage space you wish to have allocated for your app's use.", @@ -16694,7 +16869,7 @@ "baseline": { "level": "NONE" }, - "doc": "The window.requestIdleCallback() method queues a function\nto be called during a browser's idle periods. This enables developers to perform\nbackground and low priority work on the main event loop, without impacting\nlatency-critical events such as animation and input response. Functions are generally\ncalled in first-in-first-out order; however, callbacks which have a timeout\nspecified may be called out-of-order if necessary in order to run them before the\ntimeout elapses.\n

You can call requestIdleCallback() within an idle callback function to\nschedule another callback to take place no sooner than the next pass through the event\nloop.\n

\n

Note:\nA timeout option is strongly recommended for required work,\nas otherwise it's possible multiple seconds will elapse before the callback is fired.\n

", + "doc": "The window.requestIdleCallback() method queues a function\nto be called during a browser's idle periods. This enables developers to perform\nbackground and low priority work on the main thread, without impacting\nlatency-critical events such as animation and input response. Functions are generally\ncalled in first-in-first-out order; however, callbacks which have a timeout\nspecified may be called out-of-order if necessary in order to run them before the\ntimeout elapses.\n

You can call requestIdleCallback() within an idle callback function to\nschedule another callback to take place no sooner than the next pass through the event\nloop.\n

\n

Note:\nA timeout option is strongly recommended for required work,\nas otherwise it's possible multiple seconds will elapse before the callback is fired.\n

", "parameters": { "callback": "A reference to a function that should be called in the near future, when the event\nloop is idle. The callback function is passed an IdleDeadline object\ndescribing the amount of time available and whether or not the callback has been run\nbecause the timeout period expired.", "options": "Contains optional configuration parameters. Currently only one property is defined:\n
\n
timeout
\n
\n

If the number of milliseconds represented by this parameter has elapsed and the callback has not already been called, then a task to execute the callback is queued in the event loop (even if doing so risks causing a negative performance impact). timeout must be a positive value or it is ignored.\n

\n
" @@ -16804,7 +16979,7 @@ "lowDate": "2018-12-11", "highDate": "2021-06-11" }, - "doc": "The Window.screenLeft read-only property returns the\nhorizontal distance, in CSS pixels, from the left border of the user's browser viewport\nto the left side of the screen.\n
\n

Note: screenLeft is an alias of the older\nWindow.screenX property. screenLeft was originally\nsupported only in IE but was introduced everywhere due to popularity.\n

" + "doc": "The Window.screenLeft read-only property returns the\nhorizontal distance, in CSS pixels, from the left border of the user's browser viewport\nto the left side of the screen.\n
\n

Note:\nscreenLeft is an alias of the older\nWindow.screenX property. screenLeft was originally\nsupported only in IE but was introduced everywhere due to popularity.\n

" }, "window.screentop": { "url": "$MDN_URL$/web/api/window/screentop", @@ -16826,7 +17001,7 @@ "lowDate": "2018-12-11", "highDate": "2021-06-11" }, - "doc": "The Window.screenTop read-only property returns the\nvertical distance, in CSS pixels, from the top border of the user's browser viewport to\nthe top side of the screen.\n
\n

Note: screenTop is an alias of the older\nWindow.screenY property. screenTop was originally\nsupported only in IE but was introduced everywhere due to popularity.\n

" + "doc": "The Window.screenTop read-only property returns the\nvertical distance, in CSS pixels, from the top border of the user's browser viewport to\nthe top side of the screen.\n
\n

Note:\nscreenTop is an alias of the older\nWindow.screenY property. screenTop was originally\nsupported only in IE but was introduced everywhere due to popularity.\n

" }, "window.screenx": { "url": "$MDN_URL$/web/api/window/screenx", @@ -16956,7 +17131,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Window.scrollByLines() method scrolls the document by\nthe specified number of lines.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Window.scrollByLines() method scrolls the document by\nthe specified number of lines.", "parameters": { "lines": "The number of lines to scroll the document by. It may be a\npositive or negative integer." }, @@ -16968,7 +17143,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Window.scrollByPages() method scrolls the current\ndocument by the specified number of pages.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Window.scrollByPages() method scrolls the current\ndocument by the specified number of pages.", "parameters": { "pages": "The number of pages to scroll. It may be a positive or\nnegative integer." }, @@ -16980,7 +17155,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Window.scrollMaxX read-only property returns the\nmaximum number of pixels that the document can be scrolled horizontally." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Window.scrollMaxX read-only property returns the\nmaximum number of pixels that the document can be scrolled horizontally." }, "window.scrollmaxy": { "url": "$MDN_URL$/web/api/window/scrollmaxy", @@ -16988,7 +17163,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Window.scrollMaxY read-only property returns the\nmaximum number of pixels that the document can be scrolled vertically." + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Window.scrollMaxY read-only property returns the\nmaximum number of pixels that the document can be scrolled vertically." }, "window.scrollto": { "url": "$MDN_URL$/web/api/window/scrollto", @@ -17117,7 +17292,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

This method is used to break up long running operations and run a callback function immediately after the browser has completed other operations such as events and display updates.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

This method is used to break up long running operations and run a callback function immediately after the browser has completed other operations such as events and display updates.", "parameters": { "func": "The function you wish to call.", "param1, …, paramN": "All parameters will be passed directly to your function." @@ -17149,7 +17324,7 @@ "Firefox": "", "FirefoxAndroid": "4" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

This method does nothing; it is a no-op. It is solely kept for compatibility with Netscape 4.x.", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

This method does nothing; it is a no-op. It is solely kept for compatibility with Netscape 4.x.", "returns": "None (undefined)." }, "window.settimeout": { @@ -17183,7 +17358,7 @@ "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The global read-only sharedStorage property returns the WindowSharedStorage object for the current origin. This is the main entry point for writing data to shared storage using the Shared Storage API.\n

\n

Note: sharedStorage is not available inside workers. It is implemented by Window and is also available in shared storage worklets (see SharedStorageWorkletGlobalScope.sharedStorage, which returns WorkletSharedStorage).\n

" + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The global read-only sharedStorage property returns the WindowSharedStorage object for the current origin. This is the main entry point for writing data to shared storage using the Shared Storage API.\n

\n

Note:\nsharedStorage is not available inside workers. It is implemented by Window and is also available in shared storage worklets (see SharedStorageWorkletGlobalScope.sharedStorage, which returns WorkletSharedStorage).\n

" }, "window.showdirectorypicker": { "url": "$MDN_URL$/web/api/window/showdirectorypicker", @@ -17265,7 +17440,7 @@ "window.sizetocontent": { "url": "$MDN_URL$/web/api/window/sizetocontent", "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The Window.sizeToContent() method sizes the window\naccording to its content. In order for it to work, the DOM content should be loaded when\nthis function is called—for example, once the DOMContentLoaded event has\nbeen thrown.\n

Since Firefox 20, the minimal size of the window is clamped to prevent the window from\nbeing too small for the user to interact with.", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The Window.sizeToContent() method sizes the window\naccording to its content. In order for it to work, the DOM content should be loaded when\nthis function is called—for example, once the DOMContentLoaded event has\nbeen thrown.\n

Since Firefox 20, the minimal size of the window is clamped to prevent the window from\nbeing too small for the user to interact with.", "returns": "None (undefined)." }, "window.speechsynthesis": { @@ -17421,6 +17596,23 @@ }, "doc": "The trustedTypes read-only property of the Window interface returns the TrustedTypePolicyFactory object associated with the global object, providing the entry point for using the Trusted Types API." }, + "window.viewport": { + "url": "$MDN_URL$/web/api/window/viewport", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "138", + "ChromeAndroid": "138", + "Edge": "138", + "Opera": "122" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

The viewport read-only property of the Window interface returns a Viewport object instance, which provides information about the current state of the device's viewport.\n

See the Viewport API for all available properties." + }, "window.visualviewport": { "url": "$MDN_URL$/web/api/window/visualviewport", "status": [ @@ -17452,7 +17644,7 @@ "Safari": "4", "SafariIOS": "3" }, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Given a WebKitPoint specified in a particular DOM Node's coordinate system, the Window method webkitConvertPointFromNodeToPage() returns a Point which specifies the same position in the page's coordinate system. This method is non-standard and should not be used.\n

\n

Warning:\nPlease review the Browser compatibility section before using this method, as it's not widely supported (nor is the WebKitPoint object it uses).\n

", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Given a WebKitPoint specified in a particular DOM Node's coordinate system, the Window method webkitConvertPointFromNodeToPage() returns a Point which specifies the same position in the page's coordinate system. This method is non-standard and should not be used.\n

\n

Warning:\nPlease review the Browser compatibility section before using this method, as it's not widely supported (nor is the WebKitPoint object it uses).\n

", "parameters": { "node": "The Node in whose coordinate system the Point specified by nodePoint is described.", "nodePoint": "A WebKitPoint object describing a point in node's coordinate system; this point will be converted to the page's coordinate system." @@ -17468,7 +17660,7 @@ "Safari": "4", "SafariIOS": "3" }, - "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Given a WebKitPoint specified in the page's coordinate system, the\nWindow method webkitConvertPointFromPageToNode()\nreturns a Point object specifying the same location in the coordinate\nsystem of the specified DOM Node.\n

\n

Warning:\nPlease review the Browser compatibility section before using this method,\nas it's not widely supported (nor is the WebKitPoint object it uses).\n

", + "doc": "

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Given a WebKitPoint specified in the page's coordinate system, the\nWindow method webkitConvertPointFromPageToNode()\nreturns a Point object specifying the same location in the coordinate\nsystem of the specified DOM Node.\n

\n

Warning:\nPlease review the Browser compatibility section before using this method,\nas it's not widely supported (nor is the WebKitPoint object it uses).\n

", "parameters": { "node": "The Node into whose coordinate system the point is to be converted.", "pagePoint": "A WebKitPoint object specifying a point in the coordinate system of the\npage, which is to be converted into the node's coordinate system." @@ -17495,7 +17687,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "The window property of a Window object points to the window object itself.\n

Thus, the following expressions all return the same window object:\n

\n```js\nwindow.window;\nwindow.window.window;\nwindow.window.window.window;\n// …\n```\n
\n

In web pages, the window object is also a global object. This means:\n

    \n
  1. \n

    Global variables of your script are, in fact, properties of window:\n

    \n```js\nvar global = { data: 0 };\nalert(global === window.global); // displays \"true\"\n```\n
    \n
  2. \n
  3. \n

    You can access the built-in properties of the window object without having to prefix them with window.:\n

    \n```js\nsetTimeout(\"alert('Hi!')\", 50); // equivalent to using window.setTimeout().\nalert(window === window.window); // displays \"true\"\n```\n
    \n
  4. \n
\n

The point of having the window property refer to the object itself, was likely to make it easy to refer to the global object. Otherwise, you'd have to do a manual let window = this; assignment at the top of your script.\n

Another reason, is that without this property you wouldn't be able to write, for example, window.open('https://google.com/'). You'd have to use open('https://google.com/') instead.\n

Yet another reason to use this property, is for libraries which wish to offer OOP-versions, and non-OOP versions (especially JavaScript modules). For example, if we refer to \"this.window.location.href\", a JavaScript module could define a property called \"window\" inside of a class it defined (since no global \"window\" variable exists for it by default) which could be created after passing in a window object to the module class' constructor. Thus, \"this.window\" inside of its functions would refer to that window object. In the non-namespaced version, \"this.window\" would refer back to \"window\", and also be able to readily get the document location. Another advantage, is that the objects of such a class (even if the class were defined outside of a module) could change their reference to the window at will, they would not be able to do this if they had hard-coded a reference to \"window\". The default in the class could still be set as the current window object." + "doc": "The window property of a Window object points to the window object itself.\n

Thus, the following expressions all return the same window object:\n

\n```js\nwindow.window;\nwindow.window.window;\nwindow.window.window.window;\n// …\n```\n
\n

In web pages, the window object is also a global object. This means:\n

    \n
  1. \n

    Global variables of your script are, in fact, properties of window:\n

    \n```js\nvar global = { data: 0 };\nalert(global === window.global); // displays \"true\"\n```\n
    \n
  2. \n
  3. \n

    You can access the built-in properties of the window object without having to prefix them with window.:\n

    \n```js\nsetTimeout(() => alert(\"Hi!\"), 50); // equivalent to using window.setTimeout() and window.alert().\nalert(window === window.window); // displays \"true\"\n```\n
    \n
  4. \n
\n

The point of having the window property refer to the object itself, was likely to make it easy to refer to the global object. Otherwise, you'd have to do a manual let window = this; assignment at the top of your script.\n

Another reason, is that without this property you wouldn't be able to write, for example, window.open('https://google.com/'). You'd have to use open('https://google.com/') instead.\n

Yet another reason to use this property, is for libraries which wish to offer OOP-versions, and non-OOP versions (especially JavaScript modules). For example, if we refer to \"this.window.location.href\", a JavaScript module could define a property called \"window\" inside of a class it defined (since no global \"window\" variable exists for it by default) which could be created after passing in a window object to the module class' constructor. Thus, \"this.window\" inside of its functions would refer to that window object. In the non-namespaced version, \"this.window\" would refer back to \"window\", and also be able to readily get the document location. Another advantage, is that the objects of such a class (even if the class were defined outside of a module) could change their reference to the window at will, they would not be able to do this if they had hard-coded a reference to \"window\". The default in the class could still be set as the current window object." }, "windowclient": { "url": "$MDN_URL$/web/api/windowclient", @@ -18015,7 +18207,7 @@ "Deprecated" ], "compatibility": {}, - "doc": "

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Note: This feature is only available in Web Workers.

\n

The WorkerGlobalScope.dump() method logs messages to the browser's standard output (stdout). If the browser was started from a terminal, output sent to dump() will appear in the terminal. This is the same as Window.dump(), but for workers.\n

Output from dump() is not sent to the browser's developer tools console. To log to the developer tools console, use console.log().", + "doc": "

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

\n

Note: This feature is only available in Web Workers.

\n

The WorkerGlobalScope.dump() method logs messages to the browser's standard output (stdout). If the browser was started from a terminal, output sent to dump() will appear in the terminal. This is the same as Window.dump(), but for workers.\n

Output from dump() is not sent to the browser's developer tools console. To log to the developer tools console, use console.log().", "parameters": { "message": "A string containing the message to log." }, @@ -18664,7 +18856,6 @@ "workernavigator.gpu": { "url": "$MDN_URL$/web/api/workernavigator/gpu", "status": [ - "Experimental", "StandardTrack" ], "compatibility": { @@ -18672,12 +18863,13 @@ "ChromeAndroid": "121", "Edge": "113", "Opera": "99", - "Safari": "preview" + "Safari": "26", + "SafariIOS": "26" }, "baseline": { "level": "NONE" }, - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Web Workers.

\n

The gpu read-only property of the WorkerNavigator interface returns the GPU object for the current worker context, which is the entry point for the WebGPU API." + "doc": "

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

Note: This feature is only available in Web Workers.

\n

The gpu read-only property of the WorkerNavigator interface returns the GPU object for the current worker context, which is the entry point for the WebGPU API." }, "workernavigator.hardwareconcurrency": { "url": "$MDN_URL$/web/api/workernavigator/hardwareconcurrency", @@ -18760,7 +18952,7 @@ "lowDate": "2017-10-17", "highDate": "2020-04-17" }, - "doc": "

Note: This feature is only available in Web Workers.

\n

The WorkerNavigator.languages read-only property\nreturns an array of strings representing the user's preferred\nlanguages. The language is described using language tags according to\nRFC 5646: Tags for Identifying Languages (also known as BCP 47). In the returned\narray they are ordered by preference with the most preferred language first.\n

The value of navigator.language is the\nfirst element of the returned array.\n

When its value changes, as the user's preferred languages are changed a\nlanguagechange event is fired on the WorkerGlobalScope object.\n

The Accept-Language HTTP header in every HTTP request from the user's\nbrowser uses the same value for the navigator.languages property except for\nthe extra qvalues (quality values) field (e.g., en-US;q=0.8)." + "doc": "

Note: This feature is only available in Web Workers.

\n

The WorkerNavigator.languages read-only property\nreturns an array of strings representing the user's preferred\nlanguages. The language is described using BCP 47 language tags. In the returned\narray they are ordered by preference with the most preferred language first.\n

The value of navigator.language is the\nfirst element of the returned array.\n

When its value changes, as the user's preferred languages are changed a\nlanguagechange event is fired on the WorkerGlobalScope object.\n

The Accept-Language HTTP header in every HTTP request from the user's\nbrowser uses the same value for the navigator.languages property except for\nthe extra qvalues (quality values) field (e.g., en-US;q=0.8)." }, "workernavigator.locks": { "url": "$MDN_URL$/web/api/workernavigator/locks", @@ -19083,7 +19275,7 @@ }, "workletsharedstorage.context": { "url": "$MDN_URL$/web/api/workletsharedstorage/context", - "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

\n

The context read-only property of the WorkletSharedStorage interface contains contextual data passed into the shared storage worklet from the associated browsing context via the FencedFrameConfig.setSharedStorageContext() method." + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

\n

The context read-only property of the WorkletSharedStorage interface contains contextual data passed into the shared storage worklet from the associated browsing context via the FencedFrameConfig.setSharedStorageContext() method." }, "workletsharedstorage.entries": { "url": "$MDN_URL$/web/api/workletsharedstorage/entries", @@ -19381,8 +19573,9 @@ "Deno": "1.16" }, "baseline": { - "level": "LOW", - "lowDate": "2023-03-27" + "level": "HIGH", + "lowDate": "2023-03-27", + "highDate": "2025-09-27" }, "doc": "

Note: This feature is available in Web Workers.

\n

The read-only signal property of the WritableStreamDefaultController interface returns the AbortSignal associated with the controller." }, @@ -19695,7 +19888,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The XMLHttpRequest.abort() method aborts the request if\nit has already been sent. When a request is aborted, its\nreadyState is changed to\nXMLHttpRequest.UNSENT (0) and the request's\nstatus code is set to 0.\n

If the request is still in progress (its readyState is not XMLHttpRequest.DONE or XMLHttpRequest.UNSENT), a readystatechange event, abort, and a loadend event are dispatched, in that order. For synchronous requests, no events are dispatched and an error is thrown instead.", + "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The XMLHttpRequest.abort() method aborts the request if\nit has already been sent. When a request is aborted, its\nreadyState is changed to\nXMLHttpRequest.UNSENT (0) and the request's\nstatus code is set to 0.\n

If the request is still in progress (its readyState is not XMLHttpRequest.DONE or XMLHttpRequest.UNSENT), a readystatechange event, abort, and a loadend event are dispatched, in that order. For synchronous requests, no events are dispatched and an error is thrown instead.", "returns": "None (undefined)." }, "xmlhttprequest.getallresponseheaders": { @@ -20090,7 +20283,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The XMLHttpRequest.timeout property is an unsigned long representing the number of milliseconds a request can take before automatically being terminated. The default value is 0, which means there is no timeout. Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception. When a timeout happens, a timeout event is fired.\n

\n

Note:\nYou may not use a timeout for synchronous requests with an owning window.\n

\n

Using a timeout with an asynchronous request." + "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The XMLHttpRequest.timeout property is an unsigned long representing the number of milliseconds a request can take before automatically being terminated. The default value is 0, which means there is no timeout. Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception. When a timeout happens, a timeout event is fired.\n

\n

Note:\nYou may not use a timeout for synchronous requests with an owning window.\n

\n

Using a timeout with an asynchronous request." }, "xmlhttprequest.upload": { "url": "$MDN_URL$/web/api/xmlhttprequest/upload", @@ -20112,7 +20305,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The XMLHttpRequest upload property returns an XMLHttpRequestUpload object that can be observed to monitor an upload's progress.\n

It is an opaque object, but because it's also an XMLHttpRequestEventTarget, event listeners can be attached to track its process.\n

\n

Note:\nAttaching event listeners to this object prevents the request from being a \"simple request\" and will cause a preflight request to be issued if cross-origin; see CORS. Because of this, event listeners need to be registered before calling send() or upload events won't be dispatched.\n

\n
\n

Note:\nThe spec also seems to indicate that event listeners should be attached after open(). However, browsers are buggy on this matter, and often need the listeners to be registered before open() to work.\n

\n

The following events can be triggered on an upload object and used to monitor the upload:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
EventDescription
loadstartThe upload has begun.
progress\nPeriodically delivered to indicate the amount of progress made so far.\n
abortThe upload operation was aborted.
errorThe upload failed due to an error.
loadThe upload completed successfully.
timeout\nThe upload timed out because a reply did not arrive within the time\ninterval specified by the\nXMLHttpRequest.timeout.\n
loadend\nThe upload finished. This event does not differentiate between success\nor failure, and is sent at the end of the upload regardless of the\noutcome. Prior to this event, one of load,\nerror, abort, or timeout will\nalready have been delivered to indicate why the upload ended.\n
" + "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The XMLHttpRequest upload property returns an XMLHttpRequestUpload object that can be observed to monitor an upload's progress.\n

It is an opaque object, but because it's also an XMLHttpRequestEventTarget, event listeners can be attached to track its process.\n

\n

Note:\nAttaching event listeners to this object prevents the request from being a \"simple request\" and will cause a preflight request to be issued if cross-origin; see CORS. Because of this, event listeners need to be registered before calling send() or upload events won't be dispatched.\n

\n
\n

Note:\nThe spec also seems to indicate that event listeners should be attached after open(). However, browsers are buggy on this matter, and often need the listeners to be registered before open() to work.\n

\n

The following events can be triggered on an upload object and used to monitor the upload:\n

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
EventDescription
loadstartThe upload has begun.
progress\nPeriodically delivered to indicate the amount of progress made so far.\n
abortThe upload operation was aborted.
errorThe upload failed due to an error.
loadThe upload completed successfully.
timeout\nThe upload timed out because a reply did not arrive within the time\ninterval specified by the\nXMLHttpRequest.timeout.\n
loadend\nThe upload finished. This event does not differentiate between success\nor failure, and is sent at the end of the upload regardless of the\noutcome. Prior to this event, one of load,\nerror, abort, or timeout will\nalready have been delivered to indicate why the upload ended.\n
" }, "xmlhttprequest.withcredentials": { "url": "$MDN_URL$/web/api/xmlhttprequest/withcredentials", @@ -20134,7 +20327,7 @@ "lowDate": "2015-07-29", "highDate": "2018-01-29" }, - "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The XMLHttpRequest.withCredentials property is a boolean value that indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies, authentication headers or TLS client certificates. Setting withCredentials has no effect on same-origin requests.\n

In addition, this flag is also used to indicate when cookies are to be ignored in the response. The default is false. XMLHttpRequest responses from a different domain cannot set cookie values for their own domain unless withCredentials is set to true before making the request. The third-party cookies obtained by setting withCredentials to true will still honor same-origin policy and hence can not be accessed by the requesting script through document.cookie or from response headers.\n

\n

Note:\nThis never affects same-origin requests.\n

\n
\n

Note: XMLHttpRequest responses from a different domain cannot set cookie values for their own domain unless withCredentials is set to true before making the request, regardless of Access-Control- header values.\n

" + "doc": "

Note: This feature is available in Web Workers, except for Service Workers.

\n

The XMLHttpRequest.withCredentials property is a boolean value that indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies, authentication headers or TLS client certificates. Setting withCredentials has no effect on same-origin requests.\n

In addition, this flag is also used to indicate when cookies are to be ignored in the response. The default is false. XMLHttpRequest responses from a different domain cannot set cookie values for their own domain unless withCredentials is set to true before making the request. The third-party cookies obtained by setting withCredentials to true will still honor same-origin policy and hence can not be accessed by the requesting script through document.cookie or from response headers.\n

\n

Note:\nThis never affects same-origin requests.\n

\n
\n

Note:\nXMLHttpRequest responses from a different domain cannot set cookie values for their own domain unless withCredentials is set to true before making the request, regardless of Access-Control- header values.\n

" }, "xmlhttprequest.xmlhttprequest": { "url": "$MDN_URL$/web/api/xmlhttprequest/xmlhttprequest", @@ -22957,6 +23150,23 @@ }, "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The read-only domOverlayState property of an immersive-ar\nXRSession provides information about the DOM overlay, if the feature is enabled." }, + "xrsession.enabledfeatures": { + "url": "$MDN_URL$/web/api/xrsession/enabledfeatures", + "status": [ + "Experimental", + "StandardTrack" + ], + "compatibility": { + "Chrome": "111", + "ChromeAndroid": "111", + "Edge": "111", + "Opera": "97" + }, + "baseline": { + "level": "NONE" + }, + "doc": "

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

\n

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

\n

The XRSession interface's read-only enabledFeatures property returns an array of features enabled (granted) for an XRSession. This contains all requiredFeatures and a subset of optionalFeatures that have been requested with XRSystem.requestSession()." + }, "xrsession.end": { "url": "$MDN_URL$/web/api/xrsession/end", "status": [ @@ -24308,7 +24518,7 @@ }, "doc": "The importStylesheet() method of the XSLTProcessor interface imports an XSLT stylesheet for the processor.", "parameters": { - "style": "The Node to import. It can be an XML document (that is a Document with doctype whose name of \"xml\") containing an XSLT stylesheet or a literal result element transform, or an Element representing an <xsl:stylesheet> or <xsl:transform>." + "style": "The Node to import. It can be an XML document (that is a Document with doctype whose name of \"xml\") containing an XSLT stylesheet or a literal result element transform, or an Element representing an <xsl:stylesheet> or <xsl:transform>." }, "returns": "None (undefined)." }, diff --git a/xml/xml-psi-impl/resources-gen/messages/MdnBundle.properties b/xml/xml-psi-impl/resources-gen/messages/MdnBundle.properties index 083a60a67b3d..1f565aa960a6 100644 --- a/xml/xml-psi-impl/resources-gen/messages/MdnBundle.properties +++ b/xml/xml-psi-impl/resources-gen/messages/MdnBundle.properties @@ -46,4 +46,10 @@ mdn.documentation.section.compat.support_of_fit-content_function=fit-conte mdn.documentation.section.compat.support_of_hsl=hsl() (HSL color model) mdn.documentation.section.compat.support_of_hwb=hwb() (HWB color model) mdn.documentation.section.compat.support_of_lch=lch() (LCH color model) -mdn.documentation.section.compat.support_of_oklch=oklch() (OKLCH color model) \ No newline at end of file +mdn.documentation.section.compat.support_of_oklch=oklch() (OKLCH color model) +mdn.documentation.section.compat.support_of_scope=@scope +mdn.documentation.section.compat.support_of_at-scope=& treated as :where(:scope) in @scope blocks +mdn.documentation.section.compat.support_of_loadend_event=loadend event +mdn.documentation.section.compat.support_of_loadstart_event=loadstart event +mdn.documentation.section.compat.support_of_progress_event=progress event +mdn.documentation.section.compat.support_of_timeout_event=timeout event \ No newline at end of file