collect MDN API information (#130)
collect MDN info for use in API documentation
diff --git a/test/scrape_mdn_test.dart b/test/scrape_mdn_test.dart
new file mode 100644
index 0000000..2cb99e9
--- /dev/null
+++ b/test/scrape_mdn_test.dart
@@ -0,0 +1,102 @@
+// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:test/test.dart';
+
+import '../tool/scrape_mdn.dart';
+
+void main() {
+ group('convertMdnToMarkdown', () {
+ test('simple', () {
+ compare('''
+Hello world
+''', '''
+Hello world
+''');
+ });
+
+ test('removes front matter', () {
+ compare('''
+---
+title: AudioNode
+slug: Web/API/AudioNode
+page-type: web-api-interface
+browser-compat: api.AudioNode
+---
+
+Hello world
+''', '''
+Hello world
+''');
+ });
+
+ test('strips InheritanceDiagram', () {
+ compare('''
+Hello world
+
+{{InheritanceDiagram}}
+
+foo bar
+''', '''
+Hello world
+
+foo bar
+''');
+ });
+
+ test('reference domxref', () {
+ compare('''
+Examples include:
+
+- the audio destination,
+- intermediate processing module (e.g. a filter like {{domxref("BiquadFilterNode")}} or {{domxref("ConvolverNode")}}), or
+- volume control (like {{domxref("GainNode")}})
+''', '''
+Examples include:
+
+- the audio destination,
+- intermediate processing module (e.g. a filter like [BiquadFilterNode] or [ConvolverNode]), or
+- volume control (like [GainNode])
+''');
+
+ compare('''
+Examples include:
+
+... of {{domxref("Response.type", "type")}} ...
+''', '''
+Examples include:
+
+... of [Response.type] ...
+''');
+
+ compare('''
+The **`sampleRate`** property of the {{
+ domxref("AudioBuffer") }} interface returns a float representing the sample rate, in
+samples per second, of the PCM data stored in the buffer.
+''', '''
+The **`sampleRate`** property of the [AudioBuffer] interface returns a float representing the sample rate, in
+samples per second, of the PCM data stored in the buffer.
+''');
+ });
+
+ test('reference jsxref', () {
+ compare('''
+... or functions such as {{jsxref("Array.forEach", "forEach()")}}.
+
+- {{jsxref("JSON.parse()")}} - counterpart for {{jsxref("JSON")}} documents.
+''', '''
+... or functions such as `forEach()`.
+
+- `JSON.parse()` - counterpart for `JSON` documents.
+''');
+ });
+ });
+}
+
+void compare(String source, String output) {
+ expect(
+ convertMdnToMarkdown(source),
+ output.trimRight(),
+ );
+}
diff --git a/tool/mdn.json b/tool/mdn.json
new file mode 100644
index 0000000..0701117
--- /dev/null
+++ b/tool/mdn.json
@@ -0,0 +1,9250 @@
+{
+ "__meta__": {
+ "source": "[MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web)",
+ "license": "[CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/)"
+ },
+ "abortcontroller": {
+ "docs": "\n\nThe **`AbortController`** interface represents a controller object that allows you to abort one or more Web requests as and when desired.\n\nYou can create a new `AbortController` object using the [AbortController.AbortController] constructor. Communicating with a DOM request is done using an [AbortSignal] object.",
+ "properties": {
+ "abort": "\n\nThe **`abort()`** method of the [AbortController] interface aborts a DOM request before it has completed.\nThis is able to abort [fetch requests](/en-US/docs/Web/API/fetch), the consumption of any response bodies, or streams.",
+ "signal": "\n\nThe **`signal`** read-only property of the [AbortController] interface returns an [AbortSignal] object instance, which can be used to communicate with/abort a DOM request as desired."
+ }
+ },
+ "abortsignal": {
+ "docs": "\n\nThe **`AbortSignal`** interface represents a signal object that allows you to communicate with a DOM request (such as a fetch request) and abort it if required via an [AbortController] object.\n\n",
+ "properties": {
+ "abort_event": "\n\nThe **`abort`** event of the [AbortSignal] is fired when the associated request is aborted, i.e. using [AbortController.abort].",
+ "abort_static": "\n\nThe **`AbortSignal.abort()`** static method returns an [AbortSignal] that is already set as aborted (and which does not trigger an [AbortSignal/abort_event] event).\n\nThis is shorthand for the following code:\n\n```js\nconst controller = new AbortController();\ncontroller.abort();\nreturn controller.signal;\n```\n\nThis could, for example, be passed to a fetch method in order to run its abort logic (i.e. it may be that code is organized such that the abort logic should be run even if the intended fetch operation has not been started).\n\n> **Note:** The method is similar in purpose to `Promise.reject`.",
+ "aborted": "\n\nThe **`aborted`** read-only property returns a value that indicates whether the DOM requests the signal is communicating with are aborted (`true`) or not (`false`).",
+ "any_static": "\n\nThe **`AbortSignal.any()`** static method takes an iterable of abort signals and returns an [AbortSignal]. The returned abort signal is aborted when any of the input iterable abort signals are aborted. The [AbortSignal.reason] will be set to the reason of the first signal that is aborted. If any of the the given abort signals are already aborted then so will be the returned [AbortSignal].",
+ "reason": "\n\nThe **`reason`** read-only property returns a JavaScript value that indicates the abort reason.\n\nThe property is `undefined` when the signal has not been aborted.\nIt can be set to a specific value when the signal is aborted, using [AbortController.abort] or [AbortSignal/abort_static].\nIf not explicitly set in those methods, it defaults to \"AbortError\" [DOMException].",
+ "throwifaborted": "\n\nThe **`throwIfAborted()`** method throws the signal's abort [AbortSignal.reason] if the signal has been aborted; otherwise it does nothing.\n\nAn API that needs to support aborting can accept an [AbortSignal] object and use `throwIfAborted()` to test and throw when the [`abort`](/en-US/docs/Web/API/AbortSignal/abort_event) event is signalled.\n\nThis method can also be used to abort operations at particular points in code, rather than passing to functions that take a signal.",
+ "timeout_static": "\n\nThe **`AbortSignal.timeout()`** static method returns an [AbortSignal] that will automatically abort after a specified time.\n\nThe signal aborts with a `TimeoutError` [DOMException] on timeout, or with `AbortError` [DOMException] due to pressing a browser stop button (or some other inbuilt \"stop\" operation).\nThis allows UIs to differentiate timeout errors, which typically require user notification, from user-triggered aborts that do not.\n\nThe timeout is based on active rather than elapsed time, and will effectively be paused if the code is running in a suspended worker, or while the document is in a back-forward cache (\"[bfcache](https://web.dev/articles/bfcache)\").\n\nTo combine multiple signals, you can use [AbortSignal/any_static], for example, to directly abort a download using either a timeout signal or by calling [AbortController.abort]."
+ }
+ },
+ "absoluteorientationsensor": {
+ "docs": "\n\nThe **`AbsoluteOrientationSensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) describes the device's physical orientation in relation to the Earth's reference coordinate system.\n\nTo use this sensor, the user must grant permission to the `'accelerometer'`, `'gyroscope'`, and `'magnetometer'` device sensors through the [Permissions API](/en-US/docs/Web/API/Permissions_API).\n\nThis feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\n"
+ },
+ "abstractrange": {
+ "docs": "\n\nThe **`AbstractRange`** abstract interface is the base class upon which all range types are defined. A **range** is an object that indicates the start and end points of a section of content within the document.\n\n> **Note:** As an abstract interface, you will not directly instantiate an object of type `AbstractRange`. Instead, you will use the [Range] or [StaticRange] interfaces. To understand the difference between those two interfaces, and how to choose which is appropriate for your needs, consult each interface's documentation.\n\n",
+ "properties": {
+ "collapsed": "\n\nThe read-only **`collapsed`** property of the [AbstractRange] interface returns `true` if the range's start position and end position are the same.",
+ "endcontainer": "\n\nThe read-only **`endContainer`** property of the [AbstractRange] interface returns the [Node] in which the end of the range is located.",
+ "endoffset": "\n\nThe **`endOffset`** property of the [AbstractRange] interface returns the offset into the end node of the range's end position.",
+ "startcontainer": "\n\nThe read-only **`startContainer`** property of the [AbstractRange] interface returns the start [Node] for the range.",
+ "startoffset": "\n\nThe read-only **`startOffset`** property of the [AbstractRange] interface returns the offset into the start node of the range's start position."
+ }
+ },
+ "accelerometer": {
+ "docs": "\n\nThe **`Accelerometer`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides on each reading the acceleration applied to the device along all three axes.\n\nTo use this sensor, the user must grant permission to the `'accelerometer'`, device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API).\n\nThis feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\n",
+ "properties": {
+ "x": "\n\nThe **`x`** read-only property of the [Accelerometer] interface returns a number specifying the acceleration of the device along its x-axis.",
+ "y": "\n\nThe **`y`** read-only property of the [Accelerometer] interface returns a number specifying the acceleration of the device along its y-axis.",
+ "z": "\n\nThe **`z`** read-only property of the [Accelerometer] interface returns a number specifying the acceleration of the device along its z-axis."
+ }
+ },
+ "aescbcparams": {
+ "docs": "\n\nThe **`AesCbcParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/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-CBC](/en-US/docs/Web/API/SubtleCrypto/encrypt#aes-cbc) algorithm."
+ },
+ "aesctrparams": {
+ "docs": "\n\nThe **`AesCtrParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/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](/en-US/docs/Web/API/SubtleCrypto/encrypt#aes-ctr) algorithm.\n\nAES 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\nA 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\nTypically this is achieved by splitting the initial counter block value into two concatenated parts:\n\n- A [nonce](https://en.wikipedia.org/wiki/Cryptographic_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\nEssentially: 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:** See [Appendix B of the NIST SP800-38A standard](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf#%5B%7B%22num%22%3A70%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22Fit%22%7D%5D) for more information."
+ },
+ "aesgcmparams": {
+ "docs": "\n\nThe **`AesGcmParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/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](/en-US/docs/Web/API/SubtleCrypto/encrypt#aes-gcm) algorithm.\n\nFor details of how to supply appropriate values for this parameter, see the specification for AES-GCM: [NIST SP800-38D](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf), in particular section 5.2.1.1 on Input Data."
+ },
+ "aeskeygenparams": {
+ "docs": "\n\nThe **`AesKeyGenParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.generateKey], when generating an AES key: that is, when the algorithm is identified as any of [AES-CBC](/en-US/docs/Web/API/SubtleCrypto/encrypt#aes-cbc), [AES-CTR](/en-US/docs/Web/API/SubtleCrypto/encrypt#aes-ctr), [AES-GCM](/en-US/docs/Web/API/SubtleCrypto/encrypt#aes-gcm), or [AES-KW](/en-US/docs/Web/API/SubtleCrypto/wrapKey#aes-kw)."
+ },
+ "ambientlightsensor": {
+ "docs": "\n\nThe **`AmbientLightSensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) returns the current light level or illuminance of the ambient light around the hosting device.\n\nTo use this sensor, the user must grant permission to the `'ambient-light-sensor'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API).\n\nThis feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\n",
+ "properties": {
+ "illuminance": "\n\nThe **`illuminance`** property of the [AmbientLightSensor] interface returns the current light level in [lux](https://en.wikipedia.org/wiki/Lux) of the ambient light level around the hosting device."
+ }
+ },
+ "analysernode": {
+ "docs": "\n\nThe **`AnalyserNode`** interface represents a node able to provide real-time frequency and time-domain analysis information. It is an [AudioNode] that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations.\n\nAn `AnalyserNode` has exactly one input and one output. The node works even if the output is not connected.\n\n\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code> (but may be left unconnected)</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "fftsize": "\n\nThe **`fftSize`** property of the [AnalyserNode] interface is an unsigned long value and represents the window size in samples that is used when performing a [Fast Fourier Transform](https://en.wikipedia.org/wiki/Fast_Fourier_transform) (FFT) to get frequency domain data.",
+ "frequencybincount": "\n\nThe **`frequencyBinCount`** read-only property of the [AnalyserNode] interface contains the total number of data points available to [AudioContext] [BaseAudioContext.sampleRate]. This is half of the `value` of the [AnalyserNode.fftSize]. The two methods' indices have a linear relationship with the frequencies they represent, between 0 and the [Nyquist frequency](https://en.wikipedia.org/wiki/Nyquist_frequency).",
+ "getbytefrequencydata": "\n\nThe **`getByteFrequencyData()`** method of the [AnalyserNode] interface copies the current frequency data into a `Uint8Array` (unsigned byte array) passed into it.\n\nThe frequency data is composed of integers on a scale from 0 to 255.\n\nEach item in the array represents the decibel value for a specific frequency. The frequencies are spread linearly from 0 to 1/2 of the sample rate. For example, for `48000` sample rate, the last item of the array will represent the decibel value for `24000` Hz.\n\nIf the array has fewer elements than the [AnalyserNode.frequencyBinCount], excess elements are dropped. If it has more elements than needed, excess elements are ignored.",
+ "getbytetimedomaindata": "\n\nThe **`getByteTimeDomainData()`** method of the [AnalyserNode] Interface copies the current waveform, or time-domain, data into a `Uint8Array` (unsigned byte array) passed into it.\n\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.",
+ "getfloatfrequencydata": "\n\nThe **`getFloatFrequencyData()`** method of the [AnalyserNode] Interface copies the current frequency data into a `Float32Array` array passed into it. Each array value is a _sample_, the magnitude of the signal at a particular time.\n\nEach item in the array represents the decibel value for a specific frequency. The frequencies are spread linearly from 0 to 1/2 of the sample rate. For example, for a `48000` Hz sample rate, the last item of the array will represent the decibel value for `24000` Hz.\n\nIf you need higher performance and don't care about precision, you can use [AnalyserNode.getByteFrequencyData] instead, which works on a `Uint8Array`.",
+ "getfloattimedomaindata": "\n\nThe **`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.",
+ "maxdecibels": "\n\nThe **`maxDecibels`** property of the [AnalyserNode] interface is a double value representing the maximum power value in the scaling range for the FFT analysis data, for conversion to unsigned byte values — basically, this specifies the maximum value for the range of results when using `getByteFrequencyData()`.",
+ "mindecibels": "\n\nThe **`minDecibels`** property of the [AnalyserNode] interface is a double value representing the minimum power value in the scaling range for the FFT analysis data, for conversion to unsigned byte values — basically, this specifies the minimum value for the range of results when using `getByteFrequencyData()`.",
+ "smoothingtimeconstant": "\n\nThe **`smoothingTimeConstant`** property of the [AnalyserNode] interface is a double value representing the averaging constant with the last analysis frame. It's basically an average between the current buffer and the last buffer the `AnalyserNode` processed, and results in a much smoother set of value changes over time."
+ }
+ },
+ "angle_instanced_arrays": {
+ "docs": "\n\nThe **`ANGLE_instanced_arrays`** extension is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type.\n\nWebGL extensions are available using the [WebGLRenderingContext.getExtension] method. For more information, see also [Using Extensions](/en-US/docs/Web/API/WebGL_API/Using_Extensions) in the [WebGL tutorial](/en-US/docs/Web/API/WebGL_API/Tutorial).\n\n> **Note:** This extension is only available to [WebGLRenderingContext] contexts. In [WebGL2RenderingContext], the functionality of this extension is available on the WebGL2 context by default and the constants and methods are available without the \"`ANGLE`\" suffix.\n>\n> Despite the name \"ANGLE\", this extension works on any device if the hardware supports it and not just on Windows when using the ANGLE library. \"ANGLE\" just indicates that this extension has been written by the ANGLE library authors.",
+ "properties": {
+ "drawarraysinstancedangle": "\n\nThe **`ANGLE_instanced_arrays.drawArraysInstancedANGLE()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) renders primitives from array data like the [WebGLRenderingContext.drawArrays] method. In addition, it can execute multiple instances of the range of elements.\n\n> **Note:** When using [WebGL2RenderingContext], this method is available as [WebGL2RenderingContext.drawArraysInstanced] by default.",
+ "drawelementsinstancedangle": "\n\nThe **`ANGLE_instanced_arrays.drawElementsInstancedANGLE()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) renders primitives from array data like the [WebGLRenderingContext.drawElements] method. In addition, it can execute multiple instances of a set of elements.\n\n> **Note:** When using [WebGL2RenderingContext], this method is available as [WebGL2RenderingContext.drawElementsInstanced] by default.",
+ "vertexattribdivisorangle": "\n\nThe **ANGLE_instanced_arrays.vertexAttribDivisorANGLE()** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) modifies the rate at which generic vertex attributes advance when rendering multiple instances of primitives with [ANGLE_instanced_arrays.drawArraysInstancedANGLE] and [ANGLE_instanced_arrays.drawElementsInstancedANGLE].\n\n> **Note:** When using [WebGL2RenderingContext], this method is available as [WebGL2RenderingContext.vertexAttribDivisor] by default."
+ }
+ },
+ "animation": {
+ "docs": "\n\nThe **`Animation`** interface of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) represents a single animation player and provides playback controls and a timeline for an animation node or source.\n\n",
+ "properties": {
+ "cancel": "\n\nThe Web Animations API's **`cancel()`** method of the [Animation] interface clears all [KeyframeEffect]s caused by this animation and aborts its playback.\n\n> **Note:** When an animation is cancelled, its [Animation.startTime] and [Animation.currentTime] are set to `null`.",
+ "cancel_event": "\n\nThe **`cancel`** event of the [Animation] interface is fired when the [Animation.cancel] method is called or when the animation enters the `\"idle\"` play state from another state, such as when the animation is removed from an element before it finishes playing.\n\n> **Note:** Creating a new animation that is initially idle does not trigger a `cancel` event on the new animation.",
+ "commitstyles": "\n\nThe `commitStyles()` method of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API)'s [Animation] interface writes the [computed values](/en-US/docs/Web/CSS/computed_value) of the animation's current styles into its target element's [`style`](/en-US/docs/Web/HTML/Global_attributes#style) attribute. `commitStyles()` works even if the animation has been [automatically removed](/en-US/docs/Web/API/Web_Animations_API/Using_the_Web_Animations_API#automatically_removing_filling_animations).\n\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](https://drafts.csswg.org/web-animations-1/#fill-behavior). Animations [take precedence over all static styles](/en-US/docs/Web/CSS/Cascade#cascading_order), so an indefinite filling animation can prevent the target element from ever being styled normally.\n\nUsing `commitStyles()` writes the styling state into the element's [`style`](/en-US/docs/Web/HTML/Global_attributes#style) attribute, where they can be modified and replaced as normal.",
+ "currenttime": "\n\nThe **`Animation.currentTime`** property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) returns and sets the current time value of the animation in milliseconds, whether running or paused.\n\nIf the animation lacks a [AnimationTimeline], is inactive, or hasn't been played yet, `currentTime`'s return value is `null`.",
+ "effect": "\n\nThe **`Animation.effect`** property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) gets and sets the target effect of an animation. The target effect may be either an effect object of a type based on [AnimationEffect], such as [KeyframeEffect], or `null`.",
+ "finish": "\n\nThe **`finish()`** method of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API)'s [Animation] Interface sets the current playback time to the end of the animation corresponding to the current playback direction.\n\nThat is, if the animation is playing forward, it sets the playback time to the length of the animation sequence, and if the animation is playing in reverse (having had its [Animation.reverse] method called), it sets the playback time to 0.",
+ "finish_event": "\n\nThe **`finish`** event of the [Animation] interface is fired when the animation finishes playing, either when the animation completes naturally, or\nwhen the [Animation.finish] method is called to immediately cause the\nanimation to finish up.\n\n> **Note:** The `\"paused\"` play state supersedes the `\"finished\"` play\n> state; if the animation is both paused and finished, the `\"paused\"` state\n> is the one that will be reported. You can force the animation into the\n> `\"finished\"` state by setting its [Animation.startTime] to\n> `document.timeline.currentTime - (Animation.currentTime * Animation.playbackRate)`.",
+ "finished": "\n\nThe **`Animation.finished`** read-only property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) returns a `Promise` which resolves once the animation has finished playing.\n\n> **Note:** Every time the animation leaves the `finished` play state (that is, when it starts playing again), a new `Promise` is created for this property. The new `Promise` will resolve once the new animation sequence has completed.",
+ "id": "\n\nThe **`Animation.id`** property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) returns or sets a string used to identify the animation.",
+ "pause": "\n\nThe **`pause()`** method of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API)'s [Animation] interface suspends playback of the animation.",
+ "pending": "\n\nThe read-only **`Animation.pending`** property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) indicates whether the animation is currently waiting for an asynchronous operation such as initiating playback or pausing a running animation.",
+ "persist": "\n\nThe `persist()` method of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API)'s [Animation] interface explicitly persists an animation, preventing it from being [automatically removed](/en-US/docs/Web/API/Web_Animations_API/Using_the_Web_Animations_API#automatically_removing_filling_animations) when it is replaced by another animation.",
+ "play": "\n\nThe **`play()`** method of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API)'s [Animation] Interface starts or resumes playing of an animation. If the animation is finished, calling `play()` restarts the animation, playing it from the beginning.",
+ "playbackrate": "\n\nThe **`Animation.playbackRate`** property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) returns or sets the playback rate of the animation.\n\nAnimations have a **playback rate** that provides a scaling factor from the rate of change of the animation's [DocumentTimeline] time values to the animation's current time. The playback rate is initially `1`.",
+ "playstate": "\n\nThe read-only **`Animation.playState`** property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) returns an enumerated value describing the playback state of an animation.",
+ "ready": "\n\nThe read-only **`Animation.ready`** property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) returns a `Promise` which resolves when the animation is ready to play. A new promise is created every time the animation enters the `\"pending\"` [play state](/en-US/docs/Web/API/Animation/playState) as well as when the animation is canceled, since in both of those scenarios, the animation is ready to be started again.\n\n> **Note:** Since the same `Promise` is used for both pending `play` and pending `pause` requests, authors are advised to check the state of the animation when the promise is resolved.",
+ "remove_event": "\n\nThe **`remove`** event of the [Animation] interface fires when the animation is [automatically removed](/en-US/docs/Web/API/Web_Animations_API/Using_the_Web_Animations_API#automatically_removing_filling_animations) by the browser.",
+ "replacestate": "\n\nThe read-only **`Animation.replaceState`** property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) indicates whether the animation has been [removed by the browser automatically](/en-US/docs/Web/API/Web_Animations_API/Using_the_Web_Animations_API#automatically_removing_filling_animations) after being replaced by another animation.",
+ "reverse": "\n\nThe **`Animation.reverse()`** method of the [Animation] Interface reverses the playback direction, meaning the animation ends at its beginning. If called on an unplayed animation, the whole animation is played backwards. If called on a paused animation, the animation will continue in reverse.",
+ "starttime": "\n\nThe **`Animation.startTime`** property of the [Animation] interface is a double-precision floating-point value which indicates the scheduled time when an animation's playback should begin.\n\nAn animation's **start time** is the time value of its [DocumentTimeline] when its target [KeyframeEffect] is scheduled to begin playback. An animation's **start time** is initially unresolved (meaning that it's `null` because it has no value).",
+ "timeline": "\n\nThe **`Animation.timeline`** property of the [Animation] interface returns or sets the [AnimationTimeline] associated with this animation. A timeline is a source of time values for synchronization purposes, and is an [AnimationTimeline]-based object. By default, the animation's timeline and the [Document]'s timeline are the same.",
+ "updateplaybackrate": "\n\nThe **`updatePlaybackRate()`** method of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API)'s\n[Animation] Interface sets the speed of an animation after first\nsynchronizing its playback position.\n\nIn some cases, an animation may run on a separate thread or process and will continue\nupdating even while long-running JavaScript delays the main thread. In such a case,\nsetting the [Animation.playbackRate] on the animation\ndirectly may cause the animation's playback position to jump since its playback\nposition on the main thread may have drifted from the playback position where it is\ncurrently running.\n\n`updatePlaybackRate()` is an asynchronous method that sets the speed of an\nanimation after synchronizing with its current playback position, ensuring that the\nresulting change in speed does not produce a sharp jump. After calling\n`updatePlaybackRate()` the animation's [Animation.playbackRate] is _not_ immediately updated. It will be updated once the\nanimation's [Animation.ready] promise is resolved."
+ }
+ },
+ "animationeffect": {
+ "docs": "\n\nThe `AnimationEffect` interface of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) is an interface representing animation effects.\n\n`AnimationEffect` is an abstract interface and so isn't directly instantiable. However, concrete interfaces such as [KeyframeEffect] inherit from it, and instances of these interfaces can be passed to [Animation] objects for playing, and may also be used by [CSS Animations](/en-US/docs/Web/CSS/CSS_animations) and [Transitions](/en-US/docs/Web/CSS/CSS_transitions).",
+ "properties": {
+ "getcomputedtiming": "\n\nThe `getComputedTiming()` method of the [AnimationEffect] interface returns the calculated timing properties for this animation effect.\n\n> **Note:** These values are comparable to the computed styles of an Element returned using `window.getComputedStyle(elem)`.",
+ "gettiming": "\n\nThe `AnimationEffect.getTiming()` method of the [AnimationEffect] interface returns an object containing the timing properties for the Animation Effect.\n\n> **Note:** Several of the timing properties returned by `getTiming()` may take on the placeholder value `\"auto\"`. To obtain resolved values for use in timing computations, instead use [AnimationEffect.getComputedTiming].\n>\n> In the future, `\"auto\"` or similar values might be added to the types of more timing properties, and new types of [AnimationEffect] might resolve `\"auto\"` to different values.",
+ "updatetiming": "\n\nThe `updateTiming()` method of the [AnimationEffect] interface updates the specified timing properties for an animation effect."
+ }
+ },
+ "animationevent": {
+ "docs": "\n\nThe **`AnimationEvent`** interface represents events providing information related to [animations](/en-US/docs/Web/CSS/CSS_animations/Using_CSS_animations).\n\n",
+ "properties": {
+ "animationname": "\n\nThe **`AnimationEvent.animationName`** read-only property is a\nstring containing the value of the CSS\nproperty associated with the transition.",
+ "elapsedtime": "\n\nThe **`AnimationEvent.elapsedTime`** read-only property is a\n`float` giving the amount of time the animation has been running, in seconds,\nwhen this event fired, excluding any time the animation was paused. For an\n[Element/animationstart_event] event,\n`elapsedTime` is `0.0` unless there was a negative value for\n, in which case the event will be fired with\n`elapsedTime` containing `(-1 * delay)`.",
+ "pseudoelement": "\n\nThe **`AnimationEvent.pseudoElement`** read-only property is a\nstring, starting with `'::'`, containing the name of the [pseudo-element](/en-US/docs/Web/CSS/Pseudo-elements) the animation runs on.\nIf the animation doesn't run on a pseudo-element but on the element, an empty string: `''`."
+ }
+ },
+ "animationplaybackevent": {
+ "docs": "\n\nThe AnimationPlaybackEvent interface of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) represents animation events.\n\nAs animations play, they report changes to their [Animation.playState] through animation events.\n\n",
+ "properties": {
+ "currenttime": "\n\nThe **`currentTime`** read-only property of the [AnimationPlaybackEvent] interface represents the current time of the animation that generated the event at the moment the event is queued. This will be unresolved if the animation was `idle` at the time the event was generated.",
+ "timelinetime": "\n\nThe **`timelineTime`** read-only property of the [AnimationPlaybackEvent] interface represents the time value of the animation's [AnimationTimeline] at the moment the event is queued. This will be unresolved if the animation was not associated with a timeline at the time the event was generated or if the associated timeline was inactive."
+ }
+ },
+ "animationtimeline": {
+ "docs": "\n\nThe `AnimationTimeline` interface of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) represents the timeline of an animation. This interface exists to define timeline features, inherited by other timeline types:\n\n- [DocumentTimeline]\n- [ScrollTimeline]\n- [ViewTimeline]",
+ "properties": {
+ "currenttime": "\n\nThe **`currentTime`** read-only property of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API)'s [AnimationTimeline] interface returns the timeline's current time in milliseconds, or `null` if the timeline is inactive."
+ }
+ },
+ "attr": {
+ "docs": "\n\nThe **`Attr`** interface represents one of an element's attributes as an object. In most situations, you will directly retrieve the attribute value as a string (e.g., [Element.getAttribute]), but certain functions (e.g., [Element.getAttributeNode]) or means of iterating return `Attr` instances.\n\nThe core idea of an object of type `Attr` is the association between a _name_ and a _value_. An attribute may also be part of a _namespace_ and, in this case, it also has a URI identifying the namespace, and a prefix that is an abbreviation for the namespace.\n\nThe name is deemed _local_ when it ignores the eventual namespace prefix and deemed _qualified_ when it includes the prefix of the namespace, if any, separated from the local name by a colon (`:`). We have three cases: an attribute outside of a namespace, an attribute inside a namespace without a prefix defined, an attribute inside a namespace with a prefix:\n\n| Attribute | Namespace name | Namespace prefix | Attribute local name | Attribute qualified name |\n| --------- | -------------- | ---------------- | -------------------- | ------------------------ |\n| `myAttr` | _none_ | _none_ | `myAttr` | `myAttr` |\n| `myAttr` | `mynamespace` | _none_ | `myAttr` | `myAttr` |\n| `myAttr` | `mynamespace` | `myns` | `myAttr` | `myns:myAttr` |\n\n> **Note:** This interface represents only attributes present in the tree representation of the [Element], being a SVG, an HTML or a MathML element. It doesn't represent the _property_ of an interface associated with such element, such as [HTMLTableElement] for a `table` element. (See for more information about attributes and how they are _reflected_ into properties.)",
+ "properties": {
+ "localname": "\n\nThe read-only **`localName`** property of the [Attr] interface returns the _local part_ of the _qualified name_ of an attribute, that is the name of the attribute, stripped from any namespace in front of it. For example, if the qualified name is `xml:lang`, the returned local name is `lang`, if the element supports that namespace.\n\nThe local name is always in lower case, whatever case at the attribute creation.\n\n> **Note:** HTML only supports a fixed set of namespaces on SVG and MathML elements. These are `xml` (for the `xml:lang` attribute), `xlink` (for the `xlink:href`, `xlink:show`, `xlink:target` and `xlink:title` attributes) and `xpath`.\n>\n> That means that the local name of an attribute of an HTML element is always be equal to its qualified name: Colons are treated as regular characters. In XML, like in SVG or MathML, the colon denotes the end of the prefix and what is before is the namespace; the local name may be different from the qualified name.",
+ "name": "\n\nThe read-only **`name`** property of the [Attr] interface returns the _qualified name_ of an attribute, that is the name of the attribute, with the namespace prefix, if any, in front of it. For example, if the local name is `lang` and the namespace prefix is `xml`, the returned qualified name is `xml:lang`.\n\nThe qualified name is always in lower case, whatever case at the attribute creation.",
+ "namespaceuri": "\n\nThe read-only **`namespaceURI`** property of the [Attr] interface returns the namespace URI of the attribute,\nor `null` if the element is not in a namespace.\n\nThe namespace URI is set at the [Attr] creation and cannot be changed.\nAn attribute with a namespace can be created using [Element.setAttributeNS].\n\n> **Note:** an attribute does not inherit its namespace from the element it is attached to.\n> If an attribute is not explicitly given a namespace, it has no namespace.\n\nThe browser does not handle or enforce namespace validation per se. It is up to the JavaScript\napplication to do any necessary validation. Note, too, that the namespace prefix, once it\nis associated with a particular attribute node, cannot be changed.",
+ "ownerelement": "\n\nThe read-only **`ownerElement`** property of the [Attr] interface returns the [Element] the attribute belongs to.",
+ "prefix": "\n\nThe read-only **`prefix`** property of the [Attr] returns the namespace prefix of the attribute, or `null` if no prefix is specified.\n\nThe prefix is always in lower case, whatever case is used at the attribute creation.\n\n> **Note:** Only XML supports namespaces. HTML does not. That means that the prefix of an attribute of an HTML element will always be `null`.\n\nAlso, only the `xml` (for the `xml:lang` attribute), `xlink` (for the `xlink:href`, `xlink:show`, `xlink:target` and `xlink:title` attributes) and `xpath` namespaces are supported, and only on SVG and MathML elements.",
+ "specified": "\n\nThe read-only **`specified`** property of the [Attr] interface always returns `true`.",
+ "value": "\n\nThe **`value`** property of the [Attr] interface contains the value of the attribute."
+ }
+ },
+ "audiobuffer": {
+ "docs": "\n\nThe **`AudioBuffer`** interface represents a short audio asset residing in memory, created from an audio file using the [BaseAudioContext/decodeAudioData] method, or from raw data using [BaseAudioContext/createBuffer]. Once put into an AudioBuffer, the audio can then be played by being passed into an [AudioBufferSourceNode].\n\nObjects of these types are designed to hold small audio snippets, typically less than 45 s. For longer sounds, objects implementing the [MediaElementAudioSourceNode] are more suitable. The buffer contains the audio signal waveform encoded as a series of amplitudes in the following format: non-interleaved IEEE754 32-bit linear PCM with a nominal range between `-1` and `+1`, that is, a 32-bit floating point buffer, with each sample between -1.0 and 1.0. If the [AudioBuffer] has multiple channels, they are stored in separate buffers.",
+ "properties": {
+ "copyfromchannel": "\n\nThe\n**`copyFromChannel()`** method of the\n[AudioBuffer] interface copies the audio sample data from the specified\nchannel of the `AudioBuffer` to a specified\n`Float32Array`.",
+ "copytochannel": "\n\nThe `copyToChannel()` method of the [AudioBuffer] interface copies\nthe samples to the specified channel of the `AudioBuffer`, from the source array.",
+ "duration": "\n\nThe **`duration`** property of the [AudioBuffer] interface returns a double representing the duration, in seconds, of the PCM data\nstored in the buffer.",
+ "getchanneldata": "\n\nThe **`getChannelData()`** method of the [AudioBuffer] Interface returns a `Float32Array` containing the PCM data associated with the channel, defined by the channel parameter (with 0 representing the first channel).",
+ "length": "\n\nThe **`length`** property of the [AudioBuffer]\ninterface returns an integer representing the length, in sample-frames, of the PCM data\nstored in the buffer.",
+ "numberofchannels": "\n\nThe `numberOfChannels` property of the [AudioBuffer]\ninterface returns an integer representing the number of discrete audio channels\ndescribed by the PCM data stored in the buffer.",
+ "samplerate": "\n\nThe **`sampleRate`** property of the [AudioBuffer] interface returns a float representing the sample rate, in\nsamples per second, of the PCM data stored in the buffer."
+ }
+ },
+ "audiobuffersourcenode": {
+ "docs": "\n\nThe **`AudioBufferSourceNode`** interface is an [AudioScheduledSourceNode] which represents an audio source consisting of in-memory audio data, stored in an [AudioBuffer].\n\nThis interface is especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network. To play sounds which require accurate timing but must be streamed from the network or played from disk, use a [AudioWorkletNode] to implement its playback.\n\nAn `AudioBufferSourceNode` has no inputs and exactly one output, which has the same number of channels as the `AudioBuffer` indicated by its [AudioBufferSourceNode.buffer] property. If there's no buffer set—that is, if `buffer` is `null`—the output contains a single channel of silence (every sample is 0).\n\nAn `AudioBufferSourceNode` can only be played once; after each call to [AudioBufferSourceNode.start], you have to create a new node if you want to play the same sound again. Fortunately, these nodes are very inexpensive to create, and the actual `AudioBuffer`s can be reused for multiple plays of the sound. Indeed, you can use these nodes in a \"fire and forget\" manner: create the node, call `start()` to begin playing the sound, and don't even bother to hold a reference to it. It will automatically be garbage-collected at an appropriate time, which won't be until sometime after the sound has finished playing.\n\nMultiple calls to [AudioScheduledSourceNode/stop] are allowed. The most recent call replaces the previous one, if the `AudioBufferSourceNode` has not already reached the end of the buffer.\n\n\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>0</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td>defined by the associated [AudioBuffer]</td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "buffer": "\n\nThe **`buffer`** property of the [AudioBufferSourceNode] interface provides the ability to play back audio\nusing an [AudioBuffer] as the source of the sound data.\n\nIf the `buffer` property is set to the value `null`, the node\ngenerates a single channel containing silence (that is, every sample is 0).",
+ "detune": "\n\nThe **`detune`** property of the\n[AudioBufferSourceNode] interface is a [k-rate](/en-US/docs/Web/API/AudioParam#k-rate) [AudioParam]\nrepresenting detuning of oscillation in [cents](https://en.wikipedia.org/wiki/Cent_%28music%29).\n\nFor example, values of +100 and -100 detune the source up or down by one semitone,\nwhile +1200 and -1200 detune it up or down by one octave.",
+ "loop": "\n\nThe `loop` property of the [AudioBufferSourceNode]\ninterface is a Boolean indicating if the audio asset must be replayed when the end of\nthe [AudioBuffer] is reached.\n\nThe `loop` property's default value is `false`.",
+ "loopend": "\n\nThe `loopEnd` property of the [AudioBufferSourceNode]\ninterface specifies is a floating point number specifying, in seconds, at what offset\ninto playing the [AudioBuffer] playback should loop back to the time\nindicated by the [AudioBufferSourceNode.loopStart] property.\nThis is only used if the [AudioBufferSourceNode.loop] property is\n`true`.",
+ "loopstart": "\n\nThe **`loopStart`** property of the [AudioBufferSourceNode] interface is a floating-point value indicating, in\nseconds, where in the [AudioBuffer] the restart of the play must happen.\n\nThe `loopStart` property's default value is `0`.",
+ "playbackrate": "\n\nThe **`playbackRate`** property of\nthe [AudioBufferSourceNode] interface Is a [k-rate](/en-US/docs/Web/API/AudioParam#k-rate) [AudioParam] that\ndefines the speed at which the audio asset will be played.\n\nA value of 1.0 indicates it should play at the same speed as its sampling rate,\nvalues less than 1.0 cause the sound to play more slowly, while values greater than\n1.0 result in audio playing faster than normal. The default value is `1.0`.\nWhen set to another value, the `AudioBufferSourceNode` resamples the audio\nbefore sending it to the output.",
+ "start": "\n\nThe `start()` method of the [AudioBufferSourceNode]\nInterface is used to schedule playback of the audio data contained in the buffer, or\nto begin playback immediately."
+ }
+ },
+ "audiocontext": {
+ "docs": "\n\nThe `AudioContext` interface represents an audio-processing graph built from audio modules linked together, each represented by an [AudioNode].\n\nAn audio context controls both the creation of the nodes it contains and the execution of the audio processing, or decoding. You need to create an `AudioContext` before you do anything else, as everything happens inside a context. It's recommended to create one AudioContext and reuse it instead of initializing a new one each time, and it's OK to use a single `AudioContext` for several different audio sources and pipeline concurrently.\n\n",
+ "properties": {
+ "baselatency": "\n\nThe **`baseLatency`** read-only property of the\n[AudioContext] interface returns a double that represents the number of\nseconds of processing latency incurred by the `AudioContext` passing an audio\nbuffer from the [AudioDestinationNode] — i.e. the end of the audio graph —\ninto the host system's audio subsystem ready for playing.\n\n> **Note:** You can request a certain latency during\n> [AudioContext.AudioContext] with the\n> `latencyHint` option, but the browser may ignore the option.",
+ "close": "\n\nThe `close()` method of the [AudioContext] Interface closes the audio context, releasing any system audio resources that it uses.\n\nThis function does not automatically release all `AudioContext`-created objects, unless other references have been released as well; however, it will forcibly release any system audio resources that might prevent additional `AudioContexts` from being created and used, suspend the progression of audio time in the audio context, and stop processing audio data. The returned `Promise` resolves when all `AudioContext`-creation-blocking resources have been released. This method throws an `INVALID_STATE_ERR` exception if called on an [OfflineAudioContext].",
+ "createmediaelementsource": "\n\nThe `createMediaElementSource()` method of the [AudioContext] Interface is used to create a new [MediaElementAudioSourceNode] object, given an existing HTML `audio` or `video` element, the audio from which can then be played and manipulated.\n\nFor more details about media element audio source nodes, check out the [MediaElementAudioSourceNode] reference page.",
+ "createmediastreamdestination": "\n\nThe `createMediaStreamDestination()` method of the [AudioContext] Interface is used to create a new [MediaStreamAudioDestinationNode] object associated with a [WebRTC](/en-US/docs/Web/API/WebRTC_API) [MediaStream] representing an audio stream, which may be stored in a local file or sent to another computer.\n\nThe [MediaStream] is created when the node is created and is accessible via the [MediaStreamAudioDestinationNode]'s `stream` attribute. This stream can be used in a similar way as a `MediaStream` obtained via [navigator.getUserMedia] — it can, for example, be sent to a remote peer using the `addStream()` method of `RTCPeerConnection`.\n\nFor more details about media stream destination nodes, check out the [MediaStreamAudioDestinationNode] reference page.",
+ "createmediastreamsource": "\n\nThe `createMediaStreamSource()` method of the [AudioContext]\nInterface is used to create a new [MediaStreamAudioSourceNode]\nobject, given a media stream (say, from a [MediaDevices.getUserMedia]\ninstance), the audio from which can then be played and manipulated.\n\nFor more details about media stream audio source nodes, check out the [MediaStreamAudioSourceNode] reference page.",
+ "createmediastreamtracksource": "\n\nThe **`createMediaStreamTrackSource()`** method of the [AudioContext] interface creates and returns a\n[MediaStreamTrackAudioSourceNode] which represents an audio source whose\ndata comes from the specified [MediaStreamTrack].\n\nThis differs from [AudioContext.createMediaStreamSource], which creates a\n[MediaStreamAudioSourceNode] whose audio comes from the audio track in a\nspecified [MediaStream] whose [MediaStreamTrack.id] is\nfirst, lexicographically (alphabetically).",
+ "getoutputtimestamp": "\n\nThe\n**`getOutputTimestamp()`** method of the\n[AudioContext] interface returns a new `AudioTimestamp` object\ncontaining two audio timestamp values relating to the current audio context.\n\nThe two values are as follows:\n\n- `AudioTimestamp.contextTime`: The time of the sample frame currently\n being rendered by the audio output device (i.e., output audio stream position), in the\n same units and origin as the context's [BaseAudioContext/currentTime].\n Basically, this is the time after the audio context was first created.\n- `AudioTimestamp.performanceTime`: An estimation of the moment when the\n sample frame corresponding to the stored `contextTime` value was rendered\n by the audio output device, in the same units and origin as\n [performance.now]. This is the time after the document containing the\n audio context was first rendered.",
+ "outputlatency": "\n\nThe **`outputLatency`** read-only property of\nthe [AudioContext] Interface provides an estimation of the output latency\nof the current audio context.\n\nThis 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\nIt varies depending on the platform and the available hardware.",
+ "resume": "\n\nThe **`resume()`** method of the [AudioContext]\ninterface resumes the progression of time in an audio context that has previously been\nsuspended.\n\nThis method will cause an `INVALID_STATE_ERR` exception to be thrown if\ncalled on an [OfflineAudioContext].",
+ "setsinkid": "\n\nThe **`setSinkId()`** method of the [AudioContext] interface sets the output audio device for the `AudioContext`. If a sink ID is not explicitly set, the default system audio output device will be used.\n\nTo set the audio device to a device different than the default one, the developer needs permission to access to audio devices. If required, the user can be prompted to grant the required permission via a [MediaDevices.getUserMedia] call.\n\nIn addition, this feature may be blocked by a [`speaker-selection`](/en-US/docs/Web/HTTP/Headers/Permissions-Policy/speaker-selection) [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).",
+ "sinkchange_event": "\n\nThe **`sinkchange`** event of the [AudioContext] interface is fired when the output audio device (and therefore, the [AudioContext.sinkId]) has changed.",
+ "sinkid": "\n\nThe **`sinkId`** read-only property of the\n[AudioContext] interface returns the sink ID of the current output audio device.",
+ "suspend": "\n\nThe `suspend()` method of the [AudioContext] Interface suspends the progression of time in the audio context, temporarily halting audio hardware access and reducing CPU/battery usage in the process — this is useful if you want an application to power down the audio hardware when it will not be using an audio context for a while.\n\nThis method will cause an `INVALID_STATE_ERR` exception to be thrown if called on an [OfflineAudioContext]."
+ }
+ },
+ "audiodata": {
+ "docs": "\n\nThe **`AudioData`** interface of the [WebCodecs API](/en-US/docs/Web/API/WebCodecs_API) represents an audio sample.\n\n`AudioData` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).",
+ "properties": {
+ "allocationsize": "\n\nThe **`allocationSize()`** method of the [AudioData] interface returns the size in bytes required to hold the current sample as filtered by options passed into the method.",
+ "clone": "\n\nThe **`clone()`** method of the [AudioData] interface creates a new `AudioData` object with reference to the same media resource as the original.",
+ "close": "\n\nThe **`close()`** method of the [AudioData] interface clears all states and releases the reference to the media resource.",
+ "copyto": "\n\nThe **`copyTo()`** method of the [AudioData] interface copies a plane of an `AudioData` object to a destination buffer.",
+ "duration": "\n\nThe **`duration`** read-only property of the [AudioData] interface returns the duration in microseconds of this `AudioData` object.",
+ "format": "\n\nThe **`format`** read-only property of the [AudioData] interface returns the sample format of the `AudioData` object.",
+ "numberofchannels": "\n\nThe **`numberOfChannels`** read-only property of the [AudioData] interface returns the number of channels in the `AudioData` object.",
+ "numberofframes": "\n\nThe **`numberOfFrames`** read-only property of the [AudioData] interface returns the number of frames in the `AudioData` object.",
+ "samplerate": "\n\nThe **`sampleRate`** read-only property of the [AudioData] interface returns the sample rate in Hz.",
+ "timestamp": "\n\nThe **`duration`** read-only property of the [AudioData] interface returns the timestamp of this `AudioData` object."
+ }
+ },
+ "audiodecoder": {
+ "docs": "\n\nThe **`AudioDecoder`** interface of the [WebCodecs API] decodes chunks of audio.\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [AudioDecoder] interface ends all pending work and releases system resources.",
+ "configure": "\n\nThe **`configure()`** method of the [AudioDecoder] interface enqueues a control message to configure the audio decoder for decoding chunks.",
+ "decode": "\n\nThe **`decode()`** method of the [AudioDecoder] interface enqueues a control message to decode a given chunk of audio.",
+ "decodequeuesize": "\n\nThe **`decodeQueueSize`** read-only property of the [AudioDecoder] interface returns the number of pending decode requests in the queue.",
+ "dequeue_event": "\n\nThe **`dequeue`** event of the [AudioDecoder] interface fires to signal a decrease in [AudioDecoder.decodeQueueSize].\n\nThis eliminates the need for developers to use a [setTimeout] poll to determine when the queue has decreased, and more work should be queued up.",
+ "flush": "\n\nThe **`flush()`** method of the [AudioDecoder] interface returns a Promise that resolves once all pending messages in the queue have been completed.",
+ "isconfigsupported_static": "\n\nThe **`isConfigSupported()`** static method of the [AudioDecoder] interface checks if the given config is supported (that is, if [AudioDecoder] objects can be successfully configured with the given config).",
+ "reset": "\n\nThe **`reset()`** method of the [AudioDecoder] interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.",
+ "state": "\n\nThe **`state`** read-only property of the [AudioDecoder] interface returns the current state of the underlying codec."
+ }
+ },
+ "audiodestinationnode": {
+ "docs": "\n\nThe `AudioDestinationNode` interface represents the end destination of an audio graph in a given context — usually the speakers of your device. It can also be the node that will \"record\" the audio data when used with an `OfflineAudioContext`.\n\n`AudioDestinationNode` has no output (as it _is_ the output, no more `AudioNode` can be linked after it in the audio graph) and one input. The number of channels in the input must be between `0` and the `maxChannelCount` value or an exception is raised.\n\nThe `AudioDestinationNode` of a given `AudioContext` can be retrieved using the [BaseAudioContext/destination] property.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>0</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"explicit\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "maxchannelcount": "\n\nThe `maxchannelCount` property of the [AudioDestinationNode] interface is an `unsigned long` defining the maximum amount of channels that the physical device can handle.\n\nThe [AudioNode.channelCount] property can be set between 0 and this value (both included). If `maxChannelCount` is `0`, like in [OfflineAudioContext], the channel count cannot be changed."
+ }
+ },
+ "audioencoder": {
+ "docs": "\n\nThe **`AudioEncoder`** interface of the [WebCodecs API](/en-US/docs/Web/API/WebCodecs_API) encodes [AudioData] objects.\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [AudioEncoder] interface ends all pending work and releases system resources.",
+ "configure": "\n\nThe **`configure()`** method of the [AudioEncoder] interface enqueues a control message to configure the audio encoder for encoding chunks.",
+ "dequeue_event": "\n\nThe **`dequeue`** event of the [AudioEncoder] interface fires to signal a decrease in [AudioEncoder.encodeQueueSize].\n\nThis eliminates the need for developers to use a [setTimeout] poll to determine when the queue has decreased, and more work should be queued up.",
+ "encode": "\n\nThe **`encode()`** method of the [AudioEncoder] interface enqueues a control message to encode a given [AudioData] object.",
+ "encodequeuesize": "\n\nThe **`encodeQueueSize`** read-only property of the [AudioEncoder] interface returns the number of pending encode requests in the queue.",
+ "flush": "\n\nThe **`flush()`** method of the [AudioEncoder] interface returns a Promise that resolves once all pending messages in the queue have been completed.",
+ "isconfigsupported_static": "\n\nThe **`isConfigSupported()`** static method of the [AudioEncoder] interface checks if the given config is supported (that is, if [AudioEncoder] objects can be successfully configured with the given config).",
+ "reset": "\n\nThe **`reset()`** method of the [AudioEncoder] interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.",
+ "state": "\n\nThe **`state`** read-only property of the [AudioEncoder] interface returns the current state of the underlying codec."
+ }
+ },
+ "audiolistener": {
+ "docs": "\n\nThe `AudioListener` interface represents the position and orientation of the unique person listening to the audio scene, and is used in [audio spatialization](/en-US/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics). All [PannerNode]s spatialize in relation to the `AudioListener` stored in the [BaseAudioContext.listener] attribute.\n\nIt is important to note that there is only one listener per context and that it isn't an [AudioNode].\n\n",
+ "properties": {
+ "forwardx": "\n\nThe `forwardX` read-only property of the [AudioListener] interface is an [AudioParam] representing the x value of the direction vector defining the forward direction the listener is pointing in.\n\n> **Note:** The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.",
+ "forwardy": "\n\nThe `forwardY` read-only property of the [AudioListener] interface is an [AudioParam] representing the y value of the direction vector defining the forward direction the listener is pointing in.\n\n> **Note:** The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.",
+ "forwardz": "\n\nThe `forwardZ` read-only property of the [AudioListener] interface is an [AudioParam] representing the z value of the direction vector defining the forward direction the listener is pointing in.\n\n> **Note:** The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.",
+ "positionx": "\n\nThe `positionX` read-only property of the [AudioListener] interface is an [AudioParam] representing the x position of the listener in 3D cartesian space.\n\n> **Note:** The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.",
+ "positiony": "\n\nThe `positionY` read-only property of the [AudioListener] interface is an [AudioParam] representing the y position of the listener in 3D cartesian space.\n\n> **Note:** The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.",
+ "positionz": "\n\nThe `positionZ` read-only property of the [AudioListener] interface is an [AudioParam] representing the z position of the listener in 3D cartesian space.\n\n> **Note:** The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.",
+ "setorientation": "\n\nThe `setOrientation()` method of the [AudioListener] interface defines the orientation of the listener.\n\nIt consists of two direction vectors:\n\n- The _front vector_, defined by the three unitless parameters `x`, `y` and `z`, describes the direction of the face of the listener, that is the direction the nose of the person is pointing towards. The front vector's default value is `(0, 0, -1)`.\n- The _up vector_, defined by three unitless parameters `xUp`, `yUp` and `zUp`, describes the direction of the top of the listener's head. The up vector's default value is `(0, 1, 0)`.\n\nThe two vectors must be separated by an angle of 90° — in linear analysis terms, they must be perpendicular to each other.",
+ "setposition": " \n\nThe `setPosition()` method of the [AudioListener] Interface defines the position of the listener.\n\nThe three parameters `x`, `y` and `z` are unitless and describe the listener's position in 3D space according to the right-hand Cartesian coordinate system. [PannerNode] objects use this position relative to individual audio sources for spatialization.\n\nThe default value of the position vector is `(0, 0, 0)`.\n\n> **Note:** As this method is deprecated, use the three [AudioListener.positionX], [AudioListener.positionY], and [AudioListener.positionZ] properties instead.",
+ "upx": "\n\nThe `upX` read-only property of the [AudioListener] interface is an [AudioParam] representing the x value of the direction vector defining the up direction the listener is pointing in.\n\n> **Note:** The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.",
+ "upy": "\n\nThe `upY` read-only property of the [AudioListener] interface is an [AudioParam] representing the y value of the direction vector defining the up direction the listener is pointing in.\n\n> **Note:** The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.",
+ "upz": "\n\nThe `upZ` read-only property of the [AudioListener] interface is an [AudioParam] representing the z value of the direction vector defining the up direction the listener is pointing in.\n\n> **Note:** The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise."
+ }
+ },
+ "audionode": {
+ "docs": "\n\nThe **`AudioNode`** interface is a generic interface for representing an audio processing module.\n\nExamples include:\n\n- an audio source (e.g. an HTML `audio` or `video` element, an [OscillatorNode], etc.),\n- the audio destination,\n- intermediate processing module (e.g. a filter like [BiquadFilterNode] or [ConvolverNode]), or\n- volume control (like [GainNode])\n\n> **Note:** An `AudioNode` can be target of events, therefore it implements the [EventTarget] interface.",
+ "properties": {
+ "channelcount": "\n\nThe **`channelCount`** property of the [AudioNode] interface represents an integer used to determine how many channels are used when [up-mixing and down-mixing](/en-US/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#up-mixing_and_down-mixing) connections to any inputs to the node.\n\n`channelCount`'s usage and precise definition depend on the value of [AudioNode.channelCountMode]:\n\n- It is ignored if the `channelCountMode` value is `max`.\n- It is used as a maximum value if the `channelCountMode` value is `clamped-max`.\n- It is used as the exact value if the `channelCountMode` value is `explicit`.",
+ "channelcountmode": "\n\nThe `channelCountMode` property of the [AudioNode] interface represents an enumerated value describing the way channels must be matched between the node's inputs and outputs.",
+ "channelinterpretation": "\n\nThe **`channelInterpretation`** property of the [AudioNode] interface represents an enumerated value describing how input channels are mapped to output channels when the number of inputs/outputs is different. For example, this setting defines how a mono input will be up-mixed to a stereo or 5.1 channel output, or how a quad channel input will be down-mixed to a stereo or mono output.\n\nThe property has two options: `speakers` and `discrete`. These are documented in [Basic concepts behind Web Audio API > up-mixing and down-mixing](/en-US/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#up-mixing_and_down-mixing).",
+ "connect": "\n\nThe `connect()` method of the [AudioNode] interface lets\nyou connect one of the node's outputs to a target, which may be either another\n`AudioNode` (thereby directing the sound data to the specified node) or an\n[AudioParam], so that the node's output data is automatically used to\nchange the value of that parameter over time.",
+ "context": "\n\nThe read-only `context` property of the\n[AudioNode] interface returns the associated\n[BaseAudioContext], that is the object representing the processing graph\nthe node is participating in.",
+ "disconnect": "\n\nThe **`disconnect()`** method of the [AudioNode] interface lets you disconnect one or more nodes from the node on which the method is called.",
+ "numberofinputs": "\n\nThe `numberOfInputs` property of\nthe [AudioNode] interface returns the number of inputs feeding the\nnode. Source nodes are defined as nodes having a `numberOfInputs`\nproperty with a value of 0.",
+ "numberofoutputs": "\n\nThe `numberOfOutputs` property of\nthe [AudioNode] interface returns the number of outputs coming out of\nthe node. Destination nodes — like [AudioDestinationNode] — have\na value of 0 for this attribute."
+ }
+ },
+ "audioparam": {
+ "docs": "\n\nThe Web Audio API's `AudioParam` interface represents an audio-related parameter, usually a parameter of an [AudioNode] (such as [GainNode.gain]).\n\nAn `AudioParam` can be set to a specific value or a change in value, and can be scheduled to happen at a specific time and following a specific pattern.\n\nEach `AudioParam` has a list of events, initially empty, that define when and how values change. When this list is not empty, changes using the `AudioParam.value` attributes are ignored. This list of events allows us to schedule changes that have to happen at very precise times, using arbitrary timeline-based automation curves. The time used is the one defined in [BaseAudioContext/currentTime].",
+ "properties": {
+ "cancelandholdattime": "\n\nThe **`cancelAndHoldAtTime()`** method of the\n[AudioParam] interface cancels all scheduled future changes to the\n`AudioParam` but holds its value at a given time until further changes are\nmade using other methods.",
+ "cancelscheduledvalues": "\n\nThe `cancelScheduledValues()` method of the [AudioParam]\nInterface cancels all scheduled future changes to the `AudioParam`.",
+ "defaultvalue": "\n\nThe **`defaultValue`**\nread-only property of the [AudioParam] interface represents the initial\nvalue of the attributes as defined by the specific [AudioNode] creating\nthe `AudioParam`.",
+ "exponentialramptovalueattime": "\n\nThe **`exponentialRampToValueAtTime()`** method of the [AudioParam] Interface schedules a gradual exponential change in the value\nof the [AudioParam]. The change starts at the time specified for the\n_previous_ event, follows an exponential ramp to the new value given in the\n`value` parameter, and reaches the new value at the time given in the\n`endTime` parameter.\n\n> **Note:** Exponential ramps are considered more useful when changing\n> frequencies or playback rates than linear ramps because of the way the human ear\n> works.",
+ "linearramptovalueattime": "\n\nThe `linearRampToValueAtTime()` method of the [AudioParam]\nInterface schedules a gradual linear change in the value of the\n`AudioParam`. The change starts at the time specified for the\n_previous_ event, follows a linear ramp to the new value given in the\n`value` parameter, and reaches the new value at the time given in the\n`endTime` parameter.",
+ "maxvalue": "\n\nThe **`maxValue`**\nread-only property of the [AudioParam] interface represents the maximum\npossible value for the parameter's nominal (effective) range.",
+ "minvalue": "\n\nThe **`minValue`**\nread-only property of the [AudioParam] interface represents the minimum\npossible value for the parameter's nominal (effective) range.",
+ "settargetattime": "\n\nThe `setTargetAtTime()` method of the\n[AudioParam] interface schedules the start of a gradual change to the\n`AudioParam` value. This is useful for decay or release portions of ADSR\nenvelopes.",
+ "setvalueattime": "\n\nThe `setValueAtTime()` method of the\n[AudioParam] interface schedules an instant change to the\n`AudioParam` value at a precise time, as measured against\n[BaseAudioContext/currentTime]. The new value is given in the value parameter.",
+ "setvaluecurveattime": "\n\nThe\n**`setValueCurveAtTime()`** method of the\n[AudioParam] interface schedules the parameter's value to change\nfollowing a curve defined by a list of values.\n\nThe curve is a linear\ninterpolation between the sequence of values defined in an array of floating-point\nvalues, which are scaled to fit into the given interval starting at\n`startTime` and a specific duration.",
+ "value": "\n\nThe [Web Audio API's](/en-US/docs/Web/API/Web_Audio_API)\n[AudioParam] interface property **`value`** gets\nor sets the value of this [AudioParam] at the current time. Initially, the value is set to [AudioParam.defaultValue].\n\nSetting `value` has the same effect as\ncalling [AudioParam.setValueAtTime] with the time returned by the\n`AudioContext`'s [BaseAudioContext/currentTime]\nproperty."
+ }
+ },
+ "audioparamdescriptor": {
+ "docs": "\n\nThe **`AudioParamDescriptor`** dictionary of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) specifies properties for [AudioParam] objects.\n\nIt is used to create custom `AudioParam`s on an [AudioWorkletNode]. If the underlying [AudioWorkletProcessor] has a [AudioWorkletProcessor.parameterDescriptors] static getter, then the returned array of objects based on this dictionary is used internally by `AudioWorkletNode` constructor to populate its [AudioWorkletNode.parameters] property accordingly."
+ },
+ "audioparammap": {
+ "docs": "\n\nThe **`AudioParamMap`** interface of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) represents an iterable and read-only set of multiple audio parameters.\n\nAn `AudioParamMap` instance is a read-only [`Map`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#map-like_browser_apis), in which each key is the name string for a parameter, and the corresponding value is an [AudioParam] containing the value of that parameter."
+ },
+ "audioprocessingevent": {
+ "docs": "\n\nThe `AudioProcessingEvent` interface of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) represents events that occur when a [ScriptProcessorNode] input buffer is ready to be processed.\n\nAn `audioprocess` event with this interface is fired on a [ScriptProcessorNode] when audio processing is required. During audio processing, the input buffer is read and processed to produce output audio data, which is then written to the output buffer.\n\n> **Warning:** This feature has been deprecated and should be replaced by an [`AudioWorklet`](/en-US/docs/Web/API/AudioWorklet).\n\n",
+ "properties": {
+ "inputbuffer": "\n\nThe **`inputBuffer`** read-only property of the [AudioProcessingEvent] interface represents the input buffer of an audio processing event.\n\nThe input buffer is represented by an [AudioBuffer] object, which contains a collection of audio channels, each of which is an array of floating-point values representing the audio signal waveform encoded as a series of amplitudes. The number of channels and the length of each channel are determined by the channel count and buffer size properties of the `AudioBuffer`.",
+ "outputbuffer": "\n\nThe **`outputBuffer`** read-only property of the [AudioProcessingEvent] interface represents the output buffer of an audio processing event.\n\nThe output buffer is represented by an [AudioBuffer] object, which contains a collection of audio channels, each of which is an array of floating-point values representing the audio signal waveform encoded as a series of amplitudes. The number of channels and the length of each channel are determined by the channel count and buffer size properties of the `AudioBuffer`.",
+ "playbacktime": "\n\nThe **`playbackTime`** read-only property of the [AudioProcessingEvent] interface represents the time when the audio will be played. It is in the same coordinate system as the time used by the [AudioContext]."
+ }
+ },
+ "audioscheduledsourcenode": {
+ "docs": "\n\nThe `AudioScheduledSourceNode` interface—part of the Web Audio API—is a parent interface for several types of audio source node interfaces which share the ability to be started and stopped, optionally at specified times. Specifically, this interface defines the [AudioScheduledSourceNode.start] and [AudioScheduledSourceNode.stop] methods, as well as the [AudioScheduledSourceNode.ended_event] event.\n\n> **Note:** You can't create an `AudioScheduledSourceNode` object directly. Instead, use an interface which extends it, such as [AudioBufferSourceNode], [OscillatorNode] or [ConstantSourceNode].\n\nUnless stated otherwise, nodes based upon `AudioScheduledSourceNode` output silence when not playing (that is, before `start()` is called and after `stop()` is called). Silence is represented, as always, by a stream of samples with the value zero (0).\n\n",
+ "properties": {
+ "ended_event": "`Web Audio API`\n\nThe `ended` event of the [AudioScheduledSourceNode] interface is fired when the source node has stopped playing.\n\nThis event occurs when a [AudioScheduledSourceNode] has stopped playing, either because it's reached a predetermined stop time, the full duration of the audio has been performed, or because the entire buffer has been played.\n\nThis event is not cancelable and does not bubble.",
+ "start": "\n\nThe `start()` method on\n[AudioScheduledSourceNode] schedules a sound to begin playback at the\nspecified time. If no time is specified, then the sound begins playing\nimmediately.",
+ "stop": "\n\nThe `stop()` method on [AudioScheduledSourceNode] schedules a\nsound to cease playback at the specified time. If no time is specified, then the sound\nstops playing immediately.\n\nEach time you call `stop()` on the same node, the specified time replaces\nany previously-scheduled stop time that hasn't occurred yet. If the node has already\nstopped, this method has no effect.\n\n> **Note:** If a scheduled stop time occurs before the node's scheduled\n> start time, the node never starts to play."
+ }
+ },
+ "audiosinkinfo": {
+ "docs": "\n\nThe **`AudioSinkInfo`** interface of the [Web Audio API] represents information describing an [AudioContext]'s sink ID, retrieved via [AudioContext.sinkId].\n\n",
+ "properties": {
+ "type": "\n\nThe **`type`** read-only property of the [AudioSinkInfo] interface returns the type of the audio output device."
+ }
+ },
+ "audiotrack": {
+ "docs": "\n\nThe **`AudioTrack`** interface represents a single audio track from one of the HTML media elements, `audio` or `video`.\n\nThe most common use for accessing an `AudioTrack` object is to toggle its [AudioTrack.enabled] property in order to mute and unmute the track.",
+ "properties": {
+ "enabled": "\n\nThe **[AudioTrack]** property\n**`enabled`** specifies whether or not the described audio\ntrack is currently enabled for use. If the track is disabled by setting\n`enabled` to `false`, the track is muted and does not produce\naudio.",
+ "id": "\n\nThe **`id`** property contains a\nstring which uniquely identifies the track represented by the\n**[AudioTrack]**.\n\nThis ID can be used with the\n[AudioTrackList.getTrackById] method to locate a specific track within\nthe media associated with a media element. The track ID can also be used as the fragment of a URL that loads the specific track\n(if the media supports media fragments).",
+ "kind": "\n\nThe **`kind`** property contains a\nstring indicating the category of audio contained in the\n**[AudioTrack]**.\n\nThe `kind` can be used\nto determine the scenarios in which specific tracks should be enabled or disabled. See\n[Audio track kind strings](#audio_track_kind_strings) for a list of the kinds available for audio tracks.",
+ "label": "\n\nThe read-only **[AudioTrack]**\nproperty **`label`** returns a string specifying the audio\ntrack's human-readable label, if one is available; otherwise, it returns an empty\nstring.",
+ "language": "\n\nThe read-only **[AudioTrack]**\nproperty **`language`** returns a string identifying the\nlanguage used in the audio track.\n\nFor tracks that include multiple languages\n(such as a movie in English in which a few lines are spoken in other languages), this\nshould be the video's primary language.",
+ "sourcebuffer": "\n\nThe read-only **[AudioTrack]**\nproperty **`sourceBuffer`** returns the\n[SourceBuffer] that created the track, or null if the track was not\ncreated by a [SourceBuffer] or the [SourceBuffer] has been\nremoved from the [MediaSource.sourceBuffers] attribute of its parent\nmedia source."
+ }
+ },
+ "audiotracklist": {
+ "docs": "\n\nThe **`AudioTrackList`** interface is used to represent a list of the audio tracks contained within a given HTML media element, with each track represented by a separate [AudioTrack] object in the list.\n\nRetrieve an instance of this object with [HTMLMediaElement.audioTracks]. The individual tracks can be accessed using array syntax.\n\n",
+ "properties": {
+ "addtrack_event": "\n\nThe `addtrack` event is fired when a track is added to an [`AudioTrackList`](/en-US/docs/Web/API/AudioTrackList).",
+ "change_event": "\n\nThe `change` event is fired when an audio track is enabled or disabled, for example by changing the track's [`enabled`](/en-US/docs/Web/API/AudioTrack/enabled) property.\n\nThis event is not cancelable and does not bubble.",
+ "gettrackbyid": "\n\nThe **[AudioTrackList]** method\n**`getTrackById()`** returns the first\n[AudioTrack] object from the track list whose [AudioTrack.id] matches the specified string. This lets you find a specified track if\nyou know its ID string.",
+ "length": "\n\nThe read-only **[AudioTrackList]**\nproperty **`length`** returns the number of entries in the\n`AudioTrackList`, each of which is an [AudioTrack]\nrepresenting one audio track in the media element. A value of 0 indicates that\nthere are no audio tracks in the media.",
+ "removetrack_event": "\n\nThe `removetrack` event is fired when a track is removed from an [`AudioTrackList`](/en-US/docs/Web/API/AudioTrackList)."
+ }
+ },
+ "audioworklet": {
+ "docs": "\n\nThe **`AudioWorklet`** interface of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) is used to supply custom audio processing scripts that execute in a separate thread to provide very low latency audio processing.\n\nThe worklet's code is run in the [AudioWorkletGlobalScope] global execution context, using a separate Web Audio thread which is shared by the worklet and other audio nodes.\n\nAccess the audio context's instance of `AudioWorklet` through the [BaseAudioContext.audioWorklet] property.\n\n"
+ },
+ "audioworkletglobalscope": {
+ "docs": "\n\nThe **`AudioWorkletGlobalScope`** interface of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) represents a global execution context for user-supplied code, which defines custom [AudioWorkletProcessor]-derived classes.\n\nEach [BaseAudioContext] has a single [AudioWorklet] available under the [BaseAudioContext.audioWorklet] property, which runs its code in a single `AudioWorkletGlobalScope`.\n\nAs the global execution context is shared across the current `BaseAudioContext`, it's possible to define any other variables and perform any actions allowed in worklets — apart from defining `AudioWorkletProcessor` derived classes.\n\n",
+ "properties": {
+ "currentframe": "\n\nThe read-only **`currentFrame`** property of the [AudioWorkletGlobalScope] interface returns an integer that represents the ever-increasing current sample-frame of the audio block being processed. It is incremented by 128 (the size of a render quantum) after the processing of each audio block.",
+ "currenttime": "\n\nThe read-only **`currentTime`** property of the [AudioWorkletGlobalScope] interface returns a double that represents the ever-increasing context time of the audio block being processed. It is equal to the [BaseAudioContext.currentTime] property of the [BaseAudioContext] the worklet belongs to.",
+ "registerprocessor": "\n\nThe **`registerProcessor`** method of the\n[AudioWorkletGlobalScope] interface registers a class constructor derived\nfrom [AudioWorkletProcessor] interface under a specified _name_.",
+ "samplerate": "\n\nThe read-only **`sampleRate`** property of the [AudioWorkletGlobalScope] interface returns a float that represents the sample rate of the associated [BaseAudioContext] the worklet belongs to."
+ }
+ },
+ "audioworkletnode": {
+ "docs": "\n\n> **Note:** Although the interface is available outside [secure contexts](/en-US/docs/Web/Security/Secure_Contexts), the [BaseAudioContext.audioWorklet] property is not, thus custom [AudioWorkletProcessor]s cannot be defined outside them.\n\nThe **`AudioWorkletNode`** interface of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) represents a base class for a user-defined [AudioNode], which can be connected to an audio routing graph along with other nodes. It has an associated [AudioWorkletProcessor], which does the actual audio processing in a Web Audio rendering thread.\n\n",
+ "properties": {
+ "parameters": "\n\nThe read-only **`parameters`** property of the\n[AudioWorkletNode] interface returns the associated\n[AudioParamMap] — that is, a `Map`-like collection of\n[AudioParam] objects. They are instantiated during creation of the\nunderlying [AudioWorkletProcessor] according to its\n[AudioWorkletProcessor.parameterDescriptors] static\ngetter.",
+ "port": "\n\nThe read-only **`port`** property of the\n[AudioWorkletNode] interface returns the associated\n[MessagePort]. It can be used to communicate between the node and its\nassociated [AudioWorkletProcessor].\n\n> **Note:** The port at the other end of the channel is\n> available under the [AudioWorkletProcessor.port] property of the\n> processor.",
+ "processorerror_event": "\n\nThe `processorerror` event fires when the underlying [AudioWorkletProcessor] behind the node throws an exception in its constructor, the [AudioWorkletProcessor.process] method, or any user-defined class method.\n\nOnce an exception is thrown, the processor (and thus the node) will output silence throughout its lifetime."
+ }
+ },
+ "audioworkletprocessor": {
+ "docs": "\n\nThe **`AudioWorkletProcessor`** interface of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) represents an audio processing code behind a custom [AudioWorkletNode]. It lives in the [AudioWorkletGlobalScope] and runs on the Web Audio rendering thread. In turn, an [AudioWorkletNode] based on it runs on the main thread.",
+ "properties": {
+ "parameterdescriptors": "\n\nThe read-only **`parameterDescriptors`** property of an [AudioWorkletProcessor]-derived class is a _static getter_,\nwhich returns an iterable of [AudioParamDescriptor]-based objects.\n\nThe property is not a part of the [AudioWorkletProcessor]\ninterface, but, if defined, it is called internally by the\n[AudioWorkletProcessor] constructor to create a list of custom\n[AudioParam] objects in the [AudioWorkletNode.parameters] property of the associated [AudioWorkletNode].\n\nDefining the getter is optional.",
+ "port": "\n\nThe read-only **`port`** property of the\n[AudioWorkletProcessor] interface returns the associated\n[MessagePort]. It can be used to communicate between the processor and the\n[AudioWorkletNode] to which it belongs.\n\n> **Note:** The port at the other end of the channel is\n> available under the [AudioWorkletNode.port] property of the node.",
+ "process": "\n\nThe **`process()`**\nmethod of an [AudioWorkletProcessor]-derived class implements the audio\nprocessing algorithm for the audio processor worklet.\n\nAlthough the method is\nnot a part of the [AudioWorkletProcessor] interface, any implementation\nof `AudioWorkletProcessor` must provide a `process()` method.\n\nThe method is called synchronously from the audio rendering thread, once for each block\nof audio (also known as a rendering quantum) being directed through the processor's\ncorresponding [AudioWorkletNode]. In other words, every time a new block of\naudio is ready for your processor to manipulate, your `process()` function is\ninvoked to do so.\n\n> **Note:** Currently, audio data blocks are always 128 frames\n> long—that is, they contain 128 32-bit floating-point samples for each of the inputs'\n> channels. However, plans are already in place to revise the specification to allow the\n> size of the audio blocks to be changed depending on circumstances (for example, if the\n> audio hardware or CPU utilization is more efficient with larger block sizes).\n> Therefore, you _must always check the size of the sample array_ rather than\n> assuming a particular size.\n>\n> This size may even be allowed to change over time, so you mustn't look at just the\n> first block and assume the sample buffers will always be the same size."
+ }
+ },
+ "authenticatorassertionresponse": {
+ "docs": "\n\nThe **`AuthenticatorAssertionResponse`** interface of the [Web Authentication API](/en-US/docs/Web/API/Web_Authentication_API) contains a [digital signature](/en-US/docs/Glossary/Signature/Security) from the private key of a particular WebAuthn credential. The relying party's server can verify this signature to authenticate a user, for example when they sign in.\n\nAn `AuthenticatorAssertionResponse` object instance is available in the [PublicKeyCredential.response] property of a [PublicKeyCredential] object returned by a successful [CredentialsContainer.get] call.\n\nThis interface inherits from [AuthenticatorResponse].\n\n> **Note:** This interface is restricted to top-level contexts. Use from within an `iframe` element will not have any effect.",
+ "properties": {
+ "authenticatordata": "\n\nThe **`authenticatorData`** property of the [AuthenticatorAssertionResponse] interface returns an `ArrayBuffer` containing information from the authenticator such as the Relying Party ID Hash (rpIdHash), a signature counter, test of user presence, user verification flags, and any extensions processed by the authenticator.",
+ "signature": "\n\nThe **`signature`** read-only property of the\n[AuthenticatorAssertionResponse] interface is an `ArrayBuffer`\nobject which is the signature of the authenticator for both\n[AuthenticatorAssertionResponse.authenticatorData] and a SHA-256 hash of\nthe client data\n([AuthenticatorResponse.clientDataJSON]).\n\nThis signature will be sent to the server for control, as part of the response. It\nprovides the proof that an authenticator does possess the private key which was used for\nthe credential's generation.",
+ "userhandle": "\n\nThe **`userHandle`** read-only property of the [AuthenticatorAssertionResponse] interface is an `ArrayBuffer` object providing an opaque identifier for the given user. Such an identifier can be used by the relying party's server to link the user account with its corresponding credentials and other data.\n\nThis value is specified as `user.id` in the options passed to the originating [CredentialsContainer.create] call."
+ }
+ },
+ "authenticatorattestationresponse": {
+ "docs": "\n\nThe **`AuthenticatorAttestationResponse`** interface of the [Web Authentication API](/en-US/docs/Web/API/Web_Authentication_API) is the result of a WebAuthn credential registration. It contains information about the credential that the server needs to perform WebAuthn assertions, such as its credential ID and public key.\n\nAn `AuthenticatorAttestationResponse` object instance is available in the [PublicKeyCredential.response] property of a [PublicKeyCredential] object returned by a successful [CredentialsContainer.create] call.\n\nThis interface inherits from [AuthenticatorResponse].\n\n> **Note:** This interface is restricted to top-level contexts. Use of its features from within an `iframe` element will not have any effect.",
+ "properties": {
+ "attestationobject": "\n\nThe **`attestationObject`** property of the\n[AuthenticatorAttestationResponse] interface returns an\n`ArrayBuffer` containing the new public key, as well as signature over the\nentire `attestationObject` with a private key that is stored in the\nauthenticator when it is manufactured.\n\nAs part of the [CredentialsContainer.create] call, an authenticator will\ncreate a new keypair as well as an `attestationObject` for that keypair. The public key\nthat corresponds to the private key that has created the attestation signature is well\nknown; however, there are various well known attestation public key chains for different\necosystems (for example, Android or TPM attestations).",
+ "getauthenticatordata": "\n\nThe **`getAuthenticatorData()`** method of the [AuthenticatorAttestationResponse] interface returns an `ArrayBuffer` containing the authenticator data contained within the [AuthenticatorAttestationResponse.attestationObject] property.\n\nThis is a convenience function, created to allow easy access to the authenticator data without having to write extra parsing code to extract it from the `attestationObject`.",
+ "getpublickey": "\n\nThe **`getPublicKey()`** method of the [AuthenticatorAttestationResponse] interface returns an `ArrayBuffer` containing the DER `SubjectPublicKeyInfo` of the new credential (see [Subject Public Key Info](https://www.rfc-editor.org/rfc/rfc5280#section-4.1.2.7)), or `null` if this is not available.\n\nThis is a convenience function, created to allow easy access to the public key. This key will need to be stored in order to verify future authentication operations (i.e., using [CredentialsContainer.get]).",
+ "getpublickeyalgorithm": "\n\nThe **`getPublicKeyAlgorithm()`** method of the [AuthenticatorAttestationResponse] interface returns a number that is equal to a [COSE Algorithm Identifier](https://www.iana.org/assignments/cose/cose.xhtml#algorithms), representing the cryptographic algorithm used for the new credential.\n\nThis is a convenience function created to allow easy access to the algorithm type. This information will need to be stored in order to verify future authentication operations (i.e., using [CredentialsContainer.get]).",
+ "gettransports": "\n\nThe **`getTransports()`** method of the [AuthenticatorAttestationResponse] interface returns an array of strings describing the different transports which may be used by the authenticator.\n\nSuch transports may be USB, NFC, BLE, internal (applicable when the authenticator is not removable from the device), or a hybrid approach. Sites should not interpret this array but instead store it along with the rest of the credential information. In a subsequent [CredentialsContainer.get] call, the `transports` value(s) specified inside `publicKey.allowCredentials` should be set to the stored array value. This provides a hint to the browser as to which types of authenticators to try when making an assertion for this credential."
+ }
+ },
+ "authenticatorresponse": {
+ "docs": "\n\nThe **`AuthenticatorResponse`** interface of the [Web Authentication API](/en-US/docs/Web/API/Web_Authentication_API) is the base interface for interfaces that provide a cryptographic root of trust for a key pair. The child interfaces include information from the browser such as the challenge origin and either may be returned from [PublicKeyCredential.response].",
+ "properties": {
+ "clientdatajson": "\n\nThe **`clientDataJSON`** property of the [AuthenticatorResponse] interface stores a [JSON](/en-US/docs/Learn/JavaScript/Objects/JSON) string in an\n`ArrayBuffer`, representing the client data that was passed to [CredentialsContainer.create] or [CredentialsContainer.get]. This property is only accessed on one of the child objects of `AuthenticatorResponse`, specifically [AuthenticatorAttestationResponse] or [AuthenticatorAssertionResponse]."
+ }
+ },
+ "backgroundfetchevent": {
+ "docs": "\n\nThe **`BackgroundFetchEvent`** interface of the [Background Fetch API] is the event type for background fetch events dispatched on the [ServiceWorkerGlobalScope].\n\nIt is the event type passed to `onbackgroundfetchabort` and `onbackgroundfetchclick`.\n\n",
+ "properties": {
+ "registration": "\n\nThe **`registration`** read-only property of the [BackgroundFetchEvent] interface returns a [BackgroundFetchRegistration] object."
+ }
+ },
+ "backgroundfetchmanager": {
+ "docs": "\n\nThe **`BackgroundFetchManager`** interface of the [Background Fetch API] is a map where the keys are background fetch IDs and the values are [BackgroundFetchRegistration] objects.",
+ "properties": {
+ "fetch": "\n\nThe **`fetch()`** method of the [BackgroundFetchManager] interface initiates a background fetch operation, given one or more URLs or [Request] objects.",
+ "get": "\n\nThe **`get()`** method of the [BackgroundFetchManager] interface returns a `Promise` that resolves with the [BackgroundFetchRegistration] associated with the provided `id` or `undefined` if the `id` is not found.",
+ "getids": "\n\nThe **`getIds()`** method of the [BackgroundFetchManager] interface returns the IDs of all registered background fetches."
+ }
+ },
+ "backgroundfetchrecord": {
+ "docs": "\n\nThe **`BackgroundFetchRecord`** interface of the [Background Fetch API] represents an individual request and response.\n\nA `BackgroundFetchRecord` is created by the [BackgroundFetchRegistration.match] method, therefore there is no constructor for this interface.\n\nThere will be one `BackgroundFetchRecord` for each resource requested by `fetch()`.",
+ "properties": {
+ "request": "\n\nThe **`request`** read-only property of the [BackgroundFetchRecord] interface returns the details of the resource to be fetched.",
+ "responseready": "\n\nThe **`responseReady`** read-only property of the [BackgroundFetchRecord] interface returns a `Promise` that resolves with a [Response]."
+ }
+ },
+ "backgroundfetchregistration": {
+ "docs": "\n\nThe **`BackgroundFetchRegistration`** interface of the [Background Fetch API] represents an individual background fetch.\n\nA `BackgroundFetchRegistration` instance is returned by the [BackgroundFetchManager.fetch] or [BackgroundFetchManager.get] methods, and therefore there has no constructor.\n\n",
+ "properties": {
+ "abort": "\n\nThe **`abort()`** method of the [BackgroundFetchRegistration] interface aborts an active background fetch.",
+ "downloaded": "\n\nThe **`downloaded`** read-only property of the [BackgroundFetchRegistration] interface returns the size in bytes that has been downloaded, initially `0`.\n\nIf the value of this property changes, the [progress](/en-US/docs/Web/API/BackgroundFetchRegistration/progress_event) event is fired at the associated [BackgroundFetchRegistration] object.",
+ "downloadtotal": "\n\nThe **`downloadTotal`** read-only property of the [BackgroundFetchRegistration] interface returns the total size in bytes of this download. This is set when the background fetch was registered, or `0` if not set.",
+ "failurereason": "\n\nThe **`failureReason`** read-only property of the [BackgroundFetchRegistration] interface returns a string with a value that indicates a reason for a background fetch failure.\n\nIf the value of this property changes, the [progress](/en-US/docs/Web/API/BackgroundFetchRegistration/progress_event) event is fired at the associated [BackgroundFetchRegistration] object.",
+ "id": "\n\nThe **`id`** read-only property of the [BackgroundFetchRegistration] interface returns a copy of the background fetch's `ID`.",
+ "match": "\n\nThe **`match()`** method of the [BackgroundFetchRegistration] interface returns the first matching [BackgroundFetchRecord].",
+ "matchall": "\n\nThe **`matchAll()`** method of the [BackgroundFetchRegistration] interface returns an array of matching [BackgroundFetchRecord] objects.",
+ "progress_event": "\n\nThe **`progress`** event of the [BackgroundFetchRegistration] interface thrown when the associated background fetch progresses.\n\nPractically, this event is fired when any of the following properties will return a new value:\n\n- [BackgroundFetchRegistration.uploaded],\n- [BackgroundFetchRegistration.downloaded],\n- [BackgroundFetchRegistration.result], or\n- [BackgroundFetchRegistration.failureReason].",
+ "recordsavailable": "\n\nThe **`recordsAvailable`** read-only property of the [BackgroundFetchRegistration] interface returns `true` if there are requests and responses to be accessed. If this returns false then [BackgroundFetchRegistration.match] and [BackgroundFetchRegistration.matchAll] can't be used.",
+ "result": "\n\nThe **`result`** read-only property of the [BackgroundFetchRegistration] interface returns a string indicating whether the background fetch was successful or failed.\n\nIf the value of this property changes, the [progress](/en-US/docs/Web/API/BackgroundFetchRegistration/progress_event) event is fired at the associated [BackgroundFetchRegistration] object.",
+ "uploaded": "\n\nThe **`uploaded`** read-only property of the [BackgroundFetchRegistration] interface returns the size in bytes successfully sent, initially `0`.\n\nIf the value of this property changes, the [progress](/en-US/docs/Web/API/BackgroundFetchRegistration/progress_event) event is fired at the associated [BackgroundFetchRegistration] object.",
+ "uploadtotal": "\n\nThe **`uploadTotal`** read-only property of the [BackgroundFetchRegistration] interface returns the total number of bytes to be sent to the server."
+ }
+ },
+ "backgroundfetchupdateuievent": {
+ "docs": "\n\nThe **`BackgroundFetchUpdateUIEvent`** interface of the [Background Fetch API] is an event type for the [ServiceWorkerGlobalScope.backgroundfetchsuccess_event] and [ServiceWorkerGlobalScope.backgroundfetchfail_event] events, and provides a method for updating the title and icon of the app to inform a user of the success or failure of a background fetch.\n\n",
+ "properties": {
+ "updateui": "\n\nThe **`updateUI()`** method of the [BackgroundFetchUpdateUIEvent] interface updates the title and icon in the user interface to show the status of a background fetch.\n\nThis method may only be run once, to notify the user on a failed or a successful fetch."
+ }
+ },
+ "barcodedetector": {
+ "docs": "\n\nThe **`BarcodeDetector`** interface of the [Barcode Detection API] allows detection of linear and two dimensional barcodes in images.",
+ "properties": {
+ "detect": "\n\nThe **`detect()`** method of the\n[BarcodeDetector] interface returns a `Promise` which fulfills\nwith an `Array` of detected barcodes within an image.",
+ "getsupportedformats_static": "\n\nThe **`getSupportedFormats()`** static method\nof the [BarcodeDetector] interface returns a `Promise` which\nfulfills with an `Array` of supported barcode format types."
+ }
+ },
+ "barprop": {
+ "docs": "\n\nThe **`BarProp`** interface of the [Document Object Model] represents the web browser user interface elements that are exposed to scripts in web pages. Each of the following interface elements are represented by a `BarProp` object.\n\n- [Window.locationbar]\n - : The browser location bar.\n- [Window.menubar]\n - : The browser menu bar.\n- [Window.personalbar]\n - : The browser personal bar.\n- [Window.scrollbars]\n - : The browser scrollbars.\n- [Window.statusbar]\n - : The browser status bar.\n- [Window.toolbar]\n - : The browser toolbar.\n\nThe `BarProp` interface is not accessed directly, but via one of these elements.",
+ "properties": {
+ "visible": "\n\nThe **`visible`** read-only property of the [BarProp] interface returns `true` if the user interface element it represents is visible."
+ }
+ },
+ "baseaudiocontext": {
+ "docs": "\n\nThe `BaseAudioContext` interface of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) acts as a base definition for online and offline audio-processing graphs, as represented by [AudioContext] and [OfflineAudioContext] respectively. You wouldn't use `BaseAudioContext` directly — you'd use its features via one of these two inheriting interfaces.\n\nA `BaseAudioContext` can be a target of events, therefore it implements the [EventTarget] interface.\n\n",
+ "properties": {
+ "audioworklet": "\n\nThe `audioWorklet` read-only property of the\n[BaseAudioContext] interface returns an instance of\n[AudioWorklet] that can be used for adding\n[AudioWorkletProcessor]-derived classes which implement custom audio\nprocessing.",
+ "createanalyser": "\n\nThe `createAnalyser()` method of the\n[BaseAudioContext] interface creates an [AnalyserNode], which\ncan be used to expose audio time and frequency data and create data visualizations.\n\n> **Note:** The [AnalyserNode.AnalyserNode] constructor is the\n> recommended way to create an [AnalyserNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).\n\n> **Note:** For more on using this node, see the\n> [AnalyserNode] page.",
+ "createbiquadfilter": "\n\nThe `createBiquadFilter()` method of the [BaseAudioContext]\ninterface creates a [BiquadFilterNode], which represents a second order\nfilter configurable as several different common filter types.\n\n> **Note:** The [BiquadFilterNode.BiquadFilterNode] constructor is the\n> recommended way to create a [BiquadFilterNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createbuffer": "\n\nThe `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\nFor more details about audio buffers, check out the [AudioBuffer]\nreference page.\n\n> **Note:** `createBuffer()` used to be able to take compressed\n> data and give back decoded samples, but this ability was removed from the specification,\n> because all the decoding was done on the main thread, so\n> `createBuffer()` was blocking other code execution. The asynchronous method\n> `decodeAudioData()` does the same thing — takes compressed audio, such as an\n> MP3 file, and directly gives you back an [AudioBuffer] that you can\n> then play via an [AudioBufferSourceNode]. For simple use cases\n> like playing an MP3, `decodeAudioData()` is what you should be using.",
+ "createbuffersource": "\n\nThe `createBufferSource()` method of the [BaseAudioContext]\nInterface is used to create a new [AudioBufferSourceNode], which can be\nused to play audio data contained within an [AudioBuffer] object. [AudioBuffer]s are created using\n[BaseAudioContext.createBuffer] or returned by\n[BaseAudioContext.decodeAudioData] when it successfully decodes an audio\ntrack.\n\n> **Note:** The [AudioBufferSourceNode.AudioBufferSourceNode]\n> constructor is the recommended way to create a [AudioBufferSourceNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createchannelmerger": "\n\nThe `createChannelMerger()` method of the [BaseAudioContext] interface creates a [ChannelMergerNode],\nwhich combines channels from multiple audio streams into a single audio stream.\n\n> **Note:** The [ChannelMergerNode.ChannelMergerNode] constructor is the\n> recommended way to create a [ChannelMergerNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createchannelsplitter": "\n\nThe `createChannelSplitter()` method of the [BaseAudioContext] Interface is used to create a [ChannelSplitterNode],\nwhich is used to access the individual channels of an audio stream and process them separately.\n\n> **Note:** The [ChannelSplitterNode.ChannelSplitterNode]\n> constructor is the recommended way to create a [ChannelSplitterNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createconstantsource": "\n\nThe **`createConstantSource()`**\nproperty of the [BaseAudioContext] interface creates a\n[ConstantSourceNode] object, which is an audio source that continuously\noutputs a monaural (one-channel) sound signal whose samples all have the same\nvalue.\n\n> **Note:** The [ConstantSourceNode.ConstantSourceNode]\n> constructor is the recommended way to create a [ConstantSourceNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createconvolver": "\n\nThe `createConvolver()` method of the [BaseAudioContext]\ninterface creates a [ConvolverNode], which is commonly used to apply\nreverb effects to your audio. See the [spec definition of Convolution](https://webaudio.github.io/web-audio-api/#background-3) for more information.\n\n> **Note:** The [ConvolverNode.ConvolverNode]\n> constructor is the recommended way to create a [ConvolverNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createdelay": "\n\nThe `createDelay()` method of the\n[BaseAudioContext] Interface is used to create a [DelayNode],\nwhich is used to delay the incoming audio signal by a certain amount of time.\n\n> **Note:** The [DelayNode.DelayNode]\n> constructor is the recommended way to create a [DelayNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createdynamicscompressor": "\n\nThe `createDynamicsCompressor()` method of the [BaseAudioContext] Interface is used to create a\n[DynamicsCompressorNode], which can be used to apply compression to an\naudio signal.\n\nCompression lowers the volume of the loudest parts of the signal and raises the volume\nof the softest parts. Overall, a louder, richer, and fuller sound can be achieved. It is\nespecially important in games and musical applications where large numbers of individual\nsounds are played simultaneously, where you want to control the overall signal level and\nhelp avoid clipping (distorting) of the audio output.\n\n> **Note:** The [DynamicsCompressorNode.DynamicsCompressorNode]\n> constructor is the recommended way to create a [DynamicsCompressorNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "creategain": "\n\nThe `createGain()` method of the [BaseAudioContext]\ninterface creates a [GainNode], which can be used to control the\noverall gain (or volume) of the audio graph.\n\n> **Note:** The [GainNode.GainNode]\n> constructor is the recommended way to create a [GainNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createiirfilter": "\n\nThe **`createIIRFilter()`** method of the [BaseAudioContext] interface creates an [IIRFilterNode],\nwhich represents a general **[infinite impulse response](https://en.wikipedia.org/wiki/Infinite_impulse_response)** (IIR) filter which can be configured to serve as various types\nof filter.\n\n> **Note:** The [IIRFilterNode.IIRFilterNode]\n> constructor is the recommended way to create a [IIRFilterNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createoscillator": "\n\nThe `createOscillator()` method of the [BaseAudioContext]\ninterface creates an [OscillatorNode], a source representing a periodic\nwaveform. It basically generates a constant tone.\n\n> **Note:** The [OscillatorNode.OscillatorNode]\n> constructor is the recommended way to create a [OscillatorNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createpanner": "\n\nThe `createPanner()` method of the [BaseAudioContext]\nInterface is used to create a new [PannerNode], which is used to\nspatialize an incoming audio stream in 3D space.\n\nThe panner node is spatialized in relation to the AudioContext's\n[AudioListener] (defined by the [BaseAudioContext/listener]\nattribute), which represents the position and orientation of the person listening to the\naudio.\n\n> **Note:** The [PannerNode.PannerNode]\n> constructor is the recommended way to create a [PannerNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createperiodicwave": "\n\nThe `createPeriodicWave()` method of the [BaseAudioContext] Interface\nis used to create a [PeriodicWave], which is used to define a periodic waveform\nthat can be used to shape the output of an [OscillatorNode].",
+ "createscriptprocessor": "\n\nThe `createScriptProcessor()` method of the [BaseAudioContext] interface\ncreates a [ScriptProcessorNode] used for direct audio processing.\n\n> **Note:** This feature was replaced by [AudioWorklets](/en-US/docs/Web/API/AudioWorklet) and the [AudioWorkletNode] interface.",
+ "createstereopanner": "\n\nThe `createStereoPanner()` method of the [BaseAudioContext] interface creates a [StereoPannerNode], which can be used to apply\nstereo panning to an audio source.\nIt positions an incoming audio stream in a stereo image using a [low-cost panning algorithm](https://webaudio.github.io/web-audio-api/#stereopanner-algorithm).\n\n> **Note:** The [StereoPannerNode.StereoPannerNode]\n> constructor is the recommended way to create a [StereoPannerNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "createwaveshaper": "\n\nThe `createWaveShaper()` method of the [BaseAudioContext]\ninterface creates a [WaveShaperNode], which represents a non-linear\ndistortion. It is used to apply distortion effects to your audio.\n\n> **Note:** The [WaveShaperNode.WaveShaperNode]\n> constructor is the recommended way to create a [WaveShaperNode]; see\n> [Creating an AudioNode](/en-US/docs/Web/API/AudioNode#creating_an_audionode).",
+ "currenttime": "\n\nThe `currentTime` read-only property of the [BaseAudioContext]\ninterface returns a double representing an ever-increasing hardware timestamp in seconds that\ncan be used for scheduling audio playback, visualizing timelines, etc. It starts at 0.",
+ "decodeaudiodata": "\n\nThe `decodeAudioData()` method of the [BaseAudioContext]\nInterface is used to asynchronously decode audio file data contained in an\n`ArrayBuffer` that is loaded from [fetch],\n[XMLHttpRequest], or [FileReader]. The decoded\n[AudioBuffer] is resampled to the [AudioContext]'s sampling\nrate, then passed to a callback or promise.\n\nThis is the preferred method of creating an audio source for Web Audio API from an\naudio track. This method only works on complete file data, not fragments of audio file\ndata.\n\nThis function implements two alternative ways to asynchronously return the audio data or error messages: it returns a `Promise` that fulfills with the audio data, and also accepts callback arguments to handle success or failure. The primary method of interfacing with this function is via its Promise return value, and the callback parameters are provided for legacy reasons.",
+ "destination": "\n\nThe `destination` property of the [BaseAudioContext]\ninterface returns an [AudioDestinationNode] representing the final\ndestination of all audio in the context. It often represents an actual audio-rendering\ndevice such as your device's speakers.",
+ "listener": "\n\nThe `listener` property of the [BaseAudioContext] interface\nreturns an [AudioListener] object that can then be used for\nimplementing 3D audio spatialization.",
+ "samplerate": "\n\nThe `sampleRate` property of the [BaseAudioContext] interface returns a floating point number representing\nthe sample rate, in samples per second, used by all nodes in this audio\ncontext. This limitation means that sample-rate converters are not supported.",
+ "state": "\n\nThe `state` read-only property of the [BaseAudioContext]\ninterface returns the current state of the `AudioContext`.",
+ "statechange_event": "\n\nA `statechange` event is fired at a [BaseAudioContext] object when its [BaseAudioContext.state] member changes."
+ }
+ },
+ "batterymanager": {
+ "docs": "\n\nThe `BatteryManager` interface of the [Battery Status API] provides information about the system's battery charge level. The [navigator.getBattery] method returns a promise that resolves with a `BatteryManager` interface.\n\nSince Chrome 103, the `BatteryManager` interface of [Battery Status API] only expose to secure context.\n\n",
+ "properties": {
+ "charging": "\n\nThe **`BatteryManager.charging`** property is a Boolean value indicating whether or not the device's battery is currently being charged. When its value changes, the [BatteryManager/chargingchange_event] event is fired.\n\nIf the battery is charging or the user agent is unable to report the battery status information, this value is `true`. Otherwise, it is `false`.",
+ "chargingchange_event": "\n\nThe **`chargingchange`** event of the [Battery Status API] is fired when the battery [BatteryManager.charging] property is updated.",
+ "chargingtime": "\n\nThe **`BatteryManager.chargingTime`** property indicates the amount of time, in seconds, that remain until the battery is fully charged, or `0` if the battery is already fully charged or the user agent is unable to report the battery status information.\nIf the battery is currently discharging, its value is `Infinity`.\nWhen its value changes, the [BatteryManager/chargingtimechange_event] event is fired.\n\n> **Note:** Even if the time returned is precise to the second,\n> browsers round them to a higher interval\n> (typically to the closest 15 minutes) for privacy reasons.",
+ "chargingtimechange_event": "\n\nThe **`chargingtimechange`** event of the [Battery Status API] is fired when the battery [BatteryManager.chargingTime] property is updated.",
+ "dischargingtime": "\n\nThe **`BatteryManager.dischargingTime`** property indicates the amount of time, in seconds, that remains until the battery is fully discharged,\nor `Infinity` if the battery is currently charging rather than discharging or the user agent is unable to report the battery status information.\nWhen its value changes, the [BatteryManager/dischargingtimechange_event] event is fired.\n\n> **Note:** Even if the time returned is precise to the second, browsers round them to a higher\n> interval (typically to the closest 15 minutes) for privacy reasons.",
+ "dischargingtimechange_event": "\n\nThe **`dischargingtimechange`** event of the [Battery Status API] is fired when the battery [BatteryManager.dischargingTime] property is updated.",
+ "level": "\n\nThe **`BatteryManager.level`** property indicates the current battery charge level as a value between `0.0` and `1.0`.\nA value of `0.0` means the battery is empty and the system is about to be suspended.\nA value of `1.0` means the battery is full or the user agent is unable to report the battery status information.\nWhen its value changes, the [BatteryManager/levelchange_event] event is fired.",
+ "levelchange_event": "\n\nThe **`levelchange`** event of the [Battery Status API] is fired when the battery [BatteryManager.level] property is updated."
+ }
+ },
+ "beforeinstallpromptevent": {
+ "docs": "\n\nThe **`BeforeInstallPromptEvent`** is the interface of the [Window.beforeinstallprompt_event] event fired at the [Window] object before a user is prompted to \"install\" a website to a home screen on mobile.\n\nThis interface inherits from the [Event] interface.\n\n",
+ "properties": {
+ "platforms": "\n\nThe **`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.",
+ "prompt": "\n\nThe **`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\nThis 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.",
+ "userchoice": "\n\nThe **`userChoice`** property of the [BeforeInstallPromptEvent] interface represents the installation choice that the user made, when they were prompted to install the app."
+ }
+ },
+ "beforeunloadevent": {
+ "docs": "\n\nThe **`BeforeUnloadEvent`** interface represents the event object for the [Window/beforeunload_event] event, which is fired when the current window, contained document, and associated resources are about to be unloaded.\n\nSee the [Window/beforeunload_event] event reference for detailed guidance on using this event.\n\n",
+ "properties": {
+ "returnvalue": "\n\nThe **`returnValue`** property of the\n[BeforeUnloadEvent] 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 [Window/beforeunload_event] event reference for detailed up-to-date guidance."
+ }
+ },
+ "biquadfilternode": {
+ "docs": "\n\nThe `BiquadFilterNode` interface represents a simple low-order filter, and is created using the [BaseAudioContext/createBiquadFilter] method. It is an [AudioNode] that can represent different kinds of filters, tone control devices, and graphic equalizers. A `BiquadFilterNode` always has exactly one input and one output.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code> (not used in the default count mode)</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "detune": "\n\nThe `detune` property of the [BiquadFilterNode] interface is an [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) [AudioParam] representing detuning of the frequency in [cents](https://en.wikipedia.org/wiki/Cent_%28music%29).",
+ "frequency": "\n\nThe `frequency` property of the [BiquadFilterNode] interface is an [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) [AudioParam] — a double representing a frequency in the current filtering algorithm measured in hertz (Hz).\n\nIts default value is `350`, with a nominal range of `10` to the [Nyquist frequency](https://en.wikipedia.org/wiki/Nyquist_frequency) — that is, half of the sample rate.",
+ "gain": "\n\nThe `gain` property of the [BiquadFilterNode] interface is an [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) [AudioParam] — a double representing the [gain](https://en.wikipedia.org/wiki/Gain) used in the current filtering algorithm.\n\nWhen its value is positive, it represents a real gain; when negative, it represents an attenuation.\n\nIt is expressed in dB, has a default value of `0`, and can take a value in a nominal range of `-40` to `40`.",
+ "getfrequencyresponse": "\n\nThe `getFrequencyResponse()` method of the [BiquadFilterNode] interface takes the current filtering algorithm's settings and calculates the\nfrequency response for frequencies specified in a specified array of frequencies.\n\nThe two output arrays, `magResponseOutput` and\n`phaseResponseOutput`, must be created before calling this method; they\nmust be the same size as the array of input frequency values\n(`frequencyArray`).",
+ "q": "\n\nThe `Q` property of the [BiquadFilterNode] interface is an [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) [AudioParam], a double representing a [Q factor](https://en.wikipedia.org/wiki/Q_factor), or _quality factor_.\n\nIt is a dimensionless value with a default value of `1` and a nominal range of `0.0001` to `1000`.",
+ "type": "\n\nThe `type` property of the [BiquadFilterNode] interface is a string (enum) value defining the kind of filtering algorithm the node is implementing."
+ }
+ },
+ "blob": {
+ "docs": "\n\nThe **`Blob`** object represents a blob, which is a file-like object of immutable, raw data; they can be read as text or binary data, or converted into a [ReadableStream] so its methods can be used for processing the data.\n\nBlobs can represent data that isn't necessarily in a JavaScript-native format. The [File] interface is based on `Blob`, inheriting blob functionality and expanding it to support files on the user's system.",
+ "properties": {
+ "arraybuffer": "\n\nThe **`arrayBuffer()`** method of the [Blob]\ninterface returns a `Promise` that resolves with the contents of the blob as\nbinary data contained in an `ArrayBuffer`.",
+ "size": "\n\nThe **`size`** read-only property of the [Blob] interface returns\nthe size of the [Blob] or [File] in bytes.",
+ "slice": "\n\nThe **`slice()`** method of the [Blob] interface\ncreates and returns a new `Blob` object which contains data from a subset of\nthe blob on which it's called.",
+ "stream": "\n\nThe **`stream()`** method of the [Blob] interface returns a [ReadableStream] which upon reading returns the data contained within the `Blob`.",
+ "text": "\n\nThe **`text()`** method of the\n[Blob] interface returns a `Promise` that resolves with a\nstring containing the contents of the blob, interpreted as UTF-8.",
+ "type": "\n\nThe **`type`** read-only property of the [Blob] interface returns the of the file.\n\n> **Note:** Based on the current implementation, browsers won't actually read the bytestream of a file to determine its media type.\n> It is assumed based on the file extension; a PNG image file renamed to .txt would give \"_text/plain_\" and not \"_image/png_\". Moreover, `blob.type` is generally reliable only for common file types like images, HTML documents, audio and video.\n> Uncommon file extensions would return an empty string.\n> Client configuration (for instance, the Windows Registry) may result in unexpected values even for common types. **Developers are advised not to rely on this property as a sole validation scheme.**"
+ }
+ },
+ "blobevent": {
+ "docs": "\n\nThe **`BlobEvent`** interface of the [MediaStream Recording API](/en-US/docs/Web/API/MediaStream_Recording_API) represents events associated with a [Blob]. These blobs are typically, but not necessarily, associated with media content.\n\n",
+ "properties": {
+ "data": "\n\nThe **`data`** read-only property of the [BlobEvent] interface represents a [Blob] associated with the event.",
+ "timecode": "\n\nThe **`timecode`** read-only property of the [BlobEvent] interface indicates the difference between the timestamp of the first chunk of data, and the timestamp of the first chunk in the first `BlobEvent` produced by this recorder.\n\nNote that the `timecode` in the first produced `BlobEvent` does not need to be zero."
+ }
+ },
+ "bluetooth": {
+ "docs": "\n\nThe **`Bluetooth`** interface of the [Web Bluetooth API](/en-US/docs/Web/API/Web_Bluetooth_API) returns a\n`Promise` to a [BluetoothDevice] object with the specified\noptions.\n\n",
+ "properties": {
+ "getavailability": "\n\nThe **`getAvailability()`** method of the [Bluetooth] interface returns `true` if the device has a Bluetooth adapter, and false otherwise (unless the user has configured the browser to not expose a real value).\n\n> **Note:** A user might not allow use of Web Bluetooth API, even if\n> `getAvailability()` returns `true`\n> ([Bluetooth.requestDevice] might\n> not resolve with a [BluetoothDevice]). Also, a user can configure their browser to return a fixed value instead of a real one.",
+ "getdevices": "\n\nThe **`getDevices()`** method of\n[Bluetooth] interface of [Web Bluetooth API](/en-US/docs/Web/API/Web_Bluetooth_API) exposes the\nBluetooth devices this origin is allowed to access. This method does not display any\npermission prompts.\n\n> **Note:** This method returns a [BluetoothDevice] for each\n> device the origin is currently allowed to access, even the ones that are out of range\n> or powered off.",
+ "requestdevice": " \n\nThe **`Bluetooth.requestDevice()`** method of the\n[Bluetooth] interface returns a `Promise` to a\n[BluetoothDevice] object with the specified options. If there is no chooser\nUI, this method returns the first device matching the criteria."
+ }
+ },
+ "bluetoothcharacteristicproperties": {
+ "docs": "\n\nThe **`BluetoothCharacteristicProperties`** interface of the [Web Bluetooth API](/en-US/docs/Web/API/Web_Bluetooth_API) provides the operations that are valid on the given [BluetoothRemoteGATTCharacteristic].\n\nThis interface is returned by calling [BluetoothRemoteGATTCharacteristic.properties].",
+ "properties": {
+ "authenticatedsignedwrites": "\n\nThe **`authenticatedSignedWrites`** read-only\nproperty of the [BluetoothCharacteristicProperties] interface returns a\n`boolean` that is `true` if signed writing to the characteristic\nvalue is permitted.",
+ "broadcast": "\n\nThe **`broadcast`** read-only property of the\n[BluetoothCharacteristicProperties] interface returns a\n`boolean` that is `true` if the broadcast of the characteristic\nvalue is permitted using the Server Characteristic Configuration Descriptor.",
+ "indicate": "\n\nThe **`indicate`** read-only property of the\n[BluetoothCharacteristicProperties] interface returns a\n`boolean` that is `true` if indications of the characteristic\nvalue with acknowledgement is permitted.",
+ "notify": "\n\nThe **`notify`** read-only property of the\n[BluetoothCharacteristicProperties] interface returns a\n`boolean` that is `true` if notifications of the characteristic\nvalue without acknowledgement is permitted.",
+ "read": "\n\nThe **`read`** read-only property of the\n[BluetoothCharacteristicProperties] interface returns a\n`boolean` that is `true` if the reading of the characteristic\nvalue is permitted.",
+ "reliablewrite": "\n\nThe **`reliableWrite`** read-only property of\nthe [BluetoothCharacteristicProperties] interface returns a\n`boolean` that is `true` if reliable writes to the characteristic\nis permitted.",
+ "writableauxiliaries": "\n\nThe **`writableAuxiliaries`** read-only\nproperty of the [BluetoothCharacteristicProperties] interface returns a\n`boolean` that is `true` if reliable writes to the characteristic\ndescriptor is permitted.",
+ "write": "\n\nThe **`write`** read-only property of the\n[BluetoothCharacteristicProperties] interface returns a\n`boolean` that is `true` if the writing to the characteristic with\nresponse is permitted.",
+ "writewithoutresponse": "\n\nThe **`writeWithoutResponse`** read-only\nproperty of the [BluetoothCharacteristicProperties] interface returns a\n`boolean` that is `true` if the writing to the characteristic\nwithout response is permitted."
+ }
+ },
+ "bluetoothdevice": {
+ "docs": "\n\nThe BluetoothDevice interface of the [Web Bluetooth API](/en-US/docs/Web/API/Web_Bluetooth_API) represents a Bluetooth device inside a particular script execution\nenvironment.\n\n",
+ "properties": {
+ "gatt": "\n\nThe\n**`BluetoothDevice.gatt`** read-only property returns\na reference to the device's [BluetoothRemoteGATTServer].",
+ "id": "\n\nThe **`BluetoothDevice.id`** read-only property returns a\nstring that uniquely identifies a device.",
+ "name": "\n\nThe **`BluetoothDevice.name`** read-only property returns a\nstring that provides a human-readable name for the device."
+ }
+ },
+ "bluetoothremotegattcharacteristic": {
+ "docs": "\n\nThe `BluetoothRemoteGattCharacteristic` interface of the [Web Bluetooth API](/en-US/docs/Web/API/Web_Bluetooth_API) represents a GATT Characteristic, which is a basic data element that provides further information about a peripheral's service.\n\n",
+ "properties": {
+ "getdescriptor": "\n\nThe **`BluetoothRemoteGATTCharacteristic.getDescriptor()`** method\nreturns a `Promise` that resolves to the\nfirst [BluetoothRemoteGATTDescriptor] for a given descriptor UUID.",
+ "getdescriptors": "\n\nThe **`BluetoothRemoteGATTCharacteristic.getDescriptors()`** method\nreturns a `Promise` that resolves to an `Array` of all\n[BluetoothRemoteGATTDescriptor] objects for a given descriptor UUID.",
+ "properties": "\n\nThe **`BluetoothRemoteGATTCharacteristic.properties`**\nread-only property returns a [BluetoothCharacteristicProperties] instance\ncontaining the properties of this characteristic.",
+ "readvalue": "\n\nThe **`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.",
+ "service": "\n\nThe **`BluetoothRemoteGATTCharacteristic.service`** read-only\nproperty returns the [BluetoothRemoteGATTService] this characteristic belongs to.",
+ "startnotifications": "\n\nThe **`BluetoothRemoteGATTCharacteristic.startNotifications()`** method\nreturns a `Promise` to the BluetoothRemoteGATTCharacteristic instance when\nthere is an active notification on it.",
+ "stopnotifications": "\n\nThe **`BluetoothRemoteGATTCharacteristic.stopNotifications()`** method\nreturns a `Promise` to the BluetoothRemoteGATTCharacteristic instance when\nthere is no longer an active notification on it.",
+ "uuid": "\n\nThe **`BluetoothRemoteGATTCharacteristic.uuid`** read-only\nproperty returns a string containing the UUID of the characteristic, for\nexample `'00002a37-0000-1000-8000-00805f9b34fb'` for the Heart Rate\nMeasurement characteristic.",
+ "value": "\n\nThe **`BluetoothRemoteGATTCharacteristic.value`** read-only\nproperty returns currently cached characteristic value. This value gets updated when the\nvalue of the characteristic is read or updated via a notification or indication.",
+ "writevalue": "\n\nUse [BluetoothRemoteGATTCharacteristic.writeValueWithResponse] and [BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse] instead.\n\nThe **`BluetoothRemoteGATTCharacteristic.writeValue()`** method sets a [BluetoothRemoteGATTCharacteristic] object's `value` property to the bytes contained in a given `ArrayBuffer`, calls [`WriteCharacteristicValue`(_this_=`this`, _value=value_, _response_=`\"optional\"`)](https://webbluetoothcg.github.io/web-bluetooth/#writecharacteristicvalue), and returns the resulting `Promise`.",
+ "writevaluewithoutresponse": "\n\nThe **`BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse()`** method sets a [BluetoothRemoteGATTCharacteristic] object's `value` property to the bytes contained in a given `ArrayBuffer`, calls [`WriteCharacteristicValue`(_this_=`this`, _value=value_, _response_=`\"never\"`)](https://webbluetoothcg.github.io/web-bluetooth/#writecharacteristicvalue), and returns the resulting `Promise`.",
+ "writevaluewithresponse": "\n\nThe **`BluetoothRemoteGATTCharacteristic.writeValueWithResponse()`** method sets a [BluetoothRemoteGATTCharacteristic] object's `value` property to the bytes contained in a given `ArrayBuffer`, calls [`WriteCharacteristicValue`(_this_=`this`, _value=value_, _response_=`\"required\"`)](https://webbluetoothcg.github.io/web-bluetooth/#writecharacteristicvalue), and returns the resulting `Promise`."
+ }
+ },
+ "bluetoothremotegattdescriptor": {
+ "docs": "\n\nThe `BluetoothRemoteGATTDescriptor` interface of the [Web Bluetooth API](/en-US/docs/Web/API/Web_Bluetooth_API) provides a GATT Descriptor,\nwhich provides further information about a characteristic's value.",
+ "properties": {
+ "characteristic": "\n\nThe **`BluetoothRemoteGATTDescriptor.characteristic`**\nread-only property returns the [BluetoothRemoteGATTCharacteristic] this\ndescriptor belongs to.",
+ "readvalue": "\n\nThe\n**`BluetoothRemoteGATTDescriptor.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.",
+ "uuid": "\n\nThe **`BluetoothRemoteGATTDescriptor.uuid`** read-only property returns the of the characteristic descriptor.\nFor example '`00002902-0000-1000-8000-00805f9b34fb`' for theClient Characteristic Configuration descriptor.",
+ "value": "\n\nThe **`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.",
+ "writevalue": "\n\nThe **`BluetoothRemoteGATTDescriptor.writeValue()`**\nmethod sets the value property to the bytes contained in\nan `ArrayBuffer` and returns a `Promise`."
+ }
+ },
+ "bluetoothremotegattserver": {
+ "docs": "\n\nThe **`BluetoothRemoteGATTServer`** interface of the [Web Bluetooth API](/en-US/docs/Web/API/Web_Bluetooth_API) represents a GATT\nServer on a remote device.",
+ "properties": {
+ "connect": "\n\nThe\n**`BluetoothRemoteGATTServer.connect()`** method causes the\nscript execution environment to connect to `this.device`.",
+ "connected": "\n\nThe **`BluetoothRemoteGATTServer.connected`** read-only\nproperty returns a boolean value that returns true while this script execution\nenvironment is connected to `this.device`. It can be false while the user\nagent is physically connected.",
+ "device": "\n\nThe **`BluetoothRemoteGATTServer.device`** read-only property\nreturns a reference to the [BluetoothDevice] running the server.",
+ "disconnect": "\n\nThe **`BluetoothRemoteGATTServer.disconnect()`** method causes\nthe script execution environment to disconnect from `this.device`.",
+ "getprimaryservice": "\n\nThe **`BluetoothRemoteGATTServer.getPrimaryService()`** method\nreturns a promise to the primary [BluetoothRemoteGATTService] offered by the\nBluetooth device for a specified bluetooth service UUID.",
+ "getprimaryservices": "\n\nThe **BluetoothRemoteGATTServer.getPrimaryServices()** method returns a\npromise to a list of primary [BluetoothRemoteGATTService] objects offered by the\nBluetooth device for a specified `BluetoothServiceUUID`."
+ }
+ },
+ "bluetoothremotegattservice": {
+ "docs": "\n\nThe `BluetoothRemoteGATTService` interface of the [Web Bluetooth API](/en-US/docs/Web/API/Web_Bluetooth_API) represents a\nservice provided by a GATT server, including a device, a list of referenced services,\nand a list of the characteristics of this service.\n\n",
+ "properties": {
+ "device": "\n\nThe **`BluetoothGATTService.device`** read-only property\nreturns information about a Bluetooth device through an instance of\n[BluetoothDevice].",
+ "getcharacteristic": "\n\nThe **`BluetoothGATTService.getCharacteristic()`** method\nreturns a `Promise` to an instance of\n[BluetoothRemoteGATTCharacteristic] for a given universally unique identifier\n(UUID).",
+ "getcharacteristics": "\n\nThe **`BluetoothGATTService.getCharacteristics()`** method\nreturns a `Promise` to a list of [BluetoothRemoteGATTCharacteristic]\ninstances for a given universally unique identifier (UUID).",
+ "isprimary": "\n\nThe **`BluetoothGATTService.isPrimary`** read-only property\nreturns a boolean value that indicates whether this is a primary service. If it\nis not a primary service, it is a secondary service.",
+ "uuid": "\n\nThe **`BluetoothGATTService.uuid`** read-only property\nreturns a string representing the UUID of this service."
+ }
+ },
+ "bluetoothuuid": {
+ "docs": "\n\nThe **`BluetoothUUID`** interface of the [Web Bluetooth API] provides a way to look up Universally Unique Identifier (UUID) values by name in the\n[registry](https://www.bluetooth.com/specifications/assigned-numbers/) maintained by the Bluetooth SIG.",
+ "properties": {
+ "canonicaluuid_static": "\n\nThe **`canonicalUUID()`** static method of the [BluetoothUUID] interface returns the 128-bit UUID when passed a 16- or 32-bit UUID alias.",
+ "getcharacteristic_static": "\n\nThe **`getCharacteristic()`** static method of the [BluetoothUUID] interface returns a UUID representing a registered characteristic when passed a name or the 16- or 32-bit UUID alias.",
+ "getdescriptor_static": "\n\nThe **`getDescriptor()`** static method of the [BluetoothUUID] interface returns a UUID representing a registered descriptor when passed a name or the 16- or 32-bit UUID alias.",
+ "getservice_static": "\n\nThe **`getService()`** static method of the [BluetoothUUID] interface returns a UUID representing a registered service when passed a name or the 16- or 32-bit UUID alias."
+ }
+ },
+ "broadcastchannel": {
+ "docs": "\n\nThe **`BroadcastChannel`** interface represents a named channel that any of a given can subscribe to. It allows communication between different documents (in different windows, tabs, frames or iframes) of the same origin. Messages are broadcasted via a [BroadcastChannel/message_event] event fired at all `BroadcastChannel` objects listening to the channel, except the object that sent the message.\n\n",
+ "properties": {
+ "close": "\n\nThe **`BroadcastChannel.close()`** 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.\n\n",
+ "message_event": "\n\nThe `message` event is fired on a [BroadcastChannel] object when a message arrives on that channel.",
+ "messageerror_event": "\n\nThe `messageerror` event is fired on a [BroadcastChannel] object when a message that can't be deserialized arrives on the channel.",
+ "name": "\n\nThe read-only **`BroadcastChannel.name`** property returns a string, which uniquely identifies the given channel with its name. This name is passed to the [BroadcastChannel.BroadCastChannel] constructor at creation time and is therefore read-only.\n\n",
+ "postmessage": "\n\nThe **`BroadcastChannel.postMessage()`** sends a message,\nwhich can be of any kind of `Object`,\nto each listener in any with the same .\nThe message is transmitted as a ['message'](/en-US/docs/Web/API/BroadcastChannel/message_event) event\ntargeted at each [BroadcastChannel] bound to the channel.\n\n"
+ }
+ },
+ "bytelengthqueuingstrategy": {
+ "docs": "\n\nThe **`ByteLengthQueuingStrategy`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) provides a built-in byte length queuing strategy that can be used when constructing streams.",
+ "properties": {
+ "highwatermark": "\n\nThe read-only **`ByteLengthQueuingStrategy.highWaterMark`** property returns the total number of bytes that can be contained in the internal queue before [backpressure](/en-US/docs/Web/API/Streams_API/Concepts#backpressure) is applied.\n\n> **Note:** Unlike [`CountQueuingStrategy()`](/en-US/docs/Web/API/CountQueuingStrategy/CountQueuingStrategy) where the `highWaterMark` property specifies a simple count of the number of chunks, with `ByteLengthQueuingStrategy()`, the `highWaterMark` parameter specifies a number of _bytes_ — specifically, given a stream of chunks, how many bytes worth of those chunks (rather than a count of how many of those chunks) can be contained in the internal queue before backpressure is applied.",
+ "size": "\n\nThe **`size()`** method of the\n[ByteLengthQueuingStrategy] interface returns the given chunk's\n`byteLength` property."
+ }
+ },
+ "cache": {
+ "docs": "\n\nThe **`Cache`** interface provides a persistent storage mechanism for [Request] / [Response] object pairs that are cached in long lived memory. How long a `Cache` object lives is browser dependent, but a single origin's scripts can typically rely on the presence of a previously populated `Cache` object. Note that the `Cache` interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec.\n\nAn origin can have multiple, named `Cache` objects. You are responsible for implementing how your script (e.g. in a [ServiceWorker]) handles `Cache` updates. Items in a `Cache` do not get updated unless explicitly requested; they don't expire unless deleted. Use [CacheStorage.open] to open a specific named `Cache` object and then call any of the `Cache` methods to maintain the `Cache`.\n\nYou are also responsible for periodically purging cache entries. Each browser has a hard limit on the amount of cache storage that a given origin can use. `Cache` quota usage estimates are available via the [StorageManager.estimate] method. The browser does its best to manage disk space, but it may delete the `Cache` storage for an origin. The browser will generally delete all of the data for an origin or none of the data for an origin. Make sure to version caches by name and use the caches only from the version of the script that they can safely operate on. See [Deleting old caches](/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#deleting_old_caches) for more information.\n\n> **Note:** The key matching algorithm depends on the [VARY header](https://www.fastly.com/blog/best-practices-using-vary-header) in the value. So matching a new key requires looking at both key and value for entries in the `Cache` object.\n\n> **Note:** The caching API doesn't honor HTTP caching headers.\n\n",
+ "properties": {
+ "add": "\n\nThe **`add()`** method of the [Cache] interface takes a URL, retrieves it, and adds the resulting response object to the given cache.\n\nThe `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.add(url);\n});\n```\n\nFor 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.",
+ "addall": "\n\nThe **`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\n> previously stored in the cache that match the request, but will fail if a\n> resulting `put()` operation would overwrite a previous cache entry stored by the same `addAll()` method.",
+ "delete": "\n\nThe **`delete()`** method of the [Cache] interface finds the [Cache] entry whose key is the request, and if found, deletes the [Cache] entry and returns a `Promise` that resolves to `true`.\nIf no [Cache] entry is found, it resolves to `false`.",
+ "keys": "\n\nThe **`keys()`** method of the [Cache] interface returns a\n`Promise` that resolves to an array of [Request] objects\nrepresenting the keys of the [Cache].\n\nThe requests are returned in the same order that they were inserted.\n\n> **Note:** Requests with duplicate URLs but different headers can be\n> returned if their responses have the `VARY` header set on them.",
+ "match": "\n\nThe **`match()`** method of the [Cache] interface returns a `Promise` that resolves to the [Response] associated with the first matching request in the [Cache] object.\nIf no match is found, the `Promise` resolves to `undefined`.",
+ "matchall": "\n\nThe **`matchAll()`** method of the [Cache]\ninterface returns a `Promise` that resolves to an array of all matching\nresponses in the [Cache] object.",
+ "put": "\n\nThe **`put()`** method of the\n[Cache] interface allows key/value pairs to be added to the current\n[Cache] object.\n\nOften, 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\n[Cache.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> **Note:** `put()` will overwrite any key/value pair\n> previously stored in the cache that matches the request.\n\n> **Note:** [Cache.add]/[Cache.addAll] do not\n> cache responses with `Response.status` values that are not in the 200\n> range, whereas [Cache.put] lets you store any request/response pair. As a\n> result, [Cache.add]/[Cache.addAll] can't be used to store\n> opaque responses, whereas [Cache.put] can."
+ }
+ },
+ "cachestorage": {
+ "docs": "\n\nThe **`CacheStorage`** interface represents the storage for [Cache] objects.\n\nThe 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\nUse [CacheStorage.open] to obtain a [Cache] instance.\n\nUse [CacheStorage.match] to check if a given [Request] is a key in any of the [Cache] objects that the `CacheStorage` object tracks.\n\nYou can access `CacheStorage` through the global [caches] property.\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> **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\n",
+ "properties": {
+ "delete": "\n\nThe **`delete()`** method of the [CacheStorage] interface finds the [Cache] object matching the `cacheName`, and if found, deletes the [Cache] object and returns a `Promise` that resolves to `true`.\nIf no [Cache] object is found, it resolves to `false`.\n\nYou can access `CacheStorage` through the global [caches] property.",
+ "has": "\n\nThe **`has()`** method of the [CacheStorage]\ninterface returns a `Promise` that resolves to `true` if a\n[Cache] object matches the `cacheName`.\n\nYou can access `CacheStorage` through the global [caches] property.",
+ "keys": "\n\nThe **`keys()`** method of the [CacheStorage] interface returns a `Promise` that will resolve with an array containing strings corresponding to all of the named [Cache] objects tracked by the [CacheStorage] object in the order they were created.\nUse this method to iterate over a list of all [Cache] objects.\n\nYou can access `CacheStorage` through the global [caches] property.",
+ "match": "\n\nThe **`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\nYou can access `CacheStorage` through the global\n[caches] property.\n\n`Cache` objects are searched in creation order.\n\n> **Note:** [CacheStorage.match] is a convenience method.\n> Equivalent functionality is to call [cache.match] on each cache (in the order returned by [CacheStorage.keys]) until a [Response] is returned.",
+ "open": "\n\nThe **`open()`** method of the\n[CacheStorage] interface returns a `Promise` that resolves to\nthe [Cache] object matching the `cacheName`.\n\nYou can access `CacheStorage` through the global\n[caches] property.\n\n> **Note:** If the specified [Cache] does not exist, a new\n> cache is created with that `cacheName` and a `Promise` that\n> resolves to this new [Cache] object is returned."
+ }
+ },
+ "canmakepaymentevent": {
+ "docs": "\n\nThe **`CanMakePaymentEvent`** interface of the [Payment Handler API] is the event object for the [ServiceWorkerGlobalScope.canmakepayment_event] event, fired on a payment app's service worker to check whether it is ready to handle a payment. Specifically, it is fired when the merchant website calls [PaymentRequest.PaymentRequest].\n\n",
+ "properties": {
+ "respondwith": "\n\nThe **`respondWith()`** method of the [CanMakePaymentEvent] interface enables the service worker to respond appropriately to signal whether it is ready to handle payments."
+ }
+ },
+ "canvascapturemediastreamtrack": {
+ "docs": "\n\nThe **`CanvasCaptureMediaStreamTrack`** interface of the [Media Capture and Streams API] represents the video track contained in a [MediaStream] being generated from a `canvas` following a call to [HTMLCanvasElement.captureStream].\n\n",
+ "properties": {
+ "canvas": "\n\nThe **`canvas`** read-only property of the [CanvasCaptureMediaStreamTrack] interface returns the [HTMLCanvasElement] from which frames are being captured.",
+ "requestframe": "\n\nThe **`requestFrame()`** method of the [CanvasCaptureMediaStreamTrack] interface requests that a frame be captured from the canvas and sent to the stream.\n\nApplications that need to carefully control\nthe timing of rendering and frame capture can use `requestFrame()` to\ndirectly specify when it's time to capture a frame.\n\nTo prevent automatic capture of frames, so that frames are only captured when\n`requestFrame()` is called, specify a value of 0 for the\n[HTMLCanvasElement.captureStream] method when creating\nthe stream."
+ }
+ },
+ "canvasgradient": {
+ "docs": "\n\nThe **`CanvasGradient`** interface represents an [opaque object](https://en.wikipedia.org/wiki/Opaque_data_type) describing a gradient. It is returned by the methods [CanvasRenderingContext2D.createLinearGradient], [CanvasRenderingContext2D.createConicGradient] or [CanvasRenderingContext2D.createRadialGradient].\n\nIt can be used as a [CanvasRenderingContext2D.fillStyle] or [CanvasRenderingContext2D.strokeStyle].",
+ "properties": {
+ "addcolorstop": "\n\nThe **`CanvasGradient.addColorStop()`** method adds a new color stop,\ndefined by an `offset` and a `color`, to a given canvas gradient."
+ }
+ },
+ "canvaspattern": {
+ "docs": "\n\nThe **`CanvasPattern`** interface represents an [opaque object](https://en.wikipedia.org/wiki/Opaque_data_type) describing a pattern, based on an image, a canvas, or a video, created by the [CanvasRenderingContext2D.createPattern] method.\n\nIt can be used as a [CanvasRenderingContext2D.fillStyle] or [CanvasRenderingContext2D.strokeStyle].",
+ "properties": {
+ "settransform": "\n\nThe **`CanvasPattern.setTransform()`** method uses a [DOMMatrix] object as the pattern's transformation matrix and invokes it on the pattern."
+ }
+ },
+ "canvasrenderingcontext2d": {
+ "docs": "\n\nThe **`CanvasRenderingContext2D`** interface, part of the [Canvas API](/en-US/docs/Web/API/Canvas_API), provides the 2D rendering context for the drawing surface of a `canvas` element.\nIt is used for drawing shapes, text, images, and other objects.\n\nThe interface's properties and methods are described in the reference section of this page.\nThe [Canvas tutorial](/en-US/docs/Web/API/Canvas_API/Tutorial) has more explanation, examples, and resources, as well.\n\nFor [`OffscreenCanvas`](/en-US/docs/Web/API/OffscreenCanvas), there is an equivalent interface that provides the rendering context.\nThe offscreen rendering context inherits most of the same properties and methods as the `CanvasRenderingContext2D` and is described in more detail in the [OffscreenCanvasRenderingContext2D] reference page.",
+ "properties": {
+ "arc": "\n\nThe\n**`CanvasRenderingContext2D.arc()`**\nmethod of the [Canvas 2D API](/en-US/docs/Web/API/CanvasRenderingContext2D) adds a circular arc to the current sub-path.",
+ "arcto": "\n\nThe **`CanvasRenderingContext2D.arcTo()`** method of the Canvas 2D API adds a circular arc to the current sub-path, using the given control points and radius.\nThe arc is automatically connected to the path's latest point with a straight line if necessary, for example if the starting point and control points are in a line.\n\nThis method is commonly used for making rounded corners.\n\n> **Note:** You may get unexpected results when using a\n> relatively large radius: the arc's connecting line will go in whatever direction it\n> must to meet the specified radius.",
+ "beginpath": "\n\nThe\n**`CanvasRenderingContext2D.beginPath()`**\nmethod of the Canvas 2D API starts a new path by emptying the list of sub-paths. Call\nthis method when you want to create a new path.\n\n> **Note:** To create a new sub-path, i.e., one matching the current\n> canvas state, you can use [CanvasRenderingContext2D.moveTo].",
+ "beziercurveto": "\n\nThe\n**`CanvasRenderingContext2D.bezierCurveTo()`**\nmethod of the Canvas 2D API adds a cubic [Bézier curve](/en-US/docs/Glossary/Bezier_curve) to the current\nsub-path. It requires three points: the first two are control points and the third one\nis the end point. The starting point is the latest point in the current path, which can\nbe changed using [CanvasRenderingContext2D.moveTo] before\ncreating the Bézier curve.",
+ "canvas": "\n\nThe **`CanvasRenderingContext2D.canvas`** property, part of the\n[Canvas API](/en-US/docs/Web/API/Canvas_API), is a read-only reference to the\n[HTMLCanvasElement] object that is associated with a given context. It\nmight be [`null`](/en-US/docs/Web/JavaScript/Reference/Operators/null) if there is no associated `canvas` element.",
+ "clearrect": "\n\nThe\n**`CanvasRenderingContext2D.clearRect()`**\nmethod of the Canvas 2D API erases the pixels in a rectangular area by setting them to\ntransparent black.\n\n> **Note:** Be aware that `clearRect()` may cause unintended\n> side effects if you're not [using paths properly](/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#drawing_paths). Make sure to call\n> [CanvasRenderingContext2D.beginPath] before starting to\n> draw new items after calling `clearRect()`.",
+ "clip": "\n\nThe\n**`CanvasRenderingContext2D.clip()`**\nmethod of the Canvas 2D API turns the current or given path into the current clipping\nregion. The previous clipping region, if any, is intersected with the current or given\npath to create the new clipping region.\n\nIn the image below, the red outline represents a clipping region shaped like a star.\nOnly those parts of the checkerboard pattern that are within the clipping region get\ndrawn.\n\n\n\n> **Note:** Be aware that the clipping region is only constructed from\n> shapes added to the path. It doesn't work with shape primitives drawn directly to the\n> canvas, such as [CanvasRenderingContext2D.fillRect].\n> Instead, you'd have to use [CanvasRenderingContext2D.rect] to\n> add a rectangular shape to the path before calling `clip()`.\n\n> **Note:** Clip paths cannot be reverted directly. You must save your canvas state using [CanvasRenderingContext2D/save] before calling `clip()`, and restore it once you have finished drawing in the clipped area using [CanvasRenderingContext2D/restore].",
+ "closepath": "\n\nThe\n**`CanvasRenderingContext2D.closePath()`**\nmethod of the Canvas 2D API attempts to add a straight line from the current point to\nthe start of the current sub-path. If the shape has already been closed or has only one\npoint, this function does nothing.\n\nThis method doesn't draw anything to the canvas directly. You can render the path using\nthe [CanvasRenderingContext2D.stroke] or\n[CanvasRenderingContext2D.fill] methods.",
+ "createconicgradient": "\n\nThe **`CanvasRenderingContext2D.createConicGradient()`** method of the Canvas 2D API creates a gradient around a point with given coordinates.\n\nThis method returns a conic [CanvasGradient]. To be applied to a shape, the gradient must first be assigned to the [CanvasRenderingContext2D.fillStyle] or [CanvasRenderingContext2D.strokeStyle] properties.\n\n> **Note:** Gradient coordinates are global, i.e., relative to the current coordinate space. When applied to a shape, the coordinates are NOT relative to the shape's coordinates.",
+ "createimagedata": "\n\nThe **`CanvasRenderingContext2D.createImageData()`** method of\nthe Canvas 2D API creates a new, blank [ImageData] object with the\nspecified dimensions. All of the pixels in the new object are transparent black.",
+ "createlineargradient": "\n\nThe\n**`CanvasRenderingContext2D.createLinearGradient()`**\nmethod of the Canvas 2D API creates a gradient along the line connecting two given\ncoordinates.\n\n\n\nThis method returns a linear [CanvasGradient]. To be applied to a shape,\nthe gradient must first be assigned to the\n[CanvasRenderingContext2D.fillStyle] or\n[CanvasRenderingContext2D.strokeStyle] properties.\n\n> **Note:** Gradient coordinates are global, i.e., relative to the current\n> coordinate space. When applied to a shape, the coordinates are NOT relative to the\n> shape's coordinates.",
+ "createpattern": "\n\nThe **`CanvasRenderingContext2D.createPattern()`** method of the Canvas 2D API creates a pattern using the specified image and repetition.\nThis method returns a [CanvasPattern].\n\nThis method doesn't draw anything to the canvas directly.\nThe pattern it creates must be assigned to the [CanvasRenderingContext2D.fillStyle] or [CanvasRenderingContext2D.strokeStyle] properties, after which it is applied to any subsequent drawing.",
+ "createradialgradient": "\n\nThe\n**`CanvasRenderingContext2D.createRadialGradient()`**\nmethod of the Canvas 2D API creates a radial gradient using the size and coordinates of\ntwo circles.\n\nThis method returns a [CanvasGradient]. To be applied to a shape, the\ngradient must first be assigned to the [CanvasRenderingContext2D.fillStyle] or [CanvasRenderingContext2D.strokeStyle]\nproperties.\n\n> **Note:** Gradient coordinates are global, i.e., relative to the current\n> coordinate space. When applied to a shape, the coordinates are NOT relative to the\n> shape's coordinates.",
+ "direction": "\n\nThe\n**`CanvasRenderingContext2D.direction`**\nproperty of the Canvas 2D API specifies the current text direction used to draw text.",
+ "drawfocusifneeded": "\n\nThe\n**`CanvasRenderingContext2D.drawFocusIfNeeded()`**\nmethod of the Canvas 2D API draws a focus ring around the current or given path, if the\nspecified element is focused.",
+ "drawimage": "\n\nThe **`CanvasRenderingContext2D.drawImage()`** method of the\nCanvas 2D API provides different ways to draw an image onto the canvas.",
+ "ellipse": "\n\nThe\n**`CanvasRenderingContext2D.ellipse()`**\nmethod of the Canvas 2D API adds an elliptical arc to the current sub-path.",
+ "fill": "\n\nThe\n**`CanvasRenderingContext2D.fill()`**\nmethod of the Canvas 2D API fills the current or given path with the current\n[CanvasRenderingContext2D.fillStyle].",
+ "fillrect": "\n\nThe\n**`CanvasRenderingContext2D.fillRect()`**\nmethod of the Canvas 2D API draws a rectangle that is filled according to the current\n[CanvasRenderingContext2D.fillStyle].\n\nThis method draws directly to the canvas without modifying the current path, so any\nsubsequent [CanvasRenderingContext2D.fill] or\n[CanvasRenderingContext2D.stroke] calls will have no effect\non it.",
+ "fillstyle": "\n\nThe\n**`CanvasRenderingContext2D.fillStyle`**\nproperty of the [Canvas 2D API](/en-US/docs/Web/API/Canvas_API) specifies the\ncolor, gradient, or pattern to use inside shapes. The default style is `#000`\n(black).\n\n> **Note:** For more examples of fill and stroke styles, see [Applying styles and color](/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas tutorial](/en-US/docs/Web/API/Canvas_API/Tutorial).",
+ "filltext": "\n\nThe [CanvasRenderingContext2D] method\n**`fillText()`**, part of the Canvas 2D API, draws a text string\nat the specified coordinates, filling the string's characters with the current\n[CanvasRenderingContext2D.fillStyle]. An optional parameter\nallows specifying a maximum width for the rendered text, which the will achieve by condensing the text or by using a lower font size.\n\nThis method draws directly to the canvas without modifying the current path, so any\nsubsequent [CanvasRenderingContext2D.fill] or\n[CanvasRenderingContext2D.stroke] calls will have no effect\non it.\n\nThe text is rendered using the font and text layout configuration as defined by the\n[CanvasRenderingContext2D.font],\n[CanvasRenderingContext2D.textAlign],\n[CanvasRenderingContext2D.textBaseline], and\n[CanvasRenderingContext2D.direction] properties.\n\n> **Note:** To draw the outlines of the characters in a string, call the context's\n> [CanvasRenderingContext2D.strokeText] method.",
+ "filter": "\n\nThe\n**`CanvasRenderingContext2D.filter`**\nproperty of the Canvas 2D API provides filter effects such as blurring and grayscaling.\nIt is similar to the CSS `filter` property and accepts the same values.",
+ "font": "\n\nThe **`CanvasRenderingContext2D.font`** property of the Canvas 2D API specifies the current text style to use when drawing text.\nThis string uses the same syntax as the [CSS font](/en-US/docs/Web/CSS/font) specifier.",
+ "fontkerning": "\n\nThe **`CanvasRenderingContext2D.fontKerning`** property of the [Canvas API](/en-US/docs/Web/API/Canvas_API) specifies how font kerning information is used.\n\nKerning adjusts how adjacent letters are spaced in a proportional font, allowing them to edge into each other's visual area if there is space available.\nFor example, in well-kerned fonts, the characters `AV`, `Ta` and `We` nest together and make character spacing more uniform and pleasant to read than the equivalent text without kerning.\n\nThe property corresponds to the [`font-kerning`](/en-US/docs/Web/CSS/font-kerning) CSS property.",
+ "fontstretch": "\n\nThe **`CanvasRenderingContext2D.fontStretch`** property of the [Canvas API](/en-US/docs/Web/API/Canvas_API) specifies how the font may be expanded or condensed when drawing text.\n\nThe property corresponds to the [`font-stretch`](/en-US/docs/Web/CSS/font-stretch) CSS property when used with keywords (percentage values are not supported).",
+ "fontvariantcaps": "\n\nThe **`CanvasRenderingContext2D.fontVariantCaps`** property of the [Canvas API](/en-US/docs/Web/API/Canvas_API) specifies an alternative capitalization of the rendered text.\n\nThis corresponds to the CSS [`font-variant-caps`](/en-US/docs/Web/CSS/font-variant-caps) property.",
+ "getcontextattributes": "\n\nThe **`CanvasRenderingContext2D.getContextAttributes()`** method returns an object that contains attributes used by the context.\n\nNote that context attributes may be requested when creating the context with [`HTMLCanvasElement.getContext()`](/en-US/docs/Web/API/HTMLCanvasElement/getContext), but the attributes that are actually supported and used may differ.",
+ "getimagedata": "\n\nThe [CanvasRenderingContext2D] method\n**`getImageData()`** of the Canvas 2D API returns an\n[ImageData] object representing the underlying pixel data for a specified\nportion of the canvas.\n\nThis method is not affected by the canvas's transformation matrix. If the specified\nrectangle extends outside the bounds of the canvas, the pixels outside the canvas are\ntransparent black in the returned `ImageData` object.\n\n> **Note:** Image data can be painted onto a canvas using the\n> [CanvasRenderingContext2D.putImageData] method.\n\nYou can find more information about `getImageData()` and general\nmanipulation of canvas contents in [Pixel manipulation with canvas](/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas).",
+ "getlinedash": "\n\nThe **`getLineDash()`** method of the Canvas 2D API's\n[CanvasRenderingContext2D] interface gets the current line dash pattern.",
+ "gettransform": "\n\nThe **`CanvasRenderingContext2D.getTransform()`** method of the Canvas 2D API retrieves the current transformation matrix being applied to the context.",
+ "globalalpha": "\n\nThe\n**`CanvasRenderingContext2D.globalAlpha`**\nproperty of the Canvas 2D API specifies the alpha (transparency) value that is applied\nto shapes and images before they are drawn onto the canvas.\n\n> **Note:** See also the chapter [Applying styles and color](/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas Tutorial](/en-US/docs/Web/API/Canvas_API/Tutorial).",
+ "globalcompositeoperation": "\n\nThe\n**`CanvasRenderingContext2D.globalCompositeOperation`**\nproperty of the Canvas 2D API sets the type of compositing operation to apply when\ndrawing new shapes.\n\nSee also [Compositing and clipping](/en-US/docs/Web/API/Canvas_API/Tutorial/Compositing) in the [Canvas Tutorial](/en-US/docs/Web/API/Canvas_API/Tutorial).",
+ "imagesmoothingenabled": "\n\nThe **`imageSmoothingEnabled`** property of the\n[CanvasRenderingContext2D] interface, part of the [Canvas API](/en-US/docs/Web/API/Canvas_API), determines whether scaled images\nare smoothed (`true`, default) or not (`false`). On getting the\n`imageSmoothingEnabled` property, the last value it was set to is returned.\n\nThis property is useful for games and other apps that use pixel art. When enlarging\nimages, the default resizing algorithm will blur the pixels. Set this property to\n`false` to retain the pixels' sharpness.\n\n> **Note:** You can adjust the smoothing quality with the\n> [CanvasRenderingContext2D.imageSmoothingQuality]\n> property.",
+ "imagesmoothingquality": "\n\nThe **`imageSmoothingQuality`** property of the\n[CanvasRenderingContext2D] interface, part of the [Canvas API](/en-US/docs/Web/API/Canvas_API), lets you set the quality of\nimage smoothing.\n\n> **Note:** For this property to have an effect,\n> [CanvasRenderingContext2D.imageSmoothingEnabled]\n> must be `true`.",
+ "iscontextlost": "\n\nThe **`CanvasRenderingContext2D.isContextLost()`** method of the Canvas 2D API returns `true` if the rendering context is lost (and has not yet been reset).\nThis might occur due to driver crashes, running out of memory, and so on.\n\nIf the user agent detects that the canvas backing storage is lost it will fire the [`contextlost` event](/en-US/docs/Web/API/HTMLCanvasElement/contextlost_event) at the associated [`HTMLCanvasElement`](/en-US/docs/Web/API/HTMLCanvasElement).\nIf this event is not cancelled it will attempt to reset the backing storage to the default state (this is equivalent to calling [CanvasRenderingContext2D.reset]).\nOn success it will fire the [`contextrestored` event](/en-US/docs/Web/API/HTMLCanvasElement/contextrestored_event), indicating that the context is ready to reinitialize and redraw.",
+ "ispointinpath": "\n\nThe\n**`CanvasRenderingContext2D.isPointInPath()`**\nmethod of the Canvas 2D API reports whether or not the specified point is contained in\nthe current path.",
+ "ispointinstroke": "\n\nThe\n**`CanvasRenderingContext2D.isPointInStroke()`**\nmethod of the Canvas 2D API reports whether or not the specified point is inside the\narea contained by the stroking of a path.",
+ "letterspacing": "\n\nThe **`CanvasRenderingContext2D.letterSpacing`** property of the [Canvas API](/en-US/docs/Web/API/Canvas_API) specifies the spacing between letters when drawing text.\n\nThis corresponds to the CSS [`letter-spacing`](/en-US/docs/Web/CSS/letter-spacing) property.",
+ "linecap": "\n\nThe\n**`CanvasRenderingContext2D.lineCap`**\nproperty of the Canvas 2D API determines the shape used to draw the end points of lines.\n\n> **Note:** Lines can be drawn with the\n> [CanvasRenderingContext2D.stroke], [CanvasRenderingContext2D.strokeRect],\n> and [CanvasRenderingContext2D.strokeText] methods.",
+ "linedashoffset": "\n\nThe\n**`CanvasRenderingContext2D.lineDashOffset`**\nproperty of the Canvas 2D API sets the line dash offset, or \"phase.\"\n\n> **Note:** Lines are drawn by calling the\n> [CanvasRenderingContext2D.stroke] method.",
+ "linejoin": "\n\nThe\n**`CanvasRenderingContext2D.lineJoin`**\nproperty of the Canvas 2D API determines the shape used to join two line segments where\nthey meet.\n\nThis property has no effect wherever two connected segments have the same direction,\nbecause no joining area will be added in this case. Degenerate segments with a length of\nzero (i.e., with all endpoints and control points at the exact same position) are also\nignored.\n\n> **Note:** Lines can be drawn with the\n> [CanvasRenderingContext2D.stroke],\n> [CanvasRenderingContext2D.strokeRect],\n> and [CanvasRenderingContext2D.strokeText] methods.",
+ "lineto": "\n\nThe [CanvasRenderingContext2D] method\n**`lineTo()`**, part of the Canvas 2D API, adds a straight line\nto the current sub-path by connecting the sub-path's last point to the specified\n`(x, y)` coordinates.\n\nLike other methods that modify the current path, this method does not directly render\nanything. To draw the path onto a canvas, you can use the\n[CanvasRenderingContext2D.fill] or\n[CanvasRenderingContext2D.stroke] methods.",
+ "linewidth": "\n\nThe\n**`CanvasRenderingContext2D.lineWidth`**\nproperty of the Canvas 2D API sets the thickness of lines.\n\n> **Note:** Lines can be drawn with the\n> [CanvasRenderingContext2D.stroke],\n> [CanvasRenderingContext2D.strokeRect],\n> and [CanvasRenderingContext2D.strokeText] methods.",
+ "measuretext": "\n\nThe\n`CanvasRenderingContext2D.measureText()`\nmethod returns a [TextMetrics] object that contains information about the\nmeasured text (such as its width, for example).",
+ "miterlimit": "\n\nThe **`CanvasRenderingContext2D.miterLimit`** property of the\nCanvas 2D API sets the miter limit ratio.\n\n> **Note:** For more info about miters, see [Applying styles and color](/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas tutorial](/en-US/docs/Web/API/Canvas_API/Tutorial).",
+ "moveto": "\n\nThe\n**`CanvasRenderingContext2D.moveTo()`**\nmethod of the Canvas 2D API begins a new sub-path at the point specified by the given\n`(x, y)` coordinates.",
+ "putimagedata": "\n\nThe **`CanvasRenderingContext2D.putImageData()`**\nmethod of the Canvas 2D API paints data from the given [ImageData] object\nonto the canvas. If a dirty rectangle is provided, only the pixels from that rectangle\nare painted. This method is not affected by the canvas transformation matrix.\n\n> **Note:** Image data can be retrieved from a canvas using the\n> [CanvasRenderingContext2D.getImageData] method.\n\nYou can find more information about `putImageData()` and general\nmanipulation of canvas contents in the article [Pixel manipulation with canvas](/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas).",
+ "quadraticcurveto": "\n\nThe\n**`CanvasRenderingContext2D.quadraticCurveTo()`**\nmethod of the Canvas 2D API adds a quadratic [Bézier curve](/en-US/docs/Glossary/Bezier_curve) to the current\nsub-path. It requires two points: the first one is a control point and the second one is\nthe end point. The starting point is the latest point in the current path, which can be\nchanged using [CanvasRenderingContext2D.moveTo] before creating\nthe quadratic Bézier curve.",
+ "rect": "\n\nThe\n**`CanvasRenderingContext2D.rect()`**\nmethod of the Canvas 2D API adds a rectangle to the current path.\n\nLike other methods that modify the current path, this method does not directly render\nanything. To draw the rectangle onto a canvas, you can use the\n[CanvasRenderingContext2D.fill] or\n[CanvasRenderingContext2D.stroke] methods.\n\n> **Note:** To both create and render a rectangle in one step, use the\n> [CanvasRenderingContext2D.fillRect] or\n> [CanvasRenderingContext2D.strokeRect] methods.",
+ "reset": "\n\nThe **`CanvasRenderingContext2D.reset()`** method of the Canvas 2D API resets the rendering context to its default state, allowing it to be reused for drawing something else without having to explicitly reset all the properties.\n\nResetting clears the backing buffer, drawing state stack, any defined paths, and styles.\nThis includes the current [transformation](/en-US/docs/Web/API/CanvasRenderingContext2D#transformations) matrix, [compositing](/en-US/docs/Web/API/CanvasRenderingContext2D#compositing) properties, clipping region, dash list, [line styles](/en-US/docs/Web/API/CanvasRenderingContext2D#line_styles), [text styles](/en-US/docs/Web/API/CanvasRenderingContext2D#text_styles), [shadows](/en-US/docs/Web/API/CanvasRenderingContext2D#shadows), [image smoothing](/en-US/docs/Web/API/CanvasRenderingContext2D#image_smoothing), [filters](/en-US/docs/Web/API/CanvasRenderingContext2D#filters), and so on.",
+ "resettransform": "\n\nThe\n**`CanvasRenderingContext2D.resetTransform()`**\nmethod of the Canvas 2D API resets the current transform to the identity matrix.",
+ "restore": "\n\nThe\n**`CanvasRenderingContext2D.restore()`**\nmethod of the Canvas 2D API restores the most recently saved canvas state by popping the\ntop entry in the drawing state stack. If there is no saved state, this method does\nnothing.\n\nFor more information about the [drawing state](/en-US/docs/Web/API/CanvasRenderingContext2D/save#drawing_state), see [CanvasRenderingContext2D.save].",
+ "rotate": "\n\nThe\n**`CanvasRenderingContext2D.rotate()`**\nmethod of the Canvas 2D API adds a rotation to the transformation matrix.",
+ "roundrect": "\n\nThe **`CanvasRenderingContext2D.roundRect()`** method of the Canvas 2D API adds a rounded rectangle to the current path.\n\nThe radii of the corners can be specified in much the same way as the CSS [`border-radius`](/en-US/docs/Web/CSS/border-radius) property.\n\nLike other methods that modify the current path, this method does not directly render anything.\nTo draw the rounded rectangle onto a canvas, you can use the [CanvasRenderingContext2D.fill] or [CanvasRenderingContext2D.stroke] methods.",
+ "save": "\n\nThe\n**`CanvasRenderingContext2D.save()`**\nmethod of the Canvas 2D API saves the entire state of the canvas by pushing the current\nstate onto a stack.\n\n### The drawing state\n\nThe drawing state that gets saved onto a stack consists of:\n\n- The current transformation matrix.\n- The current clipping region.\n- The current dash list.\n- The current values of the following attributes:\n [CanvasRenderingContext2D.strokeStyle],\n [CanvasRenderingContext2D.fillStyle],\n [CanvasRenderingContext2D.globalAlpha],\n [CanvasRenderingContext2D.lineWidth],\n [CanvasRenderingContext2D.lineCap],\n [CanvasRenderingContext2D.lineJoin],\n [CanvasRenderingContext2D.miterLimit],\n [CanvasRenderingContext2D.lineDashOffset],\n [CanvasRenderingContext2D.shadowOffsetX],\n [CanvasRenderingContext2D.shadowOffsetY],\n [CanvasRenderingContext2D.shadowBlur],\n [CanvasRenderingContext2D.shadowColor],\n [CanvasRenderingContext2D.globalCompositeOperation], [CanvasRenderingContext2D.font],\n [CanvasRenderingContext2D.textAlign],\n [CanvasRenderingContext2D.textBaseline],\n [CanvasRenderingContext2D.direction],\n [CanvasRenderingContext2D.imageSmoothingEnabled].",
+ "scale": "\n\nThe\n**`CanvasRenderingContext2D.scale()`**\nmethod of the Canvas 2D API adds a scaling transformation to the canvas units\nhorizontally and/or vertically.\n\nBy default, one unit on the canvas is exactly one pixel. A scaling transformation\nmodifies this behavior. For instance, a scaling factor of 0.5 results in a unit size of\n0.5 pixels; shapes are thus drawn at half the normal size. Similarly, a scaling factor\nof 2.0 increases the unit size so that one unit becomes two pixels; shapes are thus\ndrawn at twice the normal size.",
+ "scrollpathintoview": " \n\nThe\n**`CanvasRenderingContext2D.scrollPathIntoView()`**\nmethod of the Canvas 2D API scrolls the current or given path into view. It is similar\nto [Element.scrollIntoView].",
+ "setlinedash": "\n\nThe **`setLineDash()`** method of the Canvas 2D API's\n[CanvasRenderingContext2D] interface sets the line dash pattern used when\nstroking lines. It uses an array of values that specify alternating lengths of lines\nand gaps which describe the pattern.\n\n> **Note:** To return to using solid lines, set the line dash list to an\n> empty array.",
+ "settransform": "\n\nThe\n**`CanvasRenderingContext2D.setTransform()`**\nmethod of the Canvas 2D API resets (overrides) the current transformation to the\nidentity matrix, and then invokes a transformation described by the arguments of this\nmethod. This lets you scale, rotate, translate (move), and skew the context.\n\n> **Note:** See also the [CanvasRenderingContext2D.transform] method; instead of overriding the current transform matrix, it\n> multiplies it with a given one.",
+ "shadowblur": "\n\nThe\n**`CanvasRenderingContext2D.shadowBlur`**\nproperty of the Canvas 2D API specifies the amount of blur applied to shadows. The\ndefault is `0` (no blur).\n\n> **Note:** Shadows are only drawn if the\n> [CanvasRenderingContext2D.shadowColor] property is set to\n> a non-transparent value. One of the `shadowBlur`,\n> [CanvasRenderingContext2D.shadowOffsetX], or\n> [CanvasRenderingContext2D.shadowOffsetY] properties must\n> be non-zero, as well.",
+ "shadowcolor": "\n\nThe\n**`CanvasRenderingContext2D.shadowColor`**\nproperty of the Canvas 2D API specifies the color of shadows.\n\nBe aware that the shadow's rendered opacity will be affected by the opacity of the\n[CanvasRenderingContext2D.fillStyle] color when filling, and\nof the [CanvasRenderingContext2D.strokeStyle] color when\nstroking.\n\n> **Note:** Shadows are only drawn if the `shadowColor`\n> property is set to a non-transparent value. One of the\n> [CanvasRenderingContext2D.shadowBlur],\n> [CanvasRenderingContext2D.shadowOffsetX], or\n> [CanvasRenderingContext2D.shadowOffsetY] properties must\n> be non-zero, as well.",
+ "shadowoffsetx": "\n\nThe\n**`CanvasRenderingContext2D.shadowOffsetX`**\nproperty of the Canvas 2D API specifies the distance that shadows will be offset\nhorizontally.\n\n> **Note:** Shadows are only drawn if the\n> [CanvasRenderingContext2D.shadowColor] property is set to\n> a non-transparent value. One of the [CanvasRenderingContext2D.shadowBlur], `shadowOffsetX`, or\n> [CanvasRenderingContext2D.shadowOffsetY] properties must\n> be non-zero, as well.",
+ "shadowoffsety": "\n\nThe\n**`CanvasRenderingContext2D.shadowOffsetY`**\nproperty of the Canvas 2D API specifies the distance that shadows will be offset\nvertically.\n\n> **Note:** Shadows are only drawn if the\n> [CanvasRenderingContext2D.shadowColor] property is set to\n> a non-transparent value. One of the [CanvasRenderingContext2D.shadowBlur],\n> [CanvasRenderingContext2D.shadowOffsetX], or `shadowOffsetY` properties must be non-zero, as\n> well.",
+ "stroke": "\n\nThe\n**`CanvasRenderingContext2D.stroke()`**\nmethod of the Canvas 2D API strokes (outlines) the current or given path with the\ncurrent stroke style.\n\nStrokes are aligned to the center of a path; in other words, half of the stroke is\ndrawn on the inner side, and half on the outer side.\n\nThe stroke is drawn using the [non-zero winding rule](https://en.wikipedia.org/wiki/Nonzero-rule), which\nmeans that path intersections will still get filled.",
+ "strokerect": "\n\nThe\n**`CanvasRenderingContext2D.strokeRect()`**\nmethod of the Canvas 2D API draws a rectangle that is stroked (outlined) according to\nthe current [CanvasRenderingContext2D.strokeStyle] and other\ncontext settings.\n\nThis method draws directly to the canvas without modifying the current path, so any\nsubsequent [CanvasRenderingContext2D.fill] or\n[CanvasRenderingContext2D.stroke] calls will have no effect\non it.",
+ "strokestyle": "\n\nThe **`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:** For more examples of stroke and fill styles, see [Applying styles and color](/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas tutorial](/en-US/docs/Web/API/Canvas_API/Tutorial).",
+ "stroketext": "\n\nThe [CanvasRenderingContext2D] method\n**`strokeText()`**, part of the Canvas 2D API, strokes — that\nis, draws the outlines of — the characters of a text string at the specified\ncoordinates. An optional parameter allows specifying a maximum width for the rendered\ntext, which the will achieve by condensing the text or by\nusing a lower font size.\n\nThis method draws directly to the canvas without modifying the current path, so any\nsubsequent [CanvasRenderingContext2D.fill] or\n[CanvasRenderingContext2D.stroke] calls will have no effect\non it.\n\n> **Note:** Use the [CanvasRenderingContext2D.fillText] method to\n> fill the text characters rather than having just their outlines drawn.",
+ "textalign": "\n\nThe\n**`CanvasRenderingContext2D.textAlign`**\nproperty of the Canvas 2D API specifies the current text alignment used when drawing\ntext.\n\nThe alignment is relative to the `x` value of the\n[CanvasRenderingContext2D.fillText] method. For example, if\n`textAlign` is `\"center\"`, then the text's left edge will be at\n`x - (textWidth / 2)`.",
+ "textbaseline": "\n\nThe\n**`CanvasRenderingContext2D.textBaseline`**\nproperty of the Canvas 2D API specifies the current text baseline used when drawing\ntext.",
+ "textrendering": "\n\nThe **`CanvasRenderingContext2D.textRendering`** property of the [Canvas API](/en-US/docs/Web/API/Canvas_API) provides information to the rendering engine about what to optimize for when rendering text.\n\nThe values correspond to the SVG [`text-rendering`](/en-US/docs/Web/SVG/Attribute/text-rendering) attribute (and CSS [`text-rendering`](/en-US/docs/Web/CSS/text-rendering) property).",
+ "transform": "\n\nThe\n**`CanvasRenderingContext2D.transform()`**\nmethod of the Canvas 2D API multiplies the current transformation with the matrix\ndescribed by the arguments of this method. This lets you scale, rotate, translate\n(move), and skew the context.\n\n> **Note:** See also the\n> [CanvasRenderingContext2D.setTransform] method, which\n> resets the current transform to the identity matrix and then invokes\n> `transform()`.",
+ "translate": "\n\nThe\n**`CanvasRenderingContext2D.translate()`**\nmethod of the Canvas 2D API adds a translation transformation to the current matrix.",
+ "wordspacing": "\n\nThe **`CanvasRenderingContext2D.wordSpacing`** property of the [Canvas API](/en-US/docs/Web/API/Canvas_API) specifies the spacing between words when drawing text.\n\nThis corresponds to the CSS [`word-spacing`](/en-US/docs/Web/CSS/word-spacing) property."
+ }
+ },
+ "capturecontroller": {
+ "docs": "\n\nThe **`CaptureController`** interface provides methods that can be used to further manipulate a capture session separate from its initiation via [MediaDevices.getDisplayMedia].\n\nA `CaptureController` object is associated with a capture session by passing it into a [MediaDevices.getDisplayMedia] call as the value of the options object's `controller` property.",
+ "properties": {
+ "setfocusbehavior": "\n\nThe [CaptureController] interface's **`setFocusBehavior()`** method controls whether the captured tab or window will be focused when an associated [MediaDevices.getDisplayMedia] `Promise` fulfills, or whether the focus will remain with the tab containing the capturing app.\n\nYou can set this behavior multiple times before the [MediaDevices.getDisplayMedia] call, or once immediately after its `Promise` resolves. After that, the focus behavior is said to be finalized, and can't be changed."
+ }
+ },
+ "caretposition": {
+ "docs": " \n\nThe `CaretPosition` interface represents the caret position, an indicator for the text insertion point. You can get a `CaretPosition` using the [Document.caretPositionFromPoint] method."
+ },
+ "cdatasection": {
+ "docs": "\n\nThe **`CDATASection`** interface represents a CDATA section\nthat can be used within XML to include extended portions of unescaped text.\nWhen inside a CDATA section, the symbols `<` and `&` don't need escaping\nas they normally do.\n\nIn XML, a CDATA section looks like:\n\n```xml\n<![CDATA[ … ]]>\n```\n\nFor example:\n\n```html\n<foo>\n Here is a CDATA section: <![CDATA[ < > & ]]> with all kinds of unescaped text.\n</foo>\n```\n\nThe only sequence which is not allowed within a CDATA section is the closing sequence\nof a CDATA section itself, `]]>`.\n\n> **Note:** CDATA sections should not be used within HTML they are considered as comments and not displayed.\n\n"
+ },
+ "channelmergernode": {
+ "docs": "\n\nThe `ChannelMergerNode` interface, often used in conjunction with its opposite, [ChannelSplitterNode], reunites different mono inputs into a single output. Each input is used to fill a channel of the output. This is useful for accessing each channels separately, e.g. for performing channel mixing where gain must be separately controlled on each channel.\n\n\n\nIf `ChannelMergerNode` has one single output, but as many inputs as there are channels to merge; the number of inputs is defined as a parameter of its constructor and the call to [BaseAudioContext/createChannelMerger]. In the case that no value is given, it will default to `6`.\n\nUsing a `ChannelMergerNode`, it is possible to create outputs with more channels than the rendering hardware is able to process. In that case, when the signal is sent to the [BaseAudioContext/listener] object, supernumerary channels will be ignored.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td>variable; default to <code>6</code>.</td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"explicit\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2 </code>(not used in the default count mode)</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>"
+ },
+ "channelsplitternode": {
+ "docs": "\n\nThe `ChannelSplitterNode` interface, often used in conjunction with its opposite, [ChannelMergerNode], separates the different channels of an audio source into a set of mono outputs. This is useful for accessing each channel separately, e.g. for performing channel mixing where gain must be separately controlled on each channel.\n\n\n\nIf your `ChannelSplitterNode` always has one single input, the amount of outputs is defined by a parameter on its constructor and the call to [BaseAudioContext/createChannelSplitter]. In the case that no value is given, it will default to `6`. If there are fewer channels in the input than there are outputs, supernumerary outputs are silent.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td>variable; default to <code>6</code>.</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td>\n <code>\"explicit\"</code> Older implementations, as per earlier versions\n of the spec use <code>\"max\"</code>.\n </td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td>\n Fixed to the number of outputs. Older implementations, as per earlier\n versions of the spec use <code>2 </code>(not used in the default count\n mode).\n </td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"discrete\"</code></td>\n </tr>\n </tbody>\n</table>"
+ },
+ "characterdata": {
+ "docs": "\n\nThe **`CharacterData`** abstract interface represents a [Node] object that contains characters. This is an abstract interface, meaning there aren't any objects of type `CharacterData`: it is implemented by other interfaces like [Text], [Comment], [CDATASection], or [ProcessingInstruction], which aren't abstract.\n\n",
+ "properties": {
+ "after": "\n\nThe **`after()`** method of the [CharacterData] interface\ninserts a set of [Node] objects or strings in the children list of the\nobject's parent, just after the object itself.\n\nStrings are inserted as [Text] nodes; the string is being passed as argument to the [Text/Text] constructor.",
+ "appenddata": "\n\nThe **`appendData()`** method of the [CharacterData] interface\nadds the provided data to the end of the node's current data.",
+ "before": "\n\nThe **`before()`** method of the [CharacterData] interface\ninserts a set of [Node] objects and strings\nin the children list of the `CharacterData`'s parent, just before the `CharacterData` node.\n\nStrings are inserted as [Text] nodes; the string is being passed as argument to the [Text/Text] constructor.",
+ "data": "\n\nThe **`data`** property of the [CharacterData] interface represent the value of the current object's data.",
+ "deletedata": "\n\nThe **`deleteData()`** method of the [CharacterData] interface\nremoves all or part of the data from this `CharacterData` node.",
+ "insertdata": "\n\nThe **`insertData()`** method of the [CharacterData] interface\ninserts the provided data into this `CharacterData` node's current data,\nat the provided offset from the start of the existing data.\nThe provided data is spliced into the existing data.",
+ "length": "\n\nThe read-only **`CharacterData.length`** property\nreturns the number of characters in the contained data, as a positive integer.",
+ "nextelementsibling": "\n\nThe read-only **`nextElementSibling`** property of the [CharacterData] interface\nreturns the first [Element] node following the specified one in its parent's\nchildren list, or `null` if the specified element is the last one in the list.",
+ "previouselementsibling": "\n\nThe read-only **`previousElementSibling`** of the [CharacterData] interface\nreturns the first [Element] before the current node in its parent's children list,\nor `null` if there is none.",
+ "remove": "\n\nThe **`remove()`** method of the [CharacterData] removes the text contained in the node.",
+ "replacedata": "\n\nThe **`replaceData()`** method of the [CharacterData] interface removes a certain number of characters of the existing text in a given `CharacterData` node and replaces those characters with the text provided.",
+ "replacewith": "\n\nThe **`replaceWith()`** method of the [CharacterData] interface\nreplaces this node in the children list of its parent\nwith a set of [Node] objects or string.\n\nStrings are inserted as [Text] nodes; the string is being passed as argument to the [Text/Text] constructor.",
+ "substringdata": "\n\nThe **`substringData()`** method of the [CharacterData] interface\nreturns a portion of the existing data,\nstarting at the specified index\nand extending for a given number of characters afterwards."
+ }
+ },
+ "client": {
+ "docs": "\n\nThe `Client` interface represents an executable context such as a [Worker], or a [SharedWorker]. [Window] clients are represented by the more-specific [WindowClient]. You can get `Client`/`WindowClient` objects from methods such as [Clients.matchAll] and [Clients.get].",
+ "properties": {
+ "frametype": "\n\nThe **`frameType`** read-only property of the [Client] interface indicates the type of browsing context of the current [Client]. This value can be one of `\"auxiliary\"`, `\"top-level\"`, `\"nested\"`, or `\"none\"`.",
+ "id": "\n\nThe **`id`** read-only property of the [Client] interface returns the universally unique identifier of the [Client] object.",
+ "postmessage": "\n\nThe **`postMessage()`** method of the\n[Client] 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\n[ServiceWorkerContainer].",
+ "type": "\n\nThe **`type`** read-only property of the [Client]\ninterface indicates the type of client the service worker is controlling.",
+ "url": "\n\nThe **`url`** read-only property of the [Client]\ninterface returns the URL of the current service worker client."
+ }
+ },
+ "clients": {
+ "docs": "\n\nThe `Clients` interface provides access to [Client] objects. Access it via `[ServiceWorkerGlobalScope].clients` within a [service worker](/en-US/docs/Web/API/Service_Worker_API).",
+ "properties": {
+ "claim": "\n\nThe **`claim()`** method of the [Clients] interface allows an active service worker to set itself as the [ServiceWorkerContainer.controller] for all clients within its [ServiceWorkerRegistration.scope].\nThis triggers a \"`controllerchange`\" event on [ServiceWorkerContainer] in any clients that become controlled by this service worker.\n\nWhen a service worker is initially registered, pages won't use it until they next\nload. The `claim()` method causes those pages to be controlled immediately.\nBe aware that this results in your service worker controlling pages that loaded\nregularly over the network, or possibly via a different service worker.",
+ "get": "\n\nThe **`get()`** method of the\n[Clients] interface gets a service worker client matching a given\n`id` and returns it in a `Promise`.",
+ "matchall": "\n\nThe **`matchAll()`** method of the [Clients]\ninterface returns a `Promise` for a list of service worker\n[Client] objects. Include the `options` parameter to return all service worker\nclients whose origin is the same as the associated service worker's origin. If options\nare not included, the method returns only the service worker clients controlled by the\nservice worker.",
+ "openwindow": "\n\nThe **`openWindow()`** method of the [Clients]\ninterface creates a new top level browsing context and loads a given URL. If the calling\nscript doesn't have permission to show popups, `openWindow()` will throw an\n`InvalidAccessError`.\n\nIn Firefox, the method is allowed to show popups only when called as the result of a\nnotification click event.\n\nIn Chrome for Android, the method may instead open the URL in an existing browsing\ncontext provided by a [standalone web app](/en-US/docs/Web/Progressive_web_apps) previously added to the user's home screen. As of recently, this also works on\nChrome for Windows."
+ }
+ },
+ "clipboard": {
+ "docs": "\n\nThe **`Clipboard`** interface implements the [Clipboard API](/en-US/docs/Web/API/Clipboard_API), providing—if the user grants permission—both read and write access to the contents of the system clipboard. The Clipboard API can be used to implement cut, copy, and paste features within a web application.\n\nThe system clipboard is exposed through the global [Navigator.clipboard] property.\n\nCalls to the methods of the `Clipboard` object will not succeed if the user hasn't granted the needed permissions using the [Permissions API](/en-US/docs/Web/API/Permissions_API) and the `'clipboard-read'` or `'clipboard-write'` permission as appropriate.\n\n> **Note:** In reality, at this time browser requirements for access to the clipboard vary significantly. Please see the section [Clipboard availability](#clipboard_availability) for details.\n\nAll of the Clipboard API methods operate asynchronously; they return a `Promise` which is resolved once the clipboard access has been completed. The promise is rejected if clipboard access is denied.",
+ "properties": {
+ "read": "\n\nThe **`read()`** method of the\n[Clipboard] interface requests a copy of the clipboard's contents,\ndelivering the data to the returned `Promise` when the promise is\nresolved. Unlike [Clipboard.readText], the\n`read()` method can return arbitrary data, such as images. This method can\nalso return text.\n\n> **Note:** The asynchronous Clipboard and [Permissions APIs](/en-US/docs/Web/API/Permissions_API) are still in the\n> process of being integrated into most browsers, so they often deviate from the\n> official rules for permissions and the like. Be sure to review the [compatibility table](#browser_compatibility) before using these methods.",
+ "readtext": "\n\nThe **[Clipboard]** interface's\n**`readText()`** method returns a `Promise` which\nresolves with a copy of the textual contents of the system clipboard.",
+ "write": "\n\nThe [Clipboard] method\n**`write()`** writes arbitrary data, such as images, to the\nclipboard. This can be used to implement cut and copy functionality.\n\nThe `\"clipboard-write\"` permission of the [Permissions API](/en-US/docs/Web/API/Permissions_API), is granted\nautomatically to pages when they are in the active tab.\n\n> **Note:** Browser support for the asynchronous clipboard APIs is still\n> in the process of being implemented. Be sure to check the [compatibility table](#browser_compatibility) as well as\n> [Clipboard availability](/en-US/docs/Web/API/Clipboard#clipboard_availability) for more\n> information.\n\n> **Note:** For parity with Google Chrome, Firefox only allows this function to work with text, HTML, and PNG data.",
+ "writetext": "\n\nThe [Clipboard] interface's **`writeText()`**\nproperty writes the specified text string to the system clipboard. Text may be read back\nusing either [Clipboard.read] or [Clipboard.readText]."
+ }
+ },
+ "clipboardevent": {
+ "docs": "\n\nThe **`ClipboardEvent`** interface represents events providing information related to modification of the clipboard, that is [Element/cut_event], [Element/copy_event], and [Element/paste_event] events.\n\n",
+ "properties": {
+ "clipboarddata": "\n\nThe **`ClipboardEvent.clipboardData`** property holds a [DataTransfer] object, which can be used:\n\n- to specify what data should be put into the clipboard from the [Element/cut_event] and\n [Element/copy_event] event handlers, typically with a [DataTransfer.setData] call;\n- to obtain the data to be pasted from the [Element/paste_event] event handler, typically\n with a [DataTransfer.getData] call.\n\nSee the [Element/cut_event], [Element/copy_event], and [Element/paste_event] events\ndocumentation for more information."
+ }
+ },
+ "clipboarditem": {
+ "docs": "\n\nThe **`ClipboardItem`** interface of the [Clipboard API] represents a single item format, used when reading or writing data via the [Clipboard API]. That is [clipboard.read] and [clipboard.write] respectively.\n\nThe benefit of having the **`ClipboardItem`** interface to represent data, is that it enables developers to cope with the varying scope of file types and data easily.\n\nAccess to the contents of the clipboard is gated behind the [Permissions API](/en-US/docs/Web/API/Permissions_API): The `clipboard-write` permission is granted automatically to pages when they are in the active tab. The `clipboard-read` permission must be requested, which you can do by trying to read data from the clipboard.\n\n> **Note:** To work with text see the [Clipboard.readText] and [Clipboard.writeText] methods of the [Clipboard] interface.\n\n> **Note:** You can only pass in one clipboard item at a time.",
+ "properties": {
+ "gettype": "\n\nThe **`getType()`** method of the [ClipboardItem] interface returns a `Promise` that resolves with a [Blob] of the requested or an error if the MIME type is not found.",
+ "presentationstyle": "\n\nThe read-only\n**`presentationStyle`** property of the [ClipboardItem]\ninterface returns a string indicating how an item should be presented.",
+ "types": "\n\nThe read-only\n**`types`** property of the [ClipboardItem]\ninterface returns an `Array` of \navailable within the [ClipboardItem]"
+ }
+ },
+ "closeevent": {
+ "docs": "\n\nA `CloseEvent` is sent to clients using when the connection is closed. This is delivered to the listener indicated by the `WebSocket` object's `onclose` attribute.\n\n",
+ "properties": {
+ "code": "\n\nThe **`code`** read-only property of the [CloseEvent] interface returns a [WebSocket connection close code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) indicating the reason the server gave for closing the connection.",
+ "reason": "\n\nThe **`reason`** read-only property of the [CloseEvent] interface returns the [WebSocket connection close reason](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.6) the server gave for closing the connection; that is, a concise human-readable prose explanation for the closure.",
+ "wasclean": "\n\nThe **`wasClean`** read-only property of the [CloseEvent] interface returns `true` if the connection closed cleanly."
+ }
+ },
+ "comment": {
+ "docs": "\n\nThe **`Comment`** interface represents textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view.\n\nComments are represented in HTML and XML as content between '`<!--`' and '`-->`'. In XML, like inside SVG or MathML markup, the character sequence '`--`' cannot be used within a comment.\n\n"
+ },
+ "compositionevent": {
+ "docs": "\n\nThe DOM **`CompositionEvent`** represents events that occur due to the user indirectly entering text.\n\n",
+ "properties": {
+ "data": "\n\nThe **`data`** read-only property of the\n[CompositionEvent] interface returns the characters generated by the input\nmethod that raised the event; its exact nature varies depending on the type of event\nthat generated the `CompositionEvent` object.",
+ "initcompositionevent": "\n\nThe **`initCompositionEvent()`**\nmethod of the [CompositionEvent] interface initializes the attributes of a\n`CompositionEvent` object instance.\n\n> **Note:** The correct way of creating a [CompositionEvent] is to use\n> the constructor [CompositionEvent.CompositionEvent].",
+ "locale": "\n\nThe **`locale`** read-only property of the\n[CompositionEvent] interface returns the locale of current input method\n(for example, the keyboard layout locale if the composition is associated with IME).\n\n> **Warning:** Even for browsers supporting it, don't trust the value contained in this property.\n> Even if technically it is accessible, the way to set it up when creating a [CompositionEvent]\n> is not guaranteed to be coherent."
+ }
+ },
+ "compressionstream": {
+ "docs": "\n\nThe **`CompressionStream`** interface of the [Compression Streams API] is an API for compressing a stream of data.",
+ "properties": {
+ "readable": "\n\nThe **`readable`** read-only property of the [CompressionStream] interface returns a [ReadableStream].",
+ "writable": "\n\nThe **`writable`** read-only property of the [CompressionStream] interface returns a [WritableStream]."
+ }
+ },
+ "console": {
+ "docs": "\n\nThe **`console`** object provides access to the debugging console (e.g., the [Web console](https://firefox-source-docs.mozilla.org/devtools-user/web_console/index.html) in Firefox). The specifics of how it works vary from browser to browser or server runtimes (Node.js, for example), but there is a _de facto_ set of features that are typically provided.\n\nThe `console` object can be accessed from any global object. [Window] on browsing scopes and [WorkerGlobalScope] as specific variants in workers via the property console. It's exposed as [Window.console], and can be referenced as `console`. For example:\n\n```js\nconsole.log(\"Failed to open the specified link\");\n```\n\nThis page documents the [Methods](#methods) available on the `console` object and gives a few [Usage](#usage) examples.\n\n> **Note:** Certain online IDEs and editors may implement the console API differently than the browsers. As a result, certain functionality of the console API, such as the timer methods, may not be outputted in the console of online IDEs or editors. Always open your browser's DevTools console to see the logs as shown in this documentation.",
+ "properties": {
+ "assert_static": "\n\nThe **`console.assert()`** static method writes an error message to the console if the assertion is false. If the assertion is true, nothing happens.\n\n",
+ "clear_static": "\n\nThe **`console.clear()`** static method clears the console if the console allows it. A graphical console, like those running on browsers, will allow it; a console displaying on the terminal, like the one running on Node, will not support it, and will have no effect (and no error).",
+ "count_static": "\n\nThe **`console.count()`** static method logs the number of times that this particular call to `count()` has been called.\n\n",
+ "countreset_static": "\n\nThe **`console.countReset()`** static method resets counter used with [console/count_static].\n\n",
+ "debug_static": "\n\nThe **`console.debug()`** static method outputs a message to the console at the \"debug\" log level. The message is only displayed to the user if the console is configured to display debug output. In most cases, the log level is configured within the console UI. This log level might correspond to the `Debug` or `Verbose` log level.\n\n",
+ "dir_static": "\n\nThe **`console.dir()`** static method displays an interactive list of the properties of the specified JavaScript object. The output is presented as a hierarchical listing with disclosure triangles that let you see the contents of child objects.\n\nIn other words, `console.dir()` is the way to see all the properties of a specified JavaScript object in console by which the developer can easily get the properties of the object.\n\n",
+ "dirxml_static": "\n\nThe **`console.dirxml()`** static method displays an interactive tree of the descendant elements of the specified XML/HTML element. If it is not possible to display as an element the JavaScript Object view is shown instead. The output is presented as a hierarchical listing of expandable nodes that let you see the contents of child nodes.",
+ "error_static": "\n\nThe **`console.error()`** static method outputs an error message to the console.\n\n",
+ "group_static": "\n\nThe **`console.group()`** static method creates a new inline group in the [Web console](https://firefox-source-docs.mozilla.org/devtools-user/web_console/index.html) log, causing any subsequent console messages to be indented by an additional level, until [console/groupend_static] is called.\n\n",
+ "groupcollapsed_static": "\n\nThe **`console.groupCollapsed()`** static method creates a new inline group in the console. Unlike [console/group_static], however, the new group is created collapsed. The user will need to use the disclosure button next to it to expand it, revealing the entries created in the group.\n\nCall [console/groupEnd_static] to back out to the parent group.\n\nSee [Using groups in the console](/en-US/docs/Web/API/console#using_groups_in_the_console) in the [console] documentation for details and examples.\n\n",
+ "groupend_static": "\n\nThe **`console.groupEnd()`** static method exits the current inline group in the console. See [Using groups in the console](/en-US/docs/Web/API/console#using_groups_in_the_console) in the [console] documentation for details and examples.\n\n",
+ "info_static": "\n\nThe **`console.info()`** static method outputs an informational message to the console. In Firefox, a small \"i\" icon is displayed next to these items in the console's log.\n\n",
+ "log_static": "\n\nThe **`console.log()`** static method outputs a message to the console. The message may be a single string (with optional substitution values), or it may be any one or more JavaScript objects.\n\n",
+ "profile_static": "\n\nThe **`console.profile()`** static method starts recording a performance profile (for example, the [Firefox performance tool](https://firefox-source-docs.mozilla.org/devtools-user/performance/index.html)).\n\nYou 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_static] to see how this argument is interpreted.\n\nTo stop recording call [console/profileEnd_static].\n\n",
+ "profileend_static": "\n\nThe **`console.profileEnd()`** static method stops recording a profile previously started with [console/profile_static].\n\nYou 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\n",
+ "table_static": "\n\nThe **`console.table()`** static method displays tabular data as a table.\n\nThis function takes one mandatory argument `data`, which must be an array or an object, and one additional optional parameter `columns`.\n\nIt logs `data` as a table. Each element in the array (or enumerable property if `data` is an object) will be a row in the table.\n\nThe first column in the table will be labeled `(index)`. If `data` is an array, then its values will be the array indices. If `data` is an object, then its values will be the property names. Note that (in Firefox) `console.table` is limited to displaying 1000 rows (first row is the labeled index).\n\n### Collections of primitive types\n\nThe `data` argument may be an array or an object.\n\n```js\n// an array of strings\n\nconsole.table([\"apples\", \"oranges\", \"bananas\"]);\n```\n\n| (index) | Values |\n| ------- | --------- |\n| 0 | 'apples' |\n| 1 | 'oranges' |\n| 2 | 'bananas' |\n\n```js\n// an object whose properties are strings\n\nfunction Person(firstName, lastName) {\n this.firstName = firstName;\n this.lastName = lastName;\n}\n\nconst me = new Person(\"Tyrone\", \"Jones\");\n\nconsole.table(me);\n```\n\n| (index) | Values |\n| --------- | -------- |\n| firstName | 'Tyrone' |\n| lastName | 'Jones' |\n\n### Collections of compound types\n\nIf the elements in the array, or properties in the object, are themselves arrays or objects, then their elements or properties are enumerated in the row, one per column:\n\n```js\n// an array of arrays\n\nconst people = [\n [\"Tyrone\", \"Jones\"],\n [\"Janet\", \"Smith\"],\n [\"Maria\", \"Cruz\"],\n];\nconsole.table(people);\n```\n\n| (index) | 0 | 1 |\n| ------- | -------- | ------- |\n| 0 | 'Tyrone' | 'Jones' |\n| 1 | 'Janet' | 'Smith' |\n| 2 | 'Maria' | 'Cruz' |\n\n```js\n// an array of objects\n\nfunction Person(firstName, lastName) {\n this.firstName = firstName;\n this.lastName = lastName;\n}\n\nconst tyrone = new Person(\"Tyrone\", \"Jones\");\nconst janet = new Person(\"Janet\", \"Smith\");\nconst maria = new Person(\"Maria\", \"Cruz\");\n\nconsole.table([tyrone, janet, maria]);\n```\n\nNote that if the array contains objects, then the columns are labeled with the property name.\n\n| (index) | firstName | lastName |\n| ------- | --------- | -------- |\n| 0 | 'Tyrone' | 'Jones' |\n| 1 | 'Janet' | 'Smith' |\n| 2 | 'Maria' | 'Cruz' |\n\n```js\n// an object whose properties are objects\n\nconst family = {};\n\nfamily.mother = new Person(\"Janet\", \"Jones\");\nfamily.father = new Person(\"Tyrone\", \"Jones\");\nfamily.daughter = new Person(\"Maria\", \"Jones\");\n\nconsole.table(family);\n```\n\n| (index) | firstName | lastName |\n| -------- | --------- | -------- |\n| daughter | 'Maria' | 'Jones' |\n| father | 'Tyrone' | 'Jones' |\n| mother | 'Janet' | 'Jones' |\n\n### Restricting the columns displayed\n\nBy default, `console.table()` lists all elements in each row. You can use the optional `columns` parameter to select a subset of columns to display:\n\n```js\n// an array of objects, logging only firstName\n\nfunction Person(firstName, lastName) {\n this.firstName = firstName;\n this.lastName = lastName;\n}\n\nconst tyrone = new Person(\"Tyrone\", \"Jones\");\nconst janet = new Person(\"Janet\", \"Smith\");\nconst maria = new Person(\"Maria\", \"Cruz\");\n\nconsole.table([tyrone, janet, maria], [\"firstName\"]);\n```\n\n| (index) | firstName |\n| ------- | --------- |\n| 0 | 'Tyrone' |\n| 1 | 'Janet' |\n| 2 | 'Maria' |\n\n### Sorting columns\n\nYou can sort the table by a particular column by clicking on that column's label.",
+ "time_static": "\n\nThe **`console.time()`** static method starts a timer you can use to track how long an operation takes. You give each timer a unique name, and may have up to 10,000 timers running on a given page. When you call [console/timeEnd_static] with the same name, the browser will output the time, in milliseconds, that elapsed since the timer was started.\n\nSee [Timers](/en-US/docs/Web/API/console#timers) in the [console] documentation for details and examples.\n\n",
+ "timeend_static": "\n\nThe **`console.timeEnd()`** static method stops a timer that was previously started by calling [console/time_static].\n\nSee [Timers](/en-US/docs/Web/API/console#timers) in the documentation for details and examples.\n\n",
+ "timelog_static": "\n\nThe **`console.timeLog()`** static method logs the current value of a timer that was previously started by calling [console/time_static].",
+ "timestamp_static": "\n\nThe **`console.timeStamp()`** static method adds a single marker to the browser's Performance tool ([Firefox](https://profiler.firefox.com/docs/#/), [Chrome](https://developer.chrome.com/docs/devtools/evaluate-performance/reference/)). This lets you correlate a point in your code with the other events recorded in the timeline, such as layout and paint events.\n\nYou can optionally supply an argument to label the timestamp, and this label will then be shown alongside the marker.\n\n",
+ "trace_static": "\n\nThe **`console.trace()`** static method outputs a stack trace to the console.\n\n> **Note:** In some browsers, `console.trace()` may also output the sequence of calls and asynchronous events leading to the current `console.trace()` which are not on the call stack — to help identify the origin of the current event evaluation loop.\n\nSee [Stack traces](/en-US/docs/Web/API/console#stack_traces) in the [console] documentation for details and examples.",
+ "warn_static": "\n\nThe **`console.warn()`** static method outputs a warning message to the console.\n\n> **Note:** In Chrome and Firefox, warnings have a small exclamation point icon next to them in the console log."
+ }
+ },
+ "constantsourcenode": {
+ "docs": "\n\nThe `ConstantSourceNode` interface—part of the Web Audio API—represents an audio source (based upon [AudioScheduledSourceNode]) whose output is single unchanging value. This makes it useful for cases in which you need a constant value coming in from an audio source. In addition, it can be used like a constructible [AudioParam] by automating the value of its [ConstantSourceNode.offset] or by connecting another node to it; see [Controlling multiple parameters with ConstantSourceNode](/en-US/docs/Web/API/Web_Audio_API/Controlling_multiple_parameters_with_ConstantSourceNode).\n\nA `ConstantSourceNode` has no inputs and exactly one monaural (one-channel) output. The output's value is always the same as the value of the [ConstantSourceNode.offset] parameter.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>0</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "offset": "\n\nThe read-only `offset` property of the [ConstantSourceNode]\ninterface returns a [AudioParam] object indicating the numeric [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) value which is always returned\nby the source when asked for the next sample.\n\n> **Note:** While the `AudioParam` named `offset` is read-only, the\n> `value` property within is not. So you can change the value of\n> `offset` by setting the value of\n> `ConstantSourceNode.offset.value`:\n>\n> ```js\n> myConstantSourceNode.offset.value = newValue;\n> ```"
+ }
+ },
+ "contactaddress": {
+ "docs": "\n\nThe **`ContactAddress`** interface of the [contact_picker_api] represents a physical address. Instances of this interface are retrieved from the `address` property of the objects returned by [ContactsManager.getProperties].\n\nIt may be useful to refer to the Universal Postal Union website's [Addressing S42 standard](https://www.upu.int/en/Postal-Solutions/Programmes-Services/Addressing-Solutions#addressing-s42-standard) materials, which provide information about international standards for postal addresses."
+ },
+ "contactsmanager": {
+ "docs": "\n\nThe **`ContactsManager`** interface of the [Contact Picker API] allows users to select entries from their contact list and share limited details of the selected entries with a website or application.\n\nThe `ContactsManager` is available through the global [navigator.contacts] property.",
+ "properties": {
+ "getproperties": "\n\nThe **`getProperties()`** method of the\n[ContactsManager] interface returns a `Promise` which resolves\nwith an `Array` of `strings` indicating which contact\nproperties are available.",
+ "select": "\n\nThe **`select()`** method of the\n[ContactsManager] interface returns a `Promise` which, when\nresolved, presents the user with a contact picker which allows them to select contact(s)\nthey wish to share. This method requires a user gesture for the `Promise` to\nresolve."
+ }
+ },
+ "contentindex": {
+ "docs": "\n\nThe **`ContentIndex`** interface of the [Content Index API](/en-US/docs/Web/API/Content_Index_API) allows developers to register their offline enabled content with the browser.",
+ "properties": {
+ "add": "\n\nThe **`add()`** method of the\n[ContentIndex] interface registers an item with the [content index](/en-US/docs/Web/API/Content_Index_API).",
+ "delete": "\n\nThe **`delete()`** method of the\n[ContentIndex] interface unregisters an item from the currently indexed\ncontent.\n\n> **Note:** Calling `delete()` only affects the index. It does not delete anything\n> from the [Cache].",
+ "getall": "\n\nThe **`getAll()`** method of the\n[ContentIndex] interface returns a `Promise` that resolves with\nan iterable list of content index entries."
+ }
+ },
+ "contentindexevent": {
+ "docs": "\n\nThe **`ContentIndexEvent`** interface of the [content index](/en-US/docs/Web/API/Content_Index_API) defines the object used to represent the [ServiceWorkerGlobalScope.contentdelete_event] event.\n\nThis event is sent to the [global scope](/en-US/docs/Web/API/ServiceWorkerGlobalScope) of a [ServiceWorker]. It contains the id of the indexed content to be removed.\n\nThe [ServiceWorkerGlobalScope.contentdelete_event] event is only fired when the deletion happens due to interaction with the browser's built-in user interface. It is not fired when the [ContentIndex.delete] method is called.\n\n",
+ "properties": {
+ "id": "\n\nThe read-only **`id`** property of the\n[ContentIndexEvent] interface is a `String` which identifies\nthe deleted content index via its `id`."
+ }
+ },
+ "contentvisibilityautostatechangeevent": {
+ "docs": "\n\nThe **`ContentVisibilityAutoStateChangeEvent`** interface is the event object for the [element/contentvisibilityautostatechange_event] event, which fires on any element with set on it when it starts or stops being [relevant to the user](/en-US/docs/Web/CSS/CSS_containment#relevant_to_the_user) and [skipping its contents](/en-US/docs/Web/CSS/CSS_containment#skips_its_contents).\n\nWhile the element is not relevant (between the start and end events), the user agent skips an element's rendering, including layout and painting.\nThis can significantly improve page rendering speed.\nThe [element/contentvisibilityautostatechange_event] event provides a way for an app's code to also start or stop rendering processes (e.g. drawing on a `canvas`) when they are not needed, thereby conserving processing power.\n\nNote that even when hidden from view, element contents will remain semantically relevant (e.g. to assistive technology users), so this signal should not be used to skip significant semantic DOM updates.\n\n",
+ "properties": {
+ "skipped": "\n\nThe `skipped` read-only property of the [ContentVisibilityAutoStateChangeEvent] interface returns `true` if the user agent [skips the element's contents](/en-US/docs/Web/CSS/CSS_containment#skips_its_contents), or `false` otherwise."
+ }
+ },
+ "convolvernode": {
+ "docs": "\n\nThe `ConvolverNode` interface is an [AudioNode] that performs a Linear Convolution on a given [AudioBuffer], often used to achieve a reverb effect. A `ConvolverNode` always has exactly one input and one output.\n\n> **Note:** For more information on the theory behind Linear Convolution, see the [Convolution article on Wikipedia](https://en.wikipedia.org/wiki/Convolution).\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"clamped-max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>1</code>, <code>2</code>, or <code>4</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "buffer": "\n\nThe **`buffer`** property of the [ConvolverNode] interface represents a mono, stereo, or 4-channel [AudioBuffer] containing the (possibly multichannel) impulse response used by the `ConvolverNode` to create the reverb effect.\n\nThis is normally a simple recording of as-close-to-an-impulse as can be found in the space you want to model. For example, if you want to model the reverb in your bathroom, you might set up a microphone near the door to record the sound of a balloon pop or synthesized impulse from the sink. That audio recording could then be used as the buffer.\n\nThis audio buffer must have the same sample-rate as the `AudioContext` or an exception will be thrown. At the time when this attribute is set, the buffer and the state of the attribute will be used to configure the `ConvolverNode` with this impulse response having the given normalization. The initial value of this attribute is `null`.",
+ "normalize": "\n\nThe `normalize` property of the [ConvolverNode] interface\nis a boolean that controls whether the impulse response from the buffer will be\nscaled by an equal-power normalization when the `buffer` attribute is set,\nor not.\n\nIts default value is `true` in order to achieve a more uniform output\nlevel from the convolver, when loaded with diverse impulse responses. If normalize is\nset to `false`, then the convolution will be rendered with no\npre-processing/scaling of the impulse response. Changes to this value do not take\neffect until the next time the `buffer` attribute is set."
+ }
+ },
+ "cookiechangeevent": {
+ "docs": "\n\nThe **`CookieChangeEvent`** interface of the [Cookie Store API] is the event type of the [CookieStore/change_event] event fired at a [CookieStore] when any cookie changes occur. A cookie change consists of a cookie and a type (either \"changed\" or \"deleted\").\n\nCookie changes that will cause the `CookieChangeEvent` 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> **Note:** A 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\n",
+ "properties": {
+ "changed": "\n\nThe **`changed`** read-only property of the [CookieChangeEvent] interface returns an array of the cookies that have been changed.",
+ "deleted": "\n\nThe **`deleted`** read-only property of the [CookieChangeEvent] interface returns an array of the cookies that have been deleted by the given `CookieChangeEvent` instance."
+ }
+ },
+ "cookiestore": {
+ "docs": "\n\nThe **`CookieStore`** interface of the [Cookie Store API] provides methods for getting and setting cookies asynchronously from either a page or a service worker.\n\nThe `CookieStore` is accessed via attributes in the global scope in a [Window] or [ServiceWorkerGlobalScope] context. Therefore there is no constructor.\n\n",
+ "properties": {
+ "change_event": "\n\nA `change` event is fired at a [CookieStore] object when a change is made to any cookie.",
+ "delete": "\n\nThe **`delete()`** method of the [CookieStore] interface deletes a cookie with the given name or options object. The `delete()` method expires the cookie by changing the date to one in the past.\n\n",
+ "get": "\n\nThe **`get()`** method of the [CookieStore] interface returns a single cookie with the given name or options object. The method will return the first matching cookie for the passed parameters.\n\n",
+ "getall": "\n\nThe **`getAll()`** method of the [CookieStore] interface returns a list of cookies that match the name or options passed to it. Passing no parameters will return all cookies for the current context.\n\n",
+ "set": "\n\nThe **`set()`** method of the [CookieStore] interface sets a cookie with the given name and value or options object.\n\n"
+ }
+ },
+ "cookiestoremanager": {
+ "docs": "\n\nThe **`CookieStoreManager`** interface of the [Cookie Store API] allows service workers to subscribe to cookie change events. Call [CookieStoreManager.subscribe] on a particular service worker registration to receive change events.\n\nA `CookieStoreManager` has an associated [ServiceWorkerRegistration]. Each service worker registration has a cookie change subscription list, which is a list of cookie change subscriptions each containing a name and URL. The methods in this interface allow the service worker to add and remove subscriptions from this list, and to get a list of all subscriptions.\n\nTo get a `CookieStoreManager`, call [ServiceWorkerRegistration.cookies].\n\n",
+ "properties": {
+ "getsubscriptions": "\n\nThe **`getSubscriptions()`** method of the [CookieStoreManager] interface returns a list of all the cookie change subscriptions for this [ServiceWorkerRegistration].\n\n",
+ "subscribe": "\n\nThe **`subscribe()`** method of the [CookieStoreManager] interface subscribes a [ServiceWorkerRegistration] to cookie change events.\n\n",
+ "unsubscribe": "\n\nThe **`unsubscribe()`** method of the [CookieStoreManager] interface stops the [ServiceWorkerRegistration] from receiving previously subscribed events.\n\n"
+ }
+ },
+ "countqueuingstrategy": {
+ "docs": "\n\nThe **`CountQueuingStrategy`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) provides a built-in chunk counting queuing strategy that can be used when constructing streams.",
+ "properties": {
+ "highwatermark": "\n\nThe read-only **`CountQueuingStrategy.highWaterMark`** property returns the total number of chunks that can be contained in the internal queue before backpressure is applied.",
+ "size": "\n\nThe **`size()`** method of the\n[CountQueuingStrategy] interface always returns `1`, so that the\ntotal queue size is a count of the number of chunks in the queue."
+ }
+ },
+ "credential": {
+ "docs": "\n\nThe **`Credential`** interface of the [Credential Management API](/en-US/docs/Web/API/Credential_Management_API) provides information about an entity (usually a user) normally as a prerequisite to a trust decision.\n\n`Credential` objects may be of four different types:\n\n- [FederatedCredential]\n- [IdentityCredential]\n- [PasswordCredential]\n- [PublicKeyCredential]",
+ "properties": {
+ "id": "\n\nThe **`id`** property of the\n[Credential] interface returns a string containing the\ncredential's identifier. This might be any one of a GUID, username, or email\naddress.",
+ "type": "\n\nThe **`type`** property of the\n[Credential] interface returns a string containing the\ncredential's type. Valid values are `password`, `federated` and\n`public-key`."
+ }
+ },
+ "credentialscontainer": {
+ "docs": "\n\nThe **`CredentialsContainer`** interface of the [Credential Management API](/en-US/docs/Web/API/Credential_Management_API) exposes methods to request credentials and notify the user agent when events such as successful sign in or sign out happen. This interface is accessible from [Navigator.credentials].",
+ "properties": {
+ "create": "\n\nThe **`create()`** method of the [CredentialsContainer] interface returns a `Promise` that resolves with a new credential instance based on the provided options, the information from which can then be stored and later used to authenticate users via [CredentialsContainer.get].\n\nThis is used by multiple different credential-related APIs with significantly different purposes:\n\n- The [Credential Management API](/en-US/docs/Web/API/Credential_Management_API) uses `create()` to create basic federated credentials or username/password credentials.\n- The [Web Authentication API](/en-US/docs/Web/API/Web_Authentication_API) uses `create()` to create public key credentials (based on asymmetric cryptography).\n\nThe below reference page starts with a syntax section that explains the general method call structure and parameters that apply to all the different APIs. After that, it is split into separate sections providing parameters, return values, and examples specific to each API.\n\n> **Note:** This method is restricted to top-level (i.e., a document running directly inside a browser tab, and not embedded inside another document). Calls to it from within an `<iframe>` element will resolve without effect.",
+ "get": "\n\nThe **`get()`** method of the [CredentialsContainer] interface returns a `Promise` that fulfills with a single credential instance that matches the provided parameters, which the browser can then use to authenticate with a relying party. This is used by several different credential-related APIs with significantly different purposes:\n\n- The [Credential Management API](/en-US/docs/Web/API/Credential_Management_API) uses `get()` to authenticate using basic federated credentials or username/password credentials.\n- The [Web Authentication API](/en-US/docs/Web/API/Web_Authentication_API) uses `get()` to authenticate or provide additional factors during MFA with public key credentials (based on asymmetric cryptography).\n- The [Federated Credential Management (FedCM) API](/en-US/docs/Web/API/FedCM_API) uses `get()` to authenticate with federated identity providers (IdPs).\n- The [WebOTP API](/en-US/docs/Web/API/WebOTP_API) uses `get()` to request retrieval of a one-time password (OTP) from a specially-formatted SMS message sent by an app server.\n\nThe below reference page starts with a syntax section that explains the general method call structure and parameters that apply to all the different APIs. After that, it is split into separate sections providing parameters, return values, and examples specific to each API.",
+ "preventsilentaccess": "\n\nThe **`preventSilentAccess()`** method\nof the [CredentialsContainer] interface sets a flag that specifies\nwhether automatic log in is allowed for future visits to the current origin, then\nreturns an empty [`Promise`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). For\nexample, you might call this, after a user signs out of a website to ensure that\nthey aren't automatically signed in on the next site visit. Mediation varies by origin,\nand is an added check point of browser stored credentials, informing a user of an\naccount login status. This method is typically called after a user signs out of a\nwebsite, ensuring this user's login information is not automatically passed on the next\nsite visit.\n\nEarlier versions of the spec called this method `requireUserMediation()`.\nThe [Browser compatibility](/en-US/docs/Web/API/CredentialsContainer#browser_compatibility) section has support details.",
+ "store": "\n\nThe **`store()`** method of the\n[CredentialsContainer] stores a set of credentials for the user inside a\n[Credential] instance, returning this in a `Promise`.\n\n> **Note:** This method is restricted to top-level contexts. Calls to it within an\n> `<iframe>` element will resolve without effect."
+ }
+ },
+ "crypto": {
+ "docs": "\n\nThe **`Crypto`** interface represents basic cryptography features available in the current context.\nIt allows access to a cryptographically strong random number generator and to cryptographic primitives.\n\nThe [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) is accessed through the global [crypto_property] property, which is a `Crypto` object.",
+ "properties": {
+ "getrandomvalues": "\n\nThe **`Crypto.getRandomValues()`** method lets you get cryptographically strong random values.\nThe array given as the parameter is filled with random numbers (random in its cryptographic meaning).\n\nTo guarantee enough performance, implementations are not using a truly random number generator, but they are using a pseudo-random number generator _seeded_ with a value with enough entropy.\nThe pseudo-random number generator algorithm (PRNG) may vary across , but is suitable for cryptographic purposes.\n\n`getRandomValues()` is the only member of the `Crypto` interface which can be used from an insecure context.",
+ "randomuuid": "\n\nThe **`randomUUID()`** method of the [Crypto] interface is used to generate a v4 using a cryptographically secure random number generator.",
+ "subtle": "\n\nThe **`Crypto.subtle`** read-only property returns a\n[SubtleCrypto] which can then be used to perform low-level\ncryptographic operations."
+ }
+ },
+ "cryptokey": {
+ "docs": "\n\nThe **`CryptoKey`** interface of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents a cryptographic obtained from one of the [SubtleCrypto] methods [SubtleCrypto.generateKey], [SubtleCrypto.deriveKey], [SubtleCrypto.importKey], or [SubtleCrypto.unwrapKey].\n\nFor security reasons, the `CryptoKey` interface can only be used in a [secure context](/en-US/docs/Web/Security/Secure_Contexts).",
+ "properties": {
+ "algorithm": "\n\nThe read-only **`algorithm`** property of the [CryptoKey] interface returns an object describing the algorithm for which this key can be used, and any associated extra parameters.\n\nThe object returned depends of the algorithm used to generate the key.",
+ "extractable": "\n\nThe read-only **`extractable`** property of the [CryptoKey] interface indicates whether or not the key may be extracted using [`SubtleCrypto.exportKey()`](/en-US/docs/Web/API/SubtleCrypto/exportKey) or [`SubtleCrypto.wrapKey()`](/en-US/docs/Web/API/SubtleCrypto/wrapKey).\n\nIf the key cannot be exported, [`exportKey()`](/en-US/docs/Web/API/SubtleCrypto/exportKey) or [`wrapKey()`](/en-US/docs/Web/API/SubtleCrypto/wrapKey) will throw an exception if used to extract it.",
+ "type": "\n\nThe read-only **`type`** property of the [CryptoKey] interface indicates which kind of key is represented by the object. It can have the following values:\n\n- `\"secret\"`: This key is a secret key for use with a .\n- `\"private\"`: This key is the private half of an [`CryptoKeyPair`](/en-US/docs/Web/API/CryptoKeyPair).\n- `\"public\"`: This key is the public half of an [`CryptoKeyPair`](/en-US/docs/Web/API/CryptoKeyPair).",
+ "usages": "\n\nThe read-only **`usages`** property of the [CryptoKey] interface indicates what can be done with the key."
+ }
+ },
+ "cryptokeypair": {
+ "docs": "\n\nThe **`CryptoKeyPair`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents a key pair for an asymmetric cryptography algorithm, also known as a public-key algorithm.\n\nA `CryptoKeyPair` object can be obtained using [SubtleCrypto.generateKey], when the selected algorithm is one of the asymmetric algorithms: RSASSA-PKCS1-v1_5, RSA-PSS, RSA-OAEP, ECDSA, or ECDH.\n\nIt contains two properties, which are both [`CryptoKey`](/en-US/docs/Web/API/CryptoKey) objects: a `privateKey` property containing the private key and a `publicKey` property containing the public key."
+ },
+ "cspviolationreportbody": {
+ "docs": "\n\nThe `CSPViolationReportBody` interface contains the report data for a Content Security Policy (CSP) violation. CSP violations are thrown when the webpage attempts to load a resource that violates the CSP set by the HTTP header.\n\n> **Note:** this interface is similar, but not identical to, the [JSON objects](/en-US/docs/Web/HTTP/CSP#violation_report_syntax) sent back to the [`report-uri`](/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri) or [`report-to`](/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to) policy directive of the header.\n\n"
+ },
+ "css": {
+ "docs": "\n\nThe **`CSS`** interface holds useful CSS-related methods. No objects with this interface are implemented: it contains only static methods and is therefore a utilitarian interface.",
+ "properties": {
+ "escape_static": "\n\nThe **`CSS.escape()`** static method returns a\nstring containing the escaped string passed as parameter, mostly for\nuse as part of a CSS selector.",
+ "factory_functions_static": "\n\nThe **CSS numeric factory\nfunctions**, such as `CSS.em()` and\n`CSS.turn()` are methods that return [CSSUnitValues](/en-US/docs/Web/API/CSSUnitValue) 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\n[CSSUnitValue.CSSUnitValue] constructor.",
+ "highlights_static": "\n\nThe 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].",
+ "paintworklet_static": "\n\nThe static, read-only **`paintWorklet`** property of the [CSS] interface provides access to the\npaint [worklet](/en-US/docs/Web/API/Worklet), which programmatically generates an image where a CSS\nproperty expects a file.",
+ "registerproperty_static": "\n\nThe **`CSS.registerProperty()`** static method registers\n, allowing for property type checking, default\nvalues, and properties that do or do not inherit their value.\n\nRegistering a custom property allows you to tell the browser how the custom property\nshould behave; what types are allowed, whether the custom property inherits its value,\nand what the default value of the custom property is.",
+ "supports_static": "\n\nThe **`CSS.supports()`** static method returns a boolean value\nindicating if the browser supports a given CSS feature, or not."
+ }
+ },
+ "cssanimation": {
+ "docs": "\n\nThe **`CSSAnimation`** interface of the [Web Animations API] represents an [Animation] object.\n\n",
+ "properties": {
+ "animationname": "\n\nThe **`animationName`** property of the\n[CSSAnimation] interface returns the . This\nspecifies one or more keyframe at-rules which describe the animation applied to the\nelement."
+ }
+ },
+ "cssconditionrule": {
+ "docs": "\n\nAn object implementing the **`CSSConditionRule`** interface represents a single condition CSS [at-rule](/en-US/docs/Web/CSS/At-rule), which consists of a condition and a statement block.\n\nThree objects derive from `CSSConditionRule`: [CSSMediaRule], [CSSContainerRule] and [CSSSupportsRule].\n\n",
+ "properties": {
+ "conditiontext": "\n\nThe **`conditionText`** property of\nthe [CSSConditionRule] interface returns or sets the text of the CSS\nrule."
+ }
+ },
+ "csscontainerrule": {
+ "docs": "\n\nThe **`CSSContainerRule`** interface represents a single CSS rule.\n\nAn object of this type can be used to get the query conditions for the , 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].\n\n",
+ "properties": {
+ "containername": "\n\nThe read-only **`containerName`** property of the [CSSContainerRule] interface represents the container name of the associated CSS at-rule.\n\nFor example, the value of `containerName` for the below is `sidebar`:\n\n```css\n@container sidebar (min-width: 700px) {\n .card {\n font-size: 2em;\n }\n}\n```",
+ "containerquery": "\n\nThe 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 are applied.\n\nFor example, the value of `containerQuery` for the below is `(min-width: 700px)`:\n\n```css\n@container sidebar (min-width: 700px) {\n .card {\n font-size: 2em;\n }\n}\n```"
+ }
+ },
+ "csscounterstylerule": {
+ "docs": "\n\nThe **`CSSCounterStyleRule`** interface represents an [at-rule](/en-US/docs/Web/CSS/At-rule).\n\n",
+ "properties": {
+ "additivesymbols": "`CSS Counter Styles`\n\nThe **`additiveSymbols`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string.",
+ "fallback": "`CSS Counter Styles`\n\nThe **`fallback`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string.",
+ "name": "`CSS Counter Styles`\n\nThe **`name`** property of the [CSSCounterStyleRule] interface gets and sets the defined as the `name` for the associated rule.",
+ "negative": "`CSS Counter Styles`\n\nThe **`negative`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string.",
+ "pad": "`CSS Counter Styles`\n\nThe **`pad`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string.",
+ "prefix": "`CSS Counter Styles`\n\nThe **`prefix`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string.",
+ "range": "`CSS Counter Styles`\n\nThe **`range`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string.",
+ "speakas": "`CSS Counter Styles`\n\nThe **`speakAs`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string.",
+ "suffix": "`CSS Counter Styles`\n\nThe **`suffix`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string.",
+ "symbols": "`CSS Counter Styles`\n\nThe **`symbols`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string.",
+ "system": "`CSS Counter Styles`\n\nThe **`system`** property of the [CSSCounterStyleRule] interface gets and sets the value of the descriptor. If the descriptor does not have a value set, this attribute returns an empty string."
+ }
+ },
+ "cssfontfacerule": {
+ "docs": "\n\nThe **`CSSFontFaceRule`** interface represents an [at-rule](/en-US/docs/Web/CSS/At-rule).\n\n",
+ "properties": {
+ "style": "\n\nThe read-only **`style`** property of the [CSSFontFaceRule] interface returns the style information from the [at-rule](/en-US/docs/Web/CSS/At-rule). This will be in the form of a [CSSStyleDeclaration] object."
+ }
+ },
+ "cssfontfeaturevaluesrule": {
+ "docs": "\n\nThe **`CSSFontFeatureValuesRule`** interface represents an [at-rule](/en-US/docs/Web/CSS/At-rule), letting developers assign for each font face a common name to specify features indices to be used in .\n\n",
+ "properties": {
+ "fontfamily": "\n\nThe **`fontFamily`** property of the [CSSConditionRule] interface represents the name of the font family it applies to."
+ }
+ },
+ "cssfontpalettevaluesrule": {
+ "docs": "\n\nThe **`CSSFontPaletteValuesRule`** interface represents an [at-rule](/en-US/docs/Web/CSS/At-rule).\n\n",
+ "properties": {
+ "basepalette": "\n\nThe read-only **`basePalette`** property of the [CSSFontPaletteValuesRule] interface indicates the base palette associated with the rule.",
+ "fontfamily": "\n\nThe 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.",
+ "name": "\n\nThe read-only **`name`** property of the [CSSFontPaletteValuesRule] interface represents the name identifying the associated at-rule. A valid name always starts with two dashes, such as `--Alternate`.",
+ "overridecolors": "\n\nThe 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 descriptor."
+ }
+ },
+ "cssgroupingrule": {
+ "docs": "\n\nThe **`CSSGroupingRule`** interface of the [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model) represents any CSS [at-rule](/en-US/docs/Web/CSS/At-rule) that contains other rules nested within it.\n\n",
+ "properties": {
+ "cssrules": "\n\nThe **`cssRules`** property of the\n[CSSGroupingRule] interface returns a [CSSRuleList] containing\na collection of [CSSRule] objects.",
+ "deleterule": "\n\nThe **`deleteRule()`** method of the\n[CSSGroupingRule] interface removes a CSS rule from a list of child CSS\nrules.",
+ "insertrule": "\n\nThe **`insertRule()`** method of the\n[CSSGroupingRule] interface adds a new CSS rule to a list of CSS rules."
+ }
+ },
+ "cssimagevalue": {
+ "docs": "\n\nThe **`CSSImageValue`** interface of the [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Object_Model#css_typed_object_model) represents values for properties that take an image, for example , , or .\n\nThe CSSImageValue object represents an [`<image>`](/en-US/docs/Web/CSS/image) that involves a URL, such as [`url()`](/en-US/docs/Web/CSS/url) or [`image()`](/en-US/docs/Web/CSS/image), but not [`linear-gradient()`](/en-US/docs/Web/CSS/gradient/linear-gradient) or [`element()`](/en-US/docs/Web/CSS/element).\n\n"
+ },
+ "cssimportrule": {
+ "docs": "\n\nThe **`CSSImportRule`** interface represents an [at-rule](/en-US/docs/Web/CSS/At-rule).\n\n",
+ "properties": {
+ "href": "\n\nThe read-only **`href`** property of the\n[CSSImportRule] interface returns the URL specified by the\n [at-rule](/en-US/docs/Web/CSS/At-rule).\n\nThe resolved URL will be the [`href`](/en-US/docs/Web/HTML/Element/link#href) attribute of the\nassociated stylesheet.",
+ "layername": "\n\nThe read-only **`layerName`** property of the [CSSImportRule] interface returns the name of the cascade layer created by the [at-rule](/en-US/docs/Web/CSS/At-rule).\n\nIf the created layer is anonymous, the string is empty (`\"\"`), if no layer has been\ncreated, it is the `null` object.",
+ "media": "\n\nThe read-only **`media`** property of the\n[CSSImportRule] interface returns a [MediaList] object,\ncontaining the value of the `media` attribute of the associated stylesheet.",
+ "stylesheet": "\n\nThe read-only **`styleSheet`** property of the\n[CSSImportRule] interface returns the CSS Stylesheet specified by the\n [at-rule](/en-US/docs/Web/CSS/At-rule). This will be\nin the form of a [CSSStyleSheet] object.\n\nAn [at-rule](/en-US/docs/Web/CSS/At-rule) always has\nan associated stylesheet.",
+ "supportstext": "\n\nThe read-only **`supportsText`** property of the [CSSImportRule] interface returns the supports condition specified by the [at-rule](/en-US/docs/Web/CSS/At-rule)."
+ }
+ },
+ "csskeyframerule": {
+ "docs": "\n\nThe **`CSSKeyframeRule`** interface describes an object representing a set of styles for a given keyframe. It corresponds to the contents of a single keyframe of a [at-rule](/en-US/docs/Web/CSS/At-rule).\n\n",
+ "properties": {
+ "keytext": "\n\nThe **`keyText`** property of the [CSSKeyframeRule] interface represents the keyframe selector as a comma-separated list of percentage values. The from and to keywords map to 0% and 100%, respectively.",
+ "style": "\n\nThe read-only **`CSSKeyframeRule.style`** property is the [CSSStyleDeclaration] interface for the [declaration block](https://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#block) of the [CSSKeyframeRule]."
+ }
+ },
+ "csskeyframesrule": {
+ "docs": "\n\nThe **`CSSKeyframesRule`** interface describes an object representing a complete set of keyframes for a CSS animation. It corresponds to the contents of a whole [at-rule](/en-US/docs/Web/CSS/At-rule).\n\n",
+ "properties": {
+ "appendrule": "\n\nThe **`appendRule()`** method of the [CSSKeyframeRule] interface appends a [CSSKeyFrameRule] to the end of the rules.",
+ "cssrules": "\n\nThe read-only **`cssRules`** property of the [CSSKeyframeRule] interface returns a [CSSRuleList] containing the rules in the keyframes [at-rule](/en-US/docs/Web/CSS/At-rule).",
+ "deleterule": "\n\nThe **`deleteRule()`** method of the [CSSKeyframeRule] interface deletes the [CSSKeyFrameRule] that matches the specified keyframe selector.",
+ "findrule": "\n\nThe **`findRule()`** method of the [CSSKeyframeRule] interface finds the [CSSKeyFrameRule] that matches the specified keyframe selector.",
+ "name": "\n\nThe **`name`** property of the [CSSKeyframeRule] interface gets and sets the name of the animation as used by the property."
+ }
+ },
+ "csskeywordvalue": {
+ "docs": "\n\nThe **`CSSKeywordValue`** interface of the [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Object_Model#css_typed_object_model) creates an object to represent CSS keywords and other identifiers.\n\nThe interface instance name is a meaning that when used anywhere a string is expected it will return the value of `CSSKeyword.value`.\n\n",
+ "properties": {
+ "value": "\n\nThe **`value`** property of the\n[CSSKeywordValue] interface returns or sets the value of the\n`CSSKeywordValue`."
+ }
+ },
+ "csslayerblockrule": {
+ "docs": "\n\nThe **`CSSLayerBlockRule`** represents a block rule. It is a grouping at-rule meaning that it can contain other rules, and is associated to a given cascade layer, identified by its _name_.\n\n",
+ "properties": {
+ "name": "\n\nThe read-only **`name`** property of the [CSSLayerBlockRule] interface represents the name of the associated cascade layer."
+ }
+ },
+ "csslayerstatementrule": {
+ "docs": "\n\nThe **`CSSLayerStatementRule`** represents a statement rule. Unlike [CSSLayerBlockRule], it doesn't contain other rules and merely defines one or several layers by providing their names.\n\nThis rule allows to explicitly declare the ordering layer that is in an apparent way at the beginning of a CSS file: the layer order is defined by the order of first occurrence of each layer name. Declaring them with a statement allows the reader to understand the layer order. It also allows inline and imported layers to be interleaved, which is not possible when using the `CSSLayerBlockRule` syntax.\n\n",
+ "properties": {
+ "namelist": "\n\nThe read-only **`nameList`** property of the [CSSLayerStatementRule] interface return the list of associated cascade layer names. The names can't be modified."
+ }
+ },
+ "cssmathinvert": {
+ "docs": "\n\nThe **`CSSMathInvert`** interface of the represents a CSS `calc()` used as `calc(1 / <value>).` It inherits properties and methods from its parent [CSSNumericValue].\n\n",
+ "properties": {
+ "value": "\n\nThe CSSMathInvert.value read-only property of the\n[CSSMathInvert] interface returns a [CSSNumericValue] object."
+ }
+ },
+ "cssmathmax": {
+ "docs": "\n\nThe **`CSSMathMax`** interface of the represents the CSS `max()` function. It inherits properties and methods from its parent [CSSNumericValue].\n\n",
+ "properties": {
+ "values": "\n\nThe CSSMathMax.values read-only property of the\n[CSSMathMax] interface returns a [CSSNumericArray] object\nwhich contains one or more [CSSNumericValue] objects."
+ }
+ },
+ "cssmathmin": {
+ "docs": "\n\nThe **`CSSMathMin`** interface of the represents the CSS `min()` function. It inherits properties and methods from its parent [CSSNumericValue].\n\n",
+ "properties": {
+ "values": "\n\nThe CSSMathMin.values read-only property of the\n[CSSMathMin] interface returns a [CSSNumericArray] object\nwhich contains one or more [CSSNumericValue] objects."
+ }
+ },
+ "cssmathnegate": {
+ "docs": "\n\nThe **`CSSMathNegate`** interface of the negates the value passed into it. It inherits properties and methods from its parent [CSSNumericValue].\n\n",
+ "properties": {
+ "value": "\n\nThe CSSMathNegate.value read-only property of the\n[CSSMathNegate] interface returns a [CSSNumericValue] object."
+ }
+ },
+ "cssmathproduct": {
+ "docs": "\n\nThe **`CSSMathProduct`** interface of the represents the result obtained by calling [CSSNumericValue.add], [CSSNumericValue.sub], or [CSSNumericValue.toSum] on [CSSNumericValue]. It inherits properties and methods from its parent [CSSNumericValue].\n\n",
+ "properties": {
+ "values": "\n\nThe **`CSSMathProduct.values`** read-only\nproperty of the [CSSMathProduct] interface returns a\n[CSSNumericArray] object which contains one or more\n[CSSNumericValue] objects."
+ }
+ },
+ "cssmathsum": {
+ "docs": "\n\nThe **`CSSMathSum`** interface of the represents the result obtained by calling [CSSNumericValue.add], [CSSNumericValue.sub], or [CSSNumericValue.toSum] on [CSSNumericValue].\n\nA CSSMathSum is the object type returned when the [`StylePropertyMapReadOnly.get()`](/en-US/docs/Web/API/StylePropertyMapReadOnly/get) method is used on a CSS property whose value is created with a [`calc()`](/en-US/docs/Web/CSS/calc) function.\n\n",
+ "properties": {
+ "values": "\n\nThe **`CSSMathSum.values`** read-only property\nof the [CSSMathSum] interface returns a [CSSNumericArray]\nobject which contains one or more [CSSNumericValue] objects."
+ }
+ },
+ "cssmathvalue": {
+ "docs": "\n\nThe **`CSSMathValue`** interface of the a base class for classes representing complex numeric values.\n\n",
+ "properties": {
+ "operator": "\n\nThe **`CSSMathValue.operator`** read-only\nproperty of the [CSSMathValue] interface indicates the operator that the\ncurrent subtype represents. For example, if the current `CSSMathValue`\nsubtype is `CSSMathSum`, this property will return the string\n`\"sum\"`."
+ }
+ },
+ "cssmatrixcomponent": {
+ "docs": "\n\nThe **`CSSMatrixComponent`** interface of the represents the [matrix()](/en-US/docs/Web/CSS/transform-function/matrix) and [matrix3d()](/en-US/docs/Web/CSS/transform-function/matrix3d) values of the individual `transform` property in CSS. It inherits properties and methods from its parent [CSSTransformValue].\n\n",
+ "properties": {
+ "matrix": "\n\nThe **`matrix`** property of the\n[CSSMatrixComponent] interface gets and sets a 2d or 3d matrix.\n\nSee the [matrix()](/en-US/docs/Web/CSS/transform-function/matrix) and [matrix3d()](/en-US/docs/Web/CSS/transform-function/matrix3d) pages for\nexamples."
+ }
+ },
+ "cssmediarule": {
+ "docs": "\n\nThe **`CSSMediaRule`** interface represents a single CSS rule.\n\n",
+ "properties": {
+ "media": "\n\nThe read-only **`media`** property of the\n[CSSMediaRule] interface [MediaList] represents the intended\ndestination medium for style information."
+ }
+ },
+ "cssnamespacerule": {
+ "docs": "\n\nThe **`CSSNamespaceRule`** interface describes an object representing a single CSS [at-rule](/en-US/docs/Web/CSS/At-rule).\n\n",
+ "properties": {
+ "namespaceuri": "\n\nThe read-only **`namespaceURI`** property of the [CSSNamespaceRule] returns a string containing the text of the URI of the given namespace.",
+ "prefix": "\n\nThe read-only **`prefix`** property of the [CSSNamespaceRule] returns a string with the name of the prefix associated to this namespace. If there is no such prefix, it returns an empty string."
+ }
+ },
+ "cssnumericarray": {
+ "docs": "\n\nThe **`CSSNumericArray`** interface of the contains a list of [CSSNumericValue] objects.",
+ "properties": {
+ "length": "\n\nThe read-only **`length`** property of the\n[CSSNumericArray] interface returns the number of\n[CSSNumericValue] objects in the list."
+ }
+ },
+ "cssnumericvalue": {
+ "docs": "\n\nThe **`CSSNumericValue`** interface of the [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Object_Model#css_typed_object_model) represents operations that all numeric values can perform.\n\n",
+ "properties": {
+ "add": "\n\nThe **`add()`** method of the\n[CSSNumericValue] interface adds a supplied number to the\n`CSSNumericValue`.",
+ "div": "\n\nThe **`div()`** method of the\n[CSSNumericValue] interface divides the `CSSNumericValue` by the\nsupplied value.",
+ "equals": "\n\nThe **`equals()`** method of the\n[CSSNumericValue] interface returns a boolean indicating whether the passed\nvalue are strictly equal. To return a value of `true`, all passed values must\nbe of the same type and value and must be in the same order. This allows structural\nequality to be tested quickly.",
+ "max": "\n\nThe **`max()`** method of the\n[CSSNumericValue] interface returns the highest value from among the values\npassed. The passed values must be of the same type.",
+ "min": "\n\nThe **`min()`** method of the\n[CSSNumericValue] interface returns the lowest value from among those\nvalues passed. The passed values must be of the same type.",
+ "mul": "\n\nThe **`mul()`** method of the\n[CSSNumericValue] interface multiplies the `CSSNumericValue` by\nthe supplied value.",
+ "parse_static": "\n\nThe **`parse()`** static method of the\n[CSSNumericValue] interface converts a value string into an object whose\nmembers are value and the units.",
+ "sub": "\n\nThe **`sub()`** method of the\n[CSSNumericValue] interface subtracts a supplied number from the\n`CSSNumericValue`.",
+ "to": "\n\nThe **`to()`** method of the\n[CSSNumericValue] interface converts a numeric value from one unit to\nanother.",
+ "tosum": "\n\nThe **`toSum()`** method of the\n[CSSNumericValue] interface converts the object's value to a\n[CSSMathSum] object to values of the specified unit.",
+ "type": "\n\nThe **`type()`** method of the\n[CSSNumericValue] interface returns the type of\n`CSSNumericValue`, one of `angle`, `flex`,\n`frequency`, `length`, `resolution`,\n`percent`, `percentHint`, or `time`."
+ }
+ },
+ "csspagerule": {
+ "docs": "\n\n**`CSSPageRule`** represents a single CSS rule.\n\n",
+ "properties": {
+ "selectortext": "\n\nThe **`selectorText`** property of the [CSSPageRule] interface gets and sets the selectors associated with the `CSSPageRule`.",
+ "style": "\n\nThe **`style`** read-only property of the [CSSPageRule] interface returns a [CSSStyleDeclaration] object. This represents an object that is a [CSS declaration block](/en-US/docs/Web/API/CSS_Object_Model/CSS_Declaration_Block), and exposes style information and various style-related methods and properties."
+ }
+ },
+ "cssperspective": {
+ "docs": "\n\nThe **`CSSPerspective`** interface of the represents the [perspective()](/en-US/docs/Web/CSS/transform-function/perspective) value of the individual `transform` property in CSS. It inherits properties and methods from its parent [CSSTransformValue].\n\n",
+ "properties": {
+ "length": "\n\nThe **`length`** property of the\n[CSSPerspective] interface sets the distance from z=0.\n\nIt is used to apply a perspective transform to the element and its content. If the\nvalue is 0 or a negative number, no perspective transform is applied."
+ }
+ },
+ "csspositionvalue": {
+ "docs": "\n\nThe **`CSSPositionValue`** interface of the [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Object_Model#css_typed_object_model) represents values for properties that take a position, for example .",
+ "properties": {
+ "x": "\n\nThe **`x`** property of the\n[CSSPositionValue] interface returns the item's position along the web\npage's horizontal axis.",
+ "y": "\n\nThe **`y`** property of the\n[CSSPositionValue] interface returns the item's position along the\nvertical axis."
+ }
+ },
+ "cssprimitivevalue": {
+ "docs": "\n\nThe **`CSSPrimitiveValue`** interface derives from the [CSSValue] interface and represents the current computed value of a CSS property.\n\n> **Note:** This interface was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.\n\nThis interface represents a single CSS value. It may be used to determine the value of a specific style property currently set in a block or to set a specific style property explicitly within the block. An instance of this interface might be obtained from the [CSSStyleDeclaration.getPropertyCSSValue] method of the [CSSStyleDeclaration] interface. A `CSSPrimitiveValue` object only occurs in a context of a CSS property.\n\nConversions are allowed between absolute values (from millimeters to centimeters, from degrees to radians, and so on) but not between relative values. (For example, a pixel value cannot be converted to a centimeter value.) Percentage values can't be converted since they are relative to the parent value (or another property value). There is one exception for color percentage values: since a color percentage value is relative to the range 0-255, a color percentage value can be converted to a number (see also the [RGBColor] interface).\n\n",
+ "properties": {
+ "getcountervalue": "\n\nThe **`getCounterValue()`** method of the\n[CSSPrimitiveValue] interface is used to get the [counter](/en-US/docs/Web/CSS/CSS_counter_styles/Using_CSS_counters)\nvalue. If this CSS value doesn't contain a counter value, a [DOMException]\nis raised. Modification to the corresponding style property can be achieved using the\n[Counter] interface.\n\n> **Note:** This method was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "getfloatvalue": "\n\nThe **`getFloatValue()`** method of the\n[CSSPrimitiveValue] interface is used to get a float value in a specified\nunit. If this CSS value doesn't contain a float value or can't be converted into the\nspecified unit, a [DOMException] is raised.\n\n> **Note:** This method was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "getrectvalue": "\n\nThe **`getRectValue()`** method of the\n[CSSPrimitiveValue] interface is used to get a rect value. If this CSS\nvalue doesn't contain a rect value, a [DOMException] is raised.\nModification to the corresponding style property can be achieved using the\n[Rect] interface.\n\n> **Note:** This method was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "getrgbcolorvalue": "\n\nThe **`getRGBColorValue()`** method of the\n[CSSPrimitiveValue] interface is used to get an RGB color value. If this\nCSS value doesn't contain a RGB color value, a [DOMException] is raised.\nModification to the corresponding style property can be achieved using the\n[RGBColor] interface.\n\n> **Note:** This method was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "getstringvalue": "\n\nThe **`getStringValue()`** method of the\n[CSSPrimitiveValue] interface is used to get a string value. If this CSS\nvalue doesn't contain a string value, a [DOMException] is raised.\n\n> **Note:** This method was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "primitivetype": "\n\nThe **`primitiveType`** read-only property of the\n[CSSPrimitiveValue] interface represents the type of a CSS value.\n\n> **Note:** This property was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "setfloatvalue": "\n\nThe **`setFloatValue()`** method of the\n[CSSPrimitiveValue] interface is used to set a float value. If the property\nattached to this value can't accept the specified unit or the float value, the value\nwill be unchanged and a [DOMException] will be raised.\n\n> **Note:** This method was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "setstringvalue": "\n\nThe **`setStringValue()`** method of the\n[CSSPrimitiveValue] interface is used to set a string value. If the\nproperty attached to this value can't accept the specified unit or the string value, the\nvalue will be unchanged and a [DOMException] will be raised.\n\n> **Note:** This method was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental."
+ }
+ },
+ "csspropertyrule": {
+ "docs": "\n\nThe **`CSSPropertyRule`** interface of the [CSS Properties and Values API](/en-US/docs/Web/API/CSS_Properties_and_Values_API) represents a single CSS rule.\n\n",
+ "properties": {
+ "inherits": "\n\nThe read-only **`inherits`** property of the [CSSPropertyRule] interface returns the inherit flag of the custom property registration represented by the rule, a boolean describing whether or not the property inherits by default.",
+ "initialvalue": "\n\nThe read-only **`initialValue`** nullable property of the [CSSPropertyRule] interface returns the initial value of the custom property registration represented by the rule, controlling the property's initial value.",
+ "name": "\n\nThe read-only **`name`** property of the [CSSPropertyRule] interface represents the property name, this being the serialization of the name given to the custom property in the rule's prelude.",
+ "syntax": "\n\nThe read-only **`syntax`** property of the [CSSPropertyRule] interface returns the literal syntax of the custom property registration represented by the rule, controlling how the property's value is parsed at computed-value time."
+ }
+ },
+ "csspseudoelement": {
+ "docs": "\n\nThe **`CSSPseudoElement`** interface represents a pseudo-element that may be the target of an event or animated using the [Web Animations API]. Instances of this interface may be obtained by calling [Element.pseudo].\n\n",
+ "properties": {
+ "element": "\n\nThe **`element`** read-only property of the\n[CSSPseudoElement] interface returns a reference to the originating element\nof the pseudo-element, in other words its parent element.",
+ "type": "\n\nThe **`type`** read-only property of the\n[CSSPseudoElement] interface returns the type of the pseudo-element as a\nstring, represented in the form of a [CSS selector](/en-US/docs/Web/CSS/CSS_selectors#pseudo-elements)."
+ }
+ },
+ "cssrotate": {
+ "docs": "\n\nThe **`CSSRotate`** interface of the represents the rotate value of the individual `transform` property in CSS. It inherits properties and methods from its parent [CSSTransformValue].\n\n",
+ "properties": {
+ "angle": "\n\nThe **`angle`** property of the\n[CSSRotate] interface gets and sets the angle of rotation. A positive angle\ndenotes a clockwise rotation, a negative angle a counter-clockwise one.",
+ "x": "\n\nThe **`x`** property of the\n[CSSRotate] interface gets and sets the abscissa or x-axis of the\ntranslating vector.",
+ "y": "\n\nThe **`y`** property of the\n[CSSRotate] interface gets and sets the ordinate or y-axis of the\ntranslating vector.",
+ "z": "\n\nThe **`z`** property of the\n[CSSRotate] interface representing the z-component of the translating\nvector. A positive value moves the element towards the viewer, and a negative value\nfarther away."
+ }
+ },
+ "cssrule": {
+ "docs": "\n\nThe **`CSSRule`** interface represents a single CSS rule. There are several types of rules which inherit properties from `CSSRule`.\n\n- [CSSGroupingRule]\n- [CSSStyleRule]\n- [CSSImportRule]\n- [CSSMediaRule]\n- [CSSFontFaceRule]\n- [CSSPageRule]\n- [CSSNamespaceRule]\n- [CSSKeyframesRule]\n- [CSSKeyframeRule]\n- [CSSCounterStyleRule]\n- [CSSSupportsRule]\n- [CSSFontFeatureValuesRule]\n- [CSSFontPaletteValuesRule]\n- [CSSLayerBlockRule]\n- [CSSLayerStatementRule]\n- [CSSPropertyRule]",
+ "properties": {
+ "csstext": "\n\nThe **`cssText`** property of the [CSSRule]\ninterface returns the actual text of a [CSSStyleSheet] style-rule.\n\n> **Note:** Do not confuse this property with element-style\n> [CSSStyleDeclaration.cssText].\n\nBe aware that this property can no longer be set directly, as it is [now specified](https://www.w3.org/TR/cssom-1/#changes-from-5-december-2013)\nto be _functionally_ modify-only, and silently so. In other words, attempting to\nset it _does absolutely nothing_, and doesn't even omit a warning or error.\nFurthermore, it has no settable sub-properties. Therefore, to modify it, use the\nstylesheet's [CSSRuleList]`[index]` properties\n[CSSStyleRule.selectorText] and\n[CSSStyleRule.style] (or its sub-properties). See [Using dynamic styling information](/en-US/docs/Web/API/CSS_Object_Model/Using_dynamic_styling_information) for details.",
+ "parentrule": "\n\nThe **`parentRule`** property of the [CSSRule]\ninterface returns the containing rule of the current rule if this exists, or otherwise\nreturns null.",
+ "parentstylesheet": "\n\nThe **`parentStyleSheet`** property of the\n[CSSRule] interface returns the [StyleSheet] object in which\nthe current rule is defined.",
+ "type": "\n\nThe read-only **`type`** property of the\n[CSSRule] interface is a deprecated property that returns an integer\nindicating which type of rule the [CSSRule] represents.\n\nIf you need to distinguish different types of CSS rule, a good alternative is to use [`constructor.name`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name):\n\n```js\nconst sheets = Array.from(document.styleSheets);\nconst rules = sheets.map((sheet) => Array.from(sheet.cssRules)).flat();\n\nfor (const rule of rules) {\n console.log(rule.constructor.name);\n}\n```"
+ }
+ },
+ "cssrulelist": {
+ "docs": "\n\nA `CSSRuleList` represents an ordered collection of read-only [CSSRule] objects.\n\nWhile the `CSSRuleList` object is read-only, and cannot be directly modified, it is considered a `live` object, as the content can change over time.\n\nTo edit the underlying rules returned by `CSSRule` objects, use [CSSStyleSheet.insertRule] and [CSSStyleSheet.deleteRule], which are methods of [CSSStyleSheet].\n\nThe interface has no constructor. An instance of `CSSRuleList` is returned by [CSSStyleSheet.cssRules] and [CSSKeyframesRule.cssRules].\n\n> **Note:** This interface was an [attempt to create an unmodifiable list](https://stackoverflow.com/questions/74630989/why-use-domstringlist-rather-than-an-array/74641156#74641156) and only continues to be supported to not break code that's already using it. Modern APIs use types that wrap around ECMAScript array types instead, so you can treat them like ECMAScript arrays, and at the same time impose additional semantics on their usage (such as making their items read-only).",
+ "properties": {
+ "item": "\n\nThe **`item()`** method of the [CSSRuleList] interface returns the [CSSRule] object at the specified `index` or `null` if the specified `index` doesn't exist.",
+ "length": "\n\nThe **`length`** property of the [CSSRuleList] interface returns the number of [CSSRule] objects in the list."
+ }
+ },
+ "cssscale": {
+ "docs": "\n\nThe **`CSSScale`** interface of the represents the [scale()](/en-US/docs/Web/CSS/transform-function/scale) and [scale3d()](/en-US/docs/Web/CSS/transform-function/scale3d) values of the individual `transform` property in CSS. It inherits properties and methods from its parent [CSSTransformValue].\n\n",
+ "properties": {
+ "x": "\n\nThe **`x`** property of the\n[CSSScale] interface gets and sets the abscissa or x-axis of the\ntranslating vector.",
+ "y": "\n\nThe **`y`** property of the\n[CSSScale] interface gets and sets the ordinate or y-axis of the\ntranslating vector.",
+ "z": "\n\nThe **`z`** property of the\n[CSSScale] interface representing the z-component of the translating\nvector. A positive value moves the element towards the viewer, and a negative value\nfarther away.\n\nIf this value is present then the transform is a 3D transform and the `is2D`\nproperty will be set to false."
+ }
+ },
+ "cssscoperule": {
+ "docs": "\n\nThe **`CSSScopeRule`** interface of the [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model) represents a CSS at-rule.\n\n",
+ "properties": {
+ "end": "\n\nThe **`end`** property of the [CSSScopeRule] interface returns a string containing the value of the `@scope` at-rule's scope limit.",
+ "start": "\n\nThe **`start`** property of the [CSSScopeRule] interface returns a string containing the value of the `@scope` at-rule's scope root."
+ }
+ },
+ "cssskew": {
+ "docs": "\n\nThe **`CSSSkew`** interface of the is part of the [CSSTransformValue] interface. It represents the [`skew()`](/en-US/docs/Web/CSS/transform-function/skew) value of the individual `transform` property in CSS.\n\n",
+ "properties": {
+ "ax": "\n\nThe **`ax`** property of the\n[CSSSkew] interface gets and sets the angle used to distort the element\nalong the x-axis (or abscissa).",
+ "ay": "\n\nThe **`ay`** property of the\n[CSSSkew] interface gets and sets the angle used to distort the element\nalong the y-axis (or ordinate)."
+ }
+ },
+ "cssskewx": {
+ "docs": "\n\nThe **`CSSSkewX`** interface of the represents the [`skewX()`](/en-US/docs/Web/CSS/transform-function/skewX) value of the individual `transform` property in CSS. It inherits properties and methods from its parent [CSSTransformValue].\n\n",
+ "properties": {
+ "ax": "\n\nThe **`ax`** property of the\n[CSSSkewX] interface gets and sets the angle used to distort the element\nalong the x-axis (or abscissa)."
+ }
+ },
+ "cssskewy": {
+ "docs": "\n\nThe **`CSSSkewY`** interface of the represents the [`skewY()`](/en-US/docs/Web/CSS/transform-function/skewY) value of the individual `transform` property in CSS. It inherits properties and methods from its parent [CSSTransformValue].\n\n",
+ "properties": {
+ "ay": "\n\nThe **`ay`** property of the\n[CSSSkewY] interface gets and sets the angle used to distort the element\nalong the y-axis (or ordinate)."
+ }
+ },
+ "cssstartingstylerule": {
+ "docs": "\n\nThe **`CSSStartingStyleRule`** interface of the [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model) represents a CSS at-rule.\n\n"
+ },
+ "cssstyledeclaration": {
+ "docs": "\n\nThe **`CSSStyleDeclaration`** interface represents an object that is a CSS declaration block, and exposes style information and various style-related methods and properties.\n\nA `CSSStyleDeclaration` object can be exposed using three different APIs:\n\n- Via [HTMLElement.style], which deals with the inline styles of a single element (e.g., `<div style=\"…\">`).\n- Via the [CSSStyleSheet] API. For example, `document.styleSheets[0].cssRules[0].style` returns a `CSSStyleDeclaration` object on the first CSS rule in the document's first stylesheet.\n- Via [Window.getComputedStyle], which exposes the `CSSStyleDeclaration` object as a **read-only** interface.",
+ "properties": {
+ "cssfloat": "\n\nThe **`cssFloat`** property of the [CSSStyleDeclaration] interface returns the result of invoking [CSSStyleDeclaration.getPropertyValue] with `float` as an argument.\n\nWhen 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.",
+ "csstext": "\n\nThe **`cssText`** property of the [CSSStyleDeclaration] interface returns or sets the text of the element's **inline** style declaration only.\n\nTo be able to set a **stylesheet** rule dynamically, see [Using dynamic styling information](/en-US/docs/Web/API/CSS_Object_Model/Using_dynamic_styling_information).\n\nNot to be confused with stylesheet style-rule [CSSRule.cssText].",
+ "getpropertycssvalue": " \n\nThe **CSSStyleDeclaration.getPropertyCSSValue()**\nmethod interface returns a [CSSValue] containing the CSS value for a\nproperty. Note that it returns `null` if the property name is a\nshorthand property.\n\n> **Note:** This interface was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - [CSSStyleDeclaration.getPropertyValue] of the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - [Element.computedStyleMap] of the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "getpropertypriority": "\n\nThe **CSSStyleDeclaration.getPropertyPriority()** method interface returns\na string that provides all explicitly set priorities on the CSS\nproperty.",
+ "getpropertyvalue": "\n\nThe **CSSStyleDeclaration.getPropertyValue()** method interface returns a\nstring containing the value of a specified CSS property.",
+ "item": "\n\nThe `CSSStyleDeclaration.item()`\nmethod interface returns a CSS property name from a [CSSStyleDeclaration]\nby index.\n\nThis method doesn't throw exceptions as long as you provide\narguments; the empty string is returned if the index is out of range and a\n`TypeError` is thrown if no argument is provided.",
+ "length": "\n\nThe read-only property returns an integer that represents the\nnumber of style declarations in this CSS declaration block.",
+ "parentrule": "\n\nThe **CSSStyleDeclaration.parentRule** read-only\nproperty returns a [CSSRule] that is the parent of this style\nblock, e.g. a [CSSStyleRule] representing the style for a CSS\nselector.",
+ "removeproperty": "\n\nThe **`CSSStyleDeclaration.removeProperty()`** method interface\nremoves a property from a CSS style declaration object.",
+ "setproperty": "\n\nThe\n**`CSSStyleDeclaration.setProperty()`** method interface sets\na new value for a property on a CSS style declaration object."
+ }
+ },
+ "cssstylerule": {
+ "docs": "\n\nThe **`CSSStyleRule`** interface represents a single CSS style rule.\n\n",
+ "properties": {
+ "selectortext": "\n\nThe **`selectorText`** property of the [CSSStyleRule] interface gets and sets the selectors associated with the `CSSStyleRule`.",
+ "style": "\n\nThe read-only **`style`** property is the [CSSStyleDeclaration] interface for the [declaration block](https://www.w3.org/TR/1998/REC-CSS2-19980512/syndata.html#block) of the [CSSStyleRule].",
+ "stylemap": "\n\nThe **`styleMap`** read-only property of the\n[CSSStyleRule] interface returns a [StylePropertyMap] object\nwhich provides access to the rule's property-value pairs."
+ }
+ },
+ "cssstylesheet": {
+ "docs": "\n\nThe **`CSSStyleSheet`** interface represents a single [CSS](/en-US/docs/Web/CSS) stylesheet, and lets you inspect and modify the list of rules contained in the stylesheet. It inherits properties and methods from its parent, [StyleSheet].\n\nA stylesheet consists of a collection of [CSSRule] objects representing each of the rules in the stylesheet. The rules are contained in a [CSSRuleList], which can be obtained from the stylesheet's [CSSStyleSheet.cssRules] property.\n\nFor example, one rule might be a [CSSStyleRule] object containing a style such as:\n\n```css\nh1,\nh2 {\n font-size: 16pt;\n}\n```\n\nAnother rule might be an _at-rule_ such as or , and so forth.\n\nSee the [Obtaining a StyleSheet](#obtaining_a_stylesheet) section for the various ways a `CSSStyleSheet` object can be obtained. A `CSSStyleSheet` object can also be directly constructed. The constructor, and the [CSSStyleSheet.replace], and [CSSStyleSheet.replaceSync] methods are newer additions to the specification, enabling _Constructable Stylesheets_.",
+ "properties": {
+ "addrule": "\n\nThe obsolete [CSSStyleSheet] interface's\n**`addRule()`** _legacy method_ adds a new rule to the\nstylesheet. You should avoid using this method, and should instead use the more standard\n[CSSStyleSheet.insertRule] method.",
+ "cssrules": "\n\nThe read-only [CSSStyleSheet] property\n**`cssRules`** returns a live [CSSRuleList] which\nprovides a real-time, up-to-date list of every CSS rule which comprises the\nstylesheet. Each item in the list is a [CSSRule] defining a single\nrule.",
+ "deleterule": "\n\nThe [CSSStyleSheet] method\n**`deleteRule()`** removes a rule from the stylesheet\nobject.",
+ "insertrule": "\n\nThe **`CSSStyleSheet.insertRule()`**\nmethod inserts a new [CSS rule](/en-US/docs/Web/API/CSSRule) into the [current style sheet](/en-US/docs/Web/API/CSSStyleSheet).\n\n> **Note:** Although `insertRule()` is exclusively a method of\n> [CSSStyleSheet], it actually inserts the rule into\n> `[CSSStyleSheet].cssRules` — its internal\n> [CSSRuleList].",
+ "ownerrule": "\n\nThe read-only [CSSStyleSheet] property\n**`ownerRule`** returns the [CSSImportRule]\ncorresponding to the at-rule which imported the stylesheet into\nthe document. If the stylesheet wasn't imported into the document using\n`@import`, the returned value is `null`.",
+ "removerule": "\n\nThe obsolete [CSSStyleSheet] method\n**`removeRule()`** removes a rule from the stylesheet\nobject. It is functionally identical to the standard, preferred method\n[CSSStyleSheet.deleteRule].\n\n> **Note:** This is a _legacy method_ which has been replaced by\n> the standard method [CSSStyleSheet.deleteRule]. You\n> should use that instead.",
+ "replace": "\n\nThe **`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\nThe `replace()` and [CSSStyleSheet.replaceSync] methods can only be used on a stylesheet created with the [CSSStyleSheet.CSSStyleSheet] constructor.",
+ "replacesync": "\n\nThe **`replaceSync()`** method of the [CSSStyleSheet] interface synchronously replaces the content of the stylesheet with the content passed into it.\n\nThe `replaceSync()` and [CSSStyleSheet.replace] methods can only be used on a stylesheet created with the [CSSStyleSheet.CSSStyleSheet] constructor.",
+ "rules": "\n\n**`rules`** is a _deprecated_\n_legacy property_ of the [CSSStyleSheet] interface. Functionally\nidentical to the preferred [CSSStyleSheet.cssRules] property,\nit provides access to a live-updating list of the CSS rules comprising the\nstylesheet.\n\n> **Note:** As a legacy property, you should not use `rules` and\n> should instead use the preferred [CSSStyleSheet.cssRules].\n> While `rules` is unlikely to be removed soon, its availability is not as\n> widespread and using it will result in compatibility problems for your site or app."
+ }
+ },
+ "cssstylevalue": {
+ "docs": "\n\nThe **`CSSStyleValue`** interface of the [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Object_Model#css_typed_object_model) is the base class of all CSS values accessible through the Typed OM API. An instance of this class may be used anywhere a string is expected.",
+ "properties": {
+ "parse_static": "\n\nThe **`parse()`** static method of the [CSSStyleValue]\ninterface sets a specific CSS property to the specified values and returns the first\nvalue as a [CSSStyleValue] object.",
+ "parseall_static": "\n\nThe **`parseAll()`** static method of the [CSSStyleValue]\ninterface sets all occurrences of a specific CSS property to the specified value and\nreturns an array of [CSSStyleValue] objects, each containing one of the\nsupplied values."
+ }
+ },
+ "csssupportsrule": {
+ "docs": "\n\nThe **`CSSSupportsRule`** interface represents a single CSS [at-rule](/en-US/docs/Web/CSS/At-rule).\n\n"
+ },
+ "csstransformcomponent": {
+ "docs": "\n\nThe **`CSSTransformComponent`** interface of the is part of the [CSSTransformValue] interface.",
+ "properties": {
+ "is2d": "\n\nThe **`is2D`** read-only property of the [CSSTransformComponent] interface indicates where the transform is 2D or 3D.",
+ "tomatrix": "\n\nThe **`toMatrix()`** method of the\n[CSSTransformComponent] interface returns a [DOMMatrix]\nobject.\n\nAll transform functions can be represented mathematically as a 4x4 transformation matrix. This is explained in detail in [Understanding the CSS Transforms matrix](https://dev.opera.com/articles/understanding-the-css-transforms-matrix/).\n\n> **Note:** The `is2D` property affects what transform, and therefore type of matrix that will be returned. CSS 2D and 3D transforms are different for legacy reasons. A brief explanation of 2D vs. 3D transforms can be found in [Using CSS transforms](/en-US/docs/Web/CSS/CSS_transforms/Using_CSS_transforms).",
+ "tostring": "\n\nThe **`toString()`** method of the [CSSTransformComponent] interface is a returning a [CSS Transforms](/en-US/docs/Web/CSS/CSS_transforms) function."
+ }
+ },
+ "csstransformvalue": {
+ "docs": "\n\nThe **`CSSTransformValue`** interface of the represents `transform-list` values as used by the CSS `transform` property.\n\n",
+ "properties": {
+ "entries": "\n\nThe **`CSSTransformValue.entries()`** method\nreturns an array of a given object's own enumerable\nproperty `[key, value]` pairs in the same order as that provided by a\n[`for...in`](/en-US/docs/Web/JavaScript/Reference/Statements/for...in) loop (the difference being that a for-in loop enumerates\nproperties in the prototype chain as well).",
+ "foreach": "\n\nThe **`CSSTransformValue.forEach()`** method executes a provided function once for each element of the `CSSTransformValue`.",
+ "is2d": "\n\nThe read-only **`is2D`** property of the\n[CSSTransformValue] interface returns whether the transform is 2D or 3D.\n\nIn the case of the `CSSTransformValue` this property returns\ntrue unless any of the individual functions return false for `Is2D`, in which\ncase it returns false.",
+ "keys": "\n\nThe **`CSSTransformValue.keys()`** method\nreturns a new _array iterator_ object that contains the keys\nfor each index in the array.",
+ "length": "\n\nThe read-only **`length`** property of the\n[CSSTransformValue] interface returns the number of transform components in\nthe list.",
+ "tomatrix": "\n\nThe **`toMatrix()`** method of the\n[CSSTransformValue] interface returns a [DOMMatrix] object.",
+ "values": "\n\nThe **`CSSTransformValue.values()`** returns a\nnew _array iterator_ object that contains the values for\neach index in the CSSTransformValue object."
+ }
+ },
+ "csstransition": {
+ "docs": "\n\nThe **`CSSTransition`** interface of the [Web Animations API] represents an [Animation] object used for a [CSS Transition](/en-US/docs/Web/CSS/CSS_transitions).\n\n",
+ "properties": {
+ "transitionproperty": "\n\nThe **`transitionProperty`** property of the\n[CSSTransition] interface returns the **expanded transition property\nname** of the transition. This is the longhand CSS property for which the\ntransition was generated."
+ }
+ },
+ "csstranslate": {
+ "docs": "\n\nThe **`CSSTranslate`** interface of the represents the [translate()](/en-US/docs/Web/CSS/transform-function/translate) value of the individual `transform` property in CSS. It inherits properties and methods from its parent [CSSTransformValue].\n\n",
+ "properties": {
+ "x": "\n\nThe **`x`** property of the\n[CSSTranslate] interface gets and sets the abscissa or x-axis of the\ntranslating vector.",
+ "y": "\n\nThe **`y`** property of the\n[CSSTranslate] interface gets and sets the ordinate or y-axis of the\ntranslating vector.",
+ "z": "\n\nThe **`z`** property of the\n[CSSTranslate] interface representing the z-component of the translating\nvector. A positive value moves the element towards the viewer, and a negative value\nfarther away.\n\nIf this value is present then the transform is a 3D transform and the `is2D`\nproperty will be set to false."
+ }
+ },
+ "cssunitvalue": {
+ "docs": "\n\nThe **`CSSUnitValue`** interface of the represents values that contain a single unit type. For example, \"42px\" would be represented by a `CSSNumericValue`.\n\n",
+ "properties": {
+ "unit": "\n\nThe **`CSSUnitValue.unit`** read-only property\nof the [CSSUnitValue] interface returns a string\nindicating the type of unit.",
+ "value": "\n\nThe **`CSSUnitValue.value`** property of the\n[CSSUnitValue] interface returns a double indicating the number of units."
+ }
+ },
+ "cssunparsedvalue": {
+ "docs": "\n\nThe **`CSSUnparsedValue`** interface of the represents property values that reference [custom properties](/en-US/docs/Web/CSS/CSS_cascading_variables). It consists of a list of string fragments and variable references.\n\nCustom properties are represented by `CSSUnparsedValue` and `var()` references are represented using [CSSVariableReferenceValue].\n\n",
+ "properties": {
+ "entries": "\n\nThe **`CSSUnparsedValue.entries()`** method\nreturns an array of a given object's own enumerable property `[key, value]`\npairs in the same order as that provided by a `for...in` loop (the difference being that a for-in loop enumerates properties in the\nprototype chain as well).",
+ "foreach": "\n\nThe **`CSSUnparsedValue.forEach()`** method\nexecutes a provided function once for each element of the\n[CSSUnparsedValue].",
+ "keys": "\n\nThe **`CSSUnparsedValue.keys()`** method\nreturns a new _array iterator_ object that contains the keys\nfor each index in the array.",
+ "length": "\n\nThe **`length`** read-only property of the\n[CSSUnparsedValue] interface returns the number of items in the object.",
+ "values": "\n\nThe **`CSSUnparsedValue.values()`** method\nreturns a new _array iterator_ object that contains the\nvalues for each index in the CSSUnparsedValue object."
+ }
+ },
+ "cssvalue": {
+ "docs": "\n\nThe **`CSSValue`** interface represents the current computed value of a CSS property.\n\n> **Note:** This interface was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "properties": {
+ "csstext": "\n\nThe **`cssText`** property of the [CSSValue]\ninterface represents the current computed CSS property value.\n\n> **Note:** This property was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "cssvaluetype": "\n\nThe **`cssValueType`** read-only property of the\n[CSSValue] interface represents the type of the current computed CSS\nproperty value.\n\n> **Note:** This property was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental."
+ }
+ },
+ "cssvaluelist": {
+ "docs": "\n\nThe **`CSSValueList`** interface derives from the [CSSValue] interface and provides the abstraction of an ordered collection of CSS values.\n\n> **Note:** This interface was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.\n\nSome properties allow an empty list in their syntax. In that case, these properties take the `none` identifier. So, an empty list means that the property has the value `none`.\n\nThe items in the `CSSValueList` are accessible via an integral index, starting from 0.\n\n",
+ "properties": {
+ "item": "\n\nThe **`item()`** method of the [CSSValueList]\ninterface is used to retrieve a [CSSValue] by ordinal index.\n\nThe order in this collection represents the order of the values in the CSS style\nproperty. If the index is greater than or equal to the number of values in the list,\nthis method returns `null`.\n\n> **Note:** This method was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.",
+ "length": "\n\nThe **`length`** read-only property of the\n[CSSValueList] interface represents the number of [CSSValue]s\nin the list. The range of valid values of the indices is `0` to\n`length-1` inclusive.\n\n> **Note:** This property was part of an attempt to create a typed CSS Object Model. This attempt has been abandoned, and most browsers do\n> not implement it.\n>\n> To achieve your purpose, you can use:\n>\n> - the untyped [CSS Object Model](/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental."
+ }
+ },
+ "cssvariablereferencevalue": {
+ "docs": "\n\nThe **`CSSVariableReferenceValue`** interface of the allows you to create a custom name for a built-in CSS value. This object functionality is sometimes called a \"CSS variable\" and serves the same purpose as the `var()` function. The custom name must begin with two dashes.",
+ "properties": {
+ "fallback": "\n\nThe **`fallback`** read-only property of the\n[CSSVariableReferenceValue] interface returns the [custom property fallback value](/en-US/docs/Web/CSS/Using_CSS_custom_properties#custom_property_fallback_values) of the [CSSVariableReferenceValue].",
+ "variable": "\n\nThe **`variable`** property of the\n[CSSVariableReferenceValue] interface returns the [custom property name](/en-US/docs/Web/CSS/--*) of the\n[CSSVariableReferenceValue]."
+ }
+ },
+ "customelementregistry": {
+ "docs": "\n\nThe **`CustomElementRegistry`** interface provides methods for registering custom elements and querying registered elements. To get an instance of it, use the [window.customElements] property.",
+ "properties": {
+ "define": "\n\nThe **`define()`** method of the [CustomElementRegistry] interface adds a definition for a custom element to the custom element registry, mapping its name to the constructor which will be used to create it.",
+ "get": "\n\nThe **`get()`** method of the\n[CustomElementRegistry] interface returns the constructor for a\npreviously-defined custom element.",
+ "getname": "\n\nThe **`getName()`** method of the\n[CustomElementRegistry] interface returns the name for a\npreviously-defined custom element.",
+ "upgrade": "\n\nThe **`upgrade()`** method of the\n[CustomElementRegistry] interface upgrades all shadow-containing custom\nelements in a [Node] subtree, even before they are connected to the main\ndocument.",
+ "whendefined": "\n\nThe **`whenDefined()`** method of the\n[CustomElementRegistry] interface returns a `Promise` that\nresolves when the named element is defined."
+ }
+ },
+ "customevent": {
+ "docs": "\n\nThe **`CustomEvent`** interface represents events initialized by an application for any purpose.\n\n> **Note:** If 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](/en-US/docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts) for more information.\n\n",
+ "properties": {
+ "detail": "\n\nThe read-only **`detail`** property of the [CustomEvent] interface\nreturns any data passed when initializing the event.",
+ "initcustomevent": "\n\nThe **`CustomEvent.initCustomEvent()`** method initializes a [CustomEvent] object.\nIf the event has already been dispatched, this method does nothing.\n\nEvents 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>\n> Rather than using the feature, instead use specific event constructors, like [CustomEvent.CustomEvent].\n> The page on [Creating and triggering events](/en-US/docs/Web/Events/Creating_and_triggering_events) gives more information about the way to use those."
+ }
+ },
+ "customstateset": {
+ "docs": "\n\nThe **`CustomStateSet`** interface of the [Document Object Model](/en-US/docs/Web/API/Document_Object_Model) stores a list of states for an [autonomous custom element](/en-US/docs/Web/API/Web_components/Using_custom_elements#types_of_custom_element), and allows states to be added and removed from the set.\n\nThe interface can be used to expose the internal states of a custom element, allowing them to be used in CSS selectors by code that uses the element.",
+ "properties": {
+ "add": "\n\nThe **`add`** method of the [CustomStateSet] interface adds an item to the `CustomStateSet`, after checking that the value is in the correct format.",
+ "clear": "\n\nThe **`clear()`** method of the [CustomStateSet] interface removes all elements from the `CustomStateSet` object.",
+ "delete": "\n\nThe **`delete()`** method of the [CustomStateSet] interface deletes a single value from the `CustomStateSet`.",
+ "entries": "\n\nThe **`entries`** method of the [CustomStateSet] interface returns a new [iterator](/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) object, containing an array of `[value,value]` for each element in the `CustomStateSet`.",
+ "foreach": "\n\nThe **`forEach()`** method of the [CustomStateSet] interface executes a provided function for each value in the `CustomStateSet` object.",
+ "has": "\n\nThe **`has()`** method of the [CustomStateSet] interface returns a `Boolean` asserting whether an element is present with the given value.",
+ "keys": "\n\nThe **`keys()`** method of the [CustomStateSet] interface is an alias for [CustomStateSet.values].",
+ "size": "\n\nThe **`size`** property of the [CustomStateSet] interface returns the number of values in the `CustomStateSet`.",
+ "values": "\n\nThe **`values()`** method of the [CustomStateSet] interface returns a new iterator object that yields the values for each element in the `CustomStateSet` object in insertion order."
+ }
+ },
+ "datatransfer": {
+ "docs": "\n\nThe **`DataTransfer`** object is used to hold the data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types. For more information about drag and drop, see [HTML Drag and Drop API](/en-US/docs/Web/API/HTML_Drag_and_Drop_API).\n\nThis object is available from the [DragEvent.dataTransfer] property of all [DragEvent].",
+ "properties": {
+ "addelement": "\n\nThe **`DataTransfer.addElement()`** method sets the drag source\nto the given element. This element will be the element to which [HTMLElement/drag_event] and\n[HTMLElement/dragend_event] events are fired, and not the default target (the node that was\ndragged).\n\n> **Note:** This method is Firefox-specific.",
+ "cleardata": "\n\nThe **`DataTransfer.clearData()`** method removes the drag\noperation's [DataTransfer] for the given type. If data for the\ngiven type does not exist, this method does nothing.\n\nIf this method is called with no arguments or the format is an empty\nstring, the data of all types will be removed.\n\nThis method does _not_ remove files from the drag operation, so it's possible\nfor there still to be an entry with the type `\"Files\"` left in the object's\n[DataTransfer.types] list if there are any files included in the drag.\n\n> **Note:** This method can only be used in the handler for the [HTMLElement/dragstart_event] event,\n> because that's the only time the drag operation's data store is writable.",
+ "dropeffect": "\n\nThe **`DataTransfer.dropEffect`** property controls the\nfeedback (typically visual) the user is given during a drag and drop operation. It will\naffect which cursor is displayed while dragging. For example, when the user hovers over\na target drop element, the browser's cursor may indicate which type of operation will\noccur.\n\nWhen the [DataTransfer] object is created, `dropEffect` is set\nto a string value. On getting, it returns its current value. On setting, if the new\nvalue is one of the values listed below, then the property's current value will be set\nto the new value and other values will be ignored.\n\nFor the [HTMLElement/dragenter_event] and [HTMLElement/dragover_event] events,\n`dropEffect` will be initialized based on what action the user is requesting.\nHow this is determined is platform specific, but typically the user can press modifier\nkeys such as the alt key to adjust the desired action. Within event handlers for\n[HTMLElement/dragenter_event] and [HTMLElement/dragover_event] events, `dropEffect` should\nbe modified if a different action is desired than the action that the user is\nrequesting.\n\nFor the [HTMLElement/drop_event] and [HTMLElement/dragend_event] events, `dropEffect` will\nbe set to the action that was desired, which will be the value `dropEffect`\nhad after the last [HTMLElement/dragenter_event] or [HTMLElement/dragover_event] event. In a\n[HTMLElement/dragend_event] event, for instance, if the desired dropEffect is \"move\", then the\ndata being dragged should be removed from the source.",
+ "effectallowed": "\n\nThe **`DataTransfer.effectAllowed`** property specifies the\neffect that is allowed for a drag operation. The _copy_ operation is used to\nindicate that the data being dragged will be copied from its present location to the\ndrop location. The _move_ operation is used to indicate that the data being\ndragged will be moved, and the _link_ operation is used to indicate that some\nform of relationship or connection will be created between the source and drop\nlocations.\n\nThis property should be set in the [HTMLElement/dragstart_event] event to set the desired drag\neffect for the drag source. Within the [HTMLElement/dragenter_event] and [HTMLElement/dragover_event]\nevent handlers, this property will be set to whatever value was assigned during the\n[HTMLElement/dragstart_event] event, thus `effectAllowed` may be used to determine\nwhich effect is permitted.\n\nAssigning a value to `effectAllowed` in events other than\n[HTMLElement/dragstart_event] has no effect.",
+ "files": "\n\nThe **`files`** read-only property of [`DataTransfer`](/en-US/docs/Web/API/DataTransfer) objects is a [FileList] in the drag operation. If the operation includes no files, the list is empty.\n\nThis feature can be used to drag files from a user's desktop to the browser.\n\n> **Note:** The `files` property of [`DataTransfer`](/en-US/docs/Web/API/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](https://html.spec.whatwg.org/multipage/dnd.html#the-drag-data-store).",
+ "getdata": "\n\nThe **`DataTransfer.getData()`**\nmethod retrieves drag data (as a string) for the specified type.\nIf the drag operation does not include data, this method returns an empty\nstring.\n\nExample data types are `text/plain` and `text/uri-list`.",
+ "items": "\n\nThe read-only [DataTransfer] property `items` property is a\n[DataTransferItemList] of the [DataTransferItem] in a drag operation. The list includes one item for each item in the\noperation and if the operation had no items, the list is empty.",
+ "setdata": "\n\nThe **`DataTransfer.setData()`** method sets the drag\noperation's [DataTransfer] to the specified data and type. If\ndata for the given type does not exist, it is added at the end of the drag data store,\nsuch that the last item in the [DataTransfer.types] list will be\nthe new type. If data for the given type already exists, the existing data is replaced\nin the same position. That is, the order of the\n[DataTransfer.types] list is not changed when replacing data of the\nsame type.\n\nExample data types are `text/plain` and `text/uri-list`.",
+ "setdragimage": "\n\nWhen a drag occurs, a translucent image is generated from the drag target (the element\nthe [HTMLElement/dragstart_event] event is fired at), and follows the mouse pointer during the\ndrag. This image is created automatically, so you do not need to create it yourself.\nHowever, if a custom image is desired, the\n**`DataTransfer.setDragImage()`** method can be used to set the\ncustom image to be used. The image will typically be an `img` element\nbut it can also be a `canvas` or any other visible element.\n\nThe method's `x` and `y` coordinates define how the image should\nappear relative to the mouse pointer. These coordinates define the offset into the image\nwhere the mouse cursor should be. For instance, to display the image so that the pointer\nis at its center, use values that are half the width and height of the image.\n\nThis method must be called in the [HTMLElement/dragstart_event] event handler.",
+ "types": "\n\nThe **`DataTransfer.types`** read-only property returns the available types\nthat exist in the [DataTransfer.items]."
+ }
+ },
+ "datatransferitem": {
+ "docs": "\n\nThe **`DataTransferItem`** object represents one drag data item. During a _drag operation_, each [DragEvent] has a [DragEvent.dataTransfer] property which contains a [DataTransferItemList] of drag data items. Each item in the list is a `DataTransferItem` object.\n\nThis interface has no constructor.",
+ "properties": {
+ "getasfile": "\n\nIf the item is a file, the **`DataTransferItem.getAsFile()`**\nmethod returns the drag data item's [File] object. If the item is not a\nfile, this method returns `null`.",
+ "getasfilesystemhandle": "\n\nThe **`getAsFileSystemHandle()`** method of the\n[DataTransferItem] interface returns a [FileSystemFileHandle]\nif the dragged item is a file, or a [FileSystemDirectoryHandle] if the\ndragged item is a directory.",
+ "getasstring": "\n\nThe **`DataTransferItem.getAsString()`** method invokes the\ngiven callback with the drag data item's string data as the argument if the item's\n[DataTransferItem.kind] is a _Plain unicode string_ (i.e.\n`kind` is `string`).",
+ "kind": "\n\nThe read-only **`DataTransferItem.kind`** property returns a\n[DataTransferItem] representing the _drag data item_ kind: some text\nor some file.",
+ "type": "\n\nThe read-only **`DataTransferItem.type`** property returns the\ntype (format) of the [DataTransferItem] object representing the drag data\nitem. The `type` is a Unicode string generally given by a MIME type, although\na MIME type is not required.\n\nSome example types are: `text/plain` and `text/html`.",
+ "webkitgetasentry": "\n\nIf the item described by the [DataTransferItem] is a file, `webkitGetAsEntry()` returns a [FileSystemFileEntry] or [FileSystemDirectoryEntry] representing it. If the item isn't a file, `null` is returned.\n\n> **Note:** This function is implemented as `webkitGetAsEntry()` in non-WebKit browsers including Firefox at this time; it may be renamed to\n> `getAsEntry()` in the future, so you should code defensively, looking for both."
+ }
+ },
+ "datatransferitemlist": {
+ "docs": "\n\nThe **`DataTransferItemList`** object is a list of [DataTransferItem] objects representing items being dragged. During a _drag operation_, each [DragEvent] has a [DragEvent.dataTransfer] property and that property is a `DataTransferItemList`.\n\nThe individual items can be accessed using the [bracket notation](/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors#bracket_notation) `[]`.\n\nThis interface has no constructor.",
+ "properties": {
+ "add": "\n\nThe **`DataTransferItemList.add()`** method creates a new\n[DataTransferItem] using the specified data and adds it to the drag data\nlist. The item may be a [File] or a string of a\ngiven type. If the item is successfully added to the list, the newly-created\n[DataTransferItem] object is returned.",
+ "clear": "\n\nThe [DataTransferItemList] method\n**`clear()`** removes all [DataTransferItem]\nobjects from the drag data items list, leaving the list empty.\n\nThe drag data store in which this list is kept is only writable while handling the\n[HTMLElement/dragstart_event] event. While handling [HTMLElement/drop_event], the drag data store is\nin read-only mode, and this method silently does nothing. No exception is thrown.",
+ "length": "\n\nThe read-only **`length`** property of the\n[DataTransferItemList] interface returns the number of items currently in\nthe drag item list.",
+ "remove": "\n\nThe **`DataTransferItemList.remove()`** method removes the\n[DataTransferItem] at the specified index from the list. If the index is\nless than zero or greater than one less than the length of the list, the list will not\nbe changed."
+ }
+ },
+ "decompressionstream": {
+ "docs": "\n\nThe **`DecompressionStream`** interface of the [Compression Streams API] is an API for decompressing a stream of data.",
+ "properties": {
+ "readable": "\n\nThe **`readable`** read-only property of the [DecompressionStream] interface returns a [ReadableStream].",
+ "writable": "\n\nThe **`writable`** read-only property of the [DecompressionStream] interface returns a [WritableStream]."
+ }
+ },
+ "dedicatedworkerglobalscope": {
+ "docs": "\n\nThe **`DedicatedWorkerGlobalScope`** object (the [Worker] global scope) is accessible through the [WorkerGlobalScope.self] keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are listed in the [JavaScript Reference](/en-US/docs/Web/JavaScript/Reference). See also: [Functions available to workers](/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers).\n\n",
+ "properties": {
+ "cancelanimationframe": "\n\nThe **`cancelAnimationFrame()`** method of the [DedicatedWorkerGlobalScope] interface cancels an animation frame request previously scheduled through a call to [DedicatedWorkerGlobalScope.requestAnimationFrame].\n\nCalling 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].",
+ "close": "\n\nThe **`close()`** method of the [DedicatedWorkerGlobalScope] interface discards any tasks queued in the `DedicatedWorkerGlobalScope`'s event loop, effectively closing this particular scope.",
+ "message_event": "\n\nThe `message` event is fired on a [DedicatedWorkerGlobalScope] object when the worker receives a message from its parent (i.e. when the parent sends a message using [`Worker.postMessage()`](/en-US/docs/Web/API/Worker/postMessage)).\n\nThis event is not cancellable and does not bubble.",
+ "messageerror_event": "\n\nThe `messageerror` event is fired on a [DedicatedWorkerGlobalScope] object when it receives a message that can't be deserialized.\n\nThis event is not cancellable and does not bubble.",
+ "name": "\n\nThe **`name`** read-only property of the\n[DedicatedWorkerGlobalScope] interface returns the name that the\n[Worker] was (optionally) given when it was created. This is the name that\nthe [Worker.Worker] constructor can pass to get a reference to\nthe [DedicatedWorkerGlobalScope].",
+ "postmessage": "\n\nThe **`postMessage()`** method of the [DedicatedWorkerGlobalScope] interface sends a message to the main thread that spawned it.\n\nThis accepts a data parameter, which contains data to copy from the worker to the main thread.\nThe data may be any value or JavaScript object handled by the [structured clone](/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) algorithm, which includes cyclical references.\n\nThe method also accepts an optional array of [transferable objects](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects) to _transfer_ to the main thread;\nUnlike the data parameter transferred objects are no longer usable in the worker thread.\n(Where possible, objects are transferred using a high performance zero-copy operation).\n\nThe main scope that spawned the worker can send back information to the thread that spawned it using the [Worker.postMessage] method.",
+ "requestanimationframe": "\n\nThe **`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\nThe 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\nA 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:** Be 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\nCalling 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].",
+ "rtctransform_event": "\n\nThe **`rtctransform`** event is fired at a worker's [DedicatedWorkerGlobalScope] object when an encoded video or audio frame has been queued for processing by a [WebRTC API/Using Encoded Transforms].\n\nThe event's [RTCTransformEvent.transformer] property returns a [RTCRtpScriptTransformer] that exposes the [ReadableStream] on which the frame is queued, and a [WritableStream] where the frame can be written to inject it back into the WebRTC pipeline.\n\nThis event is not cancellable and does not bubble.\n\n"
+ }
+ },
+ "delaynode": {
+ "docs": "\n\nThe **`DelayNode`** interface represents a [delay-line](https://en.wikipedia.org/wiki/Digital_delay_line); an [AudioNode] audio-processing module that causes a delay between the arrival of an input data and its propagation to the output.\n\nA `DelayNode` always has exactly one input and one output, both with the same amount of channels.\n\n\n\nWhen creating a graph that has a cycle, it is mandatory to have at least one `DelayNode` in the cycle, or the nodes taking part in the cycle will be muted.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code> (not used in the default count mode)</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "delaytime": "\n\nThe `delayTime` property of the [DelayNode] interface is an [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) [AudioParam] representing the amount of delay to apply.\n\n`delayTime` is expressed in seconds, its minimal value is `0`, and its maximum value is defined by the `maxDelayTime` argument of the [BaseAudioContext.createDelay] method that created it.\n\n> **Note:** Though the [AudioParam] returned is read-only, the value it represents is not."
+ }
+ },
+ "deprecationreportbody": {
+ "docs": "\n\nThe `DeprecationReportBody` interface of the [Reporting API](/en-US/docs/Web/API/Reporting_API) represents the body of a deprecation report.\n\nA deprecation report is generated when a deprecated feature (for example a deprecated API method) is used on a document being observed by a [ReportingObserver]. In addition to the support of this API, receiving useful deprecation warnings relies on browser vendors adding these warnings for deprecated features.\n\n",
+ "properties": {
+ "anticipatedremoval": "\n\nThe **`anticipatedRemoval`** read-only property of the [DeprecationReportBody] interface returns the date that the browser version which removes the feature will ship. This value can be used to prioritize warnings. If this property returns `null` because the date is unknown, then the deprecation should be considered low priority.",
+ "columnnumber": "\n\nThe **`columnNumber`** read-only property of the [DeprecationReportBody] interface returns the line in the source file in which the deprecated feature was used.\n\n> **Note:** This property is most useful alongside [DeprecationReportBody.sourceFile] and [DeprecationReportBody.lineNumber] as it enables the location of the column in that file and line where the error occurred.",
+ "id": "\n\nThe **`id`** read-only property of the [DeprecationReportBody] interface returns a string representing the feature or API that is deprecated. This can be used to group or count related reports.",
+ "linenumber": "\n\nThe **`lineNumber`** read-only property of the [DeprecationReportBody] interface returns the line in the source file in which the deprecated feature was used.\n\n> **Note:** This property is most useful alongside [DeprecationReportBody.sourceFile] as it enables the location of the line in that file where the error occurred.",
+ "message": "\n\nThe **`message`** read-only property of the [DeprecationReportBody] interface returns a human-readable description of the deprecation. This typically matches the message a browser will display in its DevTools console regarding a deprecated feature.",
+ "sourcefile": "\n\nThe **`sourceFile`** read-only property of the [DeprecationReportBody] interface returns the path to the source file where the deprecated feature was used.\n\n> **Note:** This property can be used with [DeprecationReportBody.lineNumber] and [DeprecationReportBody.columnNumber] to locate the column and line in the file where the error occurred.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [DeprecationReportBody] interface is a _serializer_, and returns a JSON representation of the `InterventionReportBody` object."
+ }
+ },
+ "devicemotionevent": {
+ "docs": "\n\nThe **`DeviceMotionEvent`** interface of the [Device Orientation Events] provides web developers with information about the speed of changes for the device's position and orientation.\n\n> **Warning:** Currently, Firefox and Chrome do not handle the coordinates the same way. Take care about this while using them.\n\n",
+ "properties": {
+ "acceleration": "\n\nThe **`acceleration`** read-only property of the [DeviceMotionEvent] interface returns the amount of acceleration recorded by\nthe device, in [meters per second squared (m/s²)](https://en.wikipedia.org/wiki/Meter_per_second_squared).\nThe acceleration value does not include the effect of\nthe gravity force, in contrast to [DeviceMotionEvent.accelerationIncludingGravity].\n\n> **Note:** If the hardware doesn't know how to remove gravity from the\n> acceleration data, this value may not be present in the\n> [DeviceMotionEvent]. In this situation, you'll need to use\n> [DeviceMotionEvent.accelerationIncludingGravity] instead.",
+ "accelerationincludinggravity": "\n\nThe **`accelerationIncludingGravity`** read-only property of the [DeviceMotionEvent] interface returns the\namount of acceleration recorded by the device, in [meters per second squared (m/s²)](https://en.wikipedia.org/wiki/Meter_per_second_squared). 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\n[g-force](https://en.wikipedia.org/wiki/G-Force). In practice, this value represents\nthe raw data measured by an [accelerometer](https://en.wikipedia.org/wiki/Accelerometer).\n\nThis 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.",
+ "interval": "\n\nThe **`interval`** read-only property of the [DeviceMotionEvent] interface returns the interval, in milliseconds, at which data is obtained from the underlying\nhardware. You can use this to determine the granularity of motion events.",
+ "rotationrate": "\n\nThe **`rotationRate`** read-only property of the [DeviceMotionEvent] interface returns the rate at which the device is rotating around each of its axes in degrees per\nsecond.\n\n> **Note:** If the hardware isn't capable of providing this\n> information, this property returns `null`."
+ }
+ },
+ "devicemotioneventacceleration": {
+ "docs": "\n\nThe **`DeviceMotionEventAcceleration`** interface of the [Device Orientation Events] provides information about the amount of acceleration the device is experiencing along all three axes.",
+ "properties": {
+ "x": "\n\nThe **`x`** read-only property of the [DeviceMotionEventAcceleration] interface indicates the amount of acceleration that occurred along the X\naxis in a [`DeviceMotionEventAcceleration`](/en-US/docs/Web/API/DeviceMotionEventAcceleration)\nobject.",
+ "y": "\n\nThe **`y`** read-only property of the [DeviceMotionEventAcceleration] interface indicates the amount of acceleration that occurred along the Y\naxis in a [`DeviceMotionEventAcceleration`](/en-US/docs/Web/API/DeviceMotionEventAcceleration)\nobject.",
+ "z": "\n\nThe **`z`** read-only property of the [DeviceMotionEventAcceleration] interface indicates the amount of acceleration that occurred along the Z\naxis in a [`DeviceMotionEventAcceleration`](/en-US/docs/Web/API/DeviceMotionEventAcceleration)\nobject."
+ }
+ },
+ "devicemotioneventrotationrate": {
+ "docs": "\n\nA **`DeviceMotionEventRotationRate`** interface of the [Device Orientation Events] provides information about the rate at which the device is rotating around all three axes.",
+ "properties": {
+ "alpha": "\n\nThe **`alpha`** read-only property of the [DeviceMotionEventRotationRate] interface indicates the rate of rotation around the Z axis, in degrees per second.",
+ "beta": "\n\nThe **`beta`** read-only property of the [DeviceMotionEventRotationRate] interface indicates the rate of rotation around the X axis, in degrees per second.",
+ "gamma": "\n\nThe **`gamma`** read-only property of the [DeviceMotionEventRotationRate] interface indicates the rate of rotation around the Y axis, in degrees per second."
+ }
+ },
+ "deviceorientationevent": {
+ "docs": "\n\nThe **`DeviceOrientationEvent`** interface of the [Device Orientation Events] provides web developers with information from the physical orientation of the device running the web page.\n\n",
+ "properties": {
+ "absolute": "\n\nThe **`absolute`** read-only property of the [DeviceOrientationEvent] interface indicates whether or not the device is providing orientation data absolutely (that is,\nin reference to the Earth's coordinate frame) or using some arbitrary frame determined\nby the device.\nSee [Orientation and motion data explained](/en-US/docs/Web/API/Device_orientation_events/Orientation_and_motion_data_explained) for details.",
+ "alpha": "\n\nThe **`alpha`** read-only property of the [DeviceOrientationEvent] interface returns the rotation of the device around the Z axis; that is, the number of degrees by\nwhich the device is being twisted around the center of the screen.\nSee [Orientation and motion data explained](/en-US/docs/Web/API/Device_orientation_events/Orientation_and_motion_data_explained) for details.",
+ "beta": "\n\nThe **`beta`** read-only property of the [DeviceOrientationEvent] interface returns the rotation of the device around the X axis; that is, the number of degrees,\nranged between -180 and 180, by which the device is tipped forward or backward.\nSee [Orientation and motion data explained](/en-US/docs/Web/API/Device_orientation_events/Orientation_and_motion_data_explained) for details.",
+ "gamma": "\n\nThe **`gamma`** read-only property of the [DeviceOrientationEvent] interface returns the rotation of the device around the Y axis; that is, the number of degrees,\nranged between `-90` and `90`, by which the device is tilted left\nor right.\nSee [Orientation and motion data explained](/en-US/docs/Web/API/Device_orientation_events/Orientation_and_motion_data_explained) for details."
+ }
+ },
+ "directoryentrysync": {
+ "docs": "\n\nThe `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:** This interface is deprecated and is no more on the standard track.\n> _Do not use it anymore._ Use the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API) instead."
+ },
+ "directoryreadersync": {
+ "docs": "\n\nThe `DirectoryReaderSync` interface lets you read the entries in a directory.\n\n> **Warning:** This interface is deprecated and is no more on the standard track.\n> _Do not use it anymore._ Use the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API) instead."
+ },
+ "document": {
+ "docs": "\n\nThe **`Document`** interface represents any web page loaded in the browser and serves as an entry point into the web page's content, which is the [DOM tree](/en-US/docs/Web/API/Document_object_model/Using_the_Document_Object_Model#what_is_a_dom_tree).\n\nThe DOM tree includes elements such as `body` and `table`, among [many others](/en-US/docs/Web/HTML/Element). It provides functionality globally to the document, like how to obtain the page's URL and create new elements in the document.\n\nThe `Document` interface describes the common properties and methods for any kind of document. Depending on the document's type (e.g. [HTML](/en-US/docs/Web/HTML), [XML](/en-US/docs/Web/XML), SVG, …), a larger API is available: HTML documents, served with the `\"text/html\"` content type, also implement the [HTMLDocument] interface, whereas XML and SVG documents implement the [XMLDocument] interface.",
+ "properties": {
+ "activeelement": "\n\nThe **`activeElement`** read-only property\nof the [Document] interface returns the [Element] within the DOM that currently has focus.\n\nOften `activeElement` will return a [HTMLInputElement] or\n[HTMLTextAreaElement] object if it has the text selection at the time. If\nso, you can get more detail by using the object's `selectionStart` and `selectionEnd` properties.\nOther times the focused element might be a `select` element (menu) or\nan `input` element.\n\nTypically a user can press the tab key to move the focus around the page among\nfocusable elements, and use the space bar to activate one (that is, to press a button or\ntoggle a radio button). Which elements are focusable varies depending on the platform\nand the browser's current configuration. For example, on macOS systems, elements that\naren't text input elements are not typically focusable by default.\n\n> **Note:** Focus (which element is receiving user input events) is not\n> the same thing as selection (the currently highlighted part of the document). You can\n> get the current selection using [window.getSelection].",
+ "adoptedstylesheets": "\n\nThe **`adoptedStyleSheets`** property of the [Document] interface is used for setting an array of constructed stylesheets to be used by the document.\n\n> **Note:** A constructed stylesheet is a stylesheet created programmatically using the [`CSSStyleSheet()` constructor](/en-US/docs/Web/API/CSSStyleSheet/CSSStyleSheet) (as compared to one created by a user-agent when importing a stylesheet from a script, imported using `style` and , or linked to via `link`).\n\nThe same constructed stylesheets can also be shared with one or more [ShadowRoot] instances using the [`ShadowRoot.adoptedStyleSheets`](/en-US/docs/Web/API/ShadowRoot/adoptedStyleSheets) property.\nChanging an adopted stylesheet will affect all the objects that adopt it.\n\nStylesheets in the property are evaluated along with the document's other stylesheets using the [CSS cascade algorithm](/en-US/docs/Web/CSS/Cascade).\nWhere the resolution of rules considers stylesheet order, `adoptedStyleSheets` are assumed to be ordered after those in [`Document.styleSheets`](/en-US/docs/Web/API/Document/styleSheets).\n\nOnly stylesheets created using the [`CSSStyleSheet()` constructor](/en-US/docs/Web/API/CSSStyleSheet/CSSStyleSheet) within the context of the current [Document] may be adopted.",
+ "adoptnode": "\n\n**`Document.adoptNode()`** transfers a from another [Document] into the method's\ndocument. The adopted node and its subtree are removed from their original document (if\nany), and their [Node.ownerDocument] is changed to the\ncurrent document. The node can then be inserted into the current document.",
+ "afterscriptexecute_event": "\n\nThe `afterscriptexecute` event fires when a static `script` element finishes executing its script. It does not fire if the element is added dynamically, such as with [Node.appendChild].",
+ "alinkcolor": "\n\nReturns or sets the color of an active link in the document body. A link is active\nduring the time between `mousedown` and `mouseup` events.",
+ "all": "\n\nThe [Document] interface's read-only **`all`** property returns an [HTMLAllCollection] rooted at the document node.\n\nRather than using `document.all` to return an [HTMLAllCollection] of all the document's elements in document order, you can use [Document.querySelectorAll] to return a [NodeList] of all the document's elements in document order:\n\n```js\nconst allElements = document.querySelectorAll(\"*\");\n```",
+ "anchors": " \n\nThe **`anchors`** read-only property of the\n[Document] interface returns a list of all of the anchors in the document.",
+ "append": "\n\nThe **`Document.append()`** method\ninserts a set of [Node] objects or string objects after\nthe last child of the document. String objects\nare inserted as equivalent [Text] nodes.\n\nThis method appends a child to a `Document`. To append to an arbitrary element in the tree, see [Element.append].",
+ "applets": " \n\nThe **`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:** Support for the `<applet>` element has been removed by all browsers. Therefore, calling `document.applets` always\n> returns an empty collection.",
+ "beforescriptexecute_event": "\n\nThe `beforescriptexecute` event fires when a static `script` is about to start executing. It does not fire if the element is added dynamically, such as with [Node.appendChild].",
+ "bgcolor": " \n\nThe deprecated `bgColor` property gets or sets the background color of the\ncurrent document.",
+ "body": "\n\nThe **`Document.body`** property represents the\n`body` or `frameset` node of the current document, or\n`null` if no such element exists.",
+ "caretpositionfrompoint": "\n\nThe **`caretPositionFromPoint()`**\nmethod of the [Document] interface returns a\n[CaretPosition] object, containing the DOM node, along with the caret and\ncaret's character offset within that node.",
+ "caretrangefrompoint": "\n\nThe **`caretRangeFromPoint()`** method of the\n[Document] interface returns a [Range] object for the document\nfragment under the specified coordinates.\n\nThis method is the WebKit-proprietary implementation of the [Document.caretPositionFromPoint] method.",
+ "characterset": "\n\nThe **`Document.characterSet`**\nread-only property returns the [character encoding](/en-US/docs/Glossary/Character_encoding) of the\ndocument that it's currently rendered with.\n\n> **Note:** A \"character set\" and a \"character encoding\" are related, but different. Despite the\n> name of this property, it returns the _encoding_.\n\nUsers can override the developer-specified encoding inside the [Content-Type](/en-US/docs/Web/HTTP/Headers/Content-Type) header or inline\nlike `<meta charset=\"utf-8\">`, such as with Firefox's <kbd>View → Text\nEncoding</kbd> menu. This override is provided to fix incorrect developer-specified\nencodings that result in [garbled text](https://en.wikipedia.org/wiki/Mojibake).\n\n> **Note:** The properties `document.charset` and `document.inputEncoding`\n> are legacy aliases for `document.characterSet`. Do not use them any more.",
+ "childelementcount": "\n\nThe **`Document.childElementCount`** read-only property\nreturns the number of child elements of the document.\n\nTo get the number of children of a specific element, see [Element.childElementCount].",
+ "children": "\n\nThe read-only **`children`** property returns a live [HTMLCollection]\nwhich contains all of the child [Element] of the document upon which it was called.\n\nFor HTML documents, this is usually only the root `<html>` element.\n\nSee [Element.children] for child elements of specific HTML elements within the document.",
+ "clear": "\n\nThe **`Document.clear()`** method does nothing, but doesn't raise any error.",
+ "close": "\n\nThe **`Document.close()`** method finishes writing to a\ndocument, opened with [Document.open].",
+ "compatmode": "\n\nThe **`Document.compatMode`** read-only property indicates\nwhether the document is rendered in [Quirks mode](/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode) or\nStandards mode.",
+ "contenttype": "\n\nThe **`Document.contentType`** read-only property returns the\nMIME type that the document is being rendered as. This may come from HTTP headers or\nother sources of MIME information, and might be affected by automatic type conversions\nperformed by either the browser or extensions.\n\n> **Note:** This property is unaffected by `meta`\n> elements.",
+ "cookie": "\n\nThe [Document] property `cookie` lets you read and write [cookies](/en-US/docs/Web/HTTP/Cookies) associated with the document.\nIt serves as a getter and setter for the actual values of the cookies.",
+ "copy_event": "\n\nThe **`copy`** event fires when the user initiates a copy action through the browser's user interface.\n\nThe original target for this event is the [Element] that was the intended target of the copy action. You can listen for this event on the [Document] interface to handle it in the capture or bubbling phases. For full details on this event please see the page on the [Element: copy event](/en-US/docs/Web/API/Element/copy_event).",
+ "createattribute": "\n\nThe **`Document.createAttribute()`** method creates a new\nattribute node, and returns it. The object created is a node implementing the\n[Attr] interface. The DOM does not enforce what sort of attributes can be\nadded to a particular element in this manner.\n\n> **Note:** The string given in parameter is converted to lowercase.",
+ "createattributens": "\n\nThe **`Document.createAttributeNS()`** method creates a new attribute node\nwith the specified namespace URI and qualified name, and returns it.\nThe object created is a node implementing the\n[Attr] interface. The DOM does not enforce what sort of attributes can be\nadded to a particular element in this manner.",
+ "createcdatasection": "\n\n**`createCDATASection()`** creates a new CDATA section node,\nand returns it.",
+ "createcomment": "\n\n**`createComment()`** creates a new comment node, and returns\nit.",
+ "createdocumentfragment": "\n\nCreates a new empty [DocumentFragment] into which\nDOM nodes can be added to build an offscreen DOM tree.",
+ "createelement": "\n\nIn an [HTML](/en-US/docs/Web/HTML) document, the **`document.createElement()`** method creates the HTML element specified by _tagName_, or an [HTMLUnknownElement] if _tagName_ isn't recognized.",
+ "createelementns": "\n\nCreates an element with the specified namespace URI and qualified name.\n\nTo create an element without specifying a namespace URI, use the\n[Document.createElement] method.",
+ "createevent": "\n\n> **Warning:** Many methods used with `createEvent`, such as `initCustomEvent`, are deprecated.\n> Use [event constructors](/en-US/docs/Web/API/CustomEvent) instead.\n\nCreates an [event](/en-US/docs/Web/API/Event) of the type specified. The\nreturned object should be first initialized and can then be passed to\n[EventTarget.dispatchEvent].",
+ "createexpression": "\n\nThis method compiles an [XPathExpression] which can then be used for (repeated) evaluations.\n\nYou must call this method on the same document that you run the expression against.",
+ "createnodeiterator": "\n\nThe **`Document.createNodeIterator()`** method returns a new [`NodeIterator`](/en-US/docs/Web/API/NodeIterator) object.",
+ "creatensresolver": "\n\nCreates an `XPathNSResolver` which resolves namespaces with respect to the definitions in scope for a specified node.",
+ "createprocessinginstruction": "\n\n`createProcessingInstruction()` generates a new [processing instruction](/en-US/docs/Web/API/ProcessingInstruction) node and returns it.\n\nThe new node usually will be inserted into an XML document in order to accomplish anything with it, such as with [node.insertBefore].",
+ "createrange": "\n\nThe **`Document.createRange()`** method returns a new\n[Range] object.",
+ "createtextnode": "\n\nCreates a new [Text] node. This method can be used to escape HTML\ncharacters.",
+ "createtouch": "\n\nThe **`Document.createTouch()`** method creates and returns a new [Touch] object.\n\n> **Note:** Use the [TouchEvent.TouchEvent] constructor.",
+ "createtouchlist": "\n\nThe **`Document.createTouchList()`** method creates and returns a new [TouchList] object.",
+ "createtreewalker": "\n\nThe **`Document.createTreeWalker()`** creator method returns a newly created [TreeWalker] object.",
+ "currentscript": "\n\nThe **`Document.currentScript`** property returns the `script` element whose script is currently being processed and [isn't a JavaScript module](https://github.com/whatwg/html/issues/997). (For modules use [`import.meta`](/en-US/docs/Web/JavaScript/Reference/Operators/import.meta) instead.)\n\nIt's important to note that this will not reference the `script`\nelement if the code in the script is being called as a callback or event handler; it\nwill only reference the element while it's initially being processed.",
+ "cut_event": "\n\nThe **`cut`** event fires when the user initiates a cut action through the browser's user interface.\n\nThe original target for this event is the [Element] that was the intended target of the cut action. You can listen for this event on the [Document] interface to handle it in the capture or bubbling phases. For full details on this event please see the page on the [Element: cut event](/en-US/docs/Web/API/Element/cut_event).",
+ "defaultview": "\n\nIn browsers, **`document.defaultView`** returns the\n[Window] object associated with , or `null` if none is available.\n\nThis property is read-only.",
+ "designmode": "\n\n**`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.",
+ "dir": "\n\nThe **`Document.dir`** property is a string\nrepresenting the directionality of the text of the document, whether left to right\n(default) or right to left. Possible values are `'rtl'`, right to left, and\n`'ltr'`, left to right.",
+ "doctype": "\n\nReturns the Document Type Declaration (DTD) associated with current document. The\nreturned object implements the [DocumentType] interface. Use\n[DOMImplementation.createDocumentType] to create a\n`DocumentType`.\n\n- `doctype` is a read-only property.",
+ "documentelement": "\n\n**`Document.documentElement`** returns the\n[Element] that is the root element of the [document] (for\nexample, the `html` element for HTML documents).",
+ "documenturi": "\n\nThe **`documentURI`** read-only property of the\n[Document] interface returns the document location as a string.",
+ "domain": " \n\nThe **`domain`** property of the [Document]\ninterface gets/sets the domain portion of the of the current\ndocument, as used by the [same-origin policy](/en-US/docs/Web/Security/Same-origin_policy).",
+ "domcontentloaded_event": "\n\nThe **`DOMContentLoaded`** event fires when the HTML document has been completely parsed, and all deferred scripts ([`<script defer src=\"…\">`](/en-US/docs/Web/HTML/Element/script#defer) and [`<script type=\"module\">`](/en-US/docs/Web/HTML/Element/script#module)) have downloaded and executed. It doesn't wait for other things like images, subframes, and async scripts to finish loading.\n\n`DOMContentLoaded` 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.\n\nA different event, [Window/load_event], should be used only to detect a fully-loaded page. It is a common mistake to use `load` where `DOMContentLoaded` would be more appropriate.\n\nThis event is not cancelable.",
+ "elementfrompoint": "\n\nThe **`elementFromPoint()`**\nmethod, available on the [Document] object, returns the topmost [Element] at the specified coordinates\n(relative to the viewport).\n\nIf the element at the specified point belongs to another document (for example, the\ndocument of an `iframe`), that document's parent element is returned\n(the `<iframe>` itself). If the element at the given point is anonymous\nor XBL generated content, such as a textbox's scroll bars, then the first non-anonymous\nancestor element (for example, the textbox) is returned.\n\nElements with set to `none` will be ignored,\nand the element below it will be returned.\n\nIf the method is run on another document (like an `<iframe>`'s\nsubdocument), the coordinates are relative to the document where the method is being\ncalled.\n\nIf the specified point is outside the visible bounds of the document or either\ncoordinate is negative, the result is `null`.\n\nIf you need to find the specific position inside the element, use\n[Document.caretPositionFromPoint].",
+ "elementsfrompoint": "\n\nThe **`elementsFromPoint()`** method\nof the [Document] interface returns an array of all elements\nat the specified coordinates (relative to the viewport).\nThe elements are ordered from the topmost to the bottommost box of the viewport.\n\nIt operates in a similar way to the [Document.elementFromPoint] method.",
+ "embeds": "\n\nThe **`embeds`** read-only property of the\n[Document] interface returns a list of the embedded\n`embed` elements within the current document.",
+ "enablestylesheetsforset": "\n\nEnables 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).",
+ "evaluate": "\n\nThe **`evaluate()`** method of the [Document] interface selects elements based on the [XPath](/en-US/docs/Web/XPath)\nexpression given in parameters.\n\nXPath expressions can be evaluated on both HTML and XML documents.",
+ "execcommand": "\n\nThe **`execCommand`** method implements multiple different commands. Some of them provide access to the clipboard, while others are for editing [form inputs](/en-US/docs/Web/HTML/Element/input), [`contenteditable`](/en-US/docs/Web/HTML/Global_attributes/contenteditable) elements or entire documents (when switched to [design mode](/en-US/docs/Web/API/Document/designMode)).\n\nTo access the clipboard, the newer [Clipboard API](/en-US/docs/Web/API/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\nMost commands affect the document's [selection](/en-US/docs/Web/API/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:** Modifications performed by `execCommand()` may or may not trigger [Element/beforeinput_event] and [Element/input_event] 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](https://bugzil.la/1634262).",
+ "exitfullscreen": "\n\nThe [Document] method\n**`exitFullscreen()`** requests that the element on this\ndocument which is currently being presented in fullscreen mode be taken out of\nfullscreen mode, restoring the previous state of the screen. This usually\nreverses the effects of a previous call to [Element.requestFullscreen].",
+ "exitpictureinpicture": "\n\nThe **`exitPictureInPicture()`** method of the [Document] interface\nrequests that a video contained\nin this document, which is currently floating, be taken out of picture-in-picture\nmode, restoring the previous state of the screen. This usually reverses the\neffects of a previous call to [HTMLVideoElement.requestPictureInPicture].",
+ "exitpointerlock": "\n\nThe **`exitPointerLock()`** method of the [Document] interface asynchronously releases a pointer lock previously requested through [Element.requestPointerLock].\n\n> **Note:** While the **`exitPointerLock()`** method is called on the document, the **`requestPointerLock()`** method is called on an element.\n\nTo track the success or failure of the request, it is necessary to listen for the [Document/pointerlockchange_event] and [Document/pointerlockerror_event] events.",
+ "featurepolicy": "\n\nThe **`featurePolicy`** read-only property of the [Document] interface returns the [FeaturePolicy] interface which provides a simple API for inspecting the [Permissions Policies](/en-US/docs/Web/HTTP/Permissions_Policy) applied to a specific document.",
+ "fgcolor": "\n\n**`fgColor`** gets/sets the foreground color, or text color, of\nthe current document.",
+ "firstelementchild": "\n\nThe **`Document.firstElementChild`** read-only property\nreturns the document's first child [Element], or `null` if there\nare no child elements.\n\nFor HTML documents, this is usually the only child, the root `<html>` element.\n\nSee [Element.firstElementChild] for the first child element of specific elements within a document.",
+ "fonts": "\n\nThe **`fonts`** property of the [Document] interface returns the [FontFaceSet] interface of the document.\n\nThis feature is part of the [CSS Font Loading API](/en-US/docs/Web/API/CSS_Font_Loading_API).",
+ "forms": "\n\nThe **`forms`** read-only property of\nthe [Document] interface returns an [HTMLCollection] listing\nall the `form` elements contained in the document.\n\n> **Note:** Similarly, you can access a list of a form's component user\n> input elements using the [HTMLFormElement.elements] property.",
+ "fragmentdirective": "\n\nThe **`fragmentDirective`** read-only property of the [Document] interface returns the [FragmentDirective] for the current document.",
+ "fullscreen": "\n\nThe obsolete [Document] interface's **`fullscreen`** read-only property reports whether or not the document is currently displaying content in fullscreen mode.\n\nAlthough this property is read-only, it will not throw if it is modified (even in strict mode); the setter is a no-operation and it will be ignored.\n\n> **Note:** Since this property is deprecated, you can determine if fullscreen mode is active on the document by checking to see if [Document.fullscreenElement] is not `null`.",
+ "fullscreenchange_event": "\n\nThe `fullscreenchange` event is fired immediately after the browser switches into or out of fullscreen mode.\n\nThe event is sent to the `Element` that is transitioning into or out of fullscreen mode, and this event then bubbles up to the `Document`.\n\nTo find out whether the `Element` is entering or exiting fullscreen mode, check the value of [Document.fullscreenElement]: if this value is `null` then the element is exiting fullscreen mode, otherwise it is entering fullscreen mode.\n\nThis event is not cancelable.",
+ "fullscreenelement": "\n\nThe\n**`Document.fullscreenElement`** read-only\nproperty returns the [Element] that is currently being presented in\nfullscreen mode in this document, or `null` if fullscreen mode is not\ncurrently in use.\n\nAlthough this property is read-only, it will not throw if it is modified (even in\nstrict mode); the setter is a no-operation and it will be ignored.",
+ "fullscreenenabled": "\n\nThe read-only **`fullscreenEnabled`**\nproperty on the [Document] interface indicates whether or not fullscreen\nmode is available.\n\nfullscreen mode is available only for a page that has no\nwindowed plug-ins in any of its documents, and if all `iframe` elements\nwhich contain the document have their [`allowfullscreen`](/en-US/docs/Web/HTML/Element/iframe#allowfullscreen)\nattribute set.\n\nAlthough this property is read-only, it will not throw if it is modified (even in\nstrict mode); the setter is a no-operation and it will be ignored.",
+ "fullscreenerror_event": "\n\nThe `fullscreenerror` event is fired when the browser cannot switch to fullscreen mode.\n\nAs with the [`fullscreenchange` event](/en-US/docs/Web/API/Document/fullscreenchange_event), two `fullscreenerror` events are fired; the first is sent to the [Element] which failed to change modes, and the second is sent to the [Document] which owns that element.\n\nFor some reasons that switching into fullscreen mode might fail, see [the guide to the Fullscreen API](/en-US/docs/Web/API/Fullscreen_API/Guide).\n\nThis event is not cancelable.",
+ "getanimations": "\n\nThe `getAnimations()` method of the [Document] interface\nreturns an array of all [Animation] objects currently in effect whose\ntarget elements are descendants of the document. This array includes [CSS Animations](/en-US/docs/Web/CSS/CSS_animations), [CSS Transitions](/en-US/docs/Web/CSS/CSS_transitions), and [Web Animations](/en-US/docs/Web/API/Web_Animations_API).",
+ "getelementbyid": "\n\nThe **`getElementById()`** method of the [Document] interface returns an [Element] object representing the element whose [Element.id] property matches the specified string. Since element IDs are required to be unique if specified, they're a useful way to get access to a specific element quickly.\n\nIf you need to get access to an element which doesn't have an ID, you can use [Document.querySelector] to find the element using any .\n\n> **Note:** IDs should be unique inside a document. If two or more elements in a document have the same ID, this method returns the first element found.",
+ "getelementsbyclassname": "\n\nThe **`getElementsByClassName`** method of\n[Document] interface returns an array-like object\nof all child elements which have all of the given class name(s).\n\nWhen called on\nthe [document] object, the complete document is searched, including the\nroot node. You may also call [Element.getElementsByClassName] on any element; it will return only elements which are\ndescendants of the specified root element with the given class name(s).\n\n> **Warning:** This is a live [HTMLCollection]. Changes in the DOM will\n> reflect in the array as the changes occur. If an element selected by this array no\n> longer qualifies for the selector, it will automatically be removed. Be aware of this\n> for iteration purposes.",
+ "getelementsbyname": "\n\nThe **`getElementsByName()`** method\nof the [Document] object returns a [NodeList] Collection of\nelements with a given `name` attribute in the document.",
+ "getelementsbytagname": "\n\nThe **`getElementsByTagName`** method of\n[Document] interface returns an\n[HTMLCollection] of elements with the given tag name.\n\nThe complete\ndocument is searched, including the root node. The returned `HTMLCollection`\nis live, meaning that it updates itself automatically to stay in sync with the DOM tree\nwithout having to call `document.getElementsByTagName()` again.",
+ "getelementsbytagnamens": "\n\nReturns a list of elements with the given tag name belonging to the given namespace.\nThe complete document is searched, including the root node.",
+ "getselection": "\n\nThe **`getSelection()`** method of\nthe [Document] interface returns a [Selection]\nobject representing the range of text selected by the user, or the current position of\nthe caret.",
+ "hasfocus": "\n\nThe **`hasFocus()`** method of the [Document] interface returns a boolean value indicating whether the document or any element inside the document has focus.\nThis method can be used to determine whether the active element in a document has focus.\n\n> **Note:** When viewing a document, an element with focus is always the [active element](/en-US/docs/Web/API/Document/activeElement) in the document, but an active element does not necessarily have focus.\n> For example, an active element within a popup window that is not the foreground doesn't have focus.",
+ "hasstorageaccess": "\n\nThe **`hasStorageAccess()`** method of the [Document] interface returns a `Promise` that resolves with a boolean value indicating whether the document has access to [third-party](/en-US/docs/Web/HTTP/Cookies#third-party_cookies), [unpartitioned](/en-US/docs/Web/API/Storage_Access_API#unpartitioned_versus_partitioned_cookies) cookies.\n\nThis method is part of the [Storage Access API](/en-US/docs/Web/API/Storage_Access_API).",
+ "head": "\n\nThe **`head`** read-only property of\nthe [Document] interface returns the `head` element of\nthe current document.",
+ "hidden": "\n\nThe **`Document.hidden`** read-only property returns a Boolean\nvalue indicating if the page is considered hidden or not.\n\nThe [Document.visibilityState] property provides an alternative way to determine whether the page is hidden.",
+ "images": "\n\nThe **`images`** read-only property of\nthe [Document] interface returns a [collection](/en-US/docs/Web/API/HTMLCollection) of the [images](/en-US/docs/Web/API/HTMLImageElement/Image) in the current HTML document.",
+ "implementation": "\n\nThe **`Document.implementation`** property returns a\n[DOMImplementation] object associated with the current document.",
+ "importnode": "\n\nThe [Document] object's **`importNode()`** method creates a copy of a\n[Node] or [DocumentFragment] from another document, to be\ninserted into the current document later.\n\nThe imported node is not yet included in the document tree. To include it, you need to\ncall an insertion method such as [Node.appendChild] or\n[Node.insertBefore] with a node that _is_\ncurrently in the document tree.\n\nUnlike [document.adoptNode], the original node is not removed from its\noriginal document. The imported node is a clone of the original.",
+ "lastelementchild": "\n\nThe **`Document.lastElementChild`** read-only property\nreturns the document's last child [Element], or `null` if there\nare no child elements.\n\nFor HTML documents, this is usually the only child, the root `<html>` element.\n\nSee [Element.lastElementChild] for the last child element of specific elements within a document.",
+ "lastmodified": "\n\nThe **`lastModified`** property of the [Document]\ninterface returns a string containing the date and local time on which the current document\nwas last modified.",
+ "laststylesheetset": "\n\nThe **`Document.lastStyleSheetSet`** property returns the last enabled style sheet set. This property's\nvalue changes whenever the [document.selectedStyleSheetSet] property is\nchanged.",
+ "linkcolor": " \n\nThe **`Document.linkColor`** property gets/sets the color of\nlinks within the document.\n\nThis property is deprecated. As an alternative, you can set the CSS\n`color` property on either HTML anchor links (`a`) or on\n pseudo-classes. Another alternative is\n`document.body.link`, although this is [deprecated in HTML 4.01](https://www.w3.org/TR/html401/struct/global.html#adef-link).",
+ "links": "\n\nThe **`links`** read-only property of the [Document] interface returns a collection of all `area` elements and `a` elements in a document with a value for the [href](/en-US/docs/Web/HTML/Element/a#href) attribute.",
+ "location": "\n\nThe **`Document.location`** read-only property returns a\n[Location] object, which contains information about the URL of the document\nand provides methods for changing that URL and loading another URL.\n\nThough `Document.location` is a _read-only_ `Location`\nobject, you can also assign a string to it. This means that you can\nwork with document.location as if it were a string in most cases:\n`document.location = 'http://www.example.com'` is a synonym of\n`document.location.href = 'http://www.example.com'`. If you assign another\nstring to it, browser will load the website you assigned.\n\nTo retrieve just the URL as a string, the read-only [document.URL]\nproperty can also be used.\n\nIf the current document is not in a browsing context, the returned value is\n`null`.",
+ "mozsetimageelement": "\n\nThe **`Document.mozSetImageElement()`** method changes the\nelement being used as the CSS background for a background with a given background\nelement ID.",
+ "open": "\n\nThe **`Document.open()`** method opens a document for\n[Document.write].\n\nThis does come with some side effects. For example:\n\n- All event listeners currently registered on the document, nodes inside the document,\n or the document's window are removed.\n- All existing nodes are removed from the document.",
+ "paste_event": "\n\nThe **`paste`** event fires when the user initiates a paste action through the browser's user interface.\n\nThe original target for this event is the [Element] that was the intended target of the paste action. You can listen for this event on the [Document] interface to handle it in the capture or bubbling phases. For full details on this event please see the page on the [Element: paste event](/en-US/docs/Web/API/Element/paste_event).",
+ "pictureinpictureelement": "\n\nThe read-only **`pictureInPictureElement`** property of the [Document]\ninterface returns the [Element] that is currently being\npresented in picture-in-picture mode in this document, or `null` if\npicture-in-picture mode is not currently in use.\n\nAlthough this property is read-only, it will not throw if it is modified (even in\nstrict mode); the setter is a no-operation and will be ignored.",
+ "pictureinpictureenabled": "\n\nThe read-only\n**`pictureInPictureEnabled`** property of the\n[Document] interface indicates whether or not picture-in-picture mode is\navailable.\n\nPicture-in-Picture mode is available by default unless specified\notherwise by a [Permissions-Policy](/en-US/docs/Web/HTTP/Headers/Permissions-Policy/picture-in-picture).\n\nAlthough this property is read-only, it will not throw if it is modified (even in\nstrict mode); the setter is a no-operation and will be ignored.",
+ "plugins": "\n\nThe **`plugins`** read-only property of the\n[Document] interface returns an [HTMLCollection] object\ncontaining one or more [HTMLEmbedElement]s representing the\n`embed` elements in the current document.\n\n> **Note:** For a list of installed plugins, use [Navigator.plugins](/en-US/docs/Web/API/Navigator/plugins)\n> instead.",
+ "pointerlockchange_event": "\n\nThe **`pointerlockchange`** event is fired when the pointer is locked/unlocked.\n\nThe event handler can use [Document.pointerLockElement] to determine whether the pointer is locked, and if so, to which element it is locked.\n\nThis event is not cancelable and does not bubble.",
+ "pointerlockelement": "\n\nThe **`pointerLockElement`** read-only property of the [Document] interface provides the element set as the target for mouse events while the pointer is locked.\nIt is `null` if lock is pending, pointer is unlocked, or the target is in another document.",
+ "pointerlockerror_event": "\n\nThe **`pointerlockerror`** event is fired when locking the pointer failed (for technical reasons or because the permission was denied).\n\nThis event is not cancelable and does not bubble.",
+ "preferredstylesheetset": "\n\nThe **`preferredStyleSheetSet`** property returns the preferred style sheet set as set by the page\nauthor.",
+ "prepend": "\n\nThe **`Document.prepend()`** method\ninserts a set of [Node] objects or string objects before\nthe first child of the document. String objects\nare inserted as equivalent [Text] nodes.\n\nThis method prepends a child to a `Document`. To prepend to an arbitrary element in the tree, see [Element.prepend].",
+ "prerendering": "\n\nThe `prerendering` read-only property of the [Document] interface returns `true` if the document is currently in the process of prerendering, as initiated via the [Speculation Rules API](/en-US/docs/Web/API/Speculation_Rules_API).",
+ "prerenderingchange_event": "\n\nThe `prerenderingchange` event is fired on a prerendered document when it is activated (i.e. the user views the page).",
+ "querycommandenabled": "\n\nThe **`Document.queryCommandEnabled()`** method reports whether\nor not the specified editor command is enabled by the browser.",
+ "querycommandstate": "\n\nThe **`queryCommandState()`** method will tell you if the current selection has a certain [Document.execCommand] command applied.",
+ "querycommandsupported": "\n\nThe **`Document.queryCommandSupported()`** method reports\nwhether or not the specified editor command is supported by the browser.",
+ "queryselector": "\n\nThe [Document] method **`querySelector()`**\nreturns the first [Element] within the document that matches the specified\nselector, or group of selectors. If no matches are found, `null` is returned.\n\n> **Note:** The matching is done using depth-first pre-order traversal of\n> the document's nodes starting with the first element in the document's markup and\n> iterating through sequential nodes by order of the number of child nodes.",
+ "queryselectorall": "\n\nThe [Document] method **`querySelectorAll()`**\nreturns a static (not live) [NodeList] representing a list of the\ndocument's elements that match the specified group of selectors.",
+ "readystate": "\n\nThe **`Document.readyState`** property describes the loading state of the [document].\nWhen the value of this property changes, a [Document/readystatechange_event] event fires on the [document] object.",
+ "readystatechange_event": "\n\nThe **`readystatechange`** event is fired when the [Document.readyState] attribute of a document has changed.\n\nThis event is not cancelable and does not bubble.",
+ "referrer": "\n\nThe **`Document.referrer`** property returns the [URI](https://www.w3.org/Addressing/#background) of the page that linked to\nthis page.",
+ "releasecapture": "\n\nThe **`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\nEnabling mouse capture on an element is done by calling [element.setCapture].",
+ "replacechildren": "\n\nThe **`Document.replaceChildren()`** method replaces the\nexisting children of a `Document` with a specified new set of children.",
+ "requeststorageaccess": "\n\nThe **`requestStorageAccess()`** method of the [Document] interface allows content loaded in a third-party context (i.e., embedded in an `iframe`) to request access to third-party cookies. This is relevant to user agents that, by default, block access to [third-party](/en-US/docs/Web/HTTP/Cookies#third-party_cookies), [unpartitioned](/en-US/docs/Web/API/Storage_Access_API#unpartitioned_versus_partitioned_cookies) cookies to improve privacy (e.g., to prevent tracking), and is part of the [Storage Access API](/en-US/docs/Web/API/Storage_Access_API).\n\nTo check whether permission to access third-party cookies has already been granted, you can call [Permissions.query], specifying the feature name `\"storage-access\"`.\n\n> **Note:** Usage of this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server. In addition, the document must pass additional browser-specific checks such as allowlists, blocklists, on-device classification, user settings, anti-[clickjacking](/en-US/docs/Glossary/Clickjacking) heuristics, or prompting the user for explicit permission.",
+ "requeststorageaccessfor": "\n\nThe **`requestStorageAccessFor()`** method of the [Document] interface allows top-level sites to request third-party cookie access on behalf of embedded content originating from another site in the same [related website set](/en-US/docs/Web/API/Storage_Access_API/Related_website_sets). It returns a `Promise` that resolves if the access was granted, and rejects if access was denied.",
+ "rootelement": "\n\n**`Document.rootElement`** returns the [Element]\nthat is the root element of the [document] if it is an\n element, otherwise `null`. It is deprecated in favor of\n[Document.documentElement], which returns the root element for all\ndocuments.",
+ "scripts": "\n\nThe **`scripts`** property of the [Document]\ninterface returns a list of the `script`\nelements in the document. The returned object is an\n[HTMLCollection].",
+ "scroll_event": "\n\nThe **`scroll`** event fires when the document view has been scrolled.\nTo detect when scrolling has completed, see the .\nFor element scrolling, see .",
+ "scrollend_event": "\n\nThe **`scrollend`** event fires when the document view has completed scrolling.\nScrolling is considered completed when the scroll position has no more pending updates and the user has completed their gesture.\n\nScroll position updates include smooth or instant mouse wheel scrolling, keyboard scrolling, scroll-snap events, or other APIs and gestures which cause the scroll position to update.\nUser gestures like touch panning or trackpad scrolling aren't complete until pointers or keys have released.\nIf the scroll position did not change, then no scrollend event fires.\n\nFor detecting when scrolling inside an element is complete, see .",
+ "scrollingelement": "\n\nThe **`scrollingElement`** read-only property of the\n[Document] interface returns a reference to the [Element] that\nscrolls the document. In standards mode, this is the root element of the\ndocument, [document.documentElement].\n\nWhen in quirks mode, the `scrollingElement` attribute returns the HTML\n`body` element if it exists and is [potentially scrollable](https://drafts.csswg.org/cssom-view/#potentially-scrollable), otherwise it returns null.",
+ "securitypolicyviolation_event": "\n\nThe **`securitypolicyviolation`** event is fired when a [Content Security Policy](/en-US/docs/Web/HTTP/CSP) is violated.\n\nThe event is fired on the global scope when violates the policy and will bubble to the [Window] object. The event may also bubble from [Node] contained in the document tree.\n\nThe handler can be assigned using the `onsecuritypolicyviolation` event handler property or using [EventTarget.addEventListener].\n\n> **Note:** It is recommended to add the handler for this event to a top level object (i.e. [Window] or [Document]). While the property exists in HTML elements, you can't assign a handler to the property until the elements have been loaded, by which time this event will already have fired.",
+ "selectedstylesheetset": "\n\nThe **`selectedStyleSheetSet`** property indicates the name of the style sheet set that's currently in use.",
+ "selectionchange_event": "\n\nThe **`selectionchange`** event of the [Selection API](/en-US/docs/Web/API/Selection) is fired when the current [Selection] of a [Document] is changed.\n\nThis event is not cancelable and does not bubble.\n\nThe event can be handled by adding an event listener for `selectionchange` or using the `onselectionchange` event handler.\n\n> **Note:** This event is not quite the same as the `selectionchange` events fired when the text selection in an `input` or `textarea` element is changed. See [HTMLInputElement.selectionchange_event] for more details.",
+ "startviewtransition": "\n\nThe **`startViewTransition()`** method of the\n[View Transitions API] starts a new view transition and returns a [ViewTransition] object to represent it.\n\nWhen `startViewTransition()` is invoked, a sequence of steps is followed as explained in [The view transition process](/en-US/docs/Web/API/View_Transitions_API#the_view_transition_process).",
+ "stylesheets": "\n\nThe **`styleSheets`** read-only property of the [Document] interface returns a [StyleSheetList] of [CSSStyleSheet] objects, for stylesheets explicitly linked into or embedded in a document.",
+ "stylesheetsets": "\n\nThe **`styleSheetSets`** read-only property returns a live list of all of the currently-available style sheet sets.",
+ "timeline": "\n\nThe `timeline` readonly property of the [Document] interface represents the default timeline of the current document. This timeline is a special instance of [DocumentTimeline].\n\nThis timeline is unique to each `document` and persists for the lifetime of the `document` including calls to [Document.open].\n\nThis timeline expresses the time in milliseconds since [Performance.timeOrigin].\nPrior to the time origin, the timeline is inactive, and its [AnimationTimeline.currentTime] is `null`.\n\n> **Note:** A document timeline that is associated with a non-active document (a [Document] not associated with a [Window], `iframe`, or `frame`) is also considered to be inactive.",
+ "title": "\n\nThe **`document.title`** property gets or sets the current title of the document.\nWhen present, it defaults to the value of the [`<title>`](/en-US/docs/Web/HTML/Element/title).",
+ "url": "\n\nThe **`URL`** read-only property of the [Document]\ninterface returns the document location as a string.",
+ "visibilitychange_event": "\n\nThe `visibilitychange` event is fired at the document when the contents of its tab have become visible or have been hidden.\n\nThe event is not cancelable.",
+ "visibilitystate": "\n\nThe **`Document.visibilityState`**\nread-only property returns the visibility of the document. It can be used to check whether the document is in the background or in a minimized window, or is otherwise not visible to the user.\n\nWhen the value of this property changes, the [Document/visibilitychange_event] event is sent to the [Document].\n\nThe [Document.hidden] property provides an alternative way to determine whether the page is hidden.",
+ "vlinkcolor": " \n\nThe **`Document.vlinkColor`** property gets/sets the color of\nlinks that the user has visited in the document.",
+ "write": "\n\n> **Warning:** Use of the `document.write()` method is strongly discouraged.\n>\n> As [the HTML spec itself warns](<https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#document.write()>):\n>\n> > This method has very idiosyncratic behavior. In some cases, this method can affect the state of the [HTML parser](https://html.spec.whatwg.org/multipage/parsing.html#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()`](https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-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](https://html.spec.whatwg.org/multipage/parsing.html#document-written-scripts-intervention). 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.\n> > Therefore, avoid using `document.write()` — and if possible, update any existing code that is still using it.\n\nThe **`document.write()`** method writes a string of text to a document stream opened by [document.open].\n\n> **Note:** Because `document.write()` writes to the document **stream**, calling `document.write()` on a closed (loaded) document automatically calls `document.open()`, [which will clear the document](/en-US/docs/Web/API/Document/open#notes).",
+ "writeln": "\n\n> **Warning:** Use of the `document.writeln()` method is strongly discouraged.\n>\n> As [the HTML spec itself warns](<https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#document.write()>):\n>\n> > This method has very idiosyncratic behavior. In some cases, this method can affect the state of the [HTML parser](https://html.spec.whatwg.org/multipage/parsing.html#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()`](https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-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](https://html.spec.whatwg.org/multipage/parsing.html#document-written-scripts-intervention). 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.\n> > Therefore, avoid using `document.writeln()` — and if possible, update any existing code that is still using it.\n\nWrites a string of text followed by a newline character to a document.",
+ "xmlencoding": "\n\nReturns the encoding as determined by the XML declaration. Should be `null` if unspecified or unknown.\n\n> **Warning:** Do not use this attribute; it has been removed from the DOM Level 4 specification and is no longer supported in Firefox 10.0.\n\nConsider the following XML Declaration:\n\n```xml\n<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n```\n\nThen, the result should be \"UTF-16\".",
+ "xmlversion": "\n\nReturns the version number as specified in the XML declaration (e.g., `<?xml version=\"1.0\"?>`) or \"1.0\" if the declaration is absent.\n\nThis attribute was never really useful, since it always returned 1.0, and has been removed in DOM Level 4. As such, Firefox 10 no longer implements it. Its primary use in the past was to detect whether or not the document was being rendered as XML rather than HTML. To detect this, you can create an element with its name in lower case, then check to see if it gets converted into all upper case (in which case the document is in the non-XML HTML mode):\n\n```js\nif (document.createElement(\"foo\").tagName === \"FOO\") {\n /* Document is not XML */\n}\n```"
+ }
+ },
+ "documentfragment": {
+ "docs": "\n\nThe **`DocumentFragment`** interface represents a minimal document object that has no parent.\n\nIt is used as a lightweight version of [Document] that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is due to the fact that the document fragment isn't part of the active document tree structure. Changes made to the fragment don't affect the document.\n\n",
+ "properties": {
+ "append": "\n\nThe **`DocumentFragment.append()`** method\ninserts a set of [Node] objects or string objects after\nthe last child of the document fragment. String objects\nare inserted as equivalent [Text] nodes.\n\nThis method appends a child to a `DocumentFragment`. To append to an arbitrary element in the tree, see [Element.append].",
+ "childelementcount": "\n\nThe **`DocumentFragment.childElementCount`** read-only property\nreturns the number of child elements of a `DocumentFragment`.\n\nTo get the number of children of a specific element, see [Element.childElementCount].",
+ "children": "\n\nThe read-only **`children`** property returns a live [HTMLCollection]\nwhich contains all of the child [Element] of the document fragment upon which it was called.",
+ "firstelementchild": "\n\nThe **`DocumentFragment.firstElementChild`** read-only property\nreturns the document fragment's first child [Element], or `null` if there\nare no child elements.",
+ "getelementbyid": "\n\nThe **`getElementById()`** method of the [DocumentFragment] returns an [Element] object representing the element whose [Element.id] property matches the specified string. Since element IDs are required to be unique if specified, they're a useful way to get access to a specific element quickly.\n\nIf you need to get access to an element which doesn't have an ID, you can use [Document.querySelector] to find the element using any .\n\n> **Note:** IDs should be unique inside a document fragment. If two or more elements in a document fragment have the same ID, this method returns the first element found.",
+ "lastelementchild": "\n\nThe **`DocumentFragment.lastElementChild`** read-only property\nreturns the document fragment's last child [Element], or `null` if there\nare no child elements.",
+ "prepend": "\n\nThe **`DocumentFragment.prepend()`** method\ninserts a set of [Node] objects or string objects before\nthe first child of the document fragment. String objects\nare inserted as equivalent [Text] nodes.\n\nThis method prepends a child to a `DocumentFragment`. To prepend to an arbitrary element in the tree, see [Element.prepend].",
+ "queryselector": "\n\nThe **`DocumentFragment.querySelector()`** method returns the\nfirst element, or `null` if no matches are found, within the\n[DocumentFragment] (using depth-first pre-order traversal of the\ndocument's nodes) that matches the specified group of selectors.\n\nIf the selector matches an ID and this ID is erroneously used several times in the\ndocument, it returns the first matching element.\n\nIf the selectors specified in parameter are invalid a [DOMException] with\na `SYNTAX_ERR` value is raised.",
+ "queryselectorall": "\n\nThe **`DocumentFragment.querySelectorAll()`** method returns a\n[NodeList] of elements within the [DocumentFragment] (using\ndepth-first pre-order traversal of the document's nodes) that matches the specified\ngroup of selectors.\n\nIf the selectors specified in parameter are invalid a [DOMException] with\na `SYNTAX_ERR` value is raised.",
+ "replacechildren": "\n\nThe **`DocumentFragment.replaceChildren()`** method replaces the\nexisting children of a `DocumentFragment` with a specified new set of children. These\ncan be string or [Node] objects."
+ }
+ },
+ "documentpictureinpicture": {
+ "docs": "\n\nThe **`DocumentPictureInPicture`** interface of the is the entry point for creating and handling document picture-in-picture windows.\n\nIt is accessed via the [Window.documentPictureInPicture] property.\n\n",
+ "properties": {
+ "enter_event": "\n\nThe **`enter`** event of the [DocumentPictureInPicture] interface is fired when the Picture-in-Picture window is successfully opened.",
+ "requestwindow": "\n\nThe **`requestWindow()`** method of the\n[DocumentPictureInPicture] interface opens the Picture-in-Picture window for the current main browsing context. It returns a `Promise` that fulfills with a [Window] instance representing the browsing context inside the Picture-in-Picture window.\n\nThe `requestWindow()` method requires [transient activation](/en-US/docs/Glossary/Transient_activation), i.e. it must be invoked in response to a user action such as a mouse click or button press.",
+ "window": "\n\nThe **`window`** read-only property of the\n[DocumentPictureInPicture] interface returns a [Window] instance representing the browsing context inside the Picture-in-Picture window."
+ }
+ },
+ "documentpictureinpictureevent": {
+ "docs": "\n\nThe **`DocumentPictureInPictureEvent`** interface of the is the event object for the [DocumentPictureInPicture/enter_event] event, which fires when the Picture-in-Picture window is opened.\n\n",
+ "properties": {
+ "window": "\n\nThe **`window`** read-only property of the\n[DocumentPictureInPictureEvent] interface returns a [Window] instance representing the browsing context inside the `DocumentPictureInPicture` window the event was fired on."
+ }
+ },
+ "documenttimeline": {
+ "docs": "\n\nThe **`DocumentTimeline`** interface of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) represents animation timelines, including the default document timeline (accessed via [Document.timeline]).\n\n"
+ },
+ "documenttype": {
+ "docs": "\n\nThe **`DocumentType`** interface represents a [Node] containing a doctype.\n\n",
+ "properties": {
+ "after": "\n\nThe **`DocumentType.after()`** method inserts a set of\n[Node] objects or strings in the children list of the\n`DocumentType`'s parent, just after the `DocumentType`.\nStrings are inserted as equivalent [Text] nodes.",
+ "before": "\n\nThe **`DocumentType.before()`** method inserts a set of\n[Node] objects or strings in the children list of the\n`DocumentType`'s parent, just before the `DocumentType`.\nStrings are inserted as equivalent [Text] nodes.",
+ "name": "\n\nThe read-only **`name`** property of the [DocumentType] returns the type of the document.\n\nFor synthetic `DocumentType`, this property reflects the value given in parameter to [DOMImplementation.createDocumentType].\n\nFor HTML documents, browsers always set it up to `html`, whatever the actual `DOCTYPE` in the source code is.",
+ "publicid": "\n\nThe read-only **`publicId`** property of the [DocumentType] returns a formal identifier of the document.\n\nFor synthetic `DocumentType`, this property reflects the value given in parameter to [DOMImplementation.createDocumentType].\n\nFor HTML documents, browsers always set it up to `html`, whatever the actual `DOCTYPE` in the source code is. For SVG documents, for example, it can be `\"-//W3C//DTD SVG 1.1//EN\"`.",
+ "remove": "\n\nThe **`DocumentType.remove()`** method removes a document's `doctype`.",
+ "replacewith": "\n\nThe **`DocumentType.replaceWith()`** method replaces the document type with a set of given nodes.",
+ "systemid": "\n\nThe read-only **`systemId`** property of the [DocumentType] returns the URL of the associated DTD.\n\nFor synthetic `DocumentType`, this property reflects the value given in parameter to [DOMImplementation.createDocumentType].\n\nFor HTML documents, browsers always set it up to `html`, whatever the actual `DOCTYPE` in the source code is. For SVG documents, for example, it can be `\"http://www.w3.org/2000/svg\"`."
+ }
+ },
+ "domerror": {
+ "docs": "\n\nThe **`DOMError`** interface describes an error object that contains an error name."
+ },
+ "domexception": {
+ "docs": "\n\nThe **`DOMException`** interface represents an abnormal event (called an **exception**) that occurs as a result of calling a method or accessing a property of a web API. This is how error conditions are described in web APIs.\n\nEach exception has a **name**, which is a short \"PascalCase\"-style string identifying the error or abnormal condition.\n\n`DOMException` is a , so it can be cloned with [structuredClone] or copied between [Workers](/en-US/docs/Web/API/Worker) using [Worker.postMessage].",
+ "properties": {
+ "code": " \n\nThe **`code`** read-only property of the [DOMException] interface returns one of the legacy [error code constants](/en-US/docs/Web/API/DOMException#error_names), or `0` if none match.\n\nThis field is used for historical reasons. New DOM exceptions don't use this anymore: they put this info in the [DOMException.name] attribute.",
+ "message": "\n\nThe **`message`** read-only property of the\n[DOMException] interface returns a string representing\na message or description associated with the given [error name](/en-US/docs/Web/API/DOMException#error_names).",
+ "name": "\n\nThe **`name`** read-only property of the\n[DOMException] interface returns a string that contains\none of the strings associated with an [error name](/en-US/docs/Web/API/DOMException#error_names)."
+ }
+ },
+ "domhighrestimestamp": {
+ "docs": "\n\nThe **`DOMHighResTimeStamp`** type is a `double` and is used to store a time value in milliseconds.\n\nThis type can be used to describe a discrete point in time or a time interval (the difference in time between two discrete points in time). The starting time can be either a specific time determined by the script for a site or app, or the [time origin](/en-US/docs/Web/API/Performance/timeOrigin).\n\nThe time, given in milliseconds, should be accurate to 5 µs (microseconds), with the fractional part of the number indicating fractions of a millisecond. However, if the browser is unable to provide a time value accurate to 5 µs (due, for example, to hardware or software constraints), the browser can represent the value as a time in milliseconds accurate to a millisecond. Also note the section below on reduced time precision controlled by browser preferences to avoid timing attacks and [fingerprinting](/en-US/docs/Glossary/Fingerprinting).\n\nFurther, if the device or operating system the user agent is running on doesn't have a clock accurate to the microsecond level, they may only be accurate to the millisecond."
+ },
+ "domimplementation": {
+ "docs": "\n\nThe **`DOMImplementation`** interface represents an object providing methods which are not dependent on any particular document. Such an object is returned by the [Document.implementation] property.",
+ "properties": {
+ "createdocument": "\n\nThe **`DOMImplementation.createDocument()`** method creates and\nreturns an [XMLDocument].",
+ "createdocumenttype": "\n\nThe **`DOMImplementation.createDocumentType()`** method returns\na [DocumentType] object which can either be used with\n[DOMImplementation.createDocument] upon document creation or can be put\ninto the document via methods like [Node.insertBefore] or\n[Node.replaceChild].",
+ "createhtmldocument": "\n\nThe\n**`DOMImplementation.createHTMLDocument()`** method creates a\nnew HTML [Document].",
+ "hasfeature": "\n\nThe\n**`DOMImplementation.hasFeature()`** method returns a\nboolean flag indicating if a given feature is supported. It is\ndeprecated and modern browsers return `true` in all cases.\n\nThe different implementations fairly diverged in what kind of features were reported.\nThe latest version of the spec settled to force this method to always return\n`true`, where the functionality was accurate and in use."
+ }
+ },
+ "dommatrix": {
+ "docs": "\n\nThe **`DOMMatrix`** interface represents 4×4 matrices, suitable for 2D and 3D operations including rotation and translation. It is a mutable version of the [DOMMatrixReadOnly] interface.\n\n**`WebKitCSSMatrix`** and **`SVGMatrix`** are aliases to **`DOMMatrix`**.\n\nThis interface should be available inside [web workers](/en-US/docs/Web/API/Web_Workers_API), though some implementations don't allow it yet.\n\n"
+ },
+ "dommatrixreadonly": {
+ "docs": "\n\nThe **`DOMMatrixReadOnly`** interface represents a read-only 4×4 matrix, suitable for 2D and 3D operations. The [DOMMatrix] interface — which is based upon `DOMMatrixReadOnly`—adds [mutability](https://en.wikipedia.org/wiki/Immutable_object), allowing you to alter the matrix after creating it.\n\nThis interface should be available inside [web workers](/en-US/docs/Web/API/Web_Workers_API), though some implementations doesn't allow it yet.",
+ "properties": {
+ "flipx": "\n\nThe `flipX()` method of the [DOMMatrixReadOnly] interface creates a new matrix being the result of the original matrix flipped about the x-axis.",
+ "scale": "\n\nThe **`scale()`** method of the\n[DOMMatrixReadOnly] interface creates a new matrix being the result of the\noriginal matrix with a scale transform applied.",
+ "translate": "\n\nThe `translate()` method of the [DOMMatrixReadOnly] interface\ncreates a new matrix being the result of the original matrix with a translation applied."
+ }
+ },
+ "domparser": {
+ "docs": "\n\nThe **`DOMParser`** interface provides\nthe ability to parse or source code from a\nstring into a DOM [Document].\n\nYou can perform the opposite operation—converting a DOM tree into XML or HTML\nsource—using the [XMLSerializer] interface.\n\nIn the case of an HTML document, you can also replace portions of the DOM with new DOM\ntrees built from HTML by setting the value of the [Element.innerHTML] and\n[Element.outerHTML] properties. These properties can also be\nread to fetch HTML fragments corresponding to the corresponding DOM subtree.\n\nNote that [XMLHttpRequest] can parse XML and HTML directly\nfrom a URL-addressable resource, returning a `Document` in its\n[XMLHttpRequest.response] property.\n\n> **Note:** Be aware that [block-level elements](/en-US/docs/Glossary/Block-level_content)\n> like `<p>` will be automatically closed if another\n> block-level element is nested inside and therefore parsed before the closing `</p>` tag.",
+ "properties": {
+ "parsefromstring": "\n\nThe **`parseFromString()`** method of the [DOMParser] interface parses a string containing either HTML or XML, returning an [HTMLDocument] or an [XMLDocument]."
+ }
+ },
+ "dompoint": {
+ "docs": "\n\nA **`DOMPoint`** object represents a 2D or 3D point in a coordinate system; it includes values for the coordinates in up to three dimensions, as well as an optional perspective value. `DOMPoint` is based on [DOMPointReadOnly] but allows its properties' values to be changed.\n\nIn general, a positive `x` component represents a position to the right of the origin, a positive `y` component is downward from the origin, and a positive `z` component extends outward from the screen (in other words, toward the user).\n\n",
+ "properties": {
+ "frompoint_static": "\n\nThe **[DOMPoint]** static method\n`fromPoint()` creates and returns a new mutable `DOMPoint`\nobject given a source point.\n\nYou can also create a new `DOMPoint` object using the\n[DOMPoint.DOMPoint] constructor.\n\nAlthough this interface is based on `DOMPointReadOnly`, it is not read-only;\nthe properties within may be changed at will.",
+ "w": "\n\nThe **`DOMPoint`** interface's\n**`w`** property holds the point's perspective value, w, for a\npoint in space.",
+ "x": "\n\nThe **`DOMPoint`** interface's\n**`x`** property holds the horizontal coordinate, x, for a\npoint in space.\n\nIn general, positive values `x` mean to the right,\nand negative values of `x` means to the left, barring any transforms that may\nhave altered the orientation of the axes.",
+ "y": "\n\nThe **`DOMPoint`** interface's\n**`y`** property holds the vertical coordinate, _y_,\nfor a point in space.\n\nUnless transforms have been applied to alter the\norientation, the value of `y` increases downward and decreases upward.",
+ "z": "\n\nThe **`DOMPoint`** interface's\n**`z`** property specifies the depth coordinate of a point in\nspace.\n\nUnless transforms have changed the orientation, a `z` of 0 is\nthe plane of the screen, with positive values extending outward toward the user from the\nscreen, and negative values receding into the distance behind the screen."
+ }
+ },
+ "dompointreadonly": {
+ "docs": "\n\nThe **`DOMPointReadOnly`** interface specifies the coordinate and perspective fields used by [DOMPoint] to define a 2D or 3D point in a coordinate system.\n\nThere are two ways to create a new `DOMPointReadOnly` instance. First, you can use its constructor, passing in the values of the parameters for each dimension and, optionally, the perspective:\n\n```js\n/* 2D */\nconst point2D = new DOMPointReadOnly(50, 50);\n\n/* 3D */\nconst point3D = new DOMPointReadOnly(50, 50, 25);\n\n/* 3D with perspective */\nconst point3DPerspective = new DOMPointReadOnly(100, 100, 100, 1.0);\n```\n\nThe other option is to use the static [DOMPointReadOnly.fromPoint_static] method:\n\n```js\nconst point = DOMPointReadOnly.fromPoint({ x: 100, y: 100, z: 50, w: 1.0 });\n```",
+ "properties": {
+ "frompoint_static": "\n\nThe static **[DOMPointReadOnly]**\nmethod `fromPoint()` creates and returns a new\n`DOMPointReadOnly` object given a source point.\n\nYou can also create a new `DOMPointReadOnly` object using the\n[DOMPointReadOnly.DOMPointReadOnly] constructor.",
+ "tojson": "\n\nThe [DOMPointReadOnly] method\n`toJSON()` returns an object giving the\n form of the point object.",
+ "w": "\n\nThe **`DOMPointReadOnly`** interface's\n**`w`** property holds the point's perspective value,\n`w`, for a read-only point in space.\n\nIf your script needs to be able\nto change the value of this property, you should instead use the [DOMPoint]\nobject.",
+ "x": "\n\nThe **`DOMPointReadOnly`** interface's\n**`x`** property holds the horizontal coordinate, x, for a\nread-only point in space. This property cannot be changed by JavaScript code in this\nread-only version of the `DOMPoint` object.\n\nIn general, positive values `x` mean to the right, and negative values of\n`x` means to the left, assuming no transforms have resulted in a reversal.",
+ "y": "\n\nThe **`DOMPointReadOnly`** interface's\n**`y`** property holds the vertical coordinate, y, for a\nread-only point in space.\n\nIf your script needs to be able to change the value\nof this property, you should instead use the [DOMPoint] object.\n\nIn general, positive values of `y` mean downward, and negative values of\n`y` mean upward, assuming no transforms have resulted in a reversal.",
+ "z": "\n\nThe **`DOMPointReadOnly`** interface's\n**`z`** property holds the depth coordinate, z, for a\nread-only point in space.\n\nIf your script needs to be able to change the value\nof this property, you should instead use the [DOMPoint] object.\n\nIn general, positive values of `z` mean toward the user (out from the\nscreen), and negative values of `z` mean away from the user (into the\nscreen), assuming no transforms have resulted in a reversal."
+ }
+ },
+ "domquad": {
+ "docs": "\n\nA `DOMQuad` is a collection of four `DOMPoint`s defining the corners of an arbitrary quadrilateral. Returning `DOMQuad`s lets `getBoxQuads()` return accurate information even when arbitrary 2D or 3D transforms are present. It has a handy `bounds` attribute returning a `DOMRectReadOnly` for those cases where you just want an axis-aligned bounding rectangle."
+ },
+ "domrect": {
+ "docs": "\n\nA **`DOMRect`** describes the size and position of a rectangle.\n\nThe type of box represented by the `DOMRect` is specified by the method or property that returned it. For example, [Range.getBoundingClientRect] specifies the rectangle that bounds the content of the range using such objects.\n\nIt inherits from its parent, [DOMRectReadOnly].\n\n",
+ "properties": {
+ "fromrect_static": "\n\nThe **`fromRect()`** static method of the\n[DOMRect] object creates a new `DOMRect`\nobject with a given location and dimensions."
+ }
+ },
+ "domrectreadonly": {
+ "docs": "\n\nThe **`DOMRectReadOnly`** interface specifies the standard properties (also used by [DOMRect]) to define a rectangle whose properties are immutable.",
+ "properties": {
+ "bottom": "\n\nThe **`bottom`** read-only property of the **`DOMRectReadOnly`** interface returns the bottom coordinate value of the `DOMRect`. (Has the same value as `y + height`, or `y` if `height` is negative.)",
+ "fromrect_static": "\n\nThe **`fromRect()`** static method of the\n[DOMRectReadOnly] object creates a new `DOMRectReadOnly`\nobject with a given location and dimensions.",
+ "height": "\n\nThe **`height`** read-only property of the **`DOMRectReadOnly`** interface represents the height of the `DOMRect`.",
+ "left": "\n\nThe **`left`** read-only property of the **`DOMRectReadOnly`** interface returns the left coordinate value of the `DOMRect`. (Has the same value as `x`, or `x + width` if `width` is negative.)",
+ "right": "\n\nThe **`right`** read-only property of the **`DOMRectReadOnly`** interface returns the right coordinate value of the `DOMRect`. (Has the same value as `x + width`, or `x` if `width` is negative.)",
+ "top": "\n\nThe **`top`** read-only property of the **`DOMRectReadOnly`** interface returns the top coordinate value of the `DOMRect`. (Has the same value as `y`, or `y + height` if `height` is negative.)",
+ "width": "\n\nThe **`width`** read-only property of the **`DOMRectReadOnly`** interface represents the width of the `DOMRect`.",
+ "x": "\n\nThe **`x`** read-only property of the **`DOMRectReadOnly`** interface represents the x coordinate of the `DOMRect`'s origin.",
+ "y": "\n\nThe **`y`** read-only property of the **`DOMRectReadOnly`** interface represents the y coordinate of the `DOMRect`'s origin."
+ }
+ },
+ "domstringlist": {
+ "docs": "\n\nThe **`DOMString`** interface is a legacy type returned by some APIs and represents a non-modifiable list of strings (`DOMString`). Modern APIs use `Array` objects (in WebIDL: `sequence<DOMString>`) instead.\n\nThis interface is used in [IndexedDB](/en-US/docs/Web/API/IndexedDB_API) and in the [Location] API:\n\n- [IDBDatabase.objectStoreNames]\n- [IDBObjectStore.indexNames]\n- [Location.ancestorOrigins]",
+ "properties": {
+ "contains": "\n\nThe **`contains()`** method returns a boolean indicating whether the given string is in the list.",
+ "item": "\n\nThe **`item()`** method returns a string from a [`DOMStringList`](/en-US/docs/Web/API/DOMStringList) by index.",
+ "length": "\n\nThe read-only **`length`** property indicates the number of strings in the [DOMStringList]."
+ }
+ },
+ "domstringmap": {
+ "docs": "\n\nThe **`DOMStringMap`** interface is used for the [HTMLElement.dataset] attribute, to represent data for custom attributes added to elements."
+ },
+ "domtokenlist": {
+ "docs": "\n\nThe **`DOMTokenList`** interface represents a set of space-separated tokens. Such a set is returned by [Element.classList] or [HTMLLinkElement.relList], and many others.\n\nA `DOMTokenList` is indexed beginning with `0` as with JavaScript `Array` objects. `DOMTokenList` is always case-sensitive.",
+ "properties": {
+ "add": "\n\nThe **`add()`** method of the [DOMTokenList] interface adds the given tokens to the list, omitting any that are already present.",
+ "contains": "\n\nThe **`contains()`** method of the [DOMTokenList] interface\nreturns a boolean value — `true` if the underlying list contains the given token,\notherwise `false`.",
+ "entries": "\n\nThe **`entries()`** method of the [DOMTokenList] interface\nreturns an `iterator` allowing you\nto go through all key/value pairs contained in this object. The values are\n`Array`s which have [key, value] pairs, each representing a single token.",
+ "foreach": "\n\nThe **`forEach()`** method of the [DOMTokenList] interface\ncalls the callback given in parameter once for each value pair in the list, in\ninsertion order.",
+ "item": "\n\nThe **`item()`** method of the [DOMTokenList] interface returns an item in the list,\ndetermined by its position in the list, its index.\n\n> **Note:** This method is equivalent as the [bracket notation](/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors#bracket_notation).\n> So `aList.item(i)` is the same as `aList[i]`.",
+ "keys": "\n\nThe **`keys()`** method of the [DOMTokenList] interface\nreturns an `1` allowing to go through all keys contained in this object.\nThe keys are unsigned integers.",
+ "length": "\n\nThe read-only **`length`** property of the [DOMTokenList] interface is an `integer` representing the number\nof objects stored in the object.",
+ "remove": "\n\nThe **`remove()`** method of the [DOMTokenList] interface\nremoves the specified _tokens_ from the list.",
+ "replace": "\n\nThe **`replace()`** method of the [DOMTokenList] interface\nreplaces an existing token with a new token.\nIf the first token doesn't exist, `replace()` returns `false` immediately,\nwithout adding the new token to the token list.",
+ "supports": "\n\nThe **`supports()`** method of the [DOMTokenList] interface\nreturns `true` if a given `token` is in the associated attribute's supported tokens.\nThis method is intended to support feature detection.",
+ "toggle": "\n\nThe **`toggle()`** method of the [DOMTokenList] interface\nremoves an existing token from the list and returns `false`.\nIf the token doesn't exist it's added and the function returns `true`.",
+ "value": "\n\nThe **`value`** property of the [DOMTokenList]\ninterface is a that returns the value of the list serialized as a\nstring, or clears and sets the list to the given value.",
+ "values": "\n\nThe **`values()`** method of the [DOMTokenList] interface\nreturns an `iterator`\nallowing the caller to go through all values contained in the `DOMTokenList`.\nThe individual values are strings."
+ }
+ },
+ "dragevent": {
+ "docs": "\n\nThe **`DragEvent`** interface is a [Event] that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way.\n\nThis interface inherits properties from [MouseEvent] and [Event].\n\n",
+ "properties": {
+ "datatransfer": "\n\nThe **`DragEvent.dataTransfer`** read-only property holds the drag\noperation's data (as a [DataTransfer] object)."
+ }
+ },
+ "dynamicscompressornode": {
+ "docs": "\n\nThe `DynamicsCompressorNode` interface provides a compression effect, which lowers the volume of the loudest parts of the signal in order to help prevent clipping and distortion that can occur when multiple sounds are played and multiplexed together at once. This is often used in musical production and game audio. `DynamicsCompressorNode` is an [AudioNode] that has exactly one input and one output.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"clamped-max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "attack": "\n\nThe `attack` property of the [DynamicsCompressorNode] interface is a [k-rate](/en-US/docs/Web/API/AudioParam#k-rate) [AudioParam] representing the amount of time, in seconds, required to reduce the gain by 10 dB. It defines how quickly the signal is adapted when its volume is increased.\n\nThe `attack` property's default value is `0.003` and it can be set between `0` and `1`.",
+ "knee": "\n\nThe `knee` property of the [DynamicsCompressorNode] interface is a [k-rate](/en-US/docs/Web/API/AudioParam#k-rate) [AudioParam] containing a decibel value representing the range above the threshold where the curve smoothly transitions to the compressed portion.\n\nThe `knee` property's default value is `30` and it can be set between `0` and `40`.\n\n",
+ "ratio": "\n\nThe `ratio` property of the [DynamicsCompressorNode] interface Is a [k-rate](/en-US/docs/Web/API/AudioParam#k-rate) [AudioParam] representing the amount of change, in dB, needed in the input for a 1 dB change in the output.\n\nThe `ratio` property's default value is `12` and it can be set between `1` and `20`.\n\n",
+ "reduction": "\n\nThe **`reduction`** read-only property of the [DynamicsCompressorNode] interface is a float representing the amount of gain reduction currently applied by the compressor to the signal.\n\nIntended for metering purposes, it returns a value in dB, or `0` (no gain reduction) if no signal is fed into the `DynamicsCompressorNode`. The range of this value is between `-20` and `0` (in dB).",
+ "release": "\n\nThe `release` property of the [DynamicsCompressorNode] interface Is a [k-rate](/en-US/docs/Web/API/AudioParam#k-rate) [AudioParam] representing the amount of time, in seconds, required to increase the gain by 10 dB. It defines how quick the signal is adapted when its volume is reduced.\n\nThe `release` property's default value is `0.25` and it can be set between `0` and `1`.",
+ "threshold": "\n\nThe `threshold` property of the [DynamicsCompressorNode] interface is a [k-rate](/en-US/docs/Web/API/AudioParam#k-rate) [AudioParam] representing the decibel value above which the compression will start taking effect.\n\nThe `threshold` property's default value is `-24` and it can be set between `-100` and `0`.\n\n"
+ }
+ },
+ "ecdhkeyderiveparams": {
+ "docs": "\n\nThe **`EcdhKeyDeriveParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.deriveKey], when using the [ECDH](/en-US/docs/Web/API/SubtleCrypto/deriveKey#ecdh) algorithm.\n\nECDH enables two people who each have a key pair consisting of a public and a private key to derive a shared secret. They exchange public keys and use the combination of their private key and the other entity's public key to derive a secret key that they — and no one else — share.\n\nThe parameters for ECDH `deriveKey()` therefore include the other entity's public key, which is combined with this entity's private key to derive the shared secret."
+ },
+ "ecdsaparams": {
+ "docs": "\n\nThe **`EcdsaParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.sign] or [SubtleCrypto.verify] when using the [ECDSA](/en-US/docs/Web/API/SubtleCrypto/sign#ecdsa) algorithm."
+ },
+ "eckeygenparams": {
+ "docs": "\n\nThe **`EcKeyGenParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.generateKey], when generating any elliptic-curve-based key pair: that is, when the algorithm is identified as either of [ECDSA](/en-US/docs/Web/API/SubtleCrypto/sign#ecdsa) or [ECDH](/en-US/docs/Web/API/SubtleCrypto/deriveKey#ecdh)."
+ },
+ "eckeyimportparams": {
+ "docs": "\n\nThe **`EcKeyImportParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.importKey] or [SubtleCrypto.unwrapKey], when generating any elliptic-curve-based key pair: that is, when the algorithm is identified as either of [ECDSA](/en-US/docs/Web/API/SubtleCrypto/sign#ecdsa) or [ECDH](/en-US/docs/Web/API/SubtleCrypto/deriveKey#ecdh)."
+ },
+ "element": {
+ "docs": "\n\n**`Element`** is the most general base class from which all element objects (i.e. objects that represent elements) in a [Document] inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from `Element`.\n\nFor example, the [HTMLElement] interface is the base interface for HTML elements. Similarly, the [SVGElement] interface is the basis for all SVG elements, and the [MathMLElement] interface is the base interface for MathML elements. Most functionality is specified further down the class hierarchy.\n\nLanguages outside the realm of the Web platform, like XUL through the `XULElement` interface, also implement `Element`.\n\n",
+ "properties": {
+ "after": "\n\nThe **`Element.after()`** method inserts a set of\n[Node] or string objects in the children list of the\n`Element`'s parent, just after the `Element`.\nString objects are inserted as equivalent [Text] nodes.",
+ "afterscriptexecute_event": "\n\n> **Warning:** This event was a proposal in an early version of the specification. Do not rely on it.\n\nThe **`afterscriptexecute`** event is fired after a script has been executed.\n\nIt is a proprietary event specific to Gecko (Firefox).\n\nThis event is not cancelable.",
+ "animate": "\n\nThe [Element] interface's **`animate()`** method\nis a shortcut method which creates a new [Animation], applies it to the\nelement, then plays the animation. It returns the created [Animation]\nobject instance.\n\n> **Note:** Elements can have multiple animations applied to them. You can get a list of the\n> animations that affect an element by calling [Element.getAnimations].",
+ "animationcancel_event": "\n\nThe **`animationcancel`** event is fired when a [CSS Animation](/en-US/docs/Web/CSS/CSS_animations) unexpectedly aborts. In other words, any time it stops running without sending an [Element/animationend_event] event. This might happen when the is changed such that the animation is removed, or when the animating node is hidden using CSS. Therefore, either directly or because any of its containing nodes are hidden.\n\nAn event handler for this event can be added by setting the `onanimationcancel` property, or using [EventTarget.addEventListener].",
+ "animationend_event": "\n\nThe **`animationend`** event is fired when a [CSS Animation](/en-US/docs/Web/CSS/CSS_animations) has completed. If the animation aborts before reaching completion, such as if the element is removed from the DOM or the animation is removed from the element, the `animationend` event is not fired.",
+ "animationiteration_event": "\n\nThe **`animationiteration`** event is fired when an iteration of a [CSS Animation](/en-US/docs/Web/CSS/CSS_animations) ends, and another one begins. This event does not occur at the same time as the [Element/animationend_event] event, and therefore does not occur for animations with an `animation-iteration-count` of one.",
+ "animationstart_event": "\n\nThe **`animationstart`** event is fired when a [CSS Animation](/en-US/docs/Web/CSS/CSS_animations) has started. If there is an , this event will fire once the delay period has expired. A negative delay will cause the event to fire with an [AnimationEvent/elapsedTime] equal to the absolute value of the delay (and, correspondingly, the animation will begin playing at that time index into the sequence).",
+ "append": "\n\nThe **`Element.append()`** method\ninserts a set of [Node] objects or string objects after\nthe last child of the `Element`. String objects\nare inserted as equivalent [Text] nodes.\n\nDifferences from [Node.appendChild]:\n\n- `Element.append()` allows you to also append string\n objects, whereas `Node.appendChild()` only accepts [Node]\n objects.\n- `Element.append()` has no return value, whereas\n `Node.appendChild()` returns the appended [Node] object.\n- `Element.append()` can append several nodes and strings, whereas\n `Node.appendChild()` can only append one node.",
+ "ariaatomic": "`DOM`\n\nThe **`ariaAtomic`** property of the [Element] interface reflects the value of the [`aria-atomic`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-atomic) attribute, which indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the [`aria-relevant`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-relevant) attribute.",
+ "ariaautocomplete": "`DOM`\n\nThe **`ariaAutoComplete`** property of the [Element] interface reflects the value of the [`aria-autocomplete`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-autocomplete) attribute, which indicates whether inputting text could trigger display of one or more predictions of the user's intended value for a combobox, searchbox, or textbox and specifies how predictions would be presented if they were made.",
+ "ariabusy": "`DOM`\n\nThe **`ariaBusy`** property of the [Element] interface reflects the value of the [`aria-busy`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-busy) attribute, which indicates whether an element is being modified, as assistive technologies may want to wait until the modifications are complete before exposing them to the user.",
+ "ariachecked": "`DOM`\n\nThe **`ariaChecked`** property of the [Element] interface reflects the value of the [`aria-checked`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked) attribute, which indicates the current \"checked\" state of checkboxes, radio buttons, and other widgets that have a checked state.\n\n> **Note:** Where possible use an HTML `input` element with `type=\"checkbox\"` as this element has built in semantics and does not require ARIA attributes.",
+ "ariacolcount": "`DOM`\n\nThe **`ariaColCount`** property of the [Element] interface reflects the value of the [`aria-colcount`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-colcount) attribute, which defines the number of columns in a table, grid, or treegrid.",
+ "ariacolindex": "`DOM`\n\nThe **`ariaColIndex`** property of the [Element] interface reflects the value of the [`aria-colindex`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-colindex) attribute, which defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.",
+ "ariacolindextext": "\n\nThe **`ariaColIndexText`** property of the [Element] interface reflects the value of the [`aria-colindextext`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-colindextext) attribute, which defines a human readable text alternative of aria-colindex.",
+ "ariacolspan": "`DOM`\n\nThe **`ariaColSpan`** property of the [Element] interface reflects the value of the [`aria-colspan`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-colspan) attribute, which defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.",
+ "ariacurrent": "`DOM`\n\nThe **`ariaCurrent`** property of the [Element] interface reflects the value of the [`aria-current`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current) attribute, which indicates the element that represents the current item within a container or set of related elements.",
+ "ariadescription": "`DOM`\n\nThe **`ariaDescription`** property of the [Element] interface reflects the value of the [`aria-description`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-description) attribute, which defines a string value that describes or annotates the current element.",
+ "ariadisabled": "`DOM`\n\nThe **`ariaDisabled`** property of the [Element] interface reflects the value of the [`aria-disabled`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-disabled) attribute, which indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.\n\n> **Note:** Where possible, use the `input` element with `type=\"button\"` or the `button` element — because those elements have built in semantics and do not require ARIA attributes.",
+ "ariaexpanded": "`DOM`\n\nThe **`ariaExpanded`** property of the [Element] interface reflects the value of the [`aria-expanded`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded) attribute, which indicates whether a grouping element owned or controlled by this element is expanded or collapsed.",
+ "ariahaspopup": "`DOM`\n\nThe **`ariaHasPopup`** property of the [Element] interface reflects the value of the [`aria-haspopup`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup) attribute, which indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.",
+ "ariahidden": "`DOM`\n\nThe **`ariaHidden`** property of the [Element] interface reflects the value of the [`aria-hidden`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-hidden)) attribute, which indicates whether the element is exposed to an accessibility API.",
+ "ariakeyshortcuts": "`DOM`\n\nThe **`ariaKeyShortcuts`** property of the [Element] interface reflects the value of the `aria-keyshortcuts` attribute, which indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.",
+ "arialabel": "`DOM`\n\nThe **`ariaLabel`** property of the [Element] interface reflects the value of the [`aria-label`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label) attribute, which defines a string value that labels the current element.",
+ "arialevel": "`DOM`\n\nThe **`ariaLevel`** property of the [Element] interface reflects the value of the `aria-level` attribute, which defines the hierarchical level of an element within a structure.\n\n> **Note:** Where possible use an HTML `h1` or other correct heading level as these have built in semantics and do not require ARIA attributes.",
+ "arialive": "`DOM`\n\nThe **`ariaLive`** property of the [Element] interface reflects the value of the [`aria-live`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-live) attribute, which indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the [live region](/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions).",
+ "ariamodal": "`DOM`\n\nThe **`ariaModal`** property of the [Element] interface reflects the value of the `aria-modal` attribute, which indicates whether an element is modal when displayed. Applying the `aria-modal` property to an element with `role=\"dialog\"` replaces the technique of using aria-hidden on the background for informing assistive technologies that content outside a dialog is inert.",
+ "ariamultiline": "`DOM`\n\nThe **`ariaMultiLine`** property of the [Element] interface reflects the value of the [`aria-multiline`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-multiline) attribute, which indicates whether a text box accepts multiple lines of input or only a single line.\n\n> **Note:** Where possible use an HTML `input` element with `type=\"text\"` or a `textarea` as these have built in semantics and do not require ARIA attributes.",
+ "ariamultiselectable": "`DOM`\n\nThe **`ariaMultiSelectable`** property of the [Element] interface reflects the value of the [`aria-multiselectable`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-multiselectable) attribute, which indicates that the user may select more than one item from the current selectable descendants.\n\n> **Note:** Where possible use an HTML `select` element as this has built in semantics and does not require ARIA attributes.",
+ "ariaorientation": "`DOM`\n\nThe **`ariaOrientation`** property of the [Element] interface reflects the value of the [`aria-orientation`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-orientation) attribute, which indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.",
+ "ariaplaceholder": "`DOM`\n\nThe **`ariaPlaceholder`** property of the [Element] interface reflects the value of the `aria-placeholder` attribute, which defines a short hint intended to aid the user with data entry when the control has no value.\n\n> **Note:** Where possible use an HTML `input` element with `type=\"text\"` or a `textarea` as these have built in semantics and do not require ARIA attributes.",
+ "ariaposinset": "`DOM`\n\nThe **`ariaPosInSet`** property of the [Element] interface reflects the value of the [`aria-posinset`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-posinset) attribute, which defines an element's number or position in the current set of listitems or treeitems.",
+ "ariapressed": "`DOM`\n\nThe **`ariaPressed`** property of the [Element] interface reflects the value of the [`aria-pressed`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-pressed) attribute, which indicates the current \"pressed\" state of toggle buttons.\n\n> **Note:** Where possible use an HTML `input` element with `type=\"button\"` or the `button` element as these have built in semantics and do not require ARIA attributes.",
+ "ariareadonly": "`DOM`\n\nThe **`ariaReadOnly`** property of the [Element] interface reflects the value of the [`aria-readonly`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-readonly) attribute, which indicates that the element is not editable, but is otherwise operable.\n\n> **Note:** Where possible use an HTML `input` element with `type=\"text\"` or a `textarea` as these have built in semantics and do not require ARIA attributes.",
+ "ariarelevant": "\n\nThe **`ariaRelevant`** property of the [Element] interface reflects the value of the [`aria-relevant`](/en-US/docs/Web/Accessibility/ARIA/Attributes/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.",
+ "ariarequired": "`DOM`\n\nThe **`ariaRequired`** property of the [Element] interface reflects the value of the `aria-required` attribute, which indicates that user input is required on the element before a form may be submitted.\n\n> **Note:** Where possible use an HTML `input` element with `type=\"text\"` or a `textarea` as these have built in semantics and do not require ARIA attributes.",
+ "ariaroledescription": "`DOM`\n\nThe **`ariaRoleDescription`** property of the [Element] interface reflects the value of the [`aria-roledescription`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-roledescription) attribute, which defines a human-readable, author-localized description for the role of an element.",
+ "ariarowcount": "`DOM`\n\nThe **`ariaRowCount`** property of the [Element] interface reflects the value of the [`aria-rowcount`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-rowcount) attribute, which defines the total number of rows in a table, grid, or treegrid.",
+ "ariarowindex": "`DOM`\n\nThe **`ariaRowIndex`** property of the [Element] interface reflects the value of the [`aria-rowindex`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-rowindex) attribute, which defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.",
+ "ariarowindextext": "\n\nThe **`ariaRowIndexText`** property of the [Element] interface reflects the value of the [`aria-rowindextext`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-rowindextext) attribute, which defines a human readable text alternative of aria-rowindex.",
+ "ariarowspan": "`DOM`\n\nThe **`ariaRowSpan`** property of the [Element] interface reflects the value of the [`aria-rowspan`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-rowspan) attribute, which defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.",
+ "ariaselected": "`DOM`\n\nThe **`ariaSelected`** property of the [Element] interface reflects the value of the [`aria-selected`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected) attribute, which indicates the current \"selected\" state of elements that have a selected state.",
+ "ariasetsize": "`DOM`\n\nThe **`ariaSetSize`** property of the [Element] interface reflects the value of the [`aria-setsize`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-setsize) attribute, which defines the number of items in the current set of listitems or treeitems.",
+ "ariasort": "`DOM`\n\nThe **`ariaSort`** property of the [Element] interface reflects the value of the [`aria-sort`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-sort) attribute, which indicates if items in a table or grid are sorted in ascending or descending order.",
+ "ariavaluemax": "`DOM`\n\nThe **`ariaValueMax`** property of the [Element] interface reflects the value of the [`aria-valuemax`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-valuemax) attribute, which defines the maximum allowed value for a range widget.",
+ "ariavaluemin": "`DOM`\n\nThe **`ariaValueMin`** property of the [Element] interface reflects the value of the [`aria-valuemin`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-valuemin) attribute, which defines the minimum allowed value for a range widget.",
+ "ariavaluenow": "`DOM`\n\nThe **`ariaValueNow`** property of the [Element] interface reflects the value of the [`aria-valuenow`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-valuenow) attribute, which defines the current value for a range widget.",
+ "ariavaluetext": "`DOM`\n\nThe **`ariaValueText`** property of the [Element] interface reflects the value of the [`aria-valuetext`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-valuetext) attribute, which defines the human-readable text alternative of aria-valuenow for a range widget.",
+ "assignedslot": "\n\nThe **`assignedSlot`** read-only\nproperty of the [Element] interface returns an\n[HTMLSlotElement] representing the `slot` element the\nnode is inserted in.",
+ "attachshadow": "\n\nThe **`Element.attachShadow()`** method attaches a shadow DOM tree to the specified element and returns a reference to its [ShadowRoot].",
+ "attributes": "\n\nThe **`Element.attributes`** property returns a live collection\nof all attribute nodes registered to the specified node. It is a\n[NamedNodeMap], not an `Array`, so it has no `Array`\nmethods and the [Attr] nodes' indexes may differ among browsers. To be more\nspecific, `attributes` is a key/value pair of strings that represents any\ninformation regarding that attribute.",
+ "auxclick_event": "\n\nThe **`auxclick`** event is fired at an [Element] when a non-primary pointing device button (any mouse button other than the primary—usually leftmost—button) has been pressed and released both within the same element.\n\n`auxclick` is fired after the [Element/mousedown_event] and [Element/mouseup_event] events have been fired, in that order.",
+ "before": "\n\nThe **`Element.before()`** method inserts a set of\n[Node] or string objects in the children list of this\n`Element`'s parent, just before this `Element`.\nString objects are inserted as equivalent [Text] nodes.",
+ "beforeinput_event": "\n\nThe DOM **`beforeinput`** event fires when the value of an `input` or `textarea` element is about to be modified. But in contrast to the [Element/input_event] event, it does not fire on the `select` element. The event also applies to elements with [HTMLElement.contentEditable] enabled, and to any element when [Document.designMode] is turned on.\n\nThis allows web apps to override text edit behavior before the browser modifies the DOM tree, and provides more control over input events to improve performance.\n\nIn the case of `contenteditable` and `designMode`, the event target is the **editing host**. If these properties apply to multiple elements, the editing host is the nearest ancestor element whose parent isn't editable.\n\n> **Note:** Not every user modification results in `beforeinput` firing. Also the event may fire but be non-cancelable. This may happen when the modification is done by autocomplete, by accepting a correction from a spell checker, by password manager autofill, by , or in other ways. The details vary by browser and OS. To override the edit behavior in all situations, the code needs to handle the `input` event and possibly revert any modifications that were not handled by the `beforeinput` handler. See bugs [1673558](https://bugzil.la/1673558) and [1763669](https://bugzil.la/1763669).",
+ "beforematch_event": "\n\nAn element receives a **`beforematch`** event when it is in the _hidden until found_ state and the browser is about to reveal its content because the user has found the content through the \"find in page\" feature or through fragment navigation.",
+ "beforescriptexecute_event": "\n\n> **Warning:** This event was a proposal in an early version of the specification. Do not rely on it.\n\nThe **`beforescriptexecute`** event is fired when a script is about to be executed. Cancelling the event prevents the script from executing.\n\nIt is a proprietary event specific to Gecko (Firefox).",
+ "beforexrselect_event": "\n\nThe **`beforexrselect`** event is fired before WebXR select events ([XRSession/select_event], [XRSession/selectstart_event], [XRSession/selectend_event]) are dispatched. It can be used to suppress XR world input events while the user is interacting with a DOM overlay UI.\n\nThis event [bubbles](/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_bubbling_and_capture), is [cancelable](/en-US/docs/Web/API/Event/cancelable) and is [composed](/en-US/docs/Web/API/Event/composed).",
+ "blur_event": "\n\nThe **`blur`** event fires when an element has lost focus. The event does not bubble, but the related [Element/focusout_event] event that follows does bubble.\n\nAn element will lose focus if another element is selected.\nAn element will also lose focus if a style that does not allow focus is applied, such as `hidden`, or if the element is removed from the document — in both of these cases focus moves to the `body` element (viewport).\nNote however that `blur` is not fired when a focused element is removed from the document.\n\n<!-- Prior to FF110 elements did not lose focus if the style changed to hidden (say) -->\n\nThe opposite of `blur` is the [Element/focus_event] event, which fires when the element has _received_ focus.\n\nThe `blur` event is not cancelable.",
+ "childelementcount": "\n\nThe **`Element.childElementCount`** read-only property\nreturns the number of child elements of this element.",
+ "children": "\n\nThe read-only **`children`** property returns a live [HTMLCollection]\nwhich contains all of the child [Element] of the element upon which it was called.\n\n`Element.children` includes only element nodes. To get all child nodes, including non-element nodes like text and comment nodes, use [Node.childNodes].",
+ "classlist": "\n\nThe **`Element.classList`** is a read-only property that\nreturns a live [DOMTokenList] collection of the `class`\nattributes of the element. This can then be used to manipulate the class list.\n\nUsing `classList` is a convenient alternative to accessing an element's list\nof classes as a space-delimited string via [element.className].",
+ "classname": "\n\nThe **`className`** property of the\n[Element] interface gets and sets the value of the [`class` attribute](/en-US/docs/Web/HTML/Global_attributes/class)\nof the specified element.",
+ "click_event": "\n\nAn element receives a **`click`** event when any of the following occurs:\n\n- a pointing-device button (such as a mouse's primary button) is both pressed and released while the pointer is located inside the element.\n- a touch gesture is performed on the element\n- the <kbd>Space</kbd> key or <kbd>Enter</kbd> key is pressed while the element is focused\n\nIf the button is pressed on one element and the pointer is moved outside the element before the button is released, the event is fired on the most specific ancestor element that contained both elements.\n\n`click` fires after both the [Element/mousedown_event] and [Element/mouseup_event] events have fired, in that order.\n\nThe event is a device-independent event — meaning it can be activated by touch, keyboard, mouse, and any other mechanism provided by assistive technology.",
+ "clientheight": "\n\nThe **`Element.clientHeight`** read-only property is zero for\nelements with no CSS or inline layout boxes; otherwise, it's the inner height of an\nelement in pixels. It includes padding but excludes borders, margins, and horizontal\nscrollbars (if present).\n\n`clientHeight` can be calculated as: CSS `height` + CSS\n`padding` - height of horizontal scrollbar (if present).\n\nWhen `clientHeight` is used on the root element (the\n`<html>` element), (or on `<body>` if the document is\nin quirks mode), the viewport's height (excluding any scrollbar) is returned. [This is a special case of `clientHeight`](https://www.w3.org/TR/2016/WD-cssom-view-1-20160317/#dom-element-clientheight).\n\n> **Note:** This property will round the value to an integer. If you need\n> a fractional value, use [element.getBoundingClientRect].",
+ "clientleft": "\n\nThe width of the left border of an element in pixels. It includes the width of the\nvertical scrollbar if the text direction of the element is right-to-left and if there\nis an overflow causing a left vertical scrollbar to be rendered.\n`clientLeft` does not include the left margin or the left padding.\n`clientLeft` is read-only.\n\n> **Note:** This property will round the value to an integer. If you\n> need a fractional value, use [element.getBoundingClientRect].\n\n> **Note:** When an element has\n> `display: inline`, `clientLeft` returns `0`\n> regardless of the element's border.",
+ "clienttop": "\n\nThe width of the top border of an element in pixels. It is a read-only, integer\nproperty of element.\n\nAs it happens, all that lies between the two locations (`offsetTop` and\nclient area top) is the element's border. This is because the `offsetTop`\nindicates the location of the top of the border (not the margin) while the client area\nstarts immediately below the border, (client area includes padding.) Therefore, the\n**clientTop** value will always equal the integer portion of the\n`.getComputedStyle()` value for \"border-top-width\". (Actually might be\nMath.round(parseFloat()).) For example, if the computed \"border-top-width\" is zero,\nthen **`clientTop`** is also zero.\n\n> **Note:** This property will round the value to an integer. If you\n> need a fractional value, use [element.getBoundingClientRect].",
+ "clientwidth": "\n\nThe **`Element.clientWidth`** property is zero for inline\nelements and elements with no CSS; otherwise, it's the inner width of an element in\npixels. It includes padding but excludes borders, margins, and vertical scrollbars (if\npresent).\n\nWhen `clientWidth` is used on the root element (the\n`<html>` element), (or on `<body>` if the document is\nin quirks mode), the viewport's width (excluding any scrollbar) is returned. [This is a special case of `clientWidth`](https://www.w3.org/TR/2016/WD-cssom-view-1-20160317/#dom-element-clientwidth).\n\n> **Note:** This property will round the value to an integer. If you need\n> a fractional value, use [element.getBoundingClientRect].",
+ "closest": "\n\nThe **`closest()`** method of the [Element] interface traverses the element and its parents (heading toward the document root) until it finds a node that matches the specified [CSS selector](/en-US/docs/Learn/CSS/Building_blocks/Selectors).",
+ "compositionend_event": "\n\nThe **`compositionend`** event is fired when a text composition system such as an completes or cancels the current composition session.\n\nFor example, this event could be fired after a user finishes entering a Chinese character using a [Pinyin](https://en.wikipedia.org/wiki/Pinyin) IME.",
+ "compositionstart_event": "\n\nThe **`compositionstart`** event is fired when a text composition system such as an starts a new composition session.\n\nFor example, this event could be fired after a user starts entering a Chinese character using a [Pinyin](https://en.wikipedia.org/wiki/Pinyin) IME.",
+ "compositionupdate_event": "\n\nThe **`compositionupdate`** event is fired when a new character is received in the context of a text composition session controlled by a text composition system such as an .\n\nFor example, this event could be fired while a user enters a Chinese character using a [Pinyin](https://en.wikipedia.org/wiki/Pinyin) IME.",
+ "computedstylemap": "\n\nThe **`computedStyleMap()`** method of\nthe [Element] interface returns a [StylePropertyMapReadOnly]\ninterface which provides a read-only representation of a CSS declaration block that is\nan alternative to [CSSStyleDeclaration].",
+ "contentvisibilityautostatechange_event": "\n\nThe **`contentvisibilityautostatechange`** event fires on any element with set on it when it starts or stops being [relevant to the user](/en-US/docs/Web/CSS/CSS_containment#relevant_to_the_user) and [skipping its contents](/en-US/docs/Web/CSS/CSS_containment#skips_its_contents).\n\nWhile the element is not relevant (between the start and end events), the user agent skips an element's rendering, including layout and painting, which can significantly improve page rendering speed.\nThe [element/contentvisibilityautostatechange_event] event provides a way for an app's code to also start or stop rendering processes (e.g. drawing on a `canvas`) when they are not needed, thereby conserving processing power.\n\nNote that even when hidden from view, element contents will remain semantically relevant (e.g. to assistive technology users), so this signal should not be used to skip significant semantic DOM updates.",
+ "contextmenu_event": "\n\nThe **`contextmenu`** event fires when the user attempts to open a context menu. This event is typically triggered by clicking the right mouse button, or by pressing the context menu key.\n\nIn the latter case, the context menu is displayed at the bottom left of the focused element, unless the element is a tree, in which case the context menu is displayed at the bottom left of the current row.\n\nAny right-click event that is not disabled (by calling the click event's [Event.preventDefault] method) will result in a `contextmenu` event being fired at the targeted element.\n\n> **Note:** An exception to this in Firefox: if the user holds down the <kbd>Shift</kbd> key while right-clicking, then the context menu will be shown without a `contextmenu` event being fired.",
+ "copy_event": "\n\nThe **`copy`** event fires when the user initiates a copy action through the browser's user interface.\n\nThe event's default action is to copy the selection (if any) to the clipboard.\n\nA handler for this event can _modify_ the clipboard contents by calling [DataTransfer.setData] on the event's [ClipboardEvent.clipboardData] property, and cancelling the event's default action using [Event/preventDefault].\n\nHowever, the handler cannot _read_ the clipboard data.\n\nIt's possible to construct and dispatch a [synthetic](/en-US/docs/Web/Events/Creating_and_triggering_events) `copy` event, but this will not affect the system clipboard.",
+ "cut_event": "\n\nThe **`cut`** event is fired when the user has initiated a \"cut\" action through the browser's user interface.\n\nIf the user attempts a cut action on uneditable content, the `cut` event still fires but the event object contains no data.\n\nThe event's default action is to copy the current selection (if any) to the system clipboard and remove it from the document.\n\nA handler for this event can _modify_ the clipboard contents by calling [DataTransfer.setData] on the event's [ClipboardEvent.clipboardData] property, and cancelling the default action using [Event/preventDefault].\n\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.\n\nThe handler cannot _read_ the clipboard data.\n\nIt's possible to construct and dispatch a [synthetic](/en-US/docs/Web/Events/Creating_and_triggering_events) `cut` event, but this will not affect the system clipboard or the document's contents.",
+ "dblclick_event": "\n\nThe **`dblclick`** event fires when a pointing device button (such as a mouse's primary button) is double-clicked; that is, when it's rapidly clicked twice on a single element within a very short span of time.\n\n`dblclick` fires after two [Element/click_event] events (and by extension, after two pairs of [Element.mousedown_event] and [Element.mouseup_event] events).",
+ "domactivate_event": "\n\nThe **`DOMActivate`** event is fired at an element when it becomes active, such as when it is clicked on using the mouse or a keypress is used to navigate to it.",
+ "dommousescroll_event": "\n\nThe DOM `DOMMouseScroll` event is fired asynchronously when mouse wheel or similar device is operated and the accumulated scroll amount is over 1 line or 1 page since last event. It's represented by the [MouseScrollEvent] interface. This event was only implemented by Firefox. You should instead use the standard [Element.wheel_event] event.\n\nIf you want to prevent the default action of mouse wheel events, it's not enough to handle only this event on Gecko because If scroll amount by a native mouse wheel event is less than 1 line (or less than 1 page when the system setting is by page scroll), other mouse wheel events may be fired without this event.\n\nOn Gecko 17 (Firefox 17) or later, you need to call `preventDefault()` of `wheel` events which must be fired for every native event.\n\nUse the standardized [Element/wheel_event] event if available.",
+ "elementtiming": "\n\nThe **`elementTiming`** property of the [Element] interface identifies elements for observation in the [PerformanceElementTiming] API. The `elementTiming` property reflects the value of the [`elementtiming`](/en-US/docs/Web/HTML/Attributes/elementtiming) attribute.",
+ "firstelementchild": "\n\nThe **`Element.firstElementChild`** read-only property\nreturns an element's first child [Element], or `null` if there\nare no child elements.\n\n`Element.firstElementChild` includes only element nodes.\nTo get all child nodes, including non-element nodes like text and comment nodes, use [Node.firstChild].",
+ "focus_event": "\n\nThe **`focus`** event fires when an element has received focus. The event does not bubble, but the related [Element/focusin_event] event that follows does bubble.\n\nThe opposite of `focus` is the [Element/blur_event] event, which fires when the element has _lost_ focus.\n\nThe `focus` event is not cancelable.",
+ "focusin_event": "\n\nThe **`focusin`** event fires when an element has received focus, after the [Element/focus_event] event. The two events differ in that `focusin` bubbles, while `focus` does not.\n\nThe opposite of `focusin` is the [Element/focusout_event] event, which fires when the element has lost focus.\n\nThe `focusin` event is not cancelable.",
+ "focusout_event": "\n\nThe **`focusout`** event fires when an element has lost focus, after the [Element/blur_event] event. The two events differ in that `focusout` bubbles, while `blur` does not.\n\nThe opposite of `focusout` is the [Element/focusin_event] event, which fires when the element has received focus.\n\nThe `focusout` event is not cancelable.",
+ "fullscreenchange_event": "\n\nThe `fullscreenchange` event is fired immediately after an [Element] switches into or out of fullscreen mode.\n\nThis event is sent to the `Element` which is transitioning into or out of fullscreen mode.\n\nTo find out whether the `Element` is entering or exiting fullscreen mode, check the value of [Document.fullscreenElement]: if this value is `null` then the element is exiting fullscreen mode, otherwise it is entering fullscreen mode.\n\nThis event is not cancelable.",
+ "fullscreenerror_event": "\n\nThe `fullscreenerror` event is fired when the browser cannot switch to fullscreen mode.\n\nAs with the [`fullscreenchange` event](/en-US/docs/Web/API/Element/fullscreenchange_event), two `fullscreenerror` events are fired; the first is sent to the [Element] which failed to change modes, and the second is sent to the [Document] which owns that element.\n\nFor some reasons that switching into fullscreen mode might fail, see [the guide to the Fullscreen API](/en-US/docs/Web/API/Fullscreen_API/Guide).\n\nThis event is not cancelable.",
+ "gesturechange_event": "\n\nThe **`gesturechange`** event is fired when digits move during a touch gesture.\n\nIt is a proprietary event specific to WebKit.",
+ "gestureend_event": "\n\nThe **`gestureend`** event is fired when there are no longer multiple fingers contacting the touch surface, thus ending the gesture.\n\nIt is a proprietary event specific to WebKit.",
+ "gesturestart_event": "\n\nThe **`gesturestart`** event is fired when multiple fingers contact the touch surface, thus starting a new gesture. During the gesture, [Element/gesturechange_event] events will be fired. When the gesture has ended, a [Element/gestureend_event] event will be fired.\n\nIt is a proprietary event specific to WebKit.",
+ "getanimations": "\n\nThe `getAnimations()` method of the [Element] interface\n(specified on the `Animatable` mixin) returns an array of all\n[Animation] objects affecting this element or which are scheduled to do so\nin future. It can optionally return [Animation] objects for descendant\nelements too.\n\n> **Note:** This array includes [CSS Animations](/en-US/docs/Web/CSS/CSS_animations), [CSS Transitions](/en-US/docs/Web/CSS/CSS_transitions), and [Web Animations](/en-US/docs/Web/API/Web_Animations_API).",
+ "getattribute": "\n\nThe **`getAttribute()`** method of the\n[Element] interface returns the value of a specified attribute on the\nelement.\n\nIf the given attribute does not exist, the value returned will\neither be `null` or `\"\"` (the empty string); see [Non-existing attributes](#non-existing_attributes) for details.",
+ "getattributenames": "\n\nThe **`getAttributeNames()`** method of the\n[Element] interface returns the attribute names of the element as an\n`Array` of strings. If the element has no attributes it returns an empty\narray.\n\nUsing `getAttributeNames()` along with\n[Element.getAttribute], is a memory-efficient and\nperformant alternative to accessing [Element.attributes].\n\nThe names returned by **`getAttributeNames()`** are _qualified_ attribute names, meaning that attributes with a namespace prefix have their names returned with that namespace prefix (_not_ the actual namespace), followed by a colon, followed by the attribute name (for example, **`xlink:href`**), while any attributes which have no namespace prefix have their names returned as-is (for example, **`href`**).",
+ "getattributenode": "\n\nReturns the specified attribute of the specified element, as an `Attr` node.",
+ "getattributenodens": "\n\nReturns the `Attr` node for the attribute with the given namespace and name.",
+ "getattributens": "\n\nThe **`getAttributeNS()`** method of the [Element]\ninterface returns the string value of the attribute with the specified namespace and\nname. If the named attribute does not exist, the value returned will either be\n`null` or `\"\"` (the empty string); see [Notes](#notes) for\ndetails.",
+ "getboundingclientrect": "\n\nThe **`Element.getBoundingClientRect()`** method returns a\n[DOMRect] object providing information about the size of an element and its\nposition relative to the [viewport](/en-US/docs/Glossary/Viewport).",
+ "getclientrects": "\n\nThe **`getClientRects()`** method of the [Element]\ninterface returns a collection of [DOMRect] objects that indicate the\nbounding rectangles for each [CSS border box](/en-US/docs/Web/CSS/CSS_box_model/Introduction_to_the_CSS_box_model) in a client.\n\nMost elements only have one border box each, but a multiline [inline-level element](/en-US/docs/Glossary/Inline-level_content) (such as a multiline\n`span` element, by default) has a border box around each line.",
+ "getelementsbyclassname": "\n\nThe [Element] method\n**`getElementsByClassName()`** returns a live\n[HTMLCollection] which contains every descendant element which has the\nspecified class name or names.\n\nThe method [Document.getElementsByClassName]\non the [Document] interface works essentially the same way, except it acts\non the entire document, starting at the document root.",
+ "getelementsbytagname": "\n\nThe\n**`Element.getElementsByTagName()`** method returns a live\n[HTMLCollection] of elements with the given [tag name](/en-US/docs/Web/API/Element/tagName).\n\nAll descendants of the\nspecified element are searched, but not the element itself. The returned list is\n_live_, which means it updates itself with the DOM tree automatically.\nTherefore, there is no need to call `Element.getElementsByTagName()` with\nthe same element and arguments repeatedly if the DOM changes in between calls.\n\nWhen called on an HTML element in an HTML document, `getElementsByTagName`\nlower-cases the argument before searching for it. This is undesirable when trying to\nmatch SVG elements (such as\n[`<linearGradient>`](/en-US/docs/Web/SVG/Element/linearGradient))\nin an HTML document. Instead, use [Element.getElementsByTagNameNS],\nwhich preserves the capitalization of the tag name.\n\n`Element.getElementsByTagName` is similar to\n[Document.getElementsByTagName], except that it only searches for\nelements that are descendants of the specified element.",
+ "getelementsbytagnamens": "\n\nThe **`Element.getElementsByTagNameNS()`** method returns a\nlive [HTMLCollection] of elements with the given tag name belonging to the\ngiven namespace. It is similar to [Document.getElementsByTagNameNS], except\nthat its search is restricted to descendants of the specified element.",
+ "gotpointercapture_event": "\n\nThe **`gotpointercapture`** event is fired when an element captures a pointer using [`setPointerCapture()`](/en-US/docs/Web/API/Element/setPointerCapture).",
+ "hasattribute": "\n\nThe **`Element.hasAttribute()`** method returns a\n**Boolean** value indicating whether the specified element has the\nspecified attribute or not.",
+ "hasattributens": "\n\n`hasAttributeNS` returns a boolean value indicating whether the current element has the specified attribute.",
+ "hasattributes": "\n\nThe **`hasAttributes()`** method of the [Element]\ninterface returns a boolean value indicating whether the current element has any\nattributes or not.",
+ "haspointercapture": "\n\nThe **`hasPointerCapture()`** method of the\n[Element] interface checks whether the element on which it is invoked has\npointer capture for the pointer identified by the given pointer ID.",
+ "id": "\n\nThe **`id`** property of the [Element] interface\nrepresents the element's identifier, reflecting the\n[**`id`**](/en-US/docs/Web/HTML/Global_attributes/id)\nglobal attribute.\n\nIf the `id` value is not the empty string, it must be unique in a document.\n\nThe `id` is often used with [Document.getElementById] to retrieve a particular element. Another common case is to use an\nelement's [ID as a selector](/en-US/docs/Web/CSS/ID_selectors) when styling\nthe document with [CSS](/en-US/docs/Web/CSS).\n\n> **Note:** Identifiers are case-sensitive, but you should avoid creating\n> IDs that differ only in the capitalization.",
+ "innerhtml": "\n\nThe [Element] property\n**`innerHTML`** gets or sets the HTML or XML markup contained\nwithin the element.\n\nTo insert the HTML into the document rather than replace the contents of an element,\nuse the method [Element.insertAdjacentHTML].",
+ "input_event": "\n\nThe **`input`** event fires when the `value` of an `input`, `select`, or `textarea` element has been changed as a direct result of a user action (such as typing in a textbox or checking a checkbox).\n\nThe event also applies to elements with [HTMLElement.contentEditable] enabled, and to any element when [Document.designMode] is turned on. In the case of `contenteditable` and `designMode`, the event target is the _editing host_. If these properties apply to multiple elements, the editing host is the nearest ancestor element whose parent isn't editable.\n\nFor `<input>` elements with `type=checkbox` or `type=radio`, the `input` event should fire whenever a user toggles the control, per the [HTML Living Standard specification](https://html.spec.whatwg.org/multipage/input.html#the-input-element:event-input-2). However, historically this has not always been the case. Check compatibility, or use the [HTMLElement/change_event] event instead for elements of these types.\n\nFor `textarea` and `input` elements that accept text input (`type=text`, `type=tel`, etc.), the interface is [InputEvent]; for others, the interface is [Event].\n\nThe `input` event is fired every time the `value` of the element changes. This is unlike the [HTMLElement/change_event] event, which only fires when the value is committed, such as by pressing the enter key or selecting a value from a list of options. Note that the `input` event is not fired when JavaScript changes an element's `value` programmatically.",
+ "insertadjacentelement": "\n\nThe **`insertAdjacentElement()`** method of the\n[Element] interface inserts a given element node at a given position\nrelative to the element it is invoked upon.",
+ "insertadjacenthtml": "\n\nThe **`insertAdjacentHTML()`** method of the\n[Element] interface parses the specified text as HTML or XML and inserts\nthe resulting nodes into the DOM tree at a specified position.",
+ "insertadjacenttext": "\n\nThe **`insertAdjacentText()`** method of the [Element] interface, given a relative position and a string, inserts a new text node at the given position relative to the element it is called from.",
+ "keydown_event": "\n\nThe **`keydown`** event is fired when a key is pressed.\n\nUnlike the deprecated [Element/keypress_event] event, the `keydown` event is fired for all keys, regardless of whether they produce a character value.\n\nThe `keydown` and [`keyup`](/en-US/docs/Web/API/Element/keyup_event) events provide a code indicating which key is pressed, while `keypress` indicates which character was entered. For example, a lowercase \"a\" will be reported as 65 by `keydown` and `keyup`, but as 97 by `keypress`. An uppercase \"A\" is reported as 65 by all events.\n\nKeyboard events are only generated by `<input>`, `<textarea>`, `<summary>` and anything with the `contentEditable` or `tabindex` attribute. If not caught, they [bubble](/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_bubbling) up the [DOM tree](/en-US/docs/Web/API/Document_object_model/Using_the_Document_Object_Model#what_is_a_dom_tree) until they reach [Document].\n\nSince Firefox 65, the `keydown` and [`keyup`](/en-US/docs/Web/API/Element/keyup_event) events are now fired during IME composition, to improve cross-browser compatibility for CJKT users ([Firefox bug 354358](https://bugzil.la/354358)). To ignore all `keydown` events that are part of composition, do something like this (229 is a special value set for a `keyCode` relating to an event that has been processed by an IME):\n\n```js\neventTarget.addEventListener(\"keydown\", (event) => {\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n // do something\n});\n```",
+ "keypress_event": " \n\nThe **`keypress`** event is fired when a key that produces a character value is pressed down.\n\nExamples of keys that produce a character value are alphabetic, numeric, and punctuation keys. Examples of keys that don't produce a character value are modifier keys such as <kbd>Alt</kbd>, <kbd>Shift</kbd>, <kbd>Ctrl</kbd>, or <kbd>Meta</kbd>.\n\n> **Warning:** Since this event has been deprecated, you should use [`beforeinput`](/en-US/docs/Web/API/Element/beforeinput_event) or [`keydown`](/en-US/docs/Web/API/Element/keydown_event) instead.",
+ "keyup_event": "\n\nThe **`keyup`** event is fired when a key is released.\n\nThe [`keydown`](/en-US/docs/Web/API/Element/keydown_event) and `keyup` events provide a code indicating which key is pressed, while `keypress` indicates which character was entered. For example, a lowercase \"a\" will be reported as 65 by `keydown` and `keyup`, but as 97 by `keypress`. An uppercase \"A\" is reported as 65 by all events.\n\nKeyboard events are only generated by `<input>`, `<textarea>`, `<summary>` and anything with the `contentEditable` or `tabindex` attribute.\n\nSince Firefox 65, the `keyup` and [`keydown`](/en-US/docs/Web/API/Element/keydown_event) events are now fired during IME composition, to improve cross-browser compatibility for CJKT users ([Firefox bug 354358](https://bugzil.la/354358). To ignore all `keyup` events that are part of composition, do something like this (229 is a special value set for a `keyCode` relating to an event that has been processed by an input-method editor ([IME](https://www.w3.org/TR/ime-api/#IME))):\n\n```js\neventTarget.addEventListener(\"keyup\", (event) => {\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n // do something\n});\n```",
+ "lastelementchild": "\n\nThe **`Element.lastElementChild`** read-only property\nreturns an element's last child [Element], or `null` if there\nare no child elements.\n\n`Element.lastElementChild` includes only element nodes.\nTo get all child nodes, including non-element nodes like text and comment nodes, use [Node.lastChild].",
+ "localname": "\n\nThe **`Element.localName`** read-only property returns the\nlocal part of the qualified name of an element.",
+ "lostpointercapture_event": "\n\nThe **`lostpointercapture`** event is fired when a [captured pointer](/en-US/docs/Web/API/Pointer_events#pointer_capture) is released.",
+ "matches": "\n\nThe **`matches()`** method of the [Element] interface tests whether the element would be selected by the specified [CSS selector](/en-US/docs/Learn/CSS/Building_blocks/Selectors).",
+ "mousedown_event": "\n\nThe **`mousedown`** event is fired at an [Element] when a pointing device button is pressed while the pointer is inside the element.\n\n> **Note:** This differs from the [Element/click_event] event in that `click` is fired after a full click action occurs; that is, the mouse button is pressed and released while the pointer remains inside the same element. `mousedown` is fired the moment the button is initially pressed.",
+ "mouseenter_event": "\n\nThe **`mouseenter`** event is fired at an [Element] when a pointing device (usually a mouse) is initially moved so that its hotspot is within the element at which the event was fired.",
+ "mouseleave_event": "\n\nThe **`mouseleave`** event is fired at an [Element] when the cursor of a pointing device (usually a mouse) is moved out of it.\n\n`mouseleave` and [Element/mouseout_event] are similar but differ in that `mouseleave` does not bubble and `mouseout` does. This means that `mouseleave` is fired when the pointer has exited the element _and_ all of its descendants, whereas `mouseout` is fired when the pointer leaves the element _or_ leaves one of the element's descendants (even if the pointer is still within the element).",
+ "mousemove_event": "\n\nThe `mousemove` event is fired at an element when a pointing device (usually a mouse) is moved while the cursor's hotspot is inside it.",
+ "mouseout_event": "\n\nThe **`mouseout`** event is fired at an [Element] when a pointing device (usually a mouse) is used to move the cursor so that it is no longer contained within the element or one of its children.\n\n`mouseout` is also delivered to an element if the cursor enters a child element, because the child element obscures the visible area of the element.",
+ "mouseover_event": "\n\nThe **`mouseover`** event is fired at an [Element] when a pointing device (such as a mouse or trackpad) is used to move the cursor onto the element or one of its child elements.",
+ "mouseup_event": "\n\nThe **`mouseup`** event is fired at an [Element] when a button on a pointing device (such as a mouse or trackpad) is released while the pointer is located inside it.\n\n`mouseup` events are the counterpoint to [Element.mousedown_event] events.",
+ "mousewheel_event": "\n\nThe _obsolete_ and _non-standard_ **`mousewheel`** event is fired asynchronously at an [Element] to provide updates while a mouse wheel or similar device is operated. The `mousewheel` event was never part of any standard, and while it was implemented by several browsers, it was never implemented by Firefox.\n\n> **Note:** Instead of this obsolete event, use the standard [Element.wheel_event] event.",
+ "mozmousepixelscroll_event": "\n\nThe Firefox-only, _non-standard_, and _obsolete_ **`MozMousePixelScroll`** event is fired at an [Element] asynchronously when a mouse wheel or similar device is operated. It's represented by the [MouseScrollEvent] interface.\n\n> **Note:** Do not use this non-standard and obsolete event. Instead, you should always use the standard [Element.wheel_event] event.",
+ "namespaceuri": "\n\nThe **`Element.namespaceURI`** read-only property returns the namespace URI of the element, or `null` if the element is not in a namespace.",
+ "nextelementsibling": "\n\nThe **`Element.nextElementSibling`** read-only\nproperty returns the element immediately following the specified one in its parent's\nchildren list, or `null` if the specified element is the last one in the list.",
+ "outerhtml": "\n\nThe **`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\nTo only obtain the HTML representation of the contents of an element, or to replace the\ncontents of an element, use the [Element.innerHTML] property\ninstead.",
+ "part": "\n\nThe **`part`** property of the [Element] interface\nrepresents the part identifier(s) of the element (i.e. set using the `part`\nattribute), returned as a [DOMTokenList]. These can be used to style parts\nof a shadow DOM, via the pseudo-element.",
+ "paste_event": "\n\nThe **`paste`** event is fired when the user has initiated a \"paste\" action through the browser's user interface.\n\nIf the cursor is in an editable context (for example, in a `textarea` or an element with [`contenteditable`](/en-US/docs/Web/HTML/Global_attributes/contenteditable) attribute set to `true`) then the default action is to insert the contents of the clipboard into the document at the cursor position.\n\nA handler for this event can access the clipboard contents by calling [DataTransfer/getData] on the event's `clipboardData` property.\n\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.\n\nIt's possible to construct and dispatch a [synthetic](/en-US/docs/Web/Events/Creating_and_triggering_events) `paste` event, but this will not affect the document's contents.",
+ "pointercancel_event": "\n\nThe **`pointercancel`** event is fired when the browser determines that there are unlikely to be any more pointer events, or if after the [Element/pointerdown_event] event is fired, the pointer is then used to manipulate the viewport by panning, zooming, or scrolling.\n\nSome examples of situations that will trigger a `pointercancel` event:\n\n- A hardware event occurs that cancels the pointer activities. This may include, for example, the user switching applications using an application switcher interface or the \"home\" button on a mobile device.\n- The device's screen orientation is changed while the pointer is active.\n- The browser decides that the user started pointer input accidentally. This can happen if, for example, the hardware supports palm rejection to prevent a hand resting on the display while using a stylus from accidentally triggering events.\n- The CSS property prevents the input from continuing.\n- When the user interacts with too many simultaneous pointers, the browser can fire this event for all existing pointers (even if the user is still touching the screen).\n\n> **Note:** After the `pointercancel` event is fired, the browser will also send [Element/pointerout_event] followed by [Element/pointerleave_event].",
+ "pointerdown_event": "\n\nThe `pointerdown` event is fired when a pointer becomes active. For mouse, it is fired when the device transitions from no buttons pressed to at least one button pressed. For touch, it is fired when physical contact is made with the digitizer. For pen, it is fired when the stylus makes physical contact with the digitizer.\n\n> **Note:** For touchscreen browsers that allow [direct manipulation](https://w3c.github.io/pointerevents/#dfn-direct-manipulation), a `pointerdown` event triggers [implicit pointer capture](https://w3c.github.io/pointerevents/#dfn-implicit-pointer-capture), which causes the target to capture all subsequent pointer events as if they were occurring over the capturing target. Accordingly, `pointerover`, `pointerenter`, `pointerleave`, and `pointerout` **will not fire** as long as this capture is set. The capture can be released manually by calling [element.releasePointerCapture] on the target element, or it will be implicitly released after a `pointerup` or `pointercancel` event.",
+ "pointerenter_event": "\n\nThe `pointerenter` event fires when a pointing device is moved into the hit test boundaries of an element or one of its descendants, including as a result of a [Element/pointerdown_event] event from a device that does not support hover (see [Element/pointerdown_event]).",
+ "pointerleave_event": "\n\nThe `pointerleave` event is fired when a pointing device is moved out of the hit test boundaries of an element. For pen devices, this event is fired when the stylus leaves the hover range detectable by the digitizer.",
+ "pointermove_event": "\n\nThe `pointermove` event is fired when a pointer changes coordinates, and the pointer has not been [canceled](/en-US/docs/Web/API/Element/pointercancel_event) by a browser [touch-action](/en-US/docs/Web/CSS/touch-action).",
+ "pointerout_event": "\n\nThe `pointerout` event is fired for several reasons including: pointing device is moved out of the _hit test_ boundaries of an element; firing the [Element/pointerup_event] event for a device that does not support hover (see [Element/pointerup_event]); after firing the [Element/pointercancel_event] event (see [Element/pointercancel_event]); when a pen stylus leaves the hover range detectable by the digitizer.",
+ "pointerover_event": "\n\nThe `pointerover` event is fired when a pointing device is moved into an element's hit test boundaries.",
+ "pointerrawupdate_event": "\n\nThe **`pointerrawupdate`** [PointerEvent] is fired when a pointer changes any properties that don't fire [Element/pointerdown_event] or [Element/pointerup_event] events.\nSee [Element/pointermove_event] for a list of these properties.\n\nThe `pointerrawupdate` event may have coalesced events if there is already another `pointerrawupdate` event with the same pointer ID that hasn't been dispatched in the event loop.\nFor information on coalesced events, see the [PointerEvent.getCoalescedEvents] documentation.\n\nListeners for `pointerrawupdate` events should only be added if your JavaScript needs high-frequency events and can handle them as quickly as they are dispatched.\nFor most use cases, other pointer event types should suffice as there may be performance implications to adding listeners for `pointerrawupdate` events.",
+ "pointerup_event": "\n\nThe `pointerup` event is fired when a pointer is no longer active. Remember that it is possible to get a [`pointercancel`](/en-US/docs/Web/API/Element/pointercancel_event) event instead.",
+ "prefix": "\n\nThe **`Element.prefix`** read-only property returns the\nnamespace prefix of the specified element, or `null` if no prefix is\nspecified.",
+ "prepend": "\n\nThe **`Element.prepend()`** method inserts a set of\n[Node] objects or string objects before the first child\nof the [Element]. String objects are inserted as\nequivalent [Text] nodes.",
+ "previouselementsibling": "\n\nThe **`Element.previousElementSibling`**\nread-only property returns the [Element] immediately prior to the specified\none in its parent's children list, or `null` if the specified element is the first one in the list.",
+ "queryselector": "\n\nThe **`querySelector()`** method of the [Element]\ninterface returns the first element that is a descendant of the element on which it is\ninvoked that matches the specified group of selectors.",
+ "queryselectorall": "\n\nThe [Element] method **`querySelectorAll()`**\nreturns a static (not live) [NodeList] representing a list of elements\nmatching the specified group of selectors which are descendants of the element on which\nthe method was called.",
+ "releasepointercapture": "\n\nThe **`releasePointerCapture()`** method of the\n[Element] interface releases (stops) _pointer capture_ that was\npreviously set for a specific ([PointerEvent]) _pointer_.\n\nSee the [Element.setPointerCapture] method\nfor a description of _pointer capture_ and how to set it for a particular\nelement.",
+ "remove": "\n\nThe **`Element.remove()`** method removes the element from the DOM.",
+ "removeattribute": "\n\nThe [Element] method\n**`removeAttribute()`** removes the attribute with the\nspecified name from the element.",
+ "removeattributenode": "\n\nThe **`removeAttributeNode()`** method of the\n[Element] interface removes the specified attribute from the element.",
+ "removeattributens": "\n\nThe **`removeAttributeNS()`** method of the\n[Element] interface removes the specified attribute from an element.",
+ "replacechildren": "\n\nThe **`Element.replaceChildren()`** method replaces the\nexisting children of a [Node] with a specified new set of children. These\ncan be string or [Node] objects.",
+ "replacewith": "\n\nThe **`Element.replaceWith()`** method replaces this\n`Element` in the children list of its parent with a set of\n[Node] or string objects. String\nobjects are inserted as equivalent [Text] nodes.",
+ "requestfullscreen": "\n\nThe **`Element.requestFullscreen()`**\nmethod issues an asynchronous request to make the element be displayed in fullscreen\nmode.\n\nIt's not guaranteed that the element will be put into full screen mode. If permission\nto enter full screen mode is granted, the returned `Promise` will resolve\nand the element will receive a [Element/fullscreenchange_event] event to let it know that\nit's now in full screen mode. If permission is denied, the promise is rejected and the\nelement receives a [Element/fullscreenerror_event] event instead. If the element has been\ndetached from the original document, then the document receives these events instead.",
+ "requestpointerlock": "\n\nThe **`requestPointerLock()`** method of the [Element] interface lets you asynchronously ask for the pointer to be locked on the given element.\n\nTo track the success or failure of the request, it is necessary to listen for the [Document/pointerlockchange_event] and [Document/pointerlockerror_event] events at the [Document] level.\n\n> **Note:** In the current specification, `requestPointerLock()` only communicates the success or failure of the request by firing [Document/pointerlockchange_event] or [Document/pointerlockerror_event] events. [A proposed update to the specification](https://github.com/w3c/pointerlock/pull/49) updates `requestPointerLock()` to return a `Promise` which communicates success or failure. This page documents the version that returns a `Promise`. However, note that this version is not yet a standard and is not implemented by all browsers. See [Browser compatibility](#browser_compatibility) for more information.",
+ "scroll": "\n\nThe **`scroll()`** method of the [Element]\ninterface scrolls the element to a particular set of coordinates inside a given\nelement.",
+ "scroll_event": "\n\nThe **`scroll`** event fires when an element has been scrolled.\nTo detect when scrolling has completed, see the .",
+ "scrollby": "\n\nThe **`scrollBy()`** method of the [Element]\ninterface scrolls an element by the given amount.",
+ "scrollend_event": "\n\nThe **`scrollend`** event fires when element scrolling has completed.\nScrolling is considered completed when the scroll position has no more pending updates and the user has completed their gesture.\n\nScroll position updates include smooth or instant mouse wheel scrolling, keyboard scrolling, scroll-snap events, or other APIs and gestures which cause the scroll position to update.\nUser gestures like touch panning or trackpad scrolling aren't complete until pointers or keys have released.\nIf the scroll position did not change, then no scrollend event fires.\n\nFor detecting when scrolling inside a Document is complete, see the .",
+ "scrollheight": "\n\nThe **`Element.scrollHeight`** read-only property is a\nmeasurement of the height of an element's content, including content not visible on the\nscreen due to overflow.\n\n\n\nThe `scrollHeight` value is equal to the minimum height the element would\nrequire in order to fit all the content in the viewport without using a vertical\nscrollbar. The height is measured in the same way as [Element.clientHeight]: it includes the element's padding, but not its border, margin or\nhorizontal scrollbar (if present). It can also include the height of pseudo-elements\nsuch as or . If the element's content can\nfit without a need for vertical scrollbar, its `scrollHeight` is equal to\n[Element.clientHeight]\n\n> **Note:** This property will round the value to an integer. If you need a fractional value, use\n> [Element.getBoundingClientRect].",
+ "scrollintoview": "\n\nThe [Element] interface's\n**`scrollIntoView()`** method scrolls the element's ancestor\ncontainers such that the element on which `scrollIntoView()` is called is\nvisible to the user.",
+ "scrollintoviewifneeded": "\n\nThe **`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()`](/en-US/docs/Web/API/Element/scrollIntoView) method.",
+ "scrollleft": "\n\nThe **`Element.scrollLeft`** property gets or sets the number\nof pixels that an element's content is scrolled from its left edge.\n\nIf the element's `direction` is `rtl` (right-to-left), then\n`scrollLeft` is `0` when the scrollbar is at its rightmost\nposition (at the start of the scrolled content), and then increasingly negative as you\nscroll towards the end of the content.\n\nIt can be specified as any integer value. However:\n\n- If the element can't be scrolled (e.g., it has no overflow), `scrollLeft`\n is set to `0`.\n- If specified as a value less than `0` (greater than `0` for\n right-to-left elements), `scrollLeft` is set to `0`.\n- If specified as a value greater than the maximum that the content can be scrolled,\n `scrollLeft` is set to the maximum.\n\n> **Warning:** On systems using display scaling, `scrollLeft` may give you a decimal\n> value.",
+ "scrollleftmax": "\n\nThe **`Element.scrollLeftMax`** read-only property returns a\nnumber representing the maximum left scroll offset possible for the\nelement.",
+ "scrollto": "\n\nThe **`scrollTo()`** method of the [Element]\ninterface scrolls to a particular set of coordinates inside a given element.",
+ "scrolltop": "\n\nThe **`Element.scrollTop`** property gets or sets the number of pixels that an element's content is scrolled vertically.\n\nAn element's `scrollTop` value is a measurement of the distance from the element's top to its topmost _visible_ content. When an element's content does not generate a vertical scrollbar, then its `scrollTop` value is `0`.\n\n`scrollTop` can be set to any integer value, with certain caveats:\n\n- If the element can't be scrolled (e.g. it has no overflow or if the element has a property of \"**non-scrollable**\"), `scrollTop` is `0`.\n- `scrollTop` doesn't respond to negative values; instead, it sets itself back to `0`.\n- If set to a value greater than the maximum available for the element, `scrollTop` settles itself to the maximum value.\n\nWhen `scrollTop` is used on the root element (the `<html>` element), the `scrollY` of the window is returned. [This is a special case of `scrollTop`](https://www.w3.org/TR/2016/WD-cssom-view-1-20160317/#dom-element-scrolltop).\n\n> **Warning:** On systems using display scaling, `scrollTop` may give you a decimal value.",
+ "scrolltopmax": "\n\nThe **`Element.scrollTopMax`** read-only property returns a\nnumber representing the maximum top scroll offset possible for the\nelement.",
+ "scrollwidth": "\n\nThe **`Element.scrollWidth`** read-only property is a\nmeasurement of the width of an element's content, including content not visible on the\nscreen due to overflow.\n\nThe `scrollWidth` value is equal to the minimum width the element would\nrequire in order to fit all the content in the viewport without using a horizontal\nscrollbar. The width is measured in the same way as [Element.clientWidth]: it includes the element's padding, but not its border, margin or\nvertical scrollbar (if present). It can also include the width of pseudo-elements such\nas or . If the element's content can fit\nwithout a need for horizontal scrollbar, its `scrollWidth` is equal to\n[Element.clientWidth]\n\n> **Note:** This property will round the value to an integer. If you need a fractional value,\n> use [element.getBoundingClientRect].",
+ "securitypolicyviolation_event": "\n\nThe **`securitypolicyviolation`** event is fired when a [Content Security Policy](/en-US/docs/Web/HTTP/CSP) is violated.\n\nThe event is fired on the element that violates the policy and bubbles.\nIt is normally handled by an event handler on the [Window] or [Document] object.\n\nThe handler can be assigned using the `onsecuritypolicyviolation` property or using [EventTarget.addEventListener].\n\n> **Note:** You must add the handler for this event to a top level object (i.e. [Window] or [Document]).\n> While the property exists in HTML elements, you can't assign a handler to the property until the elements have been loaded, by which time this event will already have fired.",
+ "setattribute": "\n\nSets the value of an attribute on the specified element. If\nthe attribute already exists, the value is updated; otherwise a new attribute is added\nwith the specified name and value.\n\nTo get the current value of an attribute, use [Element.getAttribute]; to remove an attribute, call [Element.removeAttribute].",
+ "setattributenode": "\n\nThe **`setAttributeNode()`** method adds a new\n`Attr` node to the specified element.",
+ "setattributenodens": "\n\n`setAttributeNodeNS` adds a new namespaced attribute node to an element.",
+ "setattributens": "\n\n`setAttributeNS` adds a new attribute or changes the value of an attribute\nwith the given namespace and name.",
+ "setcapture": "\n\nCall 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:** This interface never had much cross-browser\n> support and you probably looking for [element.setPointerCapture] instead,\n> from the Pointer Events API.",
+ "sethtml": "\n\nThe **`setHTML()`** method of the [Element] interface is used to parse and sanitize a string of HTML and then insert it into the DOM as a subtree of the element.\nIt should be used instead of [Element.innerHTML] for inserting untrusted strings of HTML into an element.\n\nThe parsing process drops any elements in the HTML string that are invalid in the context of the current element, while sanitizing removes any unsafe or otherwise unwanted elements, attributes or comments.\nThe default `Sanitizer()` configuration strips out XSS-relevant input by default, including `script` tags, custom elements, and comments.\nThe sanitizer configuration may be customized using [Sanitizer.Sanitizer] constructor options.",
+ "setpointercapture": "\n\nThe **`setPointerCapture()`** method of the\n[Element] interface is used to designate a specific element as the\n_capture target_ of future pointer events. Subsequent events for the pointer will\nbe targeted at the capture element until capture is released (via\n[Element.releasePointerCapture] or the\n[Element/pointerup_event] event is fired).\n\n> **Note:** Pointer capture will cause the target to capture all subsequent pointer events as if they were occurring over the capturing target. Accordingly, `pointerover`, `pointerenter`, `pointerleave`, and `pointerout` **will not fire** as long as this capture is set.\n> For touchscreen browsers that allow [direct manipulation](https://w3c.github.io/pointerevents/#dfn-direct-manipulation), an [implicit pointer capture](https://w3c.github.io/pointerevents/#dfn-implicit-pointer-capture) will be called on the element when a `pointerdown` event triggers. The capture can be released manually by calling [element.releasePointerCapture] on the target element, or it will be implicitly released after a `pointerup` or `pointercancel` event.\n\n### Overview of pointer capture\n\n_Pointer capture_ allows events for a particular _pointer event_\n([PointerEvent]) to be re-targeted to a particular element instead of the\nnormal (or _hit test_) target at a pointer's location. This can be used to ensure\nthat an element continues to receive pointer events even if the pointer device's contact\nmoves off the element (such as by scrolling or panning).",
+ "shadowroot": "\n\nThe `Element.shadowRoot` read-only property\nrepresents the shadow root hosted by the element.\n\nUse [Element.attachShadow] to add a shadow root to an existing element.",
+ "slot": "\n\nThe **`slot`** property of the [Element] interface\nreturns the name of the shadow DOM slot the element is inserted in.\n\nA slot is a placeholder inside a [web component](/en-US/docs/Web/API/Web_components) that users can fill with their own markup (see [Using templates and slots](/en-US/docs/Web/API/Web_components/Using_templates_and_slots) for more information).",
+ "tagname": "\n\nThe **`tagName`** read-only property\nof the [Element] interface returns the tag name of the element on which\nit's called.\n\nFor example, if the element is an `img`, its\n`tagName` property is `\"IMG\"` (for HTML documents; it may be cased\ndifferently for XML/XHTML documents).",
+ "toggleattribute": "\n\nThe **`toggleAttribute()`** method of the\n[Element] interface toggles a Boolean attribute (removing it if it is\npresent and adding it if it is not present) on the given element.",
+ "touchcancel_event": "\n\nThe `touchcancel` event is fired when one or more touch points have been disrupted in an implementation-specific manner.\n\nSome examples of situations that will trigger a `touchcancel` event:\n\n- A hardware event occurs that cancels the touch activities. This may include, for example, the user switching applications using an application switcher interface or the \"home\" button on a mobile device.\n- The device's screen orientation is changed while the touch is active.\n- The browser decides that the user started touch input accidentally. This can happen if, for example, the hardware supports palm rejection to prevent a hand resting on the display while using a stylus from accidentally triggering events.\n- The CSS property prevents the input from continuing.\n- When the user interacts with too many fingers simultaneously, the browser can fire this event for all existing pointers (even if the user is still touching the screen).",
+ "touchend_event": "\n\nThe `touchend` event fires when one or more touch points are removed from the touch surface. Remember that it is possible to get a [`touchcancel`](/en-US/docs/Web/API/Element/touchcancel_event) event instead.",
+ "touchmove_event": "\n\nThe `touchmove` event is fired when one or more touch points are moved along the touch surface.",
+ "touchstart_event": "\n\nThe `touchstart` event is fired when one or more touch points are placed on the touch surface.",
+ "transitioncancel_event": "\n\nThe **`transitioncancel`** event is fired when a [CSS transition](/en-US/docs/Web/CSS/CSS_transitions/Using_CSS_transitions) is canceled.",
+ "transitionend_event": "\n\nThe **`transitionend`** event is fired when a [CSS transition](/en-US/docs/Web/CSS/CSS_transitions/Using_CSS_transitions) has completed. In the case where a transition is removed before completion, such as if the is removed or `display` is set to `none`, then the event will not be generated.\n\nThe `transitionend` event is fired in both directions - as it finishes transitioning to the transitioned state, and when it fully reverts to the default or non-transitioned state. If there is no transition delay or duration, if both are 0s or neither is declared, there is no transition, and none of the transition events are fired. If the `transitioncancel` event is fired, the `transitionend` event will not fire.\n\nThis event is not cancelable.",
+ "transitionrun_event": "\n\nThe **`transitionrun`** event is fired when a [CSS transition](/en-US/docs/Web/CSS/CSS_transitions/Using_CSS_transitions) is first created, i.e. before any has begun.\n\nThis event is not cancelable.",
+ "transitionstart_event": "\n\nThe **`transitionstart`** event is fired when a [CSS transition](/en-US/docs/Web/CSS/CSS_transitions/Using_CSS_transitions) has actually started, i.e., after any has ended.\n\nThis event is not cancelable.",
+ "webkitmouseforcechanged_event": "\n\nThe non-standard **`webkitmouseforcechanged`** event is fired by Safari each time the amount of pressure changes on the trackpad/touchscreen.\n\n**`webkitmouseforcechanged`** is a proprietary, WebKit-specific event introduced by Apple to support their [Force Touch Events] feature.\n\nThis event first fires after the [Element/mousedown_event] event and stops firing before the [Element/mouseup_event] event.",
+ "webkitmouseforcedown_event": "\n\nAfter a [Element.mousedown_event] event has been fired at the element, if and when sufficient pressure has been applied to the mouse or trackpad button to qualify as a \"force click,\" Safari begins sending **`webkitmouseforcedown`** events to the element.\n\n**`webkitmouseforcedown`** is a proprietary, WebKit-specific event. It is part of the [Force Touch Events] feature.",
+ "webkitmouseforceup_event": "\n\nThe non-standard **`webkitmouseforceup`** event is fired by Safari at an [Element] some time after the [Element/webkitmouseforcedown_event] event, when pressure on the button has been reduced sufficiently to end the \"force click\".\n\n**`webkitmouseforceup`** is a proprietary, WebKit-specific event. It is part of the [Force Touch Events] feature.",
+ "webkitmouseforcewillbegin_event": "\n\nSafari for macOS fires the non-standard **`webkitmouseforcewillbegin`** event at an [Element] before firing the initial [Element/mousedown_event] event.\n\nThis offers the opportunity to tell the system not to trigger any default Force Touch actions if and when the click turns into a [Force Touch Events].\n\nTo instruct macOS not to engage any default Force Touch actions if the user apply enough pressure to activate a Force Touch event, call [Event.preventDefault] on the `webkitmouseforcewillbegin` event object.\n\n**`webkitmouseforcewillbegin`** is a proprietary, WebKit-specific event. It is part of the [Force Touch Events] feature.",
+ "wheel_event": "\n\nThe **`wheel`** event fires when the user rotates a wheel button on a pointing device (typically a mouse).\n\nThis event replaces the non-standard deprecated [Element/mousewheel_event] event.\n\n> **Note:** Don't confuse the `wheel` event with the [Element/scroll_event] event. The default action of a `wheel` event is implementation-specific, and doesn't necessarily dispatch a `scroll` event. Even when it does, the `delta*` values in the `wheel` event don't necessarily reflect the content's scrolling direction. Therefore, do not rely on the `wheel` event's `delta*` properties to get the scrolling direction. Instead, detect value changes of [Element.scrollLeft] and [Element.scrollTop] of the target in the `scroll` event."
+ }
+ },
+ "elementinternals": {
+ "docs": "\n\nThe **`ElementInternals`** interface of the [Document Object Model](/en-US/docs/Web/API/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](https://wicg.github.io/aom/explainer.html) to the element.",
+ "properties": {
+ "ariaatomic": "\n\nThe **`ariaAtomic`** property of the [ElementInternals] interface reflects the value of the [`aria-atomic`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-atomic) attribute, which indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the `aria-relevant` attribute.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariaautocomplete": "\n\nThe **`ariaAutoComplete`** property of the [ElementInternals] interface reflects the value of the [`aria-autocomplete`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-autocomplete) attribute, which indicates whether inputting text could trigger display of one or more predictions of the user's intended value for a combobox, searchbox, or textbox and specifies how predictions would be presented if they were made.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariabusy": "\n\nThe **`ariaBusy`** property of the [ElementInternals] interface reflects the value of the [`aria-busy`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-busy) attribute, which indicates whether an element is being modified, as assistive technologies may want to wait until the modifications are complete before exposing them to the user.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariachecked": "\n\nThe **`ariaChecked`** property of the [ElementInternals] interface reflects the value of the [`aria-checked`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked) attribute, which indicates the current \"checked\" state of checkboxes, radio buttons, and other widgets that have a checked state.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariacolcount": "\n\nThe **`ariaColCount`** property of the [ElementInternals] interface reflects the value of the [`aria-colcount`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-colcount) attribute, which defines the number of columns in a table, grid, or treegrid.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariacolindex": "\n\nThe **`ariaColIndex`** property of the [ElementInternals] interface reflects the value of the [`aria-colindex`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-colindex) attribute, which defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariacolindextext": "\n\nThe **`ariaColIndexText`** property of the [ElementInternals] interface reflects the value of the [`aria-colindextext`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-colindextext) attribute, which defines a human readable text alternative of aria-colindex.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariacolspan": "\n\nThe **`ariaColSpan`** property of the [ElementInternals] interface reflects the value of the [`aria-colspan`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-colspan) attribute, which defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariacurrent": "\n\nThe **`ariaCurrent`** property of the [ElementInternals] interface reflects the value of the [`aria-current`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current) attribute, which indicates the element that represents the current item within a container or set of related elements.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariadescription": "\n\nThe **`ariaDescription`** property of the [ElementInternals] interface reflects the value of the [`aria-description`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-description) attribute, which defines a string value that describes or annotates the current element.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariadisabled": "\n\nThe **`ariaDisabled`** property of the [ElementInternals] interface reflects the value of the [`aria-disabled`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-disabled) attribute, which indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariaexpanded": "\n\nThe **`ariaExpanded`** property of the [ElementInternals] interface reflects the value of the [`aria-expanded`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded) attribute, which indicates whether a grouping element owned or controlled by this element is expanded or collapsed.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariahaspopup": "\n\nThe **`ariaHasPopup`** property of the [ElementInternals] interface reflects the value of the [`aria-haspopup`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup) attribute, which indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariahidden": "\n\nThe **`ariaHidden`** property of the [ElementInternals] interface reflects the value of the [`aria-hidden`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-hidden) attribute, which indicates whether the element is exposed to an accessibility API.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariakeyshortcuts": "\n\nThe **`ariaKeyShortcuts`** property of the [ElementInternals] interface reflects the value of the [`aria-keyshortcuts`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-keyshortcuts) attribute, which indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "arialabel": "}\n\nThe **`ariaLabel`** property of the [ElementInternals] interface reflects the value of the [`aria-label`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label) attribute, which defines a string value that labels the current Element.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "arialevel": "\n\nThe **`ariaLevel`** property of the [ElementInternals] interface reflects the value of the [`aria-level`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-level) attribute, which defines the hierarchical level of an element within a structure.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "arialive": "\n\nThe **`ariaLive`** property of the [ElementInternals] interface reflects the value of the [`aria-live`](/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions) attribute, which indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariamodal": "\n\nThe **`ariaModal`** property of the [ElementInternals] interface reflects the value of the [`aria-modal`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-modal) attribute, which indicates whether an element is modal when displayed.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariamultiline": "\n\nThe **`ariaMultiLine`** property of the [ElementInternals] interface reflects the value of the [`aria-multiline`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-multiline) attribute, which indicates whether a text box accepts multiple lines of input or only a single line.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariamultiselectable": "\n\nThe **`ariaMultiSelectable`** property of the [ElementInternals] interface reflects the value of the [`aria-multiselectable`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-multiselectable) attribute, which indicates that the user may select more than one item from the current selectable descendants.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariaorientation": "\n\nThe **`ariaOrientation`** property of the [ElementInternals] interface reflects the value of the [`aria-orientation`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-orientation) attribute, which indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariaplaceholder": "\n\nThe **`ariaPlaceholder`** property of the [ElementInternals] interface reflects the value of the [`aria-placeholder`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-placeholder) attribute, which defines a short hint intended to aid the user with data entry when the control has no value.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariaposinset": "\n\nThe **`ariaPosInSet`** property of the [ElementInternals] interface reflects the value of the [`aria-posinset`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-posinset) attribute, which defines an element's number or position in the current set of listitems or treeitems.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariapressed": "\n\nThe **`ariaPressed`** property of the [ElementInternals] interface reflects the value of the [`aria-pressed`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-pressed) attribute, which indicates the current \"pressed\" state of toggle buttons.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariareadonly": "\n\nThe **`ariaReadOnly`** property of the [ElementInternals] interface reflects the value of the [`aria-readonly`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-readonly) attribute, which indicates that the element is not editable, but is otherwise operable.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariarelevant": "\n\nThe **`ariaRelevant`** property of the [ElementInternals] interface reflects the value of the [`aria-relevant`](/en-US/docs/Web/Accessibility/ARIA/Attributes/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:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariarequired": "\n\nThe **`ariaRequired`** property of the [Element] interface reflects the value of the [`aria-required`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-required) attribute, which indicates that user input is required on the element before a form may be submitted.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariaroledescription": "\n\nThe **`ariaRoleDescription`** property of the [Element] interface reflects the value of the [`aria-roledescription`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-roledescription) attribute, which defines a human-readable, author-localized description for the role of an element.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariarowcount": "\n\nThe **`ariaRowCount`** property of the [ElementInternals] interface reflects the value of the [`aria-rowcount`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-rowcount) attribute, which defines the total number of rows in a table, grid, or treegrid.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariarowindex": "\n\nThe **`ariaRowIndex`** property of the [ElementInternals] interface reflects the value of the [`aria-rowindex`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-rowindex) attribute, which defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariarowindextext": "\n\nThe **`ariaRowIndexText`** property of the [ElementInternals] interface reflects the value of the [`aria-rowindextext`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-rowindextext) attribute, which defines a human readable text alternative of aria-rowindex.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariarowspan": "\n\nThe **`ariaRowSpan`** property of the [ElementInternals] interface reflects the value of the [`aria-rowspan`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-rowspan) attribute, which defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariaselected": "\n\nThe **`ariaSelected`** property of the [ElementInternals] interface reflects the value of the [`aria-selected`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected) attribute, which indicates the current \"selected\" state of elements that have a selected state.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariasetsize": "\n\nThe **`ariaSetSize`** property of the [ElementInternals] interface reflects the value of the [`aria-setsize`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-setsize) attribute, which defines the number of items in the current set of listitems or treeitems.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariasort": "\n\nThe **`ariaSort`** property of the [ElementInternals] interface reflects the value of the [`aria-sort`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-sort) attribute, which indicates if items in a table or grid are sorted in ascending or descending order.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariavaluemax": "\n\nThe **`ariaValueMax`** property of the [ElementInternals] interface reflects the value of the [`aria-valuemax`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-valuemax) attribute, which defines the maximum allowed value for a range widget.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariavaluemin": "\n\nThe **`ariaValueMin`** property of the [ElementInternals] interface reflects the value of the [`aria-valuemin`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-valuemin) attribute, which defines the minimum allowed value for a range widget.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariavaluenow": "\n\nThe **`ariaValueNow`** property of the [ElementInternals] interface reflects the value of the [`aria-valuenow`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-valuenow) attribute, which defines the current value for a range widget.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "ariavaluetext": "\n\nThe **`ariaValueText`** property of the [ElementInternals] interface reflects the value of the [`aria-valuetext`](/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-valuetext) attribute, which defines the human-readable text alternative of aria-valuenow for a range widget.\n\n> **Note:** Setting 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](https://wicg.github.io/aom/explainer.html#default-semantics-for-custom-elements-via-the-elementinternals-object).",
+ "checkvalidity": "\n\nThe **`checkValidity()`** method of the [ElementInternals] interface checks if the element meets any [constraint validation](/en-US/docs/Web/HTML/Constraint_validation) rules applied to it.\n\nIf `checkValidity` returns `false` then a cancelable [invalid event](/en-US/docs/Web/API/HTMLInputElement/invalid_event) is fired on the element.",
+ "form": "\n\nThe **`form`** read-only property of the [ElementInternals] interface returns the [HTMLFormElement] associated with this element.",
+ "labels": "\n\nThe **`labels`** read-only property of the [ElementInternals] interface returns the labels associated with the element.",
+ "reportvalidity": "\n\nThe **`reportValidity()`** method of the [ElementInternals] interface checks if the element meets any [constraint validation](/en-US/docs/Web/HTML/Constraint_validation) rules applied to it.\n\nIf `reportValidity` returns `false` then a cancelable [invalid event](/en-US/docs/Web/API/HTMLInputElement/invalid_event) is fired on the element.\n\nThis method behaves in a similar way to [ElementInternals.checkValidity], however it additionally sends the value of [ElementInternals.validationMessage] to the user agent for display.",
+ "role": "\n\nThe **`role`** read-only property of the [ElementInternals] interface returns the [WAI-ARIA role](/en-US/docs/Web/Accessibility/ARIA/Roles) for the element. For example, a checkbox might have [`role=\"checkbox\"`](/en-US/docs/Web/Accessibility/ARIA/Roles/checkbox_role).",
+ "setformvalue": "\n\nThe **`setFormValue()`** method of the [ElementInternals] interface sets the element's submission value and state, communicating these to the user agent.",
+ "setvalidity": "\n\nThe **`setValidity()`** method of the [ElementInternals] interface sets the validity of the element.",
+ "shadowroot": "\n\nThe **`shadowRoot`** read-only property of the [ElementInternals] interface returns the [ShadowRoot] for this element.",
+ "states": "\n\nThe **`states`** read-only property of the [ElementInternals] interface returns a [CustomStateSet] representing the possible states of the custom element.",
+ "validationmessage": "\n\nThe **`validationMessage`** read-only property of the [ElementInternals] interface returns the validation message for the element.",
+ "validity": "\n\nThe **`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.",
+ "willvalidate": "\n\nThe **`willValidate`** read-only property of the [ElementInternals] interface returns `true` if the element is a submittable element that is a candidate for [constraint validation](/en-US/docs/Web/HTML/Constraint_validation).\n\nElements 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."
+ }
+ },
+ "encodedaudiochunk": {
+ "docs": "\n\nThe **`EncodedAudioChunk`** interface of the [WebCodecs API] represents a chunk of encoded audio data.",
+ "properties": {
+ "bytelength": "\n\nThe **`byteLength`** read-only property of the [EncodedAudioChunk] interface returns the length in bytes of the encoded audio data.",
+ "copyto": "\n\nThe **`copyTo()`** method of the [EncodedAudioChunk] interface copies the encoded chunk of audio data.",
+ "duration": "\n\nThe **`duration`** read-only property of the [EncodedAudioChunk] interface returns an integer indicating the duration of the audio in microseconds.",
+ "timestamp": "\n\nThe **`timestamp`** read-only property of the [EncodedAudioChunk] interface returns an integer indicating the timestamp of the audio in microseconds.",
+ "type": "\n\nThe **`type`** read-only property of the [EncodedAudioChunk] interface returns a value indicating whether the audio chunk is a key chunk, which does not relying on other frames for decoding."
+ }
+ },
+ "encodedvideochunk": {
+ "docs": "\n\nThe **`EncodedVideoChunk`** interface of the [WebCodecs API] represents a chunk of encoded video data.",
+ "properties": {
+ "bytelength": "\n\nThe **`byteLength`** read-only property of the [EncodedVideoChunk] interface returns the length in bytes of the encoded video data.",
+ "copyto": "\n\nThe **`copyTo()`** method of the [EncodedVideoChunk] interface copies the encoded chunk of video data.",
+ "duration": "\n\nThe **`duration`** read-only property of the [EncodedVideoChunk] interface returns an integer indicating the duration of the video in microseconds.",
+ "timestamp": "\n\nThe **`timestamp`** read-only property of the [EncodedVideoChunk] interface returns an integer indicating the timestamp of the video in microseconds.",
+ "type": "\n\nThe **`type`** read-only property of the [EncodedVideoChunk] interface returns a value indicating whether the video chunk is a key chunk, which does not rely on other frames for decoding."
+ }
+ },
+ "errorevent": {
+ "docs": "\n\nThe **`ErrorEvent`** interface represents events providing information related to errors in scripts or in files.\n\n"
+ },
+ "event": {
+ "docs": "\n\nThe **`Event`** interface represents an event which takes place in the DOM.\n\nAn event can be triggered by the user action e.g. clicking the mouse button or tapping keyboard, or generated by APIs to represent the progress of an asynchronous task. It can also be triggered programmatically, such as by calling the [`HTMLElement.click()`](/en-US/docs/Web/API/HTMLElement/click) method of an element, or by defining the event, then sending it to a specified target using [`EventTarget.dispatchEvent()`](/en-US/docs/Web/API/EventTarget/dispatchEvent).\n\nThere are many types of events, some of which use other interfaces based on the main `Event` interface. `Event` itself contains the properties and methods which are common to all events.\n\nMany DOM elements can be set up to accept (or \"listen\" for) these events, and execute code in response to process (or \"handle\") them. Event-handlers are usually connected (or \"attached\") to various [HTML elements](/en-US/docs/Web/HTML/Element) (such as `<button>`, `<div>`, `<span>`, etc.) using [`EventTarget.addEventListener()`](/en-US/docs/Web/API/EventTarget/addEventListener), and this generally replaces using the old HTML [event handler attributes](/en-US/docs/Web/HTML/Global_attributes). Further, when properly added, such handlers can also be disconnected if needed using [`removeEventListener()`](/en-US/docs/Web/API/EventTarget/removeEventListener).\n\n> **Note:** One element can have several such handlers, even for the exact same event—particularly if separate, independent code modules attach them, each for its own independent purposes. (For example, a webpage with an advertising-module and statistics-module both monitoring video-watching.)\n\nWhen there are many nested elements, each with its own handler(s), event processing can become very complicated—especially where a parent element receives the very same event as its child elements because \"spatially\" they overlap so the event technically occurs in both, and the processing order of such events depends on the [Event bubbling and capture](/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_bubbling_and_capture) settings of each handler triggered.",
+ "properties": {
+ "bubbles": "\n\nThe **`bubbles`** read-only property of the [Event] interface indicates whether the event bubbles up through the DOM tree or not.\n\n> **Note:** See [Event bubbling and capture](/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_bubbling) for more information on bubbling.",
+ "cancelable": "\n\nThe **`cancelable`** read-only property of the [Event] interface indicates whether the event\ncan be canceled, and therefore prevented as if the event never happened.\n\nIf the event is _not_ cancelable, then its `cancelable` property will be\n`false` and the event listener cannot stop the event from occurring.\n\nMost browser-native events that can be canceled are the ones that result from the user\ninteracting with the page. Canceling the [Element/click_event],\n[Element/wheel_event], or\n[Window/beforeunload_event] events would prevent the user\nfrom clicking on something, scrolling the page with the mouse wheel, or\nnavigating away from the page, respectively.\n\n[Synthetic events](/en-US/docs/Web/API/Event/Event) created by other JavaScript\ncode define if they can be canceled when they are created.\n\nTo cancel an event, call the [event.preventDefault]\nmethod on the event. This keeps the implementation from executing the default action\nthat is associated with the event.\n\nEvent listeners that handle multiple kinds of events may want to check\n`cancelable` before invoking their [event.preventDefault] methods.",
+ "cancelbubble": " \n\nThe **`cancelBubble`** property of the [Event]\ninterface is deprecated. Use [Event.stopPropagation] instead.\nSetting its value to `true` before returning from an event handler prevents propagation\nof the event. In later implementations, setting this to `false` does nothing.\nSee [Browser compatibility](#browser_compatibility) for details.",
+ "comparison_of_event_targets": "\n\nIt's easy to get confused about which event target to examine when writing an event handler. This article should clarify the use of the target properties.\n\nThere are five targets to consider:\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th>Property</th>\n <th>Defined in</th>\n <th>Purpose</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <code><a href=\"/en-US/docs/Web/API/Event/target\">event.target</a></code>\n </td>\n <td>\n <a href=\"https://www.w3.org/TR/DOM-Level-2/events.html#Events-interface\"\n >DOM Event Interface</a\n >\n </td>\n <td>\n The DOM element on the left-hand side of the call that triggered this\n event.\n </td>\n </tr>\n <tr>\n <td>\n <code\n ><a href=\"/en-US/docs/Web/API/Event/currentTarget\"\n >event.currentTarget</a\n ></code\n >\n </td>\n <td>\n <a href=\"https://www.w3.org/TR/DOM-Level-2/events.html#Events-interface\"\n >DOM Event Interface</a\n >\n </td>\n <td>\n The\n <a\n href=\"https://www.w3.org/TR/DOM-Level-2/events.html#Events-EventTarget\"\n ><code>EventTarget</code></a\n >\n whose\n <a\n href=\"https://www.w3.org/TR/DOM-Level-2/events.html#Events-EventListener\"\n ><code>EventListeners</code></a\n >\n are currently being processed. As the event capturing and bubbling\n occurs, this value changes.\n </td>\n </tr>\n <tr>\n <td>\n <code\n ><a href=\"/en-US/docs/Web/API/MouseEvent/relatedTarget\"\n >event.relatedTarget</a\n ></code\n >\n </td>\n <td>\n <a\n href=\"https://www.w3.org/TR/DOM-Level-2/events.html#Events-MouseEvent\"\n >DOM MouseEvent Interface</a\n >\n </td>\n <td>Identifies a secondary target for the event.</td>\n </tr>\n <tr>\n <td>\n <code\n ><a href=\"/en-US/docs/Web/API/Event/explicitOriginalTarget\"\n >event.explicitOriginalTarget</a\n ></code\n >\n </td>\n <td><a href=\"https://dxr.mozilla.org/mozilla-central/source/dom/webidl/Event.webidl\">Event.webidl</a>\n </td>\n <td>\n If the event was retargeted for\n some reason other than an anonymous boundary crossing, this will be set\n to the target before the retargeting occurs. For example, mouse events\n are retargeted to their parent node when they happen over text nodes\n ([Firefox bug 185889](https://bugzil.la/185889)), and in that case <code>.target</code> will\n show the parent and <code>.explicitOriginalTarget</code> will show the\n text node.<br />Unlike <code>.originalTarget</code>,\n <code>.explicitOriginalTarget</code> will never contain anonymous\n content.\n </td>\n </tr>\n <tr>\n <td>\n <code\n ><a href=\"/en-US/docs/Web/API/Event/originalTarget\"\n >event.originalTarget</a\n ></code\n >\n </td>\n <td>\n <a href=\"https://dxr.mozilla.org/mozilla-central/source/dom/webidl/Event.webidl\">Event.webidl</a>\n </td>\n <td>\n The original target of the event,\n before any retargetings. See\n <a\n href=\"/en-US/docs/XBL/XBL_1.0_Reference/Anonymous_Content#Event_Flow_and_Targeting\"\n >Anonymous Content#Event_Flow_and_Targeting</a\n >\n for details.\n </td>\n </tr>\n <tr>\n <td>event.composedTarget</td>\n <td>\n <a href=\"https://dxr.mozilla.org/mozilla-central/source/dom/webidl/Event.webidl\">Event.webidl</a>\n </td>\n <td>\n The original non-native target of\n the event before composition from Shadow DOM.\n </td>\n </tr>\n </tbody>\n</table>\n\n### Use of `explicitOriginalTarget` and `originalTarget`\n\n> **Note:** These properties are only available in Mozilla-based browsers.\n\n### Examples\n\n```html\n<!doctype html>\n<html lang=\"en-US\">\n <head>\n <meta charset=\"utf-8\" />\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n <title>Comparison of Event Targets</title>\n <style>\n table {\n border-collapse: collapse;\n height: 150px;\n width: 100%;\n }\n td {\n border: 1px solid #ccc;\n font-weight: bold;\n padding: 5px;\n min-height: 30px;\n }\n .standard {\n background-color: #99ff99;\n }\n .non-standard {\n background-color: #902d37;\n }\n </style>\n </head>\n <body>\n <table>\n <thead>\n <tr>\n <td class=\"standard\">\n Original target dispatching the event <small>event.target</small>\n </td>\n <td class=\"standard\">\n Target who's event listener is being processed\n <small>event.currentTarget</small>\n </td>\n <td class=\"standard\">\n Identify other element (if any) involved in the event\n <small>event.relatedTarget</small>\n </td>\n <td class=\"non-standard\">\n If there was a retargeting of the event for some reason\n <small> event.explicitOriginalTarget</small> contains the target\n before retargeting (never contains anonymous targets)\n </td>\n <td class=\"non-standard\">\n If there was a retargeting of the event for some reason\n <small> event.originalTarget</small> contains the target before\n retargeting (may contain anonymous targets)\n </td>\n </tr>\n </thead>\n <tr>\n <td id=\"target\"></td>\n <td id=\"currentTarget\"></td>\n <td id=\"relatedTarget\"></td>\n <td id=\"explicitOriginalTarget\"></td>\n <td id=\"originalTarget\"></td>\n </tr>\n </table>\n <p>\n Clicking on the text will show the difference between\n explicitOriginalTarget, originalTarget, and target\n </p>\n <script>\n function handleClicks(e) {\n document.getElementById(\"target\").innerHTML = e.target;\n document.getElementById(\"currentTarget\").innerHTML = e.currentTarget;\n document.getElementById(\"relatedTarget\").innerHTML = e.relatedTarget;\n document.getElementById(\"explicitOriginalTarget\").innerHTML =\n e.explicitOriginalTarget;\n document.getElementById(\"originalTarget\").innerHTML = e.originalTarget;\n }\n\n function handleMouseover(e) {\n document.getElementById(\"target\").innerHTML = e.target;\n document.getElementById(\"relatedTarget\").innerHTML = e.relatedTarget;\n }\n\n document.addEventListener(\"click\", handleClicks, false);\n document.addEventListener(\"mouseover\", handleMouseover, false);\n </script>\n </body>\n</html>\n```\n\n### Use of `target` and `relatedTarget`\n\nThe `relatedTarget` property for the `mouseover` event holds the node that the mouse was previously over. For the `mouseout` event, it holds the node that the mouse moved to.\n\n| Event type | [event.target](/en-US/docs/Web/API/Event/target) | [event.relatedTarget](/en-US/docs/Web/API/MouseEvent/relatedTarget) |\n| ----------- | ------------------------------------------------- | ------------------------------------------------------------------- |\n| `mouseover` | the EventTarget which the pointing device entered | the EventTarget which the pointing device exited |\n| `mouseout` | the EventTarget which the pointing device exited | the EventTarget which the pointing device entered |\n\n#### Example\n\n```xml\n<hbox id=\"outer\">\n <hbox id=\"inner\"\n onmouseover=\"dump('mouseover ' + event.relatedTarget.id + ' > ' + event.target.id + '\\n');\"\n onmouseout=\"dump('mouseout ' + event.target.id + ' > ' + event.relatedTarget.id + '\\n');\"\n style=\"margin: 100px; border: 10px solid black; width: 100px; height: 100px;\" />\n</hbox>\n```",
+ "composed": "\n\nThe read-only **`composed`** property of the\n[Event] interface returns a boolean value which indicates whether\nor not the event will propagate across the shadow DOM boundary into the standard DOM.\n\nAll UA-dispatched UI events are composed (click/touch/mouseover/copy/paste, etc.). Most\nother types of events are not composed, and so will return `false`. For\nexample, this includes synthetic events that are created without their\n`composed` option set to `true`.\n\nPropagation only occurs if the [Event.bubbles] property is also\n`true`. However, capturing only composed events are also handled at host as\nif they were in `AT_TARGET` phase. You can determine the path the event will\nfollow through the shadow root to the DOM root by calling\n[Event.composedPath].",
+ "composedpath": "\n\nThe **`composedPath()`** method of the [Event]\ninterface returns the event's path which is an array of the objects on which listeners\nwill be invoked. This does not include nodes in shadow trees if the shadow root was\ncreated with its [ShadowRoot.mode] closed.",
+ "currenttarget": "\n\nThe **`currentTarget`** read-only property of the [Event] interface identifies the element to which the event handler has been attached.\n\nThis will not always be the same as the element on which the event was fired, because the event may have fired on a descendant of the element with the handler, and then [bubbled](/en-US/docs/Learn/JavaScript/Building_blocks/Events#event_bubbling) up to the element with the handler. The element on which the event was fired is given by [Event.target].",
+ "defaultprevented": "\n\nThe **`defaultPrevented`** read-only property of the [Event] interface returns a boolean value indicating whether or not the call to [Event.preventDefault] canceled the event.",
+ "eventphase": "\n\nThe **`eventPhase`** read-only property of the\n[Event] interface indicates which phase of the event flow is currently\nbeing evaluated.",
+ "explicitoriginaltarget": "\n\nThe read-only **`explicitOriginalTarget`** property of the [Event] interface returns the non-anonymous original target of the event.\n\nIf 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\nFor example, mouse events are retargeted to their parent node when they happen over text nodes (see [Firefox bug 185889](https://bugzil.la/185889)), and in that case [`currentTarget`](/en-US/docs/Web/API/Event/currentTarget) will show the parent while this property will show the text node.\n\nThis property also differs from [`originalTarget`](/en-US/docs/Web/API/Event/originalTarget) in that it will never contain anonymous content.",
+ "initevent": "\n\nThe **`Event.initEvent()`** method is used to initialize the\nvalue of an [event] created using [Document.createEvent].\n\nEvents initialized in this way must have been created with the\n[Document.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._\n> Instead use specific event constructors, like [Event.Event].\n> The page on [Creating and triggering events](/en-US/docs/Web/Events/Creating_and_triggering_events) gives more information about the way to use these.",
+ "istrusted": "\n\nThe **`isTrusted`** read-only property of the\n[Event] interface is a boolean value that is `true`\nwhen the event was generated by a user action, and `false` when the event was\ncreated or modified by a script or dispatched via\n[EventTarget.dispatchEvent].",
+ "originaltarget": " \n\nThe 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.\n\nSee also [Comparison of Event Targets](/en-US/docs/Web/API/Event/Comparison_of_Event_Targets).",
+ "preventdefault": "\n\nThe **`preventDefault()`** method of the [Event] interface tells the that if the event does not get explicitly handled, its default action should not be taken as it normally would be.\n\nThe event continues to propagate as usual,\nunless one of its event listeners calls\n[Event.stopPropagation]\nor [Event.stopImmediatePropagation],\neither of which terminates propagation at once.\n\nAs noted below, calling **`preventDefault()`** for a\nnon-cancelable event, such as one dispatched via\n[EventTarget.dispatchEvent], without specifying\n`cancelable: true` has no effect.",
+ "returnvalue": "\n\nThe [Event] property\n**`returnValue`** indicates whether the default action for\nthis event has been prevented or not.\n\nIt is set to `true` by\ndefault, allowing the default action to occur. Setting this property to\n`false` prevents the default action.\n\n> **Note:** While `returnValue` has been adopted into the DOM\n> standard, it is present primarily to support existing code. Use\n> [Event.preventDefault], and\n> [Event.defaultPrevented] instead of this historical\n> property.",
+ "srcelement": "\n\nThe deprecated **`Event.srcElement`** is an alias for the [Event.target] property. Use [Event.target] instead.",
+ "stopimmediatepropagation": "\n\nThe **`stopImmediatePropagation()`** method of the\n[Event] interface prevents other listeners of the same event from being called.\n\nIf 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.",
+ "stoppropagation": "\n\nThe **`stopPropagation()`** method of the [Event]\ninterface prevents further propagation of the current event in the capturing and\nbubbling phases. It does not, however, prevent any default behaviors from occurring; for\ninstance, clicks on links are still processed. If you want to stop those behaviors, see\nthe [Event.preventDefault] method. It also does not\nprevent propagation to other event-handlers of the current element. If you want to stop those,\nsee [Event.stopImmediatePropagation].",
+ "target": "\n\nThe read-only **`target`** property of the\n[Event] interface is a reference to the object onto which the event was\ndispatched. It is different from [Event.currentTarget] when the event\nhandler is called during the bubbling or capturing phase of the event.",
+ "timestamp": "\n\nThe **`timeStamp`** read-only property of the [Event] interface returns the time (in milliseconds) at which the event was created.",
+ "type": "\n\nThe **`type`** read-only property of the [Event]\ninterface returns a string containing the event's type. It is set when the event is\nconstructed and is the name commonly used to refer to the specific event, such as\n`click`, `load`, or `error`."
+ }
+ },
+ "eventcounts": {
+ "docs": "\n\nThe **`EventCounts`** interface of the [Performance API](/en-US/docs/Web/API/Performance_API) provides the number of events that have been dispatched for each event type.\n\nAn `EventCounts` instance is a read-only [`Map`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#map-like_browser_apis), in which each key is the name string for an event type, and the corresponding value is an integer indicating the number of events that have been dispatched for that event type."
+ },
+ "eventsource": {
+ "docs": "\n\nThe **`EventSource`** interface is web content's interface to [server-sent events](/en-US/docs/Web/API/Server-sent_events).\n\nAn `EventSource` instance opens a persistent connection to an [HTTP](/en-US/docs/Web/HTTP) server, which sends [events](/en-US/docs/Learn/JavaScript/Building_blocks/Events) in `text/event-stream` format. The connection remains open until closed by calling [EventSource.close].\n\nOnce the connection is opened, incoming messages from the server are delivered to your code in the form of events. If there is an event field in the incoming message, the triggered event is the same as the event field value. If no event field is present, then a generic [EventSource/message_event] event is fired.\n\nUnlike [WebSockets](/en-US/docs/Web/API/WebSockets_API), server-sent events are unidirectional; that is, data messages are delivered in one direction, from the server to the client (such as a user's web browser). That makes them an excellent choice when there's no need to send data from the client to the server in message form. For example, `EventSource` is a useful approach for handling things like social media status updates, news feeds, or delivering data into a [client-side storage](/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage) mechanism like [IndexedDB](/en-US/docs/Web/API/IndexedDB_API) or [web storage](/en-US/docs/Web/API/Web_Storage_API).\n\n> **Warning:** When **not used over HTTP/2**, SSE suffers from a limitation to the maximum number of open connections, which can be specially painful when opening various tabs as the limit is _per browser_ and set to a very low number (6). The issue has been marked as \"Won't fix\" in [Chrome](https://crbug.com/275955) and [Firefox](https://bugzil.la/906896). This limit is per browser + domain, so that means that you can open 6 SSE connections across all of the tabs to `www.example1.com` and another 6 SSE connections to `www.example2.com`. (from [Stackoverflow](https://stackoverflow.com/questions/5195452/websockets-vs-server-sent-events-eventsource/5326159)). When using HTTP/2, the maximum number of simultaneous _HTTP streams_ is negotiated between the server and the client (defaults to 100).",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [EventSource]\ninterface closes the connection, if one is made, and sets the\n[EventSource.readyState] attribute to `2` (closed).\n\n> **Note:** If the connection is already closed, the method does nothing.",
+ "error_event": "\n\nThe `error` event of the [EventSource] API is fired when a connection with an event source fails to be opened.\n\nThis event is not cancelable and does not bubble.",
+ "message_event": "\n\nThe `message` event of the [EventSource] API is fired when data is received through an event source.\n\nThis event is not cancelable and does not bubble.",
+ "open_event": "\n\nThe `open` event of the [EventSource] API is fired when a connection with an event source is opened.\n\nThis event is not cancelable and does not bubble.",
+ "readystate": "\n\nThe **`readyState`** read-only property of the\n[EventSource] interface returns a number representing the state of the\nconnection.",
+ "url": "\n\nThe **`url`** read-only property of the\n[EventSource] interface returns a string representing the\nURL of the source.",
+ "withcredentials": "\n\nThe **`withCredentials`** read-only property of the\n[EventSource] interface returns a boolean value indicating whether\nthe `EventSource` object was instantiated with CORS credentials set."
+ }
+ },
+ "eventtarget": {
+ "docs": "\n\nThe **`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\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\nMany event targets (including elements, documents, and windows) also support setting [event handlers](/en-US/docs/Web/Events/Event_handlers) via `onevent` properties and attributes.\n\n",
+ "properties": {
+ "addeventlistener": "\n\nThe **`addEventListener()`** method of the [EventTarget] interface\nsets up a function that will be called whenever the specified event is delivered to the target.\n\nCommon 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:** The `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\n> useful for libraries, JavaScript modules, or any other kind of\n> code 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\nThe method `addEventListener()` works by adding a function, or an object that implements\n[EventTarget.addEventListener], 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:** If 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>\n> Indeed, anonymous functions are not identical even if defined using\n> the _same_ unchanging source-code called repeatedly, **even if in a loop**.\n>\n> Repeatedly defining the same unnamed function in such cases can be\n> problematic. (See [Memory issues](#memory_issues), below.)\n\nIf 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.",
+ "dispatchevent": "\n\nThe **`dispatchEvent()`** method of the [EventTarget] sends an [Event] to the object, (synchronously) invoking the affected\nevent listeners in the appropriate order. The normal event processing\nrules (including the capturing and optional bubbling phase) also apply to events\ndispatched manually with `dispatchEvent()`.\n\nCalling `dispatchEvent()` is the last step to _firing an event_. The event\nshould have already been created and initialized using an [Event/Event] constructor.\n\n> **Note:** When calling this method, the [Event.target] property is initialized to the current `EventTarget`.\n\nUnlike \"native\" events, which are fired by the browser and invoke event handlers\nasynchronously via the [event loop](/en-US/docs/Web/JavaScript/Event_loop),\n`dispatchEvent()` invokes event handlers _synchronously_. All applicable event\nhandlers are called and return before `dispatchEvent()` returns.",
+ "removeeventlistener": "\n\nThe **`removeEventListener()`** method of the [EventTarget] interface\nremoves an event listener previously registered with [EventTarget.addEventListener] from the target.\nThe event listener to be removed is identified using a combination of the event type,\nthe event listener function itself, and various optional options that may affect the matching process;\nsee [Matching event listeners for removal](#matching_event_listeners_for_removal).\n\nCalling `removeEventListener()` with arguments that do not identify any\ncurrently registered [event listener](/en-US/docs/Web/API/EventTarget/addEventListener#the_event_listener_callback) on the `EventTarget` has no\neffect.\n\nIf an [event listener](/en-US/docs/Web/API/EventTarget/addEventListener#the_event_listener_callback) is removed from an [EventTarget] while another listener of the target is processing an event, it will not be triggered by the event. However, it can be reattached.\n\n> **Warning:** If a listener is registered twice, one with the _capture_ flag set and one without, you must remove each one separately. Removal of a capturing listener does not affect a non-capturing version of the same listener, and vice versa.\n\nEvent listeners can also be removed by passing an [AbortSignal] to an [EventTarget/addEventListener] and then later calling [AbortController/abort] on the controller owning the signal."
+ }
+ },
+ "extendablecookiechangeevent": {
+ "docs": "\n\nThe **`ExtendableCookieChangeEvent`** interface of the [Cookie Store API] is the event type passed to [ServiceWorkerGlobalScope/cookiechange_event] 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\nCookie 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> **Note:** A 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\n",
+ "properties": {
+ "changed": "\n\nThe **`changed`** read-only property of the [ExtendableCookieChangeEvent] interface returns any cookies that have been changed by the given `ExtendableCookieChangeEvent` instance.\n\n",
+ "deleted": "\n\nThe **`deleted`** read-only property of the [ExtendableCookieChangeEvent] interface returns any cookies that have been deleted by the given `ExtendableCookieChangeEvent` instance.\n\n"
+ }
+ },
+ "extendableevent": {
+ "docs": "\n\nThe **`ExtendableEvent`** interface extends the lifetime of the [`install`](/en-US/docs/Web/API/ServiceWorkerGlobalScope/install_event) and [`activate`](/en-US/docs/Web/API/ServiceWorkerGlobalScope/activate_event) events dispatched on the global scope as part of the service worker lifecycle. This ensures that any functional events (like [FetchEvent]) are not dispatched until it upgrades database schemas and deletes the outdated cache entries.\n\nIf [ExtendableEvent.waitUntil] is called outside of the `ExtendableEvent` handler, the browser should throw an `InvalidStateError`; note also that multiple calls will stack up, and the resulting promises will be added to the list of [extend lifetime promises](https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises).\n\n> **Note:** The behavior described in the above paragraph was fixed in Firefox 43 (see [Firefox bug 1180274](https://bugzil.la/1180274).)\n\nThis interface inherits from the [Event] interface.\n\n> **Note:** This interface is only available when the global scope is a [ServiceWorkerGlobalScope]. It is not available when it is a [Window], or the scope of another kind of worker.",
+ "properties": {
+ "waituntil": "\n\nThe **`ExtendableEvent.waitUntil()`**\nmethod tells the event dispatcher that work is ongoing. It can also be used to detect\nwhether that work was successful. In service workers, `waitUntil()` tells\nthe browser that work is ongoing until the promise settles, and it shouldn't terminate\nthe service worker if it wants that work to complete.\n\nThe [ServiceWorkerGlobalScope/install_event] events in [service workers](/en-US/docs/Web/API/ServiceWorkerGlobalScope) use\n`waitUntil()` to hold the service worker in\nthe [ServiceWorkerRegistration.installing] phase until tasks\ncomplete. If the promise passed to `waitUntil()` rejects, the install is\nconsidered a failure, and the installing service worker is discarded. This is primarily\nused to ensure that a service worker is not considered installed until all of the core\ncaches it depends on are successfully populated.\n\nThe [ServiceWorkerGlobalScope/activate_event] events in [service workers](/en-US/docs/Web/API/ServiceWorkerGlobalScope) use\n`waitUntil()` to buffer functional events such as `fetch` and\n`push` until the promise passed to `waitUntil()` settles. This\ngives the service worker time to update database schemas and delete outdated\n[Cache], so other events can rely on a completely upgraded state.\n\nThe `waitUntil()` method must be initially called within the event callback,\nbut after that it can be called multiple times, until all the promises passed to it\nsettle.\n\n> **Note:** The behavior described in the above paragraph was fixed in\n> Firefox 43 (see [Firefox bug 1180274](https://bugzil.la/1180274))."
+ }
+ },
+ "extendablemessageevent": {
+ "docs": "\n\nThe **`ExtendableMessageEvent`** interface of the [Service Worker API](/en-US/docs/Web/API/Service_Worker_API) represents the event object of a [ServiceWorkerGlobalScope/message_event] event fired on a service worker (when a message is received on the [ServiceWorkerGlobalScope] from another context) — extends the lifetime of such events.\n\nThis interface inherits from the [ExtendableEvent] interface.\n\n",
+ "properties": {
+ "data": "\n\nThe **`data`** read-only property of the\n[ExtendableMessageEvent] interface returns the event's data. It can be any\ndata type.",
+ "lasteventid": "\n\nThe **`lastEventID`** read-only property of the\n[ExtendableMessageEvent] interface represents, in [server-sent events](/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events), the last event ID of the event source. This is an empty string.",
+ "origin": "\n\nThe **`origin`** read-only property of the\n[ExtendableMessageEvent] interface returns the origin of the\n[Client] that sent the message.",
+ "ports": "\n\nThe **`ports`** read-only property of the\n[ExtendableMessageEvent] interface returns the array containing the\n[MessagePort] objects representing the ports of the associated message\nchannel (the channel the message is being sent through.)",
+ "source": "\n\nThe **`source`** read-only property of the\n[ExtendableMessageEvent] interface returns a reference to the\n[Client] object from which the message was sent."
+ }
+ },
+ "eyedropper": {
+ "docs": "\n\nThe **`EyeDropper`** interface represents an instance of an eyedropper tool that can be opened and used by the user to select colors from the screen.",
+ "properties": {
+ "open": "\n\nThe **`EyeDropper.open()`** method starts the eyedropper mode, returning a promise which is fulfilled once the user has selected a color and exited the eyedropper mode."
+ }
+ },
+ "featurepolicy": {
+ "docs": "\n\nThe `FeaturePolicy` interface represents the set of [Permissions Policies](/en-US/docs/Web/HTTP/Permissions_Policy) applied to the current execution context.",
+ "properties": {
+ "allowedfeatures": "\n\nThe **`allowedFeatures()`** method of\nthe [FeaturePolicy] interface returns a list of directive names of all\nfeatures allowed by the [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy). This enables introspection of individual directives\nof the Permissions Policy it is run on. As such, `allowedFeatures()` method\nreturns a subset of directives returned by [FeaturePolicy.features].",
+ "allowsfeature": "\n\nThe **`allowsFeature()`** method of\nthe [FeaturePolicy] interface enables introspection of individual\ndirectives of the [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) it is run on. It returns a `Boolean`\nthat is `true` if and only if the specified feature is allowed in the\nspecified context (or the default context if no context is specified).",
+ "features": "\n\nThe **`features()`** method of the\n[FeaturePolicy] interface returns a list of names of all features\nsupported by the User Agent. Feature whose name appears on the list might not be\nallowed by the [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) of the current execution context and/or might not be\naccessible because of user's permissions.",
+ "getallowlistforfeature": "\n\nThe **`getAllowlistForFeature()`**\nmethod of the [FeaturePolicy] interface enables querying of the allowlist for a specific feature for the current Permissions Policy."
+ }
+ },
+ "federatedcredential": {
+ "docs": "\n\nThe **`FederatedCredential`** interface of the [Credential Management API](/en-US/docs/Web/API/Credential_Management_API) provides information about credentials from a federated identity provider. A federated identity provider is an entity that a website trusts to correctly authenticate a user, and that provides an API for that purpose. [OpenID Connect](https://openid.net/developers/specs/) is an example of a federated identity provider framework.\n\n> **Note:** The [Federated Credential Management API (FedCM)](/en-US/docs/Web/API/FedCM_API) provides a more complete solution for handling identity federation in the browser, and uses the [IdentityCredential] type.\n\nIn browsers that support it, an instance of this interface may be passed in the `credential` member of the `init` object for global [fetch].\n\n",
+ "properties": {
+ "protocol": "\n\nThe **`protocol`** property of the\n[FederatedCredential] interface returns a read-only\nstring containing a credential's federated identity protocol. If this\nproperty is [`null`](/en-US/docs/Web/JavaScript/Reference/Operators/null), the protocol may be inferred from the\n[FederatedCredential.provider] property.",
+ "provider": "\n\nThe **`provider`** property of the\n[FederatedCredential] interface returns a string\ncontaining a credential's federated identity provider."
+ }
+ },
+ "fetchevent": {
+ "docs": "\n\nThis is the event type for `fetch` events dispatched on the [ServiceWorkerGlobalScope]. It contains information about the fetch, including the request and how the receiver will treat the response. It provides the [FetchEvent.respondWith] method, which allows us to provide a response to this fetch.\n\n",
+ "properties": {
+ "clientid": "\n\nThe **`clientId`** read-only property of the\n[FetchEvent] interface returns the id of the [Client] that the\ncurrent service worker is controlling.\n\nThe [Clients.get] method could then be passed this ID to retrieve the\nassociated client.",
+ "handled": "\n\nThe **`handled`** property of the [FetchEvent] interface returns a promise indicating if the event has been handled by the fetch algorithm or not. This property allows executing code after the browser has consumed a response, and is usually used together with the [ExtendableEvent.waitUntil] method.",
+ "isreload": "\n\nThe **`isReload`** read-only property of the\n[FetchEvent] 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.",
+ "preloadresponse": "\n\nThe **`preloadResponse`** read-only property of the [FetchEvent] interface returns a `Promise` that resolves to the navigation preload [Response] if [navigation preload](/en-US/docs/Web/API/NavigationPreloadManager) was triggered, or `undefined` otherwise.\n\nNavigation preload is triggered if [navigation preload is enabled](/en-US/docs/Web/API/NavigationPreloadManager/enable), the request is a `GET` request, and the request is a navigation request (generated by the browser when loading pages and iframes).\n\nA service worker can wait on this promise in its fetch event handler in order to track completion of a fetch request made during service-worker boot.",
+ "replacesclientid": "\n\nThe **`replacesClientId`** read-only property of the\n[FetchEvent] interface is the [Client.id] of the\n[Client] that is being replaced during a page navigation.\n\nFor example, when navigating from page A to page B `replacesClientId` is the\nID of the client associated with page A. It can be an empty string when navigating from\n`about:blank` to another page, as `about:blank`'s client will be\nreused, rather than be replaced.\n\nAdditionally, if the fetch isn't a navigation, `replacesClientId` will be an\nempty string. This could be used to access/communicate with a client that will\nimminently be replaced, right before a navigation.",
+ "request": "\n\nThe **`request`** read-only property of the\n[FetchEvent] interface returns the [Request] that triggered\nthe event handler.\n\nThis property is non-nullable (since version 46, in the case of Firefox.) If a request\nis not provided by some other means, the constructor `options` object must\ncontain a request (see [FetchEvent.FetchEvent].)",
+ "respondwith": "\n\nThe **`respondWith()`** method of\n[FetchEvent] prevents the browser's default fetch handling, and\nallows you to provide a promise for a [Response] yourself.\n\nIn most cases you can provide any response that the receiver understands. For example,\nif an `img` initiates the request, the response body needs to be\nimage data. For security reasons, there are a few global rules:\n\n- You can only return [Response] objects of [Response.type] \"`opaque`\" if the [fetchEvent.request] object's\n [request.mode] is \"`no-cors`\". This prevents the\n leaking of private data.\n- You can only return [Response] objects of [Response.type] \"`opaqueredirect`\" if the [fetchEvent.request]\n object's [request.mode] is \"`manual`\".\n- You cannot return [Response] objects of [Response.type] \"`cors`\" if the [fetchEvent.request] object's\n [request.mode] is \"`same-origin`\".\n\n### Specifying the final URL of a resource\n\nFrom Firefox 59 onwards, when a service worker provides a [Response] to\n[FetchEvent.respondWith], the [Response.url] value will be\npropagated to the intercepted network request as the final resolved URL. If the\n[Response.url] value is the empty string, then the\n[Request.url] is used as the final URL.\n\nIn the past the [Request.url] was used as the\nfinal URL in all cases. The provided [Response.url] was effectively\nignored.\n\nThis means, for example, if a service worker intercepts a stylesheet or worker script,\nthen the provided [Response.url] will be used to resolve any relative\n or\n[WorkerGlobalScope.importScripts] subresource loads\n([Firefox bug 1222008](https://bugzil.la/1222008)).\n\nFor most types of network request this change has no impact because you can't observe\nthe final URL. There are a few, though, where it does matter:\n\n- If a [fetch] is intercepted,\n then you can observe the final URL on the result's [Response.url].\n- If a [worker](/en-US/docs/Web/API/Web_Workers_API) script is\n intercepted, then the final URL is used to set\n [`self.location`](/en-US/docs/Web/API/WorkerGlobalScope/location)\n and used as the base URL for relative URLs in the worker script.\n- If a stylesheet is intercepted, then the final URL is used as the base URL for\n resolving relative loads.\n\nNote that navigation requests for [Window] and\n[HTMLIFrameElement] do NOT use the final URL. The way the HTML\nspecification handles redirects for navigations ends up using the request URL for the\nresulting [Window.location]. This means sites can still provide an\n\"alternate\" view of a web page when offline without changing the user-visible URL.",
+ "resultingclientid": "\n\nThe **`resultingClientId`** read-only property of the\n[FetchEvent] interface is the [Client.id] of the\n[Client] that replaces the previous client during a page\nnavigation.\n\nFor example, when navigating from page A to page B `resultingClientId` is\nthe ID of the client associated with page B.\n\nIf the fetch request is a subresource request or the request's\n[`destination`](/en-US/docs/Web/API/Request/destination) is\n`report`, `resultingClientId` will be an empty string."
+ }
+ },
+ "file": {
+ "docs": "\n\nThe **`File`** interface provides information about files and allows JavaScript in a web page to access their content.\n\n`File` objects are generally retrieved from a [FileList] object returned as a result of a user selecting files using the `input` element, or from a drag and drop operation's [DataTransfer] object.\n\nA `File` object is a specific kind of [Blob], and can be used in any context that a Blob can. In particular, [FileReader], [URL.createObjectURL_static], [createImageBitmap], the [`body`](/en-US/docs/Web/API/fetch#body) option to [fetch], and [XMLHttpRequest] accept both `Blob`s and `File`s.\n\nSee [Using files from web applications](/en-US/docs/Web/API/File_API/Using_files_from_web_applications) for more information and examples.\n\n",
+ "properties": {
+ "lastmodified": "\n\nThe **`lastModified`** read-only property of the [File] interface provides the\nlast modified date of the file as the number of milliseconds since the Unix\nepoch (January 1, 1970 at midnight). Files without a known last modified date return the\ncurrent date.",
+ "lastmodifieddate": "\n\nThe **`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.",
+ "name": "\n\nThe **`name`** read-only property of the [File] interface returns the name of the file represented by a [File] object. For security\nreasons, the path is excluded from this property.",
+ "webkitrelativepath": "\n\nThe **`webkitRelativePath`** read-only property of the [File] interface\ncontains a string which specifies the file's path relative to the\ndirectory selected by the user in an `input` element with its\n[`webkitdirectory`](/en-US/docs/Web/HTML/Element/input#webkitdirectory) attribute set."
+ }
+ },
+ "fileentrysync": {
+ "docs": " \n\nThe `FileEntrySync` interface represents a file in a file system. It lets you write content to a file.\n\n> **Warning:** This interface is deprecated and is no more on the standard track.\n> _Do not use it anymore._ Use the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API) instead."
+ },
+ "filelist": {
+ "docs": "\n\nThe **`FileList`** interface represents an object of this type returned by the `files` property of the HTML `input` element; this lets you access the list of files selected with the `<input type=\"file\">` element. It's also used for a list of files dropped into web content when using the drag and drop API; see the [DataTransfer] object for details on this usage.\n\nAll `<input>` element nodes have a `files` attribute of type `FileList` on them which allows access to the items in this list. For example, if the HTML includes the following file input:\n\n```html\n<input id=\"fileItem\" type=\"file\" />\n```\n\nThe following line of code fetches the first file in the node's file list as a [File] object:\n\n```js\nconst file = document.getElementById(\"fileItem\").files[0];\n```\n\n> **Note:** This interface was an [attempt to create an unmodifiable list](https://stackoverflow.com/questions/74630989/why-use-domstringlist-rather-than-an-array/74641156#74641156) and only continues to be supported to not break code that's already using it. Modern APIs use types that wrap around ECMAScript array types instead, so you can treat them like ECMAScript arrays, and at the same time impose additional semantics on their usage (such as making their items read-only).",
+ "properties": {
+ "item": "\n\nThe **`item()`** method of the [FileList] interface returns a [File] object representing the file at the specified index in the file list.",
+ "length": "\n\nThe **`length`** read-only property of the [FileList] interface returns the number of files in the `FileList`."
+ }
+ },
+ "filereader": {
+ "docs": "\n\nThe **`FileReader`** object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using [File] or [Blob] objects to specify the file or data to read.\n\nFile objects may be obtained from a [FileList] object returned as a result of a user selecting files using the `input` element, or from a drag and drop operation's [DataTransfer] object.\n\n`FileReader` can only access the contents of files that the user has explicitly selected, either using an HTML `<input type=\"file\">` element or by drag and drop. It cannot be used to read a file by pathname from the user's file system. To read files on the client's file system by pathname, use the [File System Access API](/en-US/docs/Web/API/File_System_API). To read server-side files, use [fetch], with [CORS](/en-US/docs/Web/HTTP/CORS) permission if reading cross-domain.\n\n",
+ "properties": {
+ "abort": "\n\nThe **`abort`** method of the [FileReader] interface aborts the read operation. Upon return,\nthe [FileReader.readyState] will be `DONE`.",
+ "abort_event": "\n\nThe **`abort`** event is fired when a read has been aborted: for instance because the program called [FileReader.abort].\n\nThis event is not cancelable and does not bubble.",
+ "error": "\n\nThe **`error`** read-only property of the [FileReader] interface returns the\nerror that occurred while reading the file.",
+ "error_event": "\n\nThe **`error`** event is fired when the read failed due to an error (for example, because the file was not found or not readable).\n\nThis event is not cancelable and does not bubble.",
+ "load_event": "\n\nThe **`load`** event is fired when a file has been read successfully.\n\nThis event is not cancelable and does not bubble.",
+ "loadend_event": "\n\nThe **`loadend`** event is fired when a file read has completed, successfully or not.\n\nThis event is not cancelable and does not bubble.",
+ "loadstart_event": "\n\nThe **`loadstart`** event is fired when a file read operation has begun.\n\nThis event is not cancelable and does not bubble.",
+ "progress_event": "\n\nThe **`progress`** event is fired periodically as the `FileReader` reads data.\n\nThis event is not cancelable and does not bubble.",
+ "readasarraybuffer": "\n\nThe **`readAsArrayBuffer()`** method of the [FileReader] interface is used to start reading the\ncontents of a specified [Blob] or [File]. When the read\noperation is finished, the [FileReader.readyState] becomes\n`DONE`, and the [FileReader/loadend_event] is\ntriggered. At that time, the [FileReader.result] attribute\ncontains an `ArrayBuffer` representing the file's data.\n\n> **Note:** The [Blob.arrayBuffer] method is a newer promise-based API to read a\n> file as an array buffer.",
+ "readasbinarystring": "\n\n> **Note:** This method is deprecated in favor of [FileReader.readAsArrayBuffer].\n\nThe **`readAsBinaryString`** method of the [FileReader] interface is used to start reading the contents of the\nspecified [Blob] or [File]. When the read operation is\nfinished, the [FileReader.readyState] becomes\n`DONE`, and the [FileReader.loadend_event] is triggered. At that time, the\n[FileReader.result] attribute contains the raw binary data from\nthe file.\n\nNote that this method was once removed from the File API specification, but\nre-introduced for backward compatibility.\nUsing [FileReader.readAsArrayBuffer] is recommended.",
+ "readasdataurl": "\n\nThe **`readAsDataURL`** method of the [FileReader] interface is used to read the contents of the specified\n[Blob] or [File]. When the read operation is finished, the\n[FileReader.readyState] becomes `DONE`, and the\n[FileReader/loadend_event] is triggered. At that time, the\n[FileReader.result] attribute contains the data as a [data: URL](/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) representing the\nfile's data as a base64 encoded string.\n\n> **Note:** The blob's [FileReader.result] cannot be\n> directly decoded as Base64 without first removing the Data-URL declaration preceding\n> the Base64-encoded data. To retrieve only the Base64 encoded string, first\n> remove `data:*/*;base64,` from the result.",
+ "readastext": "\n\nThe **`readAsText()`** method of the [FileReader] interface is used to read the contents of the specified [Blob] or [File].\nWhen the read operation is complete, the [FileReader.readyState] is changed to `DONE`,\nthe [FileReader/loadend_event] event is triggered, and the [FileReader.result] property contains the contents of the file as a text string.\n\n> **Note:** The [Blob.text] method is a newer promise-based API to read a file as text.\n\n> **Note:** This method loads the entire file's content into memory and is not suitable for large files. Prefer [`readAsArrayBuffer()`](/en-US/docs/Web/API/FileReader/readAsArrayBuffer) for large files.",
+ "readystate": "\n\nThe **`readyState`** read-only property of the [FileReader] interface provides the current state of the reading operation a `FileReader` is in. A `FileReader` exists in one of the following states:\n\n| Value | State | Description |\n| ----- | --------- | ------------------------------------------------------------- |\n| `0` | `EMPTY` | Reader has been created. None of the read methods called yet. |\n| `1` | `LOADING` | A read method has been called. |\n| `2` | `DONE` | The operation is complete. |\n\n- `EMPTY`\n - : The `FileReader` has been created, but no readAs method was called yet.\n- `LOADING`\n - : A readAs method was invoked. A [File] or [Blob] is being read, and no error has occurred yet.\n- `DONE`\n - : The read operation is complete. This could mean that: the entire [File] or [Blob] has been read into memory, a file read error occurred, or [FileReader.abort] was called and the read was cancelled.",
+ "result": "\n\nThe **`result`** read-only property of the [FileReader] interface returns the\nfile's contents. This property is only valid after the read operation is complete, and\nthe format of the data depends on which of the methods was used to initiate the read\noperation."
+ }
+ },
+ "filereadersync": {
+ "docs": "\n\nThe **`FileReaderSync`** interface allows to read [File] or [Blob] objects synchronously. This interface is [only available](/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers) in [workers](/en-US/docs/Web/API/Worker) as it enables synchronous I/O that could potentially block.\n\n",
+ "properties": {
+ "readasarraybuffer": "\n\nThe **`readAsArrayBuffer()`** method of the [FileReaderSync] interface allows to read [File] or [Blob] objects in a synchronous way into an `ArrayBuffer`. This interface is [only available](/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers) in [workers](/en-US/docs/Web/API/Worker) as it enables synchronous I/O that could potentially block.\n\n",
+ "readasbinarystring": "\n\n> **Note:** This method is deprecated in favor of [FileReaderSync.readAsArrayBuffer].\n\nThe **`readAsBinaryString()`** method of the [FileReaderSync] interface allows to read [File] or [Blob] objects in a synchronous way into a string. This interface is [only available](/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers) in [workers](/en-US/docs/Web/API/Worker) as it enables synchronous I/O that could potentially block.\n\n",
+ "readasdataurl": "\n\nThe **`readAsDataURL()`** method of the [FileReaderSync] interface allows to read [File] or [Blob] objects in a synchronous way into a string representing a data URL. This interface is [only available](/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers) in [workers](/en-US/docs/Web/API/Worker) as it enables synchronous I/O that could potentially block.\n\n",
+ "readastext": "\n\nThe **`readAsText()`** method of the [FileReaderSync] interface allows to read [File] or [Blob] objects in a synchronous way into a string. This interface is [only available](/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers) in [workers](/en-US/docs/Web/API/Worker) as it enables synchronous I/O that could potentially block.\n\n"
+ }
+ },
+ "filesystem": {
+ "docs": "\n\nThe File and Directory Entries API interface **`FileSystem`** is used to represent a file system. These objects can be obtained from the [FileSystemEntry.filesystem] property on any file system entry. Some browsers offer additional APIs to create and manage file systems, such as Chrome's [Window.requestFileSystem] method.\n\nThis 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](https://developer.chrome.com/docs/extensions/reference/fileSystem/).",
+ "properties": {
+ "name": "\n\nThe read-only **`name`** property of the\n[FileSystem] interface indicates the file system's name. This\nstring is unique among all file systems currently exposed by the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API).",
+ "root": "\n\nThe read-only **`root`** property of the\n[FileSystem] interface specifies a [FileSystemDirectoryEntry]\nobject representing the root directory of the file system, for use with the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API)."
+ }
+ },
+ "filesystemdirectoryentry": {
+ "docs": "\n\nThe **`FileSystemDirectoryEntry`** interface of the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API) represents a directory in a file system. It provides methods which make it possible to access and manipulate the files in a directory, as well as to access the entries within the directory.\n\n",
+ "properties": {
+ "createreader": "\n\nThe [FileSystemDirectoryEntry] interface's method\n**`createReader()`** returns a\n[FileSystemDirectoryReader] object which can be used to read the entries in\nthe directory.",
+ "getdirectory": "\n\nThe [FileSystemDirectoryEntry] interface's method\n**`getDirectory()`** returns a\n[FileSystemDirectoryEntry] object corresponding to a directory contained\nsomewhere within the directory subtree rooted at the directory on which it's called.",
+ "getfile": "\n\nThe [FileSystemDirectoryEntry] interface's method\n**`getFile()`** returns a\n[FileSystemFileEntry] object corresponding to a file contained somewhere\nwithin the directory subtree rooted at the directory on which it's called.",
+ "removerecursively": "\n\nThe [FileSystemDirectoryEntry] interface's method\n**`removeRecursively()`** removes\nthe directory as well as all of its content, hierarchically iterating over its entire\nsubtree of descendant files and directories.\n\nTo remove a single file, or an empty directory, you can also use\n[FileSystemEntry.remove]."
+ }
+ },
+ "filesystemdirectoryhandle": {
+ "docs": "\n\nThe **`FileSystemDirectoryHandle`** interface of the [File System API] provides a handle to a file system directory.\n\nThe interface can be accessed via the [window.showDirectoryPicker], [StorageManager.getDirectory], [DataTransferItem.getAsFileSystemHandle], and [FileSystemDirectoryHandle.getDirectoryHandle] methods.\n\n",
+ "properties": {
+ "entries": "\n\nThe **`entries()`** method of the\n[FileSystemDirectoryHandle] 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]`.",
+ "getdirectoryhandle": "\n\nThe **`getDirectoryHandle()`** method of the\n[FileSystemDirectoryHandle] interface returns a\n[FileSystemDirectoryHandle] for a subdirectory with the specified name\nwithin the directory handle on which the method is called.",
+ "getfilehandle": "\n\nThe **`getFileHandle()`** method of the\n[FileSystemDirectoryHandle] interface returns a\n[FileSystemFileHandle] for a file with the specified name, within the\ndirectory the method is called.",
+ "keys": "\n\nThe **`keys()`** method of the\n[FileSystemDirectoryHandle] interface returns a new asynchronous iterator\nfor the iteration of the key of the entries within the `FileSystemDirectoryHandle`\non which this method is called.",
+ "removeentry": "\n\nThe **`removeEntry()`** method of the\n[FileSystemDirectoryHandle] interface attempts to remove an entry if the\ndirectory handle contains a file or directory called the name specified.",
+ "resolve": "\n\nThe **`resolve()`** method of the\n[FileSystemDirectoryHandle] 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.",
+ "values": "\n\nThe **`values()`** method of the\n[FileSystemDirectoryHandle] interface returns a new asynchronous iterator\nfor the iteration of the value of the entries within the `FileSystemDirectoryHandle`\non which this method is called."
+ }
+ },
+ "filesystemdirectoryreader": {
+ "docs": "\n\nThe `FileSystemDirectoryReader` interface of the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API) lets you access the [FileSystemFileEntry]-based objects (generally [FileSystemFileEntry] or [FileSystemDirectoryEntry]) representing each entry in a directory.",
+ "properties": {
+ "readentries": "\n\nThe [FileSystemDirectoryReader] interface's **`readEntries()`** method retrieves the directory entries\nwithin the directory being read and delivers them in an array to a provided callback function.\n\nThe objects in the array are all based upon [FileSystemEntry].\nGenerally, they are either [FileSystemFileEntry] objects, which represent standard files, or [FileSystemDirectoryEntry] objects, which represent directories."
+ }
+ },
+ "filesystementry": {
+ "docs": "\n\nThe **`FileSystemEntry`** interface of the File and Directory Entries API represents a single entry in a file system. The entry can be a file or a directory (directories are represented by the [FileSystemDirectoryEntry] interface). It includes methods for working with files—including copying, moving, removing, and reading files—as well as information about a file it points to—including the file name and its path from the root to the entry.",
+ "properties": {
+ "copyto": "\n\nThe [FileSystemEntry] interface's method\n**`copyTo()`** copies the file\nspecified by the entry to a new location on the file system.\n\nThere 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\n subfolders.",
+ "filesystem": "\n\nThe read-only **`filesystem`**\nproperty of the [FileSystemEntry] interface contains a\n[FileSystem] object that represents the file system on which the entry\nresides.",
+ "fullpath": "\n\nThe read-only **`fullPath`** property\nof the [FileSystemEntry] interface returns a string\nspecifying the full, absolute path from the file system's root to the file represented\nby the entry.\n\nThis can also be thought of as a path which is relative to the root directory, with a\n\"/\" prepended to it to make it absolute.",
+ "getmetadata": "\n\nThe [FileSystemEntry] interface's method\n**`getMetadata()`** obtains a\n[Metadata] object with information about the file system entry, such as\nits modification date and time and its size.",
+ "getparent": "\n\nThe [FileSystemEntry] interface's method\n**`getParent()`** obtains a\n[FileSystemDirectoryEntry].",
+ "isdirectory": "\n\nThe read-only **`isDirectory`**\nproperty of the [FileSystemEntry] interface is `true` if the\nentry represents a directory (meaning it's a [FileSystemDirectoryEntry])\nand `false` if it's not.\n\nYou can also use [FileSystemEntry.isFile] to determine if the\nentry is a file.\n\n> **Warning:** You should not assume that any entry which isn't a directory is a file or vice versa.\n> There are other types of file descriptors on many operating systems. Be sure to use\n> both `isDirectory` and `isFile` as needed to ensure that the\n> entry is something you know how to work with.",
+ "isfile": "\n\nThe read-only **`isFile`** property of\nthe [FileSystemEntry] interface is `true` if the entry\nrepresents a file (meaning it's a [FileSystemFileEntry]) and\n`false` if it's not.\n\nYou can also use [FileSystemEntry.isDirectory] to determine\nif the entry is a directory.\n\n> **Warning:** You should not assume that any entry which isn't a file is a directory or vice versa.\n> There are other types of file descriptors on many operating systems. Be sure to use\n> both `isDirectory` and `isFile` as needed to ensure that the\n> entry is something you know how to work with.",
+ "moveto": "\n\nThe [FileSystemEntry] interface's method\n**`moveTo()`** 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\nThere 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.\n Specifying 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\n subfolders.\n- You can't move a file such that it replaces an existing directory, and you can't\n move a directory such that it replaces an existing file. However, a file can replace a\n file and a directory can replace a directory.\n- You can only overwrite a directory if it's empty.",
+ "name": "\n\nThe read-only **`name`** property of\nthe [FileSystemEntry] interface returns a string\nspecifying the entry's name; this is the entry within its parent directory (the last\ncomponent of the path as indicated by the [FileSystemEntry.fullPath] property).",
+ "remove": "\n\nThe [FileSystemEntry] interface's method\n**`remove()`** deletes the file\nor directory from the file system. Directories must be empty before they can be\nremoved.\n\nTo recursively remove a directory as well as all of its contents and its\nsubdirectories, call [FileSystemDirectoryEntry.removeRecursively]\ninstead.",
+ "tourl": "\n\nThe [FileSystemEntry] interface's method\n**`toURL()`** 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."
+ }
+ },
+ "filesystemfileentry": {
+ "docs": "\n\nThe **`FileSystemFileEntry`** interface of the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API/Introduction) represents a file in a file system. It offers properties describing the file's attributes, as well as the [FileSystemFileEntry.file] method, which creates a [File] object that can be used to read the file.\n\n",
+ "properties": {
+ "createwriter": "\n\nThe [FileSystemFileEntry] interface's method\n**`createWriter()`** returns a [FileWriter] object\nwhich can be used to write data into the file represented by the directory entry.",
+ "file": "\n\nThe [FileSystemFileEntry] interface's method\n**`file()`** returns a\n[File] object which can be used to read data from the file represented by\nthe directory entry."
+ }
+ },
+ "filesystemfilehandle": {
+ "docs": "\n\nThe **`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\nNote 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 [FileSystemHandle.queryPermission] method of the [FileSystemHandle] interface can be used to verify permission state before accessing a file.\n\n",
+ "properties": {
+ "createsyncaccesshandle": "\n\nThe **`createSyncAccessHandle()`** method of the\n[FileSystemFileHandle] 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](/en-US/docs/Web/API/Web_Workers_API) for files within the [origin private file system](/en-US/docs/Web/API/File_System_API/Origin_private_file_system).\n\nCreating a [FileSystemSyncAccessHandle] takes an exclusive lock on the file associated with the file handle. This prevents the creation of further [FileSystemSyncAccessHandle]s or [FileSystemWritableFileStream]s for the file until the existing access handle is closed.",
+ "createwritable": "\n\nThe **`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\nAny 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 filestream is closed.",
+ "getfile": "\n\nThe **`getFile()`** method of the\n[FileSystemFileHandle] interface returns a `Promise` which resolves to a\n[File] object representing the state on disk of the entry represented by the handle.\n\nIf the file on disk changes or is removed after this method is called, the returned\n[File] object will likely be no longer readable."
+ }
+ },
+ "filesystemhandle": {
+ "docs": "\n\nThe **`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].",
+ "properties": {
+ "issameentry": "\n\nThe **`isSameEntry()`** method of the\n[FileSystemHandle] interface compares two [FileSystemHandle] to see if the associated entries (either a file or directory) match.",
+ "kind": "\n\nThe **`kind`** read-only property of the\n[FileSystemHandle] 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.",
+ "name": "\n\nThe **`name`** read-only property of the\n[FileSystemHandle] interface returns the name of the entry represented by\nhandle.",
+ "querypermission": "\n\nThe **`queryPermission()`** method of the\n[FileSystemHandle] interface queries the current permission state of the\ncurrent handle.",
+ "remove": "\n\nThe **`remove()`** method of the [FileSystemHandle] interface requests removal of the entry represented by the handle from the underlying file system.\n\nThe `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\nYou can also call `remove()` on the root directory of the [Origin Private File System](/en-US/docs/Web/API/File_System_API/Origin_private_file_system) to clear its contents, after which a new empty OPFS is created.",
+ "requestpermission": "\n\nThe **`requestPermission()`** method of the\n[FileSystemHandle] interface requests read or readwrite permissions for the\nfile handle."
+ }
+ },
+ "filesystemsync": {
+ "docs": "\n\nIn the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API/Introduction), a `FileSystemSync` object represents a file system. It has two properties.\n\n> **Warning:** This interface is deprecated and is no more on the standard track.\n> _Do not use it anymore._ Use the [File and Directory Entries API](/en-US/docs/Web/API/File_and_Directory_Entries_API) instead."
+ },
+ "filesystemsyncaccesshandle": {
+ "docs": "\n\nThe **`FileSystemSyncAccessHandle`** interface of the [File System API] represents a synchronous handle to a file system entry.\n\nThis class is only accessible inside dedicated [Web Workers](/en-US/docs/Web/API/Web_Workers_API) (so that its methods do not block execution on the main thread) for files within the [origin private file system](/en-US/docs/Web/API/File_System_API/Origin_private_file_system), which is not visible to end-users.\n\nAs 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](https://www.sqlite.org/wasm) database modifications.\n\nThe interface is accessed through the [FileSystemFileHandle.createSyncAccessHandle] method.\n\n> **Note:** In earlier versions of the spec, [FileSystemSyncAccessHandle.close], [FileSystemSyncAccessHandle.flush], [FileSystemSyncAccessHandle.getSize], and [FileSystemSyncAccessHandle.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.",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the\n[FileSystemSyncAccessHandle] 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:** In earlier versions of the spec, `close()`, [FileSystemSyncAccessHandle.flush], [FileSystemSyncAccessHandle.getSize], and [FileSystemSyncAccessHandle.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.",
+ "flush": "\n\nThe **`flush()`** method of the\n[FileSystemSyncAccessHandle] interface persists any changes made to the file associated with the handle via the [FileSystemSyncAccessHandle.write] method to disk.\n\nBear 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:** In earlier versions of the spec, [FileSystemSyncAccessHandle.close], `flush()`, [FileSystemSyncAccessHandle.getSize], and [FileSystemSyncAccessHandle.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.",
+ "getsize": "\n\nThe **`getSize()`** method of the\n[FileSystemSyncAccessHandle] interface returns the size of the file associated with the handle in bytes.\n\n> **Note:** In earlier versions of the spec, [FileSystemSyncAccessHandle.close], [FileSystemSyncAccessHandle.flush], `getSize()`, and [FileSystemSyncAccessHandle.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.",
+ "read": "\n\nThe **`read()`** method of the\n[FileSystemSyncAccessHandle] interface reads the content of the file associated with the handle into a specified buffer, optionally at a given offset.",
+ "truncate": "\n\nThe **`truncate()`** method of the\n[FileSystemSyncAccessHandle] interface resizes the file associated with the handle to a specified number of bytes.\n\n> **Note:** In earlier versions of the spec, [FileSystemSyncAccessHandle.close], [FileSystemSyncAccessHandle.flush], [FileSystemSyncAccessHandle.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.",
+ "write": "\n\nThe **`write()`** method of the\n[FileSystemSyncAccessHandle] interface writes the content of a specified buffer to the file associated with the handle, optionally at a given offset.\n\nFiles within the [origin private file system](/en-US/docs/Web/API/File_System_API/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](https://www.sqlite.org/wasm) database modifications."
+ }
+ },
+ "filesystemwritablefilestream": {
+ "docs": "\n\nThe **`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.\n\n",
+ "properties": {
+ "seek": "\n\nThe **`seek()`** method of the [FileSystemWritableFileStream] interface updates the current file cursor offset to the position (in bytes) specified when calling the method.",
+ "truncate": "\n\nThe **`truncate()`** method of the [FileSystemWritableFileStream] interface resizes the file associated with the stream to the specified size in bytes.\n\nIf the size specified is larger than the current file size the file is padded with `0x00` bytes.\n\nThe 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\nNo changes are written to the actual file on disk until the stream has been closed.\nChanges are typically written to a temporary file instead.",
+ "write": "\n\nThe **`write()`** method of the [FileSystemWritableFileStream] interface writes content into the file the method is called on, at the current file cursor offset.\n\nNo 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."
+ }
+ },
+ "focusevent": {
+ "docs": "\n\nThe **`FocusEvent`** interface represents focus-related events, including [Element/focus_event], [Element/blur_event], [Element/focusin_event], and [Element/focusout_event].\n\n",
+ "properties": {
+ "relatedtarget": "\n\nThe **`FocusEvent.relatedTarget`** read-only property is the\nsecondary target, depending on the type of event:\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th scope=\"col\">Event name</th>\n <th scope=\"col\"><code>target</code></th>\n <th scope=\"col\"><code>relatedTarget</code></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>[Element/blur_event]</td>\n <td>The [EventTarget] losing focus</td>\n <td>\n The [EventTarget] receiving focus (if any).\n </td>\n </tr>\n <tr>\n <td>[Element/focus_event]</td>\n <td>The [EventTarget] receiving focus</td>\n <td>The [EventTarget] losing focus (if any)</td>\n </tr>\n <tr>\n <td>[Element/focusin_event]</td>\n <td>The [EventTarget] receiving focus</td>\n <td>The [EventTarget] losing focus (if any)</td>\n </tr>\n <tr>\n <td>[Element/focusout_event]</td>\n <td>The [EventTarget] losing focus</td>\n <td>The [EventTarget] receiving focus (if any)</td>\n </tr>\n </tbody>\n</table>\n\nNote that [many elements can't have focus](https://stackoverflow.com/questions/42764494/blur-event-relatedtarget-returns-null/42764495), which is a common reason for `relatedTarget` to be\n`null`. `relatedTarget` may also be set to `null` for\nsecurity reasons, like when tabbing in or out of a page.\n\n[MouseEvent.relatedTarget] is a similar property for mouse events."
+ }
+ },
+ "fontdata": {
+ "docs": "\n\nThe **`FontData`** interface of the [Local Font Access API] represents a single local font face.",
+ "properties": {
+ "blob": "\n\nThe **`blob()`** method of the [FontData] interface returns a `Promise` that fulfills with a [Blob] containing the raw bytes of the underlying font file.",
+ "family": "\n\nThe **`family`** read-only property of the [FontData] interface returns the family of the font face.\n\nThis is the name used when referring to the font family from code, for example, in the property or in places within the at-rule such as the `local()` function.\n\nExamples include:\n\n- Apple SD Gothic Neo\n- Arial Black\n- Avenir Next\n- Katari\n- YuMincho +36p Kana",
+ "fullname": "\n\nThe **`fullName`** read-only property of the [FontData] interface returns the full name of the font face. This is usually a human-readable name used to identify the font, e.g., \"Optima Bold\".\n\nExamples include:\n\n- Apple SD Gothic Neo UltraLight\n- Arial Black\n- Avenir Next Heavy\n- Katari Medium Italic\n- YuMincho +36p Kana Extrabold",
+ "postscriptname": "\n\nThe **`postscriptName`** read-only property of the [FontData] interface returns the PostScript name of the font face.\n\nThis is the name used to uniquely identify the PostScript font, and is generally an unbroken sequence of characters that includes the font's name and style.\n\nExamples include:\n\n- AppleSDGothicNeo-UltraLight\n- Arial-Black\n- AvenirNext-Heavy\n- Katari-MediumItalic\n- YuMin_36pKn-Extrabold",
+ "style": "\n\nThe **`style`** read-only property of the [FontData] interface returns the style of the font face.\n\nThis is the value used to select the style of the font you want to use, for example inside the property.\n\nExamples include:\n\n- UltraLight\n- Regular\n- Heavy\n- Medium Italic\n- Extrabold"
+ }
+ },
+ "fontface": {
+ "docs": "\n\nThe **`FontFace`** interface of the [CSS Font Loading API](/en-US/docs/Web/API/CSS_Font_Loading_API) represents a single usable font face.\n\nThis interface defines the source of a font face, either a URL to an external resource or a buffer, and font properties such as `style`, `weight`, and so on.\nFor URL font sources it allows authors to trigger when the remote font is fetched and loaded, and to track loading status.",
+ "properties": {
+ "ascentoverride": "\n\nThe **`ascentOverride`** property of the [FontFace] interface returns and sets the ascent metric for the font, the height above the baseline that CSS uses to lay out line boxes in an inline formatting context.\n\nThis property is equivalent to the descriptor of .",
+ "descentoverride": "\n\nThe **`descentOverride`** property of the [FontFace] interface returns and sets the value of the descriptor.\nThe possible values are `normal`, indicating that the metric used should be obtained from the font file, or a percentage.",
+ "display": "\n\nThe **`display`** property of the [FontFace] interface determines how a font face is displayed based on whether and when it is downloaded and ready to use.\nThis property is equivalent to the CSS `font-display` descriptor.\n\nWhen this property is used, font loading has a timeline with three periods.\nThe lengths of the first two periods depend on the value of the property and the user agent.\n(See below.)\n\n- block period\n - : The browser invisibly prepares a fallback font. If the font face loads during this time, it's used to display the text and display is complete.\n- swap period\n - : If the font face is still not loaded, the fallback font will be shown.\n When the font face loads, the fallback will be swapped for the downloaded font.\n- failure period\n - : If the font face still is not loaded, the fallback font will be shown and no swap will occur.",
+ "family": "\n\nThe **`FontFace.family`** property allows the author to get or set the font family of a [FontFace] object.\n\nThe value is used for name matching against a particular font face when styling elements using the [`font-family`](/en-US/docs/Web/CSS/font-family) property.\nAny name may be used, and this overrides any name specified in the underlying font data.\n\nThis property is equivalent to the descriptor of .",
+ "featuresettings": "\n\nThe **`featureSettings`** property of the [FontFace] interface retrieves or sets infrequently used font features that are not available from a font's variant properties.\n\nThis property is equivalent to the descriptor.",
+ "linegapoverride": "\n\nThe **`lineGapOverride`** property of the [FontFace] interface returns and sets the value of the descriptor.\nThe possible values are `normal`, indicating that the metric used should be obtained from the font file, or a percentage.",
+ "load": "\n\nThe **`load()`** method of the [FontFace] interface requests and loads a font whose `source` was specified as a URL. It returns a `Promise` that resolves with the current `FontFace` object.\n\nIf the `source` for the font face was specified as binary data, or the font [FontFace/status] property of the font face is anything other than `unloaded`, then this method does nothing.",
+ "loaded": "\n\nThe **`loaded`** read-only property of the [FontFace] interface returns a `Promise` that resolves with the current `FontFace` object when the font specified in the object's constructor is done loading or rejects with a `SyntaxError`.",
+ "status": "\n\nThe **`status`** read-only property of the [FontFace] interface returns an enumerated value indicating the status of the font, one of `\"unloaded\"`, `\"loading\"`, `\"loaded\"`, or `\"error\"`.",
+ "stretch": "\n\nThe **`stretch`** property of the [FontFace] interface retrieves or sets how the font stretches.\n\nThis property is equivalent to the descriptor.",
+ "style": "\n\nThe **`style`** property of the [FontFace] interface retrieves or sets the font's style.\n\nThis property is equivalent to the descriptor.",
+ "unicoderange": "\n\nThe **`unicodeRange`** property of the [FontFace] interface retrieves or sets the range of unicode code points encompassing the font.\n\nThis property is equivalent to the descriptor.",
+ "variant": "\n\nThe **`variant`** property of the\n[FontFace] interface programmatically retrieves or sets font variant\nvalues.",
+ "variationsettings": "\n\nThe **`variationSettings`** property of the [FontFace] interface retrieves or sets low-level OpenType or TrueType font variations.\n\nThis property is equivalent to the descriptor.",
+ "weight": "\n\nThe **`weight`** property of the [FontFace] interface retrieves or sets the weight of the font.\n\nThis property is equivalent to the descriptor."
+ }
+ },
+ "fontfaceset": {
+ "docs": "\n\nThe **`FontFaceSet`** interface of the [CSS Font Loading API](/en-US/docs/Web/API/CSS_Font_Loading_API) manages the loading of font-faces and querying of their download status.\n\nA `FontFaceSet` instance is a [`Set`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#set-like_browser_apis) that can hold an ordered set of [FontFace] objects.\n\nThis property is available as [Document.fonts], or `self.fonts` in [web workers](/en-US/docs/Web/API/Web_Workers_API).\n\n",
+ "properties": {
+ "add": "\n\nThe **`add()`** method of the [FontFaceSet] interface adds a new font to the set.",
+ "check": "\n\nThe `check()` method of the [FontFaceSet] returns `true` if you can render some text using the given font specification without attempting to use any fonts in this `FontFaceSet` that are not yet fully loaded. This means you can use the font specification without causing a [font swap](/en-US/docs/Web/CSS/@font-face/font-display#the_font_display_timeline).",
+ "clear": "\n\nThe **`clear()`** method of the [FontFaceSet] interface removes all fonts added via this interface. Fonts added with the rule are not removed.",
+ "delete": "\n\nThe **`delete()`** method of the [FontFaceSet] interface removes a font from the set.\n\nFont faces that were added to the set using the CSS rule remain connected to the corresponding CSS, and cannot be deleted.",
+ "entries": "\n\nThe **`entries()`** method of the [FontFaceSet] interface returns a new `Iterator` object, containing an array of `[value,value]` for each element in the `FontFaceSet`.",
+ "foreach": "\n\nThe **`forEach()`** method of the [FontFaceSet] interface executes a provided function for each value in the `FontFaceSet` object.",
+ "has": "\n\nThe **`has()`** method of the [FontFaceSet] interface returns a `Boolean` asserting whether an element is present with the given value.",
+ "keys": "\n\nThe **`keys()`** method of the [FontFaceSet] interface is an alias for [FontFaceSet.values].",
+ "load": "\n\nThe `load()` method of the [FontFaceSet] forces all the fonts given in parameters to be loaded.",
+ "loading_event": "\n\nThe `loading` event fires when the document begins loading fonts.",
+ "loadingdone_event": "\n\nThe `loadingdone` event fires when the document has loaded all fonts.",
+ "loadingerror_event": "\n\nThe `loadingerror` event fires when fonts have finished loading, but some or all fonts have failed to load.",
+ "ready": "\n\nThe `ready` read-only property of the [FontFaceSet] interface returns a `Promise` that resolves to the given [FontFaceSet].\n\nThe promise will only resolve once the document has completed loading fonts, layout operations are completed, and no further font loads are needed.",
+ "size": "\n\nThe **`size`** property of the [FontFaceSet] interface returns the number of items in the `FontFaceSet`.",
+ "status": "\n\nThe **`status`** read-only property of the [FontFaceSet] interface returns the loading state of the fonts in the set.",
+ "values": "\n\nThe **`values()`** method of the [FontFaceSet] interface returns a new iterator object that yields the values for each element in the `FontFaceSet` object in insertion order."
+ }
+ },
+ "fontfacesetloadevent": {
+ "docs": "\n\nThe **`FontFaceSetLoadEvent`** interface of the [CSS Font Loading API](/en-US/docs/Web/API/CSS_Font_Loading_API) represents events fired at a [FontFaceSet] after it starts loading font faces.\n\nEvents are fired when font loading starts ([`loading`](/en-US/docs/Web/API/FontFaceSet/loading_event)), loading completes ([`loadingdone`](/en-US/docs/Web/API/FontFaceSet/loadingdone_event)) or there is an error loading one of the fonts ([`loadingerror`](/en-US/docs/Web/API/FontFaceSet/loadingerror_event)).\n\n",
+ "properties": {
+ "fontfaces": "\n\nThe **`fontfaces`** read-only property of the\n[FontFaceSetLoadEvent] interface returns an array of\n[FontFace] instances, each of which represents a single usable font."
+ }
+ },
+ "formdata": {
+ "docs": "\n\nThe **`FormData`** interface provides a way to construct a set of key/value pairs representing form fields and their values, which can be sent using the [fetch], [XMLHttpRequest.send] or [navigator.sendBeacon] methods. It uses the same format a form would use if the encoding type were set to `\"multipart/form-data\"`.\n\nYou can also pass it directly to the [URLSearchParams] constructor if you want to generate query parameters in the way a `form` would do if it were using simple `GET` submission.\n\nAn object implementing `FormData` can directly be used in a `for...of` structure, instead of [FormData.entries]: `for (const p of myFormData)` is equivalent to `for (const p of myFormData.entries())`.\n\n> **Note:** This feature is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "properties": {
+ "append": "\n\nThe **`append()`** method of the [FormData] interface appends a new value onto an existing key inside a `FormData` object, or adds the key if it does not already exist.\n\nThe difference between [FormData.set] and `append()` is that if the specified key already exists, `set()` will overwrite all existing values with the new one, whereas `append()` will append the new value onto the end of the existing set of values.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "delete": "\n\nThe **`delete()`** method of the [FormData] interface deletes a key and its value(s) from a `FormData` object.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "entries": "\n\nThe **`FormData.entries()`** method returns an [iterator](/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) which iterates through all key/value pairs contained in the [FormData]. The key of each pair is a string object, and the value is either a string or a [Blob].\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "get": "\n\nThe **`get()`** method of the [FormData] interface\nreturns the first value associated with a given key from within a `FormData`\nobject. If you expect multiple values and want all of them, use the\n[FormData.getAll] method instead.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "getall": "\n\nThe **`getAll()`** method of the [FormData] interface returns all the values associated with a given key from within a `FormData` object.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "has": "\n\nThe **`has()`** method of the [FormData] interface returns whether a `FormData` object contains a certain key.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "keys": "\n\nThe **`FormData.keys()`** method returns an [iterator](/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) which iterates through all keys contained in the [FormData]. The keys are strings.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "set": "\n\nThe **`set()`** method of the [FormData] interface sets a new value for an existing key inside a `FormData` object, or adds the key/value if it does not already exist.\n\nThe difference between `set()` and [FormData.append] is that if the specified key does already exist, `set()` will overwrite all existing values with the new one, whereas `append()` will append the new value onto the end of the existing set of values.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "values": "\n\nThe **`FormData.values()`** method returns an [iterator](/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) which iterates through all values contained in the [FormData]. The values are strings or [Blob] objects.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API)."
+ }
+ },
+ "formdataevent": {
+ "docs": "\n\nThe **`FormDataEvent`** interface represents a [`formdata` event](/en-US/docs/Web/API/HTMLFormElement/formdata_event) — such an event is fired on an [HTMLFormElement] object after the entry list representing the form's data is constructed. This happens when the form is submitted, but can also be triggered by the invocation of a [FormData.FormData] constructor.\n\nThis allows a [FormData] object to be quickly obtained in response to a `formdata` event firing, rather than needing to put it together yourself when you wish to submit form data via a method like [fetch] (see [Using FormData objects](/en-US/docs/Web/API/XMLHttpRequest_API/Using_FormData_Objects)).\n\n",
+ "properties": {
+ "formdata": "\n\nThe `formData` read-only property of the [FormDataEvent]\ninterface contains the [FormData] object representing the data contained in\nthe form when the event was fired."
+ }
+ },
+ "fragmentdirective": {
+ "docs": "\n\nThe **`FragmentDirective`** interface is an object exposed for feature detectability, that is, whether or not a browser supports text fragments.\n\nIt is accessed via the [Document.fragmentDirective] property."
+ },
+ "gainnode": {
+ "docs": "\n\nThe `GainNode` interface represents a change in volume. It is an [AudioNode] audio-processing module that causes a given gain to be applied to the input data before its propagation to the output. A `GainNode` always has exactly one input and one output, both with the same number of channels.\n\nThe gain is a unitless value, changing with time, that is multiplied to each corresponding sample of all input channels. If modified, the new gain is instantly applied, causing unaesthetic 'clicks' in the resulting audio. To prevent this from happening, never change the value directly but use the exponential interpolation methods on the [AudioParam] interface.\n\n\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code> (not used in the default count mode)</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "gain": "\n\nThe `gain` property of the [GainNode] interface is an [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) [AudioParam] representing the amount of gain to apply."
+ }
+ },
+ "gamepad": {
+ "docs": "\n\nThe **`Gamepad`** interface of the [Gamepad API](/en-US/docs/Web/API/Gamepad_API) defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id.\n\nA Gamepad object can be returned in one of two ways: via the `gamepad` property of the [Window.gamepadconnected_event] and [Window.gamepaddisconnected_event] events, or by grabbing any position in the array returned by the [Navigator.getGamepads] method.",
+ "properties": {
+ "axes": "\n\nThe **`Gamepad.axes`** property of the [Gamepad]\ninterface returns an array representing the controls with axes present on the device\n(e.g. analog thumb sticks).\n\nEach entry in the array is a floating point value in the range -1.0 – 1.0, representing\nthe axis position from the lowest value (-1.0) to the highest value (1.0).",
+ "buttons": "\n\nThe **`Gamepad.buttons`** property of the [Gamepad] interface returns an array of [gamepadButton] objects representing the\nbuttons present on the device.\n\nEach entry in the array is 0 if the button is not pressed, and non-zero (typically 1.0)\nif the button is pressed. Each [gamepadButton] object has two properties:\n`pressed` and `value`:\n\n- The `pressed` property is a boolean indicating whether the button is\n currently pressed (`true`) or unpressed (`false`).\n- The `value` property is a floating point value used to enable\n representing analog buttons, such as the triggers on many modern gamepads. The values\n are normalized to the range 0.0 – 1.0, with 0.0 representing a button that is not\n pressed, and 1.0 representing a button that is fully pressed.",
+ "connected": "\n\nThe **`Gamepad.connected`** property of the\n[Gamepad] interface returns a boolean indicating whether the gamepad is\nstill connected to the system.\n\nIf the gamepad is connected, the value is `true`; if not, it is\n`false`.",
+ "displayid": "\n\nThe **`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\nA 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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/#gamepad-getvrdisplays-attribute). It has been superseded by the [WebXR Gamepads Module](https://immersive-web.github.io/webxr-gamepads-module/).\n>\n> There is no direct replacement for this property. The [Gamepad] object associated with an [XRInputSource] can be obtained using the [XRInputSource.gamepad] property.",
+ "hand": "\n\nThe **`hand`** read-only property of the [Gamepad] interface returns an enum defining what hand the controller is being held in, or is most likely to be held in.",
+ "hapticactuators": "\n\nThe **`hapticActuators`** read-only property of the [Gamepad] interface returns an array containing [GamepadHapticActuator] objects, each of which represents haptic feedback hardware available on the controller.",
+ "id": "\n\nThe **`Gamepad.id`** property of the [Gamepad]\ninterface returns a string containing some information about the controller.\n\nThe exact syntax is not strictly specified, but in Firefox it will contain three pieces\nof information separated by dashes (`-`):\n\n- Two 4-digit hexadecimal strings containing the USB vendor and product id of the\n controller\n- The name of the controller as provided by the driver.\n\nFor example, a PS2 controller returned **810-3-USB Gamepad**.\n\nThis information is intended to allow you to find a mapping for the controls on the\ndevice as well as display useful feedback to the user.",
+ "index": "\n\nThe **`Gamepad.index`** property of the [Gamepad]\ninterface returns an integer that is auto-incremented to be unique for each device\ncurrently connected to the system.\n\nThis can be used to distinguish multiple controllers; a gamepad that is disconnected\nand reconnected will retain the same index.",
+ "mapping": "\n\nThe **`Gamepad.mapping`** property of the\n[Gamepad] interface returns a string indicating whether the browser has\nremapped the controls on the device to a known layout.\n\nThe currently supported known layouts are:\n\n- \"standard\" for the [standard gamepad](https://w3c.github.io/gamepad/#remapping).\n- \"xr-standard for the [standard XR gamepad](https://immersive-web.github.io/webxr-gamepads-module/#xr-standard-heading). See also [XRInputSource.gamepad].",
+ "pose": "\n\nThe **`pose`** read-only property of the [Gamepad] interface returns a [GamepadPose] object representing the pose information associated with a WebVR controller (e.g. its position and orientation in 3D space).",
+ "timestamp": "\n\nThe **`Gamepad.timestamp`** property of the\n[Gamepad] interface returns a [DOMHighResTimeStamp]\nrepresenting the last time the data for this gamepad was updated.\n\nThe idea behind this is to allow developers to determine if the `axes` and\n`button` data have been updated from the hardware. The value must be\nrelative to the `navigationStart` attribute of the\n[PerformanceTiming] interface. Values are monotonically\nincreasing, meaning that they can be compared to determine the ordering of updates, as\nnewer values will always be greater than or equal to older values.\n\n> **Note:** This property is not currently supported anywhere.",
+ "vibrationactuator": "\n\nThe **`vibrationActuator`** read-only property of the [Gamepad] interface returns a [GamepadHapticActuator] object, which represents haptic feedback hardware available on the controller."
+ }
+ },
+ "gamepadbutton": {
+ "docs": "\n\nThe **`GamepadButton`** interface defines an individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device.\n\nA `GamepadButton` object is returned by querying any value of the array returned by the `buttons` property of the [Gamepad] interface.",
+ "properties": {
+ "pressed": "\n\nThe **`GamepadButton.pressed`** property of the\n[GamepadButton] interface returns a `boolean` indicating whether\nthe button is currently pressed (`true`) or unpressed (`false`).",
+ "touched": "\n\nThe **`touched`** property of the\n[GamepadButton] interface returns a `boolean` indicating whether\na button capable of detecting touch is currently touched (`true`) or not touched (`false`).\n\nIf the button is not capable of detecting touch but can return an analog value, the property will be `true` if the value is greater than `0`, and `false` otherwise. If the button is not capable of detecting touch and can only report a digital value, then it should mirror the [GamepadButton.pressed] property.",
+ "value": "\n\nThe **`GamepadButton.value`** property of the\n[GamepadButton] interface returns a double value used to represent the\ncurrent state of analog buttons on many modern gamepads, such as the triggers.\n\nThe values are normalized to the range `0.0` — `1.0`, with\n`0.0` representing a button that is not pressed, and 1.0 representing a\nbutton that is fully pressed."
+ }
+ },
+ "gamepadevent": {
+ "docs": "\n\nThe GamepadEvent interface of the Gamepad API contains references to gamepads connected to the system, which is what the gamepad events [Window.gamepadconnected_event] and [Window.gamepaddisconnected_event] are fired in response to.\n\n",
+ "properties": {
+ "gamepad": "\n\nThe **`GamepadEvent.gamepad`** property of the\n**[GamepadEvent] interface** returns a [Gamepad]\nobject, providing access to the associated gamepad data for fired\n[Window.gamepadconnected_event] and [Window.gamepaddisconnected_event] events."
+ }
+ },
+ "gamepadhapticactuator": {
+ "docs": "\n\nThe **`GamepadHapticActuator`** interface of the [Gamepad API](/en-US/docs/Web/API/Gamepad_API) represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware.\n\nThis interface is accessible through the [Gamepad.hapticActuators] property.",
+ "properties": {
+ "playeffect": "\n\nThe **`playEffect()`** method of the [GamepadHapticActuator] interface makes the hardware play a specific vibration pattern.",
+ "pulse": "\n\nThe **`pulse()`** method of the [GamepadHapticActuator] interface makes the hardware pulse at a certain intensity for a specified duration.",
+ "type": "\n\nThe **`type`** read-only property of the [GamepadHapticActuator] interface returns an enum representing the type of the haptic hardware."
+ }
+ },
+ "gamepadpose": {
+ "docs": "\n\nThe **`GamepadPose`** interface of the [Gamepad API](/en-US/docs/Web/API/Gamepad_API) represents the pose of a [WebVR](/en-US/docs/Web/API/WebVR_API) controller at a given timestamp (which includes orientation, position, velocity, and acceleration information).\n\nThis interface is accessible through the [Gamepad.pose] property.",
+ "properties": {
+ "angularacceleration": "\n\nThe **`angularAcceleration`** read-only property of the [GamepadPose] interface returns an array representing the angular acceleration vector of the [Gamepad], in meters per second per second.\n\nIn other words, the current acceleration of the sensor's rotation around the `x`, `y`, and `z` axes.",
+ "angularvelocity": "\n\nThe **`angularVelocity`** read-only property of the [GamepadPose] interface returns an array representing the angular velocity vector of the [Gamepad], in radians per second.\n\nIn other words, the current velocity at which the sensor is rotating around the `x`, `y`, and `z` axes.",
+ "hasorientation": "\n\nThe **`hasOrientation`** read-only property of the [GamepadPose] interface returns a boolean value stating whether the [Gamepad] can track and return orientation information.",
+ "hasposition": "\n\nThe **`hasPosition`** read-only property of the [GamepadPose] interface returns a boolean value stating whether the [Gamepad] can track and return position information.",
+ "linearacceleration": "\n\nThe **`linearAcceleration`** read-only property of the [GamepadPose] interface returns an array representing the linear acceleration vector of the [Gamepad], in meters per second per second.\n\nIn other words, the current acceleration of the sensor, along the `x`, `y`, and `z` axes.",
+ "linearvelocity": "\n\nThe **`linearVelocity`** read-only property of the [GamepadPose] interface returns an array representing the linear velocity vector of the [Gamepad], in meters per second.\n\nIn other words, the current velocity at which the sensor is moving along the `x`, `y`, and `z` axes.",
+ "orientation": "\n\nThe **`orientation`** read-only property of the [GamepadPose] interface returns the orientation of the [Gamepad], as a quarternion value.\n\nThe 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\nThe orientation yaw (rotation around the y axis) is relative to the initial yaw of the sensor when it was first read.",
+ "position": "\n\nThe **`position`** read-only property of the [GamepadPose] interface returns the position of the [Gamepad] as a 3D vector.\n\nThe 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\nPositions are measured in meters from an origin point — this point is the position the sensor was first read at."
+ }
+ },
+ "geolocation": {
+ "docs": "\n\nThe **`Geolocation`** interface represents an object able to obtain the position of the device programmatically. It gives Web content access to the location of the device. This allows a website or app to offer customized results based on the user's location.\n\nAn object with this interface is obtained using the [navigator.geolocation] property implemented by the [Navigator] object.\n\n> **Note:** For security reasons, when a web page tries to access location information, the user is notified and asked to grant permission. Be aware that each browser has its own policies and methods for requesting this permission.",
+ "properties": {
+ "clearwatch": "\n\nThe **`clearWatch()`** method of the [Geolocation] interface is used to unregister location/error monitoring handlers previously installed using [Geolocation.watchPosition].",
+ "getcurrentposition": "\n\nThe **`getCurrentPosition()`** method of the [Geolocation] interface is used to get the current position of the device.",
+ "watchposition": "\n\nThe **`watchPosition()`** method of the [Geolocation] interface is used to register a handler function that will be called automatically each time the position of the device changes.\nYou can also, optionally, specify an error handling callback function."
+ }
+ },
+ "geolocationcoordinates": {
+ "docs": "\n\nThe **`GeolocationCoordinates`** interface represents the position and altitude of the device on Earth, as well as the accuracy with which these properties are calculated.",
+ "properties": {
+ "accuracy": "\n\nThe **`accuracy`** read-only property of the [GeolocationCoordinates] interface is a strictly positive `double` representing the accuracy, with a 95% confidence level, of the [GeolocationCoordinates.latitude] and [GeolocationCoordinates.longitude] properties expressed in meters.",
+ "altitude": "\n\nThe **`altitude`** read-only property of the [GeolocationCoordinates] interface is a `double` representing the altitude of the position in meters above the [WGS84](https://gis-lab.info/docs/nima-tr8350.2-wgs84fin.pdf) ellipsoid (which defines the nominal sea level surface). This value is `null` if the implementation cannot provide this data.",
+ "altitudeaccuracy": "\n\nThe **`altitudeAccuracy`** read-only property of the [GeolocationCoordinates] interface is a strictly positive `double` representing the accuracy, with a 95% confidence level, of the `altitude` expressed in meters. This value is `null` if the implementation doesn't support measuring altitude.",
+ "heading": "\n\nThe **`heading`** read-only property of the [GeolocationCoordinates] interface is a `double` representing the direction in which the device is traveling. This value, specified in degrees, indicates how far off from heading due north the device is. `0` degrees represents true north, and the direction is determined clockwise (which means that east is `90` degrees and west is `270` degrees). If [GeolocationCoordinates.speed] is `0`, `heading` is `NaN`. If the device is not able to provide heading information, this value is `null`.",
+ "latitude": "\n\nThe **`latitude`** read-only property of the [GeolocationCoordinates] interface is a `double` representing the latitude of the position in decimal degrees.",
+ "longitude": "\n\nThe **`longitude`** read-only property of the [GeolocationCoordinates] interface is a number which represents the longitude of a geographical position, specified in decimal degrees.\nTogether with a timestamp, given as in milliseconds, indicating a time of measurement, the `GeolocationCoordinates` object is part of the [GeolocationPosition] interface, which is the object type returned by Geolocation API functions that obtain and return a geographical position.",
+ "speed": "\n\nThe **`speed`** read-only property of the [GeolocationCoordinates] interface is a `double` representing the velocity of the device in meters per second. This value is `null` if the implementation is not able to measure it."
+ }
+ },
+ "geolocationposition": {
+ "docs": "\n\nThe **`GeolocationPosition`** interface represents the position of the concerned device at a given time. The position, represented by a [GeolocationCoordinates] object, comprehends the 2D position of the device, on a spheroid representing the Earth, but also its altitude and its speed.",
+ "properties": {
+ "coords": "\n\nThe **`coords`** read-only property of the [GeolocationPosition] interface returns a [GeolocationCoordinates] object representing a geographic position. It contains the location, that is longitude and latitude on the Earth, the altitude, and the speed of the object concerned, regrouped inside the returned value. It also contains accuracy information about these values.",
+ "timestamp": "\n\nThe **`timestamp`** read-only property of the [GeolocationPosition] interface represents the date and time that the position was acquired by the device."
+ }
+ },
+ "geolocationpositionerror": {
+ "docs": "\n\nThe **`GeolocationPositionError`** interface represents the reason of an error occurring when using the geolocating device.",
+ "properties": {
+ "code": "\n\nThe **`code`** read-only property of the [GeolocationPositionError] interface is an `unsigned short` representing the error code.\n\nThe following values are possible:\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th scope=\"col\">Value</th>\n <th scope=\"col\">Associated constant</th>\n <th scope=\"col\">Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>1</code></td>\n <td><code>PERMISSION_DENIED</code></td>\n <td>\n The acquisition of the geolocation information failed because the page\n didn't have the permission to do it.\n </td>\n </tr>\n <tr>\n <td><code>2</code></td>\n <td><code>POSITION_UNAVAILABLE</code></td>\n <td>\n The acquisition of the geolocation failed because one or several internal sources of position returned an internal error.\n </td>\n </tr>\n <tr>\n <td><code>3</code></td>\n <td><code>TIMEOUT</code></td>\n <td>Geolocation information was not obtained in the allowed time.</td>\n </tr>\n </tbody>\n</table>",
+ "message": "\n\nThe **`message`** read-only property of the [GeolocationPositionError] interface returns a human-readable string describing the details of the error."
+ }
+ },
+ "gestureevent": {
+ "docs": "\n\nThe **`GestureEvent`** is a proprietary interface specific to WebKit which gives information regarding multi-touch gestures. Events using this interface include [Element/gesturestart_event], [Element/gesturechange_event], and [Element/gestureend_event].\n\n"
+ },
+ "gpu": {
+ "docs": "\n\nThe **`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\nThe `GPU` object for the current context is accessed via the [Navigator.gpu] or [WorkerNavigator.gpu] properties.\n\n",
+ "properties": {
+ "getpreferredcanvasformat": "\n\nThe **`getPreferredCanvasFormat()`** method of the\n[GPU] interface returns the optimal canvas texture format for displaying 8-bit depth, standard dynamic range content on the current system.\n\nThis 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.",
+ "requestadapter": "\n\nThe **`requestAdapter()`** method of the\n[GPU] interface returns a `Promise` that fulfills with a [GPUAdapter] object instance. From this you can request a [GPUDevice], adapter info, features, and limits.\n\nNote 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.",
+ "wgsllanguagefeatures": "\n\nThe **`wgslLanguageFeatures`** read-only property of the\n[GPU] interface returns a [WGSLLanguageFeatures] object that reports the [WGSL language extensions](https://gpuweb.github.io/gpuweb/wgsl/#language-extension) supported by the WebGPU implementation.\n\n> **Note:** Not 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."
+ }
+ },
+ "gpuadapter": {
+ "docs": "\n\nThe **`GPUAdapter`** interface of the [WebGPU API] represents a GPU adapter. From this you can request a [GPUDevice], adapter info, features, and limits.\n\nA `GPUAdapter` object is requested using the [GPU.requestAdapter] method.\n\n",
+ "properties": {
+ "features": "\n\nThe **`features`** read-only property of the\n[GPUAdapter] interface returns a [GPUSupportedFeatures] object that describes additional functionality supported by the adapter.\n\nYou 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\nIf you are hoping to take advantage of a specific additional feature in a WebGPU app, thorough testing is advised.",
+ "isfallbackadapter": "\n\nThe **`isFallbackAdapter`** read-only property of the\n[GPUAdapter] interface returns `true` if the adapter is a [fallback adapter](/en-US/docs/Web/API/GPU/requestAdapter#fallback_adapters), and `false` if not.",
+ "limits": "\n\nThe **`limits`** read-only property of the\n[GPUAdapter] interface returns a [GPUSupportedLimits] object that describes the limits supported by the adapter.\n\nYou 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\nGiven 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.",
+ "requestadapterinfo": "\n\nThe **`requestAdapterInfo()`** method of the\n[GPUAdapter] interface returns a `Promise` that fulfills with a [GPUAdapterInfo] object containing identifying information about an adapter.\n\nThe intention behind this method is to allow developers to request 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 to be kept at a minimum, and different browser vendors are likely to share different information types and granularities.\n\n> **Note:** The specification includes an `unmaskHints` parameter for `requestAdapterInfo()`, which is intended to mitigate the security risk mentioned above. Once it is supported, developers will be able to specify the values they really need to know, and users will be given a permission prompt asking them if they are OK to share this information when the method is invoked. Browser vendors are likely to share more useful information if it is guarded by a permissions prompt, as it makes the method a less viable target for fingerprinting.",
+ "requestdevice": "\n\nThe **`requestDevice()`** method of the\n[GPUAdapter] interface returns a `Promise` that fulfills with a [GPUDevice] object, which is the primary interface for communicating with the GPU."
+ }
+ },
+ "gpuadapterinfo": {
+ "docs": "\n\nThe **`GPUAdapterInfo`** interface of the [WebGPU API] contains identifying information about a [GPUAdapter].\n\nA `GPUAdapterInfo` object instance is requested using the [GPUAdapter.requestAdapterInfo] method.\n\n",
+ "properties": {
+ "architecture": "\n\nThe **`architecture`** read-only property of the\n[GPUAdapterInfo] interface returns the name of the family or class of GPUs the adapter belongs to, or an empty string if it is not available.",
+ "description": "\n\nThe **`description`** read-only property of the\n[GPUAdapterInfo] interface returns a human-readable string describing the adapter, or an empty string if it is not available.",
+ "device": "\n\nThe **`device`** read-only property of the\n[GPUAdapterInfo] interface returns a vendor-specific identifier for the adapter, or an empty string if it is not available.",
+ "vendor": "\n\nThe **`vendor`** read-only property of the\n[GPUAdapterInfo] interface returns the name of the adapter vendor, or an empty string if it is not available."
+ }
+ },
+ "gpubindgroup": {
+ "docs": "\n\nThe **`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\nA `GPUBindGroup` object instance is created using the [GPUDevice.createBindGroup] method.\n\n",
+ "properties": {
+ "label": "\n\nThe **`label`** property of the\n[GPUBindGroup] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`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 [GPUBindGroup]s.\n\nA `GPUBindGroupLayout` object instance is created using the [GPUDevice.createBindGroupLayout] method.\n\n",
+ "properties": {
+ "label": "\n\nThe **`label`** property of the\n[GPUBindGroupLayout] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`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\nA `GPUBuffer` object instance is created using the [GPUDevice.createBuffer] method.\n\n",
+ "properties": {
+ "destroy": "\n\nThe **`destroy()`** method of the\n[GPUBuffer] interface destroys the `GPUBuffer`.",
+ "getmappedrange": "\n\nThe **`getMappedRange()`** method of the\n[GPUBuffer] interface returns an `ArrayBuffer` containing the mapped contents of the `GPUBuffer` in the specified range.\n\nThis 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\nWhen you have finished working with the `GPUBuffer` values, call [GPUBuffer.unmap] to unmap it, making it accessible to the GPU again.",
+ "label": "\n\nThe **`label`** property of the\n[GPUBuffer] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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.",
+ "mapasync": "\n\nThe **`mapAsync()`** method of the\n[GPUBuffer] 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\nOnce 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\nWhen you have finished working with the `GPUBuffer` values, call [GPUBuffer.unmap] to unmap it, making it accessible to the GPU again.",
+ "mapstate": "\n\nThe **`mapState`** read-only property of the\n[GPUBuffer] interface represents the mapped state of the `GPUBuffer`.",
+ "size": "\n\nThe **`size`** read-only property of the\n[GPUBuffer] interface represents the length of the `GPUBuffer`'s memory allocation, in bytes.\n\n`size` is set via the `size` property in the descriptor object passed into the originating [GPUDevice.createBuffer] call.",
+ "unmap": "\n\nThe **`unmap()`** method of the\n[GPUBuffer] 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\nWhen `unmap()` is called, any `ArrayBuffer`s created via [GPUBuffer.getMappedRange] are detached.",
+ "usage": "\n\nThe **`usage`** read-only property of the\n[GPUBuffer] interface contains the representing the allowed usages of the `GPUBuffer`.\n\n`usage` is set via the `usage` property in the descriptor object passed into the originating [GPUDevice.createBuffer] call."
+ }
+ },
+ "gpucanvascontext": {
+ "docs": "\n\nThe **`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\"`.\n\n",
+ "properties": {
+ "canvas": "\n\nThe **`canvas`** read-only property of the\n[GPUCanvasContext] interface returns a reference to the canvas that the context was created from.",
+ "configure": "\n\nThe **`configure()`** method of the\n[GPUCanvasContext] interface configures the context to use for rendering with a given [GPUDevice]. When called the canvas will initially be cleared to transparent black.",
+ "getcurrenttexture": "\n\nThe **`getCurrentTexture()`** method of the\n[GPUCanvasContext] interface returns the next [GPUTexture] to be composited to the document by the canvas context.",
+ "unconfigure": "\n\nThe **`unconfigure()`** method of the\n[GPUCanvasContext] interface removes any previously-set context configuration, and destroys any textures returned via [GPUCanvasContext.getCurrentTexture] while the canvas context was configured."
+ }
+ },
+ "gpucommandbuffer": {
+ "docs": "\n\nThe **`GPUCommandBuffer`** interface of the [WebGPU API] represents a pre-recorded list of GPU commands that can be submitted to a [GPUQueue] for execution.\n\nA `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:** Once a `GPUCommandBuffer` object has been submitted, it cannot be used again.\n\n",
+ "properties": {
+ "label": "\n\nThe **`label`** read-only property of the\n[GPUCommandBuffer] interface is a string providing a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`GPUCommandEncoder`** interface of the [WebGPU API] represents a command encoder, used to encode commands to be issued to the GPU.\n\nA `GPUCommandEncoder` object instance is created via the [GPUDevice.createCommandEncoder] property.\n\n",
+ "properties": {
+ "begincomputepass": "\n\nThe **`beginComputePass()`** method of the\n[GPUCommandEncoder] interface starts encoding a compute pass, returning a [GPUComputePassEncoder] that can be used to control computation.",
+ "beginrenderpass": "\n\nThe **`beginRenderPass()`** method of the\n[GPUCommandEncoder] interface starts encoding a render pass, returning a [GPURenderPassEncoder] that can be used to control rendering.",
+ "clearbuffer": "\n\nThe **`clearBuffer()`** method of the\n[GPUCommandEncoder] interface encodes a command that fills a region of a [GPUBuffer] with zeroes.",
+ "copybuffertobuffer": "\n\nThe **`copyBufferToBuffer()`** method of the\n[GPUCommandEncoder] interface encodes a command that copies data from one [GPUBuffer] to another.",
+ "copybuffertotexture": "\n\nThe **`copyBufferToTexture()`** method of the\n[GPUCommandEncoder] interface encodes a command that copies data from a [GPUBuffer] to a [GPUTexture].",
+ "copytexturetobuffer": "\n\nThe **`copyTextureToBuffer()`** method of the\n[GPUCommandEncoder] interface encodes a command that copies data from a [GPUTexture] to a [GPUBuffer].",
+ "copytexturetotexture": "\n\nThe **`copyTextureToTexture()`** method of the\n[GPUCommandEncoder] interface encodes a command that copies data from one [GPUTexture] to another.",
+ "finish": "\n\nThe **`finish()`** method of the\n[GPUCommandEncoder] interface completes recording of the command sequence encoded on this `GPUCommandEncoder`, returning a corresponding [GPUCommandBuffer].",
+ "insertdebugmarker": "\n\nThe **`insertDebugMarker()`** method of the\n[GPUCommandEncoder] interface marks a specific point in a series of encoded commands with a label.\n\nThis 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.",
+ "label": "\n\nThe **`label`** read-only property of the\n[GPUCommandEncoder] interface is a string providing a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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.",
+ "popdebuggroup": "\n\nThe **`popDebugGroup()`** method of the\n[GPUCommandEncoder] interface ends a debug group, which is begun with a [GPUCommandEncoder.pushDebugGroup] call.\n\nThis 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.",
+ "pushdebuggroup": "\n\nThe **`pushDebugGroup()`** method of the\n[GPUCommandEncoder] interface begins a debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a [GPUCommandEncoder.popDebugGroup] method is invoked.\n\nThis 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.",
+ "resolvequeryset": "\n\nThe **`resolveQuerySet()`** method of the\n[GPUCommandEncoder] interface encodes a command that resolves a [GPUQuerySet], copying the results into a specified [GPUBuffer].",
+ "writetimestamp": "\n\nThe **`writeTimestamp()`** method of the\n[GPUCommandEncoder] 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:** To use timestamp queries, the `timestamp-query` [GPUSupportedFeatures] must be enabled in the [GPUDevice]."
+ }
+ },
+ "gpucompilationinfo": {
+ "docs": "\n\nThe **`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\n`GPUCompilationInfo` is accessed via [GPUShaderModule.getCompilationInfo].\n\n",
+ "properties": {
+ "messages": "\n\nThe **`messages`** read-only property of the\n[GPUCompilationInfo] 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": {
+ "docs": "\n\nThe **`GPUCompilationMessage`** interface of the [WebGPU API] represents a single informational, warning, or error message generated by the GPU shader module compiler.\n\nAn array of `GPUCompilationMessage` objects is available in the `messages` property of the [GPUCompilationInfo] object accessed via [GPUShaderModule.getCompilationInfo].\n\n",
+ "properties": {
+ "length": "\n\nThe **`length`** read-only property of the\n[GPUCompilationMessage] interface is a number representing the length of the substring that the message corresponds to.",
+ "linenum": "\n\nThe **`lineNum`** read-only property of the\n[GPUCompilationMessage] interface is a number representing the line number in the shader code that the message corresponds to.",
+ "linepos": "\n\nThe **`linePos`** read-only property of the\n[GPUCompilationMessage] 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.",
+ "message": "\n\nThe **`message`** read-only property of the\n[GPUCompilationMessage] interface is a string representing human-readable message text.",
+ "offset": "\n\nThe **`offset`** read-only property of the\n[GPUCompilationMessage] 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.",
+ "type": "\n\nThe **`type`** read-only property of the\n[GPUCompilationMessage] interface is an enumerated value representing the type of the message. Each type represents a different severity level."
+ }
+ },
+ "gpucomputepassencoder": {
+ "docs": "\n\nThe **`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\nA 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\nA `GPUComputePassEncoder` object instance is created via the [GPUCommandEncoder.beginComputePass] property.\n\n",
+ "properties": {
+ "dispatchworkgroups": "\n\nThe **`dispatchWorkgroups()`** method of the\n[GPUComputePassEncoder] interface dispatches a specific grid of workgroups to perform the work being done by the current [GPUComputePipeline] (i.e. set via [GPUComputePassEncoder.setPipeline]).",
+ "dispatchworkgroupsindirect": "\n\nThe **`dispatchWorkgroupsIndirect()`** method of the\n[GPUComputePassEncoder] 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]).",
+ "end": "\n\nThe **`end()`** method of the\n[GPUComputePassEncoder] interface completes recording of the current compute pass command sequence.",
+ "insertdebugmarker": "\n\nThe **`insertDebugMarker()`** method of the\n[GPUComputePassEncoder] interface marks a specific point in a series of encoded compute pass commands with a label.\n\nThis 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.",
+ "label": "\n\nThe **`label`** read-only property of the\n[GPUComputePassEncoder] interface is a string providing a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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.",
+ "popdebuggroup": "\n\nThe **`popDebugGroup()`** method of the\n[GPUComputePassEncoder] interface ends a compute pass debug group, which is begun with a [GPUComputePassEncoder.pushDebugGroup] call.\n\nThis 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.",
+ "pushdebuggroup": "\n\nThe **`pushDebugGroup()`** method of the\n[GPUComputePassEncoder] interface begins a compute pass debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a [GPUComputePassEncoder.popDebugGroup] method is invoked.\n\nThis 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.",
+ "setbindgroup": "\n\nThe **`setBindGroup()`** method of the\n[GPUComputePassEncoder] interface sets the [GPUBindGroup] to use for subsequent compute commands, for a given index.",
+ "setpipeline": "\n\nThe **`setPipeline()`** method of the\n[GPUComputePassEncoder] interface sets the [GPUComputePipeline] to use for this compute pass."
+ }
+ },
+ "gpucomputepipeline": {
+ "docs": "\n\nThe **`GPUComputePipeline`** interface of the [WebGPU API] represents a pipeline that controls the compute shader stage and can be used in a [GPUComputePassEncoder].\n\nA `GPUComputePipeline` object instance can be created using the [GPUDevice.createComputePipeline] or [GPUDevice.createComputePipelineAsync] methods.\n\n",
+ "properties": {
+ "getbindgrouplayout": "\n\nThe **`getBindGroupLayout()`** method of the\n[GPUComputePipeline] 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\nIf the [GPUComputePipeline] was created with `layout: \"auto\"`, this method is the only way to retrieve the [GPUBindGroupLayout]s generated by the pipeline.",
+ "label": "\n\nThe **`label`** property of the\n[GPUComputePipeline] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`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\nA `GPUDevice` object is requested using the [GPUAdapter.requestDevice] method.\n\n",
+ "properties": {
+ "createbindgroup": "\n\nThe **`createBindGroup()`** method of the\n[GPUDevice] 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.",
+ "createbindgrouplayout": "\n\nThe **`createBindGroupLayout()`** method of the\n[GPUDevice] 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 [GPUBindGroup]s.",
+ "createbuffer": "\n\nThe **`createBuffer()`** method of the\n[GPUDevice] interface creates a [GPUBuffer] in which to store raw data to use in GPU operations.",
+ "createcommandencoder": "\n\nThe **`createCommandEncoder()`** method of the\n[GPUDevice] interface creates a [GPUCommandEncoder], used to encode commands to be issued to the GPU.",
+ "createcomputepipeline": "\n\nThe **`createComputePipeline()`** method of the\n[GPUDevice] interface creates a [GPUComputePipeline] that can control the compute shader stage and be used in a [GPUComputePassEncoder].",
+ "createcomputepipelineasync": "\n\nThe **`createComputePipelineAsync()`** method of the\n[GPUDevice] 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:** It is generally preferable to use this method over [GPUDevice.createComputePipeline] whenever possible, as it prevents blocking of GPU operation execution on pipeline compilation.",
+ "createpipelinelayout": "\n\nThe **`createPipelineLayout()`** method of the\n[GPUDevice] interface creates a [GPUPipelineLayout] that defines the [GPUBindGroupLayout]s used by a pipeline. [GPUBindGroup]s used with the pipeline during command encoding must have compatible [GPUBindGroupLayout]s.",
+ "createqueryset": "\n\nThe **`createQuerySet()`** method of the\n[GPUDevice] interface creates a [GPUQuerySet] that can be used to record the results of queries on passes, such as occlusion or timestamp queries.",
+ "createrenderbundleencoder": "\n\nThe **`createRenderBundleEncoder()`** method of the\n[GPUDevice] interface creates a [GPURenderBundleEncoder] that can be used to pre-record bundles of commands. These can be reused in [GPURenderPassEncoder]s via the [GPURenderPassEncoder.executeBundles] method, as many times as required.",
+ "createrenderpipeline": "\n\nThe **`createRenderPipeline()`** method of the\n[GPUDevice] interface creates a [GPURenderPipeline] that can control the vertex and fragment shader stages and be used in a [GPURenderPassEncoder] or [GPURenderBundleEncoder].",
+ "createrenderpipelineasync": "\n\nThe **`createRenderPipelineAsync()`** method of the\n[GPUDevice] 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:** It is generally preferable to use this method over [GPUDevice.createRenderPipeline] whenever possible, as it prevents blocking of GPU operation execution on pipeline compilation.",
+ "createsampler": "\n\nThe **`createSampler()`** method of the\n[GPUDevice] interface creates a [GPUSampler], which controls how shaders transform and filter texture resource data.",
+ "createshadermodule": "\n\nThe **`createShaderModule()`** method of the\n[GPUDevice] interface creates a [GPUShaderModule] from a string of [WGSL](https://gpuweb.github.io/gpuweb/wgsl/) source code.",
+ "createtexture": "\n\nThe **`createTexture()`** method of the\n[GPUDevice] interface creates a [GPUTexture] in which to store 1D, 2D, or 3D arrays of data, such as images, to use in GPU rendering operations.",
+ "destroy": "\n\nThe **`destroy()`** method of the\n[GPUDevice] interface destroys the device, preventing further operations on it.\n\nNote 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.",
+ "features": "\n\nThe **`features`** read-only property of the\n[GPUDevice] 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:** Not 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.",
+ "importexternaltexture": "\n\nThe **`importExternalTexture()`** method of the\n[GPUDevice] 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.",
+ "label": "\n\nThe **`label`** read-only property of the\n[GPUDevice] interface is a string providing a label that can be used to identify the object, for example in [GPUError] messages or console warnings.",
+ "limits": "\n\nThe **`limits`** read-only property of the\n[GPUDevice] 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:** Not all limits will be reported as expected, even if they are supported by the underlying hardware. See [GPUAdapter.limits] for more details.",
+ "lost": "\n\nThe **`lost`** read-only property of the\n[GPUDevice] interface contains a `Promise` that remains pending throughout the device's lifetime and resolves with a [GPUDeviceLostInfo] object when the device is lost.\n\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\nMany 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:** Also 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.",
+ "poperrorscope": "\n\nThe **`popErrorScope()`** method of the\n[GPUDevice] 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.",
+ "pusherrorscope": "\n\nThe **`pushErrorScope()`** method of the\n[GPUDevice] interface pushes a new GPU error scope onto the device's error scope stack, allowing you to capture errors of a particular type.\n\nOnce 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.",
+ "queue": "\n\nThe **`queue`** read-only property of the\n[GPUDevice] interface returns the primary [GPUQueue] for the device.",
+ "uncapturederror_event": "\n\nThe **`uncapturederror`** event of the [GPUDevice] interface is fired when an error is thrown that has not been observed by a GPU error scope, to provide a way to report unexpected errors.\n\nKnown error cases should be handled using [GPUDevice.pushErrorScope] and [GPUDevice.popErrorScope]."
+ }
+ },
+ "gpudevicelostinfo": {
+ "docs": "\n\nThe **`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\nSee the [GPUDevice.lost] page for more information about \"lost\" state.\n\n",
+ "properties": {
+ "message": "\n\nThe **`message`** read-only property of the\n[GPUDeviceLostInfo] interface provides a human-readable message that explains why the device was lost.",
+ "reason": "\n\nThe **`reason`** read-only property of the\n[GPUDeviceLostInfo] interface defines the reason the device was lost in a machine-readable way."
+ }
+ },
+ "gpuerror": {
+ "docs": "\n\nThe **`GPUError`** interface of the [WebGPU API] is the base interface for errors surfaced by [GPUDevice.popErrorScope] and the [GPUDevice.uncapturederror_event] event.\n\n",
+ "properties": {
+ "message": "\n\nThe **`message`** read-only property of the\n[GPUError] interface provides a human-readable message that explains why the error occurred."
+ }
+ },
+ "gpuexternaltexture": {
+ "docs": "\n\nThe **`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\nA `GPUExternalTexture` object instance is created using [GPUDevice.importExternalTexture].\n\n",
+ "properties": {
+ "label": "\n\nThe **`label`** property of the\n[GPUExternalTexture] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`GPUInternalError`** interface of the [WebGPU API] describes an application error indicating that an operation did not pass the WebGPU API's validation constraints.\n\nIt represents one of the types of errors surfaced by [GPUDevice.popErrorScope] and the [GPUDevice.uncapturederror_event] event.\n\nInternal 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](/en-US/docs/Web/API/GPUSupportedLimits). 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.\n\n"
+ },
+ "gpuoutofmemoryerror": {
+ "docs": "\n\nThe **`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\nIt represents one of the types of errors surfaced by [GPUDevice.popErrorScope] and the [GPUDevice.uncapturederror_event] event.\n\nOut-of-memory errors should be relatively rare in a well-behaved app but are less predictable than [GPUValidationError]s. 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.\n\n"
+ },
+ "gpupipelineerror": {
+ "docs": "\n\nThe **`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.\n\n",
+ "properties": {
+ "reason": "\n\nThe **`reason`** read-only property of the\n[GPUPipelineError] interface defines the reason the pipeline creation failed in a machine-readable way."
+ }
+ },
+ "gpupipelinelayout": {
+ "docs": "\n\nThe **`GPUPipelineLayout`** interface of the [WebGPU API] defines the [GPUBindGroupLayout]s used by a pipeline. [GPUBindGroup]s used with the pipeline during command encoding must have compatible [GPUBindGroupLayout]s.\n\nA `GPUPipelineLayout` object instance is created using the [GPUDevice.createPipelineLayout] method.\n\n",
+ "properties": {
+ "label": "\n\nThe **`label`** property of the\n[GPUPipelineLayout] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`GPUQuerySet`** interface of the [WebGPU API] is used to record the results of queries on passes, such as occlusion or timestamp queries.\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- Timestamp queries allow applications to write timestamps to a `GPUQuerySet`. To run a timestamp query, appropriate `GPUQuerySet`s 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:** To use timestamp queries, the `timestamp-query` [GPUSupportedFeatures] must be enabled in the [GPUDevice].\n\nA `GPUQuerySet` object instance is created using the [GPUDevice.createQuerySet] method.\n\n",
+ "properties": {
+ "count": "\n\nThe **`count`** read-only property of the\n[GPUQuerySet] interface is a number specifying the number of queries managed by the `GPUQuerySet`.",
+ "destroy": "\n\nThe **`destroy()`** method of the\n[GPUQuerySet] interface destroys the `GPUQuerySet`.",
+ "label": "\n\nThe **`label`** property of the\n[GPUQuerySet] interface is a string providing a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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.",
+ "type": "\n\nThe **`type`** read-only property of the\n[GPUQuerySet] interface is an enumerated value specifying the type of queries managed by the `GPUQuerySet`."
+ }
+ },
+ "gpuqueue": {
+ "docs": "\n\nThe **`GPUQueue`** interface of the [WebGPU API] controls execution of encoded commands on the GPU.\n\nA device's primary queue is accessed via the [GPUDevice.queue] property.\n\n",
+ "properties": {
+ "copyexternalimagetotexture": "\n\nThe **`copyExternalImageToTexture()`** method of the\n[GPUQueue] interface copies a snapshot taken from a source image, video, or canvas into a given [GPUTexture].\n\nUsing this function allows the user agent to determine the most efficient way to copy the data over for each source type.",
+ "label": "\n\nThe **`label`** read-only property of the\n[GPUQueue] interface is a string providing a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nYou can get and set it directly on the `GPUQueue` object.",
+ "onsubmittedworkdone": "\n\nThe **`onSubmittedWorkDone()`** method of the\n[GPUQueue] 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\nThis includes the completion of any [GPUBuffer.mapAsync] calls made on `GPUBuffer`s used in commands submitted to the queue, before `onSubmittedWorkDone()` is called.\n\nNote: 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](https://www.w3.org/TR/webgpu/#buffer-mapping))\n\nThe two use cases for `onSubmittedWorkDone`\n\n1. Waiting for multiple buffer mapping (slow)\n\n ```js\n // good\n await Promise.all([\n buffer1.mapAsync(),\n buffer2.mapAsync(),\n buffer3.mapAsync(),\n ]);\n data1 = buffer1.getMappedRange();\n data2 = buffer2.getMappedRange();\n data3 = buffer3.getMappedRange();\n ```\n\n ```js\n // works but slow\n buffer1.mapAsync();\n buffer2.mapAsync();\n buffer3.mapAsync();\n await device.queue.onSubmittedWorkDone();\n data1 = buffer1.getMappedRange();\n data2 = buffer2.getMappedRange();\n data3 = 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.\n For example, if all the buffers are finished being used, but more work (unrelated to the buffers) is already submitted, then\n you'll end up waiting longer using the second method than the first.\n\n2. Throttling work\n\n If you are doing heavy compute work and you submit too much work at once, the browser may kill your work.\n You can throttle the work by only submitting more work when the work you've already submitted is done.",
+ "submit": "\n\nThe **`submit()`** method of the\n[GPUQueue] interface schedules the execution of command buffers represented by one or more [GPUCommandBuffer] objects by the GPU.",
+ "writebuffer": "\n\nThe **`writeBuffer()`** method of the\n[GPUQueue] interface writes a provided data source into a given [GPUBuffer].\n\nThis 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.",
+ "writetexture": "\n\nThe **`writeTexture()`** method of the\n[GPUQueue] interface writes a provided data source into a given [GPUTexture].\n\nThis 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."
+ }
+ },
+ "gpurenderbundle": {
+ "docs": "\n\nThe **`GPURenderBundle`** interface of the [WebGPU API] represents a container for pre-recorded bundles of commands.\n\nThe 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\nThese 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\nA 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\n",
+ "properties": {
+ "label": "\n\nThe **`label`** read-only property of the\n[GPURenderBundle] interface is a string providing a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`GPURenderBundleEncoder`** interface of the [WebGPU API] is used to pre-record bundles of commands.\n\nThe 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\nIn effect, this is like a partial render pass — `GPURenderBundleEncoder`s have all the same functionality available as [GPURenderPassEncoder]s, 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:** Currently 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\nReusing 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\nA `GPURenderBundleEncoder` object instance is created via the [GPUDevice.createRenderBundleEncoder] property.\n\n> **Note:** The 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\n",
+ "properties": {
+ "draw": "\n\nThe **`draw()`** method of the\n[GPURenderBundleEncoder] interface draws primitives based on the vertex buffers provided by [GPURenderBundleEncoder.setVertexBuffer].\n\n> **Note:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.draw].",
+ "drawindexed": "\n\nThe **`drawIndexed()`** method of the\n[GPURenderBundleEncoder] interface draws indexed primitives based on the vertex and index buffers provided by [GPURenderBundleEncoder.setVertexBuffer] and [GPURenderBundleEncoder.setIndexBuffer].\n\n> **Note:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.drawIndexed].",
+ "drawindexedindirect": "\n\nThe **`drawIndexedIndirect()`** method of the\n[GPURenderBundleEncoder] interface draws indexed primitives using parameters read from a [GPUBuffer].\n\n> **Note:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.drawIndexedIndirect].",
+ "drawindirect": "\n\nThe **`drawIndirect()`** method of the\n[GPURenderBundleEncoder] interface draws primitives using parameters read from a [GPUBuffer].\n\n> **Note:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.drawIndirect].",
+ "finish": "\n\nThe **`finish()`** method of the\n[GPURenderBundleEncoder] 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.",
+ "insertdebugmarker": "\n\nThe **`insertDebugMarker()`** method of the\n[GPURenderBundleEncoder] interface marks a specific point in a series of encoded render bundle pass commands with a label.\n\nThis 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:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.InsertDebugMarker].",
+ "label": "\n\nThe **`label`** read-only property of the\n[GPURenderBundleEncoder] interface is a string providing a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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:** This property is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.label].",
+ "popdebuggroup": "\n\nThe **`popDebugGroup()`** method of the\n[GPURenderBundleEncoder] interface ends a render bundle debug group, which is begun with a [GPURenderBundleEncoder.pushDebugGroup] call.\n\nThis 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:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.popDebugGroup].",
+ "pushdebuggroup": "\n\nThe **`pushDebugGroup()`** method of the\n[GPURenderBundleEncoder] interface begins a render bundle debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a [GPURenderBundleEncoder.popDebugGroup] method is invoked.\n\nThis 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:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.pushDebugGroup].",
+ "setbindgroup": "\n\nThe **`setBindGroup()`** method of the\n[GPURenderBundleEncoder] interface sets the [GPUBindGroup] to use for subsequent render bundle commands, for a given index.\n\n> **Note:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.setBindGroup].",
+ "setindexbuffer": "\n\nThe **`setIndexBuffer()`** method of the\n[GPURenderBundleEncoder] interface sets the current [GPUBuffer] that will provide index data for subsequent drawing commands.\n\n> **Note:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.setIndexBuffer].",
+ "setpipeline": "\n\nThe **`setPipeline()`** method of the\n[GPURenderBundleEncoder] interface sets the [GPURenderPipeline] to use for subsequent render bundle commands.\n\n> **Note:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.setPipeline].",
+ "setvertexbuffer": "\n\nThe **`setVertexBuffer()`** method of the\n[GPURenderBundleEncoder] interface sets or unsets the current [GPUBuffer] for the given slot that will provide vertex data for subsequent drawing commands.\n\n> **Note:** This method is functionally identical to its equivalent on [GPURenderPassEncoder] — [GPURenderPassEncoder.setVertexBuffer]."
+ }
+ },
+ "gpurenderpassencoder": {
+ "docs": "\n\nThe **`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\nA 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- 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- 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\nA `GPURenderPassEncoder` object instance is created via the [GPUCommandEncoder.beginRenderPass] property.\n\n",
+ "properties": {
+ "beginocclusionquery": "\n\nThe **`beginOcclusionQuery()`** method of the\n[GPURenderPassEncoder] 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).",
+ "draw": "\n\nThe **`draw()`** method of the\n[GPURenderPassEncoder] interface draws primitives based on the vertex buffers provided by [GPURenderPassEncoder.setVertexBuffer].",
+ "drawindexed": "\n\nThe **`drawIndexed()`** method of the\n[GPURenderPassEncoder] interface draws indexed primitives based on the vertex and index buffers provided by [GPURenderPassEncoder.setVertexBuffer] and [GPURenderPassEncoder.setIndexBuffer].",
+ "drawindexedindirect": "\n\nThe **`drawIndexedIndirect()`** method of the\n[GPURenderPassEncoder] interface draws indexed primitives using parameters read from a [GPUBuffer].",
+ "drawindirect": "\n\nThe **`drawIndirect()`** method of the\n[GPURenderPassEncoder] interface draws primitives using parameters read from a [GPUBuffer].",
+ "end": "\n\nThe **`end()`** method of the\n[GPURenderPassEncoder] interface completes recording of the current render pass command sequence.",
+ "endocclusionquery": "\n\nThe **`endOcclusionQuery()`** method of the\n[GPURenderPassEncoder] interface ends an active occlusion query previously started with [GPURenderPassEncoder.beginOcclusionQuery].",
+ "executebundles": "\n\nThe **`executeBundles()`** method of the\n[GPURenderPassEncoder] interface executes commands previously recorded into the referenced [GPURenderBundle]s, as part of this render pass.\n\n> **Note:** After calling `executeBundles()` the currently set vertex buffers, index buffers, bind groups, and pipeline are all cleared, even if no bundles are actually executed.",
+ "insertdebugmarker": "\n\nThe **`insertDebugMarker()`** method of the\n[GPURenderPassEncoder] interface marks a specific point in a series of encoded render pass commands with a label.\n\nThis 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.",
+ "label": "\n\nThe **`label`** read-only property of the\n[GPURenderPassEncoder] interface is a string providing a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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.",
+ "popdebuggroup": "\n\nThe **`popDebugGroup()`** method of the\n[GPURenderPassEncoder] interface ends a render pass debug group, which is begun with a [GPURenderPassEncoder.pushDebugGroup] call.\n\nThis 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.",
+ "pushdebuggroup": "\n\nThe **`pushDebugGroup()`** method of the\n[GPURenderPassEncoder] interface begins a render pass debug group, which is marked with a specified label, and will contain all subsequent encoded commands up until a [GPURenderPassEncoder.popDebugGroup] method is invoked.\n\nThis 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.",
+ "setbindgroup": "\n\nThe **`setBindGroup()`** method of the\n[GPURenderPassEncoder] interface sets the [GPUBindGroup] to use for subsequent render commands, for a given index.",
+ "setblendconstant": "\n\nThe **`setBlendConstant()`** method of the\n[GPURenderPassEncoder] 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).",
+ "setindexbuffer": "\n\nThe **`setIndexBuffer()`** method of the\n[GPURenderPassEncoder] interface sets the current [GPUBuffer] that will provide index data for subsequent drawing commands.",
+ "setpipeline": "\n\nThe **`setPipeline()`** method of the\n[GPURenderPassEncoder] interface sets the [GPURenderPipeline] to use for subsequent render pass commands.",
+ "setscissorrect": "\n\nThe **`setScissorRect()`** method of the\n[GPURenderPassEncoder] 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.",
+ "setstencilreference": "\n\nThe **`setStencilReference()`** method of the\n[GPURenderPassEncoder] 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).",
+ "setvertexbuffer": "\n\nThe **`setVertexBuffer()`** method of the\n[GPURenderPassEncoder] interface sets or unsets the current [GPUBuffer] for the given slot that will provide vertex data for subsequent drawing commands.",
+ "setviewport": "\n\nThe **`setViewport()`** method of the\n[GPURenderPassEncoder] interface sets the viewport used during the rasterization stage to linearly map from normalized device coordinates to viewport coordinates."
+ }
+ },
+ "gpurenderpipeline": {
+ "docs": "\n\nThe **`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\nA `GPURenderPipeline` object instance can be created using the [GPUDevice.createRenderPipeline] or [GPUDevice.createRenderPipelineAsync] methods.\n\n",
+ "properties": {
+ "getbindgrouplayout": "\n\nThe **`getBindGroupLayout()`** method of the\n[GPURenderPipeline] 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\nIf the [GPURenderPipeline] was created with `layout: \"auto\"`, this method is the only way to retrieve the [GPUBindGroupLayout]s generated by the pipeline.",
+ "label": "\n\nThe **`label`** property of the\n[GPURenderPipeline] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`GPUSampler`** interface of the [WebGPU API] represents an object that can control how shaders transform and filter texture resource data.\n\nA `GPUSampler` object instance is created using the [GPUDevice.createSampler] method.\n\n",
+ "properties": {
+ "label": "\n\nThe **`label`** property of the\n[GPUSampler] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`GPUShaderModule`** interface of the [WebGPU API] represents an internal shader module object, a container for [WGSL](https://gpuweb.github.io/gpuweb/wgsl/) shader code that can be submitted to the GPU for execution by a pipeline.\n\nA `GPUShaderModule` object instance is created using [GPUDevice.createShaderModule].\n\n",
+ "properties": {
+ "getcompilationinfo": "\n\nThe **`getCompilationInfo()`** method of the\n[GPUShaderModule] interface returns a `Promise` that fulfills with a [GPUCompilationInfo] object containing messages generated during the `GPUShaderModule`'s compilation.",
+ "label": "\n\nThe **`label`** property of the\n[GPUShaderModule] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`GPUSupportedFeatures`** interface of the [WebGPU API] is a [`Set`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#set-like_browser_apis) that describes additional functionality supported by a [GPUAdapter].\n\nThe `GPUSupportedFeatures` object for the current adapter is accessed via the [GPUAdapter.features] property.\n\nYou 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\nIf you are hoping to take advantage of a specific additional feature in a WebGPU app, thorough testing is advised.\n\n"
+ },
+ "gpusupportedlimits": {
+ "docs": "\n\nThe **`GPUSupportedLimits`** interface of the [WebGPU API] describes the limits supported by a [GPUAdapter].\n\nThe `GPUSupportedLimits` object for the current adapter is accessed via the [GPUAdapter.limits] property.\n\nYou 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\nGiven 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.\n\n"
+ },
+ "gputexture": {
+ "docs": "\n\nThe **`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\nA `GPUTexture` object instance is created using the [GPUDevice.createTexture] method.\n\n",
+ "properties": {
+ "createview": "\n\nThe **`createView()`** method of the\n[GPUTexture] interface creates a [GPUTextureView] representing a specific view of the `GPUTexture`.",
+ "depthorarraylayers": "\n\nThe **`depthOrArrayLayers`** read-only property of the\n[GPUTexture] interface represents the depth or layer count of the `GPUTexture`.\n\nThis is set based on the `size` property in the descriptor object passed into the originating [GPUDevice.createTexture] call.",
+ "destroy": "\n\nThe **`destroy()`** method of the\n[GPUTexture] interface destroys the `GPUTexture`.",
+ "dimension": "\n\nThe **`dimension`** read-only property of the\n[GPUTexture] interface represents the dimension of the set of texels for each `GPUTexture` subresource.\n\nThis is set via the `dimension` property in the descriptor object passed into the originating [GPUDevice.createTexture] call, which defaults to `\"2d\"` if omitted.",
+ "format": "\n\nThe **`format`** read-only property of the\n[GPUTexture] interface represents the format of the `GPUTexture`.\n\nThis is set via the `format` property in the descriptor object passed into the originating [GPUDevice.createTexture] call.",
+ "height": "\n\nThe **`height`** read-only property of the\n[GPUTexture] interface represents the height of the `GPUTexture`.\n\nThis is set based on the value of the `size` property in the descriptor object passed into the originating [GPUDevice.createTexture] call.",
+ "label": "\n\nThe **`label`** property of the\n[GPUTexture] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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.",
+ "miplevelcount": "\n\nThe **`mipLevelCount`** read-only property of the\n[GPUTexture] interface represents the number of mip levels of the `GPUTexture`.\n\nThis is set via the `mipLevelCount` property in the descriptor object passed into the originating [GPUDevice.createTexture] call. If omitted, this defaults to 1.",
+ "samplecount": "\n\nThe **`sampleCount`** read-only property of the\n[GPUTexture] interface represents the sample count of the `GPUTexture`.\n\nThis is set via the `sampleCount` property in the descriptor object passed into the originating [GPUDevice.createTexture] call. If omitted, this defaults to 1.",
+ "usage": "\n\nThe **`usage`** read-only property of the\n[GPUTexture] interface is the representing the allowed usages of the `GPUTexture`.\n\nThis is set via the `usage` property in the descriptor object passed into the originating [GPUDevice.createTexture] call.",
+ "width": "\n\nThe **`width`** read-only property of the\n[GPUTexture] interface represents the width of the `GPUTexture`.\n\nThis is set based on the value of the `size` property in the descriptor object passed into the originating [GPUDevice.createTexture] call."
+ }
+ },
+ "gputextureview": {
+ "docs": "\n\nThe **`GPUTextureView`** interface of the [WebGPU API] represents a view into a subset of the texture resources defined by a particular [GPUTexture].\n\nA `GPUTextureView` object instance is created using the [GPUTexture.createView] method.\n\n",
+ "properties": {
+ "label": "\n\nThe **`label`** property of the\n[GPUTextureView] interface provides a label that can be used to identify the object, for example in [GPUError] messages or console warnings.\n\nThis 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": {
+ "docs": "\n\nThe **`GPUUncapturedErrorEvent`** interface of the [WebGPU API] is the event object type for the [GPUDevice] [GPUDevice.uncapturederror_event] event, used for telemetry and to report unexpected errors.\n\nKnown error cases should be handled using [GPUDevice.pushErrorScope] and [GPUDevice.popErrorScope].\n\n",
+ "properties": {
+ "error": "\n\nThe **`error`** read-only property of the\n[GPUUncapturedErrorEvent] interface is a [GPUError] object instance providing access to the details of the error."
+ }
+ },
+ "gpuvalidationerror": {
+ "docs": "\n\nThe **`GPUValidationError`** interface of the [WebGPU API] describes an application error indicating that an operation did not pass the WebGPU API's validation constraints.\n\nIt represents one of the types of errors surfaced by [GPUDevice.popErrorScope] and the [GPUDevice.uncapturederror_event] event.\n\nValidation 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:** We 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](/en-US/docs/Web/API/GPUDevice/createBindGroup#validation).\n\n"
+ },
+ "gravitysensor": {
+ "docs": "\n\nThe **`GravitySensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides on each reading the gravity applied to the device along all three axes.\n\nTo use this sensor, the user must grant permission to the `'accelerometer'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\n"
+ },
+ "gyroscope": {
+ "docs": "\n\nThe **`Gyroscope`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides on each reading the angular velocity of the device along all three axes.\n\nTo use this sensor, the user must grant permission to the `'gyroscope'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\n",
+ "properties": {
+ "x": "\n\nThe **`x`** read-only property of the\n[Gyroscope] interface returns a number specifying the\nangular velocity of the device along its x-axis.",
+ "y": "\n\nThe **`y`** read-only property of the [Gyroscope] interface returns a number specifying the angular velocity of the device along its y-axis.",
+ "z": "\n\nThe **`z`** read-only property of the\n[Gyroscope] interface returns a number specifying the\nangular velocity of the device along its z-axis."
+ }
+ },
+ "hashchangeevent": {
+ "docs": "\n\nThe **`HashChangeEvent`** interface represents events that fire when the fragment identifier of the URL has changed.\n\nThe fragment identifier is the part of the URL that follows (and includes) the `#` symbol.\n\n",
+ "properties": {
+ "newurl": "\n\nThe **`newURL`** read-only property of the\n[HashChangeEvent] interface returns the new URL to which the window is\nnavigating.",
+ "oldurl": "\n\nThe **`oldURL`** read-only property of the\n[HashChangeEvent] interface returns the previous URL from which the window\nwas navigated."
+ }
+ },
+ "headers": {
+ "docs": "\n\nThe **`Headers`** interface of the [Fetch API](/en-US/docs/Web/API/Fetch_API) allows you to perform various actions on [HTTP request and response headers](/en-US/docs/Web/HTTP/Headers). These actions include retrieving, setting, adding to, and removing headers from the list of the request's headers.\n\nA `Headers` object has an associated header list, which is initially empty and consists of zero or more name and value pairs. You can add to this using methods like [Headers.append] (see [Examples](#examples).) In all methods of this interface, header names are matched by case-insensitive byte sequence.\n\nFor security reasons, some headers can only be controlled by the user agent. These headers include the and .\n\nA Headers object also has an associated guard, which takes a value of `immutable`, `request`, `request-no-cors`, `response`, or `none`. This affects whether the [Headers.set], [Headers.delete], and [Headers.append] methods will mutate the header. For more information see .\n\nYou can retrieve a `Headers` object via the [Request.headers] and [Response.headers] properties, and create a new `Headers` object using the [Headers.Headers] constructor.\n\nAn object implementing `Headers` can directly be used in a `for...of` structure, instead of [Headers.entries]: `for (const p of myHeaders)` is equivalent to `for (const p of myHeaders.entries())`.\n\n> **Note:** you can find out more about the available headers by reading our [HTTP headers](/en-US/docs/Web/HTTP/Headers) reference.",
+ "properties": {
+ "append": "\n\nThe **`append()`** method of the [Headers]\ninterface appends a new value onto an existing header inside a `Headers`\nobject, or adds the header if it does not already exist.\n\nThe difference between [Headers.set] and `append()` is\nthat if the specified header already exists and accepts multiple values,\n`set()` will overwrite the existing value with the new one, whereas\n`append()` will append the new value onto the end of the set of values.\n\nFor security reasons, some headers can only be controlled by the user agent. These\nheaders include the \nand .",
+ "delete": "\n\nThe **`delete()`** method of the [Headers]\ninterface deletes a header from the current `Headers` object.\n\nThis method throws a `TypeError` for the following reasons:\n\n- The value of the name parameter is not the name of an HTTP header.\n- The value of is `immutable`.\n\nFor security reasons, some headers can only be controlled by the user agent. These\nheaders include the \nand .",
+ "entries": "\n\nThe **`Headers.entries()`** method returns an\n`iterator` allowing to go through all key/value pairs\ncontained in this object. Both the key and value of each pair are\n`String` objects.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "foreach": "\n\nThe **`Headers.forEach()`** method executes a callback function once per each key/value pair in the [`Headers`](/en-US/docs/Web/API/Headers) object.",
+ "get": "\n\nThe **`get()`** method of the [Headers] interface\nreturns a byte string of all the values of a header within a `Headers` object\nwith a given name. If the requested header doesn't exist in the `Headers`\nobject, it returns `null`.\n\nFor security reasons, some headers can only be controlled by the user agent. These\nheaders include the \nand .",
+ "getsetcookie": "\n\nThe **`getSetCookie()`** method of the [Headers] interface returns an array containing the values of all headers associated with a response. This allows [Headers] objects to handle having multiple `Set-Cookie` headers, which wasn't possible prior to its implementation.\n\nThis method is intended for use on server environments (for example Node.js). Browsers block frontend JavaScript code from accessing the header, as required by the Fetch spec, which defines `Set-Cookie` as a [forbidden response-header name](https://fetch.spec.whatwg.org/#forbidden-response-header-name) that [must be filtered out](https://fetch.spec.whatwg.org/#ref-for-forbidden-response-header-name%E2%91%A0) from any response exposed to frontend code.",
+ "has": "\n\nThe **`has()`** method of the [Headers] interface\nreturns a boolean stating whether a `Headers` object contains a certain\nheader.\n\nFor security reasons, some headers can only be controlled by the user agent. These\nheaders include the \nand .",
+ "keys": "\n\nThe **`Headers.keys()`** method returns an\n`iterator` allowing to go through all keys contained\nin this object. The keys are `String` objects.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "set": "\n\nThe **`set()`** method of the [Headers] interface\nsets a new value for an existing header inside a `Headers` object, or adds\nthe header if it does not already exist.\n\nThe difference between `set()` and [Headers.append] is that if\nthe specified header already exists and accepts multiple values, `set()`\noverwrites the existing value with the new one, whereas [Headers.append]\nappends the new value to the end of the set of values.\n\nFor security reasons, some headers can only be controlled by the user agent. These\nheaders include the \nand .",
+ "values": "\n\nThe **`Headers.values()`** method returns an\n`iterator` allowing to go through all values contained\nin this object. The values are `String` objects.\n\n> **Note:** This method is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API)."
+ }
+ },
+ "hid": {
+ "docs": "\n\nThe **`HID`** interface provides methods for connecting to _HID devices_, listing attached HID devices and event handlers for connected HID devices.\n\n",
+ "properties": {
+ "connect_event": "\n\nThe **`connect`** event of the [HID] interface fires when the user agent connects to a HID device.",
+ "disconnect_event": "\n\nThe **`disconnect`** event of the [HID] interface fires when the user agent disconnects a HID device.",
+ "getdevices": "\n\nThe **`getDevices()`** method of the [HID] interface gets a list of the connected HID devices that the user has previously been granted access to in response to a [HID.requestDevice] call.",
+ "requestdevice": "\n\nThe **`requestDevice()`** method of the [HID] interface requests access to a HID device.\n\nThe user agent will present a permission dialog including a list of connected devices, and ask the user to select and grant permission to one of these devices."
+ }
+ },
+ "hidconnectionevent": {
+ "docs": "\n\nThe **`HIDConnectionEvent`** interface of the [WebHID API] represents HID connection events, and is the event type passed to [HID/connect_event] and [HID/disconnect_event] event handlers when an input report is received.\n\n",
+ "properties": {
+ "device": "\n\nThe **`device`** read-only property of the [HIDConnectionEvent] interface returns the [HIDDevice] associated with this connection event."
+ }
+ },
+ "hiddevice": {
+ "docs": "\n\nThe **`HIDDevice`** interface of the [WebHID API] represents a HID Device. It provides properties for accessing information about the device, methods for opening and closing the connection, and the sending and receiving of reports.\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [HIDDevice] interface closes the connection to the HID device.",
+ "collections": "\n\nThe **`collections`** read-only property of the [HIDDevice] interface returns an array of report formats",
+ "forget": "\n\nThe **`forget()`** method of the [HIDDevice] interface closes the connection to the HID device and forgets the device.",
+ "inputreport_event": "\n\nThe **`inputreport`** event of the [HIDDevice] interface fires when a new report is received from the HID device.",
+ "open": "\n\nThe **`open()`** method of the [HIDDevice] interface requests that the operating system opens the HID device.\n\n> **Note:** HID devices are not opened automatically. Therefore, a [HIDDevice] returned by [HID.requestDevice] must be opened with this method before it is available to transfer data.",
+ "opened": "\n\nThe **`opened`** read-only property of the [HIDDevice] interface returns true if the connection to the [HIDDevice] is open and ready to transfer data.",
+ "productid": "\n\nThe **`productId`** read-only property of the [HIDDevice] interface returns the product ID of the connected HID device.",
+ "productname": "\n\nThe **`productName`** read-only property of the [HIDDevice] interface returns the product name of the connected HID device.",
+ "receivefeaturereport": "\n\nThe **`receiveFeatureReport()`** method of the [HIDDevice] interface receives a feature report from the HID device. Feature reports are a way for HID devices and applications to exchange non-standardized HID data.\n\nThe `reportId` for each of the report formats that this device supports can be retrieved from [HIDDevice.collections].",
+ "sendfeaturereport": "\n\nThe **`sendFeatureReport()`** method of the [HIDDevice] interface sends a feature report to the HID device. Feature reports are a way for HID devices and applications to exchange non-standardized HID data.\n\nThe `reportId` for each of the report formats that this device supports can be retrieved from [HIDDevice.collections].",
+ "sendreport": "\n\nThe **`sendReport()`** method of the [HIDDevice] interface sends an output report to the HID device.\n\nThe `reportId` for each of the report formats that this device supports can be retrieved from [HIDDevice.collections].",
+ "vendorid": "\n\nThe **`vendorId`** read-only property of the [HIDDevice] interface returns the vendor ID of the connected HID device. This identifies the vendor of the device."
+ }
+ },
+ "hidinputreportevent": {
+ "docs": "\n\nThe **`HIDInputReportEvent`** interface of the [WebHID API] is passed to [HIDDevice.inputreport_event] when an input report is received from any associated HID device.\n\n",
+ "properties": {
+ "data": "\n\nThe **`data`** property of the [HIDInputReportEvent] interface returns a `DataView` containing the data from the input report, excluding the `reportId` if the HID interface uses report IDs.",
+ "device": "\n\nThe **`device`** property of the [HIDInputReportEvent] interface returns the [HIDDevice] instance that represents the HID interface that sent the input report.",
+ "reportid": "\n\nThe **`reportId`** property of the [HIDInputReportEvent] interface returns the one-byte identification prefix for this report, or 0 if the HID interface does not use report IDs."
+ }
+ },
+ "highlight": {
+ "docs": "\n\nThe **`Highlight`** interface of the [CSS Custom Highlight API](/en-US/docs/Web/API/CSS_Custom_Highlight_API) is used to represent a collection of [Range] instances to be styled using the API.\n\nTo 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\nA `Highlight` instance is a [`Set`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#set-like_browser_apis) that can hold one or more `Range` objects.\n\n",
+ "properties": {
+ "add": "\n\nThe **`add()`** method of the [Highlight] interface adds a new [Range] object to a highlight, to be styled using the [css_custom_highlight_api].\n\n`Highlight` is a `Set`-like object, so this is similar to using `Set.add()`.",
+ "clear": "\n\nThe **`clear()`** method of the [Highlight] interface removes all the [Range] objects from a `Highlight` object.\n\n`Highlight` is a `Set`-like object, so this is similar to using `Set.clear()`.",
+ "delete": "\n\nThe **`delete()`** method of the [Highlight] interface removes a specified [Range] object from a `Highlight` object.\n\n`Highlight` is a `Set`-like object, so this is similar to using `Set.delete()`.",
+ "entries": "\n\nThe **`entries()`** method of the [Highlight] interface returns a new [Iterator](/en-US/docs/Web/JavaScript/Guide/Iterators_and_generators) object that contains an array of `[range, range]` for each [Range] object in the `Highlight` object, in insertion order.\n\n`Highlight` is a `Set`-like object, so this is similar to using `Set.entries()`.",
+ "foreach": "\n\nThe **`forEach()`** method of the [Highlight] interface executes a provided function once for each [Range] object in the `Highlight` object, in insertion order.\n\n`Highlight` is a `Set`-like object, so this is similar to using `Set.forEach()`.",
+ "has": "\n\nThe **`has()`** method of the [Highlight] interface returns a boolean indicating whether a [Range] object exists in a `Highlight` object or not.\n\n`Highlight` is a `Set`-like object, so this is similar to using `Set.has()`.",
+ "keys": "\n\nThe **`keys()`** method of the [Highlight] interface is an alias for the [Highlight.values] method.\n\n`Highlight` is a `Set`-like object, so this is similar to using `Set.keys()`.",
+ "priority": "\n\nIt is possible to create [Range] objects that overlap in a document.\n\nWhen overlapping ranges are used by multiple different [Highlight] objects, and when those highlights are styled using pseudo-elements, this may lead to conflicting styles.\n\nIf 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\nBy default, all highlights have the same priority and the browser chooses the most recently registered highlight to style the overlapping parts.\n\nThe `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\nNote 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 pseudo-elements rules appear in the source, or whether or not CSS properties are marked as `!important`.",
+ "size": "\n\nThe **`size`** property returns the number of [Range] objects in a\n[Highlight] object.",
+ "type": "\n\nThe `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\nBy default, a highlight object will have its type set to `highlight`, but you can change it to `spelling-error` or `grammar-error`.",
+ "values": "\n\nThe **`values()`** method of the [Highlight] interface returns a new [Iterator](/en-US/docs/Web/JavaScript/Guide/Iterators_and_generators) object that contains the values for each `Range` object in the `Highlight` object in insertion order.\n\n> **Note:** The **`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()`."
+ }
+ },
+ "highlightregistry": {
+ "docs": "\n\nThe **`HighlightRegistry`** interface of the [CSS Custom Highlight API](/en-US/docs/Web/API/CSS_Custom_Highlight_API) is used to register [Highlight] objects to be styled using the API.\nIt is accessed via [CSS.highlights_static].\n\nA `HighlightRegistry` instance is a [`Map`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#map-like_browser_apis), in which each key is the name string for a custom highlight, and the corresponding value is the associated [Highlight] object.\n\n",
+ "properties": {
+ "clear": "\n\nThe **`clear()`** method of the [HighlightRegistry] interface removes all the [Highlight] objects registered in the `HighlightRegistry`.\n\n`HighlightRegistry` is a `Map`-like object, so this is similar to using `Map.clear()`.",
+ "delete": "\n\nThe **`delete()`** method of the [HighlightRegistry] interface removes a the named [Highlight] object from the `HighlightRegistry`.\n\n`HighlightRegistry` is a `Map`-like object, so this is similar to using `Map.delete()`.",
+ "entries": "\n\nThe **`entries()`** method of the [HighlightRegistry] interface returns a new [Iterator](/en-US/docs/Web/JavaScript/Guide/Iterators_and_generators) object that contains the `[name, highlight]` pairs for each element in the `HighlightRegistry` object, in insertion order.\n\n`HighlightRegistry` is a `Map`-like object, so this is similar to using `Map.entries()`.",
+ "foreach": "\n\nThe **`forEach()`** method of the [HighlightRegistry] interface executes a provided function once for each [Highlight] object in the registry, in insertion order.\n\n`HighlightRegistry` is a `Map`-like object, so this is similar to using `Map.forEach()`.",
+ "get": "\n\nThe **`get()`** method of the [HighlightRegistry] interface returns the named [Highlight] object from the registry.\n\n`HighlightRegistry` is a `Map`-like object, so this is similar to using `Map.get()`.",
+ "has": "\n\nThe **`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\n`HighlightRegistry` is a `Map`-like object, so this is similar to using `Map.has()`.",
+ "keys": "\n\nThe **`keys()`** method of the [HighlightRegistry] interface returns a new [Iterator](/en-US/docs/Web/JavaScript/Guide/Iterators_and_generators) object that contains the keys for each `Highlight` object in the `HighlightRegistry` object in insertion order.\n\n`HighlightRegistry` is a `Map`-like object, so this is similar to using `Map.keys()`.",
+ "set": "\n\nThe **`set()`** method of the [HighlightRegistry] interface adds or updates a [Highlight] object in the registry with the specified name.\n\n`HighlightRegistry` is a `Map`-like object, so this is similar to using `Map.set()`.",
+ "size": "\n\nThe **`size`** property returns the number of [Highlight] objects in the [HighlightRegistry].",
+ "values": "\n\nThe **`values()`** method of the [HighlightRegistry] interface returns a new [Iterator](/en-US/docs/Web/JavaScript/Guide/Iterators_and_generators) object that contains the values for each `Highlight` object in the `HighlightRegistry` object in insertion order.\n\n`HighlightRegistry` is a `Map`-like object, so this is similar to using `Map.values()`."
+ }
+ },
+ "history": {
+ "docs": "\n\nThe **`History`** interface allows manipulation of the browser _session history_, that is the pages visited in the tab or frame that the current page is loaded in.\n\nThere is only one instance of `history` (It is a _singleton_.) accessible via the global object [Window.history].\n\n> **Note:** This interface is only available on the main thread ([Window]). It cannot be accessed in [Worker] or [Worklet] contexts.",
+ "properties": {
+ "back": "\n\nThe **`History.back()`** method causes\nthe browser to move back one page in the session history.\n\nIt has the same\neffect as calling . If there is no previous\npage, this method call does nothing.\n\nThis method is . Add a listener for the\n[Window/popstate_event] event in order to determine when the navigation has completed.",
+ "forward": "\n\nThe **`History.forward()`** method causes the browser to move\nforward one page in the session history. It has the same effect as calling\n[History.go].\n\nThis method is . Add a listener for the [Window/popstate_event] event in order to determine when the navigation has completed.",
+ "go": "\n\nThe **`History.go()`** method loads a specific page from the\nsession history. You can use it to move forwards and backwards through the history\ndepending on the value of a parameter.\n\nThis method is . Add a listener for the\n[Window/popstate_event] event in order to determine when the navigation has completed.",
+ "length": "\n\nThe **`History.length`** read-only\nproperty returns an integer representing the number of elements in the session\nhistory, including the currently loaded page.\n\nFor example, for a page loaded in a new tab this property returns `1`.",
+ "pushstate": "\n\nIn an [HTML](/en-US/docs/Web/HTML) document, the\n**`history.pushState()`** method adds an entry to the browser's\nsession history stack.",
+ "replacestate": "\n\nThe **`History.replaceState()`** method modifies the current\nhistory entry, replacing it with the state object and\nURL passed in the method parameters. This method is particularly useful\nwhen you want to update the state object or URL of the current history entry in response\nto some user action.",
+ "scrollrestoration": "\n\nThe **`scrollRestoration`** property of [History]\ninterface allows web applications to explicitly set default scroll restoration behavior\non history navigation.",
+ "state": "\n\nThe **`History.state`** read-only property\nreturns a value representing the state at the top of the history stack. This is\na way to look at the state without having to wait for a [Window/popstate_event] event."
+ }
+ },
+ "hkdfparams": {
+ "docs": "\n\nThe **`HkdfParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.deriveKey], when using the [HKDF](/en-US/docs/Web/API/SubtleCrypto/deriveKey#hkdf) algorithm."
+ },
+ "hmacimportparams": {
+ "docs": "\n\nThe **`HmacImportParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/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](/en-US/docs/Web/API/SubtleCrypto/sign#hmac) algorithm."
+ },
+ "hmackeygenparams": {
+ "docs": "\n\nThe **`HmacKeyGenParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.generateKey], when generating a key for the [HMAC](/en-US/docs/Web/API/SubtleCrypto/sign#hmac) algorithm."
+ },
+ "hmdvrdevice": {
+ "docs": "\n\nThe **`HMDVRDevice`** interface of the [WebVR API](/en-US/docs/Web/API/WebVR_API) represents a head mounted display, providing access to information about each eye, and allowing us to modify the current field of view.",
+ "properties": {
+ "geteyeparameters": "\n\nThe **`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\nThis includes field of view information, and more.",
+ "setfieldofview": "\n\nThe **`setFieldOfView()`** method of the [HMDVRDevice] interface can be used to set the field of view for one eye, or both eyes simultaneously."
+ }
+ },
+ "htmlallcollection": {
+ "docs": "\n\nThe **`HTMLAllCollection`** interface represents a collection of _all_ of the document's elements, accessible by index (like an array) and by the element's [`id`](/en-US/docs/Web/HTML/Global_attributes/id). It is returned by the [document.all] property.\n\n`HTMLAllCollection` has a very similar shape to [HTMLCollection], but there are many subtle behavior differences — for example, `HTMLAllCollection` can be called as a function, and its `item()` method can be called with a string representing an element's `id` or `name` attribute.",
+ "properties": {
+ "item": "\n\nThe **`item()`** method of the [HTMLAllCollection] interface returns the element located at the specified offset into the collection, or the element with the specified value for its `id` or `name` attribute.",
+ "length": "\n\nThe **`HTMLAllCollection.length`** property returns the number of items in this [HTMLAllCollection].",
+ "nameditem": "\n\nThe **`namedItem()`** method of the [HTMLAllCollection] interface returns the first [Element] in the collection whose `id` or `name` attribute matches the specified name, or `null` if no element matches."
+ }
+ },
+ "htmlanchorelement": {
+ "docs": "\n\nThe **`HTMLAnchorElement`** interface represents hyperlink elements and provides special properties and methods (beyond those of the regular [HTMLElement] object interface that they inherit from) for manipulating the layout and presentation of such elements. This interface corresponds to [`<a>`](/en-US/docs/Web/HTML/Element/a) element; not to be confused with [`<link>`](/en-US/docs/Web/HTML/Element/link), which is represented by [`HTMLLinkElement`](/en-US/docs/Web/API/HTMLLinkElement).\n\n",
+ "properties": {
+ "download": "\n\nThe **`HTMLAnchorElement.download`** property is a\nstring indicating that the linked resource is intended to be\ndownloaded rather than displayed in the browser. The value, if any, specifies the\ndefault file name for use in labeling the resource in a local file system. If the name\nis not a valid file name in the underlying OS, the browser will adjust it.\n\n> **Note:** This value might not be used for download. This value cannot\n> be used to determine whether the download will occur.",
+ "hash": "\n\nThe\n**`HTMLAnchorElement.hash`** property returns a\nstring containing a `'#'` followed by the fragment\nidentifier of the URL.\n\nThe fragment is [URL encoded](https://en.wikipedia.org/wiki/URL_encoding). If the URL does not\nhave a fragment identifier, this property contains an empty string, `\"\"`.",
+ "host": "\n\nThe **`HTMLAnchorElement.host`** property is a\nstring containing the host, that is the _hostname_, and then,\nif the _port_ of the URL is nonempty, a `':'`, and the _port_\nof the URL.",
+ "hostname": "\n\nThe **`HTMLAnchorElement.hostname`** property is a\nstring containing the domain of the URL.",
+ "href": "\n\nThe **`HTMLAnchorElement.href`** property is a\n that returns a string containing the whole URL, and allows\nthe href to be updated.",
+ "hreflang": "\n\nThe **`hreflang`** property of the [HTMLAnchorElement] interface is a string that is the language of the linked resource.\n\nIt reflects the `hreflang` attribute of the `a` element and is the empty string (`\"\"`) if there is no `hreflang` element.\n\nWeb 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 `5646, \"Tags for Identifying Languages (also known as BCP 47)\"`. If not, it is ignored.\n\nWeb 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.",
+ "origin": "\n\nThe\n**`HTMLAnchorElement.origin`** read-only property is a\nstring containing the Unicode serialization of the origin of the\nrepresented URL.\n\nThat is:\n\n- for URL using the `http` or `https`, the scheme followed by\n `'://'`, followed by the domain, followed by `':'`, followed by\n the port (the default port, `80` and `443` respectively, if\n explicitly specified);\n- for URL using `file:` scheme, the value is browser dependent;\n- for URL using the `blob:` scheme, the origin of the URL following\n `blob:`. E.g `\"blob:https://mozilla.org\"` will have\n `\"https://mozilla.org\".`",
+ "password": "\n\nThe **`HTMLAnchorElement.password`** property is a\nstring containing the password specified before the domain name.\n\nIf it is set without first setting the\n[`username`](/en-US/docs/Web/API/HTMLAnchorElement/username)\nproperty, it silently fails.",
+ "pathname": "\n\nThe **`HTMLAnchorElement.pathname`** property is a\nstring containing an initial `'/'` followed by the path of\nthe URL not including the query string or fragment (or the empty string if there is no\npath).",
+ "port": "\n\nThe **`HTMLAnchorElement.port`** property is a\nstring containing the port number of the URL. If the URL does not\ncontain an explicit port number, it will be set to `''`.",
+ "protocol": "\n\nThe\n**`HTMLAnchorElement.protocol`**\nproperty is a string representing the protocol scheme of the URL,\nincluding the final `':'`.",
+ "referrerpolicy": "\n\nThe\n**`HTMLAnchorElement.referrerPolicy`**\nproperty reflect the HTML [`referrerpolicy`](/en-US/docs/Web/HTML/Element/a#referrerpolicy) attribute of the\n`a` element defining which referrer is sent when fetching the resource.",
+ "rel": "\n\nThe **`HTMLAnchorElement.rel`** property reflects the [`rel`](/en-US/docs/Web/HTML/Attributes/rel) attribute. It is a string containing a space-separated list of link types indicating the relationship between the resource represented by the `a` element and the current document.",
+ "rellist": "\n\nThe **`HTMLAnchorElement.relList`** read-only property reflects the [`rel`](/en-US/docs/Web/HTML/Attributes/rel) attribute. It is a live [DOMTokenList] containing the set of link types indicating the relationship between the resource represented by the `a` element and the current document.\n\nThe property itself is read-only, meaning you can't substitute the\n[DOMTokenList] with another one, but its contents can still be changed.",
+ "search": "\n\nThe **`HTMLAnchorElement.search`** property is a search\nstring, also called a _query string_, that is a string containing\na `'?'` followed by the parameters of the URL.\n\nModern browsers provide\n[`URLSearchParams`](/en-US/docs/Web/API/URLSearchParams/get#examples)\nand\n[`URL.searchParams`](/en-US/docs/Web/API/URL/searchParams#examples)\nto make it easy to parse out the parameters from the querystring.",
+ "tostring": "\n\nThe **`HTMLAnchorElement.toString()`** \nmethod returns a string containing the whole URL. It is a read-only\nversion of [HTMLAnchorElement.href].",
+ "username": "\n\nThe **`HTMLAnchorElement.username`** property is a\nstring containing the username specified before the domain name."
+ }
+ },
+ "htmlareaelement": {
+ "docs": "\n\nThe **`HTMLAreaElement`** interface provides special properties and methods (beyond those of the regular object [HTMLElement] interface it also has available to it by inheritance) for manipulating the layout and presentation of `area` elements.\n\n",
+ "properties": {
+ "hash": "\n\nThe\n**`HTMLAreaElement.hash`** property returns a\nstring containing a `'#'` followed by the fragment\nidentifier of the URL.\n\nThe fragment is not [URL decoded](https://en.wikipedia.org/wiki/URL_encoding). If the URL does not\nhave a fragment identifier, this property contains an empty string, `\"\"`.",
+ "host": "\n\nThe **`HTMLAreaElement.host`** property is a\nstring containing the host, that is the _hostname_, and then,\nif the _port_ of the URL is nonempty, a `':'`, and the _port_\nof the URL.",
+ "hostname": "\n\nThe **`HTMLAreaElement.hostname`** property is a string containing the domain of the URL.",
+ "href": "\n\nThe **`HTMLAreaElement.href`** property is a\n that returns a string containing the whole URL, and allows\nthe href to be updated.",
+ "origin": "\n\nThe\n**`HTMLAreaElement.origin`** read-only property is a\nstring containing the Unicode serialization of the origin of the\nrepresented URL.\n\nThat is:\n\n- for URL using the `http` or `https`, the scheme followed by\n `'://'`, followed by the domain, followed by `':'`, followed by\n the port (the default port, `80` and `443` respectively, if\n explicitly specified);\n- for URL using `file:` scheme, the value is browser dependent;\n- for URL using the `blob:` scheme, the origin of the URL following\n `blob:`. E.g `\"blob:https://mozilla.org\"` will have\n `\"https://mozilla.org\".`",
+ "password": "\n\nThe **`HTMLAreaElement.password`** property is a\nstring containing the password specified before the domain name.\n\nIf it is set without first setting the\n[`username`](/en-US/docs/Web/API/HTMLAreaElement/username)\nproperty, it silently fails.",
+ "pathname": "\n\nThe **`HTMLAreaElement.pathname`** property is a\nstring containing an initial `'/'` followed by the path of\nthe URL not including the query string or fragment (or the empty string if there is no\npath).",
+ "port": "\n\nThe **`HTMLAreaElement.port`** property is a\nstring containing the port number of the URL. If the URL does not\ncontain an explicit port number, it will be set to `''`.",
+ "protocol": "\n\nThe\n**`HTMLAreaElement.protocol`**\nproperty is a string representing the protocol scheme of the URL,\nincluding the final `':'`.",
+ "referrerpolicy": "\n\nThe\n**`HTMLAreaElement.referrerPolicy`**\nproperty reflect the HTML [`referrerpolicy`](/en-US/docs/Web/HTML/Element/area#referrerpolicy) attribute of the\n`area` element defining which referrer is sent when fetching the\nresource.",
+ "rel": "\n\nThe **`HTMLAreaElement.rel`** property reflects the [`rel`](/en-US/docs/Web/HTML/Attributes/rel) attribute. It is a string containing a space-separated list of link types indicating the relationship between the resource represented by the `area` element and the current document.",
+ "rellist": "\n\nThe **`HTMLAreaElement.relList`** read-only property reflects the [`rel`](/en-US/docs/Web/HTML/Attributes/rel) attribute. It is a live [DOMTokenList] containing the set of link types indicating the relationship between the resource represented by the `area` element and the current document.\n\nThe property itself is read-only, meaning you can't substitute the\n[DOMTokenList] by another one, but the content of the returned list can be\nchanged.",
+ "search": "\n\nThe **`HTMLAreaElement.search`** property is a search\nstring, also called a _query string_, that is a string containing\na `'?'` followed by the parameters of the URL.\n\nModern browsers provide\n[`URLSearchParams`](/en-US/docs/Web/API/URLSearchParams/get#examples)\nand\n[`URL.searchParams`](/en-US/docs/Web/API/URL/searchParams#examples)\nto make it easy to parse out the parameters from the querystring.",
+ "tostring": "\n\nThe **`HTMLAreaElement.toString()`** \nmethod returns a string containing the whole URL. It is a read-only\nversion of [HTMLAreaElement.href].",
+ "username": "\n\nThe **`HTMLAreaElement.username`** property is a\nstring containing the username specified before the domain name."
+ }
+ },
+ "htmlaudioelement": {
+ "docs": "\n\nThe **`HTMLAudioElement`** interface provides access to the properties of `audio` elements, as well as methods to manipulate them.\n\nThis element is based on, and inherits properties and methods from, the [HTMLMediaElement] interface.\n\n",
+ "properties": {
+ "audio": "\n\nThe **`Audio()`** constructor creates\nand returns a new [HTMLAudioElement] which can be either attached to\na document for the user to interact with and/or listen to, or can be used\noffscreen to manage and play audio."
+ }
+ },
+ "htmlbaseelement": {
+ "docs": "\n\nThe **`HTMLBaseElement`** interface contains the base URI for a document. This object inherits all of the properties and methods as described in the [HTMLElement] interface.\n\n"
+ },
+ "htmlbodyelement": {
+ "docs": "\n\nThe **`HTMLBodyElement`** interface provides special properties (beyond those inherited from the regular [HTMLElement] interface) for manipulating `body` elements.\n\n"
+ },
+ "htmlbrelement": {
+ "docs": "\n\nThe **`HTMLBRElement`** interface represents an HTML line break element (`br`). It inherits from [HTMLElement].\n\n"
+ },
+ "htmlbuttonelement": {
+ "docs": "\n\nThe **`HTMLButtonElement`** interface provides properties and methods (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating `button` elements.\n\n",
+ "properties": {
+ "disabled": "\n\nThe **`HTMLButtonElement.disabled`** property indicates whether the control is disabled, meaning that it does not accept any clicks.",
+ "labels": "\n\nThe **`HTMLButtonElement.labels`** read-only property returns a\n[NodeList] of the `label` elements associated with the\n`button` element.",
+ "popovertargetaction": "\n\nThe **`popoverTargetAction`** property of the [HTMLButtonElement] interface gets and sets the action to be performed (`\"hide\"`, `\"show\"`, or `\"toggle\"`) on a popover element being controlled by a button.\n\nIt reflects the value of the [`popovertargetaction`](/en-US/docs/Web/HTML/Element/button#popovertargetaction) HTML attribute.",
+ "popovertargetelement": "\n\nThe **`popoverTargetElement`** property of the [HTMLButtonElement] interface gets and sets the popover element to control via a button.\n\nIt is the JavaScript equivalent of the [`popovertarget`](/en-US/docs/Web/HTML/Element/button#popovertarget) HTML attribute."
+ }
+ },
+ "htmlcanvaselement": {
+ "docs": "\n\nThe **`HTMLCanvasElement`** interface provides properties and methods for manipulating the layout and presentation of `canvas` elements. The `HTMLCanvasElement` interface also inherits the properties and methods of the [HTMLElement] interface.\n\n",
+ "properties": {
+ "capturestream": "\n\nThe **`captureStream()`** method of the [HTMLCanvasElement] interface returns a [MediaStream]\nwhich includes a [CanvasCaptureMediaStreamTrack] containing a real-time video capture of the canvas's contents.",
+ "contextlost_event": "\n\nThe **`contextlost`** event of the [Canvas API](/en-US/docs/Web/API/Canvas_API) is fired if the user agent detects that the backing storage associated with a [`CanvasRenderingContext2D`](/en-US/docs/Web/API/CanvasRenderingContext2D) context is lost.\nContexts can be lost for several reasons like driver crashes or the application runs out of memory, etc.\n\nBy default the user agent will attempt to restore the context and then fire the [`contextrestored` event](/en-US/docs/Web/API/HTMLCanvasElement/contextrestored_event).\nUser code can prevent the context from being restored by calling [`Event.preventDefault()`](/en-US/docs/Web/API/Event/preventDefault) during event handling.",
+ "contextrestored_event": "\n\nThe **`contextrestored`** event of the [Canvas API](/en-US/docs/Web/API/Canvas_API) is fired if the user agent restores the backing storage for a [`CanvasRenderingContext2D`](/en-US/docs/Web/API/CanvasRenderingContext2D).\n\nYou can redraw, re-retrieve resources, and reinitialize the state of your context after receiving this event.",
+ "getcontext": "\n\nThe\n**`HTMLCanvasElement.getContext()`** method returns a drawing\ncontext on the canvas, or [`null`](/en-US/docs/Web/JavaScript/Reference/Operators/null) if the context identifier is not\nsupported, or the canvas has already been set to a different context mode.\n\nLater calls to this method on the same canvas element, with the same\n`contextType` argument, will always return the same drawing context instance\nas was returned the first time the method was invoked. It is not possible to get a\ndifferent drawing context object on a given canvas element.",
+ "height": "\n\nThe **`HTMLCanvasElement.height`** property is a\npositive `integer` reflecting the [`height`](/en-US/docs/Web/HTML/Element/canvas#height) HTML\nattribute of the `canvas` element interpreted in CSS pixels. When the\nattribute is not specified, or if it is set to an invalid value, like a negative, the\ndefault value of `150` is used.\n\nThis is one of the two properties, the other being\n[HTMLCanvasElement.width], that controls the size of the canvas.",
+ "mozopaque": "\n\nThe non-standard **`HTMLCanvasElement.mozOpaque`** property is\na boolean value reflecting the [`moz-opaque`](/en-US/docs/Web/HTML/Element/canvas#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:** This has been standardized as setting the `alpha` option to\n> `false` when creating a drawing context with\n> [HTMLCanvasElement.getContext]. Use of `mozOpaque` should be\n> avoided. Firefox will stop supporting it in the future.",
+ "toblob": "\n\nThe **`HTMLCanvasElement.toBlob()`** method creates a [Blob] object representing the image contained in the canvas.\nThis file may be cached on the disk or stored in memory at the discretion of the user agent.\n\nThe 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\nThe created image will have a resolution of 96dpi for file formats that support encoding resolution metadata.",
+ "todataurl": "\n\nThe **`HTMLCanvasElement.toDataURL()`** method returns a [data URL](/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) containing a representation of the image in the format specified by the `type` parameter.\n\nThe 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\nBrowsers are required to support `image/png`; many will support additional formats including `image/jpeg` and `image/webp`.\n\nThe created image data will have a resolution of 96dpi for file formats that support encoding resolution metadata.",
+ "transfercontroltooffscreen": "\n\nThe **`HTMLCanvasElement.transferControlToOffscreen()`** method transfers control to an [OffscreenCanvas] object, either on the main thread or on a worker.",
+ "webglcontextcreationerror_event": "\n\nThe **`webglcontextcreationerror`** event of the [WebGL API](/en-US/docs/Web/API/WebGL_API) is fired if the user agent is unable to create a [WebGLRenderingContext] context.\n\nThis event has a [WebGLContextEvent.statusMessage] property, which can contain a platform dependent string with more information about the failure.\n\nThis event does not bubble.",
+ "webglcontextlost_event": "\n\nThe **`webglcontextlost`** event of the [WebGL API](/en-US/docs/Web/API/WebGL_API) is fired if the user agent detects that the drawing buffer associated with a [WebGLRenderingContext] object has been lost.\n\nThis event does not bubble.",
+ "webglcontextrestored_event": "\n\nThe **`webglcontextrestored`** event of the [WebGL API](/en-US/docs/Web/API/WebGL_API) is fired if the user agent restores the drawing buffer for a [WebGLRenderingContext] object.\n\nOnce the context is restored, WebGL resources such as textures and buffers that were created before the context was lost are no longer valid. You need to reinitialize the state of your WebGL application and recreate resources.\n\nThis event does not bubble.",
+ "width": "\n\nThe **`HTMLCanvasElement.width`** property is a\npositive `integer` reflecting the [`width`](/en-US/docs/Web/HTML/Element/canvas#width) HTML\nattribute of the `canvas` element interpreted in CSS pixels. When the\nattribute is not specified, or if it is set to an invalid value, like a negative, the\ndefault value of `300` is used.\n\nThis is one of the two properties, the other being\n[HTMLCanvasElement.height], that controls the size of the canvas."
+ }
+ },
+ "htmlcollection": {
+ "docs": "\n\nThe **`HTMLCollection`** interface represents a generic collection (array-like object similar to `arguments`) of elements (in document order) and offers methods and properties for selecting from the list.\n\n> **Note:** This interface is called `HTMLCollection` for historical reasons (before the modern DOM, collections implementing this interface could only have HTML elements as their items).\n\nAn `HTMLCollection` in the HTML DOM is live; it is automatically updated when the underlying document is changed. For this reason it is a good idea to make a copy (e.g., using `Array.from`) to iterate over if adding, moving, or removing nodes.\n\n> **Note:** This interface was an [attempt to create an unmodifiable list](https://stackoverflow.com/questions/74630989/why-use-domstringlist-rather-than-an-array/74641156#74641156) and only continues to be supported to not break code that's already using it. Modern APIs use types that wrap around ECMAScript array types instead, so you can treat them like ECMAScript arrays, and at the same time impose additional semantics on their usage (such as making their items read-only).",
+ "properties": {
+ "item": "\n\nThe [HTMLCollection] method `item()`\nreturns the element located at the specified offset into the collection.\n\n> **Note:** Because the contents of an `HTMLCollection` are\n> live, changes to the underlying DOM can and will cause the position of individual\n> elements in the collection to change, so the index value will not necessarily remain\n> constant for a given element.",
+ "length": "\n\nThe **`HTMLCollection.length`** property returns the number of\nitems in a [HTMLCollection].",
+ "nameditem": "\n\nThe **`namedItem()`** method of the [HTMLCollection] interface returns\nthe first [Element] in the collection whose `id` or `name` attribute match the specified name, or `null` if no element matches.\n\nIn JavaScript, using the array bracket syntax with a `String`, like `collection[\"value\"]` is equivalent to `collection.namedItem(\"value\")`."
+ }
+ },
+ "htmldataelement": {
+ "docs": "\n\nThe **`HTMLDataElement`** interface provides special properties (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating `data` elements.\n\n",
+ "properties": {
+ "value": "\n\nThe **`value`** property of the [HTMLDataElement]\ninterface returns a string reflecting the [`value`](/en-US/docs/Web/HTML/Element/data#value) HTML attribute."
+ }
+ },
+ "htmldatalistelement": {
+ "docs": "\n\nThe **`HTMLDataListElement`** interface provides special properties (beyond the [HTMLElement] object interface it also has available to it by inheritance) to manipulate `datalist` elements and their content.\n\n"
+ },
+ "htmldetailselement": {
+ "docs": "\n\nThe **`HTMLDetailsElement`** interface provides special properties (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating `details` elements.\n\n",
+ "properties": {
+ "open": "\n\nThe **`open`** property of the\n[HTMLDetailsElement] interface is a boolean value reflecting the\n[`open`](/en-US/docs/Web/HTML/Element/details#open) HTML attribute, indicating whether the `details`'s contents (not counting the `summary`) is to be shown to the user.",
+ "toggle_event": "\n\nThe **`toggle`** event fires when the `open`/`closed` state of a `details` element is toggled.\n\nThis event is not cancelable and does not bubble.\n\n> **Note:** The `toggle` event is also available in a different form on [HTMLElement]; this version fires on [popover elements](/en-US/docs/Web/API/Popover_API) just after they are shown or hidden. See the `HTMLElement` [HTMLElement.toggle_event] page for more information."
+ }
+ },
+ "htmldialogelement": {
+ "docs": "\n\nThe **`HTMLDialogElement`** interface provides methods to manipulate `dialog` elements. It inherits properties and methods from the [HTMLElement] interface.\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [HTMLDialogElement] interface closes the `dialog`.\nAn optional string may be passed as an argument, updating the `returnValue` of the dialog.",
+ "close_event": "\n\nThe `close` event is fired on an `HTMLDialogElement` object when the `dialog` it represents has been closed.\n\nThis event is not cancelable and does not bubble.",
+ "open": "\n\nThe **`open`** property of the\n[HTMLDialogElement] interface is a boolean value reflecting the\n[`open`](/en-US/docs/Web/HTML/Element/dialog#open) HTML attribute, indicating whether the `dialog` is\navailable for interaction.",
+ "returnvalue": "\n\nThe **`returnValue`** property of the [HTMLDialogElement] interface gets or sets the return value for the `dialog`, usually to indicate which button the user pressed to close it.",
+ "show": "\n\nThe **`show()`** method of the [HTMLDialogElement]\ninterface displays the dialog modelessly, i.e. still allowing interaction with content\noutside of the dialog.",
+ "showmodal": "\n\nThe **`showModal()`** method of the\n[HTMLDialogElement] interface displays the dialog as a modal, over the top\nof any other dialogs that might be present. It displays in the , along with a\n pseudo-element. Interaction outside the dialog is blocked and\nthe content outside it is rendered inert."
+ }
+ },
+ "htmldivelement": {
+ "docs": "\n\nThe **`HTMLDivElement`** interface provides special properties (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating `div` elements.\n\n"
+ },
+ "htmldlistelement": {
+ "docs": "\n\nThe **`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.\n\n"
+ },
+ "htmldocument": {
+ "docs": "\n\nFor historical reasons, [Window] objects have a `window.HTMLDocument` property whose value is the [Document] interface. So you can think of `HTMLDocument` as an alias for [Document], and you can find documentation for `HTMLDocument` members under the documentation for the [Document] interface."
+ },
+ "htmlelement": {
+ "docs": "\n\nThe **`HTMLElement`** interface represents any [HTML](/en-US/docs/Web/HTML) element. Some elements directly implement this interface, while others implement it via an interface that inherits it.\n\n",
+ "properties": {
+ "accesskey": "\n\nThe **`HTMLElement.accessKey`** property sets the keystroke which a user can press to jump to a given element.\n\n> **Note:** The `HTMLElement.accessKey` property is seldom used because of its multiple conflicts with already present key bindings in browsers. To work around this, browsers implement accesskey behavior if the keys are pressed with other \"qualifying\" keys (such as <kbd>Alt</kbd> + accesskey).",
+ "accesskeylabel": "\n\nThe **`HTMLElement.accessKeyLabel`**\nread-only property returns a string containing the element's\nbrowser-assigned access key (if any); otherwise it returns an empty string.",
+ "attachinternals": "\n\nThe **`HTMLElement.attachInternals()`** method returns an [ElementInternals] object.\nThis method allows a [custom element](/en-US/docs/Web/API/Web_components/Using_custom_elements) 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](https://wicg.github.io/aom/explainer.html) to the element.",
+ "autofocus": "\n\nThe **`autofocus`** property of the [HTMLElement] interface represents a boolean value reflecting the [`autofocus`](/en-US/docs/Web/HTML/Element/select#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\nOnly 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, get the initial focus.\n\n> **Note:** Setting 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.",
+ "beforetoggle_event": "\n\nThe **`beforetoggle`** event of the [HTMLElement] interface fires on a [Popover_API] element (i.e. one that has a valid [`popover`](/en-US/docs/Web/HTML/Global_attributes/popover) attribute) just before it is shown or hidden.\n\n- If the popover is transitioning from hidden to showing, the `event.oldState` property will be set to `closed` and the `event.newState` property will be set to `open`.\n- If the popover is transitioning from showing to hidden, then `event.oldState` will be `open` and `event.newState` will be `closed`.",
+ "blur": "\n\nThe **`HTMLElement.blur()`** method removes keyboard focus from the current element.",
+ "cancel_event": "\n\nThe **`cancel`** event is fired by `input` and `dialog` elements. The event is fired when the user cancels the currently open dialog by closing it with the <kbd>Esc</kbd> key. It is also fired by the [file input](/en-US/docs/Web/HTML/Element/input/file) when the user cancels the file picker dialog via the <kbd>Esc</kbd> key or the cancel button and when the user re-selects the same files that were previously selected.\n\nThis event does not bubble.\n\nWhen a `<dialog>` is dismissed with the <kbd>Esc</kbd> key, both the `cancel` and [HTMLDialogElement/close_event] events are fired.",
+ "change_event": "\n\nThe `change` event is fired for `input`, `select`, and `textarea` elements when the user modifies the element's value. Unlike the [Element/input_event] event, the `change` event is not necessarily fired for each alteration to an element's `value`.\n\nDepending on the kind of element being changed and the way the user interacts with the element, the `change` event fires at a different moment:\n\n- When a `` element is checked or unchecked (by clicking or using the keyboard);\n- When a `` element is checked (but not when unchecked);\n- When the user commits the change explicitly (e.g., by selecting a value from a `select`'s dropdown with a mouse click, by selecting a date from a date picker for ``, by selecting a file in the file picker for ``, etc.);\n- When the element loses focus after its value was changed: for elements where the user's interaction is typing rather than selection, such as a `textarea` or the ``text``, ``search``, ``url``, ``tel``, ``email``, or ``password`` types of the `input` element.\n\nThe HTML specification lists [the `<input>` types that should fire the `change` event](https://html.spec.whatwg.org/multipage/forms.html#concept-input-apply).",
+ "click": "\n\nThe **`HTMLElement.click()`** method simulates a mouse click on\nan element.\n\nWhen `click()` is used with supported elements (such as an\n`input`), it fires the element's click event. This event then bubbles\nup to elements higher in the document tree (or event chain) and fires their click\nevents.",
+ "contenteditable": "\n\nThe **`contentEditable`** property of\nthe [HTMLElement] interface specifies whether or not the element is\neditable.\n\nThis enumerated attribute can have the following values:\n\n- '`true`' indicates that the element is `contenteditable`.\n- '`false`' indicates that the element cannot be edited.\n- '`plaintext-only`' indicates that the element's raw text is editable, but rich text formatting is disabled.\n- '`inherit`' indicates that the element inherits its parent's editable\n status.\n\nYou can use the [HTMLElement.isContentEditable] property to test the\ncomputed boolean value of this property.",
+ "copy_event": "\n\nThe **`copy`** event fires when the user initiates a copy action through the browser's user interface.",
+ "cut_event": "\n\nThe **`cut`** event fires when the user initiates a cut action through the browser's user interface.",
+ "dataset": "\n\nThe **`dataset`** read-only property\nof the [HTMLElement] interface provides read/write access to [custom data attributes](/en-US/docs/Web/HTML/Global_attributes/data-*)\n(`data-*`) on elements. It exposes a map of strings\n([DOMStringMap]) with an entry for each `data-*` attribute.\n\n> **Note:** The `dataset` property itself can be read, but not directly written.\n> Instead, all writes must be to the individual properties within the\n> `dataset`, which in turn represent the data attributes.\n\nAn HTML `data-*` attribute and its corresponding DOM\n`dataset.property` modify their shared name according to where\nthey are read or written:\n\n- In HTML\n - : The attribute name begins with `data-`. It can contain only letters,\n numbers, dashes (`-`), periods (`.`), colons (`:`),\n and underscores (`_`). Any capital letters (`A` to\n `Z`) are converted to lowercase.\n- In JavaScript\n - : The property name of a custom data attribute is the same as the HTML attribute\n without the `data-` prefix, and removes single dashes (`-`) for\n when to capitalize the property's \"\" name.\n\nIn addition to the information below, you'll find a how-to guide for using HTML data\nattributes in our article [_Using data attributes_](/en-US/docs/Learn/HTML/Howto/Use_data_attributes).\n\n### Name conversion\n\n- `dash-style` to `camelCase` conversion\n\n - : A custom data attribute name is transformed to a key for the [DOMStringMap] entry by the following:\n\n 1. Lowercase all ASCII capital letters (`A` to\n `Z`);\n 2. Remove the prefix `data-` (including the dash);\n 3. For any dash (`U+002D`) followed by an ASCII lowercase letter\n `a` to `z`, remove the dash and uppercase the letter;\n 4. Other characters (including other dashes) are left unchanged.\n\n- `camelCase` to `dash-style` conversion\n\n - : The opposite transformation, which maps a key to an attribute name, uses the\n following:\n\n 1. **Restriction:** Before transformation, a dash _must not_ be\n immediately followed by an ASCII lowercase letter `a` to\n `z`;\n 2. Add the `data-` prefix;\n 3. Add a dash before any ASCII uppercase letter `A` to `Z`,\n then lowercase the letter;\n 4. Other characters are left unchanged.\n\nFor example, a `data-abc-def` attribute corresponds to\n`dataset.abcDef`.\n\n### Accessing values\n\n- Attributes can be set and read by the camelCase name/key as an object property of\n the dataset: `element.dataset.keyname`.\n- Attributes can also be set and read using bracket syntax:\n `element.dataset['keyname']`.\n- The [`in` operator](/en-US/docs/Web/JavaScript/Reference/Operators/in) can check if a given attribute exists:\n `'keyname' in element.dataset`.\n\n### Setting values\n\n- When the attribute is set, its value is always converted to a string.\n For example: `element.dataset.example = null` is\n converted into `data-example=\"null\"`.\n\n- To remove an attribute, you can use the [`delete` operator](/en-US/docs/Web/JavaScript/Reference/Operators/delete): `delete element.dataset.keyname`.",
+ "dir": "\n\nThe **`HTMLElement.dir`** property gets or sets the text\nwriting directionality of the content of the current element.\n\nThe text writing directionality of an element is which direction that text goes (for\nsupport of different language systems). Arabic languages and Hebrew are typical\nlanguages using the RTL directionality.\n\nAn image can have its `dir` property set to \"`rtl`\" in which case\nthe HTML attributes `title` and `alt` will be formatted and\ndefined as \"`rtl`\".\n\nWhen a table has its `dir` set to \"`rtl`\", the column order is\narranged from right to left.\n\nWhen an element has its dir set to \"`auto`\", the direction of the element is\ndetermined based on its first strong directionality character, or default to the\ndirectionality of its parent element.\n\n> **Note:** Browsers might allow users to change the directionality of `input`\n> and `textarea`s in order to assist with authoring content. Chrome\n> and Safari provide a directionality option in the contextual menu of input fields\n> while pre-Chromium Edge uses the key combinations <kbd>Ctrl</kbd> + <kbd>Left Shift</kbd> and <kbd>Ctrl</kbd> + <kbd>Right Shift</kbd>. Firefox uses <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>Shift</kbd> + <kbd>X</kbd> but does NOT update\n> the **`dir`** attribute value.",
+ "drag_event": "\n\nThe `drag` event is fired every few hundred milliseconds as an element or text selection is being dragged by the user.\n\nThis event is cancelable and may bubble up to the [Document] and [Window] objects.",
+ "dragend_event": "\n\nThe `dragend` event is fired when a drag operation ends (by releasing a mouse button or hitting the escape key).\n\nThis event is cancelable and may bubble up to the [Document] and [Window] objects.",
+ "dragenter_event": "\n\nThe `dragenter` event is fired when a dragged element or text selection enters a valid drop target. The target object is the _immediate user selection_ (the element directly indicated by the user as the drop target), or the `body` element.\n\nThis event is cancelable and may bubble up to the [Document] and [Window] objects.",
+ "draggable": "\n\nThe **`draggable`** property of the [HTMLElement] interface gets and sets a `Boolean` primitive indicating if the element is draggable.\n\nIt reflects the value of the [`draggable`](/en-US/docs/Web/HTML/Global_attributes/draggable) HTML global attribute.",
+ "dragleave_event": "\n\nThe `dragleave` event is fired when a dragged element or text selection leaves a valid drop target.\n\nThis event is not cancelable and may bubble up to the [Document] and [Window] objects.",
+ "dragover_event": "\n\nThe `dragover` event is fired when an element or text selection is being dragged over a valid drop target (every few hundred milliseconds).\n\nThis event is cancelable and may bubble up to the [Document] and [Window] objects.",
+ "dragstart_event": "\n\nThe `dragstart` event is fired when the user starts dragging an element or text selection.\n\nThis event is cancelable and may bubble up to the [Document] and [Window] objects.",
+ "drop_event": "\n\nThe **`drop`** event is fired when an element or text selection is dropped on a valid drop target. To ensure that the `drop` event always fires as expected, you should always include a [`preventDefault()`](/en-US/docs/Web/API/Event/preventDefault) call in the part of your code which handles the [`dragover`](/en-US/docs/Web/API/HTMLElement/dragover_event) event.\n\nThis event is cancelable and may bubble up to the [Document] and [Window] objects.",
+ "enterkeyhint": "\n\nThe **`enterKeyHint`** property is an enumerated property defining\nwhat action label (or icon) to present for the enter key on virtual keyboards.\nIt reflects the [`enterkeyhint`](/en-US/docs/Web/HTML/Global_attributes/enterkeyhint)\nHTML global attribute and is an enumerated property, only accepting the following values\nas a string:\n\n- `'enter'` typically indicating inserting a new line.\n- `'done'` typically meaning there is nothing more to input and the input method editor (IME) will be closed.\n- `'go'` typically meaning to take the user to the target of the text they typed.\n- `'next'` typically taking the user to the next field that will accept text.\n- `'previous'` typically taking the user to the previous field that will accept text.\n- `'search'` typically taking the user to the results of searching for the text they have typed.\n- `'send'` typically delivering the text to its target.\n\nIf no `enterKeyHint` value has been specified or if it was set to a different value than the allowed ones, it will return an empty string.",
+ "error_event": "\n\nThe `error` event is fired on an element when a resource failed to load, or can't be used. For example, if a script has an execution error or an image can't be found or is invalid.\n\nThis event is not cancelable and does not bubble.",
+ "focus": "\n\nThe **`HTMLElement.focus()`** method sets focus on the specified element, if it can be focused.\nThe focused element is the element that will receive keyboard and similar events by default.\n\nBy 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).\nParameter options are provided to disable the default scrolling and force visible indication on elements.",
+ "hidden": "\n\nThe [HTMLElement] property **`hidden`** reflects the value of the element's [`hidden`](/en-US/docs/Web/HTML/Global_attributes/hidden) attribute.",
+ "hidepopover": "\n\nThe **`hidePopover()`** method of the [HTMLElement] interface hides a [popover](/en-US/docs/Web/API/Popover_API) element (i.e. one that has a valid [`popover`](/en-US/docs/Web/HTML/Global_attributes/popover) attribute) by removing it from the and styling it with `display: none`.\n\nWhen `hidePopover()` is called on a showing element with the [`popover`](/en-US/docs/Web/HTML/Global_attributes/popover) attribute, a [HTMLElement/beforetoggle_event] event will be fired, followed by the popover being hidden, and then the [HTMLElement/toggle_event] event firing. If the element is already hidden, an error is thrown.",
+ "inert": "\n\nThe [HTMLElement] property **`inert`** reflects the value of the element's [`inert`](/en-US/docs/Web/HTML/Global_attributes/inert) attribute. It is a boolean value that, when present, makes the browser \"ignore\" user input events for the element, including focus events and events from assistive technologies. The browser may also ignore page search and text selection in the element. This can be useful when building UIs such as modals where you would want to \"trap\" the focus inside the modal when it's visible.\n\n> **Note:** Do not nest interactive elements or important content within elements with the `inert` attribute as inert content and their descendants are neither focusable nor perceivable by all users.",
+ "innertext": "\n\nThe **`innerText`** property of the [HTMLElement] interface represents the rendered text content of a node and its descendants.\n\nAs 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.\n> Basically, `innerText` is aware of the rendered appearance of text, while `textContent` is not.",
+ "inputmode": "\n\nThe [HTMLElement] property **`inputMode`** reflects the value of the element's [`inputmode`](/en-US/docs/Web/HTML/Global_attributes/inputmode) attribute.\n\nIt provides a hint about the type of data that might be entered by the user while editing the element or its contents. This allows the browser to display an appropriate virtual keyboard.\n\nIt is used primarily on `input` elements, but is usable on any element in [`contenteditable`](/en-US/docs/Web/HTML/Global_attributes#contenteditable) mode.",
+ "iscontenteditable": "\n\nThe **`HTMLElement.isContentEditable`** read-only property\nreturns a boolean value that is `true` if the contents of the element\nare editable; otherwise it returns `false`.",
+ "lang": "\n\nThe **`HTMLElement.lang`** property gets or sets the base\nlanguage of an element's attribute values and text content.\n\nThe language code returned by this property is defined in `5646, \"Tags for Identifying Languages (also known as BCP 47)\"`.\nCommon examples include \"en\" for English, \"ja\" for\nJapanese, \"es\" for Spanish and so on. The default value of this attribute is\n`unknown`. Note that this attribute, though valid at the individual element\nlevel described here, is most often specified for the root element of the document.\n\nThis also only works with the `lang` attribute and not with\n`xml:lang`.",
+ "load_event": "\n\nThe **`load`** event fires for elements containing a resource when the resource has successfully loaded. Currently, the list of supported HTML elements are: `body`, `embed`, `iframe`, `img`, `link`, `object`, `script`, `style`, and`track`.\n\n> **Note:** The `load` event on is actually an alias for the [Window/load_event] event. Therefore, the `load` event will only fire on the `<body>` element once all of the document's resources have loaded or errored. However, for the sake of clarity, it is recommended that the event handler is attached to the `window` object directly rather than on `HTMLBodyElement`.\n\nThis event is not cancelable and does not bubble.",
+ "mscandidatewindowhide_event": "\n\nThe **`mscandidatewindowhide`** event is thrown after the Input Method Editor (IME) candidate window closes and is fully hidden.\n\nThis proprietary method is specific to Internet Explorer.\n\nThe handler of this event will see that the `isCandidateWindowVisible` method returns `false`, and no `ClientRect` object is returned from `getCandidateWindowClientRect()`.\n\nWeb applications need only register for this event once per element (the handler will remain valid for the lifetime of the element).",
+ "mscandidatewindowshow_event": "\n\nThe **`mscandidatewindowshow`** event is thrown immediately after the Input Method Editor (IME) candidate window is set to appear, but before it renders.\n\nThis proprietary method is specific to Internet Explorer.\n\nThis event fires after the positioning information of the IME candidate window has been determined. You can obtain the positioning information using the [getCandidateWindowClientRect](/en-US/docs/Web/API/getCandidateWindowClientRect) method, and adjust your layout as needed to avoid any occlusions with the IME candidate window.\n\nWeb applications need only register for this event once per element (the handler will remain valid for the lifetime of the element).",
+ "mscandidatewindowupdate_event": "\n\nThe **`mscandidatewindowupdate`** event is thrown after the Input Method Editor (IME) candidate window has been identified as needing to change size, but before any visual updates have rendered.\n\nThis proprietary method is specific to Internet Explorer.\n\nAn IME candidate window may be identified as needing to change size for any of the following reasons:\n\n- As a result of displaying new / changed alternatives or predictions\n\nWeb applications need only register for this event once per element (the handler will remain valid for the lifetime of the element).",
+ "nonce": "\n\nThe **`nonce`** property of the [HTMLElement] interface returns the cryptographic number used once that is used by [Content Security Policy](/en-US/docs/Web/HTTP/CSP) to determine whether a given fetch will be allowed to proceed.\n\nIn later implementations, elements only expose their `nonce` attribute to scripts (and not to side-channels like CSS attribute selectors).",
+ "offsetheight": "\n\nThe **`HTMLElement.offsetHeight`** read-only property returns\nthe height of an element, including vertical padding and borders, as an integer.\n\nTypically, `offsetHeight` is a measurement in pixels of the element's CSS\nheight, including any borders, padding, and horizontal scrollbars (if rendered). It does\nnot include the height of pseudo-elements such as `::before` or\n`::after`. For the document body object, the measurement includes total\nlinear content height instead of the element's CSS height. Floated elements extending\nbelow other linear content are ignored.\n\nIf the element is hidden (for example, by setting `style.display` on the\nelement or one of its ancestors to `\"none\"`), then `0` is\nreturned.\n\n> **Note:** This property will round the value to an integer. If you need a fractional value, use\n> [element.getBoundingClientRect].",
+ "offsetleft": "\n\nThe **`HTMLElement.offsetLeft`** read-only property returns the number of pixels that the _upper left corner_ of the current element is offset to the left within the [HTMLElement.offsetParent] node.\n\nFor block-level elements, `offsetTop`, `offsetLeft`, `offsetWidth`, and `offsetHeight` describe the border box of an element relative to the `offsetParent`.\n\nHowever, for inline-level elements (such as **span**) that can wrap from one line to the next, `offsetTop` and `offsetLeft` describe the positions of the _first_ border box (use [Element.getClientRects] to get its width and height), while `offsetWidth` and `offsetHeight` describe the dimensions of the _bounding_ border box (use [Element.getBoundingClientRect] to get its position). Therefore, a box with the left, top, width and height of `offsetLeft`, `offsetTop`, `offsetWidth` and `offsetHeight` will not be a bounding box for a span with wrapped text.",
+ "offsetparent": "\n\nThe **`HTMLElement.offsetParent`** read-only property returns a\nreference to the element which is the closest (nearest in the containment hierarchy)\npositioned ancestor element.\n\nA positioned ancestor is either:\n\n- an element with a non-static position, or\n- `td`, `th`, `table` in case the element itself is static positioned.\n\nIf there is no positioned ancestor element, the `body` is returned.\n\n> **Note:** `offsetParent` returns `null` in the following\n> situations:\n>\n> - The element or any ancestor has the `display` property set to\n> `none`.\n> - The element has the `position` property set to `fixed`\n> (Firefox returns `<body>`).\n> - The element is `<body>` or `<html>`.\n\n`offsetParent` is useful because\n[HTMLElement.offsetTop] and\n[HTMLElement.offsetLeft] are relative to its padding edge.",
+ "offsettop": "\n\nThe **`HTMLElement.offsetTop`** read-only property returns the\ndistance from the outer border of the current element (including its margin) to the top padding edge of the [HTMLelement.offsetParent], the _closest positioned_\nancestor element.",
+ "offsetwidth": "\n\nThe **`HTMLElement.offsetWidth`** read-only property returns\nthe layout width of an element as an integer.\n\nTypically, `offsetWidth` is a measurement in pixels of the element's CSS\nwidth, including any borders, padding, and vertical scrollbars (if rendered). It does\nnot include the width of pseudo-elements such as `::before` or\n`::after`.\n\nIf the element is hidden (for example, by setting `style.display` on the\nelement or one of its ancestors to `\"none\"`), then `0` is\nreturned.",
+ "outertext": "\n\nThe **`outerText`** property of the [HTMLElement] interface returns the same value as [HTMLElement.innerText].\nWhen used as a setter it replaces the whole current node with the given text (this differs from `innerText`, which replaces the content _inside_ the current node).\n\nSee [HTMLElement.innerText] for more information and examples showing how both properties are used as getters.",
+ "paste_event": "\n\nThe **`paste`** event fires when the user initiates a paste action through the browser's user interface.",
+ "popover": "\n\nThe **`popover`** property of the [HTMLElement] interface gets and sets an element's popover state via JavaScript (`\"auto\"` or `\"manual\"`), and can be used for feature detection.\n\nIt reflects the value of the [`popover`](/en-US/docs/Web/HTML/Global_attributes/popover) global HTML attribute.",
+ "showpopover": "\n\nThe **`showPopover()`** method of the [HTMLElement] interface shows a [Popover_API] element (i.e. one that has a valid [`popover`](/en-US/docs/Web/HTML/Global_attributes/popover) attribute) by adding it to the .\n\nWhen `showPopover()` is called on an element with the [`popover`](/en-US/docs/Web/HTML/Global_attributes/popover) attribute that is currently hidden, a [HTMLElement/beforetoggle_event] event will be fired, followed by the popover showing, and then the [HTMLElement/toggle_event] event firing. If the element is already showing, an error will be thrown.",
+ "spellcheck": "\n\nThe **`spellcheck`** property of the [HTMLElement] interface represents a boolean value that controls the [spell-checking](/en-US/docs/Web/HTML/Global_attributes/spellcheck) hint. It is available on all HTML elements, though it doesn't affect all of them.\n\nIt reflects the value of the [`spellcheck`](/en-US/docs/Web/HTML/Global_attributes/spellcheck) HTML global attribute.",
+ "style": "\n\nThe read-only **`style`** property of the [HTMLElement] 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`](/en-US/docs/Web/HTML/Global_attributes/style) attribute.\n\nShorthand properties are expanded. If you set `style=\"border-top: 1px solid black\"`, the longhand properties (, , and ) are set instead.\n\nThis 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\nTherefore, 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\nA style declaration is reset by setting it to `null` or an empty string, e.g., `elt.style.color = null`.\n\n> **Note:** CSS 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 : `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.",
+ "tabindex": "\n\nThe **`tabIndex`** property of the\n[HTMLElement] interface represents the tab order of the current element.\n\nTab order is as follows:\n\n1. Elements with a positive `tabIndex`. Elements that have identical\n `tabIndex` values should be navigated in the order they appear. Navigation\n proceeds from the lowest `tabIndex` to the highest `tabIndex`.\n2. Elements that do not support the `tabIndex` attribute or support it and\n assign `tabIndex` to `0`, in the order they appear.\n\nElements that are disabled do not participate in the tabbing order.\n\nValues don't need to be sequential, nor must they begin with any particular value. They\nmay even be negative, though each browser trims very large values.",
+ "title": "\n\nThe **`HTMLElement.title`** property\nrepresents the title of the element: the text usually displayed in a 'tooltip' popup\nwhen the mouse is over the node.",
+ "toggle_event": "\n\nThe **`toggle`** event of the [HTMLElement] interface fires on a [Popover_API] element (i.e. one that has a valid [`popover`](/en-US/docs/Web/HTML/Global_attributes/popover) attribute) just after it is shown or hidden.\n\n- If the popover element is transitioning from hidden to showing, the `event.oldState` property will be set to `closed` and the `event.newState` property will be set to `open`.\n- If the popover element is transitioning from showing to hidden, then `event.oldState` will be `open` and `event.newState` will be `closed`.\n\n> **Note:** The `toggle` event behaves differently when fired on `details` elements. In this case, it does not relate to popovers, and instead fires when the `open`/`closed` state of a `<details>` element is toggled. See the `HTMLDetailsElement` [HTMLDetailsElement.toggle_event] page for more information.",
+ "togglepopover": "\n\nThe **`togglePopover()`** method of the [HTMLElement] interface toggles a [Popover_API] element (i.e. one that has a valid [`popover`](/en-US/docs/Web/HTML/Global_attributes/popover) attribute) between the hidden and showing states.\n\nWhen `togglePopover()` is called on an element with the [`popover`](/en-US/docs/Web/HTML/Global_attributes/popover) attribute:\n\n1. A [HTMLElement/beforetoggle_event] event is fired.\n2. The popover toggles between hidden and showing:\n 1. If it was initially showing, it toggles to hidden.\n 2. If it was initially hidden, it toggles to showing.\n3. A [HTMLElement/toggle_event] event is fired.",
+ "translate": "\n\nThe **`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\nIt reflects the value of the [`translate`](/en-US/docs/Web/HTML/Global_attributes/translate) HTML global attribute.",
+ "virtualkeyboardpolicy": "\n\nThe **`virtualKeyboardPolicy`** property of the [HTMLElement] interface gets and sets a string indicating the on-screen virtual keyboard behavior on devices such as tablets, mobile phones, or other devices where a hardware keyboard may not be available, if the element's content is editable (for example, it is an `input` or `textarea` element, or an element with the [`contenteditable`](/en-US/docs/Web/HTML/Global_attributes/contenteditable) attribute set).\n\nIt reflects the value of the [`virtualkeyboardpolicy`](/en-US/docs/Web/HTML/Global_attributes/virtualkeyboardpolicy) HTML global attribute."
+ }
+ },
+ "htmlembedelement": {
+ "docs": "\n\nThe **`HTMLEmbedElement`** interface provides special properties (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating `embed` elements.\n\n> **Note:** This topic describes the `HTMLEmbedElement` interface as defined in the standard. It does not address earlier, non-standardized version of the interface.\n\n"
+ },
+ "htmlfieldsetelement": {
+ "docs": "\n\nThe **`HTMLFieldSetElement`** interface provides special properties and methods (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating the layout and presentation of `fieldset` elements.\n\n"
+ },
+ "htmlfontelement": {
+ "docs": "\n\nImplements the document object model (DOM) representation of the font element. The HTML Font Element `font` defines the font size, font face and color of text.\n\n",
+ "properties": {
+ "color": "\n\nThe obsolete\n**`HTMLFontElement.color`**\nproperty is a string that reflects the [`color`](/en-US/docs/Web/HTML/Element/font#color) HTML attribute, containing either a named color or a color specified in the\nhexadecimal #RRGGBB format.\n\nThe format of the string must follow one of the following HTML microsyntaxes:\n\n| Microsyntax | Description | Examples |\n| ------------------------ | ---------------------------------------------------------------- | ------------------------- |\n| Valid name color string | _nameOfColor (case insensitive)_ | `Green`, `green`, `GREEN` |\n| Valid hex color string | _in_ _: #RRGGBB_ | `#008000` |\n| RGB using decimal values | _rgb(x,x,x) (x in 0-255 range)_ | `rgb(0,128,0)` |",
+ "face": "\n\nThe obsolete\n**`HTMLFontElement.face`**\nproperty is a string that reflects the [`face`](/en-US/docs/Web/HTML/Element/font#face) HTML attribute, containing a comma-separated list of one or more font\nnames.\n\nThe document text, in the default style, is rendered as the first font face that the\nclient's browser supports. If no font listed is installed on the local system, the\nbrowser typically defaults to the proportional or fixed-width font for that system.\n\nThe format of the string must follow one of the following HTML microsyntax:\n\n| Microsyntax | Description | Examples |\n| ------------------------------------------- | ------------------------------------------------------------------- | ----------------- |\n| List of one or more valid font family names | _A list of font names, that have to be present on the local system_ | `courier,verdana` |",
+ "size": "\n\nThe obsolete\n**`HTMLFontElement.size`** property is a\nstring that reflects the [`size`](/en-US/docs/Web/HTML/Element/font#size) HTML\nattribute. It contains either a font size ranging from 1 to 7 or a\nnumber relative to the default value 3, for example -2 or +1.\n\nThe format of the string must follow one of the following HTML microsyntaxes:\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th scope=\"col\">Microsyntax</th>\n <th scope=\"col\">Description</th>\n <th scope=\"col\">Examples</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>Valid size number string</td>\n <td><em>integer number in the range of 1-7</em></td>\n <td><code>6</code></td>\n </tr>\n <tr>\n <td>Relative size string</td>\n <td>\n <em>+x or -x, where x is a number relative to 3 (the result should be in the range of 1-7)</em>\n </td>\n <td>\n <code>+2<br />-1</code>\n </td>\n </tr>\n </tbody>\n</table>"
+ }
+ },
+ "htmlformcontrolscollection": {
+ "docs": "\n\nThe **`HTMLFormControlsCollection`** interface represents a _collection_ of HTML _form control elements_, returned by the [HTMLFormElement] interface's [HTMLFormElement.elements] property.\n\nThis interface replaces one method from [HTMLCollection], on which it is based.\n\n",
+ "properties": {
+ "nameditem": "\n\nThe **`HTMLFormControlsCollection.namedItem()`** method returns\nthe [RadioNodeList] or the [Element] in the collection whose\n`name` or `id` match the specified name, or `null` if\nno node matches.\n\nNote that this version of `namedItem()` hides the one inherited from\n[HTMLCollection]. Like that one, in JavaScript, using the array bracket\nsyntax with a `String`, like `collection[\"value\"]` is\nequivalent to `collection.namedItem(\"value\")`."
+ }
+ },
+ "htmlformelement": {
+ "docs": "\n\nThe **`HTMLFormElement`** interface represents a `form` element in the DOM. It allows access to—and, in some cases, modification of—aspects of the form, as well as access to its component elements.\n\n",
+ "properties": {
+ "acceptcharset": "\n\nThe **`HTMLFormElement.acceptCharset`** property represents a\nlist of the supported [character encodings](/en-US/docs/Glossary/Character_encoding) for the given `form` element. This list can be\ncomma-separated or space-separated.",
+ "action": "\n\nThe **`HTMLFormElement.action`** property represents the action\nof the `form` element.\n\nThe action of a form is the program that is executed on the server when the form is\nsubmitted. This property can be retrieved or set.",
+ "elements": "\n\nThe [HTMLFormElement] property\n**`elements`** returns an\n[HTMLFormControlsCollection] listing all the form controls contained in\nthe `form` element.\n\nIndependently, you can obtain just the\nnumber of form controls using the [HTMLFormElement.length]\nproperty.\n\nYou can access a particular form control in the returned collection by using either an\nindex or the element's `name` or `id` attributes.\n\nPrior to HTML 5, the returned object was an [HTMLCollection], on which\n`HTMLFormControlsCollection` is based.\n\n> **Note:** Similarly, you can get a list of all of the forms contained within a given document using the document's [Document.forms] property.",
+ "encoding": "\n\nThe **`HTMLFormElement.encoding`** property is an alternative name for the [HTMLFormElement.enctype] element on the DOM [HTMLFormElement] object.",
+ "enctype": "\n\nThe **`HTMLFormElement.enctype`** property is the [MIME type](https://en.wikipedia.org/wiki/Mime_type) of content that is used\nto submit the form to the server. Possible values are:\n\n- `application/x-www-form-urlencoded`: The initial default type.\n- `multipart/form-data`: The type that allows file `input`\n element(s) to upload file data.\n- `text/plain`: Ambiguous format, human-readable content not reliably interpretable by computer.\n\nThis value can be overridden by a [`formenctype`](/en-US/docs/Web/HTML/Element/button#formenctype) attribute\non a `button` or `input` element.",
+ "formdata_event": "\n\nThe **`formdata`** event fires after the entry list representing the form's data is constructed. This happens when the form is submitted, but can also be triggered by the invocation of a [FormData.FormData] constructor.\n\nThis event is not cancelable and does not bubble.",
+ "length": "\n\nThe **`HTMLFormElement.length`**\nread-only property returns the number of controls in the `form`\nelement.\n\nYou can access the list of the form's controls using the\n[HTMLFormElement.elements] property.\n\nThis includes both elements that are descendants of the `<form>`\nelement as well as elements that are made members of the form using their\n`form` property.\n\nElements that are considered for this property are: `button`,\n`fieldset`, `input` (with the exception\nthat any whose type is \"image\" are omitted for historical reasons),\n`object`, `output`, `select`,\nand `textarea`.",
+ "method": "\n\nThe **`HTMLFormElement.method`** property represents the\n method used to submit the `form`.\n\nUnless explicitly specified, the default method is 'get'.",
+ "name": "\n\nThe **`HTMLFormElement.name`** property represents the name of\nthe current `form` element as a string.\n\nIf your `Form` element contains an element named _name_ then\nthat element overrides the `form.name` property, so that you can't access it.",
+ "reportvalidity": "\n\nThe **`HTMLFormElement.reportValidity()`** method returns\n`true` if the element's child controls satisfy their validation constraints.\nWhen `false` is returned, cancelable\n[`invalid`](/en-US/docs/Web/API/HTMLInputElement/invalid_event) events are fired for\neach invalid child and validation problems are reported to the user.",
+ "requestsubmit": "\n\nThe [HTMLFormElement] method **`requestSubmit()`** requests\nthat the form be submitted using a specific submit button.",
+ "reset": "\n\nThe **`HTMLFormElement.reset()`** method restores a form\nelement's default values. This method does the same thing as clicking the form's\n[`<input type=\"reset\">`](/en-US/docs/Web/HTML/Element/input/reset) control.\n\nIf a form control (such as a reset button) has a name or id of _reset_ it will\nmask the form's reset method. It does not reset other attributes in the input, such as\n`disabled`.\n\nNote that if [Element.setAttribute] is called to set\nthe value of a particular attribute, a subsequent call to `reset()` won't\nreset the attribute to its default value, but instead will keep the attribute at\nwhatever value the [Element.setAttribute] call set it to.",
+ "reset_event": "\n\nThe **`reset`** event fires when a `form` is reset.",
+ "submit": "\n\nThe **`HTMLFormElement.submit()`** method submits a given\n`form`.\n\nThis method is similar, but not identical to, activating a form's submit\n`button`. When invoking this method directly, however:\n\n- No [HTMLFormElement/submit_event] event is raised. In particular, the form's `onsubmit` event handler is not run.\n- [Constraint validation](/en-US/docs/Web/HTML/Constraint_validation) is not triggered.\n\nThe [HTMLFormElement.requestSubmit] method is identical to activating a\nform's submit `button` and does not have these differences.\n\nA form control (such as a submit button) with a `name` or `id` of `submit` will mask the form's `submit` method. Trying to call `myForm.submit();` throws an error \"submit is not a function\" because in this case `submit` refers to the form control which has a `name` or `id` of `submit`.\n\n`input` with attribute type=\"submit\" will not be submitted with the\nform when using **`HTMLFormElement.submit()`**, but it would be\nsubmitted when you do it with original HTML form submit.",
+ "submit_event": "\n\nThe **`submit`** event fires when a `form` is submitted.\n\nNote that the `submit` event fires on the `<form>` element itself, and not on any `button` or `` inside it. However, the [SubmitEvent] which is sent to indicate the form's submit action has been triggered includes a [SubmitEvent.submitter] property, which is the button that was invoked to trigger the submit request.\n\nThe `submit` event fires when:\n\n- the user clicks a ,\n- the user presses <kbd>Enter</kbd> while editing a field (e.g. ) in a form,\n- a script calls the [HTMLFormElement.requestSubmit] method\n\nHowever, the event is _not_ sent to the form when a script calls the [HTMLFormElement.submit] method directly.\n\n> **Note:** Trying to submit a form that does not pass [validation](/en-US/docs/Learn/Forms/Form_validation) triggers an [HTMLInputElement/invalid_event] event. In this case, the validation prevents form submission, and thus there is no `submit` event.",
+ "target": "\n\nThe **`target`** property of the [HTMLFormElement]\ninterface represents the target of the form's action (i.e., the frame in which to render\nits output)."
+ }
+ },
+ "htmlframesetelement": {
+ "docs": "\n\nThe **`HTMLFrameSetElement`** interface provides special properties (beyond those of the regular [HTMLElement] interface they also inherit) for manipulating `frameset` elements.\n\n"
+ },
+ "htmlheadelement": {
+ "docs": "\n\nThe **`HTMLHeadElement`** interface contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the [HTMLElement] interface.\n\n"
+ },
+ "htmlheadingelement": {
+ "docs": "\n\nThe **`HTMLHeadingElement`** interface represents the different heading elements, [`<h1>` through `<h6>`](/en-US/docs/Web/HTML/Element/Heading_Elements). It inherits methods and properties from the [HTMLElement] interface.\n\n"
+ },
+ "htmlhrelement": {
+ "docs": "\n\nThe **`HTMLHRElement`** interface provides special properties (beyond those of the [HTMLElement] interface it also has available to it by inheritance) for manipulating `hr` elements.\n\n"
+ },
+ "htmlhtmlelement": {
+ "docs": "\n\nThe **`HTMLHtmlElement`** interface serves as the root node for a given HTML document. This object inherits the properties and methods described in the [HTMLElement] interface.\n\nYou can retrieve the `HTMLHtmlElement` object for a given document by reading the value of the [document.documentElement] property.\n\n",
+ "properties": {
+ "version": " \n\n> **Note:** This property has been declared as deprecated by the W3C technical recommendation for HTML 4.01 in favor of use of the DTD for obtaining version information for a document.\n\nReturns version information about the document type definition (DTD) of a document. While this property is recognized by Mozilla, the return value for this property is always an empty string."
+ }
+ },
+ "htmliframeelement": {
+ "docs": "\n\nThe **`HTMLIFrameElement`** interface provides special properties and methods (beyond those of the [HTMLElement] interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements.\n\n",
+ "properties": {
+ "allowpaymentrequest": "\n\nThe **`allowPaymentRequest`** property of the\n[HTMLIFrameElement] interface returns a boolean value indicating\nwhether the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) may be invoked on a cross-origin iframe.",
+ "contentdocument": "\n\nIf the iframe and the iframe's parent document are [Same Origin](/en-US/docs/Web/Security/Same-origin_policy), returns a [`Document`](/en-US/docs/Web/API/Document) (that is, the active document in the inline frame's nested browsing context), else returns `null`.",
+ "contentwindow": "\n\nThe **`contentWindow`** property returns the [Window](/en-US/docs/Web/API/Window) object of an [HTMLIFrameElement](/en-US/docs/Web/API/HTMLIFrameElement).\n\nThis attribute is read-only.",
+ "credentialless": "\n\nThe **`credentialless`** property of the [HTMLIFrameElement] interface indicates whether the `iframe` is credentialless, meaning that documents inside will be loaded using new, ephemeral contexts.\n\nThose contexts do not have access to their network, cookies and storage data associated with their origin. Instead, they use new ones, local to the top-level document lifetime. It means any data stored won't be accessible anymore after the user navigates away from the page or reloads it.\n\nIn return, the (COEP) embedding rules can be lifted, so documents with COEP set can embed third-party documents that do not. See [IFrame credentialless](/en-US/docs/Web/Security/IFrame_credentialless) for a deeper explanation.",
+ "csp": "\n\nThe **`csp`** property of the [HTMLIFrameElement]\ninterface specifies the [Content Security Policy](/en-US/docs/Web/HTTP/CSP) that an\nembedded document must agree to enforce upon itself.",
+ "featurepolicy": "\n\nThe **`featurePolicy`** read-only\nproperty of the [HTMLIFrameElement] interface returns the\n[FeaturePolicy] interface which provides a simple API for introspecting\nthe [Permissions Policies](/en-US/docs/Web/HTTP/Permissions_Policy) applied to a specific frame.",
+ "loading": "\n\nThe **`loading`** property of the [HTMLIFrameElement] interface is a string that provides a hint to the indicating whether the [iframe](/en-US/docs/Web/HTML/Element/iframe) should be loaded immediately on page load, or only when it is needed.\n\nThis can be used to optimize the loading of the document's contents.\nIframes that are visible when the page loads can be downloaded immediately (eagerly), while iframes that are likely to be offscreen on initial page load can be downloaded lazily — just before they will appear in the window's .",
+ "referrerpolicy": "\n\nThe\n**`HTMLIFrameElement.referrerPolicy`**\nproperty reflects the HTML [`referrerpolicy`](/en-US/docs/Web/HTML/Element/iframe#referrerpolicy) attribute of the\n`iframe` element defining which referrer is sent when fetching the\nresource.",
+ "src": "\n\nThe **`HTMLIFrameElement.src`**\nA string that reflects the [`src`](/en-US/docs/Web/HTML/Element/iframe#src) HTML attribute, containing the address of the content to be embedded.\n\nNote that programmatically removing an `<iframe>`'s src attribute (e.g. via [Element.removeAttribute]) causes `about:blank` to be loaded in the frame.",
+ "srcdoc": "\n\nThe **`srcdoc`** property of the [HTMLIFrameElement] specifies the content of the page."
+ }
+ },
+ "htmlimageelement": {
+ "docs": "\n\nThe **`HTMLImageElement`** interface represents an HTML `img` element, providing the properties and methods used to manipulate image elements.\n\n",
+ "properties": {
+ "align": "\n\nThe _obsolete_ **`align`**\nproperty of the [HTMLImageElement] interface is a string which indicates\nhow to position the image relative to its container.\n\nYou should instead use the\nCSS property , which does in fact also work on images\ndespite its name. You can also use the `float` property to float the image\nto the left or right margin.\n\nThe `align` property reflects the HTML [`align`](/en-US/docs/Web/HTML/Element/img#align)\ncontent attribute.",
+ "alt": "\n\nThe [HTMLImageElement] property **`alt`** provides fallback (alternate) text to display when the image specified by the `img` element is not loaded.\n\nThis may be the case because of an error, because the user has disabled the loading of images, or because the image hasn't finished loading yet.\n\nPerhaps the most important reason to use the `alt` property is to support [accessibility](/en-US/docs/Web/Accessibility), as the `alt` text may be used by screen readers and other assistive technologies to help people with a disability make full use of your content.\nIt will be read aloud or sent to a braille output device, for example, to support blind or visually impaired users.\n\n> **Think of it like this:** When choosing `alt` strings for your images, imagine what you would say when reading the page to someone over the phone without mentioning that there's an image on the page.\n\nThe alternate text is displayed in the space the image would occupy and should be able to take the place of the image _without altering the meaning of the page_.",
+ "border": "\n\nThe obsolete [HTMLImageElement]\nproperty **`border`** specifies the number of pixels thick the\nborder surrounding the image should be. A value of 0, the default, indicates that no\nborder should be drawn.\n\nYou should _not_ use this property! Instead, you should use CSS to style the\nborder. The `border` property or its longhand properties to not only set\nthe thickness of the border but to potentially apply a wide variety of other styling\noptions to it.\n\nThe width, specifically, is controlled using the writing-mode aware\n, ,\n, and \nproperties.\n\nFor compatibility (or perhaps other) reasons, you can use the older properties instead\n(or in addition): , ,\n, and .",
+ "complete": "\n\nThe read-only [HTMLImageElement] interface's\n**`complete`** attribute is a Boolean value which indicates\nwhether or not the image has completely loaded.",
+ "crossorigin": "\n\nThe [HTMLImageElement]\ninterface's **`crossOrigin`** attribute is a string which\nspecifies the Cross-Origin Resource Sharing () setting to use when\nretrieving the image.",
+ "currentsrc": "\n\nThe read-only [HTMLImageElement] property\n**`currentSrc`** indicates the URL of the image which is\ncurrently presented in the `img` element it represents.",
+ "decode": "\n\nThe **`decode()`**\nmethod of the [HTMLImageElement] interface returns a\n`Promise` that resolves once the image is decoded and it is safe to append\nit to the DOM.\n\nThis can be used to initiate loading of the image prior\nto attaching it to an element in the DOM (or adding it to the DOM as a new element), so\nthat the image can be rendered immediately upon being added to the DOM. This, in turn,\nprevents the rendering of the next frame after adding the image to the DOM from causing\na delay while the image loads.",
+ "decoding": "\n\nThe **`decoding`** property of the [HTMLImageElement] interface provides a hint to the browser as to how it should decode the image. More specifically, whether it should wait for the image to be decoded before presenting other content updates or not.",
+ "fetchpriority": "\n\nThe **`fetchPriority`** property of the\n[HTMLImageElement] interface represents a hint given to the browser on how\nit should prioritize the fetch of the image relative to other images.",
+ "height": "\n\nThe **`height`** property of the\n[HTMLImageElement] interface indicates the height at which the image is\ndrawn, in if the image is being drawn or rendered to any\nvisual medium such as the screen or a printer; otherwise, it's the natural, pixel\ndensity corrected height of the image.",
+ "hspace": "\n\nThe\n_obsolete_ **`hspace`** property of the\n[HTMLImageElement] interface specifies the number of pixels of empty\nspace to leave empty on the left and right sides of the `img` element\nwhen laying out the page.\n\nThis property reflects the [`hspace`](/en-US/docs/Web/HTML/Element/img#hspace)\nattribute.",
+ "image": "\n\nThe **`Image()`**\nconstructor creates a new [HTMLImageElement] instance. It is functionally\nequivalent to [Document.createElement].\n\n> **Note:** This function should not be confused with the CSS [`image()`](/en-US/docs/Web/CSS/image/image) function.",
+ "ismap": "\n\nThe [HTMLImageElement] property **`isMap`** is a\nBoolean value which indicates that the image is to be used by a server-side image map.\nThis may only be used on images located within an `a` element.\n\n> **Note:** For accessibility reasons, you should generally avoid using\n> server-side image maps, as they require the use of a mouse. Use a [client-side image map](/en-US/docs/Learn/HTML/Howto/Add_a_hit_map_on_top_of_an_image) instead.",
+ "loading": "\n\nThe [HTMLImageElement] property **`loading`** is a string whose value provides a hint to the on how to handle the loading of the image which is currently outside the window's .\n\nThis helps to optimize the loading of the document's contents by postponing loading the image until it's expected to be needed, rather than immediately during the initial page load.",
+ "longdesc": "\n\nThe _deprecated_ property **`longDesc`** on\nthe [HTMLImageElement] interface specifies the URL of a text or HTML file\nwhich contains a long-form description of the image. This can be used to\nprovide optional added details beyond the short description provided in the\n[`title`](/en-US/docs/Web/HTML/Global_attributes#title) attribute.",
+ "name": "\n\nThe [HTMLImageElement]\ninterface's _deprecated_ **`name`** property specifies\na name for the element. This has been replaced by the [Element.id]\nproperty available on all elements.",
+ "naturalheight": "\n\nThe [HTMLImageElement] interface's\n**`naturalHeight`** property is a read-only value which\nreturns the intrinsic (natural), density-corrected height of the image in\n.\n\nThis is the height the image is if\ndrawn with nothing constraining its height; if you don't specify a height for the image,\nor place the image inside a container that either limits or expressly specifies the\nimage height, it will be rendered this tall.\n\n> **Note:** Most of the time the natural height is the actual height of the image sent by the server.\n> Nevertheless, browsers can modify an image before pushing it to the renderer. For example, Chrome\n> [degrades the resolution of images on low-end devices](https://crbug.com/1187043#c7). In such cases, `naturalHeight` will consider the height of the image modified\n> by such browser interventions as the natural height, and returns this value.",
+ "naturalwidth": "\n\nThe [HTMLImageElement] interface's read-only\n**`naturalWidth`** property returns the intrinsic (natural),\ndensity-corrected width of the image in .\n\nThis is the width the image is if drawn with nothing constraining\nits width; if you neither specify a width for the image nor place the image inside a\ncontainer that limits or expressly specifies the image width, this is the number of CSS\npixels wide the image will be.\n\nThe corresponding [HTMLImageElement.naturalHeight] method\nreturns the natural height of the image.\n\n> **Note:** Most of the time the natural width is the actual width of the image sent by the server.\n> Nevertheless, browsers can modify an image before pushing it to the renderer. For example, Chrome\n> [degrades the resolution of images on low-end devices](https://crbug.com/1187043#c7). In such cases, `naturalWidth` will consider the width of the image modified\n> by such browser interventions as the natural width, and returns this value.",
+ "referrerpolicy": "\n\nThe\n**`HTMLImageElement.referrerPolicy`**\nproperty reflects the HTML [`referrerpolicy`](/en-US/docs/Web/HTML/Element/img#referrerpolicy) attribute of the\n`img` element defining which referrer is sent when fetching the\nresource.",
+ "sizes": "\n\nThe [HTMLImageElement] property\n**`sizes`** allows you to specify the layout width of the\nimage for each of a list of media conditions. This provides the ability to\nautomatically select among different images—even images of different orientations or\naspect ratios—as the document state changes to match different media\nconditions.\n\nEach condition is specified using the same conditional format used\nby [media queries](/en-US/docs/Web/CSS/CSS_media_queries).",
+ "src": "\n\nThe [HTMLImageElement] property\n**`src`**, which reflects the HTML [`src`](/en-US/docs/Web/HTML/Element/img#src) attribute, specifies the image to display in the `img`\nelement.",
+ "srcset": "\n\nThe [HTMLImageElement] property\n**`srcset`** is a string which identifies one or more\n**image candidate strings**, separated using commas (`,`) each\nspecifying image resources to use under given circumstances.\n\nEach image\ncandidate string contains an image URL and an optional width or pixel density descriptor\nthat indicates the conditions under which that candidate should be used instead of the\nimage specified by the [HTMLImageElement.src] property.\n\nThe `srcset` property, along with the [HTMLImageElement.sizes] property, are a crucial component in designing responsive websites, as they\ncan be used together to make pages that use appropriate images for the rendering\nsituation.\n\n> **Note:** If the [`srcset`](/en-US/docs/Web/HTML/Element/img#srcset) attribute uses width descriptors, the `sizes` attribute must also be present, or the `srcset` itself will be ignored.",
+ "usemap": "\n\nThe **`useMap`** property on the\n[HTMLImageElement] interface reflects the value of the\n [`usemap`](/en-US/docs/Web/HTML/Element/img#usemap) attribute, which is a string\nproviding the name of the client-side image map to apply to the image.",
+ "vspace": "\n\nThe _obsolete_ **`vspace`** property of the\n[HTMLImageElement] interface specifies the number of pixels of empty space\nto leave empty on the top and bottom of the `img` element when laying\nout the page.",
+ "width": "\n\nThe **`width`** property of the\n[HTMLImageElement] interface indicates the width at which an image is\ndrawn in if it's being drawn or rendered to\nany visual medium such as a screen or printer. Otherwise, it's the natural, pixel\ndensity-corrected width of the image.",
+ "x": "\n\nThe read-only [HTMLImageElement] property\n**`x`** indicates the x-coordinate of the\n`img` element's left border edge relative to the root element's\norigin.\n\nThe `x` and [HTMLImageElement.y] properties are only valid\nfor an image if its `display` property has the computed value\n`table-column` or `table-column-group`. In other words: it has\neither of those values set explicitly on it, or it has inherited it from a containing\nelement, or by being located within a column described by either `col`\nor `colgroup`.",
+ "y": "\n\nThe read-only [HTMLImageElement] property\n**`y`** indicates the y-coordinate of the\n`img` element's top border edge relative to the root element's\norigin.\n\nThe [HTMLImageElement.x] and `y` properties are only valid\nfor an image if its `display` property has the computed value\n`table-column` or `table-column-group`. In other words: it has\neither of those values set explicitly on it, or it has inherited it from a containing\nelement, or by being located within a column described by either\n`col` or `colgroup`."
+ }
+ },
+ "htmlinputelement": {
+ "docs": "\n\nThe **`HTMLInputElement`** interface provides special properties and methods for manipulating the options, layout, and presentation of `input` elements.\n\n",
+ "properties": {
+ "checkvalidity": "\n\nThe **`HTMLInputElement.checkValidity()`** method returns a boolean value which indicates validity of the value of the element. If the value is invalid, this method also fires the [HTMLInputElement/invalid_event] event on the element.",
+ "disabled": "\n\nThe **`HTMLInputElement.disabled`** property is a boolean value that reflects the [`disabled`](/en-US/docs/Web/HTML/Element/input#disabled) HTML attribute, which indicates whether the control is disabled. If it is disabled, it does not accept clicks. A disabled element is unusable and un-clickable.",
+ "files": "\n\nThe **`HTMLInputElement.files`** property allows you to access the [FileList] selected with the [`<input type=\"file\">`](/en-US/docs/Web/HTML/Element/input/file) element.",
+ "invalid_event": "\n\nThe **`invalid`** event fires when a submittable element has been checked for validity and doesn't satisfy its constraints.\n\nThis event can be useful for displaying a summary of the problems with a form on submission. When a form is submitted, `invalid` events are fired at each form control that is invalid. The validity of submittable elements is checked before submitting their owner `form`, or after the [`checkValidity()`](/en-US/docs/Web/API/HTMLInputElement/checkValidity) method of the element or its owner `<form>` is called.\n\nIt is not checked on [Element/blur_event].",
+ "labels": "\n\nThe **`HTMLInputElement.labels`** read-only property returns a\n[NodeList] of the `label` elements associated with the\n`input` element, if the element is not hidden. If the element has the\ntype `hidden`, the property returns `null`.",
+ "multiple": "\n\nThe **`HTMLInputElement.multiple`** property indicates if an input can have more than one value. Firefox currently only supports `multiple` for `<input type=\"file\">`.",
+ "popovertargetaction": "\n\nThe **`popoverTargetAction`** property of the [HTMLInputElement] interface gets and sets the action to be performed (`\"hide\"`, `\"show\"`, or `\"toggle\"`) on a popover element being controlled by an `input` element of `type=\"button\"`.\n\nIt reflects the value of the [`popovertargetaction`](/en-US/docs/Web/HTML/Element/button#popovertargetaction) HTML attribute.",
+ "popovertargetelement": "\n\nThe **`popoverTargetElement`** property of the [HTMLInputElement] interface gets and sets the popover element to control via an `input` element of `type=\"button\"`.\n\nIt is the JavaScript equivalent of the [`popovertarget`](/en-US/docs/Web/HTML/Element/button#popovertarget) HTML attribute.",
+ "reportvalidity": "\n\nThe **`reportValidity()`** method of the [HTMLInputElement] interface performs the same validity checking steps as the [HTMLInputElement.checkValidity] method. If the value is invalid, this method also fires the [HTMLInputElement.invalid_event] event on the element, and (if the event isn't canceled) reports the problem to the user.",
+ "search_event": "\n\nThe **`search`** event is fired when a search is initiated using an `input` element of `type=\"search\"`.\n\nThere are several ways a search can be initiated, such as by pressing <kbd>Enter</kbd> while the `input` is focused, or, if the [`incremental`](/en-US/docs/Web/HTML/Element/input#incremental) attribute is present, after a UA-defined timeout elapses since the most recent keystroke (with new keystrokes resetting the timeout so the firing of the event is debounced).\n\nCurrent UA implementations of `<input type=\"search\">` have an additional control to clear the field. Using this control also fires the `search` event. In that case the `value` of the `input` element will be the empty string.\n\nThis event is not cancelable.",
+ "select": "\n\nThe **`HTMLInputElement.select()`** method selects all the text\nin a `textarea` element or in an `input` element\nthat includes a text field.",
+ "select_event": "\n\nThe **`select`** event fires when some text has been selected.",
+ "selectionchange_event": "\n\nThe **`selectionchange`** event of the [Selection API](/en-US/docs/Web/API/Selection) 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.\n\nThis event is not cancelable.\n\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.\n\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.",
+ "setcustomvalidity": "\n\nThe **`HTMLInputElement.setCustomValidity()`** method sets a custom validity message for the element.",
+ "setrangetext": "\n\nThe **`HTMLInputElement.setRangeText()`** method replaces a\nrange of text in an `input` or `textarea` element with\na new string.",
+ "setselectionrange": "\n\nThe **`HTMLInputElement.setSelectionRange()`** method sets the\nstart and end positions of the current text selection in an `input`\nor `textarea` element.\n\nOptionally, in newer browser versions, you can specify the direction in which selection\nshould be considered to have occurred. This lets you indicate, for example, that the\nselection was set by the user clicking and dragging from the end of the selected text\ntoward the beginning.\n\nThis method updates the `HTMLInputElement.selectionStart`,\n`selectionEnd`, and `selectionDirection` properties in one call.\n\nNote that according to the [WHATWG forms spec](https://html.spec.whatwg.org/multipage/forms.html#concept-input-apply) `selectionStart`, `selectionEnd` properties and\n`setSelectionRange` method apply only to inputs of types text, search, URL,\ntel and password. Chrome, starting from version 33, throws an exception while accessing\nthose properties and method on the rest of input types. For example, on input of type\nnumber: \"Failed to read the 'selectionStart' property from 'HTMLInputElement': The input\nelement's type ('number') does not support selection\".\n\nIf you wish to select **all** text of an input element, you can use the [HTMLInputElement.select()](/en-US/docs/Web/API/HTMLInputElement/select)\nmethod instead.",
+ "showpicker": "\n\nThe **`HTMLInputElement.showPicker()`** method displays the browser picker for an `input` element.\n\nThis is the same picker that would normally be displayed when the element is selected, but can be triggered from a button press or other user interaction.\n\nCommonly browsers implement it for inputs of these types: `\"date\"`, `\"month\"`, `\"week\"`, `\"time\"`, `\"datetime-local\"`, `\"color\"`, or `\"file\"`.\nIt can also be prepopulated with items from a `datalist` element or [`autocomplete`](/en-US/docs/Web/HTML/Attributes/autocomplete) attribute.\n\nMore generally, this method should ideally display the picker for any input element on the platform that has a picker.",
+ "stepdown": "\n\nThe\n**`HTMLInputElement.stepDown([n])`** method decrements the\nvalue of a numeric type of `input` element by the value of the\n[`step`](/en-US/docs/Web/HTML/Attributes/step) attribute or up\nto `n` multiples of the step attribute if a number is passed as the\nparameter.\n\nThe method, when invoked, decrements the\n[`value`](/en-US/docs/Web/HTML/Element/input#value) by ([`step`](/en-US/docs/Web/HTML/Element/input#step) \\* n), where n\ndefaults to 1 if not specified, and\n[`step`](/en-US/docs/Web/HTML/Attributes/step) defaults to the\ndefault value for `step` if not specified.\n\nValid on all numeric, date, and time input types that support the step attribute,\nincluding `date`, `month`,\n`week`, `time`,\n, `number`, and `range`.\n\nGiven `<input id=\"myTime\" type=\"time\" max=\"17:00\" step=\"900\" value=\"17:00\">`,\ninvoking `myTime.stepDown(3)` will change the value to 16:15, decrementing the\ntime by `3 * 900`, or 45 minutes. `myTime.stepDown()`, with no\nparameter, would have resulted in `16:45`, as `n` defaults to\n`1`.\n\n```html\n<!-- decrements by intervals of 900 seconds (15 minute) -->\n<input type=\"time\" max=\"17:00\" step=\"900\" />\n\n<!-- decrements by intervals of 7 days (one week) -->\n<input type=\"date\" max=\"2019-12-25\" step=\"7\" />\n\n<!-- decrements by intervals of 12 months (one year) -->\n<input type=\"month\" max=\"2019-12\" step=\"12\" />\n```\n\nHowever, calling `stepDown` on `<input type=\"time\" max=\"17:00\" step=\"900\">` would not set the value to `17:00`, as one would expect — and as it does for `stepUp` when the input is `<input type=\"time\" min=\"17:00\" step=\"900\">`. Instead, the first call to `stepDown` will set the initial value to `23:45` even though the `max` attribute is set. The second call will set the value to `17:00`. And the third call to will set the value to `16:45`.\n\n```js\nlet input1 = document.createElement(\"input\");\ninput1.setAttribute(\"type\", \"time\");\ninput1.setAttribute(\"min\", \"17:00\");\ninput1.setAttribute(\"step\", 900);\nconsole.log(input1.value); // \"\"\ninput1.stepUp();\nconsole.log(input1.value); // \"17:00\"\n// However\nlet input2 = document.createElement(\"input\");\ninput2.setAttribute(\"type\", \"time\");\ninput2.setAttribute(\"max\", \"17:00\");\ninput2.setAttribute(\"step\", 900);\nconsole.log(input2.value); // \"\"\ninput2.stepDown();\nconsole.log(input2.value); // \"23:45\"\ninput2.stepDown();\nconsole.log(input2.value); // \"17:00\"\ninput2.stepDown();\nconsole.log(input2.value); // \"16:45\"\n```\n\nThe method, when invoked, changes the form control's value by the value given in the\n`step` attribute, multiplied by the parameter, within the constraints set\nwithin the form control. The default value for the parameter, if not is passed, is 1.\nThe method will not cause the value to go below the\n[`min`](/en-US/docs/Web/HTML/Attributes/min) value set or defy the\nconstraints set by the\n[`step`](/en-US/docs/Web/HTML/Attributes/step) attribute. A\nnegative value for `n` will increment the value, but will not increment\nbeyond the [`max`](/en-US/docs/Web/HTML/Attributes/max) value.\n\nIf the value before invoking the `stepDown()` method is invalid, for\nexample, if it doesn't match the constraints set by the `step` attribute,\ninvoking the `stepDown()` method will return a value that does match the form\ncontrols constraints.\n\nIf the form control is non time, date, or numeric in nature, and therefore does not\nsupport the `step` attribute (see the list of supported input types above), or if the `step` value is set to `any`, an\n`InvalidStateError` exception is thrown.\n\n- [HTMLInputElement.stepDown]\n\n - : Decrements the [`value`](/en-US/docs/Web/HTML/Element/input#value) by\n ([`step`](/en-US/docs/Web/HTML/Element/input#step) \\* n), where n defaults to 1 if not specified. Throws\n an `InvalidStateError` exception:\n\n - if the method is not applicable to for the current\n [`type`](/en-US/docs/Web/HTML/Element/input#type) value,\n - if the element has no [`step`](/en-US/docs/Web/HTML/Element/input#step) value,\n - if the [`value`](/en-US/docs/Web/HTML/Element/input#value) cannot be converted to a number,\n - if the resulting value is above the [`max`](/en-US/docs/Web/HTML/Element/input#max) or below the\n [`min`](/en-US/docs/Web/HTML/Element/input#min).",
+ "stepup": "\n\nThe **`HTMLInputElement.stepUp()`** method increments the value\nof a numeric type of `input` element by the value of the\n[`step`](/en-US/docs/Web/HTML/Attributes/step) attribute, or the\ndefault `step` value if the step attribute is not explicitly set. The method,\nwhen invoked, increments the [`value`](/en-US/docs/Web/HTML/Element/input#value) by\n([`step`](/en-US/docs/Web/HTML/Element/input#step) \\* n), where `n` defaults to\n`1` if not specified, and\n[`step`](/en-US/docs/Web/HTML/Attributes/step) defaults to the\ndefault value for `step` if not specified.\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th>Input type</th>\n <th>Default step value</th>\n <th>Example step declaration</th>\n </tr>\n <tr>\n <td>`date`</td>\n <td><code>1</code> (day)</td>\n <td>\n 7 day (one week) increments:<br />\n <code><input type=\"date\" min=\"2019-12-25\" step=\"7\"></code>\n </td>\n </tr>\n <tr>\n <td>`month`</td>\n <td><code>1</code> (month)</td>\n <td>\n 12 month (one year) increments:<br />\n <code><input type=\"month\" min=\"2019-12\" step=\"12\"></code>\n </td>\n </tr>\n <tr>\n <td>`week`</td>\n <td><code>1</code> (week)</td>\n <td>\n Two week increments:<br />\n <code><input type=\"week\" min=\"2019-W23\" step=\"2\"></code>\n </td>\n </tr>\n <tr>\n <td>`time`</td>\n <td><code>60</code> (seconds)</td>\n <td>\n 900 second (15 minute) increments:<br />\n <code><input type=\"time\" min=\"09:00\" step=\"900\"></code>\n </td>\n </tr>\n <tr>\n <td>\n \n </td>\n <td><code>1</code> (day)</td>\n <td>\n Same day of the week:<br />\n <code><input type=\"datetime-local\" min=\"019-12-25T19:30\"\n step=\"7\"></code>\n </td>\n </tr>\n <tr>\n <td>`number`</td>\n <td><code>1</code></td>\n <td>\n 0.1 increments<br />\n <code><input type=\"number\" min=\"0\" step=\"0.1\" max=\"10\"></code>\n </td>\n </tr>\n <tr>\n <td>`range`</td>\n <td><code>1</code></td>\n <td>\n Increments by 2:<br />\n <code><input type=\"range\" min=\"0\" step=\"2\" max=\"10\"></code>\n </td>\n </tr>\n </thead>\n</table>\n\nThe method, when invoked, changes the form control's value by the value given in the\n`step` attribute, multiplied by the parameter, within the constraints set on\nthe form control. The default value for the parameter, if no value is passed, is\n`1`. The method will not cause the value to exceed the\nset [`max`](/en-US/docs/Web/HTML/Attributes/max) value, or defy\nthe constraints set by the\n[`step`](/en-US/docs/Web/HTML/Attributes/step) attribute.\n\nIf the value before invoking the `stepUp()` method is invalid—for example,\nif it doesn't match the constraints set by the step attribute—invoking the\n`stepUp()` method will return a value that does match the form controls\nconstraints.\n\nIf the form control is non time, date, or numeric in nature, and therefore does not\nsupport the `step` attribute (see the list of supported input types in the\ntable above), or if the step value is set to `any`, an\n`InvalidStateError` exception is thrown.",
+ "webkitdirectory": "\n\nThe **`HTMLInputElement.webkitdirectory`** is a property\nthat reflects the [`webkitdirectory`](/en-US/docs/Web/HTML/Element/input/file#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 [HTMLInputElement.webkitEntries] property.\n\n> **Note:** This property is called `webkitEntries` in the specification due to its\n> origins as a Google Chrome-specific API. It's likely to be renamed someday.",
+ "webkitentries": "\n\nThe read-only **`webkitEntries`**\nproperty of the [HTMLInputElement] interface contains an array of file\nsystem entries (as objects based on [FileSystemEntry]) representing files\nand/or directories selected by the user using an `input` element of\ntype `file`, but only if that selection was made using drag-and-drop:\nselecting a file in the dialog will leave the property empty.\n\nThe array can only contain directories if the\n[HTMLInputElement.webkitdirectory] property is\n`true`. This means the `<input>` element was configured to\nlet the user choose directories.\n\n> **Note:** This property is called `webkitEntries` in the specification due to its\n> origins as a Google Chrome-specific API. It's likely to be renamed someday."
+ }
+ },
+ "htmllabelelement": {
+ "docs": "\n\nThe **`HTMLLabelElement`** interface gives access to properties specific to `label` elements. It inherits methods and properties from the base [HTMLElement] interface.\n\n",
+ "properties": {
+ "control": "\n\nThe read-only **`HTMLLabelElement.control`** property returns a\nreference to the control (in the form of an object of type [HTMLElement] or\none of its derivatives) with which the `label` element is associated,\nor `null` if the label isn't associated with a control.",
+ "form": "\n\nThe read-only **`HTMLLabelElement.form`** property returns an\n[HTMLFormElement] object which represents the form of which the label's\nassociated control is a part, or null if there is either no associated control, or if\nthat control isn't in a form.\n\nThis property is just a shortcut for `HTMLLabelElement.control.form`.",
+ "htmlfor": "\n\nThe **`HTMLLabelElement.htmlFor`** property reflects the value\nof the [`for`](/en-US/docs/Web/HTML/Element/label#for) content property. That means that this\nscript-accessible property is used to set and read the value of the content property\n`for`, which is the ID of the label's associated control element."
+ }
+ },
+ "htmllegendelement": {
+ "docs": "\n\nThe **`HTMLLegendElement`** is an interface allowing to access properties of the `legend` elements. It inherits properties and methods from the [HTMLElement] interface.\n\n"
+ },
+ "htmllielement": {
+ "docs": "\n\nThe **`HTMLLIElement`** interface exposes specific properties and methods (beyond those defined by regular [HTMLElement] interface it also has available to it by inheritance) for manipulating list elements.\n\n"
+ },
+ "htmllinkelement": {
+ "docs": "\n\nThe **`HTMLLinkElement`** interface represents reference information for external resources and the relationship of those resources to a document and vice versa (corresponds to [`<link>`](/en-US/docs/Web/HTML/Element/link) element; not to be confused with [`<a>`](/en-US/docs/Web/HTML/Element/a), which is represented by [`HTMLAnchorElement`](/en-US/docs/Web/API/HTMLAnchorElement)). This object inherits all of the properties and methods of the [HTMLElement] interface.\n\n",
+ "properties": {
+ "as": "\n\nThe **`as`** property of the [HTMLLinkElement] interface returns a string representing the type of content to be preloaded by a link element.\n\nThe `as` property must have a value for link elements when [`rel=\"preload\"`](/en-US/docs/Web/HTML/Attributes/rel/preload), or the resource will not be fetched.\nIt may also be applied to link elements where [`rel=\"modulepreload\"`](/en-US/docs/Web/HTML/Attributes/rel/preload), but if omitted, will default to `script`.\nThe property should not be set for other types of link elements, such as `rel=\"prefetch\"`.\n\nThis property reflects the value of the [`as` attribute](/en-US/docs/Web/HTML/Element/link#as) of the [`<link>`](/en-US/docs/Web/HTML/Element/link) HTML element.",
+ "crossorigin": "\n\nThe **`crossOrigin`** property of the [HTMLLinkElement] interface specifies the Cross-Origin Resource Sharing () setting to use when retrieving the resource.",
+ "fetchpriority": "\n\nThe **`fetchPriority`** property of the\n[HTMLLinkElement] interface represents a hint given to the browser\non how it should prioritize the preload of the given resource relative to other\nresources of the same type.",
+ "referrerpolicy": "\n\nThe\n**`HTMLLinkElement.referrerPolicy`**\nproperty reflects the HTML [`referrerpolicy`](/en-US/docs/Web/HTML/Element/link#referrerpolicy) attribute of the\n`link` element defining which referrer is sent when fetching the\nresource.\n\nSee the HTTP header for details.",
+ "rel": "\n\nThe **`HTMLLinkElement.rel`** property reflects the [`rel`](/en-US/docs/Web/HTML/Attributes/rel) attribute. It is a string containing a space-separated list of link types indicating the relationship between the resource represented by the `link` element and the current document.\n\nThe most common use of this attribute is to specify a link to an external style sheet:\nthe property is set to `stylesheet`, and the [`href`](/en-US/docs/Web/HTML/Element/link#href)\nattribute is set to the URL of an external style sheet to format the page.",
+ "rellist": "\n\nThe **`HTMLLinkElement.relList`** read-only property reflects the [`rel`](/en-US/docs/Web/HTML/Attributes/rel) attribute. It is a live [DOMTokenList] containing the set of link types indicating the relationship between the resource represented by the `link` element and the current document.\n\nThe property itself is read-only, meaning you can not substitute the\n[DOMTokenList] by another one, but the content of the returned list can be\nchanged.",
+ "sheet": "\n\nThe read-only **`sheet`** property of the [HTMLLinkElement] interface\ncontains the stylesheet associated with that element.\n\nA stylesheet is associated to an `HTMLLinkElement` if `rel=\"stylesheet\"` is used with `<link>`."
+ }
+ },
+ "htmlmapelement": {
+ "docs": "\n\nThe **`HTMLMapElement`** interface provides special properties and methods (beyond those of the regular object [HTMLElement] interface it also has available to it by inheritance) for manipulating the layout and presentation of map elements.\n\n"
+ },
+ "htmlmarqueeelement": {
+ "docs": "\n\nThe **`HTMLMarqueeElement`** interface provides methods to manipulate `marquee` elements.\n\nIt inherits properties and methods from the [HTMLElement] interface.\n\n"
+ },
+ "htmlmediaelement": {
+ "docs": "\n\nThe **`HTMLMediaElement`** interface adds to [HTMLElement] the properties and methods needed to support basic media-related capabilities that are common to audio and video.\n\nThe [HTMLVideoElement] and [HTMLAudioElement] elements both inherit this interface.\n\n",
+ "properties": {
+ "abort_event": "\n\nThe **`abort`** event is fired when the resource was not fully loaded, but not as the result of an error.\n\nThis event is not cancelable and does not bubble.",
+ "audiotracks": "\n\nThe read-only **`audioTracks`**\nproperty on [HTMLMediaElement] objects returns\nan [AudioTrackList] object listing all of the [AudioTrack]\nobjects representing the media element's audio tracks.\n\nThe media element may be\neither an `audio` element or a `video` element.\n\nThe returned list is _live_; that is, as tracks are added to and removed from\nthe media element, the list's contents change dynamically. Once you have a reference to\nthe list, you can monitor it for changes to detect when new audio tracks are added or\nexisting ones removed. See [AudioTrackList events](/en-US/docs/Web/API/AudioTrackList#events)\nto learn more about watching for changes to a media element's track list.",
+ "autoplay": "\n\nThe **`HTMLMediaElement.autoplay`**\nproperty reflects the [`autoplay`](/en-US/docs/Web/HTML/Element/video#autoplay) HTML attribute, indicating\nwhether playback should automatically begin as soon as enough media is available to do\nso without interruption.\n\nA media element whose source is a [MediaStream] and whose\n`autoplay` property is `true` will begin playback when it becomes\nactive (that is, when [MediaStream.active] becomes `true`).\n\n> **Note:** Sites which automatically play audio (or videos with an audio\n> track) can be an unpleasant experience for users, so it should be avoided when\n> possible. If you must offer autoplay functionality, you should make it opt-in\n> (requiring a user to specifically enable it). However, autoplay can be useful when\n> creating media elements whose source will be set at a later time, under user control.\n\nFor a much more in-depth look at autoplay, autoplay blocking, and how to respond when\nautoplay is blocked by the user's browser, see our article [Autoplay guide for media and Web Audio APIs](/en-US/docs/Web/Media/Autoplay_guide).",
+ "buffered": "\n\nThe **`buffered`** read-only property of [HTMLMediaElement] objects returns a new static [normalized `TimeRanges` object](/en-US/docs/Web/API/TimeRanges#normalized_timeranges_objects) that represents the ranges of the media resource, if any, that the user agent has buffered at the moment the `buffered` property is accessed.\n\n> **Note:** This feature is not available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "canplay_event": "\n\nThe `canplay` event is fired when the user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content.\n\nThis event is not cancelable and does not bubble.",
+ "canplaythrough_event": "\n\nThe `canplaythrough` event is fired when the user agent can play the media, and estimates that enough data has been loaded to play the media up to its end without having to stop for further buffering of content.\n\nThis event is not cancelable and does not bubble.",
+ "canplaytype": "\n\nThe [HTMLMediaElement] method **`canPlayType()`** reports how likely it is that the current browser will be able to play media of a given MIME type.\n\n> **Note:** This feature is not available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "capturestream": "\n\nThe **`captureStream()`** method of the [HTMLMediaElement] interface returns a [MediaStream] object which is streaming a real-time capture of the content being rendered in the media element.\n\nThis can be used, for example, as a source for a [WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection].",
+ "controller": "\n\nThe **`HTMLMediaElement.controller`** property represents the media controller assigned to the element.",
+ "controls": "\n\nThe **`HTMLMediaElement.controls`** property reflects the\n[`controls`](/en-US/docs/Web/HTML/Element/video#controls) HTML attribute, which controls whether user\ninterface controls for playing the media item will be displayed.",
+ "controlslist": "\n\nThe **`controlsList`** property of the\n[HTMLMediaElement] interface returns a DOMTokenList that helps the user\nagent select what controls to show on the media element whenever the user agent shows\nits own set of controls. The DOMTokenList takes one or more of three possible values:\n`nodownload`, `nofullscreen`, and `noremoteplayback`.",
+ "crossorigin": "\n\nThe **`HTMLMediaElement.crossOrigin`** property is the CORS setting for this media element. See [CORS settings attributes](/en-US/docs/Web/HTML/Attributes/crossorigin) for details.",
+ "currentsrc": "\n\nThe **`HTMLMediaElement.currentSrc`** property contains the\nabsolute URL of the chosen media resource. This could happen, for example, if the web\nserver selects a media file based on the resolution of the user's display. The value\nis an empty string if the `networkState` property is `EMPTY`.",
+ "currenttime": "\n\nThe [HTMLMediaElement] interface's\n**`currentTime`** property specifies the current playback time\nin seconds.\n\nChanging the value of `currentTime` seeks the media to\nthe new time.",
+ "defaultmuted": "\n\nThe **`HTMLMediaElement.defaultMuted`** property reflects the [`muted`](/en-US/docs/Web/HTML/Element/video#muted) HTML attribute, which indicates whether the media element's audio output should be muted by default. This property has no dynamic effect. To mute and unmute the audio output, use the [HTMLMediaElement.muted] property.",
+ "defaultplaybackrate": "\n\nThe **`HTMLMediaElement.defaultPlaybackRate`** property indicates the default playback rate for the media.",
+ "disableremoteplayback": "\n\nThe **`disableRemotePlayback`** property of the [HTMLMediaElement] interface determines whether the media element is allowed to have a remote playback UI.",
+ "duration": "\n\nThe _read-only_ [HTMLMediaElement]\nproperty **`duration`** indicates the length of the element's\nmedia in seconds.",
+ "durationchange_event": "\n\nThe `durationchange` event is fired when the `duration` attribute has been updated.",
+ "emptied_event": "\n\nThe `emptied` event is fired when the media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the `load()` method is called to reload it.\n\nThis event is not cancelable and does not bubble.",
+ "encrypted_event": "\n\nThe `encrypted` event is fired when the media encounters some initialization data indicating it is encrypted.\n\nThis event is not cancelable and does not bubble.",
+ "ended": "\n\nThe **`HTMLMediaElement.ended`** property indicates whether the media\nelement has ended playback.",
+ "ended_event": "\n\nThe `ended` event is fired when playback or streaming has stopped because the end of the media was reached or because no further data is available.\n\nThis event occurs based upon [HTMLMediaElement] (`audio` and `video`) fire `ended` when playback reaches the end of the media.\n\nThis event is not cancelable and does not bubble.",
+ "error": "\n\nThe **`HTMLMediaElement.error`** property is the\n[MediaError] object for the most recent error, or `null` if\nthere has not been an error. When an [HTMLMediaElement/error_event] event is received by the\nelement, you can determine details about what happened by examining this object.",
+ "error_event": "\n\nThe **`error`** event is fired when the resource could not be loaded due to an error (for example, a network connectivity problem).\n\nThis event is not cancelable and does not bubble.",
+ "fastseek": "\n\nThe **`HTMLMediaElement.fastSeek()`** method quickly seeks the\nmedia to the new time with precision tradeoff.\n\n> **Note:** If you need to seek with precision, you should set [`HTMLMediaElement.currentTime`](/en-US/docs/Web/API/HTMLMediaElement/currentTime)\n> instead.",
+ "load": "\n\nThe [HTMLMediaElement] method\n**`load()`** resets the media element to its initial state and\nbegins the process of selecting a media source and loading the media in preparation\nfor playback to begin at the beginning.\n\nThe amount of media data that is\nprefetched is determined by the value of the element's [`preload`](/en-US/docs/Web/HTML/Element/video#preload) attribute.\n\nThis method is generally only useful when you've made dynamic changes to the set of\nsources available for the media element, either by changing the element's\n[`src`](/en-US/docs/Web/HTML/Element/video#src) attribute or by adding or removing\n`source` elements nested within the media element itself.\n`load()` will reset the element and rescan the available sources, thereby\ncausing the changes to take effect.",
+ "loadeddata_event": "\n\nThe **`loadeddata`** event is fired when the frame at the current playback position of the media has finished loading; often the first frame.\n\n> **Note:** This event will not fire in mobile/tablet devices if data-saver is on in browser settings.",
+ "loadedmetadata_event": "\n\nThe `loadedmetadata` event is fired when the metadata has been loaded.",
+ "loadstart_event": "\n\nThe **`loadstart`** event is fired when the browser has started to load a resource.",
+ "loop": "\n\nThe **`HTMLMediaElement.loop`** property reflects the [`loop`](/en-US/docs/Web/HTML/Element/video#loop) HTML attribute, which controls whether the media element should start over when it reaches the end.",
+ "mediagroup": "\n\nThe **`HTMLMediaElement.mediaGroup`** property reflects the [`mediaGroup`](/en-US/docs/Web/HTML/Element/video#mediagroup) HTML attribute, which indicates the name of the group of elements it belongs to. A group of media elements shares a common `controller`.",
+ "mediakeys": "\n\nThe read-only **`HTMLMediaElement.mediaKeys`** property returns a [MediaKeys] object, that is a set of keys that the element can use for decryption of media data during playback.",
+ "muted": "\n\nThe **`HTMLMediaElement.muted`** property indicates whether the media\nelement is muted.",
+ "networkstate": "\n\nThe\n**`HTMLMediaElement.networkState`** property indicates the\ncurrent state of the fetching of media over the network.",
+ "pause": "\n\nThe **`HTMLMediaElement.pause()`** method will pause playback\nof the media, if the media is already in a paused state this method will have no effect.",
+ "pause_event": "\n\nThe `pause` event is sent when a request to pause an activity is handled and the activity has entered its paused state, most commonly after the media has been paused through a call to the element's [HTMLMediaElement.pause] method.\n\nThe event is sent once the `pause()` method returns and after the media element's [HTMLMediaElement.paused] property has been changed to `true`.\n\nThis event is not cancelable and does not bubble.",
+ "paused": "\n\nThe read-only **`HTMLMediaElement.paused`** property\ntells whether the media element is paused.",
+ "play": "\n\nThe [HTMLMediaElement]\n**`play()`** method attempts to begin playback of the media.\nIt returns a `Promise` which is resolved when playback has been\nsuccessfully started.\n\nFailure to begin playback for any reason, such as\npermission issues, result in the promise being rejected.",
+ "play_event": "\n\nThe `play` event is fired when the `paused` property is changed from `true` to `false`, as a result of the `play` method, or the `autoplay` attribute.\n\nThis event is not cancelable and does not bubble.",
+ "playbackrate": "\n\nThe **`HTMLMediaElement.playbackRate`** property sets the rate at which the media is being played back. This is used to implement user controls for fast forward, slow motion, and so forth. The normal playback rate is multiplied by this value to obtain the current rate, so a value of 1.0 indicates normal speed.\n\nIf `playbackRate` is negative, the media is played backwards.\n\nThe audio is muted when the fast forward or slow motion is outside a useful range (for example, Gecko mutes the sound outside the range `0.25` to `4.0`).\n\nThe pitch of the audio is corrected by default. You can disable pitch correction using the [HTMLMediaElement.preservesPitch] property.",
+ "playing_event": "\n\nThe `playing` event is fired after playback is first started, and whenever it is restarted. For example it is fired when playback resumes after having been paused or delayed due to lack of data.\n\nThis event is not cancelable and does not bubble.",
+ "preservespitch": "\n\nThe **`HTMLMediaElement.preservesPitch`** property determines whether or not the browser should adjust the pitch of the audio to compensate for changes to the playback rate made by setting [HTMLMediaElement.playbackRate].",
+ "progress_event": "\n\nThe **`progress`** event is fired periodically as the browser loads a resource.\n\nThis event is not cancelable and does not bubble.",
+ "ratechange_event": "\n\nThe `ratechange` event is fired when the playback rate has changed.\n\nThis event is not cancelable and does not bubble.",
+ "readystate": "\n\nThe **`HTMLMediaElement.readyState`** property indicates the\nreadiness state of the media.",
+ "remote": "\n\nThe **`remote`** read-only property of the [HTMLMediaElement] interface returns the [RemotePlayback] object associated with the media element. The `RemotePlayback` object allow the control of remote devices playing the media.",
+ "seekable": "\n\nThe **`seekable`** read-only property of [HTMLMediaElement] objects returns a new static [normalized `TimeRanges` object](/en-US/docs/Web/API/TimeRanges#normalized_timeranges_objects) that represents the ranges of the media resource, if any, that the user agent is able to seek to at the time `seekable` property is accessed.",
+ "seeked_event": "\n\nThe `seeked` event is fired when a seek operation completed, the current playback position has changed, and the Boolean `seeking` attribute is changed to `false`.\n\nThis event is not cancelable and does not bubble.",
+ "seeking_event": "\n\nThe `seeking` event is fired when a seek operation starts, meaning the Boolean `seeking` attribute has changed to `true` and the media is seeking a new position.\n\nThis event is not cancelable and does not bubble.",
+ "seektonextframe": "\n\nThe **`HTMLMediaElement.seekToNextFrame()`** method\nasynchronously advances the current play position to the next frame in the media.\n\n> **Warning:** This non-standard method is part of an experimentation process around support for\n> non-real-time access to media for tasks including filtering, editing, and so forth.\n> You should _not_ use this method in production code, because its implementation\n> may change—or be removed outright—without notice. You are, however, invited to\n> experiment with it.\n\nThis 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\nThis method returns immediately, returning a `Promise`, whose fulfillment\nhandler is called when the seek operation is complete. In addition, a\n[HTMLMediaElement/seeked_event] 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\n[HTMLMediaElement/seeked_event] event occurs, followed immediately by an [HTMLMediaElement/ended_event] event.\n\nIf there is no video on the media element, or the media isn't seekable, nothing\nhappens.",
+ "setmediakeys": "\n\nThe **`setMediaKeys()`** method of the\n[HTMLMediaElement] interface returns a `Promise` that resolves\nto the passed [MediaKeys], which are those used to decrypt media during\nplayback.",
+ "setsinkid": "\n\nThe **`HTMLMediaElement.setSinkId()`** method of the [Audio Output Devices API](/en-US/docs/Web/API/Audio_Output_Devices_API) sets the ID of the audio device to use for output and returns a `Promise`.\n\nThis only works when the application is permitted to use the specified device.\nFor more information see the [security requirements](#security_requirements) below.",
+ "sinkid": "\n\nThe **`HTMLMediaElement.sinkId`** read-only property of the [Audio Output Devices API](/en-US/docs/Web/API/Audio_Output_Devices_API) returns a string that is the unique ID of the device to be used for playing audio output.\n\nThis ID should be one of the [MediaDeviceInfo.deviceId] values returned from [MediaDevices.enumerateDevices], `id-multimedia`, or `id-communications`.\nIf the user agent default device is being used, it returns an empty string.",
+ "src": "\n\nThe **`HTMLMediaElement.src`** property reflects the value of\nthe HTML media element's `src` attribute, which indicates the URL of a media\nresource to use in the element.\n\n> **Note:** The best way to know the URL of the media resource currently\n> in active use in this element is to look at the value of the\n> [HTMLMediaElement.currentSrc] attribute, which also takes\n> into account selection of a best or preferred media resource from a list provided in\n> an [HTMLSourceElement] (which represents a `source`\n> element).",
+ "srcobject": "\n\nThe **`srcObject`** property of the\n[HTMLMediaElement] interface sets or returns the object which serves as\nthe source of the media associated with the [HTMLMediaElement].\n\nThe object can be a [MediaStream], a [MediaSource], a\n[Blob], or a [File] (which inherits from `Blob`).\n\n> **Note:** As of March 2020, only Safari has full support for `srcObject`, i.e. using `MediaSource`, `MediaStream`, `Blob`, and `File` objects as values. Other browsers support `MediaStream` objects; until they catch up, consider falling back to creating a URL with [URL.createObjectURL_static] and assigning it to [HTMLMediaElement.src] (see below for an example). In addition, as of version 108 Chromium supports attaching a dedicated worker `MediaSource` object by assigning that object's [MediaSourceHandle] instance (transferred from the worker) to `srcObject`.",
+ "stalled_event": "\n\nThe `stalled` event is fired when the user agent is trying to fetch media data, but data is unexpectedly not forthcoming.\n\nThis event is not cancelable and does not bubble.",
+ "suspend_event": "\n\nThe `suspend` event is fired when media data loading has been suspended.\n\nThis event is not cancelable and does not bubble.",
+ "texttracks": "\n\nThe read-only **`textTracks`**\nproperty on [HTMLMediaElement] objects returns a\n[TextTrackList] object listing all of the [TextTrack]\nobjects representing the media element's text tracks, in the same order as in\nthe list of text tracks.\n\nYou can detect when tracks are added to and removed from an\n[`<audio>`](/en-US/docs/Web/HTML/Element/audio) or\n[`<video>`](/en-US/docs/Web/HTML/Element/video) element\nusing the `addtrack` and `removetrack` events. However, these\nevents aren't sent directly to the media element itself. Instead, they're sent to the\ntrack list object of the [`HTMLMediaElement`](/en-US/docs/Web/API/HTMLMediaElement)\nthat corresponds to the type of track that was added to the element\n\nThe returned list is _live_; that is, as tracks are added to and removed from\nthe media element, the list's contents change dynamically. Once you have a reference to\nthe list, you can monitor it for changes to detect when new text tracks are added or\nexisting ones removed.\n\nSee [TextTrackList events](/en-US/docs/Web/API/TextTrackList#events) to learn\nmore about watching for changes to a media element's track list.",
+ "timeupdate_event": "\n\nThe `timeupdate` event is fired when the time indicated by the `currentTime` attribute has been updated.\n\nThe event frequency is dependent on the system load, but will be thrown between about 4Hz and 66Hz (assuming the event handlers don't take longer than 250ms to run). User agents are encouraged to vary the frequency of the event based on the system load and the average cost of processing the event each time, so that the UI updates are not any more frequent than the user agent can comfortably handle while decoding the video.\n\nThis event is not cancelable and does not bubble.",
+ "videotracks": "\n\nThe read-only **`videoTracks`**\nproperty on [HTMLMediaElement] objects returns a\n[VideoTrackList] object listing all of the [VideoTrack]\nobjects representing the media element's video tracks.\n\nThe returned list is _live_; that is, as tracks are added to and removed from\nthe media element, the list's contents change dynamically. Once you have a reference to\nthe list, you can monitor it for changes to detect when new video tracks are added or\nexisting ones removed. See [VideoTrackList events](/en-US/docs/Web/API/VideoTrackList#events)\nto learn more about watching for changes to a media element's track list.",
+ "volume": "\n\nThe **`HTMLMediaElement.volume`** property sets the volume at\nwhich the media will be played.",
+ "volumechange_event": "\n\nThe `volumechange` event is fired when either the [HTMLMediaElement.volume] attribute or the [HTMLMediaElement.muted] attribute has changed.\n\nThis event is not cancelable and does not bubble.",
+ "waiting_event": "\n\nThe `waiting` event is fired when playback has stopped because of a temporary lack of data.\n\nThis event is not cancelable and does not bubble."
+ }
+ },
+ "htmlmenuelement": {
+ "docs": "\n\nThe **`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.\n\n"
+ },
+ "htmlmenuitemelement": {
+ "docs": "\n\nThe **`HTMLMenuItemElement`** interface provides special properties (beyond those defined on the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating `menuitem` elements.\n\n"
+ },
+ "htmlmetaelement": {
+ "docs": "\n\nThe **`HTMLMetaElement`** interface contains descriptive metadata about a document provided in HTML as [`<meta>`](/en-US/docs/Web/HTML/Element/meta) elements.\nThis interface inherits all of the properties and methods described in the [HTMLElement] interface.\n\n",
+ "properties": {
+ "content": "\n\nThe **`HTMLMetaElement.content`** property gets or sets the `content` attribute of pragma directives and named `meta` data in conjunction with [HTMLMetaElement.name] or [HTMLMetaElement.httpEquiv].\nFor more information, see the [content](/en-US/docs/Web/HTML/Element/meta#content) attribute.",
+ "httpequiv": "\n\nThe **`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](/en-US/docs/Web/HTML/Element/meta#http-equiv) attribute.",
+ "media": "\n\nThe **`HTMLMetaElement.media`** property enables specifying the media for `theme-color` metadata.\n\nThe `theme-color` property enables setting the color of the browser's toolbar or UI in browsers and operating systems that support this property.\nThe `media` property enables setting different theme colors for different `media` values.",
+ "name": "\n\nThe **`HTMLMetaElement.name`** property is used in combination with [HTMLMetaElement.content] to define the name-value pairs for the metadata of a document.\nThe `name` attribute defines the metadata name and the `content` attribute defines the value.",
+ "scheme": "\n\nThe **`HTMLMetaElement.scheme`** property defines the scheme of the value in the [HTMLMetaElement.content] attribute.\nThe `scheme` property was created to enable providing additional information to be used to interpret the value of the `content` property. The `scheme` property takes as its value a scheme format (i.e. `YYYY-MM-DD`) or scheme format name (i.e. `ISBN`), or a URI providing more information regarding the scheme format. The scheme defines the format of the value of the `content` attribute.\nThe `scheme` content is interpreted as an extension of the element's [HTMLMetaElement.name] if a browser or user agent recognizes the scheme.\n\nThis property is deprecated and should not be used on new web pages."
+ }
+ },
+ "htmlmeterelement": {
+ "docs": "\n\nThe HTML `meter` elements expose the **`HTMLMeterElement`** interface, which provides special properties and methods (beyond the [HTMLElement] object interface they also have available to them by inheritance) for manipulating the layout and presentation of `meter` elements.\n\n",
+ "properties": {
+ "labels": "\n\nThe **`HTMLMeterElement.labels`** read-only property returns a\n[NodeList] of the `label` elements associated with the\n`meter` element."
+ }
+ },
+ "htmlmodelement": {
+ "docs": "\n\nThe **`HTMLModElement`** interface provides special properties (beyond the regular methods and properties available through the [HTMLElement] interface they also have available to them by inheritance) for manipulating modification elements, that is `del` and `ins`.\n\n"
+ },
+ "htmlobjectelement": {
+ "docs": "\n\nThe **`HTMLObjectElement`** interface provides special properties and methods (beyond those on the [HTMLElement] interface it also has available to it by inheritance) for manipulating the layout and presentation of `object` element, representing external resources.\n\n",
+ "properties": {
+ "checkvalidity": "\n\nThe **`checkValidity()`** method of the\n[HTMLObjectElement] interface returns a boolean value that always\nis true, because object objects are never candidates for constraint validation.",
+ "contentdocument": "\n\nThe **`contentDocument`** read-only property of\nthe [HTMLObjectElement] interface Returns a [Document]\nrepresenting the active document of the object element's nested browsing context, if\nany; otherwise null.",
+ "contentwindow": "\n\nThe **`contentWindow`** read-only property of\nthe [HTMLObjectElement] interface returns a \nrepresenting the window proxy of the object element's nested browsing context, if any;\notherwise null.",
+ "data": "\n\nThe **`data`** property of the\n[HTMLObjectElement] interface returns a string that\nreflects the [`data`](/en-US/docs/Web/HTML/Element/object#data) HTML attribute, specifying the address\nof a resource's data.",
+ "form": "\n\nThe **`form`** read-only property of the\n[HTMLObjectElement] interface returns a [HTMLFormElement]\nrepresenting the object element's form owner, or null if there isn't one.",
+ "height": "\n\nThe **`height`** property of the\n[HTMLObjectElement] interface Returns a string that\nreflects the [`height`](/en-US/docs/Web/HTML/Element/object#height) HTML attribute, specifying the\ndisplayed height of the resource in CSS pixels.",
+ "name": "\n\nThe **`name`** property of the\n[HTMLObjectElement] interface returns a string that\nreflects the [`name`](/en-US/docs/Web/HTML/Element/object#name) HTML attribute, specifying the name of\nthe browsing context.",
+ "setcustomvalidity": "\n\nThe **`setCustomValidity()`** method of the\n[HTMLObjectElement] interface sets a custom validity message for the\nelement.",
+ "type": "\n\nThe **`type`** property of the\n[HTMLObjectElement] interface returns a string that\nreflects the [`type`](/en-US/docs/Web/HTML/Element/object#type) HTML attribute, specifying the MIME type\nof the resource.",
+ "usemap": "\n\nThe **`useMap`** property of the\n[HTMLObjectElement] interface returns a string that\nreflects the [`usemap`](/en-US/docs/Web/HTML/Element/object#usemap) HTML attribute, specifying a\n`map` element to use.",
+ "validationmessage": "\n\nThe **`validationMessage`** read-only property\nof the [HTMLObjectElement] interface returns a string\nrepresenting a localized message that describes the validation constraints that the\ncontrol does not satisfy (if any). This is the empty string if the control is not a\ncandidate for constraint validation (willValidate is false), or it satisfies its\nconstraints.",
+ "validity": "\n\nThe **`validity`** read-only property of the\n[HTMLObjectElement] interface returns a [ValidityState] with\nthe validity states that this element is in.",
+ "width": "\n\nThe **`width`** property of the\n[HTMLObjectElement] interface returns a string that\nreflects the [`width`](/en-US/docs/Web/HTML/Element/object#width) HTML attribute, specifying the\ndisplayed width of the resource in CSS pixels.",
+ "willvalidate": "\n\nThe **`willValidate`** read-only property of\nthe [HTMLObjectElement] interface returns a boolean value that\nindicates whether the element is a candidate for constraint validation. Always false for\nHTMLObjectElement objects."
+ }
+ },
+ "htmlolistelement": {
+ "docs": "\n\nThe **`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.\n\n"
+ },
+ "htmloptgroupelement": {
+ "docs": "\n\nThe **`HTMLOptGroupElement`** interface provides special properties and methods (beyond the regular [HTMLElement] object interface they also have available to them by inheritance) for manipulating the layout and presentation of `optgroup` elements.\n\n"
+ },
+ "htmloptionelement": {
+ "docs": "\n\nThe **`HTMLOptionElement`** interface represents `option` elements and inherits all properties and methods of the [HTMLElement] interface.\n\n",
+ "properties": {
+ "option": "\n\nThe **`Option()`** constructor creates a new\n[HTMLOptionElement]."
+ }
+ },
+ "htmloptionscollection": {
+ "docs": "\n\nThe **`HTMLOptionsCollection`** interface represents a collection of [`<option>`](/en-US/docs/Web/HTML/Element/option) HTML elements (in document order) and offers methods and properties for selecting from the list as well as optionally altering its items. This object is returned only by the `options` property of [select](/en-US/docs/Web/API/HTMLSelectElement).\n\n"
+ },
+ "htmloutputelement": {
+ "docs": "\n\nThe **`HTMLOutputElement`** interface provides properties and methods (beyond those inherited from [HTMLElement]) for manipulating the layout and presentation of `output` elements.\n\n",
+ "properties": {
+ "labels": "\n\nThe **`HTMLOutputElement.labels`** read-only property returns a\n[NodeList] of the `label` elements associated with the\n`output` element."
+ }
+ },
+ "htmlparagraphelement": {
+ "docs": "\n\nThe **`HTMLParagraphElement`** interface provides special properties (beyond those of the regular [HTMLElement] object interface it inherits) for manipulating `p` elements.\n\n"
+ },
+ "htmlparamelement": {
+ "docs": "\n\nThe **`HTMLParamElement`** interface provides special properties (beyond those of the regular [HTMLElement] object interface it inherits) for manipulating `param` elements, representing a pair of a key and a value that acts as a parameter for an `object` element.\n\n"
+ },
+ "htmlpictureelement": {
+ "docs": "\n\nThe **`HTMLPictureElement`** interface represents a `picture` HTML element. It doesn't implement specific properties or methods.\n\n"
+ },
+ "htmlpreelement": {
+ "docs": "\n\nThe **`HTMLPreElement`** interface exposes specific properties and methods (beyond those of the [HTMLElement] interface it also has available to it by inheritance) for manipulating a block of preformatted text (`pre`).\n\n"
+ },
+ "htmlprogresselement": {
+ "docs": "\n\nThe **`HTMLProgressElement`** interface provides special properties and methods (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating the layout and presentation of `progress` elements.\n\n",
+ "properties": {
+ "labels": "\n\nThe **`HTMLProgressElement.labels`** read-only property returns\na [NodeList] of the `label` elements associated with the\n`progress` element."
+ }
+ },
+ "htmlquoteelement": {
+ "docs": "\n\nThe **`HTMLQuoteElement`** interface provides special properties and methods (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating quoting elements, like `blockquote` and `q`, but not the `cite` element.\n\n"
+ },
+ "htmlscriptelement": {
+ "docs": "\n\nHTML `script` elements expose the **`HTMLScriptElement`** interface, which provides special properties and methods for manipulating the behavior and execution of `<script>` elements (beyond the inherited [HTMLElement] interface).\n\nJavaScript files should be served with the `text/javascript` [MIME type](/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types), but browsers are lenient and block them only if the script is served with an image type (`image/*`), video type (`video/*`), audio type (`audio/*`), or `text/csv`. If the script is blocked, its element receives an [HTMLElement/error_event] event; otherwise, it receives a [Window/load_event] event.\n\n",
+ "properties": {
+ "crossorigin": "\n\nThe **`crossOrigin`** property of the [HTMLScriptElement] interface reflects the settings for the script element. For classic scripts from other [origins](/en-US/docs/Glossary/Origin), this controls if full error information will be exposed. For module scripts, it controls the script itself and any script it imports. See [CORS settings attributes](/en-US/docs/Web/HTML/Attributes/crossorigin) for details.",
+ "referrerpolicy": "\n\nThe **`referrerPolicy`** property of the\n[HTMLScriptElement] interface reflects the HTML\n[`referrerpolicy`](/en-US/docs/Web/HTML/Element/script#referrerpolicy) of the `script` element, which defines how the referrer is set when fetching the script and any scripts it imports.",
+ "supports_static": "\n\nThe **`supports()`** static method of the [HTMLScriptElement] interface provides a simple and consistent method to feature-detect what types of scripts are supported by the user agent.\n\nThe method is expected to return `true` for classic and module scripts, which are supported by most modern browsers."
+ }
+ },
+ "htmlselectelement": {
+ "docs": "\n\nThe **`HTMLSelectElement`** interface represents a `select` HTML Element. These elements also share all of the properties and methods of other HTML elements via the [HTMLElement] interface.\n\n",
+ "properties": {
+ "add": "\n\nThe **`HTMLSelectElement.add()`** method adds an element to the\ncollection of `option` elements for this `select` element.",
+ "checkvalidity": "\n\nThe **`HTMLSelectElement.checkValidity()`** method checks\nwhether the element has any constraints and whether it satisfies them. If the element\nfails its constraints, the browser fires a cancelable [HTMLSelectElement/invalid_event] event at the\nelement, and then returns `false`.",
+ "disabled": "\n\nThe **`HTMLSelectElement.disabled`** property is a boolean value that reflects the\n[`disabled`](/en-US/docs/Web/HTML/Element/select#disabled)\nHTML attribute, which indicates whether the control is disabled. If it is disabled, it\ndoes not accept clicks. A disabled element is unusable and un-clickable.",
+ "form": "\n\nThe **`HTMLSelectElement.form`** read-only property returns a\n[HTMLFormElement] representing the form that this element is associated\nwith. If the element is not associated with a `form` element, then\nit returns `null`.",
+ "item": "\n\nThe **`HTMLSelectElement.item()`** method returns the\n[Element] corresponding to the [HTMLOptionElement] whose\nposition in the options list corresponds to the index given in the parameter, or\n`null` if there are none.\n\nIn JavaScript, using the array bracket syntax with an `unsigned long`, like\n`selectElt[index]` is equivalent to\n`selectElt.namedItem(index)`.",
+ "labels": "\n\nThe **`HTMLSelectElement.labels`** read-only property returns a\n[NodeList] of the `label` elements associated with the\n`select` element.",
+ "nameditem": "\n\nThe **`HTMLSelectElement.namedItem()`** method returns the\n[HTMLOptionElement] corresponding to the [HTMLOptionElement]\nwhose `name` or `id` match the specified name, or\n`null` if no option matches.\n\nIn JavaScript, using `selectElt.namedItem('value')` is equivalent to `selectElt.options.namedItem('value')`.",
+ "options": "\n\nThe **`HTMLSelectElement.options`** read-only property returns\na [HTMLOptionsCollection] of the `option` elements\ncontained by the `select` element.",
+ "remove": "\n\nThe **`HTMLSelectElement.remove()`** method removes the element\nat the specified index from the options collection for this select element.",
+ "selectedindex": "\n\nThe **`HTMLSelectElement.selectedIndex`** property is a\n`long` that reflects the index of the first or last selected\n`option` element, depending on the value of `multiple`. The\nvalue `-1` indicates that no element is selected.",
+ "selectedoptions": "\n\nThe **read-only** [HTMLSelectElement] property\n**`selectedOptions`** contains a list of the\n`option` elements contained within the `select`\nelement that are currently selected. The list of selected options is an\n[HTMLCollection] object with one entry per currently selected option.\n\nAn option is considered selected if it has an [HTMLOptionElement.selected]\nattribute.",
+ "setcustomvalidity": "\n\nThe **`HTMLSelectElement.setCustomValidity()`** method sets the\ncustom validity message for the selection element to the specified message. Use the\nempty string to indicate that the element does _not_ have a custom validity\nerror.",
+ "showpicker": "\n\nThe **`HTMLSelectElement.showPicker()`** method displays the browser picker for a `select` element.\n\nThis is the same picker that would normally be displayed when the element is selected, but can be triggered from a button press or other user interaction.",
+ "type": "\n\nThe **`HTMLSelectElement.type`**\nread-only property returns the form control's `type`."
+ }
+ },
+ "htmlslotelement": {
+ "docs": "\n\nThe **`HTMLSlotElement`** interface of the [Shadow DOM API](/en-US/docs/Web/API/Web_components/Using_shadow_DOM) enables access to the name and assigned nodes of an HTML `slot` element.\n\n",
+ "properties": {
+ "assign": "\n\nThe **`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:** you cannot mix manually (imperative) and named (declarative, automatic) slot assignments. Therefore, for this method to work, the shadow tree needs to have been [created](/en-US/docs/Web/API/Element/attachShadow) with the `slotAssignment: \"manual\"` option.",
+ "assignedelements": "\n\nThe **`assignedElements()`** method of the [HTMLSlotElement]\ninterface returns a sequence of the elements assigned to this slot (and no\nother nodes).\n\nIf the `flatten` option is set to `true`, it returns a sequence of both the elements assigned to this slot, as well as the elements assigned to any other slots that are descendants of this slot. If no assigned elements are found, it returns the slot's fallback content.",
+ "assignednodes": "\n\nThe **`assignedNodes()`** method of the [HTMLSlotElement] interface returns a sequence of the nodes assigned to this slot.\n\nIf the `flatten` option is set to `true`, it returns a sequence of both the nodes assigned to this slot, as well as the nodes assigned to any other slots that are descendants of this slot. If no assigned nodes are found, it returns the slot's fallback content.",
+ "name": "\n\nThe **`name`** property of the [HTMLSlotElement]\ninterface returns or sets the slot name. A slot is a placeholder inside a web component\nthat users can fill with their own markup.",
+ "slotchange_event": "\n\nThe **`slotchange`** event is fired on an [HTMLSlotElement] instance (`slot` element) when the node(s) contained in that slot change.\n\n> **Note:** the `slotchange` event doesn't fire if the children of a slotted node change — only if you change (e.g. add or delete) the actual nodes themselves.\n\nIn order to trigger a **slotchange** event, one has to set or remove the `slot` attribute.\n\nThis event is not cancelable."
+ }
+ },
+ "htmlsourceelement": {
+ "docs": "\n\nThe **`HTMLSourceElement`** interface provides special properties (beyond the regular [HTMLElement] object interface it also has available to it by inheritance) for manipulating `source` elements.\n\n"
+ },
+ "htmlspanelement": {
+ "docs": "\n\nThe **`HTMLSpanElement`** interface represents a `span` element and derives from the [HTMLElement] interface, but without implementing any additional properties or methods.\n\n"
+ },
+ "htmlstyleelement": {
+ "docs": "\n\nThe **`HTMLStyleElement`** interface represents a `style` element. It inherits properties and methods from its parent, [HTMLElement].\n\nThis interface doesn't allow to manipulate the CSS it contains (in most case). To manipulate CSS, see [Using dynamic styling information](/en-US/docs/Web/API/CSS_Object_Model/Using_dynamic_styling_information) for an overview of the objects used to manipulate specified CSS properties using the DOM.\n\n",
+ "properties": {
+ "disabled": "\n\nThe **`HTMLStyleElement.disabled`** property can be used to get and set whether the stylesheet is disabled (`true`) or not (`false`).\n\nNote that there is no corresponding `disabled` attribute on the [HTML `<style>` element](/en-US/docs/Web/HTML/Element/style).",
+ "media": "\n\nThe **`HTMLStyleElement.media`** property specifies the\nintended destination medium for style information.",
+ "sheet": "\n\nThe read-only **`sheet`** property of the [HTMLStyleElement] interface\ncontains the stylesheet associated with that element.\n\nAn [StyleSheet] is always associated with a [HTMLStyleElement], unless its `type` attribute is not `text/css`.",
+ "type": " \n\nThe **`HTMLStyleElement.type`** property returns the type of the current style.\nThe value mirrors the [HTML `<style>` element's `type` attribute](/en-US/docs/Web/HTML/Element/style#type).\n\nAuthors should not use this property or rely on the value."
+ }
+ },
+ "htmltablecaptionelement": {
+ "docs": "\n\nThe **`HTMLTableCaptionElement`** interface provides special properties (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating table `caption` elements.\n\n"
+ },
+ "htmltablecellelement": {
+ "docs": "\n\nThe **`HTMLTableCellElement`** interface provides special properties and methods (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating the layout and presentation of table cells, either header cells (`th`)) or data cells (`td`), in an HTML document.\n\n"
+ },
+ "htmltablecolelement": {
+ "docs": "\n\nThe **`HTMLTableColElement`** interface provides properties for manipulating single or grouped table column elements.\n\n"
+ },
+ "htmltableelement": {
+ "docs": "\n\nThe **`HTMLTableElement`** interface provides special properties and methods (beyond the regular [HTMLElement] object interface it also has available to it by inheritance) for manipulating the layout and presentation of tables in an HTML document.\n\n",
+ "properties": {
+ "align": "\n\nThe **`HTMLTableElement.align`** property represents the\nalignment of the table.",
+ "bgcolor": " \n\nThe **`bgcolor`** property of the [HTMLTableElement] represents the\nbackground color of the table.\n\n> **Note:** Do not use this attribute anymore. Instead, use the CSS property by modifying the element's [`style`](/en-US/docs/Web/API/HTMLElement/style) attribute or using a style rule.",
+ "border": "\n\nThe **`HTMLTableElement.border`** property represents the\nborder width of the `table` element.",
+ "caption": "\n\nThe **`HTMLTableElement.caption`** property represents the\ntable caption. If no caption element is associated with the table, this property is\n`null`.",
+ "cellpadding": " \n\nThe **`HTMLTableElement.cellPadding`** property represents the\npadding around the individual cells of the table.",
+ "cellspacing": "\n\nWhile you should instead use the CSS\n property, the obsolete [HTMLTableElement]\ninterface's **`cellSpacing`** property represents the spacing\naround the individual `th` and `td` elements\nrepresenting a table's cells. Any two cells are separated by the sum of the\n`cellSpacing` of each of the two cells.",
+ "createcaption": "\n\nThe **`HTMLTableElement.createCaption()`** method returns the\n`caption` element associated with a given `table`.\nIf no `<caption>` element exists on the table, this method creates\nit, and then returns it.\n\n> **Note:** If no caption exists, `createCaption()` inserts a\n> new caption directly into the table. The caption does not need to be added\n> separately as would be the case if [Document.createElement] had\n> been used to create the new `<caption>` element.",
+ "createtbody": "\n\nThe **`createTBody()`** method of\n[HTMLTableElement] objects creates and returns a new\n`tbody` element associated with a given `table`.\n\n> **Note:** Unlike [HTMLTableElement.createTHead] and\n> [HTMLTableElement.createTFoot], `createTBody()`\n> systematically creates a new `<tbody>` element, even if the table\n> already contains one or more bodies. If so, the new one is inserted after the existing\n> ones.",
+ "createtfoot": "\n\nThe **`createTFoot()`** method of\n[HTMLTableElement] objects returns the `tfoot` element\nassociated with a given `table`. If no footer exists in the table, this\nmethod creates it, and then returns it.\n\n> **Note:** If no footer exists, `createTFoot()` inserts a new\n> footer directly into the table. The footer does not need to be added separately as\n> would be the case if [Document.createElement] had been used to create\n> the new `<tfoot>` element.",
+ "createthead": "\n\nThe **`createTHead()`** method of\n[HTMLTableElement] objects returns the `thead` element\nassociated with a given `table`. If no header exists in the table, this\nmethod creates it, and then returns it.\n\n> **Note:** If no header exists, `createTHead()` inserts a new\n> header directly into the table. The header does not need to be added separately as\n> would be the case if [Document.createElement] had been used to create\n> the new `<thead>` element.",
+ "deletecaption": "\n\nThe **`HTMLTableElement.deleteCaption()`** method removes the\n`caption` element from a given `table`. If there is no\n`<caption>` element associated with the table, this method does\nnothing.",
+ "deleterow": "\n\nThe **`HTMLTableElement.deleteRow()`** method removes a\nspecific row (`tr`) from a given `table`.",
+ "deletetfoot": "\n\nThe **`HTMLTableElement.deleteTFoot()`** method removes the\n`tfoot` element from a given `table`.",
+ "deletethead": "\n\nThe **`HTMLTableElement.deleteTHead()`** removes the\n`thead` element from a given `table`.",
+ "frame": " \n\nThe [HTMLTableElement] interface's **`frame`**\nproperty is a string that indicates which of the table's exterior borders should be\ndrawn.",
+ "insertrow": "\n\nThe **`HTMLTableElement.insertRow()`** method inserts a new row\n(`tr`) in a given `table`, and returns a reference to\nthe new row.\n\nIf a table has multiple `tbody` elements, by default, the new row is\ninserted into the last `<tbody>`. To insert the row into a specific\n`<tbody>`:\n\n```js\nlet specific_tbody = document.getElementById(tbody_id);\nlet row = specific_tbody.insertRow(index);\n```\n\n> **Note:** `insertRow()` inserts the row directly into the\n> table. The row does not need to be appended separately as would be the case if\n> [Document.createElement] had been used to create the new\n> `<tr>` element.",
+ "rows": "\n\nThe read-only [HTMLTableElement]\nproperty **`rows`** returns a live\n[HTMLCollection] of all the rows in the table, including the rows\ncontained within any `thead`, `tfoot`, and\n`tbody` elements.\n\nAlthough the property itself is read-only, the returned object is live and allows the\nmodification of its content.",
+ "rules": " \n\nThe **`HTMLTableElement.rules`** property indicates which cell\nborders to render in the table.",
+ "summary": " \n\nThe **`HTMLTableElement.summary`** property represents the\ntable description.",
+ "tbodies": "\n\nThe **`HTMLTableElement.tBodies`** read-only property returns a\nlive [HTMLCollection] of the bodies in a `table`.\n\nAlthough the property is read-only, the returned object is live and allows the\nmodification of its content.\n\nThe collection returned includes implicit `tbody` elements. For\nexample:\n\n```html\n<table>\n <tr>\n <td>cell one</td>\n </tr>\n</table>\n```\n\nThe HTML DOM generated from the above HTML will have a `tbody` element\neven though the tags are not included in the source HTML.",
+ "tfoot": "\n\nThe **`HTMLTableElement.tFoot`** property represents the\n`tfoot` element of a `table`. Its value will be\n`null` if there is no such element.",
+ "thead": "\n\nThe **`HTMLTableElement.tHead`** represents the\n`thead` element of a `table`. Its value will be\n`null` if there is no such element.",
+ "width": " \n\nThe **`HTMLTableElement.width`** property represents the\ndesired width of the table."
+ }
+ },
+ "htmltablerowelement": {
+ "docs": "\n\nThe **`HTMLTableRowElement`** interface provides special properties and methods (beyond the [HTMLElement] interface it also has available to it by inheritance) for manipulating the layout and presentation of rows in an HTML table.\n\n",
+ "properties": {
+ "insertcell": "\n\nThe **`HTMLTableRowElement.insertCell()`** method 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\n> row. The cell does not need to be appended separately\n> with [Node.appendChild] as would be the case if\n> [Document.createElement] had been used to create the new\n> `<td>` element.\n>\n> You can not use `insertCell()` to create a new `<th>`\n> element though.",
+ "rowindex": "\n\nThe **`HTMLTableRowElement.rowIndex`** read-only property\nrepresents the position of a row in relation to the whole `table`.\n\nEven when the `thead`, `tbody`, and\n`tfoot` elements are out of order in the HTML, browsers render the\ntable in the right order. Therefore the rows count from `<thead>` to\n`<tbody>`, from `<tbody>` to\n`<tfoot>`."
+ }
+ },
+ "htmltablesectionelement": {
+ "docs": "\n\nThe **`HTMLTableSectionElement`** interface provides special properties and methods (beyond the [HTMLElement] interface it also has available to it by inheritance) for manipulating the layout and presentation of sections, that is headers, footers and bodies (`thead`, `tfoot`, and `tbody`, respectively) in an HTML table.\n\n"
+ },
+ "htmltemplateelement": {
+ "docs": "\n\nThe **`HTMLTemplateElement`** interface enables access to the contents of an HTML `template` element.\n\n",
+ "properties": {
+ "content": "\n\nThe **`HTMLTemplateElement.content`** property returns a\n`<template>` element's template contents (a\n[DocumentFragment])."
+ }
+ },
+ "htmltextareaelement": {
+ "docs": "\n\nThe **`HTMLTextAreaElement`** interface provides special properties and methods for manipulating the layout and presentation of `textarea` elements.\n\n",
+ "properties": {
+ "labels": "\n\nThe **`HTMLTextAreaElement.labels`** read-only property returns\na [NodeList] of the `label` elements associated with the\n`textArea` element.",
+ "select_event": "\n\nThe **`select`** event fires when some text has been selected.",
+ "selectionchange_event": "\n\nThe **`selectionchange`** event of the [Selection API](/en-US/docs/Web/API/Selection) is fired when the text selection within an `textarea` element is changed.\nThis includes both changes in the selected range of characters, or if the caret moves.\n\nThis event is not cancelable.\n\nThe event is usually processed by adding an event listener on the `textarea`, and in the handler function read by the [HTMLTextAreaElement] `selectionStart`, `selectionEnd` and `selectionDirection` properties.\n\nIt is also possible to add a listener on the global `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."
+ }
+ },
+ "htmltimeelement": {
+ "docs": "\n\nThe **`HTMLTimeElement`** interface provides special properties (beyond the regular [HTMLElement] interface it also has available to it by inheritance) for manipulating `time` elements.\n\n",
+ "properties": {
+ "datetime": "\n\nThe\n**`HTMLTimeElement.dateTime`**\nproperty is a string that reflects the [`datetime`](/en-US/docs/Web/HTML/Element/time#datetime) HTML attribute, containing a machine-readable form of the element's date and\ntime value.\n\nThe format of the string must follow one of the following HTML microsyntaxes:\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th scope=\"col\">Microsyntax</th>\n <th scope=\"col\">Description</th>\n <th scope=\"col\">Examples</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>Valid month string</td>\n <td><em>YYYY</em><code>-</code><em>MM</em></td>\n <td><code>2011-11</code>, <code>2013-05</code></td>\n </tr>\n <tr>\n <td>Valid date string</td>\n <td><em>YYYY</em><code>-</code><em>MM</em><code>-</code><em>DD</em></td>\n <td><code>1887-12-01</code></td>\n </tr>\n <tr>\n <td>Valid yearless date string</td>\n <td><em>MM</em><code>-</code><em>DD</em></td>\n <td><code>11-12</code></td>\n </tr>\n <tr>\n <td>Valid time string</td>\n <td>\n <em>HH</em><code>:</code><em>MM</em><br /><em>HH</em><code>:</code\n ><em>MM</em><code>:</code><em>SS</em><br /><em>HH</em><code>:</code\n ><em>MM</em><code>:</code><em>SS</em><code>.</code><em>mmm</em>\n </td>\n <td>\n <code>23:59</code><br /><code>12:15:47</code><br /><code\n >12:15:52.998</code\n >\n </td>\n </tr>\n <tr>\n <td>Valid local date and time string</td>\n <td>\n <em>YYYY</em><code>-</code><em>MM</em><code>-</code><em>DD</em>\n <em>HH</em><code>:</code><em>MM</em><br /><em>YYYY</em><code>-</code\n ><em>MM</em><code>-</code><em>DD</em> <em>HH</em><code>:</code\n ><em>MM</em><code>:</code><em>SS</em><br /><em>YYYY</em><code>-</code\n ><em>MM</em><code>-</code><em>DD</em> <em>HH</em><code>:</code\n ><em>MM</em><code>:</code><em>SS</em><code>.</code><em>mmm</em><br /><em\n >YYYY</em\n ><code>-</code><em>MM</em><code>-</code><em>DD</em><code>T</code\n ><em>HH</em><code>:</code><em>MM</em><br /><em>YYYY</em><code>-</code\n ><em>MM</em><code>-</code><em>DD</em><code>T</code><em>HH</em\n ><code>:</code><em>MM</em><code>:</code><em>SS</em><br /><em>YYYY</em\n ><code>-</code><em>MM</em><code>-</code><em>DD</em><code>T</code\n ><em>HH</em><code>:</code><em>MM</em><code>:</code><em>SS</em\n ><code>.</code><em>mmm</em>\n </td>\n <td>\n <code\n >2013-12-25 11:12<br />1972-07-25 13:43:07<br />1941-03-15\n 07:06:23.678<br />2013-12-25T11:12<br />1972-07-25T13:43:07<br />1941-03-15T07:06:23.678</code\n >\n </td>\n </tr>\n <tr>\n <td>Valid time-zone offset string</td>\n <td>\n <code>Z</code><br /><code>+</code><em>HHMM</em><br /><code>+</code\n ><em>HH</em><code>:</code><em>MM</em><br /><code>-</code><em>HHMM</em\n ><br /><code>-</code><em>HH</em><code>:</code><em>MM</em>\n </td>\n <td>\n <code>Z<br />+0200<br />+04:30<br />-0300<br />-08:00</code>\n </td>\n </tr>\n <tr>\n <td>Valid global date and time string</td>\n <td>\n <em\n >Any combination of a valid local date and time string followed by a\n valid time-zone offset string</em\n >\n </td>\n <td>\n <code\n >2013-12-25 11:12+0200<br />1972-07-25 13:43:07+04:30<br />1941-03-15\n 07:06:23.678Z<br />2013-12-25T11:12-08:00</code\n >\n </td>\n </tr>\n <tr>\n <td>Valid week string</td>\n <td><em>YYYY</em><code>-W</code><em>WW</em></td>\n <td><code>2013-W46</code></td>\n </tr>\n <tr>\n <td>Four or more ASCII digits</td>\n <td><em>YYYY</em></td>\n <td><code>2013</code>, <code>0001</code></td>\n </tr>\n <tr>\n <td>Valid duration string</td>\n <td>\n <code>P</code><em>d</em><code>D</code><code>T</code><em>h</em\n ><code>H</code><em>m</em><code>M</code><em>s</em><code>S</code\n ><br /><code>P</code><em>d</em><code>D</code><code>T</code><em>h</em\n ><code>H</code><em>m</em><code>M</code><em>s</em><code>.</code>X<code\n >S</code\n ><br /><code>P</code><em>d</em><code>D</code><code>T</code><em>h</em\n ><code>H</code><em>m</em><code>M</code><em>s</em><code>.</code>XX<code\n >S</code\n ><br /><code>P</code><em>d</em><code>D</code><code>T</code><em>h</em\n ><code>H</code><em>m</em><code>M</code><em>s</em><code>.</code>XXX<code\n >S</code\n ><br /><code>P</code><code>T</code><em>h</em><code>H</code><em>m</em\n ><code>M</code><em>s</em><code>S</code><br /><code>P</code><code>T</code\n ><em>h</em><code>H</code><em>m</em><code>M</code><em>s</em\n ><code>.</code>X<code>S</code><br /><code>P</code><code>T</code\n ><em>h</em><code>H</code><em>m</em><code>M</code><em>s</em\n ><code>.</code>XX<code>S</code><br /><code>P</code><code>T</code\n ><em>h</em><code>H</code><em>m</em><code>M</code><em>s</em\n ><code>.</code>XXX<code>S</code><br /><em>w</em><code>w </code><em>d</em\n ><code>d </code><em>h</em><code>h </code><em>m</em><code>m </code\n ><em>s</em><code>s</code>\n </td>\n <td>\n <code\n >P12DT7H12M13S<br />P12DT7H12M13.3S<br />P12DT7H12M13.45S<br />P12DT7H12M13.455S<br />PT7H12M13S<br />PT7H12M13.2S<br />PT7H12M13.56S<br />PT7H12M13.999S<br />7d\n 5h 24m 13s</code\n >\n </td>\n </tr>\n </tbody>\n</table>"
+ }
+ },
+ "htmltitleelement": {
+ "docs": "\n\nThe **`HTMLTitleElement`** interface is implemented by a document's `title`. This element inherits all of the properties and methods of the [HTMLElement] interface.\n\n",
+ "properties": {
+ "text": "\n\nThe **`text`** property of the [HTMLTitleElement] interface represents the text of the document's title. Only the text part is included; tags within the element and their content are stripped and ignored."
+ }
+ },
+ "htmltrackelement": {
+ "docs": "\n\nThe **`HTMLTrackElement`** interface represents an `track` element within the . This element can be used as a child of either `audio` or `video` to specify a text track containing information such as closed captions or subtitles.\n\n",
+ "properties": {
+ "cuechange_event": "\n\nThe **`cuechange`** event fires when a [TextTrack] has changed the currently displaying cues. The event is fired on both the `TextTrack` and the [HTMLTrackElement] in which it's being presented, if any.",
+ "src": "\n\nThe **`HTMLTrackElement.src`** property reflects the value of\nthe `track` element's [`src`](/en-US/docs/Web/HTML/Element/track#src) attribute, which\nindicates the URL of the text track's data."
+ }
+ },
+ "htmlulistelement": {
+ "docs": "\n\nThe **`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.\n\n"
+ },
+ "htmlunknownelement": {
+ "docs": "\n\nThe **`HTMLUnknownElement`** interface represents an invalid HTML element and derives from the [HTMLElement] interface, but without implementing any additional properties or methods.\n\n"
+ },
+ "htmlvideoelement": {
+ "docs": "\n\nImplemented by the `video` element, the **`HTMLVideoElement`** interface provides special properties and methods for manipulating video objects. It also inherits properties and methods of [HTMLMediaElement] and [HTMLElement].\n\nThe list of [supported media formats](/en-US/docs/Web/Media/Formats) varies from one browser to the other. You should either provide your video in a single format that all the relevant browsers supports, or provide multiple video sources in enough different formats that all the browsers you need to support are covered.\n\n",
+ "properties": {
+ "disablepictureinpicture": "\n\nThe [HTMLVideoElement] **`disablePictureInPicture`** property reflects the HTML attribute indicating whether the picture-in-picture feature is disabled for the current element.",
+ "enterpictureinpicture_event": "\n\nThe `enterpictureinpicture` event is fired when the [HTMLVideoElement] enters picture-in-picture mode successfully.\n\nThis event is not cancelable and does not bubble.",
+ "getvideoplaybackquality": "\n\nThe **[HTMLVideoElement]** method\n**`getVideoPlaybackQuality()`** creates and returns a\n[VideoPlaybackQuality] object containing metrics including how many\nframes have been lost.\n\nThe data returned can be used to evaluate the quality of the video stream.",
+ "leavepictureinpicture_event": "\n\nThe `leavepictureinpicture` event is fired when the [HTMLVideoElement] leaves picture-in-picture mode successfully.\n\nThis event is not cancelable and does not bubble.",
+ "requestpictureinpicture": "\n\nThe **[HTMLVideoElement]** method\n**`requestPictureInPicture()`** issues an asynchronous request\nto display the video in picture-in-picture mode.\n\nIt's not guaranteed that the video will be put into picture-in-picture. If permission\nto enter that mode is granted, the returned `Promise` will resolve and the\nvideo will receive a [HTMLVideoElement.enterpictureinpicture_event] event to let it know that it's now in picture-in-picture.",
+ "videoheight": "\n\nThe [HTMLVideoElement] interface's read-only **`videoHeight`** property indicates the [intrinsic height](#about_intrinsic_width_and_height) of the video, expressed in CSS pixels.\nIn simple terms, this is the height of the media in its natural size.",
+ "videowidth": "\n\nThe [HTMLVideoElement] interface's read-only **`videoWidth`** property indicates the [intrinsic width](/en-US/docs/Web/API/HTMLVideoElement/videoHeight#about_intrinsic_width_and_height) of the video, expressed in CSS pixels.\nIn simple terms, this is the width of the media in its natural size.\n\nSee [`HTMLVideoElement.videoHeight` > About intrinsic width and height](/en-US/docs/Web/API/HTMLVideoElement/videoHeight#about_intrinsic_width_and_height) for more details."
+ }
+ },
+ "idbcursor": {
+ "docs": "\n\n> **Note:** Not to be confused with [IDBCursorWithValue] which is just an **`IDBCursor`** interface with an additional **`value`** property.\n\nThe **`IDBCursor`** interface of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) represents a [cursor](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#cursor) for traversing or iterating over multiple records in a database.\n\nThe cursor has a source that indicates which index or object store it is iterating over. It has a position within the range, and moves in a direction that is increasing or decreasing in the order of record keys. The cursor enables an application to asynchronously process all the records in the cursor's range.\n\nYou can have an unlimited number of cursors at the same time. You always get the same `IDBCursor` object representing a given cursor. Operations are performed on the underlying index or object store.\n\n",
+ "properties": {
+ "advance": "\n\nThe **`advance()`** method of the [IDBCursor]\ninterface sets the number of times a cursor should move\nits position forward.\n\n",
+ "continue": "\n\nThe **`continue()`** method of the [IDBCursor]\ninterface advances the cursor to the next position along its direction, to the item\nwhose key matches the optional key parameter. If no key is specified, the cursor\nadvances to the immediate next position, based on its direction.\n\n",
+ "continueprimarykey": "\n\nThe **`continuePrimaryKey()`** method of the\n[IDBCursor] interface advances the cursor to the item whose key\nmatches the key parameter as well as whose primary key matches the primary key\nparameter.\n\nA typical use case, is to resume the iteration where a previous cursor has been closed,\nwithout having to compare the keys one by one.\n\nCalling this method more than once before new cursor data has been loaded - for\nexample, calling `continuePrimaryKey()` twice from the same onsuccess handler\n\\- results in an `InvalidStateError` being thrown on the second call because\nthe cursor's got value flag has been unset.\n\nThis method is only valid for cursors coming from an index. Using it for cursors coming\nfrom an object store will throw an error.\n\n",
+ "delete": "\n\nThe **`delete()`** method of the [IDBCursor]\ninterface returns an [IDBRequest] object, and, in a separate thread,\ndeletes the record at the cursor's position, without changing the cursor's position.\nOnce the record is deleted, the cursor's value is set to null.\n\nBe aware that you can't call `delete()` (or\n[IDBCursor.update]) on cursors obtained from\n[IDBIndex.openKeyCursor]. For such needs, you have to use\n[IDBIndex.openCursor] instead.\n\n",
+ "direction": "\n\nThe **`direction`** read-only property of the\n[IDBCursor] interface is a string that returns the\ndirection of traversal of the cursor (set using\n[IDBObjectStore.openCursor] for example). See the [Values](#values)\nsection below for possible values.\n\n",
+ "key": "\n\nThe **`key`** read-only property of the\n[IDBCursor] interface returns the key for the record at the cursor's\nposition. If the cursor is outside its range, this is set to undefined. The cursor's\nkey can be any data type.\n\n",
+ "primarykey": "\n\nThe **`primaryKey`** read-only property of the\n[IDBCursor] interface returns the cursor's current effective key. If the\ncursor is currently being iterated or has iterated outside its range, this is set to\nundefined. The cursor's primary key can be any data type.\n\n",
+ "request": "\n\nThe **`request`** read-only property of the [IDBCursor] interface returns the [IDBRequest] used to obtain the cursor.\n\n",
+ "source": "\n\nThe **`source`** read-only property of the\n[IDBCursor] interface returns the [IDBObjectStore] or\n[IDBIndex] that the cursor is iterating over. This function never returns\nnull or throws an exception, even if the cursor is currently being iterated, has\niterated past its end, or its transaction is not active.\n\n",
+ "update": "\n\nThe **`update()`** method of the [IDBCursor]\ninterface returns an [IDBRequest] object, and, in a separate thread,\nupdates the value at the current position of the cursor in the object store. If the\ncursor points to a record that has just been deleted, a new record is created.\n\nBe aware that you can't call `update()` (or\n[IDBCursor.delete]) on cursors obtained from\n[IDBIndex.openKeyCursor]. For such needs, you have to use\n[IDBIndex.openCursor] instead.\n\n"
+ }
+ },
+ "idbcursorwithvalue": {
+ "docs": "\n\nThe **`IDBCursorWithValue`** interface of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) represents a [cursor](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#cursor) for traversing or iterating over multiple records in a database. It is the same as the [IDBCursor], except that it includes the `value` property.\n\nThe cursor has a source that indicates which index or object store it is iterating over. It has a position within the range, and moves in a direction that is increasing or decreasing in the order of record keys. The cursor enables an application to asynchronously process all the records in the cursor's range.\n\nYou can have an unlimited number of cursors at the same time. You always get the same `IDBCursorWithValue` object representing a given cursor. Operations are performed on the underlying index or object store.\n\n",
+ "properties": {
+ "value": "\n\nThe **`value`** read-only property of the\n[IDBCursorWithValue] interface returns the value of the current cursor,\nwhatever that is.\n\n"
+ }
+ },
+ "idbdatabase": {
+ "docs": "\n\nThe **`IDBDatabase`** interface of the IndexedDB API provides a [connection to a database](/en-US/docs/Web/API/IndexedDB_API#database_connection); you can use an `IDBDatabase` object to open a [transaction](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#transaction) on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database.\n\n> **Note:** Everything you do in IndexedDB always happens in the context of a [transaction](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#transaction), representing interactions with data in the database. All objects in IndexedDB — including object stores, indexes, and cursors — are tied to a particular transaction. Thus, you cannot execute commands, access data, or open anything outside of a transaction.\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [IDBDatabase]\ninterface returns immediately and closes the connection in a separate thread.\n\nThe connection is not actually closed until all transactions created using this\nconnection are complete. No new transactions can be created for this connection once\nthis method is called. Methods that create transactions throw an exception if a closing\noperation is pending.\n\n",
+ "close_event": "\n\nThe `close` event is fired on `IDBDatabase` when the database connection is unexpectedly closed. This could happen, for example, if the underlying storage is removed or if the user clears the database in the browser's history preferences.\n\nNote that it is not fired if the database connection is closed normally using [`IDBDatabase.close()`](/en-US/docs/Web/API/IDBDatabase/close).",
+ "createobjectstore": "\n\nThe **`createObjectStore()`** method of the\n[IDBDatabase] interface creates and returns a new [IDBObjectStore].\n\nThe method takes the name of the store as well as a parameter object that lets you\ndefine important optional properties. You can use the property to uniquely identify\nindividual objects in the store. As the property is an identifier, it should be unique\nto every object, and every object should have that property.\n\nThis method can be called _only_ within a [`versionchange`](/en-US/docs/Web/API/IDBTransaction#version_change)\ntransaction.\n\n",
+ "deleteobjectstore": "\n\nThe **`deleteObjectStore()`** method of the\n[IDBDatabase] interface destroys the object store with the given name in\nthe connected database, along with any indexes that reference it.\n\nAs with [IDBDatabase.createObjectStore], this method can be called\n_only_ within a [`versionchange`](/en-US/docs/Web/API/IDBTransaction#version_change)\ntransaction.\n\n",
+ "name": "\n\nThe **`name`** read-only property of the\n`IDBDatabase` interface is a string that contains the\nname of the connected database.\n\n",
+ "objectstorenames": "\n\nThe **`objectStoreNames`** read-only property of the\n[IDBDatabase] interface is a [DOMStringList] containing a\nlist of the names of the [object stores](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#object_store) currently in the connected database.\n\n",
+ "transaction": "\n\nThe **`transaction`** method of the [IDBDatabase] interface immediately\nreturns a transaction object ([IDBTransaction]) containing the\n[IDBTransaction.objectStore] method, which you can use to access your\nobject store.\n\n",
+ "version": "\n\nThe **`version`** property of the [IDBDatabase]\ninterface is a [64-bit integer](/en-US/docs/NSPR_API_Reference/Long_Long_%2864-bit%29_Integers)\nthat contains the version of the connected database.\nWhen a database is first created, this attribute is an empty string.\n\n",
+ "versionchange_event": "\n\nThe `versionchange` event is fired when a database structure change ([`upgradeneeded`](/en-US/docs/Web/API/IDBOpenDBRequest/upgradeneeded_event) event send on an [`IDBOpenDBRequest`](/en-US/docs/Web/API/IDBOpenDBRequest) or [`IDBFactory.deleteDatabase`](/en-US/docs/Web/API/IDBFactory/deleteDatabase)) was requested elsewhere (most probably in\nanother window/tab on the same computer)."
+ }
+ },
+ "idbfactory": {
+ "docs": "\n\nThe **`IDBFactory`** interface of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) lets applications asynchronously access the indexed databases. The object that implements the interface is `window.indexedDB`. You open — that is, create and access — and delete a database with this object, and not directly with `IDBFactory`.\n\n",
+ "properties": {
+ "cmp": "\n\nThe **`cmp()`** method of the [IDBFactory]\ninterface compares two values as keys to determine equality and ordering for IndexedDB\noperations, such as storing and iterating.\n\n> **Note:** Do not use this method for comparing arbitrary JavaScript\n> values, because many JavaScript values are either not valid IndexedDB keys (booleans\n> and objects, for example) or are treated as equivalent IndexedDB keys (for example,\n> since IndexedDB ignores arrays with non-numeric properties and treats them as empty\n> arrays, so any non-numeric arrays are treated as equivalent). This throws an exception\n> if either of the values is not a valid key.",
+ "databases": "\n\nThe **`databases`** method of the [IDBFactory] interface returns a list representing all the available databases, including their names and versions.\n\n> **Note:** This method is introduced in a draft of a specifications and browser compatibility is limited.",
+ "deletedatabase": "\n\nThe **`deleteDatabase()`** method of the\n[IDBFactory] interface requests the deletion of a database. The method\nreturns an [IDBOpenDBRequest] object immediately, and performs the deletion\noperation asynchronously.\n\nIf the database is successfully deleted, then a `success` event is fired on\nthe request object returned from this method, with its `result` set to\n`undefined`. If an error occurs while the database is being deleted, then an\n`error` event is fired on the request object that is returned from this\nmethod.\n\nWhen `deleteDatabase()` is called, any other open connections to this\nparticular database will get a [versionchange](/en-US/docs/Web/API/IDBDatabase/versionchange_event) event.\n\n",
+ "open": "\n\nThe **`open()`** method of the [IDBFactory] interface requests opening a [connection to a database](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#database_connection).\n\nThe method returns an [IDBOpenDBRequest] object immediately, and performs the open operation asynchronously.\nIf the operation is successful, a `success` event is fired on the request object that is returned from this method, with its `result` attribute set to the new [IDBDatabase] object for the connection.\n\nMay trigger `upgradeneeded`, `blocked` or `versionchange` events.\n\n"
+ }
+ },
+ "idbindex": {
+ "docs": "\n\n`IDBIndex` interface of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) provides asynchronous access to an [index](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#index) in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data.\n\nYou can retrieve records in an object store through the primary key or by using an index. An index lets you look up records in an object store using properties of the values in the object stores records other than the primary key\n\nThe index is a persistent key-value storage where the value part of its records is the key part of a record in the referenced object store. The records in an index are automatically populated whenever records in the referenced object store are inserted, updated, or deleted. Each record in an index can point to only one record in its referenced object store, but several indexes can reference the same object store. When the object store changes, all indexes that refers to the object store are automatically updated.\n\nYou can grab a set of keys within a range. To learn more, see [IDBKeyRange].\n\n",
+ "properties": {
+ "count": "\n\nThe **`count()`** method of the [IDBIndex]\ninterface returns an [IDBRequest] object, and in a separate thread,\nreturns the number of records within a key range.\n\n",
+ "get": "\n\nThe **`get()`** method of the [IDBIndex]\ninterface returns an [IDBRequest] object, and, in a separate thread,\nfinds either the value in the referenced object store that corresponds to the given\nkey or the first corresponding value, if `key` is set to an\n[IDBKeyRange].\n\nIf a value is found, then a structured clone of it is created and set as the\n`result` of the request object: this returns the record the key is associated\nwith.\n\n",
+ "getall": "\n\nThe **`getAll()`** method of the [IDBIndex]\ninterface retrieves all objects that are inside the index.\n\nThere is a performance cost associated with looking at the `value` property\nof a cursor, because the object is created lazily. To use a feature\nlike `getAll()`, the browser has to create all the objects at once. If you\nare just interested in looking at each of the keys, for instance, it is more efficient\nto use a [cursor](/en-US/docs/Web/API/IDBCursor). If you are trying to get an\narray of all the objects in an object store, though, you should\nuse `getAll()`.",
+ "getallkeys": "\n\nThe **`getAllKeys()`** method of the [IDBIndex]\ninterface asynchronously retrieves the primary keys of all objects inside the index,\nsetting them as the `result` of the request object.",
+ "getkey": "\n\nThe **`getKey()`** method of the [IDBIndex]\ninterface returns an [IDBRequest] object, and, in a separate thread,\nfinds either the primary key that corresponds to the given key in this index or the\nfirst corresponding primary key, if `key` is set to an\n[IDBKeyRange].\n\nIf a primary key is found, it is set as the `result` of the request object.\nNote that this doesn't return the whole record as [IDBIndex.get] does.\n\n",
+ "isautolocale": "\n\nThe **`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`](/en-US/docs/Web/API/IDBObjectStore/createIndex#options) parameter to [`IDBObjectStore.createIndex()`](/en-US/docs/Web/API/IDBObjectStore/createIndex).)",
+ "keypath": "\n\nThe **`keyPath`** property of the [IDBIndex]\ninterface returns the [key path](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#key_path) of the current index. If null, this index is not auto-populated.\n\n",
+ "locale": "\n\nThe **`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`](/en-US/docs/Web/API/IDBObjectStore/createIndex#options) parameter to [`IDBObjectStore.createIndex()`](/en-US/docs/Web/API/IDBObjectStore/createIndex).) Note that this property always returns the current locale being used in this index, in other words, it never returns `\"auto\"`.",
+ "multientry": "\n\nThe **`multiEntry`** read-only property of the\n[IDBIndex] interface returns a boolean value that affects how the index\nbehaves when the result of evaluating the index's key path yields an array.\n\nThis is decided when the index is created, using the\n[IDBObjectStore.createIndex] method. This method takes an optional\n`options` parameter whose `multiEntry` property is set to `true`/`false`.\n\n",
+ "name": "\n\nThe **`name`** property of the [IDBIndex]\ninterface contains a string which names the index.\n\n",
+ "objectstore": "\n\nThe **`objectStore`** property of the [IDBIndex]\ninterface returns the object store referenced by the current index.\n\n",
+ "opencursor": "\n\nThe **`openCursor()`** method of the [IDBIndex]\ninterface returns an [IDBRequest] object, and, in a separate thread,\ncreates a [cursor](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#cursor) over the specified key\nrange.\n\nThe method sets the position of the cursor to the appropriate record, based on the\nspecified direction.\n\nIf the key range is not specified or is null, then the range includes all the records.\n\n",
+ "openkeycursor": "\n\nThe **`openKeyCursor()`** method of the\n[IDBIndex] interface returns an [IDBRequest] object, and, in\na separate thread, creates a cursor over the specified key range, as arranged by this\nindex.\n\nThe method sets the position of the cursor to the appropriate key, based on the\nspecified direction.\n\nIf the key range is not specified or is null, then the range includes all the keys.\n\n> **Note:** Cursors returned by `openKeyCursor()` do not\n> make the referenced value available as [`IDBIndex.openCursor`](/en-US/docs/Web/API/IDBIndex/openCursor) does.\n> This makes obtaining a list of keys much more efficient.\n\n",
+ "unique": "\n\nThe **`unique`** read-only property returns a boolean that\nstates whether the index allows duplicate keys.\n\nThis is decided when the index is created, using the\n[IDBObjectStore.createIndex] method. This method takes an optional\nparameter, `unique`, which if set to `true` means that the index\nwill not be able to accept duplicate entries.\n\n"
+ }
+ },
+ "idbkeyrange": {
+ "docs": "\n\nThe **`IDBKeyRange`** interface of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) represents a continuous interval over some data type that is used for keys. Records can be retrieved from [IDBObjectStore] and [IDBIndex] objects using keys or a range of keys. You can limit the range using lower and upper bounds. For example, you can iterate over all values of a key in the value range A–Z.\n\nA key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is _bounded_; if it has no bounds, it is _unbounded_. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs:\n\n| Range | Code |\n| --------------------------- | -------------------------------------- |\n| All keys ≥ **x** | `IDBKeyRange.lowerBound(x)` |\n| All keys > **x** | `IDBKeyRange.lowerBound(x, true)` |\n| All keys ≤ **y** | `IDBKeyRange.upperBound(y)` |\n| All keys < **y** | `IDBKeyRange.upperBound(y, true)` |\n| All keys ≥ **x** && ≤ **y** | `IDBKeyRange.bound(x, y)` |\n| All keys > **x** &&< **y** | `IDBKeyRange.bound(x, y, true, true)` |\n| All keys > **x** && ≤ **y** | `IDBKeyRange.bound(x, y, true, false)` |\n| All keys ≥ **x** &&< **y** | `IDBKeyRange.bound(x, y, false, true)` |\n| The key = **z** | `IDBKeyRange.only(z)` |\n\nA key is in a key range if the following conditions are true:\n\n- The lower value of the key range is one of the following:\n\n - `undefined`\n - Less than key value\n - Equal to key value if `lowerOpen` is `false`.\n\n- The upper value of the key range is one of the following:\n\n - `undefined`\n - Greater than key value\n - Equal to key value if `upperOpen` is `false`.\n\n",
+ "properties": {
+ "bound_static": "\n\nThe **`bound()`** static method of the [IDBKeyRange]\ninterface creates a new key range with the specified upper and lower bounds. The\nbounds can be open (that is, the bounds exclude the endpoint values) or closed (that\nis, the bounds include the endpoint values). By default, the bounds are closed.\n\n",
+ "includes": "\n\nThe `includes()` method of the [IDBKeyRange]\ninterface returns a boolean indicating whether a specified key is inside the key\nrange.\n\n",
+ "lower": "\n\nThe **`lower`** read-only property of the\n[IDBKeyRange] interface returns the lower bound of the key range.\n\n",
+ "lowerbound_static": "\n\nThe **`lowerBound()`** static method of the\n[IDBKeyRange] interface creates a new key range with only a lower bound.\nBy default, it includes the lower endpoint value and is closed.\n\n",
+ "loweropen": "\n\nThe **`lowerOpen`** read-only property of the\n[IDBKeyRange] interface returns a boolean indicating whether the\nlower-bound value is included in the key range.\n\n",
+ "only_static": "\n\nThe **`only()`** static method of the [IDBKeyRange]\ninterface creates a new key range containing a single value.\n\n",
+ "upper": "\n\nThe **`upper`** read-only property of the\n[IDBKeyRange] interface returns the upper bound of the key range.\n\n",
+ "upperbound_static": "\n\nThe **`upperBound()`** static method of the\n[IDBKeyRange] interface creates a new upper-bound key range. By default,\nit includes the upper endpoint value and is closed.\n\n",
+ "upperopen": "\n\nThe **`upperOpen`** read-only property of the\n[IDBKeyRange] interface returns a boolean indicating whether the\nupper-bound value is included in the key range.\n\n"
+ }
+ },
+ "idblocaleawarekeyrange": {
+ "docs": "\n\nThe **`IDBLocaleAwareKeyRange`** interface of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) is a Firefox-specific version of [IDBKeyRange] — it functions in exactly the same fashion, and has the same properties and methods, but it is intended for use with [IDBIndex] objects when the original index had a `locale` value specified upon its creation (see the [`options`](/en-US/docs/Web/API/IDBObjectStore/createIndex#options) parameter to [`IDBObjectStore.createIndex()`](/en-US/docs/Web/API/IDBObjectStore/createIndex)) — that is, it has [locale aware sorting](/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB#locale-aware_sorting) enabled."
+ },
+ "idbobjectstore": {
+ "docs": "\n\nThe **`IDBObjectStore`** interface of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) represents an object store in a database. Records within an object store are sorted according to their keys. This sorting enables fast insertion, look-up, and ordered retrieval.\n\n",
+ "properties": {
+ "add": "\n\nThe **`add()`** method of the [IDBObjectStore] interface returns an [IDBRequest] object, and, in a separate thread, creates a [structured clone](https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#structured-clone) of the value, and stores the cloned value in the object store. This is for adding new records to an object store.\n\nTo determine if the add operation has completed successfully, listen for the\ntransaction's `complete` event in addition to the\n`IDBObjectStore.add` request's `success` event, because the\ntransaction may still fail after the success event fires. In other words, the success\nevent is only triggered when the transaction has been successfully queued.\n\nThe add method is an _insert only_ method. If a\nrecord already exists in the object store with the `key` parameter as its\nkey, then an error `ConstraintError` event is fired on the returned request\nobject. For updating existing records, you should use the\n[IDBObjectStore.put] method instead.\n\n",
+ "autoincrement": "\n\nThe **`autoIncrement`** read-only property of the\n[IDBObjectStore] interface returns the value of the auto increment flag\nfor this object store.\n\nNote that every object store has its own separate auto increment counter.\n\n",
+ "clear": "\n\nThe **`clear()`** method of the [IDBObjectStore]\ninterface creates and immediately returns an [IDBRequest] object, and\nclears this object store in a separate thread. This is for deleting all the current\ndata out of an object store.\n\nClearing an object store consists of removing all records from the object store and\nremoving all records in indexes that reference the object store. To remove only some of\nthe records in a store, use [IDBObjectStore.delete] passing a key\nor [IDBKeyRange].\n\n",
+ "count": "\n\nThe **`count()`** method of the [IDBObjectStore]\ninterface returns an [IDBRequest] object, and, in a separate thread,\nreturns the total number of records that match the provided key or\n[IDBKeyRange]. If no arguments are provided, it returns the total number\nof records in the store.\n\n",
+ "createindex": "\n\nThe **`createIndex()`** method of the\n[IDBObjectStore] interface creates and returns a new\n[IDBIndex] object in the connected database. It creates a new\nfield/column defining a new data point for each database record to contain.\n\nBear in mind that IndexedDB indexes can contain _any_ JavaScript data type;\nIndexedDB uses the [structured clone algorithm](/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) to serialize stored objects, which allows for storage of simple\nand complex objects.\n\nNote that this method must be called only from a `VersionChange` transaction\nmode callback.\n\n",
+ "delete": "\n\nThe **`delete()`** method of the\n[IDBObjectStore] interface returns an [IDBRequest] object,\nand, in a separate thread, deletes the specified record or records.\n\nEither a key or an [IDBKeyRange] can be passed, allowing one or multiple\nrecords to be deleted from a store. To delete all records in a store, use\n[IDBObjectStore.clear].\n\nBear in mind that if you are using a [IDBCursor], you can use\nthe [IDBCursor.delete] method to more efficiently delete the current\nrecord — without having to explicitly look up the record's key.\n\n",
+ "deleteindex": "\n\nThe **`deleteIndex()`** method of the\n[IDBObjectStore] interface destroys the index with the specified name in\nthe connected database, used during a version upgrade.\n\nNote that this method must be called only from a `VersionChange` transaction\nmode callback. Note that this method synchronously modifies the\n[IDBObjectStore.indexNames] property.\n\n",
+ "get": "\n\nThe **`get()`** method of the [IDBObjectStore]\ninterface returns an [IDBRequest] object, and, in a separate thread,\nreturns the object selected by the specified key. This is for retrieving\nspecific records from an object store.\n\nIf a value is successfully found, then a structured clone of it is created and set as\nthe [`result`](/en-US/docs/Web/API/IDBRequest#attr_result) of the\nrequest object.\n\n> **Note:** This method produces the same result for: a) a record that doesn't exist in the database and b) a record that has an undefined value.\n> To tell these situations apart, call the `openCursor()` method with the same key. That method provides a cursor if the record exists, and no cursor if it does not.\n\n",
+ "getall": "\n\nThe **`getAll()`** method of the\n[IDBObjectStore] interface returns an [IDBRequest] object\ncontaining all objects in the object store matching the specified parameter or all\nobjects in the store if no parameters are given.\n\nIf a value is successfully found, then a structured clone of it is created and set as\nthe result of the request object.\n\nThis method produces the same result for:\n\n- a record that doesn't exist in the database\n- a record that has an undefined value\n\nTo tell these situations apart, you either call\n\n1. the [IDBObjectStore.openCursor] method with the same\n key. That method provides a cursor if the record exists, and no cursor if it does not.\n2. the [IDBObjectStore.count] method with the same key, which\n will return 1 if the row exists and 0 if it doesn't.",
+ "getallkeys": "\n\nThe `getAllKeys()` method of the [IDBObjectStore]\ninterface returns an [IDBRequest] object retrieves record keys for all\nobjects in the object store matching the specified parameter or all objects in the\nstore if no parameters are given.\n\nIf a value is successfully found, then a structured clone of it is created and set as\nthe result of the request object.\n\nThis method produces the same result for:\n\n- a record that doesn't exist in the database\n- a record that has an undefined value\n\nTo tell these situations apart, you need to call the\n[IDBObjectStore.openCursor] method with the same key. That\nmethod provides a cursor if the record exists, and no cursor if it does not.",
+ "getkey": "\n\nThe **`getKey()`** method of the\n[IDBObjectStore] interface returns an [IDBRequest] object,\nand, in a separate thread, returns the key selected by the specified query. This is\nfor retrieving specific records from an object store.\n\nIf a key is successfully found, then a structured clone of it is created and set as the\nresult of the request object.\n\n",
+ "index": "\n\nThe **`index()`** method of the [IDBObjectStore]\ninterface opens a named index in the current object store, after which it can be used\nto, for example, return a series of records sorted by that index using a cursor.\n\n",
+ "indexnames": "\n\nThe **`indexNames`** read-only property of the\n[IDBObjectStore] interface returns a list of the names of [indexes](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#index) on objects\nin this object store.\n\n",
+ "keypath": "\n\nThe **`keyPath`** read-only property of the\n[IDBObjectStore] interface returns the [key path](/en-US/docs/Web/API/IndexedDB_API/Basic_Terminology#key_path) of this object store.\n\nIf this property is null, the application must provide a key for each modification\noperation.\n\n",
+ "name": "\n\nThe **`name`** property of the [IDBObjectStore]\ninterface indicates the name of this object store.\n\n",
+ "opencursor": "\n\nThe **`openCursor()`** method of the\n[IDBObjectStore] interface returns an [IDBRequest] object,\nand, in a separate thread, returns a new [IDBCursorWithValue] object.\nUsed for iterating through an object store with a cursor.\n\nTo determine if the add operation has completed successfully, listen for the results's\n`success` event.\n\n",
+ "openkeycursor": "\n\nThe **`openKeyCursor()`** method of the\n[IDBObjectStore] interface returns an [IDBRequest] object\nwhose result will be set to an [IDBCursor] that can be used to iterate\nthrough matching results. Used for iterating through the keys of an object store with\na cursor.\n\nTo determine if the add operation has completed successfully, listen for the\nresults's `success` event.",
+ "put": "\n\nThe **`put()`** method of the [IDBObjectStore] interface updates a given record in a database, or inserts a new record if the given item does not already exist.\n\nIt returns an [IDBRequest] object, and, in a separate thread, creates a [structured clone](https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#structured-clone) of the value and stores the cloned value in the object store. This is for adding new records, or updating existing records in an object store when the transaction's mode is `readwrite`. If the record is successfully stored, then a success event is fired on the returned request object with the `result` set to the key for the stored record, and the `transaction` set to the transaction in which this object store is opened.\n\nThe put method is an _update or insert_ method.\nSee the [IDBObjectStore.add] method for an _insert only_ method.\n\nBear in mind that if you have a [IDBCursor] to the record you\nwant to update, updating it with [IDBCursor.update] is preferable to\nusing [IDBObjectStore.put]. Doing so makes it clear that an existing\nrecord will be updated, instead of a new record being inserted.\n\n",
+ "transaction": "\n\nThe **`transaction`** read-only property of the\n[IDBObjectStore] interface returns the transaction object to which this\nobject store belongs.\n\n"
+ }
+ },
+ "idbopendbrequest": {
+ "docs": "\n\nThe **`IDBOpenDBRequest`** interface of the IndexedDB API provides access to the results of requests to open or delete databases (performed using [IDBFactory.open] and [IDBFactory.deleteDatabase]), using specific event handler attributes.\n\n",
+ "properties": {
+ "blocked_event": "\n\nThe `blocked` handler is executed when an open connection to a database is blocking a `versionchange` transaction on the same database.\n\nThis event is not cancelable and does not bubble.",
+ "upgradeneeded_event": "\n\nThe `upgradeneeded` event is fired when an attempt was made to open a database with a version number higher than its current version.\n\nThis event is not cancelable and does not bubble."
+ }
+ },
+ "idbrequest": {
+ "docs": "\n\nThe **`IDBRequest`** interface of the IndexedDB API provides access to results of asynchronous requests to databases and database objects using event handler attributes. Each reading and writing operation on a database is done using a request.\n\nThe request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the `IDBRequest` instance.\n\nAll asynchronous operations immediately return an [IDBRequest] instance. Each request has a `readyState` that is set to the `'pending'` state; this changes to `'done'` when the request is completed or fails. When the state is set to `done`, every request returns a `result` and an `error`, and an event is fired on the request. When the state is still `pending`, any attempt to access the `result` or `error` raises an `InvalidStateError` exception.\n\nIn plain words, all asynchronous methods return a request object. If the request has been completed successfully, the result is made available through the `result` property and an event indicating success is fired at the request ([IDBRequest.success_event]). If an error occurs while performing the operation, the exception is made available through the `error` property and an error event is fired ([IDBRequest.error_event]).\n\nThe interface [IDBOpenDBRequest] is derived from `IDBRequest`.\n\n",
+ "properties": {
+ "error": "\n\nThe **`error`** read-only property of the\n[IDBRequest] interface returns the error in the event of an unsuccessful\nrequest.\n\n",
+ "error_event": "\n\nThe `error` handler is executed when an error caused a request to fail.\n\nThis event is not cancelable and does not bubble.",
+ "readystate": "\n\nThe **`readyState`** read-only property of the\n[IDBRequest] interface returns the state of the request.\n\nEvery request starts in the `pending` state. The state changes to\n`done` when the request completes successfully or when an error\noccurs.\n\n",
+ "result": "\n\nThe **`result`** read-only property of the\n[IDBRequest] interface returns the result of the request. If the request\nis not completed, the result is not available and an `InvalidStateError` exception is\nthrown.\n\n",
+ "source": "\n\nThe **`source`** read-only property of the\n[IDBRequest] interface returns the source of the request, such as an\nIndex or an object store. If no source exists (such as when calling\n[IDBFactory.open]), it returns null.\n\n",
+ "success_event": "\n\nThe `success` event is fired when an `IDBRequest` succeeds.\n\nThis event is not cancelable and does not bubble.",
+ "transaction": "\n\nThe **`transaction`** read-only property of the IDBRequest\ninterface returns the transaction for the request, that is, the transaction the\nrequest is being made inside.\n\nThis property can be `null` for requests not made within transactions,\nsuch as for requests returned from [IDBFactory.open] — in this case\nyou're just connecting to a database, so there is no transaction to return. If a\nversion upgrade is needed when opening a database then during the\n[IDBOpenDBRequest.upgradeneeded_event] event handler the\n**`transaction`** property will be an\n[IDBTransaction] with [IDBTransaction.mode] equal\nto `\"versionchange\"`, and can be used to access existing object stores and\nindexes, or abort the upgrade. Following the upgrade, the\n**`transaction`** property will again be `null`.\n\n"
+ }
+ },
+ "idbtransaction": {
+ "docs": "\n\nThe **`IDBTransaction`** interface of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) provides a static, asynchronous transaction on a database using event handler attributes. All reading and writing of data is done within transactions. You use [IDBDatabase] to start transactions, [IDBTransaction] to set the mode of the transaction (e.g. is it `readonly` or `readwrite`), and you access an [IDBObjectStore] to make a request. You can also use an `IDBTransaction` object to abort transactions.\n\nTransactions are started when the transaction is created, not when the first request is placed; for example consider this:\n\n```js\nconst trans1 = db.transaction(\"foo\", \"readwrite\");\nconst trans2 = db.transaction(\"foo\", \"readwrite\");\nconst objectStore2 = trans2.objectStore(\"foo\");\nconst objectStore1 = trans1.objectStore(\"foo\");\nobjectStore2.put(\"2\", \"key\");\nobjectStore1.put(\"1\", \"key\");\n```\n\nAfter the code is executed the object store should contain the value \"2\", since `trans2` should run after `trans1`.",
+ "properties": {
+ "abort": "\n\nThe **`abort()`** method of the [IDBTransaction]\ninterface rolls back all the changes to objects in the database associated with this\ntransaction.\n\nAll pending [IDBRequest] objects created during this transaction have\ntheir [IDBRequest.error] attribute set to an `AbortError` [DOMException].\n\n",
+ "abort_event": "\n\nThe `abort` event is fired when an `IndexedDB` transaction is aborted.\n\nThis can happen for any of the following reasons:\n\n- Bad requests, (E.g., trying to add the same key twice, or put the same index key when the key has a uniqueness constraint).\n- An explicit [IDBTransaction.abort] call.\n- An uncaught exception in the request's success/error handler.\n- An I/O error (an actual failure to write to disk, for example disk detached, or other OS/hardware failure).\n- Quota exceeded.\n\nThis non-cancelable event [bubbles](/en-US/docs/Learn/JavaScript/Building_blocks/Events#bubbling_and_capturing_explained) to the associated [IDBDatabase] object.",
+ "commit": "\n\nThe **`commit()`** method of the [IDBTransaction] interface commits the transaction if it is called on an active transaction.\n\nNote that `commit()` doesn't normally _have_ to be called — a transaction will automatically commit when all outstanding requests have been satisfied and no new requests have been made. `commit()` can be used to start the commit process without waiting for events from outstanding requests to be dispatched.\n\nIf it is called on a transaction that is not active, it throws an `InvalidStateError` [DOMException].\n\n",
+ "complete_event": "\n\nThe **`complete`** event of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) is fired when the transaction successfully completed.",
+ "db": "\n\nThe **`db`** read-only property of the [IDBTransaction] interface returns the database connection\nwith which this transaction is associated.\n\n",
+ "durability": "`IndexedDB`\n\nThe **`durability`** read-only property of the\n[IDBTransaction] interface returns the durability hint the transaction was\ncreated with. This is a hint to the user agent of whether to prioritize performance or\ndurability when committing the transaction.\n\nThe value of this property is defined in the `options` parameter when creating a transaction using [IDBDatabase.transaction].",
+ "error": "\n\nThe **`IDBTransaction.error`** property of the [IDBTransaction] interface\nreturns the type of error when there is an unsuccessful transaction.\n\n",
+ "error_event": "\n\nThe `error` event is fired on `IDBTransaction` when a request returns an error and the event bubbles up to the transaction object.\n\n> **Note:** To handle all the ways a transaction can fail, consider listening for the [IDBTransaction.abort_event] event instead.",
+ "mode": "\n\nThe **`mode`** read-only property of the\n[IDBTransaction] interface returns the current mode for accessing the\ndata in the object stores in the scope of the transaction (i.e. is the mode to be\nread-only, or do you want to write to the object stores?) The default value is\n`readonly`.\n\n",
+ "objectstore": "\n\nThe **`objectStore()`** method of the\n[IDBTransaction] interface returns an object store that has already been\nadded to the scope of this transaction.\n\nEvery call to this method on the same transaction object, with the same name, returns\nthe same [IDBObjectStore] instance. If this method is called on a different\ntransaction object, a different [IDBObjectStore] instance is returned.\n\n",
+ "objectstorenames": "\n\nThe **`objectStoreNames`** read-only property of the\n[IDBTransaction] interface returns a [DOMStringList] of names\nof [IDBObjectStore] objects."
+ }
+ },
+ "idbversionchangeevent": {
+ "docs": "\n\nThe **`IDBVersionChangeEvent`** interface of the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API) indicates that the version of the database has changed, as the result of an [IDBOpenDBRequest.upgradeneeded_event] event handler function.\n\n",
+ "properties": {
+ "newversion": "\n\nThe **`newVersion`** read-only property of the\n[IDBVersionChangeEvent] interface returns the new version number of the\ndatabase.\n\n",
+ "oldversion": "\n\nThe **`oldVersion`** read-only property of the\n[IDBVersionChangeEvent] interface returns the old version number of the\ndatabase.\n\nWhen the opened database doesn't exist yet, the value of `oldVersion` is 0.\n\n"
+ }
+ },
+ "identitycredential": {
+ "docs": "\n\nThe **`IdentityCredential`** interface of the [Federated Credential Management API (FedCM)](/en-US/docs/Web/API/FedCM_API) represents a user identity credential arising from a successful federated sign-in.\n\nA successful [CredentialsContainer.get] call that includes an `identity` option fulfills with an `IdentityCredential` instance.\n\n",
+ "properties": {
+ "token": "\n\nThe **`token`** read-only property of the [IdentityCredential] interface returns the token used to validate the associated sign-in."
+ }
+ },
+ "identityprovider": {
+ "docs": "\n\nThe **`IdentityProvider`** interface of the [Federated Credential Management (FedCM) API](/en-US/docs/Web/API/FedCM_API) represents an identity provider (IdP) and provides access to related information.\n\n",
+ "properties": {
+ "getuserinfo_static": "\n\nThe **`getUserInfo()`** static method of the [IdentityProvider] interface returns information about a previously signed in user, 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 previously signed in user returns to the relying party (RP) site.\n\nThis 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."
+ }
+ },
+ "idledeadline": {
+ "docs": "\n\nThe `IdleDeadline` interface is used as the data type of the input parameter to idle callbacks established by calling [Window.requestIdleCallback]. It offers a method, [IdleDeadline.timeRemaining], which lets you determine how much longer the user agent estimates it will remain idle and a property, [IdleDeadline.didTimeout], which lets you determine if your callback is executing because its timeout duration expired.\n\nTo learn more about how request callbacks work, see [Collaborative Scheduling of Background Tasks](/en-US/docs/Web/API/Background_Tasks_API).",
+ "properties": {
+ "didtimeout": "\n\nThe read-only **`didTimeout`** property on the\n**[IdleDeadline]** interface is a Boolean value which\nindicates whether or not the idle callback is being invoked because the timeout interval\nspecified when [Window.requestIdleCallback] was called has expired.\n\nIf `didTimeout` is `true`, the `IdleDeadline` object's\n[IdleDeadline.timeRemaining] method will return\napproximately 0.\n\nIdle callbacks support the concept of a timeout in order to ensure that whatever task\nthey're meant to perform actually happens, even if the user agent never has enough idle\ntime available. Your callback will typically check the value of `didTimeout`\nif it needs to perform an action even if the browser is too busy to grant you the time;\nyou should react by performing the needed task or, ideally, a minimal amount of work\nthat can be done to keep things moving along, then schedule a new callback to try again\nto get the rest of the work done.",
+ "timeremaining": "\n\nThe **`timeRemaining()`** method\non the [IdleDeadline] interface returns the estimated number of\nmilliseconds remaining in the current idle period. The callback can call this method at\nany time to determine how much time it can continue to work before it must return. For\nexample, if the callback finishes a task and has another one to begin, it can call\n`timeRemaining()` to see if there's enough time to complete the next task. If\nthere isn't, the callback can just return immediately, or look for other work to do with\nthe remaining time.\n\nBy the time `timeRemaining()` reaches 0, it is suggested that the callback\nshould return control to the user agent's event loop."
+ }
+ },
+ "idledetector": {
+ "docs": "\n\nThe **`IdleDetector`** interface of the [idle_detection_api] provides methods and events for detecting user activity on a device or screen.\n\nThis interface requires a secure context.\n\n",
+ "properties": {
+ "change_event": "\n\nThe **`change`** event of the [IdleDetector] interface fires when the value of `userState` or `screenState` has changed.",
+ "requestpermission_static": "\n\nThe **`requestPermission()`** static method of the [IdleDetector]\ninterface returns a `Promise` that resolves with a string when the user has chosen\nwhether to grant the origin access to their idle state. Resolves with\n`\"granted\"` on acceptance and `\"denied\"` on refusal.",
+ "screenstate": "\n\nThe **`screenState`** read-only property of the [IdleDetector] interface\nreturns a string indicating whether the screen is locked, one of `\"locked\"` or\n`\"unlocked\"`.",
+ "start": "\n\nThe **`start()`** method of the [IdleDetector] interface returns a\n`Promise` that resolves when the detector starts listening for changes in the\nuser's idle state. This\nmethod takes an optional `options` object with the `threshold` in milliseconds\nwhere inactivity should be reported and `signal` for an `AbortSignal` to abort\nthe idle detector.",
+ "userstate": "\n\nThe **`userState`** read-only property of the [IdleDetector] interface returns a string indicating whether the user has interacted with the device since the call to `start()`."
+ }
+ },
+ "iirfilternode": {
+ "docs": "\n\nThe **`IIRFilterNode`** interface of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) is a [AudioNode] processor which implements a general **[infinite impulse response](https://en.wikipedia.org/wiki/Infinite_impulse_response)** (IIR) filter; this type of filter can be used to implement tone control devices and graphic equalizers as well. It lets the parameters of the filter response be specified, so that it can be tuned as needed.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td>Same as on the input</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>\n\nTypically, it's best to use the [BiquadFilterNode] interface to implement higher-order filters. There are several reasons why:\n\n- Biquad filters are typically less sensitive to numeric quirks.\n- The filter parameters of biquad filters can be automated.\n- All even-ordered IIR filters can be created using [BiquadFilterNode].\n\nHowever, if you need to create an odd-ordered IIR filter, you'll need to use `IIRFilterNode`. You may also find this interface useful if you don't need automation, or for other reasons.\n\n> **Note:** Once the node has been created, you can't change its coefficients.\n\n`IIRFilterNode`s have a tail-time reference; they continue to output non-silent audio with zero input. As an IIR filter, the non-zero input continues forever, but this can be limited after some finite time in practice, when the output has approached zero closely enough. The actual time that takes depends on the filter coefficients provided.",
+ "properties": {
+ "getfrequencyresponse": "\n\nThe `getFrequencyResponse()` method of the [IIRFilterNode]\ninterface takes the current filtering algorithm's settings and calculates the\nfrequency response for frequencies specified in a specified array of frequencies.\n\nThe two output arrays, `magResponseOutput` and\n`phaseResponseOutput`, must be created before calling this method; they\nmust be the same size as the array of input frequency values\n(`frequencyArray`)."
+ }
+ },
+ "imagebitmap": {
+ "docs": "\n\nThe **`ImageBitmap`** interface represents a bitmap image which can be drawn to a `canvas` without undue latency. It can be created from a variety of source objects using the [createImageBitmap] factory method. `ImageBitmap` provides an asynchronous and resource efficient pathway to prepare textures for rendering in WebGL.\n\n`ImageBitmap` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).",
+ "properties": {
+ "close": "\n\nThe **`ImageBitmap.close()`**\nmethod disposes of all graphical resources associated with an `ImageBitmap`.",
+ "height": "\n\nThe read-only **`ImageBitmap.height`** property returns the [ImageBitmap] object's height in CSS pixels.",
+ "width": "\n\nThe read-only **`ImageBitmap.width`** property returns the [ImageBitmap] object's width in CSS pixels."
+ }
+ },
+ "imagebitmaprenderingcontext": {
+ "docs": "\n\nThe **`ImageBitmapRenderingContext`** interface is a canvas rendering context that provides the functionality to replace the canvas's contents with the given [ImageBitmap]. Its context id (the first argument to [HTMLCanvasElement.getContext] or [OffscreenCanvas.getContext]) is `\"bitmaprenderer\"`.\n\nThis interface is available in both the window and the [worker](/en-US/docs/Web/API/Web_Workers_API) context.",
+ "properties": {
+ "transferfromimagebitmap": "\n\nThe **`ImageBitmapRenderingContext.transferFromImageBitmap()`**\nmethod displays the given [ImageBitmap] in the canvas associated with this\nrendering context. The ownership of the `ImageBitmap` is transferred to the\ncanvas as well.\n\nThis method was previously named `transferImageBitmap()`, but was renamed in\na spec change. The old name is being kept as an alias to avoid code breakage."
+ }
+ },
+ "imagecapture": {
+ "docs": "\n\nThe **`ImageCapture`** interface of the [MediaStream Image Capture API](/en-US/docs/Web/API/MediaStream_Image_Capture_API) provides methods to enable the capture of images or photos from a camera or other photographic device. It provides an interface for capturing images from a photographic device referenced through a valid [MediaStreamTrack].",
+ "properties": {
+ "getphotocapabilities": "\n\nThe **`getPhotoCapabilities()`**\nmethod of the [ImageCapture] interface returns a `Promise`\nthat resolves with an object containing the ranges of\navailable configuration options.",
+ "getphotosettings": "\n\nThe **`getPhotoSettings()`** method of\nthe [ImageCapture] interface returns a `Promise` that\nresolves with an object containing the current photo\nconfiguration settings.",
+ "grabframe": "\n\nThe **`grabFrame()`** method of the\n[ImageCapture] interface takes a snapshot of the live video in a\n[MediaStreamTrack] and returns a `Promise` that resolves with\na [ImageBitmap] containing the snapshot.",
+ "takephoto": "\n\nThe **`takePhoto()`** method of the\n[ImageCapture] interface takes a single exposure using the video capture\ndevice sourcing a [MediaStreamTrack] and returns a `Promise`\nthat resolves with a [Blob] containing the data.",
+ "track": "\n\nThe **`track`** read-only property of the\n[ImageCapture] interface returns a reference to the\n[MediaStreamTrack] passed to the\n[ImageCapture.ImageCapture] constructor."
+ }
+ },
+ "imagedata": {
+ "docs": "\n\nThe **`ImageData`** interface represents the underlying pixel data of an area of a `canvas` element.\n\nIt is created using the [ImageData.ImageData] constructor or creator methods on the [CanvasRenderingContext2D] object associated with a canvas: [CanvasRenderingContext2D.createImageData] and [CanvasRenderingContext2D.getImageData]. It can also be used to set a part of the canvas by using [CanvasRenderingContext2D.putImageData].\n\n",
+ "properties": {
+ "colorspace": "\n\nThe read-only **`ImageData.colorSpace`** property is a string indicating the color space of the image data.\n\nThe color space can be set during `ImageData` initialization using either the [`ImageData()`](/en-US/docs/Web/API/ImageData/ImageData) constructor or the [`createImageData()`](/en-US/docs/Web/API/CanvasRenderingContext2D/createImageData) method.",
+ "data": "\n\nThe readonly **`ImageData.data`** property returns a\n`Uint8ClampedArray` 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).",
+ "height": "\n\nThe readonly **`ImageData.height`** property returns the number\nof rows in the [ImageData] object.",
+ "width": "\n\nThe readonly **`ImageData.width`** property returns the number\nof pixels per row in the [ImageData] object."
+ }
+ },
+ "imagedecoder": {
+ "docs": "\n\nThe **`ImageDecoder`** interface of the [WebCodecs API] provides a way to unpack and decode encoded image data.",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [ImageDecoder] interface ends all pending work and releases system resources.",
+ "complete": "\n\nThe **`complete`** read-only property of the [ImageDecoder] interface returns true if encoded data has completed buffering.",
+ "completed": "\n\nThe **`completed`** read-only property of the [ImageDecoder] interface returns a promise that resolves once encoded data has finished buffering.",
+ "decode": "\n\nThe **`decode()`** method of the [ImageDecoder] interface enqueues a control message to decode the frame of an image.",
+ "istypesupported_static": "\n\nThe **`ImageDecoder.isTypeSupported()`** static method checks if a given [MIME type](/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) can be decoded by the user agent.",
+ "reset": "\n\nThe **`reset()`** method of the [ImageDecoder] interface aborts all pending `decode()` operations; rejecting all pending promises. All other state will be unchanged. Class methods can continue to be invoked after `reset()`. E.g., calling `decode()` after `reset()` is permitted.",
+ "tracks": "\n\nThe **`tracks`** read-only property of the [ImageDecoder] interface returns a list of the tracks in the encoded image data.",
+ "type": "\n\nThe **`type`** read-only property of the [ImageDecoder] interface reflects the [MIME type](/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) configured during construction."
+ }
+ },
+ "imagetrack": {
+ "docs": "\n\nThe **`ImageTrack`** interface of the [WebCodecs API] represents an individual image track.\n\n",
+ "properties": {
+ "animated": "\n\nThe **`animated`** property of the [ImageTrack] interface returns `true` if the track is animated and therefore has multiple frames.",
+ "framecount": "\n\nThe **`frameCount`** property of the [ImageTrack] interface returns the number of frames in the track.",
+ "repetitioncount": "\n\nThe **`repetitionCount`** property of the [ImageTrack] interface returns the number of repetitions of this track.",
+ "selected": "\n\nThe **`selected`** property of the [ImageTrack] interface returns `true` if the track is selected for decoding."
+ }
+ },
+ "imagetracklist": {
+ "docs": "\n\nThe **`ImageTrackList`** interface of the [WebCodecs API] represents a list of image tracks.",
+ "properties": {
+ "length": "\n\nThe **`length`** property of the [ImageTrackList] interface returns the length of the `ImageTrackList`.",
+ "ready": "\n\nThe **`ready`** property of the [ImageTrackList] interface returns a `Promise` that resolves when the `ImageTrackList` is populated with [ImageTrack].",
+ "selectedindex": "\n\nThe **`selectedIndex`** property of the [ImageTrackList] interface returns the `index` of the selected track.",
+ "selectedtrack": "\n\nThe **`selectedTrack`** property of the [ImageTrackList] interface returns an [ImageTrack] object representing the currently selected track."
+ }
+ },
+ "ink": {
+ "docs": "\n\nThe **`Ink`** interface of the [Ink API](/en-US/docs/Web/API/Ink_API) provides access to [InkPresenter] objects for the application to use to render ink strokes.\n\n",
+ "properties": {
+ "requestpresenter": "\n\nThe **`requestPresenter()`** method of the [Ink] interface returns a `Promise` that fulfills with an [InkPresenter] object to handle rendering strokes."
+ }
+ },
+ "inkpresenter": {
+ "docs": "\n\nThe **`InkPresenter`** interface of the [Ink API](/en-US/docs/Web/API/Ink_API) provides the ability to instruct the OS-level compositor to render ink strokes between pointer event dispatches.\n\n",
+ "properties": {
+ "expectedimprovement": "\n\nThe **`expectedImprovement`** read-only property of the [InkPresenter] interface returns a value, in milliseconds, indicating the latency improvement that can be expected using this presenter.\n\n### Value\n\nA number.",
+ "presentationarea": "\n\nThe **`presentationArea`** read-only property of the [InkPresenter] interface returns the [Element] inside which rendering of ink strokes is confined.\n\nIf the preceding [Ink.requestPresenter] method call included a specific `presentationArea` element definition, then that will be the element returned. Otherwise, the default is returned, which is the containing viewport.\n\nThis area is always the client coordinates for the element's border box, so moving the element or scrolling the element requires no recalculation on the developer's part.\n\n### Value\n\nAn [Element].",
+ "updateinktrailstartpoint": "\n\nThe **`updateInkTrailStartPoint()`** method of the [InkPresenter] interface indicates which [PointerEvent] was used as the last rendering point for the current frame, allowing the OS-level compositor to render a delegated ink trail ahead of the next pointer event being dispatched."
+ }
+ },
+ "inputdevicecapabilities": {
+ "docs": "\n\nThe **`InputDeviceCapabilities`** interface of the [InputDeviceCapabilities API] provides information about the physical device or a group of related devices responsible for generating input events. Events caused by the same physical input device get the same instance of this object, but the converse isn't true. For example, two mice with the same capabilities in a system may appear as a single `InputDeviceCapabilities` instance.\n\nIn some instances, `InputDeviceCapabilities` represents the capabilities of logical devices rather than physical devices. This allows, for example, touchscreen keyboards and physical keyboards to be represented the same way when they produce the same input.",
+ "properties": {
+ "firestouchevents": "\n\nThe **`firesTouchEvents`** read-only property of the [InputDeviceCapabilities] interface returns a boolean value that indicates whether the device dispatches touch events.\n\nYou can use this property to detect mouse events that represent an action that may\nalready have been handled by touch event handlers. This doesn't necessarily mean the\ndevice is a touch screen. For example, stylus and mouse devices typically generate\ntouch events on mobile browsers."
+ }
+ },
+ "inputdeviceinfo": {
+ "docs": "\n\nThe **`InputDeviceInfo`** interface of the [Media Capture and Streams API] gives access to the capabilities of the input device that it represents.\n\n`InputDeviceInfo` objects are returned by [MediaDevices.enumerateDevices] if the returned device is an audio or video input device.\n\n",
+ "properties": {
+ "getcapabilities": "\n\nThe **`getCapabilities()`** method of the [InputDeviceInfo] interface returns a `MediaTrackCapabilities` object describing the primary audio or video track of the device's [MediaStream]."
+ }
+ },
+ "inputevent": {
+ "docs": "\n\nThe **`InputEvent`** interface represents an event notifying the user of editable content changes.\n\n",
+ "properties": {
+ "data": "\n\nThe **`data`** read-only property of the\n[InputEvent] interface returns a string with inserted\ncharacters. This may be an empty string if the change doesn't insert text, such as when\ncharacters are deleted.",
+ "datatransfer": "\n\nThe **`dataTransfer`** read-only property of the\n[InputEvent] interface returns a [DataTransfer] object\ncontaining information about richtext or plaintext data being added to or removed from\neditable content.",
+ "gettargetranges": "\n\nThe **`getTargetRanges()`** method of the [InputEvent] interface returns an array of static ranges that will be affected by a change to the DOM if the input event is not canceled.\n\nThis allows web apps to override text edit behavior before the browser modifies the DOM tree, and provides more control over input events to improve performance.\n\nDepending on the value of `inputType` and the current editing host, the expected return value of this method varies:\n\n<table>\n <thead>\n <tr>\n <th>inputType</th>\n <th>Editing host</th>\n <th>Response of <code>getTargetRanges()</code></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>\"historyUndo\"</code> or <code>\"historyRedo\"</code></td>\n <td>Any</td>\n <td>empty Array</td>\n </tr>\n <tr>\n <td>All remaining</td>\n <td><code>contenteditable</code></td>\n <td>\n an Array of\n [StaticRange]\n objects associated with event\n </td>\n </tr>\n <tr>\n <td>All remaining</td>\n <td>\n <a href=\"/en-US/docs/Web/HTML/Element/input\"><code>input</code></a>\n or <a href=\"/en-US/docs/Web/HTML/Element/textarea\"><code>textarea</code></a>\n </td>\n <td>\n an empty Array\n </td>\n </tr>\n </tbody>\n</table>",
+ "inputtype": "\n\nThe **`inputType`** read-only property of the\n[InputEvent] interface returns the type of change made to editable content.\nPossible changes include for example inserting, deleting, and formatting text.",
+ "iscomposing": "\n\nThe **`InputEvent.isComposing`** read-only property returns a\nboolean value indicating if the event is fired after\n[Element/compositionstart_event] and before [Element/compositionend_event]."
+ }
+ },
+ "installevent": {
+ "docs": "\n\nThe parameter passed into the [ServiceWorkerGlobalScope.install_event] handler, the `InstallEvent` interface represents an install action that is dispatched on the [ServiceWorkerGlobalScope] of a [ServiceWorker]. As a child of [ExtendableEvent], it ensures that functional events such as [FetchEvent] are not dispatched during installation.\n\nThis interface inherits from the [ExtendableEvent] interface.\n\n> **Note:** Instead of using the deprecated `ServiceWorkerGlobalScope.oninstall()` handler to catch events of this type, instead handle the (non-deprecated) [`install`](/en-US/docs/Web/API/ServiceWorkerGlobalScope/install_event) using a listener added with [`addEventListener()`](/en-US/docs/Web/API/EventTarget/addEventListener)."
+ },
+ "intersectionobserver": {
+ "docs": "\n\nThe **`IntersectionObserver`** interface of the [Intersection Observer API](/en-US/docs/Web/API/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 . The ancestor element or viewport is referred to as the root.\n\nWhen 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.",
+ "properties": {
+ "disconnect": "\n\nThe [IntersectionObserver] method\n**`disconnect()`** stops watching all of its target elements\nfor visibility changes.",
+ "observe": "\n\nThe [IntersectionObserver] method\n**`observe()`** 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\nTo stop observing the element, call\n[IntersectionObserver.unobserve].\n\nWhen 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\n[IntersectionObserverEntry] 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:** the observer [callback](/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver#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.\n> This 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](/en-US/docs/Web/API/IntersectionObserverEntry) with [`intersecting`](/en-US/docs/Web/API/IntersectionObserverEntry/isIntersecting) set to `false`.\n> An element inside the viewport will result in the callback being immediately called with at least one entry with `intersecting` set to `true`.",
+ "root": "\n\nThe [IntersectionObserver] interface's read-only\n**`root`** property identifies the [Element] or\n[Document] whose bounds are treated as the \nof the for the element which is the observer's target.\n\nIf the `root` is `null`, then the bounds of the actual document\nviewport are used.",
+ "rootmargin": "\n\nThe [IntersectionObserver] interface's read-only\n**`rootMargin`** 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\n[IntersectionObserver.root] element's \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\nSee [how intersections are calculated](/en-US/docs/Web/API/Intersection_Observer_API#how_intersection_is_calculated)\nfor a more in-depth look at the root margin and how it works with\nthe root's bounding box.",
+ "takerecords": "\n\nThe [IntersectionObserver] method\n**`takeRecords()`** returns an array of\n[IntersectionObserverEntry] 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:** If you use the callback to monitor these changes, you don't\n> need to call this method. Calling this method clears the pending intersection list, so\n> the callback will not be run.",
+ "thresholds": "\n\nThe [IntersectionObserver] interface's read-only\n**`thresholds`** property returns the list of intersection\nthresholds that was specified when the observer was instantiated with\n[IntersectionObserver.IntersectionObserver]. If\nonly one threshold ratio was provided when instantiating the object, this will be an\narray containing that single value.\n\nSee the [Intersection Observer](/en-US/docs/Web/API/Intersection_Observer_API#thresholds) page to\nlearn how thresholds work.",
+ "unobserve": "\n\nThe [IntersectionObserver] method\n**`unobserve()`** instructs the\n`IntersectionObserver` to stop observing the specified target\nelement."
+ }
+ },
+ "intersectionobserverentry": {
+ "docs": "\n\nThe **`IntersectionObserverEntry`** interface of the [Intersection Observer API](/en-US/docs/Web/API/Intersection_Observer_API) describes the intersection between the target element and its root container at a specific moment of transition.\n\nInstances of `IntersectionObserverEntry` are delivered to an [IntersectionObserver] callback in its `entries` parameter; otherwise, these objects can only be obtained by calling [IntersectionObserver.takeRecords].",
+ "properties": {
+ "boundingclientrect": "\n\nThe [IntersectionObserverEntry] interface's read-only\n**`boundingClientRect`** property returns a\n[DOMRectReadOnly] which in essence describes a rectangle describing the\nsmallest rectangle that contains the entire target element.",
+ "intersectionratio": "\n\nThe [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.",
+ "intersectionrect": "\n\nThe [IntersectionObserverEntry] interface's\nread-only **`intersectionRect`** property is a\n[DOMRectReadOnly] object which describes the smallest rectangle that\ncontains the entire portion of the target element which is currently visible within\nthe intersection root.",
+ "isintersecting": "\n\nThe [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\n`IntersectionObserverEntry` describes a transition into a state of\nintersection; if it's `false`, then you know the transition is from\nintersecting to not-intersecting.",
+ "rootbounds": "\n\nThe [IntersectionObserverEntry] interface's\nread-only **`rootBounds`** property is a\n[DOMRectReadOnly] corresponding to the\n[IntersectionObserverEntry.target]'s root intersection\nrectangle, offset by the [IntersectionObserver.rootMargin] if one is\nspecified.",
+ "target": "\n\nThe [IntersectionObserverEntry] interface's\nread-only **`target`** property indicates which targeted\n[Element] has changed its amount of intersection with the intersection\nroot.",
+ "time": "\n\nThe [IntersectionObserverEntry] interface's\nread-only **`time`** property is a\n[DOMHighResTimeStamp] that indicates the time at which the intersection\nchange occurred relative to the time at which the document was created."
+ }
+ },
+ "interventionreportbody": {
+ "docs": "\n\nThe `InterventionReportBody` interface of the [Reporting API](/en-US/docs/Web/API/Reporting_API) represents the body of an intervention report.\n\nAn intervention report is generated when usage of a feature in a web document has been blocked by the browser for reasons such as security, performance, or user annoyance. So for example, a script was been stopped because it was significantly slowing down the browser, or the browser's autoplay policy blocked audio from playing without a user gesture to trigger it.\n\nA deprecation report is generated when a deprecated feature (for example a deprecated API method) is used on a document being observed by a [ReportingObserver]. In addition to the support of this API, receiving useful intervention warnings relies on browser vendors adding these warnings for the relevant features.\n\n",
+ "properties": {
+ "columnnumber": "\n\nThe **`columnNumber`** read-only property of the [InterventionReportBody] interface returns the line in the source file in which the intervention occurred.\n\n> **Note:** This property is most useful alongside [InterventionReportBody.sourceFile] and [InterventionReportBody.lineNumber] as it enables the location of the column in that file and line where the feature is used.",
+ "id": "\n\nThe **`id`** read-only property of the [InterventionReportBody] interface returns a string identifying the intervention that generated the report. This can be used to group reports.",
+ "linenumber": "\n\nThe **`lineNumber`** read-only property of the [InterventionReportBody] interface returns the line in the source file in which the intervention occurred.\n\n> **Note:** This property is most useful alongside [InterventionReportBody.sourceFile] as it enables the location of the line in that file where the feature is used.",
+ "message": "\n\nThe **`message`** read-only property of the [InterventionReportBody] interface returns a human-readable description of the intervention, including information such as how the intervention could be avoided. This typically matches the message a browser will display in its DevTools console when an intervention is imposed, if one is available.",
+ "sourcefile": "\n\nThe **`sourceFile`** read-only property of the [InterventionReportBody] interface returns the path to the source file where the intervention occurred.\n\n> **Note:** This property can be used with [InterventionReportBody.lineNumber] and [InterventionReportBody.columnNumber] to locate the column and line in the file where the feature is used.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [InterventionReportBody] interface is a _serializer_, and returns a JSON representation of the `InterventionReportBody` object."
+ }
+ },
+ "keyboard": {
+ "docs": "\n\nThe **`Keyboard`** interface of the [Keyboard API] provides functions that retrieve keyboard layout maps and toggle capturing of key presses from the physical keyboard.\n\nA list of valid code values is found in the [UI Events KeyboardEvent code Values](https://www.w3.org/TR/uievents-code/#key-alphanumeric-writing-system) spec.\n\n",
+ "properties": {
+ "getlayoutmap": "\n\nThe **`getLayoutMap()`** method of the\n[Keyboard] interface returns a `Promise` that resolves with\nan instance of [KeyboardLayoutMap] which is a map-like object with\nfunctions for retrieving the strings associated with specific physical keys.",
+ "lock": "\n\nThe **`lock()`** method of the\n[Keyboard] interface returns a `Promise` after enabling the\ncapture of keypresses for any or all of the keys on the physical keyboard. This method\ncan only capture keys that are granted access by the underlying operating\nsystem.\n\nIf `lock()` is called multiple times then only the key codes specified in the most recent call will be locked.\nAny keys locked by a previous call to `lock()` are unlocked.",
+ "unlock": "\n\nThe **`unlock()`** method of the\n[Keyboard] interface unlocks all keys captured by the\n[Keyboard.lock] method and returns synchronously."
+ }
+ },
+ "keyboardevent": {
+ "docs": "\n\n**`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 ([Element/keydown_event], [Element/keypress_event], or [Element/keyup_event]) 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 [Element/input_event] 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\n",
+ "properties": {
+ "altkey": "\n\nThe **`KeyboardEvent.altKey`** read-only property is a\nboolean value that indicates if the <kbd>alt</kbd> key (<kbd>Option</kbd> or <kbd>⌥</kbd> on macOS) was pressed (`true`) or not (`false`) when\nthe event occurred.",
+ "charcode": "\n\nThe **`charCode`** read-only property of the\n[KeyboardEvent] interface returns the Unicode value of a character key\npressed during a [Element/keypress_event] event.\n\n> **Warning:** Do not use this property, as it is deprecated. Instead, get the\n> Unicode value of the character using the [KeyboardEvent.key]\n> property.",
+ "code": "\n\nThe `KeyboardEvent.code` property represents a physical key on the keyboard (as opposed to the character generated by pressing the key). In other words, this property returns a value that isn't altered by keyboard layout or the state of the modifier keys.\n\nIf the input device isn't a physical keyboard, but is instead a virtual keyboard or accessibility device, the returned value will be set by the browser to match as closely as possible to what would happen with a physical keyboard, to maximize compatibility between physical and virtual input devices.\n\nThis property is useful when you want to handle keys based on their physical positions on the input device rather than the characters associated with those keys; this is especially common when writing code to handle input for games that simulate a gamepad-like environment using keys on the keyboard. Be aware, however, that you can't use the value reported by `KeyboardEvent.code` to determine the character generated by the keystroke, because the keycode's name may not match the actual character that's printed on the key or that's generated by the computer when the key is pressed.\n\nFor example, the `code` returned is \"`KeyQ`\" for the <kbd>Q</kbd> key on a QWERTY layout keyboard, but the same `code` value also represents the <kbd>'</kbd> key on Dvorak keyboards and the <kbd>A</kbd> key on AZERTY keyboards. That makes it impossible to use the value of `code` to determine what the name of the key is to users if they're not using an anticipated keyboard layout.\n\nTo determine what character corresponds with the key event, use the [KeyboardEvent.key] property instead.",
+ "ctrlkey": "\n\nThe **`KeyboardEvent.ctrlKey`** read-only property returns a\nboolean value that indicates if the <kbd>control</kbd> key was pressed\n(`true`) or not (`false`) when the event occurred.",
+ "getmodifierstate": "\n\nThe **`KeyboardEvent.getModifierState()`** method returns the\ncurrent state of the specified modifier key: `true` if the modifier is active\n(that is the modifier key is pressed or locked), otherwise, `false`.",
+ "initkeyboardevent": "\n\nThe **`KeyboardEvent.initKeyboardEvent()`** method initializes\nthe attributes of a keyboard event object. This method was introduced in draft of DOM\nLevel 3 Events, but deprecated in newer draft. Gecko won't support this feature since\nimplementing this method as experimental broke existing web apps (see [Firefox bug 999645](https://bugzil.la/999645)).\nWeb applications should use constructor instead of this if it's available.",
+ "initkeyevent": "\n\n> **Warning:** Do NOT use this method; Use the [KeyboardEvent.KeyboardEvent] constructor instead!\n>\n> The method has been removed from the DOM specification and is not supported by any current browser.\n> Firefox hides this method behind the preference (`dom.keyboardevent.init_key_event.enabled`) from version 93 and plans to remove it shortly afterwards.\n\nThe **`KeyboardEvent.initKeyEvent()`** method is used to\ninitialize the value of an event created using\n[document.createEvent] `(\"KeyboardEvent\")`. Events initialized in\nthis way must have been created with the\n[document.createEvent] `(\"KeyboardEvent\")` method.\n`initKeyEvent()` must be called to set the event before it is [dispatched](/en-US/docs/Web/API/EventTarget/dispatchEvent).",
+ "iscomposing": "\n\nThe **`KeyboardEvent.isComposing`** read-only property returns\na boolean value indicating if the event is fired within a composition\nsession, i.e. after [Element/compositionstart_event]\nand before [Element/compositionend_event].",
+ "key": "\n\nThe [KeyboardEvent] interface's **`key`** read-only property returns the value of the key pressed by the user, taking into consideration the state of modifier keys such as <kbd>Shift</kbd> as well as the keyboard locale and layout.",
+ "keycode": "\n\nThe deprecated **`KeyboardEvent.keyCode`** read-only property represents a system and implementation dependent numerical code identifying the unmodified value of the pressed key.\n\nThis is usually the decimal ASCII (`20`) or Windows 1252 code corresponding to the key. If the key can't be identified, this value is `0`.\n\nYou should avoid using this if possible; it's been deprecated for some time. Instead, you should use [KeyboardEvent.code], if it's implemented. Unfortunately, some browsers still don't have it, so you'll have to be careful to make sure you use one which is supported on all target browsers.\n\n> **Note:** Web developers shouldn't use the `keyCode` attribute for printable characters when handling `keydown` and `keyup` events. As described above, the `keyCode` attribute is not useful for printable characters, especially those input with the <kbd>Shift</kbd> or <kbd>Alt</kbd> key pressed. When implementing a shortcut key handler, the [Element/keypress_event] event is usually better (at least when Gecko is the runtime in use).",
+ "keyidentifier": "\n\nThe 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].",
+ "location": "\n\nThe **`KeyboardEvent.location`** read-only property returns an\n`unsigned long` representing the location of the key on the keyboard or other\ninput device.\n\nPossible values are:\n\n<table class=\"standard-table\">\n <thead>\n <tr>\n <th>Constant</th>\n <th>Value</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>DOM_KEY_LOCATION_STANDARD</code></td>\n <td>0</td>\n <td>\n The key has only one version, or can't be distinguished between the left\n and right versions of the key, and was not pressed on the numeric keypad\n or a key that is considered to be part of the keypad.\n </td>\n </tr>\n <tr>\n <td><code>DOM_KEY_LOCATION_LEFT</code></td>\n <td>1</td>\n <td>\n The key was the left-hand version of the key; for example, the left-hand\n <kbd>Control</kbd> key was pressed on a standard 101 key US keyboard.\n This value is only used for keys that have more than one possible\n location on the keyboard.\n </td>\n </tr>\n <tr>\n <td><code>DOM_KEY_LOCATION_RIGHT</code></td>\n <td>2</td>\n <td>\n The key was the right-hand version of the key; for example, the\n right-hand <kbd>Control</kbd> key is pressed on a standard 101 key US\n keyboard. This value is only used for keys that have more than one\n possible location on the keyboard.\n </td>\n </tr>\n <tr>\n <td><code>DOM_KEY_LOCATION_NUMPAD</code></td>\n <td>3</td>\n <td>\n <p>\n The key was on the numeric keypad, or has a virtual key code that\n corresponds to the numeric keypad.\n </p>\n <div class=\"note\">\n <p>\n <strong>Note:</strong> When <kbd>NumLock</kbd> is locked, Firefox\n always returns <code>DOM_KEY_LOCATION_NUMPAD</code> for the keys on\n the numeric pad. Otherwise, when <kbd>NumLock</kbd> is unlocked and\n the keyboard actually has a numeric keypad, Firefox always returns\n <code>DOM_KEY_LOCATION_NUMPAD</code> too. On the other hand, if the\n keyboard doesn't have a keypad, such as on a notebook computer, some\n keys become Numpad only when NumLock is locked. When such keys fires\n key events, the location attribute value depends on the key. That\n is, it must not be <code>DOM_KEY_LOCATION_NUMPAD</code>.\n </p>\n </div>\n <div class=\"note\">\n <p>\n <strong>Note:</strong> <kbd>NumLock</kbd> key's key events indicate\n <code>DOM_KEY_LOCATION_STANDARD</code> both on Firefox and Internet\n Explorer.\n </p>\n </div>\n </td>\n </tr>\n <tr>\n <td>\n <code>DOM_KEY_LOCATION_MOBILE</code>\n \n </td>\n <td>4</td>\n <td>\n <p>\n The key was on a mobile device; this can be on either a physical\n keypad or a virtual keyboard.\n </p>\n </td>\n </tr>\n <tr>\n <td>\n <code>DOM_KEY_LOCATION_JOYSTICK</code> \n \n </td>\n <td>5</td>\n <td>\n <p>\n The key was a button on a game controller or a joystick on a mobile\n device.\n </p>\n </td>\n </tr>\n </tbody>\n</table>",
+ "metakey": "\n\nThe **`KeyboardEvent.metaKey`** read-only property returning a\nboolean value that indicates if the <kbd>Meta</kbd> key was pressed\n(`true`) or not (`false`) when the event occurred. Some operating\nsystems may intercept the key so it is never detected.\n\n> **Note:** On Macintosh keyboards, this is the <kbd>⌘ Command</kbd> key.\n\n> **Note:** Before Firefox 118, the <kbd>⊞ Windows</kbd> key was handled\n> as an \"OS\" key rather than the \"Meta\" key. `KeyboardEvent.metaKey` was\n> `false` when the <kbd>⊞ Windows</kbd> key was pressed.",
+ "repeat": "\n\nThe **`repeat`** read-only property of the\n[KeyboardEvent] interface returns a boolean value that is\n`true` if the given key is being held down such that it is automatically\nrepeating.",
+ "shiftkey": "\n\nThe **`KeyboardEvent.shiftKey`** read-only property is a\nboolean value that indicates if the <kbd>shift</kbd> key was pressed\n(`true`) or not (`false`) when the event occurred."
+ }
+ },
+ "keyboardlayoutmap": {
+ "docs": "\n\nThe **`KeyboardLayoutMap`** interface of the [Keyboard API] is a read-only object with functions for retrieving the string associated with specific physical keys.\n\nA `KeyboardLayoutMap` instance is a read-only [`Map`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#map-like_browser_apis), 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\nA list of valid keys is found in the [UI Events KeyboardEvent code Values](https://www.w3.org/TR/uievents-code/#key-alphanumeric-writing-system) specification.",
+ "properties": {
+ "entries": "\n\nThe **`entries()`** method of the [KeyboardLayoutMap] interface returns a new [Iterator](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator) object that contains the key/value pairs, in the same order as that provided by a `for...in` loop (the difference being that a `for-in` loop enumerates properties in the prototype chain as well).\n\nThe method is otherwise the same as `Map.prototype.entries()`.",
+ "foreach": "\n\nThe **`forEach()`** method of the\n[KeyboardLayoutMap] interface executes a provided function once for\neach element of the map.\n\nThe method is otherwise the same as `Map.prototype.forEach()`.",
+ "get": "\n\nThe **`get()`** method of the\n[KeyboardLayoutMap] interface returns the element with the given\nkey.\n\nA list of valid keys is found in the [UI Events KeyboardEvent code Values](https://www.w3.org/TR/uievents-code/#key-alphanumeric-writing-system) spec.\n\nThe method is otherwise the same as `Map.prototype.get()`.",
+ "has": "\n\nThe **`has()`** method of the\n[KeyboardLayoutMap] interface returns a boolean indicating whether the\nobject has an element with the specified key.\n\nA list of valid keys is found in\nthe [UI Events KeyboardEvent code Values](https://www.w3.org/TR/uievents-code/#key-alphanumeric-writing-system) spec.\n\nThe method is otherwise the same as `Map.prototype.has()`.",
+ "keys": "\n\nThe **`keys()`** method of the [KeyboardLayoutMap] interface returns a new [Iterator](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator) object that contains the keys for each index in the `KeyboardLayoutMap` object.\n\nThe method is otherwise the same as `Map.prototype.keys()`.",
+ "size": "\n\nThe **`size`** read-only property of\nthe [KeyboardLayoutMap] interface returns the number of elements in the\nmap.\n\nThe property is otherwise the same as `Map.prototype.size`.",
+ "values": "\n\nThe **`values()`** method of the [KeyboardLayoutMap] interface returns a new [Iterator](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator) object that contains the values for each index in the `KeyboardLayoutMap` object.\n\nThe method is otherwise the same as `Map.prototype.values()`."
+ }
+ },
+ "keyframeeffect": {
+ "docs": "\n\nThe **`KeyframeEffect`** interface of the [Web Animations API](/en-US/docs/Web/API/Web_Animations_API) lets us create sets of animatable properties and values, called **keyframes.** These can then be played using the [Animation.Animation] constructor.\n\n",
+ "properties": {
+ "composite": "\n\nThe **`composite`** property of a [KeyframeEffect] resolves how an element's animation impacts its underlying property values.",
+ "getkeyframes": "\n\nThe **`getKeyframes()`** method of a [KeyframeEffect] returns an Array of the computed keyframes that make up this animation along with their computed offsets.",
+ "iterationcomposite": "\n\nThe **`iterationComposite`** property of a [KeyframeEffect] resolves how the animation's property value changes accumulate or override each other upon each of the animation's iterations.",
+ "pseudoelement": "\n\nThe **`pseudoElement`** property of a [KeyframeEffect] interface is a string representing the pseudo-element being animated. It may be `null` for animations that do not target a pseudo-element. It performs as both a getter and a setter, except with animations and transitions generated by CSS.\n\n> **Note:** If set to the legacy single-colon syntax of , , , or , the string is transformed into its double-colon modern version (, , , and , respectively).",
+ "setkeyframes": "\n\nThe **`setKeyframes()`** method of the [KeyframeEffect] interface replaces the keyframes that make up the affected `KeyframeEffect` with a new set of keyframes.",
+ "target": "\n\nThe **`target`** property of a [KeyframeEffect] interface represents the element or pseudo-element being animated. It may be `null` for animations that do not target a specific element. It performs as both a getter and a setter, except with animations and transitions generated by CSS."
+ }
+ },
+ "largestcontentfulpaint": {
+ "docs": "\n\nThe `LargestContentfulPaint` interface provides timing information about the largest image or text paint before user input on a web page.",
+ "properties": {
+ "element": "\n\nThe **`element`** read-only property of the [LargestContentfulPaint] interface returns an object representing the [Element] that is the largest contentful paint.",
+ "id": "\n\nThe **`id`** read-only property of the [LargestContentfulPaint] interface returns the ID of the element that is the largest contentful paint.",
+ "loadtime": "\n\nThe **`loadTime`** read-only property of the [LargestContentfulPaint] interface returns the time that the element was loaded.",
+ "rendertime": "\n\nThe **`renderTime`** read-only property of the [LargestContentfulPaint] interface represents the time that the element was rendered to the screen.",
+ "size": "\n\nThe **`size`** read-only property of the [LargestContentfulPaint] interface returns the intrinsic size of the element that is the largest contentful paint.\n\nThe `size` of the element is the `width` times `height` of the [DOMRectReadOnly] that this element creates on the screen.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [LargestContentfulPaint] interface is a ; it returns a JSON representation of the [LargestContentfulPaint] object.",
+ "url": "\n\nThe **`url`** read-only property of the [LargestContentfulPaint] interface returns the request URL of the element, if the element is an image."
+ }
+ },
+ "launchparams": {
+ "docs": "\n\nThe **`LaunchParams`** interface of the [Launch Handler API] is used when implementing custom launch navigation handling in a PWA. When [LaunchQueue.setConsumer] is invoked to set up the launch navigation handling functionality, the callback function inside `setConsumer()` is passed a `LaunchParams` object instance.\n\nSuch custom navigation handling is initiated via [Window.launchQueue] when a PWA has been launched with a [`launch_handler`](/en-US/docs/Web/Manifest/launch_handler) `client_mode` value of `focus-existing`, `navigate-new`, or `navigate-existing`.\n\n",
+ "properties": {
+ "files": "\n\nThe **`files`** read-only property of the [LaunchParams] interface returns an array of [FileSystemHandle] objects representing any files passed along with the launch navigation via the [`POST`](/en-US/docs/Web/HTTP/Methods/POST) method.",
+ "targeturl": "\n\nThe **`targetURL`** read-only property of the [LaunchParams] interface returns the target URL of the associated web app launch."
+ }
+ },
+ "launchqueue": {
+ "docs": "\n\nThe **`LaunchQueue`** interface of the [Launch Handler API] is available via the [Window.launchQueue] property. When a [progressive web app](/en-US/docs/Web/Progressive_web_apps) (PWA) is launched with a [`launch_handler`](/en-US/docs/Web/Manifest/launch_handler) `client_mode` value of `focus-existing`, `navigate-new`, or `navigate-existing`, [LaunchQueue] provides access to functionality that allows custom launch navigation handling to be implemented in the PWA. This functionality is controlled by the properties of the [LaunchParams] object passed into the [LaunchQueue.setConsumer] callback function.\n\n",
+ "properties": {
+ "setconsumer": "\n\nThe **`setConsumer()`** method of the [LaunchQueue] interface is used to declare the callback that will handle custom launch navigation handling in a [progressive web app](/en-US/docs/Web/Progressive_web_apps) (PWA). Such custom navigation is initiated via [Window.launchQueue] when a PWA has been launched with a [`launch_handler`](/en-US/docs/Web/Manifest/launch_handler) `client_mode` value of `focus-existing`, `navigate-new`, or `navigate-existing`."
+ }
+ },
+ "layoutshift": {
+ "docs": "\n\nThe `LayoutShift` interface of the [Performance API](/en-US/docs/Web/API/Performance_API) provides insights into the layout stability of web pages based on movements of the elements on the page.",
+ "properties": {
+ "hadrecentinput": "\n\nThe **`hadRecentInput`** read-only property of the [LayoutShift] interface returns `true` if [LayoutShift.lastInputTime] is less than 500 milliseconds in the past.\n\nLayout shifts are only a problem if the user is not expecting them, so layout shifts that are the result of user interactions (such as a user expanding a UI element) are often not considered in layout shift metrics. The `hadRecentInput` property allows you to exclude these shifts.",
+ "lastinputtime": "\n\nThe **`lastInputTime`** read-only property of the [LayoutShift] interface returns the time of the most recent excluding input or `0` if no excluding input has occurred.\n\nLayout shifts are only bad if the user wasn't expecting them. Many layout shift metrics (like [Cumulative Layout Shift (CLS)](https://web.dev/articles/cls)) exclude shifts that occurred soon after certain user interactions. These interactions are called _excluding inputs_. Excluding inputs are:\n\n- Any events which signal a user's active interaction with the document: ([`mousedown`](/en-US/docs/Web/API/Element/mousedown_event), [`keydown`](/en-US/docs/Web/API/Element/keydown_event), and [`pointerdown`](/en-US/docs/Web/API/Element/pointerdown_event))\n- Any events which directly changes the size of the viewport.\n- [`change`](/en-US/docs/Web/API/HTMLElement/change_event) events.\n\nThe [`mousemove`](/en-US/docs/Web/API/Element/mousemove_event) and [`pointermove`](/en-US/docs/Web/API/Element/pointermove_event) events are **not** excluding inputs.",
+ "sources": "\n\nThe **`sources`** read-only property of the [LayoutShift] interface returns an array of [LayoutShiftAttribution] objects that indicate the DOM elements that moved during the layout shift.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [LayoutShift] interface is a ; it returns a JSON representation of the [LayoutShift] object.",
+ "value": "\n\nThe **`value`** read-only property of the [LayoutShift] interface returns the layout shift score calculated as the impact fraction (fraction of the viewport that was shifted) multiplied by the distance fraction (distance moved as a fraction of viewport)."
+ }
+ },
+ "layoutshiftattribution": {
+ "docs": "\n\nThe `LayoutShiftAttribution` interface provides debugging information about elements which have shifted.\n\nInstances of `LayoutShiftAttribution` are returned in an array by calling [LayoutShift.sources].",
+ "properties": {
+ "currentrect": "\n\nThe **`currentRect`** read-only property of the [LayoutShiftAttribution] interface returns a [DOMRectReadOnly] object representing the position of the element after the shift.",
+ "node": "\n\nThe **`node`** read-only property of the [LayoutShiftAttribution] interface returns a [Node] representing the object that has shifted.",
+ "previousrect": "\n\nThe **`previousRect`** read-only property of the [LayoutShiftAttribution] interface returns a [DOMRectReadOnly] object representing the position of the element before the shift.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [LayoutShiftAttribution] interface is a _serializer_ that returns a JSON representation of the `LayoutShiftAttribution` object."
+ }
+ },
+ "linearaccelerationsensor": {
+ "docs": "\n\nThe **`LinearAccelerationSensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides on each reading the acceleration applied to the device along all three axes, but without the contribution of gravity.\n\nTo use this sensor, the user must grant permission to the `'accelerometer'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\n"
+ },
+ "location": {
+ "docs": "\n\nThe **`Location`** interface represents the location (URL) of the object it is linked to. Changes done on it are reflected on the object it relates to. Both the [Document] and [Window] interface have such a linked `Location`, accessible via [Document.location] and [Window.location] respectively.",
+ "properties": {
+ "ancestororigins": "\n\nThe **`ancestorOrigins`** read-only\nproperty of the [Location] interface is a static\n[DOMStringList] containing, in reverse order, the origins of all ancestor\nbrowsing contexts of the document associated with the given [Location]\nobject.\n\nYou can use `location.ancestorOrigins` in the script for a document to\ndetermine, for example, whenever the document is being framed by a site which you don't\nexpect it to be framed by. You can also use it to vary the behavior of the document\nbased on what site or list of sites is framing it.",
+ "assign": "\n\nThe **`Location.assign()`** method causes the window to load\nand display the document at the URL specified. After the navigation occurs, the user can\nnavigate back to the page that called `Location.assign()` by pressing the\n\"back\" button.\n\nIf the assignment can't happen because of a security violation, a\n[DOMException] of the `SECURITY_ERROR` type is thrown. This\nhappens if the origin of the script calling the method is different from the origin of\nthe page originally described by the [Location] object, mostly when the\nscript is hosted on a different domain.\n\nIf the provided URL is not valid, a [DOMException] of the\n`SYNTAX_ERROR` type is thrown.",
+ "hash": "\n\nThe **`hash`** property of the\n[Location] interface returns a string containing a\n`'#'` followed by the fragment identifier of the URL — the ID on the page\nthat the URL is trying to target.\n\nThe fragment is not [URL decoded](https://en.wikipedia.org/wiki/URL_encoding). If the URL does not\nhave a fragment identifier, this property contains an empty string, `\"\"`.",
+ "host": "\n\nThe **`host`** property of the [Location]\ninterface is a string containing the host, that is the\n_hostname_, and then, if the _port_ of the URL is nonempty, a\n`':'`, and the _port_ of the URL.",
+ "hostname": "\n\nThe **`hostname`** property of the [Location]\ninterface is a string containing the domain of the URL.",
+ "href": "\n\nThe **`href`** property of the [Location]\ninterface is a that returns a string containing the whole\nURL, and allows the href to be updated.\n\nSetting the value of `href` _navigates_ to the provided URL. If you\nwant _redirection_, use [Location/replace]. The difference from setting the `href` property value is that when using the `location.replace()` method, after navigating to the given URL, the current page will not be saved in session [history](/en-US/docs/Web/API/History_API) — meaning the user won't be able to use the back button to navigate to it.",
+ "origin": "\n\nThe **`origin`** read-only property of\nthe [Location] interface is a string containing the\nUnicode serialization of the origin of the represented URL.\n\nThat is:\n\n- for URL using the `http` or `https`, the scheme followed by\n `'://'`, followed by the domain, followed by `':'`, followed by\n the port (the default port, `80` and `443` respectively, if\n explicitly specified);\n- for URL using `file:` scheme, the value is browser dependent;\n- for URL using the `blob:` scheme, the origin of the URL following\n `blob:`. E.g `\"blob:https://mozilla.org\"` will have\n `\"https://mozilla.org\".`\n\n",
+ "pathname": "\n\nThe **`pathname`** property of the [Location]\ninterface is a string containing the path of the URL for the location. If there is no path, `pathname` will be empty: otherwise, `pathname` contains an initial '/' followed by the path of the URL, not including the query string or fragment.",
+ "port": "\n\nThe **`port`** property of the [Location]\ninterface is a string containing the port number of the URL. If the\nURL does not contain an explicit port number, it will be set to `''`.",
+ "protocol": "\n\nThe **`protocol`** property of the [Location]\ninterface is a string representing the protocol scheme of the URL,\nincluding the final `':'`.",
+ "reload": "\n\nThe **`location.reload()`** method reloads the current URL, like the Refresh button.\n\nThe reload may be blocked and a `SECURITY_ERROR` [DOMException]\nthrown. This happens if the of the script calling\n`location.reload()` differs from the origin of the page that owns the\n[Location] object. See [Same-origin policy](/en-US/docs/Web/Security/Same-origin_policy) for more\ninformation.",
+ "replace": "\n\nThe **`replace()`** method of the [Location]\ninterface replaces the current resource with the one at the provided URL. The difference\nfrom the [Location.assign] method is that after using\n`replace()` the current page will not be saved in session\n[History], meaning the user won't be able to use the _back_ button\nto navigate to it.\n\nIf the assignment can't happen because of a security violation, a\n[DOMException] of the `SECURITY_ERROR` type is thrown. This\nhappens if the origin of the script calling the method is different from the origin of\nthe page originally described by the [Location] object, mostly when the\nscript is hosted on a different domain.\n\nIf the provided URL is not valid, a [DOMException] of the\n`SYNTAX_ERROR` type is thrown.",
+ "search": "\n\nThe **`search`** property of the [Location]\ninterface is a search string, also called a _query string_; that is, a\nstring containing a `'?'` followed by the parameters of the\nURL.\n\nModern browsers provide\n[`URLSearchParams`](/en-US/docs/Web/API/URLSearchParams/get#examples)\nand\n[`URL.searchParams`](/en-US/docs/Web/API/URL/searchParams#examples)\nto make it easy to parse out the parameters from the querystring.",
+ "tostring": "\n\nThe **`toString()`** method of the\n[Location] interface returns a string containing the\nwhole URL. It is a read-only version of [Location.href]."
+ }
+ },
+ "lock": {
+ "docs": "\n\nThe **`Lock`** interface of the [Web Locks API](/en-US/docs/Web/API/Web_Locks_API) provides the name and mode of a lock.\nThis may be a newly requested lock that is received in the callback to [LockManager.request], or a record of an active or queued lock returned by [LockManager.query].\n\n",
+ "properties": {
+ "mode": "\n\nThe **`mode`** read-only property of the [Lock] interface returns the access mode passed to [LockManager.request] when the lock was requested.\nThe mode is either `\"exclusive\"` (the default) or `\"shared\"`.\n\n",
+ "name": "\n\nThe **`name`** read-only property of\nthe [Lock] interface returns the _name_ passed to\n[LockManager.request] selected when the lock was requested.\n\nThe name of a lock is passed by script when the lock is requested. The name is selected\nby the developer to represent an abstract resource for which use is being coordinated\nacross multiple tabs, workers, or other code within the origin. For example, if only one\ntab of a web application should be synchronizing network resources with an offline\ndatabase, it could use a lock name such as `\"net_db_sync\"`.\n\n"
+ }
+ },
+ "lockmanager": {
+ "docs": "\n\nThe **`LockManager`** interface of the [Web Locks API](/en-US/docs/Web/API/Web_Locks_API) provides methods for requesting a new [Lock] object and querying for an existing `Lock` object. To get an instance of `LockManager`, call [navigator.locks].\n\n",
+ "properties": {
+ "query": "\n\nThe **`query()`** method of the [LockManager] interface returns a `Promise` that resolves with an object containing information about held and pending locks.\n\n",
+ "request": "\n\nThe **`request()`** method of the [LockManager] interface requests a [Lock] object with parameters specifying its name and characteristics.\nThe requested `Lock` is passed to a callback, while the function itself returns a `Promise` that resolves (or rejects) with the result of the callback after the lock is released, or rejects if the request is aborted.\n\nThe `mode` property of the `options` parameter may be either `\"exclusive\"` or `\"shared\"`.\n\nRequest an `\"exclusive\"` lock when it should only be held by one code instance at a time.\nThis applies to code in both tabs and workers. Use this to represent mutually exclusive access to a resource.\nWhen an `\"exclusive\"` lock for a given name is held, no other lock with the same name can be held.\n\nRequest a `\"shared\"` lock when multiple instances of the code can share access to a resource.\nWhen a `\"shared\"` lock for a given name is held, other `\"shared\"` locks for the same name can be granted, but no `\"exclusive\"` locks with that name can be held or granted.\n\nThis shared/exclusive lock pattern is common in database transaction architecture, for example to allow multiple simultaneous readers (each requests a `\"shared\"` lock) but only one writer (a single `\"exclusive\"` lock).\nThis is known as the readers-writer pattern.\nIn the [IndexedDB API](/en-US/docs/Web/API/IndexedDB_API), this is exposed as `\"readonly\"` and `\"readwrite\"` transactions which have the same semantics.\n\n"
+ }
+ },
+ "magnetometer": {
+ "docs": "\n\nThe **`Magnetometer`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides information about the magnetic field as detected by the device's primary magnetometer sensor.\n\nTo use this sensor, the user must grant permission to the `'magnetometer'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\n",
+ "properties": {
+ "x": "\n\nThe **`x`** read-only property of the\n[Magnetometer] interface returns a number specifying\nthe magnetic field around the device's x-axis.",
+ "y": "\n\nThe **`y`** read-only property of the\n[Magnetometer] interface returns a number specifying\nthe magnetic field around the device's y-axis.",
+ "z": "\n\nThe **`z`** read-only property of the\n[Magnetometer] interface returns a number specifying\nthe magnetic field around the device's z-axis."
+ }
+ },
+ "mathmlelement": {
+ "docs": "\n\nThe **`MathMLElement`** interface represents any [MathML](/en-US/docs/Web/MathML) element.\n\n",
+ "properties": {
+ "style": "\n\nThe 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`](/en-US/docs/Web/HTML/Global_attributes/style) attribute.\n\nShorthand properties are expanded. If you set `style=\"border-top: 1px solid black\"`, the longhand properties (, , and ) are set instead.\n\nThis 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\nTherefore, 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\nA style declaration is reset by setting it to `null` or an empty string, e.g., `elt.style.color = null`.\n\n> **Note:** CSS 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 : `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."
+ }
+ },
+ "mediacapabilities": {
+ "docs": "\n\nThe **`MediaCapabilities`** interface of the [Media Capabilities API](/en-US/docs/Web/API/Media_Capabilities_API) provides information about the decoding abilities of the device, system and browser. The API can be used to query the browser about the decoding abilities of the device based on codecs, profile, resolution, and bitrates. The information can be used to serve optimal media streams to the user and determine if playback should be smooth and power efficient.\n\nThe information is accessed through the **`mediaCapabilities`** property of the [Navigator] interface.",
+ "properties": {
+ "decodinginfo": "\n\nThe **`MediaCapabilities.decodingInfo()`** method, part of the [Media Capabilities API](/en-US/docs/Web/API/MediaCapabilities), returns a promise with the tested media configuration's capabilities info.\nThis contains the three boolean properties `supported`, `smooth`, and `powerefficient`, which describe whether decoding the media described would be supported, smooth, and powerefficient.",
+ "encodinginfo": "\n\nThe **`MediaCapabilities.encodingInfo()`** method, part of the [MediaCapabilities] interface of the [Media Capabilities API](/en-US/docs/Web/API/MediaCapabilities), returns a promise with the tested media configuration's capabilities information.\nThis contains the three boolean properties `supported`, `smooth`, and `powerefficient`, which describe how compatible the device is with the type of media."
+ }
+ },
+ "mediadeviceinfo": {
+ "docs": "\n\nThe **`MediaDeviceInfo`** interface of the [Media Capture and Streams API] contains information that describes a single media input or output device.\n\nThe list of devices obtained by calling [MediaDevices.enumerateDevices] is an array of `MediaDeviceInfo` objects, one per media device.",
+ "properties": {
+ "deviceid": "\n\nThe **`deviceId`** read-only property\nof the [MediaDeviceInfo] interface returns a string\nthat is an identifier for the represented device and is persisted across\nsessions.\n\nIt is un-guessable by other applications, and unique to the origin of\nthe calling application. It is reset when the user clears cookies. For private browsing,\na different identifier is used that is not persisted across sessions.",
+ "groupid": "\n\nThe **`groupId`** read-only property of\nthe [MediaDeviceInfo] interface returns a string that\nis a group identifier.\n\nTwo devices have the same group identifier if they\nbelong to the same physical device; for example, a monitor with both a built-in camera\nand microphone.",
+ "kind": "\n\nThe **`kind`** read-only property of\nthe [MediaDeviceInfo] interface returns an enumerated value, that is\neither `\"videoinput\"`, `\"audioinput\"` or `\"audiooutput\"`.",
+ "label": "\n\nThe **`label`** read-only\nproperty of the [MediaDeviceInfo] interface returns a\nstring describing this device (for example\n\"External USB Webcam\").\n\nOnly available during active `MediaStream`\nuse, or when persistent permissions have been granted.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [MediaDeviceInfo] interface is a ; it returns a JSON representation of the [MediaDeviceInfo] object."
+ }
+ },
+ "mediadevices": {
+ "docs": "\n\nThe **`MediaDevices`** interface provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data.\n\n",
+ "properties": {
+ "devicechange_event": "\n\nA `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.\n\nThis event is not cancelable and does not bubble.",
+ "enumeratedevices": "\n\nThe [MediaDevices] method **`enumerateDevices()`** requests a list of the currently available media input and output devices, such as microphones, cameras, headsets, and so forth.\nThe returned `Promise` is resolved with an array of [MediaDeviceInfo] objects describing the devices.\n\nThe returned list will omit any devices that are blocked by the document [Permission Policy](/en-US/docs/Web/HTTP/Headers/Permissions-Policy): [`microphone`](/en-US/docs/Web/HTTP/Headers/Permissions-Policy/microphone), [`camera`](/en-US/docs/Web/HTTP/Headers/Permissions-Policy/camera), [`speaker-selection`](/en-US/docs/Web/HTTP/Headers/Permissions-Policy/speaker-selection) (for output devices), and so on.\nAccess to particular non-default devices is also gated by the [Permissions API](/en-US/docs/Web/API/Permissions_API), and the list will omit devices for which the user has not granted explicit permission.",
+ "getdisplaymedia": "\n\nThe **`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\nThe resulting stream can then be\nrecorded using the [MediaStream Recording API](/en-US/docs/Web/API/MediaStream_Recording_API) or transmitted as part of a [WebRTC](/en-US/docs/Web/API/WebRTC_API) session.\n\nSee [Using the Screen Capture API](/en-US/docs/Web/API/Screen_Capture_API/Using_Screen_Capture) for more details and an example.",
+ "getsupportedconstraints": "\n\nThe\n**`getSupportedConstraints()`**\nmethod of the [MediaDevices] interface returns an object based on the\n[MediaTrackSupportedConstraints] dictionary, whose member fields each\nspecify one of the constrainable properties the understands.",
+ "getusermedia": "\n\nThe **`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\nThat 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\nIt 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:** It'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.",
+ "selectaudiooutput": "\n\nThe **`MediaDevices.selectAudioOutput()`** method of the [Audio Output Devices API](/en-US/docs/Web/API/Audio_Output_Devices_API) prompts the user to select an audio output device, such as a speaker or headset. If the user selects a device, the method grants user permission to use the selected device as an audio output sink.\n\nFollowing selection, if the device is available it can be enumerated using [MediaDevices.enumerateDevices] and set as the audio output sink using [HTMLMediaElement.setSinkId].\n\nOn success, the returned `Promise` is resolved with a [MediaDeviceInfo] describing the selected device."
+ }
+ },
+ "mediaelementaudiosourcenode": {
+ "docs": "\n\nThe `MediaElementAudioSourceNode` interface represents an audio source consisting of an HTML `audio` or `video` element. It is an [AudioNode] that acts as an audio source.\n\nA `MediaElementAudioSourceNode` has no inputs and exactly one output, and is created using the [AudioContext.createMediaElementSource] method. The number of channels in the output equals the number of channels of the audio referenced by the [HTMLMediaElement] used in the creation of the node, or is 1 if the [HTMLMediaElement] has no audio.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>0</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td>\n 2 (but note that [AudioNode.channelCount] is only used for up-mixing and down-mixing [AudioNode] inputs, and [MediaElementAudioSourceNode] doesn't have any input)\n </td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "mediaelement": "\n\nThe [MediaElementAudioSourceNode] interface's\nread-only **`mediaElement`** property indicates the\n[HTMLMediaElement] that contains the audio track from which the node is\nreceiving audio.\n\nThis stream was specified when the node was first created,\neither using the [MediaElementAudioSourceNode.MediaElementAudioSourceNode] constructor or the\n[AudioContext.createMediaElementSource] method."
+ }
+ },
+ "mediaencryptedevent": {
+ "docs": "\n\nThe **`MediaEncryptedEvent`** interface of the [Encrypted Media Extensions API](/en-US/docs/Web/API/Encrypted_Media_Extensions_API) contains the information associated with an [HTMLMediaElement/encrypted_event] event sent to a [HTMLMediaElement] when some initialization data is encountered in the media.\n\n",
+ "properties": {
+ "initdata": "\n\nThe read-only **`initData`** property of the [MediaKeyMessageEvent] returns the initialization data contained in this event, if any.",
+ "initdatatype": "\n\nThe read-only **`initDataType`** property of the [MediaKeyMessageEvent] returns a case-sensitive string describing the type of the initialization data associated with this event."
+ }
+ },
+ "mediaerror": {
+ "docs": "\n\nThe **`MediaError`** interface represents an error which occurred while handling media in an HTML media element based on [HTMLMediaElement], such as `audio` or `video`.\n\nA `MediaError` object describes the error in general terms using a numeric `code` categorizing the kind of error, and a `message`, which provides specific diagnostics about what went wrong.",
+ "properties": {
+ "code": "\n\nThe read-only property **`MediaError.code`** returns a numeric\nvalue which represents the kind of error that occurred on a media element. To get a text\nstring with specific diagnostic information, see [MediaError.message].",
+ "message": "\n\nThe 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.",
+ "msextendedcode": "\n\nIn the event of an error, the media element's error event will be fired. The element's error property will then contain an **`msExtendedCode`** read-only property with platform-specific error code information.\n\n**`msExtendedCode`** is a read-only proprietary property specific to Internet Explorer and Microsoft Edge."
+ }
+ },
+ "mediakeymessageevent": {
+ "docs": "\n\nThe **`MediaKeyMessageEvent`** interface of the [Encrypted Media Extensions API](/en-US/docs/Web/API/Encrypted_Media_Extensions_API) contains the content and related data when the content decryption module generates a message for the session.\n\n",
+ "properties": {
+ "message": "\n\nThe **`MediaKeyMessageEvent.message`** read-only property\nreturns an `ArrayBuffer` with a message from the content decryption module.\nMessages vary by key system.",
+ "messagetype": "\n\nThe **`MediaKeyMessageEvent.messageType`** read-only property indicates the\ntype of message. It may be one of `license-request`,\n`license-renewal`, `license-release`, or\n`individualization-request`."
+ }
+ },
+ "mediakeys": {
+ "docs": "\n\nThe **`MediaKeys`** interface of [Encrypted Media Extensions API](/en-US/docs/Web/API/Encrypted_Media_Extensions_API) represents a set of keys that an associated [HTMLMediaElement] can use for decryption of media data during playback.",
+ "properties": {
+ "createsession": "\n\nThe `MediaKeys.createSession()` method returns a new\n[MediaKeySession] object, which represents a context for message exchange\nwith a content decryption module (CDM).",
+ "setservercertificate": "\n\nThe **`MediaKeys.setServerCertificate()`** method provides a\nserver certificate to be used to encrypt messages to the license server."
+ }
+ },
+ "mediakeysession": {
+ "docs": "\n\nThe **`MediaKeySession`** interface of the [Encrypted Media Extensions API](/en-US/docs/Web/API/Encrypted_Media_Extensions_API) represents a context for message exchange with a content decryption module (CDM).\n\n",
+ "properties": {
+ "close": "\n\nThe `MediaKeySession.close()` method notifies that the current media session\nis no longer needed, and that the content decryption module should release any resources\nassociated with this object and close it. Then, it returns a `Promise`.",
+ "closed": "\n\nThe `MediaKeySession.closed` read-only property returns a\n`Promise` signaling when a [MediaKeySession] closes. This\npromise can only be fulfilled and is never rejected. Closing a session means that\nlicenses and keys associated with it are no longer valid for decrypting media data.",
+ "expiration": "\n\nThe **`MediaKeySession.expiration`** read-only property returns\nthe time after which the keys in the current session can no longer be used to decrypt\nmedia data, or NaN if no such time exists. This value is determined by the CDM and\nmeasured in milliseconds since January 1, 1970, UTC. This value may change during a\nsession lifetime, such as when an action triggers the start of a window.",
+ "generaterequest": "\n\nThe `MediaKeySession.generateRequest()` method returns a\n`Promise` after generating a media request based on initialization data.",
+ "keystatuses": "\n\nThe **`MediaKeySession.keyStatuses`** read-only property\nreturns a reference to a read-only [MediaKeyStatusMap] of the current\nsession's keys and their statuses.",
+ "keystatuseschange_event": "\n\nThe **`keystatuseschange`** event of the [MediaKeySession] API fires when there has been a change in the keys or their statuses within a session.",
+ "load": "\n\nThe `MediaKeySession.load()` method returns a `Promise` that\nresolves to a boolean value after loading data for a specified session object.",
+ "message_event": "\n\nThe **`message`** event of the\n[MediaKeySession] interface fires when a message is generated by the\ncontent decryption module.",
+ "remove": "\n\nThe `MediaKeySession.remove()` method returns a `Promise` after removing any session data associated with the current object.",
+ "sessionid": "\n\nThe **`MediaKeySession.sessionId`** is a read-only property\nthat contains a unique string generated by the content decryption module (CDM) for the\ncurrent media object and its associated keys or licenses.",
+ "update": "\n\nThe `MediaKeySession.update()` method loads messages and licenses to the\nCDM, and then returns a `Promise` ."
+ }
+ },
+ "mediakeystatusmap": {
+ "docs": "\n\nThe **`MediaKeyStatusMap`** interface of the [Encrypted Media Extensions API](/en-US/docs/Web/API/Encrypted_Media_Extensions_API) is a read-only map of media key statuses by key IDs.",
+ "properties": {
+ "entries": "\n\nThe **`entries()`** read-only property\nof the [MediaKeyStatusMap] interface returns a new Iterator object,\ncontaining an array of \\[key, value] pairs for each element in the status map, in\ninsertion order.",
+ "foreach": "\n\nThe **`forEach`** property of the\n[MediaKeyStatusMap] interface calls callback once for each key-value pair\nin the status map, in insertion order. If an argument is present it will be passed to\nthe callback.",
+ "get": "\n\nThe **`get`** property of the\n[MediaKeyStatusMap] interface returns the value associated with the given\nkey, or `undefined` if there is none.",
+ "has": "\n\nThe **`has`** property of the\n[MediaKeyStatusMap] interface returns a `Boolean`, asserting\nwhether a value has been associated with the given key.",
+ "keys": "\n\nThe **`keys`** property of the\n[MediaKeyStatusMap] interface returns a new Iterator object, containing\nkeys for each element in the status map, in insertion order.",
+ "size": "\n\nThe **`size`** read-only property of\nthe [MediaKeyStatusMap] interface returns the number of key/value paIrs\nin the status map.",
+ "values": "\n\nThe **`values`** property of the\n[MediaKeyStatusMap] interface returns a new Iterator object, containing\nvalues for each element in the status map, in insertion order."
+ }
+ },
+ "mediakeysystemaccess": {
+ "docs": "\n\nThe **`MediaKeySystemAccess`** interface of the [Encrypted Media Extensions API](/en-US/docs/Web/API/Encrypted_Media_Extensions_API) provides access to a Key System for decryption and/or a content protection provider. You can request an instance of this object using the [Navigator.requestMediaKeySystemAccess] method.",
+ "properties": {
+ "createmediakeys": "\n\nThe `MediaKeySystemAccess.createMediaKeys()` method returns a\n`Promise` that resolves to a new [MediaKeys] object.",
+ "getconfiguration": "\n\nThe `MediaKeySystemAccess.getConfiguration()` method returns an object with the supported combination of\nthe following configuration options:\n\n- `initDataTypes` \n - : Returns a list of supported initialization data type names. An initialization data type is a string indicating the format of the initialization data.\n- `audioCapabilities` \n - : Returns a list of supported audio type and capability pairs.\n- `videoCapabilities` \n - : Returns a list of supported video type and capability pairs.\n- `distinctiveIdentifier` \n - : Indicates whether a persistent distinctive identifier is required.\n- `persistentState` \n - : Indicates whether the ability to persist state is required.",
+ "keysystem": "\n\nThe `MediaKeySystemAccess.keySystem` read-only property returns a\nstring identifying the key system being used."
+ }
+ },
+ "medialist": {
+ "docs": "\n\nThe **`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.",
+ "properties": {
+ "appendmedium": "\n\nThe `appendMedium()` method of the [MediaList] interface adds a media query to the list. If the media query is already in the collection, this method does nothing.",
+ "deletemedium": "\n\nThe `deleteMedium()` method of the [MediaList] interface removes from this `MediaList` the given media query.",
+ "item": "\n\nThe **`item()`** method of the [MediaList] interface returns the media query at the specified `index`, or `null` if the specified `index` doesn't exist.",
+ "length": "\n\nThe read-only **`length`** property of the [MediaList] interface returns the number of media queries in the list.",
+ "mediatext": "\n\nThe **`mediaText`** property of the [MediaList]\ninterface is a that returns a string representing the\n`MediaList` as text, and also allows you to set a new `MediaList`."
+ }
+ },
+ "mediametadata": {
+ "docs": "\n\nThe **`MediaMetadata`** interface of the [Media Session API] allows a web page to provide rich media metadata for display in a platform UI.",
+ "properties": {
+ "album": "\n\nThe **`album`** property of the\n[MediaMetaData] interface returns or sets the name of the album or\ncollection containing the media to be played.",
+ "artist": "\n\nThe **`artist`** property of the\n[MediaMetaData] interface returns or sets the name of the artist, group,\ncreator, etc., of the media to be played.",
+ "artwork": "\n\nThe **`artwork`** property of the\n[MediaMetaData] interface returns or sets an array of\nobjects representing images associated with playing\nmedia.",
+ "title": "\n\nThe **`title`** property of the\n[MediaMetaData] interface returns or sets the title of the media to be\nplayed."
+ }
+ },
+ "mediaquerylist": {
+ "docs": "\n\nA **`MediaQueryList`** object stores information on a [media query](/en-US/docs/Web/CSS/CSS_media_queries) applied to a document, with support for both immediate and event-driven matching against the state of the document.\n\nYou can create a `MediaQueryList` by calling [Window.matchMedia] on the [window] object. The resulting object handles sending notifications to listeners when the media query state changes (i.e. when the media query test starts or stops evaluating to `true`).\n\nThis is very useful for adaptive design, since this makes it possible to observe a document to detect when its media queries change, instead of polling the values periodically, and allows you to programmatically make changes to a document based on media query status.\n\n",
+ "properties": {
+ "addlistener": "\n\nThe deprecated **`addListener()`** method of the\n[MediaQueryList] interface adds a listener to the\n`MediaQueryListener` that will run a custom callback function in response to\nthe media query status changing.\n\nIn older browsers `MediaQueryList` did not yet inherit from [EventTarget],\nso this method was provided as an alias of [EventTarget.addEventListener].\nUse `addEventListener()` instead of `addListener()` if it is\navailable in the browsers you need to support.",
+ "change_event": "\n\nThe **`change`** event of the [MediaQueryList] interface fires when the status of media query support changes.",
+ "matches": "\n\nThe **`matches`** read-only property of the\n[MediaQueryList] interface is a boolean value that returns\n`true` if the [document] currently matches the media query list,\nor `false` if not.\n\nYou can be notified when the value of `matches` changes by watching for the\n[MediaQueryList.change_event] event to be fired at the\n`MediaQueryList`.",
+ "media": "\n\nThe **`media`** read-only property of the\n[MediaQueryList] interface is a string representing a\nserialized media query.",
+ "removelistener": "\n\nThe **`removeListener()`** method of the\n[MediaQueryList] interface removes a listener from the\n`MediaQueryListener`.\n\nIn older browsers `MediaQueryList` did not yet inherit from [EventTarget],\nso this method was provided as an alias of [EventTarget.removeEventListener].\nUse `removeEventListener()` instead of `removeListener()` if it is\navailable in the browsers you need to support."
+ }
+ },
+ "mediaquerylistevent": {
+ "docs": "\n\nThe `MediaQueryListEvent` object stores information on the changes that have happened to a [MediaQueryList] object — instances are available as the event object on a function referenced by a [MediaQueryList.change_event] event.\n\n",
+ "properties": {
+ "matches": "\n\nThe **`matches`** read-only property of the\n[MediaQueryListEvent] interface is a boolean value that is\n`true` if the [document] currently matches the media query list,\nor `false` if not.",
+ "media": "\n\nThe **`media`** read-only property of the\n[MediaQueryListEvent] interface is a string representing\na serialized media query."
+ }
+ },
+ "mediarecorder": {
+ "docs": "\n\nThe **`MediaRecorder`** interface of the [MediaStream Recording API](/en-US/docs/Web/API/MediaStream_Recording_API) provides functionality to easily record media. It is created using the [MediaRecorder.MediaRecorder] constructor.\n\n",
+ "properties": {
+ "audiobitratemode": "\n\nThe **`audioBitrateMode`** read-only property of the [MediaRecorder] interface returns the bitrate mode used to encode audio tracks.",
+ "audiobitspersecond": "\n\nThe **`audioBitsPerSecond`** read-only\nproperty of the [MediaRecorder] interface returns the audio encoding bit\nrate in use.\n\nThis may differ from the bit rate specified in the constructor (if\nit was provided).",
+ "dataavailable_event": "\n\nThe **`dataavailable`** event of the [MediaRecorder] interface is fired when the MediaRecorder delivers media\ndata to your application for its use. The data is provided in a [Blob]\nobject that contains the data. This occurs in four situations:\n\n- When the media stream ends, any media data not already delivered to your\n `ondataavailable` handler is passed in a single [Blob].\n- When [MediaRecorder.stop] is called, all media data which has been\n captured since recording began or the last time a `dataavailable` event\n occurred is delivered in a [Blob]; after this, capturing ends.\n- When [MediaRecorder.requestData] is called, all media data which has\n been captured since recording began or the last time a `dataavailable`\n event occurred is delivered; then a new `Blob` is created and media capture\n continues into that blob.\n- If a `timeslice` property was passed into the\n [MediaRecorder.start] method that started media capture, a\n `dataavailable` event is fired every `timeslice` milliseconds.\n That means that each blob will have a specific time duration (except the last blob,\n which might be shorter, since it would be whatever is left over since the last event).\n So if the method call looked like this — `recorder.start(1000);` — the\n `dataavailable` event would fire after each second of media capture, and\n our event handler would be called every second with a blob of media data that's one\n second long. You can use `timeslice` alongside\n [MediaRecorder.stop] and [MediaRecorder.requestData] to\n produce multiple same-length blobs plus other shorter blobs as well.\n\n> **Note:** The [Blob] containing the media data is available in the\n> [MediaRecorder.dataavailable_event] event's `data` property.",
+ "error_event": "\n\nThe **`error`** event of the [MediaRecorder] interface is fired when an error occurs: for example because recording wasn't allowed or was attempted using an unsupported codec.\n\nThis event is not cancelable and does not bubble.",
+ "istypesupported_static": "\n\nThe\n**`MediaRecorder.isTypeSupported()`** static method returns a\nBoolean which is `true` if the MIME type specified is one the user agent\nshould be able to successfully record.",
+ "mimetype": "\n\nThe **`mimeType`** read-only\nproperty returns the media type that was specified when creating\nthe [MediaRecorder] object, or, if none was specified, which was chosen\nby the browser. This is the file format of the file that would result from\nwriting all of the recorded data to disk.\n\nKeep in mind that not all codecs are supported by a given container; if you write media\nusing a codec that is not supported by a given media container, the resulting file may\nnot work reliably if at all when you try to play it back. See our [media type and format guide](/en-US/docs/Web/Media/Formats) for information\nabout container and codec support across browsers.\n\n> **Note:** The term \"MIME type\" is officially considered to be\n> historical; these strings are now officially known as **media types**.\n> MDN Web Docs content uses the terms interchangeably.",
+ "pause": "\n\nThe **`MediaRecorder.pause()`** method (part\nof the [MediaStream Recording API](/en-US/docs/Web/API/MediaStream_Recording_API)) is used\nto pause recording of media streams.\n\nWhen a `MediaRecorder` object's `pause()`method is called, the\nbrowser queues a task that runs the below steps:\n\n1. If [MediaRecorder.state] is \"inactive\", raise a DOM\n `InvalidState` error and terminate these steps. If not, continue to the\n next step.\n2. Set [MediaRecorder.state] to \"paused\".\n3. Stop gathering data into the current [Blob], but keep it available so\n that recording can be resumed later on.\n4. Raise a [MediaRecorder/pause_event] event.",
+ "pause_event": "\n\nThe `pause` event is thrown as a result of the\n[MediaRecorder.pause] method being invoked.",
+ "requestdata": "\n\nThe **`requestData()`**\nmethod of the [MediaRecorder] interface is used to raise a [MediaRecorder.dataavailable_event] event containing a\n[Blob] object of the captured media as it was when the method was\ncalled. This can then be grabbed and manipulated as you wish.\n\nWhen the `requestData()` method is invoked, the browser queues a task that\nruns the following steps:\n\n1. If [MediaRecorder.state] is \"inactive\", raise a DOM\n `InvalidState` error and terminate these steps. If\n [MediaRecorder.state] is not \"inactive\", continue to the next step.\n2. Raise a [MediaRecorder.dataavailable_event] event containing a [Blob] of the\n currently captured data (the Blob is available under the event's `data`\n attribute.)\n3. Create a new Blob and place subsequently captured data into it.",
+ "resume": "\n\nThe **`MediaRecorder.resume()`**\nmethod (part of the [MediaStream Recording API](/en-US/docs/Web/API/MediaStream_Recording_API)) is used to resume media recording when it has been previously\npaused.\n\nWhen the `resume()` method is invoked, the browser queues a task that runs\nthe following steps:\n\n1. If [MediaRecorder.state] is \"inactive\", raise a DOM\n `InvalidState` error and terminate these steps. If\n [MediaRecorder.state] is not \"inactive\", continue to the next step.\n2. Set [MediaRecorder.state] to \"recording\".\n3. Continue gathering data into the current [Blob].\n4. Raise a `resume` event.",
+ "resume_event": "\n\nThe `resume` event is thrown when\n[MediaRecorder.resume] is called.",
+ "start": "\n\nThe [MediaRecorder] method\n**`start()`**, which is part of the MediaStream Recording API,\nbegins recording media into one or more [Blob] objects.\n\nYou can\nrecord the entire duration of the media into a single `Blob` (or until you\ncall [MediaRecorder.requestData]), or you can specify the\nnumber of milliseconds to record at a time. Then, each time that amount of media has\nbeen recorded, an event will be delivered to let you act upon the recorded media, while\na new `Blob` is created to record the next slice of the media.\n\nAssuming the `MediaRecorder`'s [MediaRecorder.state]\nis `inactive`, `start()` sets the `state` to\n`recording`, then begins capturing media from the input stream. A\n`Blob` is created and the data is collected in it until the time slice period\nelapses or the source media ends. Each time a `Blob` is filled up to that\npoint (the timeslice duration or the end-of-media, if no slice duration was provided), a\n[MediaRecorder.dataavailable_event] event is sent to the `MediaRecorder` with the\nrecorded data. If the source is still playing, a new `Blob` is created and\nrecording continues into that, and so forth.\n\nWhen the source stream ends, `state` is set to `inactive` and\ndata gathering stops. A final [MediaRecorder.dataavailable_event] event is sent to the\n`MediaRecorder`, followed by a [MediaRecorder/stop_event] event.\n\n> **Note:** If the browser is unable to start recording or continue\n> recording, it will raise an [MediaRecorder.error_event] event, followed by a\n> [MediaRecorder.dataavailable_event] event containing the `Blob` it\n> has gathered, followed by the [MediaRecorder/stop_event] event.",
+ "start_event": "\n\nThe `start` event is fired when\n[MediaRecorder.start] is called. At this point, the data\nstarts being gathered into a [Blob].",
+ "state": "\n\nThe **`MediaRecorder.state`** read-only property returns the\ncurrent state of the current `MediaRecorder` object.",
+ "stop": "\n\nThe **`MediaRecorder.stop()`** method\n(part of the [MediaStream Recording API](/en-US/docs/Web/API/MediaStream_Recording_API)) is\nused to stop media capture.\n\nWhen the `stop()` method is invoked, the UA queues a task that runs the\nfollowing steps:\n\n1. If [MediaRecorder.state] is \"inactive\", raise a DOM\n `InvalidState` error and terminate these steps. If the\n [MediaRecorder.state] is not \"inactive\", continue on to the next step.\n2. Set the [MediaRecorder.state] to \"inactive\" and stop capturing media.\n3. Raise a `dataavailable` event containing the Blob of data that has been\n gathered.\n4. Raise a `stop` event.",
+ "stop_event": "\n\nThe `stop` event is fired when\n[MediaRecorder.stop] is called, or when the media stream being\ncaptured ends. In each case, the `stop` event is preceded by a\n`dataavailable` event, making the [Blob] captured up to that\npoint available for you to use in your application.",
+ "stream": "\n\nThe **`MediaRecorder.stream`** read-only property returns the\nstream that was passed into the `MediaRecorder()` constructor when the\n`MediaRecorder` was created.",
+ "videobitspersecond": "\n\nThe **`videoBitsPerSecond`** read-only\nproperty of the [MediaRecorder] interface returns the video encoding\nbit rate in use.\n\nThis may differ from the bit rate specified in the\nconstructor, if it was provided."
+ }
+ },
+ "mediarecordererrorevent": {
+ "docs": "\n\nThe **`MediaRecorderErrorEvent`** interface represents errors returned by the [MediaStream Recording API](/en-US/docs/Web/API/MediaStream_Recording_API). It is an [Event] object that encapsulates a reference to a [DOMException] describing the error that occurred.\n\n",
+ "properties": {
+ "error": "\n\nThe **`error`** read-only property of the\n[MediaRecorderErrorEvent] interface is a\n[DOMException] object providing details about the exception that was thrown\nby a [MediaRecorder] instance.\n\nWhen a `MediaRecorderErrorEvent` occurs, you can determine to some extent\nwhat went wrong by examining the `error` property within the\n`MediaRecorderErrorEvent` received by the `MediaRecorder`'s\n[MediaRecorder/error_event] event handler, [MediaRecorder/error_event]."
+ }
+ },
+ "mediasession": {
+ "docs": "\n\nThe **`MediaSession`** interface of the [Media Session API] allows a web page to provide custom behaviors for standard media playback interactions, and to report metadata that can be sent by the user agent to the device or operating system for presentation in standardized user interface elements.\n\nFor example, a smartphone might have a standard panel in its lock screen that provides controls for media playback and information display. A browser on the device can use `MediaSession` to make browser playback controllable from that standard/global user interface.",
+ "properties": {
+ "metadata": "\n\nThe **`metadata`** property of the [MediaSession]\ninterface contains a [MediaMetadata] object providing descriptive\ninformation about the currently playing media, or `null` if the metadata has\nnot been set. This metadata is provided by the browser to the device for presentation in\nany standard media control user interface the device might offer.",
+ "playbackstate": "\n\nThe **`playbackState`** property of the\n[MediaSession] interface indicates whether the current media session is\nplaying or paused.",
+ "setactionhandler": "\n\nThe **`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.",
+ "setcameraactive": "\n\nThe **`setCameraActive()`** method of the [MediaSession] interface is used to indicate to the user agent whether the user's camera is considered to be active.\n\nCall this method on the `navigator` object's\n[navigator.mediaSession] object.\n\nNote that the status of the camera is not tracked in the [MediaSession] itself, but must be tracked separately.",
+ "setmicrophoneactive": "\n\nThe **`setMicrophoneActive()`** method of the [MediaSession] interface is used to indicate to the user agent whether the user's microphone is considered to be currently muted.\n\nCall this method on the `navigator` object's\n[navigator.mediaSession] object.\n\nNote that the status of the microphone is not tracked in the [MediaSession] itself, but must be tracked separately.",
+ "setpositionstate": "\n\nThe **`setPositionState()`** method of the\n[MediaSession] interface is used to update the current\ndocument's media playback position and speed for presentation by user's device in any\nkind of interface that provides details about ongoing media. This can be\nparticularly useful if your code implements a player for type of media not directly\nsupported by the browser.\n\nCall this method on the `navigator` object's\n[navigator.mediaSession] object."
+ }
+ },
+ "mediasource": {
+ "docs": "\n\nThe **`MediaSource`** interface of the [Media Source Extensions API] represents a source of media data for an [HTMLMediaElement] object. A `MediaSource` object can be attached to a [HTMLMediaElement] to be played in the user agent.\n\n",
+ "properties": {
+ "activesourcebuffers": "\n\nThe **`activeSourceBuffers`** read-only property of the\n[MediaSource] interface returns a [SourceBufferList] object\ncontaining a subset of the [SourceBuffer] objects contained within\n[MediaSource.sourceBuffers] — the list of objects\nproviding the selected video track, enabled audio tracks, and shown/hidden text tracks.",
+ "addsourcebuffer": "\n\nThe **`addSourceBuffer()`** method of the\n[MediaSource] interface creates a new [SourceBuffer] of the\ngiven and adds it to the `MediaSource`'s\n[MediaSource.sourceBuffers] list. The new\n`SourceBuffer` is also returned.",
+ "canconstructindedicatedworker_static": "\n\nThe **`canConstructInDedicatedWorker`** static property of the [MediaSource] interface returns `true` if `MediaSource` worker support is implemented, providing a low-latency feature detection mechanism.\n\nIf this were not available, the alternative would be a much higher latency approach such as attempting the creation of a `MediaSource` object from a dedicated worker and transferring the result back to the main thread.",
+ "clearliveseekablerange": "\n\nThe **`clearLiveSeekableRange()`** method of the\n[MediaSource] interface clears a seekable range previously set with a call\nto [MediaSource.setLiveSeekableRange].",
+ "duration": "\n\nThe **`duration`** property of the [MediaSource]\ninterface gets and sets the duration of the current media being presented.",
+ "endofstream": "\n\nThe **`endOfStream()`** method of the\n[MediaSource] interface signals the end of the stream.",
+ "handle": "\n\nThe **`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\nEach `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 [DedicatedWorkerGlobalScope.postMessage], the handle instance in the worker is technically detached and can't be transferred again.\n\n",
+ "istypesupported_static": "\n\nThe **`MediaSource.isTypeSupported()`** static method returns a boolean value which is `true` if the given MIME type and (optional) codec are _likely_ to be supported by the current .\n\nThat is, if it can successfully create [SourceBuffer] objects for that media type.\nIf the returned value is `false`, then the user agent is certain that it _cannot_ access media of the specified format.",
+ "readystate": "\n\nThe **`readyState`** read-only property of the\n[MediaSource] interface returns an enum representing the state of the\ncurrent `MediaSource`. The three possible values are:\n\n- `closed`: The source is not currently attached to a media element.\n- `open`: The source is attached to a media element and ready to receive\n [SourceBuffer] objects.\n- `ended`: The source is attached to a media element but the stream has\n been ended via a call to [MediaSource.endOfStream].",
+ "removesourcebuffer": "\n\nThe **`removeSourceBuffer()`** method of the [MediaSource] interface removes the given [SourceBuffer] from the [SourceBufferList] associated with this `MediaSource` object.",
+ "setliveseekablerange": "\n\nThe **`setLiveSeekableRange()`** method of the\n[MediaSource] interface sets the range that the user can seek to in the\nmedia element.",
+ "sourcebuffers": "\n\nThe **`sourceBuffers`** read-only property of the\n[MediaSource] interface returns a [SourceBufferList] object\ncontaining the list of [SourceBuffer] objects associated with this\n`MediaSource`."
+ }
+ },
+ "mediasourcehandle": {
+ "docs": "\n\nThe **`MediaSourceHandle`** interface of the [Media Source Extensions API] is a proxy for a [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. `MediaSource` objects are not transferable because they are event targets, hence the need for `MediaSourceHandle`s.\n\nIt can be accessed via the [MediaSource.handle] property.\n\nEach `MediaSource` object created inside a dedicated worker has its own distinct `MediaSourceHandle`. The `MediaSource.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 [DedicatedWorkerGlobalScope.postMessage], the handle instance in the worker is technically detached and can't be transferred again.\n\n"
+ },
+ "mediastream": {
+ "docs": "\n\nThe **`MediaStream`** interface of the [Media Capture and Streams API] represents a stream of media content. A stream consists of several **tracks**, such as video or audio tracks. Each track is specified as an instance of [MediaStreamTrack].\n\nYou can obtain a `MediaStream` object either by using the constructor or by calling functions such as [MediaDevices.getUserMedia], [MediaDevices.getDisplayMedia], or [HTMLCanvasElement.captureStream] and [HTMLMediaElement.captureStream].\n\n",
+ "properties": {
+ "active": "\n\nThe **`active`** read-only property of the\n[MediaStream] interface returns a Boolean value which is\n`true` if the stream is currently active; otherwise, it returns\n`false`. A stream is considered **active** if at least one of\nits [MediaStreamTrack]s does not have its property [MediaStreamTrack.readyState]\nset to `ended`. Once every track has ended, the stream's `active` property becomes\n`false`.",
+ "addtrack": "\n\nThe **`addTrack()`** method of the [MediaStream] interface adds a new track to the\nstream. The track is specified as a parameter of type [MediaStreamTrack].\n\n> **Note:** If the specified track is already in the stream's track set, this method has no\n> effect.",
+ "addtrack_event": "\n\nThe **`addtrack`** event is fired when a new [`MediaStreamTrack`](/en-US/docs/Web/API/MediaStreamTrack) object has been added to a [`MediaStream`](/en-US/docs/Web/API/MediaStream).\n\nThis event is not cancelable and does not bubble.",
+ "clone": "\n\nThe **`clone()`** method of the [MediaStream]\ninterface creates a duplicate of the `MediaStream`. This new\n`MediaStream` object has a new unique [MediaStream.id] and\ncontains clones of every [MediaStreamTrack] contained by the\n`MediaStream` on which `clone()` was called.",
+ "getaudiotracks": "\n\nThe **`getAudioTracks()`** method of the\n[MediaStream] interface returns a sequence that represents all the\n[MediaStreamTrack] objects in this\nstream's [`track set`](https://www.w3.org/TR/mediacapture-streams/#track-set) where [MediaStreamTrack.kind]\nis `audio`.",
+ "gettrackbyid": "\n\nThe **`getTrackById()`** method of the [MediaStream] interface\nreturns a [MediaStreamTrack] object representing the track with the specified ID\nstring. If there is no track with the specified ID, this method returns `null`.",
+ "gettracks": "\n\nThe **`getTracks()`** method of the\n[MediaStream] interface returns a sequence that represents all the\n[MediaStreamTrack] objects in this\nstream's [`track set`](https://www.w3.org/TR/mediacapture-streams/#track-set),\nregardless of [MediaStreamTrack.kind].",
+ "getvideotracks": "\n\nThe **`getVideoTracks()`** method of the\n[MediaStream] interface returns a sequence of\n[MediaStreamTrack] objects representing the video tracks in this stream.",
+ "id": "\n\nThe **`id`** read-only property of the [MediaStream] interface is a\nstring containing 36 characters denoting a unique identifier (GUID)\nfor the object.",
+ "removetrack": "\n\nThe **`removeTrack()`** method of the [MediaStream] interface removes a\n[MediaStreamTrack] from a stream.",
+ "removetrack_event": "\n\nThe **`removetrack`** event is fired when a new [MediaStreamTrack] object has been removed from a [MediaStream].\n\nThis event is not cancelable and does not bubble."
+ }
+ },
+ "mediastreamaudiodestinationnode": {
+ "docs": "\n\nThe `MediaStreamAudioDestinationNode` interface represents an audio destination consisting of a [WebRTC](/en-US/docs/Web/API/WebRTC_API) [MediaStream] with a single `AudioMediaStreamTrack`, which can be used in a similar way to a `MediaStream` obtained from [MediaDevices.getUserMedia].\n\nIt is an [AudioNode] that acts as an audio destination, created using the [AudioContext.createMediaStreamDestination] method.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>0</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"explicit\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "stream": "\n\nThe `stream` property of the [AudioContext] interface represents a [MediaStream] containing a single audio [MediaStreamTrack] with the same number of channels as the node itself.\n\nYou can use this property to get a stream out of the audio graph and feed it into another construct, such as a [Media Recorder](/en-US/docs/Web/API/MediaStream_Recording_API)."
+ }
+ },
+ "mediastreamaudiosourcenode": {
+ "docs": "\n\nThe **`MediaStreamAudioSourceNode`** interface is a type of [AudioNode] which operates as an audio source whose media is received from a [MediaStream] obtained using the WebRTC or Media Capture and Streams APIs.\n\nThis media could be from a microphone (through [MediaDevices.getUserMedia]) or from a remote peer on a WebRTC call (using the [RTCPeerConnection]'s audio tracks).\n\nA `MediaStreamAudioSourceNode` has no inputs and exactly one output, and is created using the [AudioContext.createMediaStreamSource] method.\n\nThe `MediaStreamAudioSourceNode` takes the audio from the _first_ [MediaStreamTrack] whose [MediaStreamTrack.kind] attribute's value is `audio`. See [Track ordering](#track_ordering) for more information about the order of tracks.\n\nThe number of channels output by the node matches the number of tracks found in the selected audio track.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>0</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td>\n 2 (but note that [AudioNode.channelCount] is only used for up-mixing and down-mixing [AudioNode] inputs, and [MediaStreamAudioSourceNode] doesn't have any input)\n </td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "mediastream": "\n\nThe [MediaStreamAudioSourceNode] interface's\nread-only **`mediaStream`** property indicates the\n[MediaStream] that contains the audio track from which the node is\nreceiving audio.\n\nThis stream was specified when the node was first created,\neither using the [MediaStreamAudioSourceNode.MediaStreamAudioSourceNode] constructor or the\n[AudioContext.createMediaStreamSource] method."
+ }
+ },
+ "mediastreamevent": {
+ "docs": "\n\nThe **`MediaStreamEvent`** interface represents events that occurs in relation to a [MediaStream]. Two events of this type can be thrown: [RTCPeerConnection.addstream_event] and [RTCPeerConnection.removestream_event].",
+ "properties": {
+ "stream": "\n\nThe read-only property **`MediaStreamEvent.stream`** returns\nthe [MediaStream] associated with the event."
+ }
+ },
+ "mediastreamtrack": {
+ "docs": "\n\nThe **`MediaStreamTrack`** interface of the [Media Capture and Streams API] represents a single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well.\n\nSome user agents subclass this interface to provide more precise information or functionality, such as [CanvasCaptureMediaStreamTrack].\n\n",
+ "properties": {
+ "applyconstraints": "\n\nThe **`applyConstraints()`** method of the [MediaStreamTrack] interface applies a set of constraints to the track; these constraints let the website or app establish ideal values and acceptable ranges of values for the constrainable properties of the track, such as frame rate, dimensions, echo cancellation, and so forth.\n\nConstraints can be used to ensure that the media meets certain guidelines you prefer.\nFor example, you may prefer high-density video but require that the frame rate be a little low to help keep the data rate low enough not overtax the network.\nConstraints can also specify ideal and/or acceptable sizes or ranges of sizes.\nSee [Applying constraints](/en-US/docs/Web/API/Media_Capture_and_Streams_API/Constraints#applying_constraints) in [Capabilities, constraints, and settings](/en-US/docs/Web/API/Media_Capture_and_Streams_API/Constraints) for more information on how to apply your preferred constraints.",
+ "clone": "\n\nThe **`clone()`** method of the [MediaStreamTrack]\ninterface creates a duplicate of the `MediaStreamTrack`. This new\n`MediaStreamTrack` object is identical except for its unique\n[MediaStreamTrack.id].",
+ "contenthint": "\n\nThe **`contentHint`** property of the [MediaStreamTrack] interface is a string that hints at the type of content the track contains. Allowable values depend on the value of the [MediaStreamTrack.kind] property.",
+ "enabled": "\n\nThe **`enabled`** property of the\n[MediaStreamTrack] interface is a Boolean value which is\n`true` if the track is allowed to render the source stream or\n`false` if it is not. This can be used to intentionally mute a\ntrack.\n\nWhen enabled, a track's data is output from the source to the\ndestination; otherwise, empty frames are output.\n\nIn the case of audio, a disabled track generates frames of silence (that is, frames in\nwhich every sample's value is 0). For video tracks, every frame is filled entirely with\nblack pixels.\n\nThe value of `enabled`, in essence, represents what a typical user would\nconsider the muting state for a track, whereas the [MediaStreamTrack.muted] property indicates a state in which the track is temporarily unable to output\ndata, such as a scenario in which frames have been lost in transit.\n\n> **Note:** If the track has been disconnected, the value of this property\n> can be changed, but has no effect.",
+ "ended_event": "\n\nThe **`ended`** event of the [MediaStreamTrack] interface is fired when playback or streaming has stopped because the end of the media was reached or because no further data is available.\n\nThis event is not cancelable and does not bubble.",
+ "getcapabilities": "\n\nThe **`getCapabilities()`** method of\nthe [MediaStreamTrack] interface returns a\n`MediaTrackCapabilities` object which specifies the values or range of\nvalues which each constrainable property, based upon the platform and .\n\nOnce you know what the browser's capabilities are, your script can use\n[MediaStreamTrack.applyConstraints] to ask for the\ntrack to be configured to match ideal or acceptable settings. See [Capabilities, constraints, and settings](/en-US/docs/Web/API/Media_Capture_and_Streams_API/Constraints) for details on how to work with constrainable properties.",
+ "getconstraints": "\n\nThe **`getConstraints()`** method of\nthe [MediaStreamTrack] interface returns a\n[MediaTrackConstraints] object containing the set of constraints most\nrecently established for the track using a prior call to\n[MediaStreamTrack.applyConstraints]. These\nconstraints indicate values and ranges of values that the website or application has\nspecified are required or acceptable for the included constrainable properties.\n\nConstraints can be used to ensure that the media meets certain guidelines you prefer.\nFor example, you may prefer high definition video but require that the frame rate be a\nlittle low to help keep the data rate low enough not overtax the network. Constraints\ncan also specify ideal and/or acceptable sizes or ranges of sizes. See [Capabilities, constraints, and settings](/en-US/docs/Web/API/Media_Capture_and_Streams_API/Constraints) for details on how to work with constrainable properties.",
+ "getsettings": "\n\nThe **`getSettings()`** method of the\n[MediaStreamTrack] interface returns a [MediaTrackSettings]\nobject containing the current values of each of the constrainable properties for the\ncurrent `MediaStreamTrack`.\n\nSee [Capabilities, constraints, and settings](/en-US/docs/Web/API/Media_Capture_and_Streams_API/Constraints) for details on how to work with constrainable properties.",
+ "id": "\n\nThe **`id`** read-only property of the [MediaStreamTrack] interface returns a\nstring containing a unique identifier (GUID) for the track, which is\ngenerated by the .",
+ "kind": "\n\nThe **`kind`** read-only property of the [MediaStreamTrack] interface returns a string set to `\"audio\"` if the track is an audio track and to `\"video\"` if it is a video track.\nIt doesn't change if the track is disassociated from its source.",
+ "label": "\n\nThe **`label`** read-only property of the [MediaStreamTrack] interface returns a string containing a -assigned label that identifies the track source, as in `\"internal microphone\"`.\n\nThe string may be left empty and is empty as long as no source has been connected.\nWhen the track is disassociated from its source, the label is not changed.",
+ "mute_event": "\n\nThe **`mute`** event is sent to a [MediaStreamTrack] when the track's source is temporarily unable to provide media data.\n\nWhen the track is once again able to produce media output, an [MediaStreamTrack/unmute_event] event is sent.\n\nDuring the time between the `mute` event and the `unmute` event, the value of the track's [MediaStreamTrack.muted] property is `true`.\n\n> **Note:** The condition that most people think of as \"muted\" (that is, a user-toggled state of silencing a track) is actually managed using the [MediaStreamTrack.enabled] property, for which there are no events.\n\nThis event is not cancelable and does not bubble.",
+ "muted": "\n\nThe **`muted`** read-only property of the\n[MediaStreamTrack] interface returns a boolean value\nindicating whether or not the track is currently unable to provide media output.\n\n> **Note:** To implement a way for users to mute and unmute a track, use the\n> [MediaStreamTrack.enabled] property. When a track is disabled\n> by setting `enabled` to `false`, it generates only empty frames\n> (audio frames in which every sample is 0, or video frames in which every pixel is\n> black).",
+ "readystate": "\n\nThe **`readyState`** read-only property of the [MediaStreamTrack] interface returns an enumerated value giving the status of the track.",
+ "stop": "\n\nThe **`stop()`** method of the [MediaStreamTrack] interface stops the track.",
+ "unmute_event": "\n\nThe **`unmute`** event is sent to a [MediaStreamTrack] when the track's source is once again able to provide media data after a period of not being able to do so.\n\nThis ends the [MediaStreamTrack.muted] state that began with the [MediaStreamTrack/mute_event] event.\n\n> **Note:** The condition that most people think of as \"muted\" (that is, a user-controllable way to silence a track) is actually managed using the [MediaStreamTrack.enabled] property, for which there are no events.\n\nThis event is not cancelable and does not bubble."
+ }
+ },
+ "mediastreamtrackaudiosourcenode": {
+ "docs": "\n\nThe **`MediaStreamTrackAudioSourceNode`** interface is a type of [AudioNode] which represents a source of audio data taken from a specific [MediaStreamTrack] obtained through the [WebRTC](/en-US/docs/Web/API/WebRTC_API) or [Media Capture and Streams](/en-US/docs/Web/API/Media_Capture_and_Streams_API) APIs.\n\nThe audio itself might be input from a microphone or other audio sampling device, or might be received through a [RTCPeerConnection], among other possible options.\n\nA `MediaStreamTrackAudioSourceNode` has no inputs and exactly one output, and is created using the [AudioContext.createMediaStreamTrackSource] method. This interface is similar to [MediaStreamAudioSourceNode], except it lets you specifically state the track to use, rather than assuming the first audio track on a stream.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>0</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td>\n defined by the first audio [MediaStreamTrack]\n passed to the\n [AudioContext.createMediaStreamTrackSource]\n method that created it.\n </td>\n </tr>\n </tbody>\n</table>"
+ },
+ "mediastreamtrackevent": {
+ "docs": "\n\nThe **`MediaStreamTrackEvent`** interface of the [Media Capture and Streams API] represents events which indicate that a [MediaStream] has had tracks added to or removed from the stream through calls to [Media Capture and Streams API](/en-US/docs/Web/API/Media_Capture_and_Streams_API) methods. These events are sent to the stream when these changes occur.\n\nThe events based on this interface are [MediaStream/addtrack_event] and [MediaStream/removetrack_event].",
+ "properties": {
+ "track": "\n\nThe **`track`** read-only property of the [MediaStreamTrackEvent] interface returns the [MediaStreamTrack] associated with this event."
+ }
+ },
+ "mediastreamtrackgenerator": {
+ "docs": "\n\nThe **`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.",
+ "properties": {
+ "writable": "\n\nThe **`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": {
+ "docs": "\n\nThe **`MediaStreamTrackProcessor`** interface of the [Insertable Streams for MediaStreamTrack API] consumes a [MediaStreamTrack] object's source and generates a stream of media frames.",
+ "properties": {
+ "readable": "\n\nThe **`readable`** property of the [MediaStreamTrackProcessor] interface returns a [ReadableStream]."
+ }
+ },
+ "mediatrackconstraints": {
+ "docs": "\n\nThe **`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 [MediaStreamTrack.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 [MediaStreamTrack.getConstraints].",
+ "properties": {
+ "aspectratio": "\n\nThe [MediaTrackConstraints] dictionary's **`aspectRatio`** property is a [`ConstrainDouble`](/en-US/docs/Web/API/MediaTrackConstraints#constraindouble) describing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.aspectRatio] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.aspectRatio] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "autogaincontrol": "\n\nThe [MediaTrackConstraints] dictionary's **`autoGainControl`** property is a [`ConstrainBoolean`](/en-US/docs/Web/API/MediaTrackConstraints#constrainboolean) describing the requested or mandatory constraints placed\nupon the value of the [MediaTrackSettings.autoGainControl] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.autoGainControl] as returned\nby a call to [MediaDevices.getSupportedConstraints]. However, typically\nthis is unnecessary since browsers will ignore any constraints they're unfamiliar with.\n\nAutomatic gain control is typically a feature provided by microphones, although it can\nbe provided by other input sources as well.",
+ "channelcount": "\n\nThe [MediaTrackConstraints] dictionary's\n**`channelCount`** property is a [`ConstrainULong`](/en-US/docs/Web/API/MediaTrackConstraints#constrainulong)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.channelCount] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.channelCount] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "deviceid": "\n\nThe [MediaTrackConstraints] dictionary's\n**`deviceId`** property is a [`ConstrainDOMString`](/en-US/docs/Web/API/MediaTrackConstraints#constraindomstring)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.deviceId] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.deviceId] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.\n\nBecause doesn't include this information, tracks associated with a\n[WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]\nwill never include this property.",
+ "displaysurface": "\n\nThe [MediaTrackConstraints] dictionary's **`displaySurface`** property is a [`ConstrainDOMString`](/en-US/docs/Web/API/MediaTrackConstraints#constraindomstring) describing the preferred value for the [MediaTrackSettings.displaySurface] constrainable property.\n\nThis is set by the application to identify to the user agent the type of display surface (`window`, `browser`, or `monitor`) preferred by the application. It has no effect on what the user can choose to share, but may be used to present the options in a different order.\n\nIf needed, you can determine whether or not this constraint is supported by checking the value of [MediaTrackSupportedConstraints.displaySurface] as returned by a call to [MediaDevices.getSupportedConstraints]. However, typically this is unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "echocancellation": "\n\nThe [MediaTrackConstraints] dictionary's\n**`echoCancellation`** property is a\n[`ConstrainBoolean`](/en-US/docs/Web/API/MediaTrackConstraints#constrainboolean) describing the requested or mandatory constraints placed\nupon the value of the [MediaTrackSettings.echoCancellation] constrainable property.\n\nIf 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\nBecause doesn't include this information, tracks associated with a\n[WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]\nwill never include this property.",
+ "facingmode": "\n\nThe [MediaTrackConstraints] dictionary's\n**`facingMode`** property is a [`ConstrainDOMString`](/en-US/docs/Web/API/MediaTrackConstraints#constraindomstring)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.facingMode] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.facingMode] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.\n\nBecause doesn't include this information, tracks associated with a\n[WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]\nwill never include this property.",
+ "framerate": "\n\nThe [MediaTrackConstraints] dictionary's\n**`frameRate`** property is a [`ConstrainDouble`](/en-US/docs/Web/API/MediaTrackConstraints#constraindouble)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.frameRate] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.frameRate] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "groupid": "\n\nThe [MediaTrackConstraints] dictionary's\n**`groupId`** property is a [`ConstrainDOMString`](/en-US/docs/Web/API/MediaTrackConstraints#constraindomstring)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.groupId] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.groupId] as returned by a call\nto [MediaDevices.getSupportedConstraints]. However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "height": "\n\nThe [MediaTrackConstraints] dictionary's\n**`height`** property is a [`ConstrainULong`](/en-US/docs/Web/API/MediaTrackConstraints#constrainulong)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.height] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.height] as returned by a call\nto [MediaDevices.getSupportedConstraints]. However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "latency": "\n\nThe [MediaTrackConstraints] dictionary's\n**`latency`** property is a [`ConstrainDouble`](/en-US/docs/Web/API/MediaTrackConstraints#constraindouble)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.latency] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.latency] as returned by a call\nto [MediaDevices.getSupportedConstraints]. However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with.\n\nBecause doesn't include this information, tracks associated with a\n[WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]\nwill never include this property.",
+ "logicalsurface": "\n\nThe [MediaTrackConstraints] dictionary's **`logicalSurface`** property is a [`ConstrainDOMString`](/en-US/docs/Web/API/MediaTrackConstraints#constraindomstring) describing the requested or mandatory constraints placed upon the value of the [MediaTrackSettings.logicalSurface] constrainable property.\n\nThis is used to specify whether or\nnot [MediaDevices.getDisplayMedia] should allow the\nuser to choose display surfaces which are not necessarily fully visible on the screen,\nsuch as occluded windows or the complete content of windows which are large enough to\nrequire scrolling to see their entire contents.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.logicalSurface] as returned by\na call to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "noisesuppression": "\n\nThe [MediaTrackConstraints] dictionary's **`noiseSuppression`** property is a [`ConstrainBoolean`](/en-US/docs/Web/API/MediaTrackConstraints#constrainboolean) describing the requested or mandatory constraints placed upon the value of the [MediaTrackSettings.noiseSuppression] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.noiseSuppression] as returned\nby a call to [MediaDevices.getSupportedConstraints]. However, typically\nthis is unnecessary since browsers will ignore any constraints they're unfamiliar with.\n\nNoise suppression is typically provided by microphones, although it can be provided by\nother input sources as well.",
+ "samplerate": "\n\nThe [MediaTrackConstraints] dictionary's\n**`sampleRate`** property is a [`ConstrainULong`](/en-US/docs/Web/API/MediaTrackConstraints#constrainulong)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.sampleRate] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.sampleRate] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "samplesize": "\n\nThe [MediaTrackConstraints] dictionary's\n**`sampleSize`** property is a [`ConstrainULong`](/en-US/docs/Web/API/MediaTrackConstraints#constrainulong)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.sampleSize] constrainable property.\n\nIf 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.",
+ "suppresslocalaudioplayback": "\n\nThe [MediaTrackConstraints] dictionary's **`suppressLocalAudioPlayback`** property is a [`ConstrainBoolean`](/en-US/docs/Web/API/MediaTrackConstraints#constrainboolean) describing the requested or mandatory constraints placed upon the value of the [MediaTrackSettings.suppressLocalAudioPlayback] constrainable property. This property controls whether the audio playing in a tab will continue to be played out of a user's local speakers when the tab is captured.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.suppressLocalAudioPlayback] as returned\nby a call to [MediaDevices.getSupportedConstraints]. However, typically\nthis is unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "volume": "\n\nThe [MediaTrackConstraints] dictionary's\n**`volume`** property is a [`ConstrainDouble`](/en-US/docs/Web/API/MediaTrackConstraints#constraindouble)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.volume] constrainable property.\n\nIf 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.",
+ "width": "\n\nThe [MediaTrackConstraints] dictionary's\n**`width`** property is a [`ConstrainULong`](/en-US/docs/Web/API/MediaTrackConstraints#constrainulong)\ndescribing the requested or mandatory constraints placed upon the value of the\n[MediaTrackSettings.width] constrainable property.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.width] as returned by a call\nto [MediaDevices.getSupportedConstraints]. However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with."
+ }
+ },
+ "mediatracksettings": {
+ "docs": "\n\nThe **`MediaTrackSettings`** dictionary is used to return the current values configured for each of a [MediaStreamTrack]'s settings. These values will adhere as closely as possible to any constraints previously described using a [MediaTrackConstraints] object and set using [MediaStreamTrack.applyConstraints], and will adhere to the default constraints for any properties whose constraints haven't been changed, or whose customized constraints couldn't be matched.\n\nTo learn more about how constraints and settings work, see [Capabilities, constraints, and settings](/en-US/docs/Web/API/Media_Capture_and_Streams_API/Constraints).",
+ "properties": {
+ "aspectratio": "\n\nThe [MediaTrackSettings] dictionary's **`aspectRatio`** property is a double-precision floating-point number indicating the aspect ratio of the [MediaStreamTrack] as currently configured.\nThis lets you determine what value was selected to comply with your specified constraints for this property's value as described in the [MediaTrackConstraints.aspectRatio] property you provided when calling either [MediaDevices.getUserMedia] or [MediaStreamTrack.applyConstraints].\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.aspectRatio] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "autogaincontrol": "\n\nThe [MediaTrackSettings] dictionary's\n**`autoGainControl`** property is a Boolean value whose value\nindicates whether or not automatic gain control (AGC) is enabled on an audio track. This\nlets you determine what value was selected to comply with your specified constraints for\nthis property's value as described in the\n[MediaTrackConstraints.autoGainControl] property you provided when calling\neither [MediaDevices.getUserMedia] or\n[MediaStreamTrack.applyConstraints].\n\nAutomatic gain control is a feature in which a sound source automatically manages\nchanges in the volume of its source media to maintain a steady overall volume level.\nThis feature is typically used on microphones, although it can be provided by other\ninput sources as well.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.autoGainControl] as returned\nby a call to [MediaDevices.getSupportedConstraints]. However, typically\nthis is unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "channelcount": "\n\nThe [MediaTrackSettings] dictionary's\n**`channelCount`** property is an integer indicating how many\naudio channels the [MediaStreamTrack] is currently configured to have. This\nlets you determine what value was selected to comply with your specified constraints for\nthis property's value as described in the\n[MediaTrackConstraints.channelCount] property you provided when calling\neither [MediaDevices.getUserMedia] or\n[MediaStreamTrack.applyConstraints].\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.channelCount] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "cursor": "\n\nThe [MediaTrackSettings] dictionary's **`cursor`** property indicates whether or not the cursor should be captured as part of the video track included in the [MediaStream] returned by [MediaDevices.getDisplayMedia].",
+ "deviceid": "\n\nThe [MediaTrackSettings] dictionary's\n**`deviceId`** property is a string which\nuniquely identifies the source for the corresponding [MediaStreamTrack] for\nthe origin corresponding to the browsing session. This lets you determine what value was\nselected to comply with your specified constraints for this property's value as\ndescribed in the [MediaTrackConstraints.deviceId] property you provided\nwhen calling either [MediaDevices.getUserMedia].\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.deviceId] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.\n\nBecause doesn't include this information, tracks associated with a\n[WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]\nwill never include this property.",
+ "displaysurface": "\n\nThe [MediaTrackSettings] dictionary's\n**`displaySurface`** property indicates the type of display\nsurface being captured.",
+ "echocancellation": "\n\nThe [MediaTrackSettings] dictionary's\n**`echoCancellation`** property is a Boolean value whose value\nindicates whether or not echo cancellation is enabled on an audio track. This lets you\ndetermine what value was selected to comply with your specified constraints for this\nproperty's value as described in the\n[MediaTrackConstraints.echoCancellation] property you provided when calling\neither [MediaDevices.getUserMedia] or\n[MediaStreamTrack.applyConstraints].\n\nEcho cancellation is a feature which attempts to prevent echo effects on a two-way\naudio connection by attempting to reduce or eliminate crosstalk between the user's\noutput device and their input device. For example, it might apply a filter that negates\nthe sound being produced on the speakers from being included in the input track\ngenerated from the microphone.\n\nIf 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\nBecause doesn't include this information, tracks associated with a\n[WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]\nwill never include this property.",
+ "facingmode": "\n\nThe [MediaTrackSettings] dictionary's\n**`facingMode`** property is a string\nindicating the direction in which the camera producing the video track represented by\nthe [MediaStreamTrack] is currently facing. This lets you determine what\nvalue was selected to comply with your specified constraints for this property's value\nas described in the [MediaTrackConstraints.facingMode] property you\nprovided when calling either [MediaDevices.getUserMedia]\nor [MediaStreamTrack.applyConstraints].\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.facingMode] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.\n\nBecause doesn't include this information, tracks associated with a\n[WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]\nwill never include this property.",
+ "framerate": "\n\nThe [MediaTrackSettings] dictionary's\n**`frameRate`** property is a double-precision floating-point\nnumber indicating the frame rate, in frames per second, of the\n[MediaStreamTrack] as currently configured. This lets you determine what\nvalue was selected to comply with your specified constraints for this property's value\nas described in the [MediaTrackConstraints.frameRate] property you provided\nwhen calling either [MediaDevices.getUserMedia] or\n[MediaStreamTrack.applyConstraints].\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.frameRate] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "groupid": "\n\nThe [MediaTrackSettings] dictionary's\n**`groupId`** property is a browsing-session unique\nstring which identifies the group of devices which includes the source\nfor the [MediaStreamTrack]. This lets you determine what value was selected\nto comply with your specified constraints for this property's value as described in the\n[MediaTrackConstraints.groupId] property you provided when calling either\n[MediaDevices.getUserMedia].\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.groupId] as returned by a call\nto [MediaDevices.getSupportedConstraints]. However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with.\n\nBecause doesn't include this information, tracks associated with a\n[WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]\nwill never include this property.",
+ "height": "\n\nThe [MediaTrackSettings] dictionary's **`height`**\nproperty is an integer indicating the number of pixels tall\n[MediaStreamTrack] is currently configured to be. This lets you determine\nwhat value was selected to comply with your specified constraints for this property's\nvalue as described in the [MediaTrackConstraints.height] property you\nprovided when calling either [MediaDevices.getUserMedia]\nor [MediaStreamTrack.applyConstraints].\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.height] as returned by a call\nto [MediaDevices.getSupportedConstraints]. However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "latency": "\n\nThe [MediaTrackSettings] dictionary's\n**`latency`** property is a double-precision floating-point\nnumber indicating the estimated latency (specified in seconds) of the\n[MediaStreamTrack] as currently configured. This lets you determine what\nvalue was selected to comply with your specified constraints for this property's value\nas described in the [MediaTrackConstraints.latency] property you provided\nwhen calling either [MediaDevices.getUserMedia] or\n[MediaStreamTrack.applyConstraints].\n\nThis is, of course, an approximation, since latency can vary for many reasons including\nCPU, transmission, and storage overhead.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.latency] as returned by a call\nto [MediaDevices.getSupportedConstraints]. However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with.\n\nBecause doesn't include this information, tracks associated with a\n[WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]\nwill never include this property.",
+ "logicalsurface": "\n\nThe [MediaTrackSettings] dictionary's\n**`logicalSurface`** property indicates whether or not the\ndisplay area being captured is a logical surface. Logical surfaces are those which are\nnot necessarily entirely onscreen, or may even be off-screen, such as windows' backing\nbuffers (where only part of the buffer is visible without scrolling the containing\nwindow) and offscreen rendering contexts.",
+ "noisesuppression": "\n\nThe [MediaTrackSettings] dictionary's\n**`noiseSuppression`** property is a Boolean value whose value\nindicates whether or not noise suppression technology is enabled on an audio track. This\nlets you determine what value was selected to comply with your specified constraints for\nthis property's value as described in the\n[MediaTrackConstraints.noiseSuppression] property you provided when calling\neither [MediaDevices.getUserMedia] or\n[MediaStreamTrack.applyConstraints].\n\nNoise suppression automatically filters the audio to remove background noise, hum\ncaused by equipment, and the like from the sound before delivering it to your code. This\nfeature is typically used on microphones, although it is technically possible it could\nbe provided by other input sources as well.\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.noiseSuppression] as returned\nby a call to [MediaDevices.getSupportedConstraints]. However, typically\nthis is unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "samplerate": "\n\nThe [MediaTrackSettings] dictionary's\n**`sampleRate`** property is an integer indicating how many\naudio samples per second the [MediaStreamTrack] is currently configured\nfor. This lets you determine what value was selected to comply with your specified\nconstraints for this property's value as described in the\n[MediaTrackConstraints.sampleRate] property you provided when calling\neither [MediaDevices.getUserMedia] or\n[MediaStreamTrack.applyConstraints].\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.sampleRate] as returned by a\ncall to [MediaDevices.getSupportedConstraints]. However, typically this\nis unnecessary since browsers will ignore any constraints they're unfamiliar with.",
+ "samplesize": "\n\nThe [MediaTrackSettings] dictionary's\n**`sampleSize`** 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\n[MediaTrackConstraints.sampleSize] property you provided when calling\neither [MediaDevices.getUserMedia] or\n[MediaStreamTrack.applyConstraints].\n\nIf 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.",
+ "suppresslocalaudioplayback": "\n\nThe [MediaTrackSettings] dictionary's **`suppressLocalAudioPlayback`** property controls whether the audio playing in a tab will continue to be played out of a user's local speakers when the tab is captured.\n\nFor example, in cases where you broadcast a video call to an external AV system in a conference room, you will want the audio to play out of the AV system, and not the local speakers. This way, the audio will be louder and clearer, and also in sync with the conference video.",
+ "volume": "\n\nThe [MediaTrackSettings] dictionary's **`volume`**\nproperty is a double-precision floating-point number indicating the volume of the\n[MediaStreamTrack] 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 [MediaDevices.getUserMedia] or\n[MediaStreamTrack.applyConstraints].\n\nIf 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.",
+ "width": "\n\nThe [MediaTrackSettings] dictionary's **`width`**\nproperty is an integer indicating the number of pixels wide\n[MediaStreamTrack] is currently configured to be. This lets you determine\nwhat value was selected to comply with your specified constraints for this property's\nvalue as described in the [MediaTrackConstraints.width] property you\nprovided when calling either [MediaDevices.getUserMedia]\nor [MediaStreamTrack.applyConstraints].\n\nIf needed, you can determine whether or not this constraint is supported by checking\nthe value of [MediaTrackSupportedConstraints.width] as returned by a call\nto [MediaDevices.getSupportedConstraints]. However, typically this is\nunnecessary since browsers will ignore any constraints they're unfamiliar with."
+ }
+ },
+ "mediatracksupportedconstraints": {
+ "docs": "\n\nThe **`MediaTrackSupportedConstraints`** dictionary establishes the list of constrainable properties recognized by the or browser in its implementation of the [MediaStreamTrack] object. An object conforming to `MediaTrackSupportedConstraints` is returned by [MediaDevices.getSupportedConstraints].\n\nBecause of the way interface definitions in WebIDL work, if a constraint is requested but not supported, no error will occur. Instead, the specified constraints will be applied, with any unrecognized constraints stripped from the request. That can lead to confusing and hard to debug errors, so be sure to use `getSupportedConstraints()` to retrieve this information before attempting to establish constraints if you need to know the difference between silently ignoring a constraint and a constraint being accepted.\n\nAn actual constraint set is described using an object based on the [MediaTrackConstraints] dictionary.\n\nTo learn more about how constraints work, see [Capabilities, constraints, and settings](/en-US/docs/Web/API/Media_Capture_and_Streams_API/Constraints).",
+ "properties": {
+ "aspectratio": "\n\nThe [MediaTrackSupportedConstraints] dictionary's **`aspectRatio`** property is a read-only Boolean value which is present (and set to `true`) in the object returned by [MediaDevices.getSupportedConstraints] if and only if the\n supports the `aspectRatio` constraint.\nIf the constraint isn't supported, it's not included in the list, so this value will never be `false`.\n\nYou can access the supported constraints dictionary by calling `navigator.mediaDevices.getSupportedConstraints()`.",
+ "autogaincontrol": "\n\nThe [MediaTrackSupportedConstraints] dictionary's **`autoGainControl`** property is a read-only Boolean value which is present (and set to `true`) in the object returned by [MediaDevices.getSupportedConstraints] if and only if the supports the **`autoGainControl`** constraint.\nIf the constraint isn't supported, it's not included in the list, so this value will never be `false`.\n\nYou can access the supported constraints dictionary by calling `navigator.mediaDevices.getSupportedConstraints()`.\n\nThe `autoGainControl` constraint indicates whether or not the browser offers the ability to automatically control the gain (volume) on media tracks; this obviously is contingent on whether or not the individual device supports automatic gain control as well; it's typically a feature provided by microphones.",
+ "channelcount": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`channelCount`** property is a read-only Boolean value which\nis present (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `channelCount` constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.",
+ "deviceid": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`deviceId`** property is a read-only Boolean value which is\npresent (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `deviceId` constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.",
+ "displaysurface": "\n\nThe [MediaTrackSupportedConstraints] dictionary's **`displaySurface`** property indicates whether or not the [MediaTrackConstraints.displaySurface] constraint is supported by the user agent and the device on which the content is being used.\n\nThe supported constraints list is obtained by calling [MediaDevices.getSupportedConstraints].",
+ "echocancellation": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`echoCancellation`** property is a read-only Boolean value\nwhich is present (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `echoCancellation` constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.",
+ "facingmode": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`facingMode`** property is a read-only Boolean value which is\npresent (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `facingMode` constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.",
+ "framerate": "\n\nThe [MediaTrackSupportedConstraints] dictionary's **`frameRate`** property is a read-only Boolean value which is\npresent (and set to `true`) in the object returned by [MediaDevices.getSupportedConstraints] if and only if the supports the [MediaTrackConstraints.frameRate] constraint.\n\nIf the constraint isn't supported, it's not included in the list, so this value will never be `false`.\n\nThe `frameRate` constraint can be used to establish acceptable upper and lower bounds on the video frame rate for a new video track, or to specify an exact frame rate that must be provided for the request to succeed.\nChecking the value of this property lets you determine if the user agent allows constraining the video track configuration by frame rate. See the [example](#examples) to see how this can be used.",
+ "groupid": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`groupId`** property is a read-only Boolean value which is\npresent (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `groupId` constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.",
+ "height": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`height`** property is a read-only Boolean value which is\npresent (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `height` constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.",
+ "latency": "\n\nThe [MediaTrackSupportedConstraints] dictionary's **`latency`** property is a read-only Boolean value which is present (and set to `true`) in the object returned by [MediaDevices.getSupportedConstraints] if and only if the supports the `latency` constraint.\nIf the constraint isn't supported, it's not included in the list, so this value will never be `false`.\n\nYou can access the supported constraints dictionary by calling `navigator.mediaDevices.getSupportedConstraints()`.",
+ "logicalsurface": "\n\nThe [MediaTrackSupportedConstraints] dictionary's **`logicalSurface`** property indicates whether or not the [MediaTrackConstraints.logicalSurface] constraint is supported by the user agent and the device on which the content is being used.\n\nThe supported constraints list is obtained by calling [MediaDevices.getSupportedConstraints].",
+ "noisesuppression": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`noiseSuppression`** property is a read-only Boolean value\nwhich is present (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the **`noiseSuppression`**\nconstraint. If the constraint isn't supported, it's not included in the list, so this\nvalue will never be `false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.\n\nThe `noiseSuppression` constraint indicates whether or not the browser\noffers the ability to automatically control the gain (volume) on media tracks; this\nobviously is contingent on whether or not the individual device supports automatic gain\ncontrol as well.",
+ "samplerate": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`sampleRate`** property is a read-only Boolean value which is\npresent (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `sampleRate` constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.",
+ "samplesize": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`sampleSize`** property is a read-only Boolean value which is\npresent (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `sampleSize` constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.",
+ "suppresslocalaudioplayback": "\n\nThe [MediaTrackSupportedConstraints] dictionary's **`suppressLocalAudioPlayback`** property indicates whether or not the [MediaTrackConstraints.suppressLocalAudioPlayback] constraint is supported by the user agent and the device on which the content is being used.\n\nThe supported constraints list is obtained by calling [MediaDevices.getSupportedConstraints].",
+ "volume": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`volume`** property is a read-only Boolean value which is\npresent (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `volume` constraint. If the\nconstraint isn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`.",
+ "width": "\n\nThe [MediaTrackSupportedConstraints] dictionary's\n**`width`** property is a read-only Boolean value which is\npresent (and set to `true`) in the object returned by\n[MediaDevices.getSupportedConstraints] if and only if the\n supports the `width` constraint. If the constraint\nisn't supported, it's not included in the list, so this value will never be\n`false`.\n\nYou can access the supported constraints dictionary by calling\n`navigator.mediaDevices.getSupportedConstraints()`."
+ }
+ },
+ "merchantvalidationevent": {
+ "docs": "\n\nThe **`MerchantValidationEvent`** interface of the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) enables a merchant to verify themselves as allowed to use a particular payment handler.\n\nLearn more about [merchant validation](/en-US/docs/Web/API/Payment_Request_API/Concepts#merchant_validation).",
+ "properties": {
+ "complete": "\n\nThe [MerchantValidationEvent] method **`complete()`** takes merchant-specific information previously received from the [MerchantValidationEvent.validationURL] and uses it to validate the merchant.\n\nAll you have to do is call `complete()` from your handler for the [PaymentRequest.merchantvalidation_event] event, passing in the data fetched from the `validationURL`.",
+ "methodname": "\n\nThe [MerchantValidationEvent] property\n**`methodName`** is a read-only value which returns a string\nindicating the payment method identifier which represents the payment handler that\nrequires merchant validation.",
+ "validationurl": "\n\nThe [MerchantValidationEvent] property\n**`validationURL`** is a read-only string value providing the\nURL from which to fetch the payment handler-specific data needed to validate the\nmerchant.\n\nThis data should be passed into the [MerchantValidationEvent.complete] method to let the user agent complete the transaction."
+ }
+ },
+ "messagechannel": {
+ "docs": "\n\nThe **`MessageChannel`** interface of the [Channel Messaging API](/en-US/docs/Web/API/Channel_Messaging_API) allows us to create a new message channel and send data through it via its two [MessagePort] properties.\n\n",
+ "properties": {
+ "port1": "\n\nThe **`port1`** read-only property of the\n[MessageChannel] interface returns the first port of the message channel —\nthe port attached to the context that originated the channel.\n\n",
+ "port2": "\n\nThe **`port2`** read-only property of the\n[MessageChannel] interface returns the second port of the message channel —\nthe port attached to the context at the other end of the channel, which the message is\ninitially sent to.\n\n"
+ }
+ },
+ "messageevent": {
+ "docs": "\n\nThe **`MessageEvent`** interface represents a message received by a target object.\n\nThis is used to represent messages in:\n\n- [Server-sent events](/en-US/docs/Web/API/Server-sent_events) (see [EventSource.message_event]).\n- [Web sockets](/en-US/docs/Web/API/WebSockets_API) (see the `onmessage` property of the [WebSocket](/en-US/docs/Web/API/WebSocket) interface).\n- Cross-document messaging (see [Window.postMessage] and [Window.message_event]).\n- [Channel messaging](/en-US/docs/Web/API/Channel_Messaging_API) (see [MessagePort.postMessage] and [MessagePort.message_event]).\n- Cross-worker/document messaging (see the above two entries, but also [Worker.postMessage], [Worker.message_event], [ServiceWorkerGlobalScope.message_event], etc.)\n- [Broadcast channels](/en-US/docs/Web/API/Broadcast_Channel_API) (see [BroadcastChannel.postMessage]) and [BroadcastChannel.message_event]).\n- WebRTC data channels (see [RTCDataChannel.message_event]).\n\nThe action triggered by this event is defined in a function set as the event handler for the relevant `message` event (e.g. using an `onmessage` handler as listed above).\n\n",
+ "properties": {
+ "data": "\n\nThe **`data`** read-only property of the\n[MessageEvent] interface represents the data sent by the message emitter.",
+ "lasteventid": "\n\nThe **`lastEventId`** read-only property of the\n[MessageEvent] interface is a string representing a\nunique ID for the event.",
+ "origin": "\n\nThe **`origin`** read-only property of the\n[MessageEvent] interface is a string representing the\norigin of the message emitter.",
+ "ports": "\n\nThe **`ports`** read-only property of the\n[MessageEvent] interface is an array of [MessagePort] objects\nrepresenting the ports associated with the channel the message is being sent through\n(where appropriate, e.g. in channel messaging or when sending a message to a shared\nworker).",
+ "source": "\n\nThe **`source`** read-only property of the\n[MessageEvent] interface is a `MessageEventSource` (which can be\na , [MessagePort], or\n[ServiceWorker] object) representing the message emitter."
+ }
+ },
+ "messageport": {
+ "docs": "\n\nThe **`MessagePort`** interface of the [Channel Messaging API](/en-US/docs/Web/API/Channel_Messaging_API) represents one of the two ports of a [MessageChannel], allowing messages to be sent from one port and listening out for them arriving at the other.\n\n`MessagePort` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [MessagePort]\ninterface disconnects the port, so it is no longer active. This stops the flow of\nmessages to that port.\n\n",
+ "message_event": "\n\nThe `message` event is fired on a [MessagePort] object when a message arrives on that channel.\n\nThis event is not cancellable and does not bubble.",
+ "messageerror_event": "\n\nThe `messageerror` event is fired on a [MessagePort] object when it receives a message that can't be deserialized.\n\nThis event is not cancellable and does not bubble.",
+ "postmessage": "\n\nThe **`postMessage()`** method of the\n[MessagePort] interface sends a message from the port, and optionally,\ntransfers ownership of objects to other browsing contexts.\n\n",
+ "start": "\n\nThe **`start()`** method of the [MessagePort]\ninterface starts the sending of messages queued on the port. This method is only needed\nwhen using [EventTarget.addEventListener]; it is implied when using\n[MessagePort.message_event].\n\n"
+ }
+ },
+ "metadata": {
+ "docs": "\n\nThe **`Metadata`** interface contains information about a file system entry. This metadata includes the file's size and modification date and time.\n\n> **Note:** This interface isn't available through the global scope; instead, you obtain a `Metadata` object describing a [FileSystemEntry] using the method [FileSystemEntry.getMetadata].",
+ "properties": {
+ "modificationtime": "\n\nThe 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.",
+ "size": "\n\nThe 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": {
+ "docs": "\n\nThe **`MIDIAccess`** interface of the [Web MIDI API](/en-US/docs/Web/API/Web_MIDI_API) provides methods for listing MIDI input and output devices, and obtaining access to those devices.\n\n",
+ "properties": {
+ "inputs": "\n\nThe **`inputs`** read-only property of the [MIDIAccess] interface provides access to any available MIDI input ports.",
+ "outputs": "\n\nThe **`outputs`** read-only property of the [MIDIAccess] interface provides access to any available MIDI output ports.",
+ "statechange_event": "\n\nThe **`statechange`** event of the [MIDIAccess] interface is fired when a new MIDI port is added or when an existing port changes state.",
+ "sysexenabled": "\n\nThe **`sysexEnabled`** read-only property of the [MIDIAccess] interface indicates whether system exclusive support is enabled on the current MIDIAccess instance."
+ }
+ },
+ "midiconnectionevent": {
+ "docs": "\n\nThe **`MIDIConnectionEvent`** interface of the [Web MIDI API](/en-US/docs/Web/API/Web_MIDI_API) is the event passed to the [MIDIAccess.statechange_event] event of the [MIDIAccess] interface and the [MIDIPort.statechange_event] event of the [MIDIPort] interface. This occurs any time a new port becomes available, or when a previously available port becomes unavailable. For example, this event is fired whenever a MIDI device is either plugged in to or unplugged from a computer.\n\n",
+ "properties": {
+ "port": "\n\nThe **`port`** read-only property of the [MIDIConnectionEvent] interface returns the port that has been disconnected or connected."
+ }
+ },
+ "midiinput": {
+ "docs": "\n\nThe **`MIDIInput`** interface of the [Web MIDI API](/en-US/docs/Web/API/Web_MIDI_API) receives messages from a MIDI input port.\n\n",
+ "properties": {
+ "midimessage_event": "\n\nThe `midimessage` event of the [Web MIDI API](/en-US/docs/Web/API/Web_MIDI_API) is fired when the MIDI port corresponding to this [MIDIInput] finishes receiving one or more MIDI messages. An instance of [MIDIMessageEvent] containing the message that was received is passed to the event handler."
+ }
+ },
+ "midiinputmap": {
+ "docs": "\n\nThe **`MIDIInputMap`** read-only interface of the [Web MIDI API](/en-US/docs/Web/API/Web_MIDI_API) provides the set of MIDI input ports that are currently available.\n\nA `MIDIInputMap` instance is a read-only [`Map`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#map-like_browser_apis), in which each key is the ID string for MIDI input, and the associated value is the corresponding [MIDIInput] object."
+ },
+ "midimessageevent": {
+ "docs": "\n\nThe **`MIDIMessageEvent`** interface of the [Web MIDI API](/en-US/docs/Web/API/Web_MIDI_API) represents the event passed to the [MIDIInput.midimessage_event] event of the [MIDIInput] interface. A `midimessage` event is fired every time a MIDI message is sent from a device represented by a [MIDIInput], for example when a MIDI keyboard key is pressed, a knob is tweaked, or a slider is moved.\n\n",
+ "properties": {
+ "data": "\n\nThe **`data`** read-only property of the [MIDIMessageEvent] interface returns the MIDI data bytes of a single MIDI message."
+ }
+ },
+ "midioutput": {
+ "docs": "\n\nThe **`MIDIOutput`** interface of the [Web MIDI API] provides methods to add messages to the queue of an output device, and to clear the queue of messages.\n\n",
+ "properties": {
+ "clear": "\n\nThe **`clear()`** method of the [MIDIOutput] interface clears the queue of messages being sent to the output device.",
+ "send": "\n\nThe **`send()`** method of the [MIDIOutput] interface queues messages for the corresponding MIDI port. The message can be sent immediately, or with an optional timestamp to delay sending."
+ }
+ },
+ "midioutputmap": {
+ "docs": "\n\nThe **`MIDIOutputMap`** read-only interface of the [Web MIDI API](/en-US/docs/Web/API/Web_MIDI_API) provides the set of MIDI output ports that are currently available.\n\nA `MIDIOutputMap` instance is a read-only [`Map`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#map-like_browser_apis), in which each key is the ID string for MIDI output, and the associated value is the corresponding [MIDIOutput] object."
+ },
+ "midiport": {
+ "docs": "`Web MIDI API`\n\nThe **`MIDIPort`** interface of the [Web MIDI API] represents a MIDI input or output port.\n\nA `MIDIPort` instance is created when a new MIDI device is connected. Therefore it has no constructor.\n\n",
+ "properties": {
+ "close": "`Web MIDI API`\n\nThe **`close()`** method of the [MIDIPort] interface makes the access to the MIDI device connected to this `MIDIPort` unavailable.\n\nIf the port is successfully closed a new [MIDIConnectionEvent] is queued to the [MIDIPort.statechange_event] and [MIDIAccess.statechange_event] events, and the [MIDIPort.connection] property is changed to `\"closed\"`.",
+ "connection": "`Web MIDI API`\n\nThe **`connection`** read-only property of the [MIDIPort] interface returns the connection state of the port.",
+ "id": "`Web MIDI API`\n\nThe **`id`** read-only property of the [MIDIPort] interface returns the unique ID of the port.",
+ "manufacturer": "`Web MIDI API`\n\nThe **`manufacturer`** read-only property of the [MIDIPort] interface returns the manufacturer of the port.",
+ "name": "`Web MIDI API`\n\nThe **`name`** read-only property of the [MIDIPort] interface returns the system name of the port.",
+ "open": "`Web MIDI API`\n\nThe **`open()`** method of the [MIDIPort] interface makes the MIDI device connected to this `MIDIPort` explicitly available.\n\nIf the port is successfully opened a new [MIDIConnectionEvent] is queued to the [MIDIPort.statechange_event] and [MIDIAccess.statechange_event] events, and the [MIDIPort.connection] property is changed to `\"open\"`.\n\nIf the port is already open when this method is called, then the promise will resolve successfully.",
+ "state": "`Web MIDI API`\n\nThe **`state`** read-only property of the [MIDIPort] interface returns the state of the port.",
+ "statechange_event": "`Web MIDI API`\n\nThe **`statechange`** event of the [MIDIPort] interface is fired when a port changes from open to closed, or closed to open.",
+ "type": "`Web MIDI API`\n\nThe **`type`** read-only property of the [MIDIPort] interface returns the type of the port, indicating whether this is an input or output MIDI port.",
+ "version": "`Web MIDI API`\n\nThe **`version`** read-only property of the [MIDIPort] interface returns the version of the port."
+ }
+ },
+ "mimetype": {
+ "docs": "\n\nThe **`MimeType`** interface provides contains information about a MIME type associated with a particular plugin. [Navigator.mimeTypes] returns an array of this object."
+ },
+ "mimetypearray": {
+ "docs": "\n\nThe **`MimeTypeArray`** interface returns an array of [MimeType] instances, each of which contains information about a supported browser plugins. This object is returned by [Navigator.mimeTypes].\n\n> **Note:** This interface was an [attempt to create an unmodifiable list](https://stackoverflow.com/questions/74630989/why-use-domstringlist-rather-than-an-array/74641156#74641156) and only continues to be supported to not break code that's already using it. Modern APIs use types that wrap around ECMAScript array types instead, so you can treat them like ECMAScript arrays, and at the same time impose additional semantics on their usage (such as making their items read-only)."
+ },
+ "mouseevent": {
+ "docs": "\n\nThe **`MouseEvent`** interface represents events that occur due to the user interacting with a pointing device (such as a mouse).\nCommon events using this interface include [Element/click_event], [Element/dblclick_event], [Element/mouseup_event], [Element/mousedown_event].\n\n`MouseEvent` derives from [UIEvent], which in turn derives from [Event].\nThough the [MouseEvent.initMouseEvent] method is kept for backward compatibility, creating of a `MouseEvent` object should be done using the [MouseEvent.MouseEvent] constructor.\n\nSeveral more specific events are based on `MouseEvent`, including [WheelEvent], [DragEvent], and [PointerEvent].\n\n",
+ "properties": {
+ "altkey": "\n\nThe **`MouseEvent.altKey`** read-only property is a boolean value that indicates whether the <kbd>alt</kbd> key was pressed or not when a given mouse event occurs.\n\nBe aware that the browser can't always detect the <kbd>alt</kbd> key on some operating systems.\nOn some Linux variants, for example, a left mouse click combined with the <kbd>alt</kbd> key is used to move or resize windows.\n\n> **Note:** On Macintosh keyboards, this key is also known as the <kbd>option</kbd> key.",
+ "button": "\n\nThe **`MouseEvent.button`** read-only property indicates which button was pressed on the mouse to trigger the event.\n\nThis property only guarantees to indicate which buttons are pressed during events caused by pressing or releasing one or multiple buttons.\nAs such, it is not reliable for events such as [Element/mouseenter_event], [Element/mouseleave_event], [Element/mouseover_event], [Element/mouseout_event], or [Element/mousemove_event].\n\nUsers may change the configuration of buttons on their pointing device so that if an event's button property is zero, it may not have been caused by the button that is physically left–most on the pointing device; however, it should behave as if the left button was clicked in the standard button layout.\n\n> **Note:** Do not confuse this property with the [MouseEvent.buttons] property, which indicates which buttons are pressed for all mouse events types.",
+ "buttons": "\n\nThe **`MouseEvent.buttons`** read-only property indicates which buttons are pressed on the mouse (or other input device) when a mouse event is triggered.\n\nEach button that can be pressed is represented by a given number (see below).\nIf more than one button is pressed, the button values are added together to produce a new number.\nFor example, if the secondary (`2`) and auxiliary (`4`) buttons are pressed simultaneously, the value is `6` (i.e., `2 + 4`).\n\n> **Note:** Do not confuse this property with the [MouseEvent.button] property.\n> The [MouseEvent.buttons] property indicates the state of buttons pressed during any kind of mouse event,\n> while the [MouseEvent.button] property only guarantees the correct value for mouse events caused by pressing or releasing one or multiple buttons.",
+ "clientx": "\n\nThe **`clientX`** read-only property of the [MouseEvent] interface provides the horizontal coordinate within the application's at which the event occurred (as opposed to the coordinate within the page).\n\nFor example, clicking on the left edge of the viewport will always result in a mouse event with a `clientX` value of `0`, regardless of whether the page is scrolled horizontally.",
+ "clienty": "\n\nThe **`clientY`** read-only property of the [MouseEvent] interface provides the vertical coordinate within the application's at which the event occurred (as opposed to the coordinate within the page).\n\nFor example, clicking on the top edge of the viewport will always result in a mouse event with a `clientY` value of `0`, regardless of whether the page is scrolled vertically.",
+ "ctrlkey": "\n\nThe **`MouseEvent.ctrlKey`** read-only property is a boolean value that indicates whether the <kbd>ctrl</kbd> key was pressed or not when a given mouse event occurs.\n\nOn Macintosh keyboards, this key is labeled the <kbd>control</kbd> key. Also, note that on a Mac, a click combined with the <kbd>control</kbd> key is intercepted by the operating system and used to open a context menu, so `ctrlKey` is not detectable on click events.",
+ "getmodifierstate": "\n\nThe **`MouseEvent.getModifierState()`** method returns the current state of the specified modifier key: `true` if the modifier is active (i.e., the modifier key is pressed or locked), otherwise, `false`.\n\nSee [KeyboardEvent.getModifierState] for details.",
+ "initmouseevent": "\n\nThe **`MouseEvent.initMouseEvent()`** method initializes the\nvalue of a mouse event once it's been created (normally using the [Document.createEvent] method).\n\n> **Warning:** Do not use this method anymore as it is deprecated.\n>\n> Instead use specific event constructors, like [MouseEvent.MouseEvent].\n> The page on [Creating and triggering events](/en-US/docs/Web/Events/Creating_and_triggering_events) gives more information about the way to use these.\n\nEvents 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].",
+ "layerx": "\n\nThe **`MouseEvent.layerX`** read-only property returns the\nhorizontal coordinate of the event relative to the current layer.\n\nThis 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.",
+ "layery": "\n\nThe **`MouseEvent.layerY`** read-only property returns the\nvertical coordinate of the event relative to the current layer.\n\nThis 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.",
+ "metakey": "\n\nThe **`MouseEvent.metaKey`** read-only property is a boolean value that indicates whether the <kbd>meta</kbd> key was pressed or not when a given mouse event occurs.\n\nBe aware that many operating systems bind special functionality to the <kbd>meta</kbd> key, so this property may be `false` even when the key is actually pressed.\nOn Windows, for example, this key may open the Start menu.\n\n> **Note:** On Macintosh keyboards, this key is the <kbd>command</kbd> key (<kbd>⌘</kbd>).\n> On Windows keyboards, this key is the Windows key (<kbd>⊞</kbd>).",
+ "movementx": "\n\nThe **`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 [Element/mousemove_event] event.\nIn other words, the value of the property is computed like this: `currentEvent.movementX = currentEvent.screenX - previousEvent.screenX`.\n\n> **Warning:** Browsers [use different units for `movementX` and [MouseEvent.screenX]](https://github.com/w3c/pointerlock/issues/42) 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.",
+ "movementy": "\n\nThe **`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 [Element/mousemove_event] event.\nIn other words, the value of the property is computed like this: `currentEvent.movementY = currentEvent.screenY - previousEvent.screenY`.\n\n> **Warning:** Browsers [use different units for `movementY` and [MouseEvent.screenY]](https://github.com/w3c/pointerlock/issues/42) 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.",
+ "mozinputsource": " \n\nThe **`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).",
+ "offsetx": "\n\nThe **`offsetX`** read-only property of the [MouseEvent] interface provides the offset in the X coordinate of the mouse pointer between that event and the padding edge of the target node.",
+ "offsety": "\n\nThe **`offsetY`** read-only property of the [MouseEvent] interface provides the offset in the Y coordinate of the mouse pointer between that event and the padding edge of the target node.",
+ "pagex": "\n\nThe **`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\nBeing 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\nOriginally, this property was defined as a `long` integer. The [CSSOM View Module](/en-US/docs/Web/CSS/CSSOM_view) redefined it as a\n`double` float. See the [Browser compatibility](#browser_compatibility) section for\ndetails.\n\nSee [Coordinate systems](/en-US/docs/Web/CSS/CSSOM_view/Coordinate_systems#page) for additional information about coordinates specified in this fashion.",
+ "pagey": "\n\nThe **`pageY`** read-only property of the [MouseEvent] interface returns the Y (vertical) coordinate in pixels of the event relative to the whole document.\nThis property takes into account any vertical scrolling of the page.",
+ "relatedtarget": "\n\nThe **`MouseEvent.relatedTarget`** read-only property is the secondary target for the mouse event, if there is one.\n\nThat is:\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th>Event name</th>\n <th><code>target</code></th>\n <th><code>relatedTarget</code></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>[Element/mouseenter_event]</td>\n <td>\n The [EventTarget] the pointing device entered to\n </td>\n <td>\n The [EventTarget] the pointing device exited from\n </td>\n </tr>\n <tr>\n <td>[Element/mouseleave_event]</td>\n <td>\n The [EventTarget] the pointing device exited from\n </td>\n <td>\n The [EventTarget] the pointing device entered to\n </td>\n </tr>\n <tr>\n <td>[Element/mouseout_event]</td>\n <td>\n The [EventTarget] the pointing device exited from\n </td>\n <td>\n The [EventTarget] the pointing device entered to\n </td>\n </tr>\n <tr>\n <td>[Element/mouseover_event]</td>\n <td>\n The [EventTarget] the pointing device entered to\n </td>\n <td>\n The [EventTarget] the pointing device exited from\n </td>\n </tr>\n <tr>\n <td>[HTMLElement/dragenter_event]</td>\n <td>\n The [EventTarget] the pointing device entered to\n </td>\n <td>\n The [EventTarget] the pointing device exited from\n </td>\n </tr>\n <tr>\n <td>[HTMLElement/dragleave_event]</td>\n <td>\n The [EventTarget] the pointing device exited from\n </td>\n <td>\n The [EventTarget] the pointing device entered to\n </td>\n </tr>\n </tbody>\n</table>\n\nFor events with no secondary target, `relatedTarget` returns\n`null`.\n\n[FocusEvent.relatedTarget] is a similar property for focus events.",
+ "screenx": "\n\nThe **`screenX`** read-only property of the [MouseEvent] interface provides the horizontal coordinate (offset) of the mouse pointer in [screen coordinates](/en-US/docs/Web/CSS/CSSOM_view/Coordinate_systems#screen).\n\n> **Note:** In 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.",
+ "screeny": "\n\nThe **`screenY`** read-only property of the [MouseEvent] interface provides the vertical coordinate (offset) of the mouse pointer in [screen coordinates](/en-US/docs/Web/CSS/CSSOM_view/Coordinate_systems#screen).",
+ "shiftkey": "\n\nThe **`MouseEvent.shiftKey`** read-only property is a boolean value that indicates whether the <kbd>shift</kbd> key was pressed or not when a given mouse event occurs.",
+ "webkit_force_at_force_mouse_down_static": "\n\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\nBecause `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.",
+ "webkit_force_at_mouse_down_static": "\n\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\nBecause `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.",
+ "webkitforce": "\n\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.",
+ "x": "\n\nThe **`MouseEvent.x`** property is an alias for the [MouseEvent.clientX] property.",
+ "y": "\n\nThe **`MouseEvent.y`** property is an alias for the [MouseEvent.clientY] property."
+ }
+ },
+ "mousescrollevent": {
+ "docs": "\n\nThe **`MouseScrollEvent`** interface represents events that occur due to the user moving a mouse wheel or similar input device.\n\n> **Warning:** Do not use this interface for wheel events.\n>\n> Like `MouseWheelEvent`, this interface is non-standard and deprecated. It was used in Gecko-based browsers only. Instead use the standard _[WheelEvent]._"
+ },
+ "mutationevent": {
+ "docs": "\n\nThe **`MutationEvent`** interface provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes.\n\n> **Note:** Using _mutation events_ is problematic:\n>\n> - Their design is [flawed](https://lists.w3.org/Archives/Public/public-webapps/2011JulSep/0779.html).\n> - Adding DOM mutation listeners to a document [profoundly degrades the performance](https://groups.google.com/d/topic/mozilla.dev.platform/L0Lx11u5Bvs?pli=1) 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](https://webkit.org/b/8191)) and Firefox doesn't support _mutation name events_ (like `DOMElementNameChanged` and `DOMAttributeNameChanged`).\n>\n> They have been deprecated in favor of [mutation observers](/en-US/docs/Web/API/MutationObserver). **Consider using these instead.**\n\n",
+ "properties": {
+ "attrchange": "\n\nThe **`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`.",
+ "attrname": "\n\nThe **`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 (`\"\"`).",
+ "initmutationevent": "\n\nThe **`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\nThis method must be called to set the event before it is dispatched, using [EventTarget.dispatchEvent].\n\n> **Note:** In general, you won't create these events yourself; they are created by the browser.",
+ "newvalue": "\n\nThe **`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 (`\"\"`).",
+ "prevvalue": "\n\nThe **`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 (`\"\"`).",
+ "relatednode": "\n\nThe **`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": {
+ "docs": "\n\nThe [MutationObserver] interface provides the ability to watch for changes being made to the [DOM](/en-US/docs/Web/API/Document_Object_Model) tree. It is designed as a replacement for the older [Mutation Events](/en-US/docs/Web/API/MutationEvent) feature, which was part of the DOM3 Events specification.",
+ "properties": {
+ "disconnect": "\n\nThe [MutationObserver] method\n**`disconnect()`** tells the observer to stop watching for\nmutations.\n\nThe observer can be reused by calling its\n[MutationObserver.observe] method again.",
+ "observe": "\n\nThe [MutationObserver] method **`observe()`** configures the `MutationObserver`\ncallback to begin receiving notifications of changes to the DOM that match the given options.\n\nDepending on the configuration, the observer may watch a single [Node] in the DOM tree, or that node and some or all of its descendant nodes.\n\nTo stop the `MutationObserver` (so that none of its callbacks will be triggered any longer), call [MutationObserver.disconnect].",
+ "takerecords": "\n\nThe [MutationObserver] method\n**`takeRecords()`** returns a list of all matching DOM changes\nthat have been detected but not yet processed by the observer's callback function,\nleaving the mutation queue empty.\n\nThe most common use case for this is to\nimmediately fetch all pending mutation records immediately prior to disconnecting the\nobserver, so that any pending mutations can be processed when shutting down the\nobserver."
+ }
+ },
+ "mutationrecord": {
+ "docs": "\n\nThe [MutationRecord] is a read-only interface that represents an individual DOM mutation observed by a [MutationObserver]. It is the object inside the array passed to the callback of a [MutationObserver].",
+ "properties": {
+ "addednodes": "\n\nThe [MutationRecord] read-only property **`addedNodes`** is a [NodeList] of nodes added to a target node by a mutation observed with a [MutationObserver].",
+ "attributename": "\n\nThe [MutationRecord] read-only property **`attributeName`** contains the name of a changed attribute belonging to a node that is observed by a [MutationObserver].",
+ "attributenamespace": "\n\nThe [MutationRecord] read-only property **`attributeNamespace`** is the namespace of the mutated attribute in the [MutationRecord] observed by a [MutationObserver].",
+ "nextsibling": "\n\nThe [MutationRecord] read-only property **`nextSibling`** is the next sibling of an added or removed child node of the [`target`](/en-US/docs/Web/API/MutationRecord/target) of a [MutationObserver].",
+ "oldvalue": "\n\nThe [MutationRecord] read-only property **`oldValue`** contains the character data or attribute value of an observed node before it was changed.",
+ "previoussibling": "\n\nThe [MutationRecord] read-only property **`previousSibling`** is the previous sibling of an added or removed child node of the [`target`](/en-US/docs/Web/API/MutationRecord/target) of a [MutationObserver].",
+ "removednodes": "\n\nThe [MutationRecord] read-only property **`removedNodes`** is a [NodeList] of nodes removed from a target node by a mutation observed with a [MutationObserver].",
+ "target": "\n\nThe [MutationRecord] read-only property **`target`** is the target (i.e. the mutated/changed node) of a mutation observed with a [MutationObserver].",
+ "type": "\n\nThe [MutationRecord] read-only property **`type`** is the type of the [MutationRecord] observed by a [MutationObserver]."
+ }
+ },
+ "namednodemap": {
+ "docs": "\n\nThe **`NamedNodeMap`** interface represents a collection of [Attr] objects. Objects inside a `NamedNodeMap` are not in any particular order, unlike [NodeList], although they may be accessed by an index as in an array.\n\nA `NamedNodeMap` object is _live_ and will thus be auto-updated if changes are made to its contents internally or elsewhere.\n\n> **Note:** Although called `NamedNodeMap`, this interface doesn't deal with [Node] objects but with [Attr] objects, which are a specialized class of [Node] objects.",
+ "properties": {
+ "getnameditem": "\n\nThe **`getNamedItem()`** method of the [NamedNodeMap] interface returns the [Attr] corresponding to the given name, or `null` if there is no corresponding attribute.\n\n> **Note:** This method is also called when you use the operator `[]` syntax.\n> So, `myMap[str]`is equivalent to `myMap.getNamedItem(str)` where `str` is a string.",
+ "getnameditemns": "\n\nThe **`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.",
+ "item": "\n\nThe **`item()`** method of the [NamedNodeMap] interface\nreturns the item in the map matching the index.\n\n> **Note:** This method is also called when you use the operator `[]` syntax.\n> So, `myMap[i]`is equivalent to `myMap.item(i)` where `i` is a number.",
+ "length": "\n\nThe read-only **`length`** property of the [NamedNodeMap] interface\nis the number of objects stored in the map.",
+ "removenameditem": "\n\nThe **`removeNamedItem()`** method of the [NamedNodeMap] interface\nremoves the [Attr] corresponding to the given name from the map.",
+ "removenameditemns": "\n\nThe **`removedNamedItemNS()`** method of the [NamedNodeMap] interface\nremoves the [Attr] corresponding to the given namespace and local name from the map.",
+ "setnameditem": "\n\nThe **`setNamedItem()`** method of the [NamedNodeMap] interface\nputs the [Attr] identified by its name in the map.\nIf there is already an [Attr] with the same name in the map,\nit is _replaced_.",
+ "setnameditemns": "\n\nThe **`setNamedItemNS()`** method of the [NamedNodeMap] interface\nputs the [Attr] identified by its name in the map.\nIf there was already an [Attr] with the same name in the map,\nit is _replaced_.\n\n> **Note:** This method is an alias of `setNamedItem()` you can use them\n> interchangeably."
+ }
+ },
+ "navigateevent": {
+ "docs": "\n\nThe **`NavigateEvent`** interface of the [Navigation API] is the event object for the [Navigation/navigate_event] event, which fires when [any type of navigation](https://github.com/WICG/navigation-api#appendix-types-of-navigations) is initiated (this includes usage of [History API] features like [History.go]). `NavigateEvent` provides access to information about that navigation, and allows developers to intercept and control the navigation handling.\n\n",
+ "properties": {
+ "canintercept": "\n\nThe **`canIntercept`** read-only property of the\n[NavigateEvent] interface returns `true` if the navigation can be intercepted and have its URL rewritten, or `false` otherwise\n\nThere are several rules around when a navigation can be intercepted. For example:\n\n- You can't intercept cross-origin navigations.\n- You can intercept `http` or `https` URLs if only the `path`, `query`, and `fragment` portions of the new URL differ from the current URL.\n- You can intercept `file` URLs if only the `query` and `fragment` portions of the new URL differ.\n- For other URL types you can intercept the navigation if only the `fragment` portion differs.\n\nSee the spec for more explanation on [when a Document can have its URL rewritten](https://html.spec.whatwg.org/multipage/nav-history-apis.html#can-have-its-url-rewritten), including a table of examples.",
+ "destination": "\n\nThe **`destination`** read-only property of the\n[NavigateEvent] interface returns a [NavigationDestination] object representing the destination being navigated to.",
+ "downloadrequest": "\n\nThe **`downloadRequest`** read-only property of the\n[NavigateEvent] interface returns the filename of the file requested for download, in the case of a download navigation (e.g. an `a` or `area` element with a `download` attribute), or `null` otherwise.",
+ "formdata": "\n\nThe **`formData`** read-only property of the\n[NavigateEvent] interface returns the [FormData] object representing the submitted data in the case of a [`POST`](/en-US/docs/Web/HTTP/Methods/POST) form submission, or `null` otherwise.",
+ "hashchange": "\n\nThe **`hashChange`** read-only property of the\n[NavigateEvent] interface returns `true` if the navigation is a fragment navigation (i.e. to a fragment identifier in the same document), or `false` otherwise.",
+ "info": "\n\nThe **`info`** read-only property of the\n[NavigateEvent] interface returns the `info` data value passed by the initiating navigation operation (e.g. [Navigation.back], or [Navigation.navigate]), or `undefined` if no `info` data was passed.",
+ "intercept": "\n\nThe **`intercept()`** method of the\n[NavigateEvent] interface intercepts this navigation, turning it into a same-document navigation to the [NavigationDestination.url] URL.",
+ "navigationtype": "\n\nThe **`navigationType`** read-only property of the\n[NavigateEvent] interface returns the type of the navigation — `push`, `reload`, `replace`, or `traverse`.",
+ "scroll": "\n\nThe **`scroll()`** method of the\n[NavigateEvent] interface can be called to manually trigger the browser-driven scrolling behavior that occurs in response to the navigation, if you want it to happen before the navigation handling has completed.",
+ "signal": "\n\nThe **`signal`** read-only property of the\n[NavigateEvent] interface returns an [AbortSignal], which will become aborted if the navigation is cancelled (e.g. by the user pressing the browser's \"Stop\" button, or another navigation starting and thus cancelling the ongoing one).",
+ "userinitiated": "\n\nThe **`userInitiated`** read-only property of the\n[NavigateEvent] interface returns `true` if the navigation was initiated by the user (e.g. by clicking a link, submitting a form, or pressing the browser's \"Back\"/\"Forward\" buttons), or `false` otherwise.\n\n> **Note:** The table found at [Appendix: types of navigations](https://github.com/WICG/navigation-api#appendix-types-of-navigations) shows which navigation types are user-initiated."
+ }
+ },
+ "navigation": {
+ "docs": "\n\nThe **`Navigation`** interface of the [Navigation API] allows control over all navigation actions for the current `window` in one central place, including initiating navigations programmatically, examining navigation history entries, and managing navigations as they happen.\n\nIt is accessed via the [Window.navigation] property.\n\nThe Navigation API only exposes history entries created in the current browsing context that have the same origin as the current page (e.g. not navigations inside embedded `iframe`s, or cross-origin navigations), providing an accurate list of all previous history entries just for your app. This makes traversing the history a much less fragile proposition than with the older [History API].\n\n",
+ "properties": {
+ "back": "\n\nThe **`back()`** method of the\n[Navigation] interface navigates backwards by one entry in the navigation history.",
+ "cangoback": "\n\nThe **`canGoBack`** read-only property of the\n[Navigation] interface returns `true`\nif it is possible to navigate backwards in the navigation history\n(i.e. the [Navigation.currentEntry] is\nnot the first one in the history entry list),\nand `false` if it is not.",
+ "cangoforward": "\n\nThe **`canGoForward`** read-only property of the\n[Navigation] interface returns `true` if it is possible to navigate forwards in the navigation history\n(i.e. the [Navigation.currentEntry] is not the last one in the history entry list),\nand `false` if it is not.",
+ "currententry": "\n\nThe **`currentEntry`** read-only property of the\n[Navigation] interface returns a [NavigationHistoryEntry] object representing the location the user is currently navigated to right now.",
+ "currententrychange_event": "\n\nThe **`currententrychange`** event of the [Navigation] interface is fired when the [Navigation.currentEntry] has changed.\n\nThis event will fire for:\n\n- Same-document navigations (e.g. [Navigation.back] or [Navigation.traverseTo]).\n\n- Replacements (i.e. a [Navigation.navigate] call with `history` set to `replace`).\n\n- Other calls that change the entry's state (e.g. [Navigation.updateCurrentEntry], or the [History API]'s [History.replaceState]).\n\nThis event fires after the navigation is committed, meaning that the visible URL has changed and the [NavigationHistoryEntry] update has occurred. It is useful for migrating from usage of older API features like the [Window/hashchange_event] or [Window/popstate_event] events.",
+ "entries": "\n\nThe **`entries()`** method of the\n[Navigation] interface returns an array of [NavigationHistoryEntry] objects representing all existing history entries.",
+ "forward": "\n\nThe **`forward()`** method of the\n[Navigation] interface navigates forwards by one entry in the navigation history.",
+ "navigate": "\n\nThe **`navigate()`** method of the\n[Navigation] interface navigates to a specific URL, updating any provided state in the history entries list.",
+ "navigate_event": "\n\nThe **`navigate`** event of the [Navigation] interface is fired when [any type of navigation](https://github.com/WICG/navigation-api#appendix-types-of-navigations) is initiated, allowing you to intercept as required.",
+ "navigateerror_event": "\n\nThe **`navigateerror`** event of the [Navigation] interface is fired when a navigation fails.\n\nFor example, if the network is down, any [fetch] method invoked to handle a navigation will fail, and the error will be routed to `navigateerror`.",
+ "navigatesuccess_event": "\n\nThe **`navigatesuccess`** event of the [Navigation] interface is fired when a successful navigation has finished.\n\nIn the case of an intercepted navigation, this would occur after any promises returned by your [NavigateEvent.intercept] handler are fulfilled. The [NavigationTransition.finished] promise will also fulfill at the same time.",
+ "reload": "\n\nThe **`reload()`** method of the\n[Navigation] interface reloads the current URL, updating any provided state in the history entries list.",
+ "transition": "\n\nThe **`transition`** read-only property of the [Navigation] interface returns a [NavigationTransition] object representing the status of an in-progress navigation, which can be used to track it.",
+ "traverseto": "\n\nThe **`traverseTo()`** method of the [Navigation] interface navigates to the [NavigationHistoryEntry] identified by the given [NavigationHistoryEntry.key].",
+ "updatecurrententry": "\n\nThe **`updateCurrentEntry()`** method of the [Navigation] interface updates the `state` of the [Navigation.currentEntry]; used in cases where the state change will be independent of a navigation or reload."
+ }
+ },
+ "navigationcurrententrychangeevent": {
+ "docs": "\n\nThe **`NavigationCurrentEntryChangeEvent`** interface of the [Navigation API] is the event object for the [Navigation/currententrychange_event] event, which fires when the [Navigation.currentEntry] has changed.\n\nThis event will fire for same-document navigations (e.g. [Navigation.back] or [Navigation.traverseTo]), replacements (i.e. a [Navigation.navigate] call with `history` set to `replace`), or other calls that change the entry's state (e.g. [Navigation.updateCurrentEntry], or the [History API]'s [History.replaceState]).\n\nThis event fires after the navigation is committed, meaning that the visible URL has changed and the [NavigationHistoryEntry] update has occurred. It is useful for migrating from usage of older API features like the [Window/hashchange_event] or [Window/popstate_event] events.\n\n",
+ "properties": {
+ "from": "\n\nThe **`from`** read-only property of the [NavigationCurrentEntryChangeEvent] interface returns the [NavigationHistoryEntry] that was navigated from.",
+ "navigationtype": "\n\nThe **`navigationType`** read-only property of the [NavigationCurrentEntryChangeEvent] interface returns the type of the navigation that resulted in the change. The property may be `null` if the change occurs due to [Navigation.updateCurrentEntry]."
+ }
+ },
+ "navigationdestination": {
+ "docs": "\n\nThe **`NavigationDestination`** interface of the [Navigation API] represents the destination being navigated to in the current navigation.\n\nIt is accessed via the [NavigateEvent.destination] property.\n\n",
+ "properties": {
+ "getstate": "\n\nThe **`getState()`** method of the\n[NavigationDestination] interface returns a clone of the developer-supplied state associated with the destination [NavigationHistoryEntry], or navigation operation (e.g. [Navigation.navigate]) as appropriate.",
+ "id": "\n\nThe **`id`** read-only property of the\n[NavigationDestination] interface returns the [NavigationHistoryEntry.id] value of the destination [NavigationHistoryEntry] if the [NavigateEvent.navigationType] is `traverse`, or an empty string otherwise.\n\nThe `id` is a unique, UA-generated value that always represents the history entry, useful to correlate a history entry with an external resource such as a storage cache.",
+ "index": "\n\nThe **`index`** read-only property of the\n[NavigationDestination] interface returns the [NavigationHistoryEntry.index] value of the destination [NavigationHistoryEntry] if the [NavigateEvent.navigationType] is `traverse`, or `-1` otherwise.",
+ "key": "\n\nThe **`key`** read-only property of the\n[NavigationDestination] interface returns the [NavigationHistoryEntry.key] value of the destination [NavigationHistoryEntry] if the [NavigateEvent.navigationType] is `traverse`, or an empty string otherwise.\n\nThe `key` is a unique, UA-generated value that represents the history entry's slot in the history entries list, used to navigate to this place in the history via [Navigation.traverseTo]. It will be reused by other entries that replace the entry in the list (i.e. if the [NavigateEvent.navigationType] is `replace`).",
+ "samedocument": "\n\nThe **`sameDocument`** read-only property of the\n[NavigationDestination] interface returns `true` if the navigation is to the same `document` as the current [Document] value, or `false` otherwise.\n\nThis is useful for checking whether the navigation will be same-document or cross-document.",
+ "url": "\n\nThe **`url`** read-only property of the\n[NavigationDestination] interface returns the URL being navigated to."
+ }
+ },
+ "navigationhistoryentry": {
+ "docs": "\n\nThe **`NavigationHistoryEntry`** interface of the [Navigation API] represents a single navigation history entry.\n\nThese objects are commonly accessed via the [Navigation.currentEntry] property and [Navigation.entries] method.\n\nThe Navigation API only exposes history entries created in the current browsing context that have the same origin as the current page (e.g. not navigations inside embedded `iframe`s, or cross-origin navigations), providing an accurate list of all previous history entries just for your app. This makes traversing the history a much less fragile proposition than with the older [History API].\n\n",
+ "properties": {
+ "dispose_event": "\n\nThe **`dispose`** event of the [NavigationHistoryEntry] interface is fired when the entry is no longer part of the history entry list.\n\nDisposal occurs when:\n\n- Forward history entries are cleared. See the example at [Notifications on entry disposal](https://github.com/wicg/navigation-api#notifications-on-entry-disposal) for more information.\n- The user clears their browser history using settings or provided UI controls.\n- The history limit is exceeded. This is not specified anywhere, but browsers tend to have a history limit of 50 pages.",
+ "getstate": "\n\nThe **`getState()`** method of the [NavigationHistoryEntry] interface returns a clone of the developer-supplied state associated with this history entry.",
+ "id": "\n\nThe **`id`** read-only property of the [NavigationHistoryEntry] interface returns the `id` of the history entry, or an empty string if current document is not fully active. This is a unique, UA-generated value that always represents a specific history entry, useful to correlate it with an external resource such as a storage cache.\n\nThis differs from the [NavigationHistoryEntry.key] of a history entry. The `key` is a unique, UA-generated value that represents the history entry's slot in the entries list rather than the entry itself. It is used to navigate that particular slot via [Navigation.traverseTo]. The `key` will be reused by other entries that replace the entry in the list (that is, if the [NavigateEvent.navigationType] is `replace`).",
+ "index": "\n\nThe **`index`** read-only property of the [NavigationHistoryEntry] interface returns the index of the history entry in the history entries list (that is, the list returned by [Navigation.entries]), or `-1` if the entry does not appear in the list or if current document is not fully active.",
+ "key": "\n\nThe **`key`** read-only property of the [NavigationHistoryEntry] interface returns the `key` of the history entry, or an empty string if current document is not fully active. This is a unique, UA-generated value that represents the history entry's slot in the entries list. It is used to navigate that particular slot via [Navigation.traverseTo]. The `key` will be reused by other entries that replace the entry in the list (that is, if the [NavigateEvent.navigationType] is `replace`).\n\nThis differs from the [NavigationHistoryEntry.id] of a history entry. The `id` is a unique, UA-generated value that always represents a specific history entry rather than its slot in the entries list. This is useful to correlate it with an external resource such as a storage cache.",
+ "samedocument": "\n\nThe **`sameDocument`** read-only property of the [NavigationHistoryEntry] interface returns `true` if this history entry is for the same `document` as the current [Document] value and current document is fully active, or `false` otherwise.",
+ "url": "\n\nThe **`url`** read-only property of the [NavigationHistoryEntry] interface returns the absolute URL of this history entry. If the entry corresponds to a different Document than the current one (like `sameDocument` property is `false`), and that Document was fetched with a header set to `no-referrer` or `origin`, the property returns `null`. If current document is not fully active, it returns an empty string."
+ }
+ },
+ "navigationpreloadmanager": {
+ "docs": "\n\nThe **`NavigationPreloadManager`** interface of the [Service Worker API](/en-US/docs/Web/API/Service_Worker_API) provides methods for managing the preloading of resources in parallel with service worker bootup.\n\nIf supported, an object of this type is returned by [ServiceWorkerRegistration.navigationPreload].\nThe result of a preload fetch request is waited on using the promise returned by [FetchEvent.preloadResponse].",
+ "properties": {
+ "disable": "\n\nThe **`disable()`** method of the [NavigationPreloadManager] interface halts the automatic preloading of service-worker-managed resources previously started using [NavigationPreloadManager.enable]\nIt returns a promise that resolves with `undefined`.\n\nThe method may be called in the service worker's `activate` event handler (before the `fetch` event handler can be called).",
+ "enable": "\n\nThe **`enable()`** method of the [NavigationPreloadManager] interface is used to enable preloading of resources managed by the service worker.\nIt returns a promise that resolves with `undefined`.\n\nThe method should be called in the service worker's `activate` event handler, which ensures it is called before any `fetch` event handler can fire.",
+ "getstate": "\n\nThe **`getState()`** method of the [NavigationPreloadManager] interface returns a `Promise` that resolves to an object with properties that indicate whether preload is enabled and what value will be sent in the HTTP header.",
+ "setheadervalue": "\n\nThe **`setHeaderValue()`** method of the [NavigationPreloadManager] interface sets the value of the header that will be sent with requests resulting from a [fetch] operation made during service worker navigation preloading.\nIt returns an empty `Promise` that resolves with `undefined`.\n\nThe presence of the header in preloading requests allows servers to configure the returned resource differently for preloading fetch requests than from normal fetch requests.\nThe default directive is set to `true`: this method allows the possibility of configuring multiple different responses to preload requests.\n\n> **Note:** If a different response may result from setting this header, the server must set `Vary: Service-Worker-Navigation-Preload` to ensure that the different responses are cached."
+ }
+ },
+ "navigationtransition": {
+ "docs": "\n\nThe **`NavigationTransition`** interface of the [Navigation API] represents an ongoing navigation, that is, a navigation that hasn't yet reached the [Navigation/navigatesuccess_event] or [Navigation/navigateerror_event] stage.\n\nIt is accessed via the [Navigation.transition] property.\n\n",
+ "properties": {
+ "finished": "\n\nThe **`finished`** read-only property of the\n[NavigationTransition] interface returns a `Promise` that fulfills at the same time the [Navigation/navigatesuccess_event] event fires, or rejects at the same time the [Navigation/navigateerror_event] event fires.",
+ "from": "\n\nThe **`from`** read-only property of the\n[NavigationTransition] interface returns the [NavigationHistoryEntry] that the transition is coming from.",
+ "navigationtype": "\n\nThe **`navigationType`** read-only property of the\n[NavigationTransition] interface returns the type of the ongoing navigation."
+ }
+ },
+ "navigator": {
+ "docs": "\n\nThe **`Navigator`** interface represents the state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities.\n\nA `Navigator` object can be retrieved using the read-only [window.navigator] property.",
+ "properties": {
+ "activevrdisplays": "\n\nThe **`activeVRDisplays`** read-only property of the\n[Navigator] interface returns an array containing every\n[VRDisplay] object that is currently presenting\n([VRDisplay.ispresenting] is `true`).\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "appcodename": " \n\nThe value of the **`Navigator.appCodeName`** property is\nalways \"`Mozilla`\", in any browser. This property is kept only for\ncompatibility purposes.\n\n> **Note:** Do not rely on this property to return a real\n> product name. All browsers return \"`Mozilla`\" as the value of this property.",
+ "appname": " \n\nThe value of the **`Navigator.appName`** property is always\n\"`Netscape`\", in any browser. This property is kept only for compatibility\npurposes.\n\n> **Note:** Do not rely on this property to return a real browser name. All browsers return \"`Netscape`\" as the value of this property.",
+ "appversion": " \n\nReturns either \"`4.0`\" or a string representing version information about\nthe browser.\n\n> **Note:** Do not rely on this property to return the correct browser version.",
+ "bluetooth": "\n\nThe **`bluetooth`** read-only property of the [Navigator] interface returns a [Bluetooth] object for the current document, providing access to [Web Bluetooth API](/en-US/docs/Web/API/Web_Bluetooth_API) functionality.",
+ "buildid": "\n\nReturns 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.",
+ "canshare": "\n\nThe **`Navigator.canShare()`** method of the [Web Share API](/en-US/docs/Web/API/Web_Share_API) returns `true` if the equivalent call to [navigator.share] would succeed.\n\nThe method returns `false` if the data cannot be _validated_. Reasons the data might be invalid include:\n\n- The `data` parameter has been omitted or only contains properties with unknown values. Note that any properties that are not recognized by the user agent are ignored.\n- A URL is badly formatted.\n- Files are specified but the implementation does not support file sharing.\n- Sharing the specified data would be considered a \"hostile share\" by the user-agent.\n\nThe Web Share API is gated by the [web-share](/en-US/docs/Web/HTTP/Headers/Permissions-Policy/web-share) permission policy.\nThe **`canShare()`** method will return `false` if the permission is supported but has not been granted.",
+ "clearappbadge": "\n\nThe **`clearAppBadge()`** method of the [Navigator] interface clears a badge on the current app's icon by setting it to `nothing`. The value `nothing` indicates that no badge is currently set, and the status of the badge is _cleared_.",
+ "clipboard": "\n\nThe [Clipboard API](/en-US/docs/Web/API/Clipboard_API) adds to the **[Navigator]** interface the\nread-only **`clipboard`** property, which returns the\n[Clipboard] object used to read and write the clipboard's\ncontents.\n\nThe Clipboard API can be used to implement cut, copy, and paste\nfeatures within a web application.\n\nUse of the asynchronous clipboard read and write methods requires that the user grant\nthe website or app permission to access the clipboard. This permission must be obtained\nfrom the [Permissions API](/en-US/docs/Web/API/Permissions_API) using the\n`\"clipboard-read\"` and/or `\"clipboard-write\"` permissions.",
+ "connection": "\n\nThe **`Navigator.connection`** read-only property returns a [NetworkInformation] object containing information about the system's connection, such as the current bandwidth of the user's device or whether the connection is metered.\n\nThis could be used to select high definition content or low definition content based on the user's connection.",
+ "contacts": "\n\nThe **`contacts`** read-only property of the\n[Navigator] interface returns a [ContactsManager] interface\nwhich allows users to select entries from their contact list and share limited details\nof the selected entries with a website or application.",
+ "cookieenabled": "\n\n`navigator.cookieEnabled` returns a Boolean value that indicates whether cookies are enabled or not.\n\nThe property is read-only.",
+ "credentials": "\n\nThe **`credentials`** property of the [Navigator]\ninterface returns the [CredentialsContainer] interface, which exposes\nmethods to request credentials. The [CredentialsContainer] interface also\nnotifies the user agent when an interesting event occurs, such as a successful sign-in\nor sign-out. This interface can be used for feature detection.",
+ "devicememory": "\n\nThe **`deviceMemory`** read-only\nproperty of the [Navigator] interface returns the approximate amount of\ndevice memory in gigabytes.\n\nThe reported value is imprecise to curtail . It's approximated by\nrounding down to the nearest power of 2, then dividing that number by 1024. It is then\nclamped within lower and upper bounds to protect the privacy of owners of very low-memory or\nhigh-memory devices.",
+ "donottrack": "\n\nThe **`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\nThe value of the property reflects that of the `DNT` HTTP header, i.e. values of `\"1\"`, `\"0\"`, or `null`.",
+ "geolocation": "\n\nThe **`Navigator.geolocation`** read-only property returns a\n[Geolocation] object that gives Web content access to the location of the\ndevice. This allows a website or app to offer customized results based on the user's\nlocation.\n\n> **Note:** For security reasons, when a web page tries to access location\n> information, the user is notified and asked to grant permission. Be aware that each\n> browser has its own policies and methods for requesting this permission.",
+ "getautoplaypolicy": "\n\nThe **`getAutoplayPolicy()`** method of the _Autoplay Policy Detection API_ provides information about whether [autoplay](/en-US/docs/Web/Media/Autoplay_guide) of media elements and audio contexts is allowed, disallowed, or only allowed if the audio is muted.\n\nApplications can use this information to provide an appropriate user experience.\nFor example, if the user agent policy only allows autoplay of inaudible content, the application might mute videos so that they can still autoplay.\n\nThe method can be used to get either the broad autoplay policy for all items of a particular type in the document, or for specific media elements or audio contexts.",
+ "getbattery": "\n\nThe **`getBattery()`** method provides information about the system's battery.\nIt returns a battery promise, which resolves with a [BatteryManager] object providing some properties to get the battery status also some events you can handle to monitor the battery status.\nThis implements the [Battery Status API]; see that documentation for additional details, a guide to using the API, and sample code.\n\nSince Chrome 103, the `Navigator.getBattery()` method of [Battery Status API] only expose to secure context.\n\n> **Note:** Access to this feature may be controlled by the directive .",
+ "getgamepads": "\n\nThe **`Navigator.getGamepads()`** method returns an array of\n[Gamepad] objects, one for each gamepad connected to the device.\n\nElements in the array may be `null` if a gamepad disconnects during a\nsession, so that the remaining gamepads retain the same index.",
+ "getinstalledrelatedapps": "\n\nThe **`getInstalledRelatedApps()`** method returns a promise that resolves with an array of objects representing any related platform-specific apps or [Progressive Web Apps](/en-US/docs/Web/Progressive_web_apps) that the user has installed. This could be used for content personalization such as removing \"install our app\" banners from the web app if the platform-specific app and/or PWA is already installed.\n\n> **Note:** This method must be invoked in a top-level [secure context](/en-US/docs/Web/Security/Secure_Contexts), that is, not embedded in an `iframe`.",
+ "getusermedia": "\n\nThe deprecated **`Navigator.getUserMedia()`** method prompts the user for permission to use up to one video input device (such as a camera or shared screen) and up to one audio input device (such as a microphone) as the source for a [MediaStream].\n\nIf permission is granted, a `MediaStream` whose video and/or audio tracks come from those devices is delivered to the specified success callback.\nIf permission is denied, no compatible input devices exist, or any other error condition occurs, the error callback is executed with an object describing what went wrong.\nIf the user instead doesn't make a choice at all, neither callback is executed.\n\n> **Note:** This is a legacy method.\n> Please use the newer [MediaDevices.getUserMedia] instead.\n> While technically not deprecated, this old callback version is marked as such, since the specification strongly encourages using the newer promise returning version.",
+ "getvrdisplays": "\n\nThe **`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.",
+ "globalprivacycontrol": "\n\nThe **`Navigator.globalPrivacyControl`** read-only property returns the user's [Global Privacy Control](https://globalprivacycontrol.org/) setting for the current website.\nThis setting indicates whether the user consents to the website or service selling or sharing their personal information with third parties.\n\nThe value of the property reflects that of the HTTP header.",
+ "gpu": "\n\nThe **`Navigator.gpu`** read-only property returns the [GPU] object for the current browsing context, which is the entry point for the [WebGPU_API].",
+ "hardwareconcurrency": "\n\nThe **`navigator.hardwareConcurrency`** read-only property\nreturns the number of logical processors available to run threads on the user's\ncomputer.",
+ "hid": "\n\nThe **`Navigator.hid`**\nread-only property returns an [HID] object providing methods\nfor connecting to HID devices, listing attached HID devices, and event\nhandlers for connected HID devices.\n\nWhere a defined [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) blocks WebHID usage, the `Navigator.hid` property will not be available.",
+ "ink": "\n\nThe **`ink`** read-only property of the [Navigator] interface returns an [Ink] object for the current document, providing access to [Ink API](/en-US/docs/Web/API/Ink_API) functionality.",
+ "javaenabled": "\n\nThis method always returns false.",
+ "keyboard": "\n\nThe **`keyboard`** read-only property\nof the [Navigator] interface returns a [Keyboard] object\nwhich provides access to functions that retrieve keyboard layout maps and toggle\ncapturing of key presses from the physical keyboard.",
+ "language": "\n\nThe **`Navigator.language`** read-only property returns a string representing the preferred language of the user, usually the language of the browser UI.",
+ "languages": "\n\nThe **`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\n`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\nThe value of [Navigator.language] is the\nfirst element of the returned array.\n\nWhen its value changes, as the user's preferred languages are changed a\n[Window.languagechange_event] event is fired on the [Window] object.\n\nThe `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`).",
+ "locks": "\n\nThe **`locks`** read-only property of\nthe [Navigator] interface returns a [LockManager] object\nwhich provides methods for requesting a new [Lock] object and querying\nfor an existing `Lock` object.",
+ "maxtouchpoints": "\n\nThe **`maxTouchPoints`** read-only property of the\n[Navigator] interface returns the maximum number of simultaneous touch\ncontact points are supported by the current device.",
+ "mediacapabilities": "\n\nThe **`Navigator.mediaCapabilities`** read-only property\nreturns a [MediaCapabilities] object that can expose information about the\ndecoding and encoding capabilities for a given format and output capabilities as defined\nby the [Media Capabilities API](/en-US/docs/Web/API/Media_Capabilities_API).",
+ "mediadevices": "\n\nThe **`Navigator.mediaDevices`** read-only property returns a\n[MediaDevices] object, which provides access to connected media input\ndevices like cameras and microphones, as well as screen sharing.",
+ "mediasession": "\n\nThe read-only **`mediaSession`** property of the [Navigator]\ninterface returns a [MediaSession]\nobject that can be used to share with the browser metadata and other information about\nthe current playback state of media being handled by a document.\n\nThis\ninformation may, in turn, be shared with the device and/or operating system in order to\na device's standard media control user experience to describe and control the playback\nof the media.\n\nIn addition, the `MediaSession` interface provides the\n[MediaSession.setActionHandler] method, which lets\nyou receive events when the user engages device controls such as either onscreen or\nphysical play, pause, seek, and other similar controls. An internet radio app, for\nexample, can use `setActionHandler()` to let the media controls on a keyboard\nor elsewhere on the user's device be used to control the app's media playback.",
+ "mimetypes": "\n\nReturns 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\nRecent 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:** Use [Navigator.pdfViewerEnabled] to determine if inline viewing of PDF files is supported. Do not infer it from this property.\n\nLegacy browser versions do not hard-code the list returned by the property, and might return other MIME types.",
+ "online": "\n\nReturns the online status of the browser. The property returns a boolean value, with\n`true` meaning online and `false` meaning offline. The property\nsends updates whenever the browser's ability to connect to the network changes. The\nupdate occurs when the user follows links or when a script requests a remote page. For\nexample, the property should return `false` when users click links soon after\nthey lose internet connection.\n\nBrowsers implement this property differently.\n\nIn Chrome and Safari, if the browser is not able to connect to a local area network\n(LAN) or a router, it is offline; all other conditions return `true`. So\nwhile you can assume that the browser is offline when it returns a `false`\nvalue, you cannot assume that a true value necessarily means that the browser can access\nthe internet. You could be getting false positives, such as in cases where the computer\nis running a virtualization software that has virtual ethernet adapters that are always\n\"connected.\" Therefore, if you really want to determine the online status of the\nbrowser, you should develop additional means for checking.\n\nIn Firefox, switching the browser to offline mode sends a `false` value. Until Firefox\n41, all other conditions returned a `true` value; testing actual behavior on Nightly 68 on\nWindows shows that it only looks for LAN connection like Chrome and Safari giving false\npositives.\n\nYou can see changes in the network state by listening to the [`online`](/en-US/docs/Web/API/Window/online_event) and [`offline`](/en-US/docs/Web/API/Window/offline_event) events.",
+ "oscpu": " \n\nThe **`Navigator.oscpu`** property returns a string that identifies the current operating system.",
+ "pdfviewerenabled": "\n\nThe **`pdfViewerEnabled`** read-only property of the [Navigator] interface indicates whether the browser supports inline display of PDF files when navigating to them.\n\nIf inline viewing is not supported the PDF is downloaded and may then be handled by some external application.\n\n> **Note:** This method replaces a number of legacy methods of inferring support for inline viewing of PDF files.",
+ "permissions": "\n\nThe **`Navigator.permissions`** read-only property returns a\n[Permissions] object that can be used to query and update permission\nstatus of APIs covered by the [Permissions API](/en-US/docs/Web/API/Permissions_API).",
+ "platform": "\n\nThe **`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:** In 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](/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/Feature_detection).",
+ "plugins": "\n\nReturns 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\nRecent 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:** Use [Navigator.pdfViewerEnabled] to determine if inline viewing of PDF files is supported. Do not infer it from this property.\n>\n> The \"five standard plugins\" are those that developers have most commonly used to feature detect inline PDF viewing.\n> Returning these ensures that legacy code can more reliably determine whether inline viewing is supported.\n> However this approach is not recommended for new code because this property may eventually be removed.\n\nLegacy browser versions also list plugins for Adobe Flash and PDF viewer extensions.",
+ "presentation": "\n\nThe `presentation` read-only property of [Navigator] serves as the entry\npoint for the [Presentation API](/en-US/docs/Web/API/Presentation_API) and\nreturns a reference to [Presentation] object.",
+ "product": " \n\nThe value of the **`Navigator.product`** property is always\n\"`Gecko`\", in any browser. This property is kept only for compatibility\npurposes.\n\n> **Note:** Do not rely on this property to return a real product name. All browsers return \"`Gecko`\" as the value of this property.",
+ "productsub": " \n\nThe **`Navigator.productSub`** read-only property returns the\nbuild number of the current browser.",
+ "registerprotocolhandler": "\n\nThe **[Navigator]** method **`registerProtocolHandler()`** lets websites register their ability to open or handle particular URL schemes (aka protocols).\n\nFor example, this API lets webmail sites open `mailto:` URLs, or VoIP sites open `tel:` URLs.",
+ "requestmediakeysystemaccess": "`Encrypted Media Extensions`\n\nThe **`Navigator.requestMediaKeySystemAccess()`** method\nreturns a `Promise` which delivers a [MediaKeySystemAccess]\nobject that can be used to access a particular media key system, which can in turn be\nused to create keys for decrypting a media stream. This method is part of the [Encrypted Media Extensions API](/en-US/docs/Web/API/Encrypted_Media_Extensions_API), which brings support for encrypted media and DRM-protected video to the web.\n\nThis method may have user-visible effects such as asking for permission to access one\nor more system resources. Consider that when deciding when to call\n`requestMediaKeySystemAccess()`; you don't want those requests\nto happen at inconvenient times. As a general rule, this function should be called only\nwhen it's about time to create and use a [MediaKeys] object by calling the\nreturned [MediaKeySystemAccess] object's\n[MediaKeySystemAccess.createMediaKeys] method.",
+ "requestmidiaccess": "`Web MIDI API`\n\nThe **`requestMIDIAccess()`** method of the [Navigator] interface returns a `Promise` representing a request for access to MIDI devices on a user's system.\nThis method is part of the [Web MIDI API](/en-US/docs/Web/API/Web_MIDI_API), which provides a means for accessing, enumerating, and manipulating MIDI devices.\n\nThis method may prompt the user for access to MIDI devices available to their system, or it may use a previously established preference to grant or deny access.\nIf permission is granted then the `Promise` resolves and a [`MIDIAccess`](/en-US/docs/Web/API/MIDIAccess) object is returned.",
+ "scheduling": "\n\nThe **`scheduling`** read-only property of the [Navigator] interface returns a [Scheduling] object for the current document, which provides methods and properties to control scheduling tasks.",
+ "sendbeacon": "\n\nThe **`navigator.sendBeacon()`**\nmethod sends an [HTTP POST](/en-US/docs/Web/HTTP/Methods/POST) request containing a small amount of data to a web server.\n\nIt's intended to be used for\nsending analytics data to a web server, and avoids some of the problems with\nlegacy techniques for sending analytics, such as the use of\n[XMLHttpRequest].\n\n> **Note:** For use cases that need the ability to send requests with methods other than `POST`, or to change any request properties, or that need access to the server response, instead use the [`fetch()`](/en-US/docs/Web/API/fetch) method with [`keepalive`](/en-US/docs/Web/API/fetch#keepalive) set to true.",
+ "serial": "\n\nThe **`serial`** read-only property of the [Navigator] interface returns a [Serial] object which represents the entry point into the [Web Serial API].\n\nWhen getting, the same instance of the [Serial] object will always be returned.",
+ "serviceworker": "\n\nThe **`serviceWorker`** read-only property of the [Navigator] interface returns the [ServiceWorkerContainer] object for the [associated document](https://html.spec.whatwg.org/multipage/browsers.html#concept-document-window), which provides access to registration, removal, upgrade, and communication with the [ServiceWorker].\n\nThe feature may not be available in private mode.",
+ "setappbadge": "\n\nThe **`setAppBadge()`** method of the [Navigator] interface sets a badge on the icon associated with this app. If a value is passed to the method, this will be set as the value of the badge. Otherwise the badge will display as a dot, or other indicator as defined by the platform.",
+ "share": "\n\nThe **`navigator.share()`** method of the [Web Share API](/en-US/docs/Web/API/Web_Share_API) invokes the native sharing mechanism of the device to share data such as text, URLs, or files. The available _share targets_ depend on the device, but might include the clipboard, contacts and email applications, websites, Bluetooth, etc.\n\nThe method resolves a `Promise` with `undefined`.\nOn Windows this happens when the share popup is launched, while on Android the promise resolves once the data has successfully been passed to the _share target_.",
+ "storage": "\n\nThe **`Navigator.storage`**\nread-only property returns the singleton [StorageManager] object used to\naccess the overall storage capabilities of the browser for the current site or app.\nThe returned object lets you examine and configure persistence of data stores and\nlearn approximately how much more space your browser has available for local storage\nuse.",
+ "taintenabled": " \n\nThe **`Navigator.taintEnabled()`** method always returns\n`false`.\n\nTainting 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.",
+ "unregisterprotocolhandler": "\n\nThe **[Navigator]** method **`unregisterProtocolHandler()`** removes a protocol handler for a given URL [scheme](#permitted_schemes).\n\nThis method is the inverse of **`registerProtocolHandler()`**.",
+ "usb": "\n\nThe **`usb`** read-only property of the [Navigator] interface returns a [USB] object for the current document, providing access to [WebUSB API](/en-US/docs/Web/API/WebUSB_API) functionality.",
+ "useractivation": "\n\nThe read-only **`userActivation`** property of the [Navigator] interface returns a [UserActivation] object which contains information about the current window's user activation state.",
+ "useragent": "\n\nThe **`Navigator.userAgent`** read-only property returns the\nuser agent string for the current browser.\n\n> **Note:** The specification asks browsers to provide as little information via this field as\n> possible. Never assume that the value of this property will stay the same in future\n> versions of the same browser. Try not to use it at all, or only for current and past\n> versions of a browser. New browsers may start using the same UA, or part of it, as an\n> older browser: you really have no guarantee that the browser agent is indeed the one\n> advertised by this property.\n>\n> Also keep in mind that users of a browser can change the value of this field if they\n> want (UA spoofing).\n\nBrowser identification based on detecting the user agent string is\n**unreliable** and **is not recommended**, as the user agent\nstring is user configurable. For example:\n\n- In Firefox, you can change the preference `general.useragent.override` in\n `about:config`. Some Firefox extensions do that; however, this only changes\n the HTTP header that gets sent and that is returned by `navigator.userAgent`.\n There might be other methods that utilize JavaScript code to identify the browser.\n- Opera 6+ allows users to set the browser identification string via a menu.",
+ "useragentdata": "\n\nThe **`userAgentData`** read-only property of the [Navigator] interface returns a [NavigatorUAData] object\nwhich can be used to access the .",
+ "vendor": "\n\nThe value of the [Navigator] **`vendor`** property is always either \"`Google Inc.`\", \"`Apple Computer, Inc.`\", or (in Firefox) the empty string.",
+ "vendorsub": " \n\nThe value of the **`Navigator.vendorSub`** property is always\nthe empty string, in any browser.",
+ "vibrate": "\n\nThe **`Navigator.vibrate()`** method 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\nIf the method was unable to vibrate because of invalid parameters, it will return\n`false`, else it returns `true`. If the pattern leads to a too\nlong vibration, it is truncated: the max length depends on the implementation.",
+ "virtualkeyboard": "\n\nThe **`virtualKeyboard`** read-only property\nof the [navigator] interface returns a reference to the [VirtualKeyboard] instance object.\n\nThe [VirtualKeyboard_API] gives developers control over the layout of their applications when the on-screen virtual keyboard appears and disappears on devices such as tablets, mobile phones, or other devices where a hardware keyboard may not be available.",
+ "wakelock": "\n\nThe **`wakeLock`** read-only property of the [Navigator] interface\nreturns a [WakeLock] interface which allows a document to acquire a\nscreen wake lock. While a screen wake lock is active, the user agent will try to\nprevent the device from dimming the screen, turning it off completely, or showing a\nscreensaver.",
+ "webdriver": "\n\nThe **`webdriver`** read-only property\nof the [navigator] interface indicates whether the user agent is\ncontrolled by automation.\n\nIt defines a standard way for co-operating user agents to inform the document that it\nis controlled by [WebDriver](/en-US/docs/Web/WebDriver), for example, so that\nalternate code paths can be triggered during automation.\n\nThe `navigator.webdriver` property is true when in:\n\n- Chrome\n - : The `--enable-automation` or the `--headless` flag or the\n `--remote-debugging-port` is used.\n- Firefox\n - : The `marionette.enabled` preference or `--marionette` flag is\n passed.",
+ "windowcontrolsoverlay": "\n\nThe **`windowControlsOverlay`** read-only property of the [Navigator]\ninterface returns the [WindowControlsOverlay] interface, which exposes\ninformation about the title bar geometry in desktop Progressive Web Apps that use the [Window Controls Overlay API](/en-US/docs/Web/API/Window_Controls_Overlay_API).\n\nProgressive Web Apps installed on desktop Operating Systems can opt-in to the\nWindow Controls Overlay feature by using the `window-controls-overlay` value in the\n[`display_override`](/en-US/docs/Web/Manifest/display_override) web app manifest member.\n\nDoing so hides the default window title bar and gives the app access to the full area\nof the app window.",
+ "xr": "\n\nThe read-only **`xr`** property\nprovided by the [Navigator] interface returns an [XRSystem] object\nwhich can be used to access the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API)."
+ }
+ },
+ "navigatoruadata": {
+ "docs": "\n\nThe **`NavigatorUAData`** interface of the returns information about the browser and operating system of a user.\n\nAn instance of this object is returned by calling [Navigator.userAgentData]. Therefore, this interface has no constructor.\n\n> **Note:** The terms _high entropy_ and _low entropy_ refer to the amount of information these values reveal about the browser. The values returned as properties are deemed low entropy, and unlikely to identify a user. The values returned by [NavigatorUAData.getHighEntropyValues] could potentially reveal more information. These values are therefore retrieved via a `Promise`, allowing time for the browser to request user permission, or make other checks.",
+ "properties": {
+ "brands": "\n\nThe **`brands`** read-only property of the [NavigatorUAData] interface returns an array of brand information.",
+ "gethighentropyvalues": "\n\nThe **`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:** The terms _high entropy_ and _low entropy_ refer to the amount of information these values reveal about the browser.\n> The values returned as properties are deemed low entropy, and unlikely to identify a user.\n> The values returned by [NavigatorUAData.getHighEntropyValues] could potentially reveal more information.\n> These values are therefore retrieved via a `Promise`, allowing time for the browser to request user permission, or make other checks.",
+ "mobile": "\n\nThe **`mobile`** read-only property of the [NavigatorUAData] interface returns a value indicating whether the device is a mobile device.",
+ "platform": "\n\nThe **`platform`** read-only property of the [NavigatorUAData] interface returns the platform brand information.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [NavigatorUAData] interface is a _serializer_ that returns a JSON representation of the _low entropy_ properties of the `NavigatorUAData` object.\n\n> **Note:** The terms _high entropy_ and _low entropy_ refer to the amount of information these values reveal about the browser. The low entropy values returned by this method are those which do not reveal information able to identify a user. High entropy values can only be returned by the [NavigatorUAData.getHighEntropyValues] method."
+ }
+ },
+ "ndefmessage": {
+ "docs": "\n\nThe **`NDEFMessage`** interface of the [Web NFC API](/en-US/docs/Web/API/Web_NFC_API) represents the content of an NDEF message that has been read from or could be written to an NFC tag. An instance is acquired by calling the `NDEFMessage()` constructor or from the [NDEFReadingEvent.message] property, which is passed to the [NDEFReader.reading_event] event.",
+ "properties": {
+ "records": "\n\nThe `records` property of\n[NDEFMessage] interface represents a list of [NDEFRecord]s\npresent in the NDEF message."
+ }
+ },
+ "ndefreader": {
+ "docs": "\n\nThe **`NDEFReader`** interface of the [Web NFC API](/en-US/docs/Web/API/Web_NFC_API) is used to read from and write data to compatible NFC devices, e.g. NFC tags supporting NDEF, when these devices are within the reader's magnetic induction field.\n\n",
+ "properties": {
+ "reading_event": "\n\nThe `reading` event of the [NDEFReader] interface is fired whenever a new reading is available from compatible NFC devices (e.g. NFC tags supporting NDEF) when these devices are within the reader's magnetic induction field.",
+ "readingerror_event": "\n\nThe `readingerror` event of the [NDEFReader] interface is fired whenever an error occurs during reading of NFC tags, e.g. when tags leave the reader's magnetic induction field.",
+ "scan": "\n\nThe `scan()` method of the [NDEFReader] interface activates a reading device and returns a `Promise` that either resolves when an NFC tag read operation is scheduled 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.",
+ "write": "\n\nThe `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."
+ }
+ },
+ "ndefreadingevent": {
+ "docs": "\n\nThe **`NDEFReadingEvent`** interface of the [Web NFC API](/en-US/docs/Web/API/Web_NFC_API) represents events dispatched on new NFC readings obtained by [NDEFReader].\n\n",
+ "properties": {
+ "message": "\n\nThe **`message`** property of the [NDEFReadingEvent] interface returns an [NDEFMessage] object containing the received message.",
+ "serialnumber": "\n\nThe **`serialNumber`** property of the [NDEFReadingEvent] interface returns the serial number of the device, which is used for anti-collision and identification, or an empty string if no serial number is available."
+ }
+ },
+ "ndefrecord": {
+ "docs": "\n\nThe **`NDEFRecord`** interface of the [Web NFC API](/en-US/docs/Web/API/Web_NFC_API) provides data that can be read from, or written to, compatible NFC devices, e.g. NFC tags supporting NDEF.",
+ "properties": {
+ "data": "\n\nThe **`data`**\nproperty of the [NDEFRecord] interface returns a\n`DataView` containing the raw bytes of the record's payload.",
+ "encoding": "\n\nThe **`encoding`**\nproperty of the [NDEFRecord] interface returns the encoding of\na textual payload, or `null` otherwise.",
+ "id": "\n\nThe **`id`** property of the\n[NDEFRecord] interface returns the record identifier, which is an\nabsolute or relative URL used to identify the record.\n\nThis identifier is created by the generator of the record which is solely responsible\nfor enforcing record identifier uniqueness. Web NFC does not sign the NFC content, thus\nrecord consumer should not make any assumptions about integrity or authenticity of the\nidentifier or any other part of the records.",
+ "lang": "\n\nThe **`lang`**\nproperty of the [NDEFRecord] interface returns the language of\na textual payload, or `null` if one was not supplied.\n\nThe record might be missing a language tag, for example, if the recorded information is\nnot locale-specific.",
+ "mediatype": "\n\nThe **`mediaType`**\nproperty of the [NDEFRecord] interface returns the of the record. This value will be `null` if `recordType` is not equal to `\"mime\"`.",
+ "recordtype": "\n\nThe **`recordType`**\nproperty of the [NDEFRecord] interface returns the record type of the record.",
+ "torecords": "\n\nThe **`toRecords()`**\nmethod of the [NDEFRecord] interface converts\n[NDEFRecord.data] to a sequence of records based on\n[NDEFRecord.recordType], and returns the result. This allows\nparsing the payloads of record types which may contain nested records, such\nas smart poster and external type records."
+ }
+ },
+ "networkinformation": {
+ "docs": "\n\nThe **`NetworkInformation`** interface of the [Network Information API](/en-US/docs/Web/API/Network_Information_API) provides information about the connection a device is using to communicate with the network and provides a means for scripts to be notified if the connection type changes.\nThe `NetworkInformation` interface cannot be instantiated. It is instead accessed through the `connection` property of the [Navigator] interface.\n\n",
+ "properties": {
+ "change_event": "\n\nThe **`change`** event fires when connection information changes, and the event\nis received by the [NetworkInformation] object.",
+ "downlink": "\n\nThe **`downlink`** read-only property of the\n[NetworkInformation] interface returns the effective bandwidth estimate in\nmegabits per second, rounded to the nearest multiple of 25 kilobits per seconds. This\nvalue is based on recently observed application layer throughput across recently active\nconnections, excluding connections made to a private address space. In the absence of\nrecent bandwidth measurement data, the attribute value is determined by the properties\nof the underlying connection technology.",
+ "downlinkmax": "\n\nThe **`NetworkInformation.downlinkMax`** read-only property\nreturns the maximum downlink speed, in megabits per second (Mbps), for the underlying\nconnection technology.\n\n",
+ "effectivetype": "\n\nThe **`effectiveType`** read-only property of the\n[NetworkInformation] interface returns the effective type of the connection\nmeaning one of `slow-2g`, `2g`, `3g`, or `4g`. This value is determined using a\ncombination of recently observed, round-trip time and downlink values.",
+ "rtt": "\n\nThe **`NetworkInformation.rtt`** read-only property returns the\nestimated effective round-trip time of the current connection, rounded to the nearest\nmultiple of 25 milliseconds. This value is based on recently observed application-layer\nRTT measurements across recently active connections. It excludes connections made to a\nprivate address space. If no recent measurement data is available, the value is based on\nthe properties of the underlying connection technology.\n\n",
+ "savedata": "\n\nThe **`NetworkInformation.saveData`** read-only\nproperty of the [NetworkInformation] interface returns `true` if\nthe user has set a reduced data usage option on the user agent.",
+ "type": "\n\nThe **`NetworkInformation.type`** read-only property returns\nthe type of connection a device is using to communicate with the network.\n\n"
+ }
+ },
+ "node": {
+ "docs": "\n\nThe **`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\n`Node` functionality are based on one of its subclasses. Most notable are\n[Document], [Element], and [DocumentFragment].\n\nIn addition, every kind of DOM node is represented by an interface based on\n`Node`. These include [Attr], [CharacterData]\n(which [Text], [Comment], [CDATASection] and\n[ProcessingInstruction] are all based on), and [DocumentType].\n\nIn 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.\n\n",
+ "properties": {
+ "appendchild": "\n\nThe **`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:** If 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\nIf the given child is a [DocumentFragment], the entire contents of the [DocumentFragment] are moved into the child list of the specified parent node.\n\n`appendChild()` returns the newly appended node, or if the child is a [DocumentFragment], the emptied fragment.\n\n> **Note:** Unlike this method, the [Element.append] method supports multiple arguments and appending strings. You can prefer using it if your node is an element.",
+ "baseuri": "\n\nThe read-only **`baseURI`** property of the [Node] interface\nreturns the absolute base URL of the document containing the node.\n\nThe base URL is used to resolve relative URLs when the browser needs to obtain an absolute URL, for example when processing the HTML `img` element's `src` attribute or the `xlink:href` or `href` attributes in SVG.\n\nAlthough this property is read-only, its value is determined by an algorithm each time\nthe property is accessed, and may change if the conditions changed.\n\nThe base URL is determined as follows:\n\n1. By default, the base URL is the location of the document (as determined by [window.location]).\n2. If it is an HTML Document and there is a `Base` element in the document,\n the `href` value of the _first_ `Base` element with such an attribute is used instead.",
+ "childnodes": "\n\nThe read-only **`childNodes`** property of the [Node] interface returns a live\n[NodeList] of child [Node] of the given element where\nthe first child node is assigned index `0`. Child nodes include elements, text and\ncomments.\n\n> **Note:** The [NodeList] being live means that its content is changed each time\n> new children are added or removed.\n>\n> Browsers insert text nodes into a document to represent whitespace in the source markup.\n> Therefore a node obtained, for example, using `Node.childNodes[0]`\n> may refer to a whitespace text node rather than the actual element the author intended to get.\n>\n> See [Whitespace in the DOM](/en-US/docs/Web/API/Document_Object_Model/Whitespace) for more information.\n\nThe 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\nThe [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\nIt 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.",
+ "clonenode": "\n\nThe **`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\nCloning a node copies all of its attributes and their values,\nincluding intrinsic (inline) listeners. It does _not_ copy event listeners added\nusing [`addEventListener()`](/en-US/docs/Web/API/EventTarget/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>\n> If the original node has an `id` attribute, and the clone\n> will be placed in the same document, then you should modify the clone's ID to be\n> unique.\n>\n> Also, `name` attributes may need to be modified,\n> depending on whether duplicate names are expected.\n\nTo clone a node to insert into a _different_ document, use\n[Document.importNode] instead.",
+ "comparedocumentposition": "\n\nThe **`compareDocumentPosition()`** method of the [Node] interface\nreports the position of its argument node relative to the node on which it is called.",
+ "contains": "\n\nThe **`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 ([Node.childNodes]),\none of the children's direct children, and so on.\n\n> **Note:** A node is _contained_ inside itself.",
+ "firstchild": "\n\nThe read-only **`firstChild`** property of the [Node] interface\nreturns the node's first child in the tree,\nor `null` if the node has no children.\n\nIf the node is a [Document],\nthis property returns the first node in the list of its direct children.\n\n> **Note:** This property returns any type of node that is the first child of this one.\n> It may be a [Text] or a [Comment] node.\n> If you want to get the first [Element] that is a child of another element,\n> consider using [Element.firstElementChild].",
+ "getrootnode": "\n\nThe **`getRootNode()`** method of the [Node] interface\nreturns the context object's root,\nwhich optionally includes the shadow root if it is available.",
+ "haschildnodes": "\n\nThe **`hasChildNodes()`** method of the [Node] interface\nreturns a boolean value indicating\nwhether the given [Node] has [child nodes](/en-US/docs/Web/API/Node/childNodes) or not.",
+ "insertbefore": "\n\nThe **`insertBefore()`** method of the [Node] interface\ninserts a node before a _reference node_ as a child of a specified _parent node_.\n\nIf the given node already exists in the document,\n`insertBefore()` 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\nThis means that a node cannot be in two locations of the document simultaneously.\n\n> **Note:** The [Node.cloneNode] can be used to make a copy\n> of the node before appending it under the new parent. Note that the copies made with\n> `cloneNode()` will not be automatically kept in sync.\n\nIf the given child is a [DocumentFragment], the entire contents of the\n`DocumentFragment` are moved into the child list of the specified parent\nnode.",
+ "isconnected": "\n\nThe read-only **`isConnected`** property of the [Node] interface\nreturns a boolean indicating whether the node is connected\n(directly or indirectly) to a [Document] object.",
+ "isdefaultnamespace": "\n\nThe **`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:** The default namespace of an HTML element is always `\"\"`. For a SVG element, it is set by the `xmlns` attribute.",
+ "isequalnode": "\n\nThe **`isEqualNode()`** method of the [Node] interface tests whether two nodes are equal.\nTwo nodes are equal when they have the same type, defining characteristics (for\nelements, this would be their ID, number of children, and so forth), its attributes\nmatch, and so on. The specific set of data points that must match varies depending on\nthe types of the nodes.",
+ "issamenode": "\n\nThe **`isSameNode()`** method of the [Node] interface\nis a legacy alias the [for the `===` strict equality operator](/en-US/docs/Web/JavaScript/Reference/Operators/Strict_equality).\nThat is, it tests whether two nodes are the same\n(in other words, whether they reference the same object).\n\n> **Note:** There is no need to use `isSameNode()`; instead use the `===` strict equality operator.",
+ "lastchild": "\n\nThe read-only **`lastChild`** property of the [Node] interface\nreturns the last child of the node, or `null` if there are no child nodes.\n\n> **Note:** This property returns any type of node that is the last child of this one.\n> It may be a [Text] or a [Comment] node.\n> If you want to get the last [Element] that is a child of another element,\n> consider using [Element.lastElementChild].",
+ "lookupnamespaceuri": "\n\nThe **`lookupNamespaceURI()`** method of the [Node] interface\ntakes a prefix as parameter and returns the namespace URI associated with it on the given node if found (and\n`null` if not).",
+ "lookupprefix": "\n\nThe **`lookupPrefix()`** method of the [Node] interface\nreturns a string containing the prefix for a given namespace URI, if present,\nand `null` if not.\nWhen multiple prefixes are possible, the first prefix is returned.",
+ "nextsibling": "\n\nThe read-only **`nextSibling`** property of the [Node] interface\nreturns the node immediately following the specified one in their\nparent's [Node.childNodes], or returns `null`\nif the specified node is the last child in the parent element.\n\n> **Note:** Browsers insert [Text] nodes into a document to represent whitespace in the source markup.\n> Therefore a node obtained, for example, using [`Node.firstChild`](/en-US/docs/Web/API/Node/firstChild)\n> or [`Node.previousSibling`](/en-US/docs/Web/API/Node/previousSibling)\n> may refer to a whitespace text node rather than the actual element the author\n> intended to get.\n>\n> The article [Whitespace in the DOM](/en-US/docs/Web/API/Document_Object_Model/Whitespace)\n> contains more information about this behavior.\n>\n> You can use [Element.nextElementSibling] to obtain the next element\n> skipping any whitespace nodes, other between-element text, or comments.\n>\n> To navigate the opposite way through the child nodes list use [Node.previousSibling](/en-US/docs/Web/API/Node/previousSibling).",
+ "nodename": "\n\nThe read-only **`nodeName`** property of [Node] returns the name of the current node as a string.",
+ "nodetype": "\n\nThe read-only **`nodeType`** property of a [Node] interface is an integer\nthat identifies what the node is. It distinguishes different kind of nodes from each other,\nsuch as [Element], [Text] and [Comment].",
+ "nodevalue": "\n\nThe **`nodeValue`** property of the [Node] interface returns or sets the value of the current node.",
+ "normalize": "\n\nThe **`normalize()`** method of the [Node] interface puts the specified node\nand all of its sub-tree into a _normalized_ form.\nIn a normalized sub-tree, no text nodes in the sub-tree are empty and there are no adjacent text nodes.",
+ "ownerdocument": "\n\nThe read-only **`ownerDocument`** property of the [Node] interface\nreturns the top-level document object of the node.",
+ "parentelement": "\n\nThe read-only **`parentElement`** property of [Node] interface\nreturns the DOM node's parent [Element], or `null` if the node either has no\nparent, or its parent isn't a DOM [Element].",
+ "parentnode": "\n\nThe read-only **`parentNode`** property of the [Node] interface\nreturns the parent of the specified node in the DOM tree.\n\n`Document` and `DocumentFragment` [nodes](/en-US/docs/Web/API/Node/nodeType) can never have a parent, so\n`parentNode` will always return `null`.\nIt also returns `null` if the node has just been created\nand is not yet attached to the tree.",
+ "previoussibling": "\n\nThe read-only **`previousSibling`** property of the [Node] interface\nreturns the node immediately preceding the specified one in its parent's\n[Node.childNodes] list,\nor `null` if the specified node is the first in that list.\n\n> **Note:** Browsers insert text nodes into a document to represent whitespace in the source markup.\n> Therefore a node obtained, for example, using [`Node.firstChild`](/en-US/docs/Web/API/Node/firstChild)\n> or `Node.previousSibling`\n> may refer to a whitespace text node rather than the actual element the author intended to get.\n>\n> See [Whitespace in the DOM](/en-US/docs/Web/API/Document_Object_Model/Whitespace) for more information.\n>\n> You can use [`previousElementSibling`](/en-US/docs/Web/API/Element/previousElementSibling)\n> to get the previous element node (skipping text nodes and any other non-element nodes).\n>\n> To navigate the opposite way through the child nodes list use [Node.nextSibling](/en-US/docs/Web/API/Node/nextSibling).",
+ "removechild": "\n\nThe **`removeChild()`** method of the [Node] interface\nremoves a child node from the DOM and returns the removed node.\n\n> **Note:** As long as a reference is kept on the removed child,\n> it still exists in memory, but is no longer part of the DOM.\n> It can still be reused later in the code.\n>\n> If the return value of `removeChild()` is not stored, and no other reference is kept,\n> it will be [automatically deleted](/en-US/docs/Web/JavaScript/Memory_management) from memory after a short time.\n\nUnlike [Node.cloneNode] the return value preserves the `EventListener` objects associated with it.",
+ "replacechild": "\n\nThe **`replaceChild()`** method of the [Node] interface replaces a child node within the given (parent) node.",
+ "selectstart_event": "\n\nThe **`selectstart`** event of the [Selection API](/en-US/docs/Web/API/Selection) is fired when a user starts a new selection.\n\nIf the event is canceled, the selection is not changed.",
+ "textcontent": "\n\nThe **`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,\n> but the two properties are [different in important ways](#differences_from_innertext)."
+ }
+ },
+ "nodeiterator": {
+ "docs": "\n\nThe **`NodeIterator`** interface represents an iterator to traverse nodes of a DOM subtree in document order.",
+ "properties": {
+ "detach": "\n\nThe **`NodeIterator.detach()`** method is a no-op, kept for\nbackward compatibility only.\n\nOriginally, it detached the [NodeIterator] from the set over which it\niterates, releasing any resources used by the set and setting the iterator's state to\n`INVALID`. Once this method had been called, calls to other methods on\n`NodeIterator` would raise the `INVALID_STATE_ERR` exception.",
+ "filter": "\n\nThe **`NodeIterator.filter`** read-only property returns a\n`NodeFilter` object, that is an object which implements an\n`acceptNode(node)` method, used to screen nodes.\n\nWhen creating the [NodeIterator], the filter object is passed in as the\nthird parameter, and the object method `acceptNode(node)` is\ncalled on every single node to determine whether or not to accept it. This function\nshould return the constant `NodeFilter.FILTER_ACCEPT` for cases when the\nnode should be accepted and `NodeFilter.FILTER_REJECT` for cases when the\nnode should be rejected.",
+ "nextnode": "\n\nThe **`NodeIterator.nextNode()`** method returns the next node\nin the set represented by the [NodeIterator] and advances the position of\nthe iterator within the set. The first call to `nextNode()` returns the\nfirst node in the set.\n\nThis method returns `null` when there are no nodes left in the set.\n\nIn old browsers, as specified in old versions of the specifications, the method may\nthrows the `INVALID_STATE_ERR` [DOMException] if this method\nis called after the [NodeIterator.detach]method. Recent browsers never\nthrow.",
+ "pointerbeforereferencenode": "\n\nThe **`NodeIterator.pointerBeforeReferenceNode`** read-only\nproperty returns a boolean flag that indicates whether the\n`NodeFilter` is anchored before (if this value is `true`) or\nafter (if this value is `false`) the anchor node indicated by the\n[NodeIterator.referenceNode] property.",
+ "previousnode": "\n\nThe **`NodeIterator.previousNode()`** method returns the\nprevious node in the set represented by the [NodeIterator] and moves the\nposition of the iterator backwards within the set.\n\nThis method returns `null` when the current node is the first node in the\nset.\n\nIn old browsers, as specified in old versions of the specifications, the method may\nthrows the `INVALID_STATE_ERR` [DOMException] if this method\nis called after the [NodeIterator.detach]method. Recent browsers never\nthrow.",
+ "referencenode": "\n\nThe **`NodeIterator.referenceNode`** read-only property returns the\n[Node] to which the iterator is anchored; as new nodes are inserted, the\niterator remains anchored to the reference node as specified by this property.",
+ "root": "\n\nThe **`NodeIterator.root`** read-only property represents the\n[Node] that is the root of what the [NodeIterator]\ntraverses.",
+ "whattoshow": "\n\nThe **`NodeIterator.whatToShow`** read-only property represents\nan `unsigned integer` representing a bitmask signifying what types of nodes\nshould be returned by the [NodeIterator]."
+ }
+ },
+ "nodelist": {
+ "docs": "\n\n**`NodeList`** objects are collections of [nodes](/en-US/docs/Web/API/Node), usually returned by properties such as [Node.childNodes] and methods such as [document.querySelectorAll].\n\n> **Note:** Although `NodeList` is not an `Array`, it is possible to iterate over it with `forEach()`. It can also be converted to a real `Array` using `Array.from()`.",
+ "properties": {
+ "entries": "\n\nThe **`NodeList.entries()`** method returns an\n`iterator` allowing to go through all key/value pairs\ncontained in this object. The values are [Node] objects.",
+ "foreach": "\n\nThe **`forEach()`** method of the [NodeList]\ninterface calls the callback given in parameter once for each value pair in the list, in\ninsertion order.",
+ "item": "\n\nReturns a node from a [`NodeList`](/en-US/docs/Web/API/NodeList) by index. This method\ndoesn't throw exceptions as long as you provide arguments. A value of `null`\nis returned if the index is out of range, and a `TypeError` is thrown if no\nargument is provided.",
+ "keys": "\n\nThe **`NodeList.keys()`** method returns an\n`iterator` allowing to go through all keys contained\nin this object. The keys are `unsigned integer`.",
+ "length": "\n\nThe **`NodeList.length`** property returns the number of items\nin a [NodeList].",
+ "values": "\n\nThe **`NodeList.values()`** method returns an\n`iterator` allowing to go through all values contained\nin this object. The values are [Node] objects."
+ }
+ },
+ "notification": {
+ "docs": "\n\nThe **`Notification`** interface of the [Notifications API] is used to configure and display desktop notifications to the user.\n\nThese notifications' appearance and specific functionality vary across platforms but generally they provide a way to asynchronously provide information to the user.\n\n",
+ "properties": {
+ "actions": "\n\nThe **`actions`** read-only property of the [Notification] interface provides the actions available for users to choose from for interacting with the notification.\n\nThe actions are set using the `actions` option of the second argument for the [`showNotification()`](/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification) method and [`Notification()`](/en-US/docs/Web/API/Notification/Notification) constructor.\n\n> **Note:** Browsers typically limit the maximum number of actions they will display for a particular notification. Check the static [Notification.maxActions_static] property to determine the limit.",
+ "badge": "\n\nThe **`badge`** property of the [Notification]\ninterface returns a string containing the URL of an image to represent the notification when there is not enough space to display the notification itself such as for example, the Android Notification Bar. On Android devices, the badge should accommodate devices up to 4x resolution, about 96 by 96 px, and the image will be automatically masked.",
+ "body": "\n\nThe **`body`** read-only property of the\n[Notification] interface indicates the body string of the notification, as\nspecified in the `body` option of the\n[Notification.Notification] constructor.",
+ "click_event": "\n\nThe **`click`** event of the [Notification]\ninterface fires when the user clicks on displayed [Notification].\n\nThe default behavior is to move the focus to the viewport of the notification's related\n[browsing context](https://html.spec.whatwg.org/multipage/browsers.html#browsing-context).\nIf you don't want that behavior, call [Event/preventDefault] on the event object.",
+ "close": "\n\nThe `close()` method of the [Notification] interface is used to\nclose/remove a previously displayed notification.\n\n> **Note:** This API shouldn't be used just to have the notification\n> removed from the screen after a fixed delay since this method will also remove the\n> notification from any notification tray, preventing users from interacting with it\n> after it was initially shown. A valid use for this API would be to remove a\n> notification that is no longer relevant (e.g. the user already read the notification\n> on the webpage in the case of a messaging app or the following song is already playing\n> in a music app).",
+ "close_event": "\n\nThe **`close`** event of the [Notification] interface fires when a [Notification] is closed.",
+ "data": "\n\nThe **`data`** read-only property of the\n[Notification] interface returns a structured clone of the notification's\ndata, as specified in the `data` option of the\n[Notification.Notification] constructor.\n\nThe notification's data can be any arbitrary data that you want associated with the\nnotification.",
+ "dir": "\n\nThe `dir` read-only property of the [Notification] interface indicates the text direction of the notification, as specified in the `dir` option of the [Notification.Notification] constructor.",
+ "error_event": "\n\nThe **`error`** event of the [Notification] interface fires when something goes wrong with a [Notification] (in many cases an error preventing the notification from being displayed.)",
+ "icon": "\n\nThe **`icon`** read-only property of the\n[Notification] interface contains the URL of an icon to be displayed as\npart of the notification, as specified in the `icon` option of the\n[Notification.Notification] constructor.",
+ "image": "\n\nThe `image` read-only property of the\n[Notification] interface contains the URL of an image to be displayed as\npart of the notification, as specified in the `image` option of the\n[Notification.Notification] constructor.",
+ "lang": "\n\nThe **`lang`** read-only property of the\n[Notification] interface indicates the language used in the notification,\nas specified in the `lang` option of the\n[Notification.Notification] constructor.\n\nThe language itself is specified using a string representing a language tag according to `5646, \"Tags for Identifying Languages (also known as BCP 47)\"`.\nSee the Sitepoint [ISO 2 letter language codes](https://www.sitepoint.com/iso-2-letter-language-codes/) page for a simple reference.",
+ "maxactions_static": "\n\nThe **`maxActions`** attribute of the\n[Notification] interface returns the maximum number of actions supported by\nthe device and the User Agent. Effectively, this is the maximum number of elements in\n[Notification.actions] array which will be respected by the User Agent.",
+ "permission_static": "\n\nThe `permission` read-only property of the [Notification]\ninterface indicates the current permission granted by the user for the current origin to\ndisplay web notifications.",
+ "renotify": "\n\nThe **`renotify`** read-only property of the\n[Notification] interface specifies whether the user should be notified\nafter a new notification replaces an old one, as specified in the `renotify`\noption of the [Notification.Notification] constructor.",
+ "requestpermission_static": "\n\nThe **`requestPermission()`** static method of the [Notification] interface requests permission from the user for the current origin to display notifications.",
+ "requireinteraction": "\n\nThe **`requireInteraction`** read-only property of the [Notification] interface returns a boolean value indicating that a notification should remain active until the user clicks or dismisses it, rather than closing automatically.\n\n> **Note:** This can be set when the notification is first created by setting the `requireInteraction` option to `true` in the options object of the [Notification.Notification] constructor.",
+ "show_event": "\n\nThe **`show`** event of the [Notification] interface fires when a [Notification] is displayed.",
+ "silent": "\n\nThe **`silent`** read-only property of the\n[Notification] interface specifies whether the notification should be\nsilent, i.e., no sounds or vibrations should be issued, regardless of the device\nsettings. This is specified in the `silent` option of the\n[Notification.Notification] constructor.",
+ "tag": "\n\nThe **`tag`** read-only property of the\n[Notification] interface signifies an identifying tag for the notification,\nas specified in the `tag` option of the\n[Notification.Notification] constructor.\n\nThe idea of notification tags is that more than one notification can share the same\ntag, linking them together. One notification can then be programmatically replaced with\nanother to avoid the users' screen being filled up with a huge number of similar\nnotifications.",
+ "timestamp": "\n\nThe **`timestamp`** read-only property of the\n[Notification] interface returns a number, as\nspecified in the `timestamp` option of the\n[Notification.Notification] constructor.\n\nThe notification's timestamp can represent the time, in milliseconds since 00:00:00 UTC\non 1 January 1970, of the event for which the notification was created, or it can be an\narbitrary timestamp that you want associated with the notification. For example, a\ntimestamp for an upcoming meeting could be set in the future, whereas a timestamp for a\nmissed message could be set in the past.",
+ "title": "\n\nThe **`title`** read-only property of the\n[Notification] interface indicates the title of the notification, as\nspecified in the `title` parameter of the\n[Notification.Notification] constructor.",
+ "vibrate": "\n\nThe `vibrate` read-only property of the [Notification]\ninterface specifies a [vibration pattern](/en-US/docs/Web/API/Vibration_API#vibration_patterns)\nfor the device's vibration hardware to emit when the notification fires. This is\nspecified in the `vibrate` option of the\n[Notification.Notification] constructor."
+ }
+ },
+ "notificationevent": {
+ "docs": "\n\nThe **`NotificationEvent`** interface of the [Notifications API] represents a notification event dispatched on the [ServiceWorkerGlobalScope] of a [ServiceWorker].\n\nThis interface inherits from the [ExtendableEvent] interface.\n\n> **Note**: Only 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\n",
+ "properties": {
+ "action": "\n\nThe **`action`** read-only property of the [NotificationEvent] interface returns the string ID of the notification button the user clicked. This value returns an empty string if the user clicked the notification somewhere other than an action button, or the notification does not have a button. The notification id is set during the creation of the Notification via the actions array attribute and can't be modified unless the notification is replaced.",
+ "notification": "\n\nThe **`notification`** read-only property of the [NotificationEvent] interface returns the instance of the [Notification] that was clicked to fire the event. The [Notification] provides read-only access to many properties that were set at the instantiation time of the Notification such as `tag` and `data` attributes that allow you to store information for deferred use in the `notificationclick` event."
+ }
+ },
+ "oes_draw_buffers_indexed": {
+ "docs": "\n\nThe **`OES_draw_buffers_indexed`** extension is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and enables the use of different blend options when writing to multiple color buffers simultaneously.\n\nWebGL extensions are available using the [WebGLRenderingContext.getExtension] method. For more information, see also [Using Extensions](/en-US/docs/Web/API/WebGL_API/Using_Extensions) in the [WebGL tutorial](/en-US/docs/Web/API/WebGL_API/Tutorial).\n\n> **Note:** This extension is only available to [WebGL2RenderingContext] contexts.",
+ "properties": {
+ "blendequationioes": "\n\nThe `blendEquationiOES()` method of the `OES_draw_buffers_indexed` WebGL extension sets both the RGB blend and alpha blend equations for a particular draw buffer.\n\nSee [OES_draw_buffers_indexed.blendEquationSeparateiOES] for setting RGB and alpha separately and [WebGLRenderingContext.blendEquation] for the WebGL 1 version of this method.",
+ "blendequationseparateioes": "\n\nThe `blendEquationSeparateiOES()` method of the [OES_draw_buffers_indexed] WebGL extension sets the RGB and alpha blend equations separately for a particular draw buffer.\n\nSee [OES_draw_buffers_indexed.blendEquationiOES] for setting RGB and alpha together and [WebGLRenderingContext.blendEquationSeparate] for the WebGL 1 version of this method.",
+ "blendfuncioes": "\n\nThe `blendFunciOES()` method of the [OES_draw_buffers_indexed] WebGL extension defines which function is used when blending pixels for a particular draw buffer.\n\nSee [OES_draw_buffers_indexed.blendFuncSeparateiOES] for setting RGB and alpha components separately and [WebGLRenderingContext.blendFunc] for the WebGL 1 version of this method.",
+ "blendfuncseparateioes": "\n\nThe `blendFuncSeparateiOES()` method of the [OES_draw_buffers_indexed] WebGL extension defines which function is used when blending pixels for RGB and alpha components separately for a particular draw buffer.\n\nSee [OES_draw_buffers_indexed.blendFunciOES] for setting RGB and alpha together and [WebGLRenderingContext.blendFuncSeparate] for the WebGL 1 version of this method.",
+ "colormaskioes": "\n\nThe `colorMaskiOES()` method of the [OES_draw_buffers_indexed] WebGL extension sets which color components to enable or to disable when drawing or rendering for a particular draw buffer. It's the indexed version of WebGL 1's [WebGLRenderingContext.colorMask] method.",
+ "disableioes": "\n\nThe `disableiOES()` method of the [OES_draw_buffers_indexed] WebGL extension enables blending for a particular draw buffer.",
+ "enableioes": "\n\nThe `enableiOES()` method of the [OES_draw_buffers_indexed] WebGL extension enables blending for a particular draw buffer."
+ }
+ },
+ "offlineaudiocompletionevent": {
+ "docs": "\n\nThe [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) `OfflineAudioCompletionEvent` interface represents events that occur when the processing of an [OfflineAudioContext] is terminated. The [OfflineAudioContext/complete_event] event uses this interface.\n\n> **Note:** This interface is marked as deprecated; it is still supported for legacy reasons, but it will soon be superseded when the promise version of [OfflineAudioContext.startRendering] is supported in browsers, which will no longer need it.\n\n",
+ "properties": {
+ "renderedbuffer": "\n\nThe **`renderedBuffer`** read-only property of the\n[OfflineAudioCompletionEvent] interface is an [AudioBuffer]\ncontaining the result of processing an [OfflineAudioContext]."
+ }
+ },
+ "offlineaudiocontext": {
+ "docs": "\n\nThe `OfflineAudioContext` interface is an [AudioContext] interface representing an audio-processing graph built from linked together [AudioNode]s. In contrast with a standard [AudioContext], an `OfflineAudioContext` doesn't render the audio to the device hardware; instead, it generates it, as fast as it can, and outputs the result to an [AudioBuffer].\n\n",
+ "properties": {
+ "complete_event": "`Web Audio API`\n\nThe `complete` event of the [OfflineAudioContext] interface is fired when the rendering of an offline audio context is complete.\n\nThis event is not cancelable and does not bubble.",
+ "length": "\n\nThe **`length`** property of the\n[OfflineAudioContext] interface returns an integer representing the size of\nthe buffer in sample-frames.",
+ "resume": "\n\nThe **`resume()`** method of the\n[OfflineAudioContext] interface resumes the progression of time in an audio\ncontext that has been suspended. The promise resolves immediately because the\n`OfflineAudioContext` does not require the audio hardware.",
+ "startrendering": "\n\nThe `startRendering()` method of the [OfflineAudioContext] Interface starts rendering the audio graph, taking into account the current connections and the current scheduled changes.\n\nThe [OfflineAudioContext/complete_event] event (of type [OfflineAudioCompletionEvent]) is raised when the rendering is finished, containing the resulting [AudioBuffer] in its `renderedBuffer` property.\n\nBrowsers currently support two versions of the `startRendering()` method — an older event-based version and a newer promise-based version.\nThe former will eventually be removed, but currently both mechanisms are provided for legacy reasons.",
+ "suspend": "\n\nThe **`suspend()`** method of the [OfflineAudioContext] interface schedules a suspension of the time\nprogression in the audio context at the specified time and returns a promise. This is\ngenerally useful at the time of manipulating the audio graph synchronously on\nOfflineAudioContext.\n\nNote that the maximum precision of suspension is the size of the render quantum and the\nspecified suspension time will be rounded down to the nearest render quantum boundary.\nFor this reason, it is not allowed to schedule multiple suspends at the same quantized\nframe. Also scheduling should be done while the context is not running to ensure the\nprecise suspension."
+ }
+ },
+ "offscreencanvas": {
+ "docs": "\n\nWhen using the `canvas` element or the [Canvas API](/en-US/docs/Web/API/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\nThe **`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](/en-US/docs/Web/API/Web_Workers_API) context, allowing you to run some tasks in a separate thread and avoid heavy work on the main thread.\n\n`OffscreenCanvas` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).\n\n",
+ "properties": {
+ "converttoblob": "\n\nThe **`OffscreenCanvas.convertToBlob()`** method creates a [Blob] object representing the image contained in the canvas.\n\nThe 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\nThe created image will have a resolution of 96dpi for file formats that support encoding resolution metadata.",
+ "getcontext": "\n\nThe **`OffscreenCanvas.getContext()`** method returns a drawing context for an offscreen canvas, or [`null`](/en-US/docs/Web/JavaScript/Reference/Operators/null) if the context identifier is not supported.",
+ "height": "\n\nThe **`height`** property returns and sets the height of an [OffscreenCanvas] object.",
+ "transfertoimagebitmap": "\n\nThe **`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.",
+ "width": "\n\nThe **`width`** property returns and sets the width of an [OffscreenCanvas] object."
+ }
+ },
+ "offscreencanvasrenderingcontext2d": {
+ "docs": "\n\nThe **`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`, and `scrollPathIntoView`)\n- its `canvas` attribute refers to an `OffscreenCanvas` object rather than a `canvas` element\n- it has a `commit()` method for pushing rendered images to the context's `OffscreenCanvas` object's placeholder `canvas` element",
+ "properties": {
+ "commit": "\n\nThe\n**`OffscreenCanvasRenderingContext2D.commit()`**\nmethod of the [Canvas 2D API](/en-US/docs/Web/API/OffscreenCanvasRenderingContext2D) copies 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."
+ }
+ },
+ "orientationsensor": {
+ "docs": "\n\nThe **`OrientationSensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) is the base class for orientation sensors. This interface cannot be used directly. Instead it provides properties and methods accessed by interfaces that inherit from it.\n\nThis feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\n",
+ "properties": {
+ "populatematrix": "\n\nThe **`populateMatrix`** method of the\n[OrientationSensor] interface populates the given target matrix with the\nrotation matrix based on the latest sensor reading. The rotation matrix is shown\nbelow.\n\n\n\nwhere:\n\n- W = cos(θ/2)\n- X = Vx \\* sin(θ/2)\n- Y = Vy \\* sin(θ/2)\n- Z = Vz \\* sin(θ/2)",
+ "quaternion": "\n\nThe **`quaternion`** read-only\nproperty of the [OrientationSensor] interface returns a four element\n`Array` whose elements contain the components of the unit\n representing the device's orientation.\n\nBecause [OrientationSensor] is a base class, `quaternion` may\nonly be read from one of its derived classes."
+ }
+ },
+ "oscillatornode": {
+ "docs": "\n\nThe **`OscillatorNode`** interface represents a periodic waveform, such as a sine wave. It is an [AudioScheduledSourceNode] audio-processing module that causes a specified frequency of a given wave to be created—in effect, a constant tone.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>0</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>max</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code> (not used in the default count mode)</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>speakers</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "detune": "\n\nThe `detune` property of the [OscillatorNode] interface is an [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) [AudioParam] representing detuning of oscillation in [cents](https://en.wikipedia.org/wiki/Cent_%28music%29).\n\n> **Note:** though the `AudioParam` returned is read-only, the value it represents is not.",
+ "frequency": "\n\nThe **`frequency`** property of the [OscillatorNode] interface is an [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) [AudioParam] representing the frequency of oscillation in hertz.\n\n> **Note:** though the `AudioParam` returned is read-only, the value it represents is not.",
+ "setperiodicwave": "\n\nThe **`setPeriodicWave()`** method of the [OscillatorNode] interface is used to point to a [PeriodicWave]\ndefining a periodic waveform that can be used to shape the oscillator's output, when\n[OscillatorNode.type] is `custom`.",
+ "type": "\n\nThe **`type`** property of the [OscillatorNode] interface specifies what shape of [waveform](https://en.wikipedia.org/wiki/Waveform) the\noscillator will output. There are several common waveforms available, as well as an\noption to specify a custom waveform shape. The shape of the waveform will affect the\ntone that is produced."
+ }
+ },
+ "otpcredential": {
+ "docs": "\n\nThe **`OTPCredential`** interface of the [WebOTP API] is returned when a WebOTP [CredentialsContainer.get] call (i.e. invoked with an `otp` option) fulfills. It includes a `code` property that contains the retrieved one-time password (OTP).\n\n",
+ "properties": {
+ "code": "\n\nThe **`code`** property of the [OTPCredential] interface contains the one-time password (OTP)."
+ }
+ },
+ "overconstrainederror": {
+ "docs": "\n\nThe **`OverconstrainedError`** interface of the [Media Capture and Streams API](/en-US/docs/Web/API/Media_Capture_and_Streams_API) indicates that the set of desired capabilities for the current [MediaStreamTrack] cannot currently be met. When this event is thrown on a MediaStreamTrack, it is muted until either the current constraints can be established or until satisfiable constraints are applied.\n\n",
+ "properties": {
+ "constraint": "\n\nThe **`constraint`** read-only property of the\n[OverconstrainedError] interface returns the constraint that was supplied\nin the constructor, meaning the constraint that was not satisfied."
+ }
+ },
+ "pagetransitionevent": {
+ "docs": "\n\nThe **`PageTransitionEvent`** event object is available inside handler functions for the [`pageshow`](/en-US/docs/Web/API/Window/pageshow_event) and [`pagehide`](/en-US/docs/Web/API/Window/pagehide_event) events, fired when a document is being loaded or unloaded.\n\n",
+ "properties": {
+ "persisted": "\n\nThe **`persisted`** read-only property indicates if a webpage is loading from a cache."
+ }
+ },
+ "paintworkletglobalscope": {
+ "docs": "\n\nThe **`PaintWorkletGlobalScope`** interface of the [CSS Painting API](/en-US/docs/Web/API/CSS_Painting_API) represents the global object available inside a paint [Worklet].",
+ "properties": {
+ "devicepixelratio": "\n\nThe **`devicePixelRatio`** read-only property of the [PaintWorkletGlobalScope] interface returns the current device's ratio of physical pixels to logical pixels.",
+ "registerpaint": "\n\nThe **`registerPaint()`** method of the\n[PaintWorkletGlobalScope] interface registers a class to programmatically generate an\nimage where a CSS property expects a file."
+ }
+ },
+ "pannernode": {
+ "docs": "\n\nThe `PannerNode` interface defines an audio-processing object that represents the location, direction, and behavior of an audio source signal in a simulated physical space. This [AudioNode] uses right-hand Cartesian coordinates to describe the source's _position_ as a vector and its _orientation_ as a 3D directional cone.\n\nA `PannerNode` always has exactly one input and one output: the input can be _mono_ or _stereo_ but the output is always _stereo_ (2 channels); you can't have panning effects without at least two audio channels!\n\n\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"clamped-max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "coneinnerangle": "\n\nThe `coneInnerAngle` property of the [PannerNode] interface is a double value describing the angle, in degrees, of a cone inside of which there will be no volume reduction.\n\nThe `coneInnerAngle` property's default value is `360`, suitable for a non-directional source.",
+ "coneouterangle": "\n\nThe `coneOuterAngle` property of the [PannerNode] interface is a double value describing the angle, in degrees, of a cone outside of which the volume will be reduced by a constant value, defined by the [PannerNode.coneOuterGain] property.\n\nThe `coneOuterAngle` property's default value is `0`.",
+ "coneoutergain": "\n\nThe `coneOuterGain` property of the [PannerNode] interface is a double value, describing the amount of volume reduction outside the cone, defined by the [PannerNode.coneOuterAngle] attribute.\n\nThe `coneOuterGain` property's default value is `0`, meaning that no sound can be heard outside the cone.",
+ "distancemodel": "\n\nThe `distanceModel` property of the [PannerNode] interface is an enumerated value determining which algorithm to use to reduce the volume of the audio source as it moves away from the listener.\n\nThe possible values are:\n\n- `linear`: A _linear distance model_ calculating the gain induced by the distance according to:\n `1 - rolloffFactor * (distance - refDistance) / (maxDistance - refDistance)`\n- `inverse`: An _inverse distance model_ calculating the gain induced by the distance according to:\n `refDistance / (refDistance + rolloffFactor * (Math.max(distance, refDistance) - refDistance))`\n- `exponential`: An _exponential distance model_ calculating the gain induced by the distance according to:\n `pow((Math.max(distance, refDistance) / refDistance, -rolloffFactor)`.\n\n`inverse` is the default value of `distanceModel`.",
+ "maxdistance": "\n\nThe `maxDistance` property of the [PannerNode] interface is a double value representing the maximum distance between the audio source and the listener, after which the volume is not reduced any further. This value is used only by the `linear` distance model.\n\nThe `maxDistance` property's default value is `10000`.",
+ "orientationx": "\n\nThe **`orientationX`** property of the [PannerNode] interface indicates the X (horizontal) component of the\ndirection in which the audio source is facing, in a 3D Cartesian coordinate space.\n\nThe complete vector is defined by the position of the audio source, given as\n([PannerNode.positionX], [PannerNode.positionY], [PannerNode.positionZ]), and the orientation\nof the audio source (that is, the direction in which it's facing), given as\n([PannerNode.orientationX],\n[PannerNode.orientationY],\n[PannerNode.orientationZ]).\n\nDepending on the directionality of the sound (as specified using the attributes\n[PannerNode.coneInnerAngle],\n[PannerNode.coneOuterAngle], and\n[PannerNode.coneOuterGain]), the orientation of the\nsound may alter the perceived volume of the sound as it's being played. If the sound\nis pointing toward the listener, it will be louder than if the sound is pointed away\nfrom the listener.\n\nThe [AudioParam] contained by this property is read only; however, you\ncan still change the value of the parameter by assigning a new value to its\n[AudioParam.value] property.",
+ "orientationy": "\n\nThe **`orientationY`** property of the [PannerNode] interface\nindicates the Y (vertical) component of the direction the audio source is facing, in 3D Cartesian coordinate space.\n\nThe complete vector is defined by the position of the audio source, given as\n([PannerNode.positionX], [PannerNode.positionY], [PannerNode.positionZ]), and the orientation\nof the audio source (that is, the direction in which it's facing), given as\n([PannerNode.orientationX],\n[PannerNode.orientationY],\n[PannerNode.orientationZ]).\n\nDepending on the directionality of the sound (as specified using the attributes\n[PannerNode.coneInnerAngle],\n[PannerNode.coneOuterAngle], and\n[PannerNode.coneOuterGain]), the orientation of the\nsound may alter the perceived volume of the sound as it's being played. If the sound\nis pointing toward the listener, it will be louder than if the sound is pointed away\nfrom the listener.\n\nThe [AudioParam] contained by this property is read only; however, you\ncan still change the value of the parameter by assigning a new value to its\n[AudioParam.value] property.",
+ "orientationz": "\n\nThe **`orientationZ`** property of the [PannerNode] interface\nindicates the Z (depth) component of the direction the audio source is facing, in 3D Cartesian coordinate space.\n\nThe complete vector is defined by the position of the audio source, given as\n([PannerNode.positionX], [PannerNode.positionY], [PannerNode.positionZ]), and the orientation\nof the audio source (that is, the direction in which it's facing), given as\n([PannerNode.orientationX],\n[PannerNode.orientationY],\n[PannerNode.orientationZ]).\n\nDepending on the directionality of the sound (as specified using the attributes\n[PannerNode.coneInnerAngle],\n[PannerNode.coneOuterAngle], and\n[PannerNode.coneOuterGain]), the orientation of the\nsound may alter the perceived volume of the sound as it's being played. If the sound\nis pointing toward the listener, it will be louder than if the sound is pointed away\nfrom the listener.\n\nThe [AudioParam] contained by this property is read only; however, you\ncan still change the value of the parameter by assigning a new value to its\n[AudioParam.value] property.",
+ "panningmodel": "\n\nThe `panningModel` property of the [PannerNode] interface is an enumerated value determining which spatialization algorithm to use to position the audio in 3D space.\n\nThe possible values are:\n\n- `equalpower`: Represents the equal-power panning algorithm, generally regarded as simple and efficient. `equalpower` is the default value.\n- `HRTF`: Renders a stereo output of higher quality than `equalpower` — it uses a convolution with measured impulse responses from human subjects.",
+ "positionx": "\n\nThe **`positionX`** property of the [PannerNode] interface specifies the X coordinate of the audio source's position in 3D Cartesian\ncoordinates, corresponding to the _horizontal_ axis (left-right).\n\nThe complete vector is defined by the position of the audio source, given as\n([PannerNode.positionX], [PannerNode.positionY], [PannerNode.positionZ]), and the orientation\nof the audio source (that is, the direction in which it's facing), given as\n([PannerNode.orientationX],\n[PannerNode.orientationY],\n[PannerNode.orientationZ]).\n\nDepending on the directionality of the sound (as specified using the attributes\n[PannerNode.coneInnerAngle],\n[PannerNode.coneOuterAngle], and\n[PannerNode.coneOuterGain]), the orientation of the\nsound may alter the perceived volume of the sound as it's being played. If the sound\nis pointing toward the listener, it will be louder than if the sound is pointed away\nfrom the listener.\n\nThe [AudioParam] contained by this property is read only; however, you\ncan still change the value of the parameter by assigning a new value to its\n[AudioParam.value] property.",
+ "positiony": "\n\nThe **`positionY`** property of the [PannerNode] interface specifies the Y coordinate of the audio source's position in 3D Cartesian\ncoordinates, corresponding to the _vertical_ axis (top-bottom). The complete\nvector is defined by the position of the audio source, given as\n([PannerNode.positionX], [PannerNode.positionY], [PannerNode.positionZ]), and the orientation\nof the audio source (that is, the direction in which it's facing), given as\n([PannerNode.orientationX],\n[PannerNode.orientationY],\n[PannerNode.orientationZ]).\n\nDepending on the directionality of the sound (as specified using the attributes\n[PannerNode.coneInnerAngle],\n[PannerNode.coneOuterAngle], and\n[PannerNode.coneOuterGain]), the orientation of the\nsound may alter the perceived volume of the sound as it's being played. If the sound\nis pointing toward the listener, it will be louder than if the sound is pointed away\nfrom the listener.\n\nThe [AudioParam] contained by this property is read only; however, you\ncan still change the value of the parameter by assigning a new value to its\n[AudioParam.value] property.",
+ "positionz": "\n\nThe **`positionZ`** property of the [PannerNode] interface specifies the Z coordinate of the audio source's position in 3D Cartesian\ncoordinates, corresponding to the _depth_ axis (behind-in front of the\nlistener). The complete vector is defined by the position of the audio source, given\nas ([PannerNode.positionX],\n[PannerNode.positionY], [PannerNode.positionZ]), and the orientation of the audio source (that is, the direction in\nwhich it's facing), given as ([PannerNode.orientationX],\n[PannerNode.orientationY],\n[PannerNode.orientationZ]).\n\nDepending on the directionality of the sound (as specified using the attributes\n[PannerNode.coneInnerAngle],\n[PannerNode.coneOuterAngle], and\n[PannerNode.coneOuterGain]), the orientation of the\nsound may alter the perceived volume of the sound as it's being played. If the sound\nis pointing toward the listener, it will be louder than if the sound is pointed away\nfrom the listener.\n\nThe [AudioParam] contained by this property is read only; however, you\ncan still change the value of the parameter by assigning a new value to its\n[AudioParam.value] property.",
+ "refdistance": "\n\nThe `refDistance` property of the [PannerNode] interface is a double value representing the reference distance for reducing volume as the audio source moves further from the listener – i.e. the distance at which the volume reduction starts taking effect. This value is used by all distance models.\n\nThe `refDistance` property's default value is `1`.",
+ "rollofffactor": "\n\nThe `rolloffFactor` property of the [PannerNode] interface is a double value describing how quickly the volume is reduced as the source moves away from the listener. This value is used by all distance models. The `rolloffFactor` property's default value is `1`.",
+ "setorientation": "\n\n> **Note:** The suggested replacement for this deprecated method is to instead set the [`orientationX`](/en-US/docs/Web/API/PannerNode/orientationX), [`orientationY`](/en-US/docs/Web/API/PannerNode/orientationY), and [`orientationZ`](/en-US/docs/Web/API/PannerNode/orientationZ) attributes directly.\n\nThe `setOrientation()` method of the [PannerNode] Interface defines the direction the audio source is playing in.\n\nThis can have a big effect if the sound is very directional — controlled by the three cone-related attributes [PannerNode.coneInnerAngle], [PannerNode.coneOuterAngle], and [PannerNode.coneOuterGain]. In such a case, a sound pointing away from the listener can be very quiet or even silent.\n\nThe three parameters `x`, `y` and `z` are unitless and describe a direction vector in 3D space using the right-hand Cartesian coordinate system. The default value of the direction vector is `(1, 0, 0)`.",
+ "setposition": "\n\n> **Note:** The suggested replacement for this deprecated method is to instead set the [`positionX`](/en-US/docs/Web/API/PannerNode/positionX), [`positionY`](/en-US/docs/Web/API/PannerNode/positionY), and [`positionZ`](/en-US/docs/Web/API/PannerNode/positionZ) attributes directly.\n\nThe `setPosition()` method of the [PannerNode] Interface defines the position of the audio source relative to the listener (represented by an [AudioListener] object stored in the [BaseAudioContext.listener] attribute.) The three parameters `x`, `y` and `z` are unitless and describe the source's position in 3D space using the right-hand Cartesian coordinate system.\n\nThe `setPosition()` method's default value of the position is `(0, 0, 0)`."
+ }
+ },
+ "passwordcredential": {
+ "docs": "\n\nThe interface of the [Credential Management API](/en-US/docs/Web/API/Credential_Management_API) provides information about a username/password pair. In supporting browsers an instance of this class may be passed in the `credential` member of the `init` object for global [fetch].\n\n> **Note:** This interface is restricted to top-level contexts and cannot be used from an `iframe`.\n\n",
+ "properties": {
+ "iconurl": "\n\nThe **`iconURL`** read-only property\nof the [PasswordCredential] interface returns a string\ncontaining a URL pointing to an image for an icon. This image is intended for display\nin a credential chooser. The URL must be accessible without authentication.",
+ "name": "\n\nThe **`name`** read-only property of\nthe [PasswordCredential] interface returns a string\ncontaining a human-readable public name for display in a credential chooser.",
+ "password": "\n\nThe **`password`** read-only property\nof the [PasswordCredential] interface returns a string\ncontaining the password of the credential."
+ }
+ },
+ "path2d": {
+ "docs": "\n\nThe **`Path2D`** interface of the Canvas 2D API is used to declare a path that can then be used on a [CanvasRenderingContext2D] object. The [path methods](/en-US/docs/Web/API/CanvasRenderingContext2D#paths) of the `CanvasRenderingContext2D` interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired.",
+ "properties": {
+ "addpath": "\n\nThe **`Path2D.addPath()`** method\nof the Canvas 2D API adds one [Path2D] object to another\n`Path2D` object."
+ }
+ },
+ "paymentaddress": {
+ "docs": "\n\nThe **`PaymentAddress`** interface of the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) is used to store shipping or payment address information.\n\nIt may be useful to refer to the Universal Postal Union website's [Addressing S42 standard](https://www.upu.int/en/Postal-Solutions/Programmes-Services/Addressing-Solutions#addressing-s42-standard) materials, which provide information about international standards for postal addresses.",
+ "properties": {
+ "addressline": "\n\nThe **`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\nThese\nlines may include the street name, house number, apartment number, rural delivery route,\ndescriptive instructions, or post office box.",
+ "city": "\n\nThe **`city`** read-only property of\nthe [PaymentAddress] interface returns a string containing the city or\ntown portion of the address.",
+ "country": "\n\nThe **`country`** read-only property of the\n[PaymentAddress] interface is a string identifying the address's country\nusing the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) standard. The string is\nalways in its canonical upper-case form.\n\nSome examples of valid `country` values: `\"US\"`,\n`\"GB\"`, `\"CN\"`, or `\"JP\"`.",
+ "dependentlocality": "\n\nThe 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_.",
+ "organization": "\n\nThe **`organization`** read-only\nproperty of the [PaymentAddress] interface returns a string containing\nthe name of the organization, firm, company, or institution at the address.",
+ "phone": "\n\nThe read-only **`phone`** property of the\n[PaymentAddress] interface returns a string containing the telephone number\nof the recipient or contact person.",
+ "postalcode": "\n\nThe **`postalCode`** read-only property of the\n[PaymentAddress] interface returns a string containing a code used by a\njurisdiction for mail routing, for example, the [ZIP Code](https://en.wikipedia.org/wiki/ZIP_Code)\nin the United States or the [Postal Index Number](https://en.wikipedia.org/wiki/Postal_Index_Number) (PIN code)\nin India.",
+ "recipient": "\n\nThe read-only **`recipient`** property of the\n[PaymentAddress] interface returns a string containing the name of the\nrecipient, purchaser, or contact person at the payment address.",
+ "region": "\n\nThe read-only **`region`** property of the\n[PaymentAddress] 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.",
+ "sortingcode": "\n\nThe **`sortingCode`** read-only property of the\n[PaymentAddress] interface returns a string containing a postal sorting\ncode such as is used in France.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [PaymentAddress] interface is a standard serializer that returns a JSON representation of the PaymentAddress object's properties."
+ }
+ },
+ "paymentmanager": {
+ "docs": "\n\nThe **`PaymentManager`** interface of the [Payment Handler API] is used to manage various aspects of payment app functionality.\n\nIt is accessed via the [ServiceWorkerRegistration.paymentManager] property.\n\n",
+ "properties": {
+ "enabledelegations": "\n\nThe **`enableDelegations()`** method of the [PaymentManager] interface delegates responsibility for providing various parts of the required payment information to the payment app rather than collecting it from the browser (for example, via autofill).\n\nFor example, if the `requestShipping` option is set to `true` in the options object when invoking the [PaymentRequest.PaymentRequest] constructor, a shipping address will be returned.\n\n- If `enableDelegations()` was used to delegate `shippingAddress`, that address will come from the payment app.\n- If not, it will come from the browser autofill.",
+ "userhint": "\n\nThe **`userHint`** property of the [PaymentManager] interface provides a hint for the browser to display along with the payment app's name and icon in the Payment Handler UI."
+ }
+ },
+ "paymentmethodchangeevent": {
+ "docs": "\n\nThe **`PaymentMethodChangeEvent`** interface of the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) describes the [PaymentRequest/paymentmethodchange_event] event which is fired by some payment handlers when the user switches payment instruments (e.g., a user selects a \"store\" card to make a purchase while using Apple Pay).\n\n",
+ "properties": {
+ "methoddetails": "\n\nThe read-only **`methodDetails`** property of the [PaymentMethodChangeEvent] interface is an object\ncontaining any data the payment handler may provide to describe the change the user\nhas made to their payment method. The value is `null` if no details\nare available.",
+ "methodname": "\n\nThe read-only **`methodName`** property of the [PaymentMethodChangeEvent] interface is a string which\nuniquely identifies the payment handler currently selected by the user. The\npayment handler may be a payment technology, such as Apple Pay or Android Pay, and each\npayment handler may support multiple payment methods; changes to the payment method\nwithin the payment handler are described by the `PaymentMethodChangeEvent`."
+ }
+ },
+ "paymentrequest": {
+ "docs": "\n\nThe [Payment Request API's](/en-US/docs/Web/API/Payment_Request_API) **`PaymentRequest`** interface is the primary access point into the API, and lets web content and apps accept payments from the end user on behalf of the operator of the site or the publisher of the app.\n\n",
+ "properties": {
+ "abort": "\n\nThe `PaymentRequest.abort()` method of the [PaymentRequest]\ninterface causes the user agent to end the payment request and to remove any user\ninterface that might be shown.",
+ "canmakepayment": "\n\nThe [PaymentRequest] method\n**`canMakePayment()`** determines whether or not the request\nis configured in a way that is compatible with at least one payment method supported\nby the .\n\nYou can call this before calling\n[PaymentRequest.show] to provide a streamlined user experience\nwhen the user's browser can't handle any of the payment methods you accept.\n\nFor instance, you might call `canMakePayment()` to determine if the browser\nwill let the user pay using Payment Request API, and if it won't, you could fall back to\nanother payment method, or offer a list of methods that aren't handled by Payment\nRequest API (or even provide instructions for paying by mail or by phone).",
+ "id": "\n\nThe **`id`** read-only attribute of the\n[PaymentRequest] interface returns a unique identifier for a particular\n[PaymentRequest] instance.\n\nWhen constructing an instance of the [PaymentRequest], you are able to\nsupply an custom id. If none is provided, the browser automatically sets the id value to a UUID.",
+ "merchantvalidation_event": "\n\n**`merchantvalidation`** events are delivered by the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) to a [PaymentRequest] object when a payment handler requires that the merchant requesting the purchase validate itself as permitted to use the payment handler.\n\nLearn how the [merchant validation](/en-US/docs/Web/API/Payment_Request_API/Concepts#merchant_validation) process works.\n\nThis event is not cancelable and does not bubble.",
+ "paymentmethodchange_event": "\n\nThe **`paymentmethodchange`** event is delivered the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) to a [PaymentRequest] object when the user changes the payment method within a given payment handler.\n\nFor example, if the user switches from one credit card to another on their [Apple Pay](https://www.apple.com/apple-pay/) account, a `paymentmethodchange` event is fired to let you know about the change.\n\nThis event is not cancelable and does not bubble.",
+ "shippingaddress": "\n\nThe **`shippingAddress`** read-only property of\nthe [PaymentRequest] interface returns the shipping address provided by the\nuser. It is `null` by default.",
+ "shippingaddresschange_event": "\n\nThe **`shippingaddresschange`** event is sent to the [PaymentRequest] object when the user selects a shipping address or changes details of their shipping address.\n\nThis event is not cancelable and does not bubble.",
+ "shippingoption": "\n\nThe **`shippingOption`** read-only attribute of\nthe [PaymentRequest] interface returns either the id of a selected shipping\noption, null (if no shipping option was set to be selected) or a shipping option\nselected by the user. It is initially `null` by when no \"selected\" shipping\noptions are provided.\n\nThis attribute is only populated if the constructor is called with the\n`requestShipping` flag set to `true`. If\n`requestShipping` was `false` (or missing),\n`shippingOption` returns `null`, even the developer provides\na selected a shipping option.",
+ "shippingoptionchange_event": "\n\nFor payment requests that request shipping information, and for which shipping options are offered, the **`shippingoptionchange`** event is sent to the [PaymentRequest] whenever the user chooses a shipping option from the list of available options.\n\nThe string identifying the currently-selected shipping option can be found in the [PaymentRequest.shippingOption] property.\n\nThis event is not cancelable and does not bubble.",
+ "shippingtype": "\n\nThe **`shippingType`** read-only property of the\n[PaymentRequest] interface returns one of `\"shipping\"`,\n`\"delivery\"`, `\"pickup\"`, or `null` if one was not\nprovided by the constructor.",
+ "show": "\n\nThe **[PaymentRequest]** interface's\n**`show()`** method instructs the user agent to begin the\nprocess of showing and handling the user interface for the payment request to the\nuser.\n\nOnly one payment request can be in the process of being handled at once, across all\ndocuments. Once one `PaymentRequest`'s `show()` method has been\ncalled, any other call to `show()` will by rejected with an\n`AbortError` until the returned promise has been concluded, either by being\nfulfilled with a [PaymentResponse] indicating the results of the payment\nrequest, or by being rejected with an error.\n\n> **Note:** In reality, despite the fact that the specification says this\n> can't be done, some browsers, including Firefox, support multiple active payment\n> requests at a time.\n\nIf your architecture doesn't necessarily have all of the data ready to go at the moment\nit instantiates the payment interface by calling `show()`, specify the\n`detailsPromise` parameter, providing a `Promise` that is\nfulfilled once the data is ready. If this is provided, `show()` will not\nallow the user to interact with the payment interface until the promise is fulfilled, so\nthat data can be updated prior to the user engaging with the payment process.\n\nProcessing the result and, if necessary, calling [PaymentResponse.retry]\nto retry a failed payment can all be done either asynchronously or synchronously,\ndepending on your needs. For the best user experience, asynchronous solutions are\ntypically the best way to go. Most examples on MDN and elsewhere use\n[`async`](/en-US/docs/Web/JavaScript/Reference/Statements/async_function)/[`await`](/en-US/docs/Web/JavaScript/Reference/Operators/await)\nto wait asynchronously while results are validated and so forth."
+ }
+ },
+ "paymentrequestevent": {
+ "docs": "\n\nThe **`PaymentRequestEvent`** interface of the [Payment Handler API] is the object passed to a payment handler when a [PaymentRequest] is made.\n\n",
+ "properties": {
+ "changepaymentmethod": "\n\nThe **`changePaymentMethod()`** method of the [PaymentRequestEvent] interface is used by the payment handler to get an updated total, given such payment method details as the billing address.\n\nWhen this method is invoked, a [PaymentMethodChangeEvent] is fired.",
+ "instrumentkey": "\n\nThe **`instrumentKey`** read-only property of the\n[PaymentRequestEvent] interface returns a\n`PaymentInstrument` object reflecting the payment instrument selected by\nthe user or an empty string if the user has not registered or chosen a payment\ninstrument.",
+ "methoddata": "\n\nThe **`methodData`** read-only property of the\n[PaymentRequestEvent] interface returns an array of\n`PaymentMethodData` objects containing payment method identifiers for the\npayment methods that the website accepts and any associated payment method-specific\ndata.",
+ "modifiers": "\n\nThe **`modifiers`** read-only property of the\n[PaymentRequestEvent] interface returns an array of `PaymentDetailsModifier` objects containing modifiers for payment details.",
+ "openwindow": "\n\nThe **`openWindow()`** method of the [PaymentRequestEvent] interface opens the specified URL in a new window, only if the given URL is on the same origin as the calling page. It returns a `Promise` that resolves with a reference to a [WindowClient].",
+ "paymentrequestid": "\n\nThe **`paymentRequestId`** read-only property of the\n[PaymentRequestEvent] interface returns the ID of the\n[PaymentRequest] object.",
+ "paymentrequestorigin": "\n\nThe **`paymentRequestOrigin`** read-only property of the\n[PaymentRequestEvent] interface returns the origin where the\n[PaymentRequest] object was initialized.",
+ "respondwith": "\n\nThe **`respondWith()`** method of the [PaymentRequestEvent] interface prevents the default event handling and allows you to provide a `Promise` for a [PaymentResponse] object yourself.",
+ "toporigin": "\n\nThe **`topOrigin`** read-only property of the\n[PaymentRequestEvent] interface returns the top-level payee origin where\nthe [PaymentRequest] object was initialized.",
+ "total": "\n\nThe **`total`** read-only property of the [PaymentRequestEvent] interface returns a\n`PaymentCurrencyAmount` object containing the total amount being requested for payment."
+ }
+ },
+ "paymentrequestupdateevent": {
+ "docs": "\n\nThe **`PaymentRequestUpdateEvent`** interface is used for events sent to a [PaymentRequest] instance when changes are made to shipping-related information for a pending [PaymentRequest]. Those events are:\n\n- [PaymentRequest.shippingaddresschange_event]\n - : Dispatched whenever the user changes their shipping address.\n- [PaymentRequest.shippingoptionchange_event]\n - : Dispatched whenever the user changes a shipping option.\n\n",
+ "properties": {
+ "updatewith": "\n\nThe **`updateWith()`** method of the\n[PaymentRequestUpdateEvent] interface updates the details of an existing\n[PaymentRequest]."
+ }
+ },
+ "paymentresponse": {
+ "docs": "\n\nThe **`PaymentResponse`** interface of the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) is returned after a user selects a payment method and approves a payment request.\n\n",
+ "properties": {
+ "complete": "\n\nThe [PaymentRequest] method\n**`complete()`** of the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) notifies the\n that the user interaction is over, and causes any remaining\nuser interface to be closed.\n\nThis method must be called after the user accepts\nthe payment request and the `Promise` returned by the\n[PaymentRequest.show] method is resolved.",
+ "details": "\n\nThe **`details`** read-only property of the\n[PaymentResponse] interface returns a JSON-serializable object that\nprovides a payment method specific message used by the merchant to process the\ntransaction and determine a successful funds transfer.\n\nThis data is returned by the payment app that satisfies the payment request. Developers need to consult whomever controls the URL for the expected shape of the details object.",
+ "methodname": "\n\nThe **`methodName`** read-only\nproperty of the [PaymentResponse] interface returns a string uniquely\nidentifying the payment handler selected by the user.\n\nThis string may be either\none of the standardized payment method identifiers or a URL used by the payment handler\nto process payments.",
+ "payerdetailchange_event": "\n\nA **`payerdetailchange`** event is fired by the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) to a [PaymentResponse] object when the user makes changes to their personal information while filling out a payment request form. This can happen when the payer is retrying to submit its details after an error has been detected.\n\nThe event handler for `payerdetailchange` should check each value in the form that has changed and ensure that the values are valid. If any are invalid, appropriate error messages should be configured and the [PaymentResponse.retry] method should be called on the [PaymentResponse] to ask the user to update the invalid entries.\n\nThis event is not cancelable and does not bubble.",
+ "payeremail": "\n\nThe `payerEmail` read-only property of the [PaymentResponse]\ninterface returns the email address supplied by the user. This option is only present\nwhen the `requestPayerEmail` option is set to `true` in the\n[PaymentOptions] object passed to the\n[PaymentRequest.PaymentRequest] constructor.",
+ "payername": "\n\nThe **`payerName`** read-only property of the\n[PaymentResponse] interface returns the name supplied by the user. This\noption is only present when the `requestPayerName` option is set to\n`true` in the options parameter of the\n[PaymentRequest.PaymentRequest] constructor.",
+ "payerphone": "\n\nThe `payerPhone` read-only property of the [PaymentResponse]\ninterface returns the phone number supplied by the user. This option is only present\nwhen the `requestPayerPhone` option is set to `true` in the\n[PaymentOptions] object passed to the\n[PaymentRequest.PaymentRequest] constructor.",
+ "requestid": "\n\nThe **`requestId`** read-only property of the\n[PaymentResponse] interface returns the free-form identifier supplied by\nthe `PaymentResponse()` constructor by details.id.",
+ "retry": "\n\nThe [PaymentResponse] interface's\n**`retry()`** method makes it possible to ask the user to\nretry a payment after an error occurs during processing.\n\nThis lets your app\ngracefully deal with situations such as invalid shipping addresses or declined credit\ncards.",
+ "shippingaddress": "\n\nThe **`shippingAddress`** read-only property of\nthe `PaymentRequest` interface returns a [PaymentAddress] object\ncontaining the shipping address provided by the user.",
+ "shippingoption": "\n\nThe **`shippingOption`** read-only property of\nthe `PaymentRequest` interface returns the ID attribute of the shipping\noption selected by the user. This option is only present when the\n`requestShipping` option is set to `true` in the\n[PaymentOptions] object passed to the\n[PaymentRequest.PaymentRequest] constructor.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [PaymentResponse] interface is a ; it returns a JSON representation of the [PaymentResponse] object."
+ }
+ },
+ "pbkdf2params": {
+ "docs": "\n\nThe **`Pbkdf2Params`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.deriveKey], when using the [PBKDF2](/en-US/docs/Web/API/SubtleCrypto/deriveKey#pbkdf2) algorithm."
+ },
+ "performance": {
+ "docs": "\n\nThe **`Performance`** interface provides access to performance-related information for the current page.\n\nAn object of this type can be obtained by calling `window.performance` or `self.performance` in workers. Note that Performance entries are per context. If you create a mark on the main thread (or other worker), you cannot see it in a worker thread, and vice versa. See [`self.performance`](/en-US/docs/Web/API/performance_property) for which APIs are available in window and worker contexts.\n\n",
+ "properties": {
+ "clearmarks": "\n\nThe **`clearMarks()`** method removes all or specific [PerformanceMark] objects from the browser's performance timeline.",
+ "clearmeasures": "\n\nThe **`clearMeasures()`** method removes all or specific [PerformanceMeasure] objects from the browser's performance timeline.",
+ "clearresourcetimings": "\n\nThe **`clearResourceTimings()`** method removes all performance entries with an [PerformanceEntry.entryType] of \"`resource`\" from the browser's performance timeline and sets the size of the performance resource data buffer to zero.\n\nTo set the size of the browser's performance resource data buffer, use the\n[Performance.setResourceTimingBufferSize] method.\n\nTo get notified when the browser's resource timing buffer is full, listen for the [Performance.resourcetimingbufferfull_event] event.",
+ "eventcounts": "\n\nThe read-only `performance.eventCounts` property is an [EventCounts] map containing the number of events which have been dispatched per event type.\n\nNot all event types are exposed. You can only get counts for event types supported by the [PerformanceEventTiming] interface.",
+ "getentries": "\n\nThe **`getEntries()`** method returns an array of all [PerformanceEntry] objects currently present in the performance timeline.\n\nIf you are only interested in performance entries of certain types or that have certain names, see [Performance.getEntriesByType] and [Performance.getEntriesByName].\n\n> **Note:** This method does not notify you about new performance entries; you will only get entries that are present in the performance timeline at the time you call this method.\n> To receive notifications about entries as they become available, use a [PerformanceObserver].\n\nThe following entry types are not supported by this method at all and won't be returned even if entries for these types might exist:\n\n- `\"element\"` ([PerformanceElementTiming])\n- `\"event\"` ([PerformanceEventTiming])\n- `\"largest-contentful-paint\"` ([LargestContentfulPaint])\n- `\"layout-shift\"` ([LayoutShift])\n- `\"longtask\"` ([PerformanceLongTaskTiming])\n\nTo access entries of these types, you must use a [PerformanceObserver] instead.",
+ "getentriesbyname": "\n\nThe **`getEntriesByName()`** method returns an array of [PerformanceEntry] objects currently present in the performance timeline with the given _name_ and _type_.\n\nIf you are interested in performance entries of certain types, see [Performance.getEntriesByType]. For all performance entries, see [Performance.getEntries].\n\n> **Note:** This method does not notify you about new performance entries; you will only get entries that are present in the performance timeline at the time you call this method.\n> To receive notifications about entries as they become available, use a [PerformanceObserver].\n\nThe following entry types are not supported by this method at all and won't be returned even if entries for these types might exist:\n\n- `\"element\"` ([PerformanceElementTiming])\n- `\"event\"` ([PerformanceEventTiming])\n- `\"largest-contentful-paint\"` ([LargestContentfulPaint])\n- `\"layout-shift\"` ([LayoutShift])\n- `\"longtask\"` ([PerformanceLongTaskTiming])\n\nTo access entries of these types, you must use a [PerformanceObserver] instead.",
+ "getentriesbytype": "\n\nThe **`getEntriesByType()`** method returns an array of [PerformanceEntry] objects currently present in the performance timeline for a given _type_.\n\nIf you are interested in performance entries of certain name, see [Performance.getEntriesByName]. For all performance entries, see [Performance.getEntries].\n\n> **Note:** This method does not notify you about new performance entries; you will only get entries that are present in the performance timeline at the time you call this method.\n> To receive notifications about entries as they become available, use a [PerformanceObserver].\n\nThe following entry types are not supported by this method at all and won't be returned even if entries for these types might exist:\n\n- `\"element\"` ([PerformanceElementTiming])\n- `\"event\"` ([PerformanceEventTiming])\n- `\"largest-contentful-paint\"` ([LargestContentfulPaint])\n- `\"layout-shift\"` ([LayoutShift])\n- `\"longtask\"` ([PerformanceLongTaskTiming])\n\nTo access entries of these types, you must use a [PerformanceObserver] instead.",
+ "mark": "\n\nThe **`mark()`** method creates a named [PerformanceMark] object representing a high resolution timestamp marker in the browser's performance timeline.",
+ "measure": "\n\nThe **`measure()`** method creates a named [PerformanceMeasure] object representing a time measurement between two marks in the browser's performance timeline.\n\nWhen measuring between two marks, there is a _start mark_ and _end mark_, respectively.\nThe named timestamp is referred to as a _measure_.",
+ "measureuseragentspecificmemory": " \n\nThe **`measureUserAgentSpecificMemory()`** method is used to estimate the memory usage of a web application including all its iframes and workers.",
+ "memory": " \n\nThe non-standard and legacy `performance.memory` property returns the size of the JavaScript heap which can be helpful to measure and reduce the memory footprint of websites.\n\nNote 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\nA new API aiming to replace `performance.memory` is [Performance.measureUserAgentSpecificMemory]. It tries to estimate the memory used by a web page.",
+ "navigation": "\n\nThe legacy\n**`Performance.navigation`**\nread-only property returns a [PerformanceNavigation] object representing\nthe type of navigation that occurs in the given browsing context, such as the number of\nredirections needed to fetch the resource.\n\nThis property is not available in workers.\n\n> **Warning:** This property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the\n> [PerformanceNavigationTiming] interface instead.",
+ "now": "\n\nThe **`performance.now()`** method returns a high resolution timestamp in milliseconds. It represents the time elapsed since [Performance.timeOrigin] (the time when navigation has started in window contexts, or the time when the worker is run in [Worker] and [ServiceWorker] contexts).",
+ "resourcetimingbufferfull_event": "\n\nThe `resourcetimingbufferfull` event is fired when the browser's [resource timing buffer](/en-US/docs/Web/API/Performance/setResourceTimingBufferSize) is full.",
+ "setresourcetimingbuffersize": "\n\nThe **`setResourceTimingBufferSize()`** method sets the desired size of the browser's resource timing buffer which stores the \"`resource`\" performance entries.\n\nThe specification requires the resource timing buffer initially to be 250 or greater.\n\nTo clear the browser's performance resource data buffer, use the\n[Performance.clearResourceTimings] method.\n\nTo get notified when the browser's resource timing buffer is full, listen for the [Performance.resourcetimingbufferfull_event] event.",
+ "timeorigin": "\n\nThe **`timeOrigin`** read-only property of the [Performance] interface returns the high resolution timestamp that is used as the baseline for performance-related timestamps.\n\nIn Window contexts, this value represents the time when navigation has started. In [Worker] and [ServiceWorker] contexts, this value represents the time when the worker is run. You can use this property to synchronize the time origins between the contexts (see example below).\n\n> **Note:** The value of `performance.timeOrigin` may differ from the value returned by `Date.now()` executed at the time origin, because `Date.now()` may have been impacted by system and user clock adjustments, clock skew, etc. The `timeOrigin` property is a [monotonic clock](https://w3c.github.io/hr-time/#dfn-monotonic-clock) which current time never decreases and which isn't subject to these adjustments.",
+ "timing": "\n\nThe legacy\n**`Performance.timing`** read-only\nproperty returns a [PerformanceTiming] object containing latency-related\nperformance information.\n\nThis property is not available in workers.\n\n> **Warning:** This property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [Performance] interface is a ; it returns a JSON representation of the [Performance] object."
+ }
+ },
+ "performanceelementtiming": {
+ "docs": "\n\nThe **`PerformanceElementTiming`** interface contains render timing information for image and text node elements the developer annotated with an [`elementtiming`](/en-US/docs/Web/HTML/Attributes/elementtiming) attribute for observation.",
+ "properties": {
+ "element": "\n\nThe **`element`** read-only property of the [PerformanceElementTiming] interface returns an [Element] which is a pointer to the observed element.",
+ "id": "\n\nThe **`id`** read-only property of the [PerformanceElementTiming] interface returns the [`id`](/en-US/docs/Web/HTML/Global_attributes#id) of the associated element.",
+ "identifier": "\n\nThe **`identifier`** read-only property of the [PerformanceElementTiming] interface returns the value of the [`elementtiming`](/en-US/docs/Web/HTML/Attributes/elementtiming) attribute on the element.",
+ "intersectionrect": "\n\nThe **`intersectionRect`** read-only property of the [PerformanceElementTiming] interface returns the rectangle of the element within the viewport.",
+ "loadtime": "\n\nThe **`loadTime`** read-only property of the [PerformanceElementTiming] interface always returns `0` for text. For images it returns the time which is the latest between the time the image resource is loaded and the time it is attached to the element.",
+ "naturalheight": "\n\nThe **`naturalHeight`** read-only property of the [PerformanceElementTiming] interface returns the intrinsic height of the image element.",
+ "naturalwidth": "\n\nThe **`naturalWidth`** read-only property of the [PerformanceElementTiming] interface returns the intrinsic width of the image element.",
+ "rendertime": "\n\nThe **`renderTime`** read-only property of the [PerformanceElementTiming] interface returns the render time of the associated element.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [PerformanceElementTiming] interface is a ; it returns a JSON representation of the [PerformanceElementTiming] object.",
+ "url": "\n\nThe **`url`** read-only property of the [PerformanceElementTiming] interface returns the initial URL of the resource request when the element is an image."
+ }
+ },
+ "performanceentry": {
+ "docs": " \n\nThe **`PerformanceEntry`** object encapsulates a single performance metric that is part of the browser's performance timeline.\n\nThe Performance API offers built-in metrics which are specialized subclasses of `PerformanceEntry`. This includes entries for resource loading, event timing, (FID), and more.\n\nA performance entry can also be created by calling the [Performance.mark] or [Performance.measure] methods at an explicit point in an application. This allows you to add your own metrics to the performance timeline.\n\nThe `PerformanceEntry` instances will always be one of the following subclasses:\n\n- [LargestContentfulPaint]\n- [LayoutShift]\n- [PerformanceEventTiming]\n- [PerformanceLongTaskTiming]\n- [PerformanceMark]\n- [PerformanceMeasure]\n- [PerformanceNavigationTiming]\n- [PerformancePaintTiming]\n- [PerformanceResourceTiming]\n- [PerformanceServerTiming]\n- [TaskAttributionTiming]\n- [VisibilityStateEntry]",
+ "properties": {
+ "duration": "\n\nThe read-only **`duration`** property returns a that is the duration of the . The meaning of this property depends on the value of this entry's [PerformanceEntry.entryType].",
+ "entrytype": " \n\nThe read-only **`entryType`** property returns a string representing the type of performance metric that this entry represents.\n\nAll supported `entryTypes` are available using the static property [PerformanceObserver.supportedEntryTypes_static].",
+ "name": " \n\nThe read-only **`name`** property of the [PerformanceEntry] interface is a string representing the name for a performance entry. It acts as an identifier, but it does not have to be unique. The value depends on the subclass.",
+ "starttime": "\n\nThe read-only **`startTime`** property returns the first recorded for this . The meaning of this property depends on the value of this entry's [PerformanceEntry.entryType].",
+ "tojson": "\n\nThe **`toJSON()`** method is a ; it returns a JSON representation of the [PerformanceEntry] object."
+ }
+ },
+ "performanceeventtiming": {
+ "docs": "\n\nThe `PerformanceEventTiming` interface of the Event Timing API provides insights into the latency of certain event types triggered by user interaction.",
+ "properties": {
+ "cancelable": "\n\nThe read-only **`cancelable`** property returns the associated event's [`cancelable`](/en-US/docs/Web/API/Event/cancelable) property, indicating whether the event can be canceled.",
+ "interactionid": "\n\nThe read-only **`interactionId`** property returns an ID that uniquely identifies a user interaction which triggered a series of associated events.",
+ "processingend": "\n\nThe read-only **`processingEnd`** property returns the time the last event handler finished executing.\n\nIt's equal to [PerformanceEventTiming.processingStart] when there are no such event handlers.",
+ "processingstart": "\n\nThe read-only **`processingStart`** property returns the time at which event dispatch started. This is when event handlers are about to be executed.",
+ "target": "\n\nThe read-only **`target`** property returns the associated event's last [`target`](/en-US/docs/Web/API/Event/target) which is the node onto which the event was last dispatched.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [PerformanceEventTiming] interface is a ; it returns a JSON representation of the [PerformanceEventTiming] object."
+ }
+ },
+ "performancelongtasktiming": {
+ "docs": "\n\nThe **`PerformanceLongTaskTiming`** interface provides information about tasks that occupy the UI thread for 50 milliseconds or more.",
+ "properties": {
+ "attribution": "\n\nThe **`attribution`** readonly property of the [PerformanceLongTaskTiming] interface returns an array of [TaskAttributionTiming] objects.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [PerformanceLongTaskTiming] interface is a ; it returns a JSON representation of the [PerformanceLongTaskTiming] object."
+ }
+ },
+ "performancemark": {
+ "docs": "\n\n**`PerformanceMark`** is an interface for [PerformanceEntry] objects with an [PerformanceEntry.entryType] of \"`mark`\".\n\nEntries of this type are typically created by calling [Performance.mark] to add a _named_ [DOMHighResTimeStamp] (the _mark_) to the browser's performance timeline. To create a performance mark that isn't added to the browser's performance timeline, use the constructor.\n\n",
+ "properties": {
+ "detail": "\n\nThe read-only **`detail`** property returns arbitrary metadata that was included in the mark upon construction (either when using [Performance.mark] or the [PerformanceMark.PerformanceMark] constructor)."
+ }
+ },
+ "performancemeasure": {
+ "docs": "\n\n**`PerformanceMeasure`** is an _abstract_ interface for [PerformanceEntry] objects with an [PerformanceEntry.entryType] of \"`measure`\". Entries of this type are created by calling [Performance.measure] to add a _named_ [DOMHighResTimeStamp] (the _measure_) between two _marks_ to the browser's _performance timeline_.\n\n",
+ "properties": {
+ "detail": "\n\nThe read-only **`detail`** property returns arbitrary metadata that was included in the mark upon construction (when using [Performance.measure]."
+ }
+ },
+ "performancenavigation": {
+ "docs": "\n\nThe legacy **`PerformanceNavigation`** interface represents information about how the navigation to the current document was done.\n\n> **Warning:** This interface is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete).\n> Please use the [PerformanceNavigationTiming] interface instead.\n\nAn object of this type can be obtained by calling the [Performance.navigation] read-only attribute.",
+ "properties": {
+ "redirectcount": "\n\nThe legacy\n**`PerformanceNavigation.redirectCount`**\nread-only property returns an `unsigned short` representing the number of\nREDIRECTs done before reaching the page.\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete).\n> Please use the [PerformanceNavigationTiming] interface instead.",
+ "tojson": " \n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe **`toJSON()`** method of the [PerformanceNavigation] interface is a ; it returns a JSON representation of the [PerformanceNavigation] object.",
+ "type": "\n\nThe legacy\n**`PerformanceNavigation.type`**\nread-only property returns an `unsigned short` containing a constant\ndescribing how the navigation to this page was done.\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete).\n> Please use the [PerformanceNavigationTiming] interface instead."
+ }
+ },
+ "performancenavigationtiming": {
+ "docs": "\n\nThe **`PerformanceNavigationTiming`** interface provides methods and properties to store and retrieve metrics regarding the browser's document navigation events. For example, this interface can be used to determine how much time it takes to load or unload a document.\n\nOnly the current document is included in the performance timeline, so there is only one `PerformanceNavigationTiming` object in the performance timeline. It inherits all of the properties and methods of [PerformanceResourceTiming] and [PerformanceEntry].\n\nThe following diagram shows all of the timestamp properties defined in `PerformanceNavigationTiming`.\n\n",
+ "properties": {
+ "activationstart": "\n\nThe **`activationStart`** read-only property represents the time between when a document starts prerendering and when it is activated.",
+ "domcomplete": "\n\nThe **`domComplete`** read-only property returns a [DOMHighResTimeStamp] representing the time immediately before the user agent sets the document's [`readyState`](/en-US/docs/Web/API/Document/readyState) to `\"complete\"`.\n\nSee also the `complete` state of [Document.readyState] which corresponds to this property and refers to the state in which the document and all sub-resources have finished loading. The state also indicates that the [Window/load_event] event is about to fire.",
+ "domcontentloadedeventend": "\n\nThe **`domContentLoadedEventEnd`** read-only property returns a [DOMHighResTimeStamp] representing the time immediately after the current document's [`DOMContentLoaded`](/en-US/docs/Web/API/Document/DOMContentLoaded_event) event handler completes.\n\nTypically frameworks and libraries wait for the `DOMContentLoaded` event before starting to run their code. We can use the `domContentLoadedEventEnd` and the [`domContentLoadedEventStart`](/en-US/docs/Web/API/PerformanceNavigationTiming/domContentLoadedEventStart) properties to calculate how long this takes to run.",
+ "domcontentloadedeventstart": "\n\nThe **`domContentLoadedEventStart`** read-only property returns a [DOMHighResTimeStamp] representing the time immediately before the current document's [`DOMContentLoaded`](/en-US/docs/Web/API/Document/DOMContentLoaded_event) event handler starts.\n\nTypically frameworks and libraries wait for the `DOMContentLoaded` event before starting to run their code. We can use the `domContentLoadedEventStart` and the [`domContentLoadedEventEnd`](/en-US/docs/Web/API/PerformanceNavigationTiming/domContentLoadedEventEnd) properties to calculate how long this takes to run.",
+ "dominteractive": "\n\nThe **`domInteractive`** read-only property returns a [DOMHighResTimeStamp] representing the time immediately before the user agent sets the document's [`readyState`](/en-US/docs/Web/API/Document/readyState) to `\"interactive\"`.\n\n> **Note:** This property is **not** (TTI). This property refers to the time when DOM construction is finished and interaction to it from JavaScript is possible. See also the `interactive` state of [Document.readyState] which corresponds to this property.\n\nMeasuring DOM processing time may not be consequential unless your site has a very large HTML source to a construct a Document Object Model from.\n\nIf there is no parser-blocking JavaScript then the [`DOMContentLoaded`](/en-US/docs/Web/API/Document/DOMContentLoaded_event) event (see [`domContentLoadedEventStart`](/en-US/docs/Web/API/PerformanceNavigationTiming/domContentLoadedEventStart) for the timestamp) will fire immediately after `domInteractive`.",
+ "loadeventend": "\n\nThe **`loadEventEnd`** read-only property returns a [DOMHighResTimeStamp] representing the time immediately after the current document's [`load`](/en-US/docs/Web/API/Window/load_event) event handler completes.",
+ "loadeventstart": "\n\nThe **`loadEventStart`** read-only property returns a [DOMHighResTimeStamp] representing the time immediately before the current document's [`load`](/en-US/docs/Web/API/Window/load_event) event handler starts.",
+ "redirectcount": "\n\nThe **`redirectCount`** read-only property returns a number representing the number of redirects since the last non-redirect navigation in the current browsing context.\n\nThe higher the number of redirects on a page, the longer the page load time. To improve the performance of your web page, avoid multiple redirects.\n\nThe [PerformanceResourceTiming.redirectStart] and [PerformanceResourceTiming.redirectEnd] properties can be used to measure redirection time. Note that they will return `0` for cross-origin redirects.\n\nNote that client side redirects, such as `<meta http-equiv=\"refresh\" content=\"0; url=https://example.com/\">` are not considered here.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [PerformanceNavigationTiming] interface is a ; it returns a JSON representation of the [PerformanceNavigationTiming] object.",
+ "type": "\n\nThe **`type`** read-only property returns the type of navigation.\n\nYou can use this property to categorize your navigation timing data as each of these types will have different performance characteristics. Users going back and forth might experience a faster site than users performing navigation for the first time or submitting forms, etc.\n\nFor example, if your site provides new content frequently, you might want to refresh that content using [Fetch](/en-US/docs/Web/API/Fetch_API) or similar and avoid users having to hit reload for the entire page all the time. The `\"reload\"` type can help you find pages that are reloaded frequently.",
+ "unloadeventend": "\n\nThe **`unloadEventEnd`** read-only property returns a [DOMHighResTimeStamp] representing the time immediately after the current document's [`unload`](/en-US/docs/Web/API/Window/unload_event) event handler completes.",
+ "unloadeventstart": "\n\nThe **`unloadEventStart`** read-only property returns a [DOMHighResTimeStamp] representing the time immediately before the current document's [`unload`](/en-US/docs/Web/API/Window/unload_event) event handler starts."
+ }
+ },
+ "performanceobserver": {
+ "docs": " \n\nThe **`PerformanceObserver`** interface is used to observe performance measurement events and be notified of new [PerformanceEntry] as they are recorded in the browser's _performance timeline_.",
+ "properties": {
+ "disconnect": "\n\nThe **`disconnect()`** method of the [PerformanceObserver] interface is used to stop the performance observer from receiving any [PerformanceEntry] events.",
+ "observe": "\n\nThe **`observe()`** method of the **[PerformanceObserver]** interface is used to specify the set of performance entry types to observe.\n\nSee [PerformanceEntry.entryType] for a list of entry types and [PerformanceObserver.supportedEntryTypes_static] for a list of entry types the user agent supports.\n\nWhen a matching performance entry is recorded, the performance observer's callback function—set when creating the [PerformanceObserver]—is invoked.",
+ "supportedentrytypes_static": "\n\nThe static **`supportedEntryTypes`** read-only property of the [PerformanceObserver] interface returns an array of the [PerformanceEntry.entryType] values supported by the user agent.\n\nAs the list of supported entries varies per browser and is evolving, this property allows web developers to check which are available.",
+ "takerecords": "\n\nThe **`takeRecords()`** method of the [PerformanceObserver] interface returns the current list of [PerformanceEntry] stored in the performance observer, emptying it out."
+ }
+ },
+ "performanceobserverentrylist": {
+ "docs": "\n\nThe **`PerformanceObserverEntryList`** interface is a list of [PerformanceEntry] that were explicitly observed via the [PerformanceObserver.observe] method.",
+ "properties": {
+ "getentries": "\n\nThe **`getEntries()`** method of the [PerformanceObserverEntryList] interface returns a list of explicitly observed [PerformanceEntry] objects. The list's members are determined by the set of [PerformanceEntry.entryType] specified in the call to the [PerformanceObserver.observe] method. The list is available in the observer's callback function (as the first parameter in the callback).",
+ "getentriesbyname": "\n\nThe **`getEntriesByName()`** method of the [PerformanceObserverEntryList] interface returns a list of explicitly observed [PerformanceEntry] objects for a given [PerformanceEntry.name] and [PerformanceEntry.entryType]. The list's members are determined by the set of [PerformanceEntry.entryType] specified in the call to the [PerformanceObserver.observe] method. The list is available in the observer's callback function (as the first parameter in the callback).",
+ "getentriesbytype": "\n\nThe **`getEntriesByType()`** method of the [PerformanceObserverEntryList] returns a list of explicitly _observed_ [PerformanceEntry] objects for a given [PerformanceEntry.entryType]. The list's members are determined by the set of [PerformanceEntry.entryType] specified in the call to the [PerformanceObserver.observe] method. The list is available in the observer's callback function (as the first parameter in the callback)."
+ }
+ },
+ "performancepainttiming": {
+ "docs": "\n\nThe **`PerformancePaintTiming`** interface provides timing information about \"paint\" (also called \"render\") operations during web page construction. \"Paint\" refers to conversion of the render tree to on-screen pixels.\n\nThere are two key paint moments this API provides:\n\n- (FP): Time when anything is rendered. Note that the marking of the first paint is optional, not all user agents report it.\n- (FCP): Time when the first bit of DOM text or image content is rendered.\n\nA third key paint moment is provided by the [LargestContentfulPaint] API:\n\n- (LCP): Render time of the largest image or text block visible within the viewport, recorded from when the page first begins to load.\n\nThe data this API provides helps you minimize the time that users have to wait before they can see the site's content start to appear. Decreasing the time until these key paint moments make sites feel more responsive, performant, and engaging for your users.\n\nLike other Performance APIs, this API extends [PerformanceEntry].\n\n"
+ },
+ "performanceresourcetiming": {
+ "docs": " \n\nThe **`PerformanceResourceTiming`** interface enables retrieval and analysis of detailed network timing data regarding the loading of an application's resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an [XMLHttpRequest], , image, or script.",
+ "properties": {
+ "connectend": "\n\nThe **`connectEnd`** read-only property returns the [DOMHighResTimeStamp] immediately after the browser finishes establishing the connection to the server to retrieve the resource. The timestamp value includes the time interval to establish the transport connection, as well as other time intervals such as TLS handshake and [SOCKS](https://en.wikipedia.org/wiki/SOCKS) authentication.",
+ "connectstart": "\n\nThe **`connectStart`** read-only property returns the [DOMHighResTimeStamp] immediately before the user agent starts establishing the connection to the server to retrieve the resource.",
+ "decodedbodysize": "\n\nThe **`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.",
+ "deliverytype": "\n\nThe **`deliveryType`** read-only property is a string indicating how the resource was delivered — for example from the cache or from a navigational prefetch.",
+ "domainlookupend": "\n\nThe **`domainLookupEnd`** read-only property returns the [DOMHighResTimeStamp] immediately after the browser finishes the domain-name lookup for the resource.\n\nIf the user agent has the domain information in cache, [PerformanceResourceTiming.domainLookupStart] and [PerformanceResourceTiming.domainLookupEnd] represent the times when the user agent starts and ends the domain data retrieval from the cache.",
+ "domainlookupstart": "\n\nThe **`domainLookupStart`** read-only property returns the [DOMHighResTimeStamp] immediately before the browser starts the domain name lookup for the resource.",
+ "encodedbodysize": "\n\nThe **`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.",
+ "fetchstart": "\n\nThe **`fetchStart`** read-only property represents a [DOMHighResTimeStamp] immediately before the browser starts to fetch the resource.\n\nIf there are HTTP redirects, the property returns the time immediately before the user agent starts to fetch the final resource in the redirection.\n\nUnlike many other `PerformanceResourceTiming` properties, the `fetchStart` property is available for cross-origin requests without the need of the HTTP response header.",
+ "firstinterimresponsestart": "\n\nThe **`firstInterimResponseStart`** read-only property returns a [DOMHighResTimeStamp] immediately after the browser receives the first byte of the interim 1xx response (for example, 100 Continue or 103 Early Hints) from the server.\n\nThere is no _end_ property for `firstInterimResponseStart`.",
+ "initiatortype": "\n\nThe **`initiatorType`** read-only property is a string representing web platform feature that initiated the resource load.\n\n> **Note:** This property does not represent the type of content fetched. A `.css` file can be fetched using a `link` element leading to an `initiatorType` of `link`. When loading images using `background: url()` in a CSS file, the `initiatorType` will be `css` and not `img`.",
+ "nexthopprotocol": "\n\nThe **`nextHopProtocol`** read-only property is a string representing the network protocol used to fetch the resource, as identified by the [ALPN Protocol ID (RFC7301)](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids).\n\nWhen a proxy is used, if a tunnel connection is established, this property returns the ALPN Protocol ID of the tunneled protocol. Otherwise, this property returns the ALPN Protocol ID of the first hop to the proxy.",
+ "redirectend": "\n\nThe **`redirectEnd`** read-only property returns a [DOMHighResTimeStamp] immediately after receiving the last byte of the response of the last redirect.\n\nWhen fetching a resource, if there are multiple HTTP redirects, and any of the redirects have an origin that is different from the current document, and the timing allow check algorithm passes for each redirected resource, this property returns the time immediately after receiving the last byte of the response of the last redirect; otherwise, zero is returned.\n\nTo get the amount of redirects, see also [PerformanceNavigationTiming.redirectCount].",
+ "redirectstart": "\n\nThe **`redirectStart`** read-only property returns a [DOMHighResTimeStamp] representing the start time of the fetch which that initiates the redirect.\n\nIf there are HTTP redirects when fetching the resource and if any of the redirects are not from the same origin as the current document, but the timing allow check algorithm passes for each redirected resource, this property returns the starting time of the fetch that initiates the redirect; otherwise, zero is returned.\n\nTo get the amount of redirects, see also [PerformanceNavigationTiming.redirectCount].",
+ "renderblockingstatus": "\n\nThe **`renderBlockingStatus`** read-only property returns the render-blocking status of the resource.\n\nIt is useful to determine resources that:\n\n- weren't render-blocking and therefore could be delayed, or\n- were render-blocking and therefore could be preloaded.",
+ "requeststart": "\n\nThe **`requestStart`** read-only property returns a [DOMHighResTimeStamp] of the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request.\n\nThere is no _end_ property for `requestStart`. To measure the request time, calculate [PerformanceResourceTiming.responseStart] - `requestStart` (see the example below).",
+ "responseend": "\n\nThe **`responseEnd`** read-only property returns a [DOMHighResTimeStamp] immediately after the browser receives the last byte of the resource or immediately before the transport connection is closed, whichever comes first.\n\nUnlike many other `PerformanceResourceTiming` properties, the `responseEnd` property is available for cross-origin requests without the need of the HTTP response header.",
+ "responsestart": "\n\nThe **`responseStart`** read-only property returns a [DOMHighResTimeStamp] immediately after the browser receives the first byte of the response from the server, cache, or local resource.",
+ "responsestatus": " \n\nThe **`responseStatus`** read-only property represents the HTTP response status code returned when fetching the resource.\n\nThis property maps to [Response.status] from the [Fetch API](/en-US/docs/Web/API/Fetch_API).",
+ "secureconnectionstart": "\n\nThe **`secureConnectionStart`** read-only property returns a [DOMHighResTimeStamp] immediately before the browser starts the handshake process to secure the current connection. If a secure connection is not used, the property returns zero.",
+ "servertiming": " \n\nThe **`serverTiming`** read-only property returns an array of [PerformanceServerTiming] entries containing server timing metrics.\n\nServer timing metrics require the server to send the header. For example:\n\n```http\nServer-Timing: cache;desc=\"Cache Read\";dur=23.2\n```\n\nThe `serverTiming` entries can live on `navigation` and `resource` entries.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [PerformanceResourceTiming] interface is a ; it returns a JSON representation of the [PerformanceResourceTiming] object.",
+ "transfersize": "\n\nThe **`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](https://httpwg.org/specs/rfc7230.html#message.body)).\n\nIf the resource is fetched from a local cache, or if it is a cross-origin resource, this property returns zero.",
+ "workerstart": "\n\nThe **`workerStart`** read-only property of the [PerformanceResourceTiming] interface returns a\n[DOMHighResTimeStamp] immediately before dispatching the [FetchEvent] if a Service Worker thread is already running, or immediately before starting the Service Worker thread if it is not already running. If the resource is not intercepted by a Service Worker the property will always return 0."
+ }
+ },
+ "performanceservertiming": {
+ "docs": " \n\nThe **`PerformanceServerTiming`** interface surfaces server metrics that are sent with the response in the HTTP header.\n\nThis interface is restricted to the same origin, but you can use the 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.",
+ "properties": {
+ "description": "\n\nThe **`description`** read-only property returns a\nstring value of the server-specified metric description, or an empty\nstring.",
+ "duration": "\n\nThe **`duration`** read-only property returns a double that contains the server-specified metric duration, or the value `0.0`.",
+ "name": "\n\nThe **`name`** read-only property returns a\nstring value of the server-specified metric name.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [PerformanceServerTiming] interface is a ; it returns a JSON representation of the [PerformanceServerTiming] object."
+ }
+ },
+ "performancetiming": {
+ "docs": "\n\n> **Warning:** This interface is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming] interface instead.\n\nThe **`PerformanceTiming`** interface is a legacy interface kept for backwards compatibility and contains properties that offer performance timing information for various events which occur during the loading and use of the current page. You get a `PerformanceTiming` object describing your page using the [Performance.timing] property.",
+ "properties": {
+ "connectend": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.connectEnd`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, where the connection is opened network. If the\ntransport layer reports an error and the connection establishment is started again, the\nlast connection establishment end time is given. If a persistent connection is used, the\nvalue will be the same as [PerformanceTiming.fetchStart]. A connection is\nconsidered as opened when all secure connection handshake, or SOCKS authentication, is\nterminated.",
+ "connectstart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.connectStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, where the request to open a connection is sent to\nthe network. If the transport layer reports an error and the connection establishment is\nstarted again, the last connection establishment start time is given. If a persistent\nconnection is used, the value will be the same as\n[PerformanceTiming.fetchStart].",
+ "domainlookupend": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.domainLookupEnd`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, where the domain lookup is finished. If a\npersistent connection is used, or the information is stored in a cache or a local\nresource, the value will be the same as [PerformanceTiming.fetchStart].",
+ "domainlookupstart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.domainLookupStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, where the domain lookup starts. If a persistent\nconnection is used, or the information is stored in a cache or a local resource, the\nvalue will be the same as [PerformanceTiming.fetchStart].",
+ "domcomplete": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.domComplete`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, when the parser finished its work on the main\ndocument, that is when its [Document.readyState] changes to\n`'complete'` and the corresponding [Document/readystatechange_event] event is\nthrown.",
+ "domcontentloadedeventend": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.domContentLoadedEventEnd`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, right after all the scripts that need to be\nexecuted as soon as possible, in order or not, has been executed.",
+ "domcontentloadedeventstart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.domContentLoadedEventStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, right before the parser sent the\n[Document/DOMContentLoaded_event] event, that is right after all the scripts that need to be\nexecuted right after parsing has been executed.",
+ "dominteractive": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.domInteractive`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, when the parser finished its work on the main\ndocument, that is when its [Document.readyState] changes to\n`'interactive'` and the corresponding [Document/readystatechange_event] event is\nthrown.\n\nThis property can be used to measure the speed of loading websites that users\n_feels_. Nevertheless there are a few caveats that happens if scripts are\nblocking rendering and not loaded asynchronously or with custom Web fonts. [Check if you are in one of these cases](https://www.stevesouders.com/blog/2015/08/07/dominteractive-is-it-really/) before using this property as a proxy for the\nuser experience of a website's speed of loading.",
+ "domloading": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.domLoading`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, when the parser started its work, that is when its\n[Document.readyState] changes to `'loading'` and the\ncorresponding [Document/readystatechange_event] event is thrown.",
+ "fetchstart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.fetchStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, the browser is ready to fetch the document using\nan HTTP request. This moment is _before_ the check to any application cache.",
+ "loadeventend": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface's [PerformanceNavigationTiming.loadEventEnd] read-only property instead.\n\nThe legacy\n**`PerformanceTiming.loadEventEnd`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, when the [Window/load_event] 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.`",
+ "loadeventstart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface's [PerformanceNavigationTiming.loadEventStart] read-only property instead.\n\nThe legacy\n**`PerformanceTiming.loadEventStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, when the [Window/load_event] event was sent for the\ncurrent document. If this event has not yet been sent, it returns `0.`",
+ "msfirstpaint": "\n\n**`msFirstPaint`** is a read-only property which gets the time\nwhen the document loaded by the window object began to be displayed to the user.\n\nPut another way, `msFirstPaint` utilizes the browser to measure when the\nfirst content completes being painted in the window. It is available from JavaScript and\ncan be reported from the field.\n\nThis proprietary property is specific to Internet Explorer and Microsoft Edge.",
+ "navigationstart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete).\n> Please use the [PerformanceNavigationTiming] interface instead.\n\nThe legacy\n**`PerformanceTiming.navigationStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, right after the prompt for unload terminates on\nthe previous document in the same browsing context. If there is no previous document,\nthis value will be the same as [PerformanceTiming.fetchStart].",
+ "redirectend": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.redirectEnd`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, the last HTTP redirect is completed, that is when\nthe last byte of the HTTP response has been received. If there is no redirect, or if one\nof the redirect is not of the same origin, the value returned is `0`.",
+ "redirectstart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.redirectStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, the first HTTP redirect starts. If there is no\nredirect, or if one of the redirect is not of the same origin, the value returned is\n`0`.",
+ "requeststart": " \n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.requestStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, when the browser sent the request to obtain the\nactual document, from the server or from a cache. If the transport layer fails after the\nstart of the request and the connection is reopened, this property will be set to the\ntime corresponding to the new request.",
+ "responseend": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.responseEnd`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, when the browser received the last byte of the\nresponse, or when the connection is closed if this happened first, from the server from\na cache or from a local resource.",
+ "responsestart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.responseStart`**\nread-only property returns an `unsigned long long` representing the moment in\ntime (in milliseconds since the UNIX epoch) when the browser received the first byte of\nthe response from the server, cache, or local resource.",
+ "secureconnectionstart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming] interface instead.\n\nThe legacy\n**`PerformanceTiming.secureConnectionStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, where the secure connection handshake starts. If\nno such connection is requested, it returns `0`.",
+ "tojson": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy **`toJSON()`** method of the [PerformanceTiming] interface is a ; it returns a JSON representation of the [PerformanceTiming] object.",
+ "unloadeventend": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.unloadEventEnd`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, the [Window/unload_event] event handler finishes. If\nthere is no previous document, or if the previous document, or one of the needed\nredirects, is not of the same origin, the value returned is `0`.",
+ "unloadeventstart": "\n\n> **Warning:** This interface of this property is deprecated in the [Navigation Timing Level 2 specification](https://w3c.github.io/navigation-timing/#obsolete). Please use the [PerformanceNavigationTiming]\n> interface instead.\n\nThe legacy\n**`PerformanceTiming.unloadEventStart`**\nread-only property returns an `unsigned long long` representing the moment,\nin milliseconds since the UNIX epoch, the [Window/unload_event] event has been thrown. If\nthere is no previous document, or if the previous document, or one of the needed\nredirects, is not of the same origin, the value returned is `0`."
+ }
+ },
+ "periodicsyncevent": {
+ "docs": "\n\nThe **`PeriodicSyncEvent`** interface of the [Web Periodic Background Synchronization API] provides a way to run tasks in the service worker with network connectivity.\n\nAn instance of this event is passed to the [ServiceWorkerGlobalScope.periodicsync_event] 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.\n\n",
+ "properties": {
+ "tag": "\n\nThe **`tag`** read-only property of the\n[PeriodicSyncEvent] interface returns the developer-defined identifier for\nthe [PeriodicSyncEvent]. This is specified when calling the\n[PeriodicSyncManager.register] method of the\n[PeriodicSyncManager] interface. Multiple tags can be used by the web app\nto run different periodic tasks at different frequencies."
+ }
+ },
+ "periodicsyncmanager": {
+ "docs": "\n\nThe **`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].",
+ "properties": {
+ "gettags": "\n\nThe **`getTags()`** method of the\n[PeriodicSyncManager] interface returns a `Promise` that\nresolves with a list of `String` objects representing the tags that are\ncurrently registered for periodic syncing.",
+ "register": "\n\nThe **`register()`** method of the\n[PeriodicSyncManager] 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.",
+ "unregister": "\n\nThe **`unregister()`** method of the\n[PeriodicSyncManager] interface unregisters the periodic sync request\ncorresponding to the specified tag and returns a `Promise` that resolves\nwhen unregistration completes."
+ }
+ },
+ "periodicwave": {
+ "docs": "\n\nThe **`PeriodicWave`** interface defines a periodic waveform that can be used to shape the output of an [OscillatorNode].\n\n`PeriodicWave` has no inputs or outputs; it is used to define custom oscillators when calling [OscillatorNode.setPeriodicWave]. The `PeriodicWave` itself is created/returned by [BaseAudioContext.createPeriodicWave]."
+ },
+ "permissions": {
+ "docs": " \n\nThe Permissions interface of the [Permissions API](/en-US/docs/Web/API/Permissions_API) provides the core Permission API functionality, such as methods for querying and revoking permissions",
+ "properties": {
+ "query": "\n\nThe **`Permissions.query()`** method of the [Permissions] interface returns the state of a user permission on the global scope.",
+ "revoke": "\n\nThe **`Permissions.revoke()`** method of the\n[Permissions] interface reverts a currently set permission back to its\ndefault state, which is usually `prompt`.\nThis method is called on the global [Permissions] object\n[navigator.permissions]."
+ }
+ },
+ "permissionstatus": {
+ "docs": " \n\nThe **`PermissionStatus`** interface of the [Permissions API](/en-US/docs/Web/API/Permissions_API) provides the state of an object and an event handler for monitoring changes to said state.\n\n",
+ "properties": {
+ "change_event": "\n\nThe **`change`** event of the [PermissionStatus] interface fires whenever the [PermissionStatus.state] property changes.",
+ "name": "\n\nThe **`name`** read-only property of the [PermissionStatus] interface returns the name of a requested permission.",
+ "state": "\n\nThe **`state`** read-only property of the\n[PermissionStatus] interface returns the state of a requested permission.\nThis property returns one of `'granted'`, `'denied'`, or\n`'prompt'`."
+ }
+ },
+ "pictureinpictureevent": {
+ "docs": "\n\nThe **`PictureInPictureEvent`** interface represents picture-in-picture-related events, including [HTMLVideoElement/enterpictureinpicture_event], [HTMLVideoElement/leavepictureinpicture_event] and [PictureInPictureWindow/resize_event]\n\n",
+ "properties": {
+ "pictureinpicturewindow": "\n\nThe read-only **`pictureInPictureWindow`** property of the [PictureInPictureEvent] interface returns the [PictureInPictureWindow] the event relates to."
+ }
+ },
+ "pictureinpicturewindow": {
+ "docs": "\n\nThe **`PictureInPictureWindow`** interface represents an object able to programmatically obtain the **`width`** and **`height`** and **`resize event`** of the floating video window.\n\nAn object with this interface is obtained using the [HTMLVideoElement.requestPictureInPicture] promise return value.\n\n",
+ "properties": {
+ "height": "\n\nThe read-only **`height`** property of the [PictureInPictureWindow] interface returns the height of the floating video window in pixels.",
+ "resize_event": "\n\nThe **`resize`** event fires when the floating video window has been resized.\n\nThis event is not cancelable and does not bubble.",
+ "width": "\n\nThe read-only **`width`** property of the [PictureInPictureWindow] inbterface returns the width of the floating video window in pixels."
+ }
+ },
+ "plugin": {
+ "docs": "\n\nThe `Plugin` interface provides information about a browser plugin.\n\n> **Note:** Own properties of `Plugin` objects are no longer enumerable in the latest browser versions."
+ },
+ "pluginarray": {
+ "docs": "\n\nThe `PluginArray` interface is used to store a list of [Plugin] objects describing the available [plugins](/en-US/docs/Mozilla/Add-ons/Plugins); it's returned by the [Navigator.plugins] property. The `PluginArray` is not a JavaScript array, but has the `length` property and supports accessing individual items using bracket notation (`plugins[2]`), as well as via `item(index)` and `namedItem(\"name\")` methods.\n\n> **Note:** Own properties of `PluginArray` objects are no longer enumerable in the latest browser versions."
+ },
+ "pointerevent": {
+ "docs": "\n\nThe **`PointerEvent`** interface represents the state of a DOM event produced by a pointer such as the geometry of the contact point, the device type that generated the event, the amount of pressure that was applied on the contact surface, etc.\n\nA _pointer_ is a hardware agnostic representation of input devices (such as a mouse, pen or contact point on a touch-enable surface). The pointer can target a specific coordinate (or set of coordinates) on the contact surface such as a screen.\n\nA pointer's _hit test_ is the process a browser uses to determine the target element for a pointer event. Typically, this is determined by considering the pointer's location and also the visual layout of elements in a document on screen media.\n\n",
+ "properties": {
+ "altitudeangle": "\n\nThe **`altitudeAngle`** read-only property of the [PointerEvent] interface represents the angle between a transducer (a pointer or stylus) axis and the X-Y plane of a device screen.\nThe altitude angle describes whether the transducer is perpendicular to the screen, parallel, or at some angle in between.\n\nDepending on the specific hardware and platform, user agents will likely only receive one set of values for the transducer orientation relative to the screen plane — either [PointerEvent.tiltx] and [PointerEvent.tilty] or `altitudeAngle` and [PointerEvent.azimuthAngle].\n\n\n\nFor an additional illustration of this property, see [Figure 4 in the specification](https://w3c.github.io/pointerevents/#figure_altitudeAngle).",
+ "azimuthangle": "\n\nThe **`azimuthAngle`** read-only property of the [PointerEvent] interface represents the angle between the Y-Z plane and the plane containing both the transducer (pointer or stylus) axis and the Y axis.\n\nDepending on the specific hardware and platform, user agents will likely only receive one set of values for the transducer orientation relative to the screen plane — either [PointerEvent.tiltx] and [PointerEvent.tilty] or [PointerEvent.altitudeAngle] and `azimuthAngle`.\n\n\n\nFor an additional illustration of this property, see [Figure 5 in the specification](https://w3c.github.io/pointerevents/#figure_azimuthAngle).",
+ "getcoalescedevents": " \n\nThe **`getCoalescedEvents()`** method of the [PointerEvent] interface returns a sequence of `PointerEvent` instances that were coalesced (merged) into a single [Element/pointermove_event] or [Element/pointerrawupdate_event] event.\nInstead of a stream of many [Element/pointermove_event] events, user agents coalesce multiple updates into a single event.\nThis helps with performance as the user agent has less event handling to perform, but there is a reduction in the granularity and accuracy when tracking, especially with fast and large movements.\n\nThe **`getCoalescedEvents()`** method lets applications access all un-coalesced position changes for precise handling of pointer movement data where necessary.\nUn-coalesced position changes are desirable in drawing applications, for instance, where having access to all events helps to build smoother curves that better match the movement of a pointer.\n\nFor an illustration of coalesced events, see [Figure 7 in the specification](https://w3c.github.io/pointerevents/#figure_coalesced).",
+ "getpredictedevents": "\n\nThe **`getPredictedEvents()`** method of the [PointerEvent] interface returns a sequence of `PointerEvent` instances that are estimated future pointer positions.\nHow the predicted positions are calculated depends on the user agent, but they are based on past points, current velocity, and trajectory.\n\nApplications can use the predicted events to \"draw ahead\" to a predicted position which may reduce perceived latency depending on the application's interpretation of the predicted events and the use case.\n\nFor an illustration of predicted events, see [Figure 8 in the specification](https://w3c.github.io/pointerevents/#figure_predicted).",
+ "height": "\n\nThe **`height`** read-only property of the\n[PointerEvent] interface represents the height of the pointer's contact\ngeometry, along the y-axis (in CSS pixels). Depending on the source of the pointer\ndevice (for example a finger), for a given pointer, each event may produce a different\nvalue.\n\nIf the input hardware cannot report the contact geometry to the browser, the height\ndefaults to `1`.",
+ "isprimary": "\n\nThe **`isPrimary`** read-only property of the\n[PointerEvent] interface indicates whether or not the pointer device that\ncreated the event is the _primary_ pointer. It returns `true` if the\npointer that caused the event to be fired is the primary one and returns\n`false` otherwise.\n\nIn a multi-pointer scenario (such as a touch screen that supports more than one touch\npoint), this property is used to identify a _master pointer_ among the set of\nactive pointers for each pointer type. Only a primary pointer will produce\n_compatibility mouse events_. Authors who desire only single-pointer interaction\ncan achieve that by ignoring non-primary pointers.\n\nA pointer is considered primary if the pointer represents a mouse device. A pointer\nrepresenting pen input is considered the primary pen input if its\n[Element/pointerdown_event] event was dispatched when no other active pointers representing\npen input existed. A pointer representing touch input is considered the primary touch\ninput if its [Element/pointerdown_event] event was dispatched when no other active pointers\nrepresenting touch input existed.\n\nWhen two or more pointer device types are being used concurrently, multiple pointers\n(one for each [PointerEvent.pointerType]) are considered\nprimary. For example, a touch contact and a mouse cursor moved simultaneously will\nproduce pointers that are both considered primary. If there are multiple primary\npointers, these pointers will all produce _compatibility mouse events_ (see\n[Pointer_events] for more information about pointer, mouse and touch\ninteraction).",
+ "pointerid": "\n\nThe **`pointerId`** read-only property of the\n[PointerEvent] 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.",
+ "pointertype": "\n\nThe **`pointerType`** read-only property of the\n[PointerEvent] interface indicates the device type (mouse, pen, or touch)\nthat caused a given pointer event.",
+ "pressure": "\n\nThe **`pressure`** read-only property of the\n[PointerEvent] interface indicates the normalized pressure of the pointer\ninput.",
+ "tangentialpressure": "\n\nThe **`tangentialPressure`** read-only property of the\n[PointerEvent] interface represents the normalized tangential pressure of\nthe pointer input (also known as barrel pressure or [cylinder stress](https://en.wikipedia.org/wiki/Cylinder_stress)).",
+ "tiltx": "\n\nThe **`tiltX`** read-only property of the\n[PointerEvent] interface is the angle (in degrees) between the _Y-Z\nplane_ of the pointer and the screen. This property is typically only useful for a\npen/stylus pointer type.\n\nFor an illustration of this property see [Figure 2 in the specification](https://w3c.github.io/pointerevents/#dom-pointerevent-tiltx).",
+ "tilty": "\n\nThe **`tiltY`** read-only property of the\n[PointerEvent] interface is the angle (in degrees) between the _X-Z\nplane_ of the pointer and the screen. This property is typically only useful for a\npen/stylus pointer type.\n\nFor an illustration of this property, see [Figure 3 in the specification](https://w3c.github.io/pointerevents/#dom-pointerevent-tilty).",
+ "twist": "\n\nThe **`twist`** read-only property of the\n[PointerEvent] interface represents the clockwise rotation of the pointer\n(e.g., pen stylus) around its major axis, in degrees.",
+ "width": "\n\nThe **`width`** read-only property of the\n[PointerEvent] interface represents the width of the pointer's contact\ngeometry along the x-axis, measured in CSS pixels. Depending on the source of the\npointer device (such as a finger), for a given pointer, each event may produce a\ndifferent value.\n\nIf the input hardware cannot report the contact geometry to the browser, the width\ndefaults to `1`."
+ }
+ },
+ "popstateevent": {
+ "docs": "\n\n**`PopStateEvent`** is an interface for the [`popstate`](/en-US/docs/Web/API/Window/popstate_event) event.\n\nA `popstate` event is dispatched to the window every time the active history\nentry changes between two history entries for the same document. If the history entry\nbeing activated was created by a call to `history.pushState()` or was\naffected by a call to `history.replaceState()`, the `popstate`\nevent's `state` property contains a copy of the history entry's state object.\n\n",
+ "properties": {
+ "state": "\n\nThe **`state`** read-only property of the [PopStateEvent] interface represents the state stored when the event was created.\n\nPractically it is a value provided by the call to [history.pushState] or [history.replaceState]"
+ }
+ },
+ "positionsensorvrdevice": {
+ "docs": "\n\nThe **`PositionSensorVRDevice`** interface of the [WebVR API](/en-US/docs/Web/API/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.",
+ "properties": {
+ "getimmediatestate": "\n\nThe **`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\nFor most standard uses, you'll probably want to use [PositionSensorVRDevice.getState] instead.",
+ "getstate": "\n\nThe **`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].",
+ "resetsensor": "\n\nThe **`resetSensor()`** method of the [VRDisplay] interface _can be used to reset the sensor if desired, returning the_ position and orientation values to zero."
+ }
+ },
+ "presentation": {
+ "docs": "\n\nThe **`Presentation`** can be defined as two possible user agents in the context: _Controlling user agent_ and _Receiving user agent_.\n\nIn controlling browsing context, the `Presentation` interface provides a mechanism to override the browser default behavior of launching presentation to external screen. In receiving browsing context, `Presentation` interface provides the access to the available presentation connections.",
+ "properties": {
+ "defaultrequest": "\n\nIn a [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent), the **`defaultRequest`** attribute _MUST_ return the [default presentation request](https://www.w3.org/TR/presentation-api/#dfn-default-presentation-request) if any, otherwise `null`. In a [receiving browsing context](https://www.w3.org/TR/presentation-api/#dfn-receiving-browsing-context), it _MUST_ return `null`.\n\nIf set by the [controller](https://www.w3.org/TR/presentation-api/#dfn-controller), the value of the `defaultRequest` attribute _SHOULD_ be used by the [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) as the _default presentation request_ for that [controlling browsing context](https://www.w3.org/TR/presentation-api/#dfn-controlling-browsing-context). If the document object's [active sandboxing flag set](https://www.w3.org/TR/presentation-api/#dfn-active-sandboxing-flag-set) has the [sandboxed presentation browsing context flag](https://www.w3.org/TR/presentation-api/#sandboxed-presentation-browsing-context-flag) set, the [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) _SHOULD_ act as if the default request is not set for that browsing context. When the [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) wishes to initiate a [PresentationConnection] on the behalf of that browsing context, it _MUST_ [start a presentation](https://www.w3.org/TR/presentation-api/#dfn-start-a-presentation) using the [default presentation request](https://www.w3.org/TR/presentation-api/#dfn-default-presentation-request) for the [controller](https://www.w3.org/TR/presentation-api/#dfn-controller) (as if the controller had called [PresentationRequest.start]).\n\nThe [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) _SHOULD_ initiate presentation using the [default presentation request](https://www.w3.org/TR/presentation-api/#dfn-default-presentation-request), only when the user has expressed an intention to do so via a user gesture. For example, by clicking a button in the browser.\n\n> **Note:** Some [controlling user agents](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) may allow the user to initiate a default [presentation connection](https://www.w3.org/TR/presentation-api/#dfn-presentation-connection) and select a [presentation display](https://www.w3.org/TR/presentation-api/#dfn-presentation-display) with the same user gesture. For example, the browser chrome could allow the user to pick a display from a menu, or allow the user to tap on an [Near Field Communications (NFC)](https://nfc-forum.org/) enabled display. In this case, when the [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) asks for permission while [starting a presentation](https://www.w3.org/TR/presentation-api/#dfn-start-a-presentation), the browser could offer that display as the default choice, or consider the gesture as granting permission for the display and bypass display selection entirely.\n\n> **Note:** If a [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) does not support initiation of a [presentation connection](https://www.w3.org/TR/presentation-api/#dfn-presentation-connection) from the browser chrome, setting `defaultRequest` will have no effect.",
+ "receiver": "\n\nThe **read-only** [Presentation] attribute\n`receiver`, which is only available in browser contexts which are\n**receiving** a presentation, returns the\n[PresentationReceiver] object which can be used to access and communicate\nwith the browser context which controls the presentation. This property is always\n`null` when accessed from outside a browser context which is receiving a\npresentation."
+ }
+ },
+ "presentationavailability": {
+ "docs": "\n\nA **`PresentationAvailability`** object is associated with available [presentation displays](https://www.w3.org/TR/presentation-api/#dfn-presentation-display) and represents the _presentation display availability_ for a presentation request. If the [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) can [monitor the list of available presentation displays](https://www.w3.org/TR/presentation-api/#dfn-monitor-the-list-of-available-presentation-displays) in the background (without a pending request to `start()`), the `PresentationAvailability` object _MUST_ be implemented in a [controlling browsing context](https://www.w3.org/TR/presentation-api/#dfn-controlling-browsing-context).\n\nThe `value` attribute _MUST_ return the last value it was set to. The value is updated by the [monitor the list of available presentation displays](https://www.w3.org/TR/presentation-api/#dfn-monitor-the-list-of-available-presentation-displays) algorithm.\n\nThe `onchange` attribute is an [event handler](https://www.w3.org/TR/presentation-api/#dfn-event-handler) whose corresponding [event handler event type](https://www.w3.org/TR/presentation-api/#dfn-event-handler-event-type) is `change`.\n\n",
+ "properties": {
+ "value": "\n\nThe **`value`** attribute _MUST_ return the last value from which it was set. The value is updated by the [monitor the list of available presentation displays](https://www.w3.org/TR/presentation-api/#dfn-monitor-the-list-of-available-presentation-displays) algorithm.\n\nThe `onchange` attribute is an [event handler](https://www.w3.org/TR/presentation-api/#dfn-event-handler) whose corresponding [event handler event type](https://www.w3.org/TR/presentation-api/#dfn-event-handler-event-type) is `change`."
+ }
+ },
+ "presentationconnection": {
+ "docs": "\n\nThe **`PresentationConnection`** interface of the [Presentation API](/en-US/docs/Web/API/Presentation_API) provides methods and properties for managing a single presentation. Each [presentation connection](https://www.w3.org/TR/presentation-api/#dfn-presentation-connection) is represented by a `PresentationConnection` object. Both the [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) and [receiving user agent](https://www.w3.org/TR/presentation-api/#dfn-receiving-user-agent) _MUST_ implement `PresentationConnection`.\n\n",
+ "properties": {
+ "binarytype": "\n\nWhen a [PresentationConnection] object is created, its `binaryType` IDL attribute _MUST_ be set to the string `\"arraybuffer\"`. Upon getting, the attribute _MUST_ return its most recent value (the value it was last set as). Upon setting, the user agent _MUST_ set the IDL attribute to the new value.\n\n> **Note:** The `binaryType` attribute allows authors to control how binary data is exposed to scripts. By setting the attribute to `\"blob\"`, binary data is returned in `Blob` form; by setting it to `\"arraybuffer\"`, it is returned in `ArrayBuffer` form. The attribute defaults to `\"arraybuffer\"`. This attribute has no effect on data sent in a string form.",
+ "close": "\n\nWhen the `close()` method is called on a [PresentationConnection], the begins the process of closing the connection by sending an empty `closeMessage` with the `closeReason` set to `closed`.",
+ "id": "\n\nThe **`id`** attribute specifies the [presentation identifier](https://www.w3.org/TR/presentation-api/#dfn-presentation-identifier) of a [presentation connection](https://www.w3.org/TR/presentation-api/#dfn-presentation-connection).",
+ "send": "\n\nThe **`send()`** method of the\n[PresentationConnection] interface tells a controlling browsing context to\nsend binary or text data to a presenting browsing context.",
+ "state": "\n\nThe **`state`** attribute reflects the [presentation connection](https://www.w3.org/TR/presentation-api/#dfn-presentation-connection)'s current state. Depending on the current [`PresentationConnectionState`](https://www.w3.org/TR/presentation-api/#idl-def-presentationconnectionstate), the `state` attribute can hold one of the following values.\n\n- **`connecting`**: The user agent is attempting to [establish a presentation connection](https://www.w3.org/TR/presentation-api/#dfn-establish-a-presentation-connection) with the [destination browsing context](https://www.w3.org/TR/presentation-api/#dfn-destination-browsing-context). This is the initial state when a [`PresentationConnection`](https://www.w3.org/TR/presentation-api/#idl-def-presentationconnection) object is created.\n- **`connected`**: The [presentation connection](https://www.w3.org/TR/presentation-api/#dfn-presentation-connection) is established and communication is possible.\n- **`closed`**: The [presentation connection](https://www.w3.org/TR/presentation-api/#dfn-presentation-connection) has been closed or could not be opened. The connection may be reopened by calling [`reconnect()`](https://www.w3.org/TR/presentation-api/#dom-presentationrequest-reconnect). No communication is possible in this state.\n- **`terminated`**: The [receiving browsing context](https://www.w3.org/TR/presentation-api/#dfn-receiving-browsing-context) has terminated. Any [presentation connection](https://www.w3.org/TR/presentation-api/#dfn-presentation-connection) to that [presentation](https://www.w3.org/TR/presentation-api/#dfn-presentation) has also terminated and cannot be reopened. No communication is possible.",
+ "terminate": "\n\nWhen the `terminate()` method is called on a [PresentationConnection], the begins the process of terminating the presentation. The exact process differs depending on whether `terminate()` is called in the controlling or the presenting context.",
+ "url": "`Presentation API`\n\nThe **`url`** readonly property of the\n[PresentationConnection] interface returns the URL used to create or\nreconnect to the presentation."
+ }
+ },
+ "presentationconnectionavailableevent": {
+ "docs": "\n\nThe **`PresentationConnectionAvailableEvent`** interface of the [Presentation API](/en-US/docs/Web/API/Presentation_API) is fired on a [PresentationRequest] when a connection associated with the object is created.\n\nA [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) [fires](https://www.w3.org/TR/presentation-api/#dfn-firing-an-event) a [trusted event](https://www.w3.org/TR/presentation-api/#dfn-trusted-event) named [`connectionavailable`](https://www.w3.org/TR/presentation-api/#dfn-connectionavailable) on a [`PresentationRequest`](https://www.w3.org/TR/presentation-api/#idl-def-presentationrequest) when a connection associated with the object is created. It is fired at the `PresentationRequest` instance, using the [`PresentationConnectionAvailableEvent`](https://www.w3.org/TR/presentation-api/#idl-def-presentationconnectionavailableevent) interface, with the [`connection`](https://www.w3.org/TR/presentation-api/#idl-def-presentationconnectionavailableevent-connection) attribute set to the [`PresentationConnection`](https://www.w3.org/TR/presentation-api/#idl-def-presentationconnection) object that was created. The event is fired for each connection that is created for the [controller](https://www.w3.org/TR/presentation-api/#dfn-controller), either by the [controller](https://www.w3.org/TR/presentation-api/#dfn-controller) calling `start()` or `reconnect()`, or by the [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent) creating a connection on the controller's behalf via [`defaultRequest`](https://www.w3.org/TR/presentation-api/#dom-presentation-defaultrequest).\n\n",
+ "properties": {
+ "connection": "\n\nWhen an incoming connection is created, a [receiving user agent](https://www.w3.org/TR/presentation-api/#dfn-receiving-user-agent) [fires](https://www.w3.org/TR/presentation-api/#dfn-firing-an-event) a [trusted event](https://www.w3.org/TR/presentation-api/#dfn-trusted-event), named [`connectionavailable`](https://www.w3.org/TR/presentation-api/#dfn-connectionavailable), on a [`PresentationReceiver`](https://www.w3.org/TR/presentation-api/#idl-def-presentationreceiver). The [trusted event](https://www.w3.org/TR/presentation-api/#dfn-trusted-event) is fired at the [presentation controller's monitor](https://www.w3.org/TR/presentation-api/#dfn-presentation-controllers-monitor), using the [`PresentationConnectionAvailableEvent`](https://www.w3.org/TR/presentation-api/#idl-def-presentationconnectionavailableevent) interface, with the [`connection`](https://www.w3.org/TR/presentation-api/#idl-def-presentationconnectionavailableevent-connection) attribute set to the [`PresentationConnection`](https://www.w3.org/TR/presentation-api/#idl-def-presentationconnection) object that was created.\n\nThe event is fired for all connections that are created when [monitoring incoming presentation connections](https://www.w3.org/TR/presentation-api/#dfn-monitoring-incoming-presentation-connections)."
+ }
+ },
+ "presentationconnectioncloseevent": {
+ "docs": "\n\nThe **`PresentationConnectionCloseEvent`** interface of the [Presentation API](/en-US/docs/Web/API/Presentation_API) is fired on a [PresentationConnection] when it is closed.\n\n"
+ },
+ "presentationconnectionlist": {
+ "docs": "\n\n`PresentationConnectionList` is the collection of incoming presentation connections.\n\n"
+ },
+ "presentationreceiver": {
+ "docs": "\n\nThe **`PresentationReceiver`** interface of the [Presentation API](/en-US/docs/Web/API/Presentation_API) provides a means for a receiving browsing context to access controlling browsing contexts and communicate with them."
+ },
+ "presentationrequest": {
+ "docs": "\n\nA `PresentationRequest` object is used to initiate or reconnect to a presentation made by a [controlling browsing context](https://www.w3.org/TR/presentation-api/#dfn-controlling-browsing-context). The `PresentationRequest` object _MUST_ be implemented in a [controlling browsing context](https://www.w3.org/TR/presentation-api/#dfn-controlling-browsing-context) provided by a [controlling user agent](https://www.w3.org/TR/presentation-api/#dfn-controlling-user-agent).\n\nWhen a `PresentationRequest` is constructed, the given `urls` _MUST_ be used as the list of _presentation request URLs_ which are each a possible [presentation URL](https://www.w3.org/TR/presentation-api/#dfn-presentation-url) for the `PresentationRequest` instance.\n\n",
+ "properties": {
+ "getavailability": "\n\nWhen the `getAvailability()` method is called, the user agent _MUST_ run the following steps:\n\n- Input\n - : _presentationUrls_, a list of [presentation request URLs](https://www.w3.org/TR/presentation-api/#dfn-presentation-request-urls)\n- Output\n - : _P_, a [Promise](https://www.w3.org/TR/presentation-api/#dfn-promise)\n\n1. If one of the following conditions is true:\n\n - The result of running the [prohibits mixed security contexts algorithm](https://www.w3.org/TR/presentation-api/#dfn-prohibits-mixed-security-contexts-algorithm) on the document's [settings object](https://www.w3.org/TR/presentation-api/#dfn-settings-object) is `\"Prohibits Mixed Security Contexts\"` and _presentationUrl_ is an [a priori unauthenticated URL](https://www.w3.org/TR/presentation-api/#dfn-a-priori-unauthenticated-url).\n - The document object's [active sandboxing flag set](https://www.w3.org/TR/presentation-api/#dfn-active-sandboxing-flag-set) has the [sandboxed presentation browsing context flag](https://www.w3.org/TR/presentation-api/#sandboxed-presentation-browsing-context-flag) set.\n\n Run the following substeps:\n\n 1. Return a [Promise](https://www.w3.org/TR/presentation-api/#dfn-promise) rejected with a `SecurityError` [DOMException].\n 2. Abort these steps.\n\n2. Let _P_ be a new [Promise](https://www.w3.org/TR/presentation-api/#dfn-promise).\n3. Return _P_, but continue running these steps [in parallel](https://www.w3.org/TR/presentation-api/#dfn-in-parallel).\n4. If the user agent is unable to [monitor the list of available presentation displays](https://www.w3.org/TR/presentation-api/#dfn-monitor-the-list-of-available-presentation-displays) for the entire duration of the [controlling browsing context](https://www.w3.org/TR/presentation-api/#dfn-controlling-browsing-context) (e.g., because the user has disabled this feature), then:\n\n 1. [Resolve](https://www.w3.org/TR/presentation-api/#dfn-resolving-a-promise) _P_ with a new `PresentationAvailability` object with its `value` property set to `false`.\n 2. Abort all the remaining steps.\n\n5. If the user agent is unable to continuously [monitor the list of available presentation displays](https://www.w3.org/TR/presentation-api/#dfn-monitor-the-list-of-available-presentation-displays) but can find presentation displays in order to start a connection, then:\n\n 1. [Reject](https://www.w3.org/TR/presentation-api/#dfn-rejecting-a-promise) _P_ with a `NotSupportedError` [DOMException].\n 2. Abort all the remaining steps.\n\n6. If there exists a tuple (_A_, _presentationUrls_) in the [set of availability objects](https://www.w3.org/TR/presentation-api/#dfn-set-of-availability-objects), then:\n\n 1. [Resolve](https://www.w3.org/TR/presentation-api/#dfn-resolving-a-promise) _P_ with _A_.\n 2. Abort all the remaining steps.\n\n7. Let _A_ be a new `PresentationAvailability` object with its `value` property set as follows:\n\n 1. `false` if the [list of available presentation displays](https://www.w3.org/TR/presentation-api/#dfn-list-of-available-presentation-displays) is empty.\n 2. `true` if there is at least one [compatible presentation display](https://www.w3.org/TR/presentation-api/#dfn-compatible-presentation-display) for some member of _presentationUrls_. Meaning there is an entry _(presentationUrl, display)_ in the [list of available presentation displays](https://www.w3.org/TR/presentation-api/#dfn-list-of-available-presentation-displays) for some _presentationUrl_ in _presentationUrls_.\n 3. `false` otherwise.\n\n8. Create a tuple (_A_, _presentationUrls_) and add it to the [set of availability objects](https://www.w3.org/TR/presentation-api/#dfn-set-of-availability-objects).\n9. Run the algorithm to [monitor the list of available presentation displays](https://www.w3.org/TR/presentation-api/#dfn-monitor-the-list-of-available-presentation-displays).\n10. [Resolve](https://www.w3.org/TR/presentation-api/#dfn-resolving-a-promise) _P_ with _A_.",
+ "reconnect": "\n\nWhen the `reconnect(presentationId)` method is called on a `PresentationRequest` _presentationRequest_, the [user agent](https://www.w3.org/TR/presentation-api/#dfn-user-agents) _MUST_ run the following steps to _reconnect to a presentation_:",
+ "start": "`Presentation API`\n\nThe **`start()`** property of the [PresentationRequest] interface returns a `Promise` that resolves with a [PresentationConnection] after the user agent prompts the user to select a display and grant permission to use that display."
+ }
+ },
+ "processinginstruction": {
+ "docs": "\n\nThe **`ProcessingInstruction`** interface represents a [processing instruction](https://www.w3.org/TR/xml/#sec-pi); 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\nA processing instruction may be different than the [XML declaration](/en-US/docs/Web/XML/XML_introduction#xml_declaration).\n\n> **Note:** User-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\nFor example:\n\n```html\n<?xml version=\"1.0\"?>\n```\n\nis a processing instruction whose `target` is `xml`.\n\n",
+ "properties": {
+ "sheet": "\n\nThe read-only **`sheet`** property of the [ProcessingInstruction] interface\ncontains the stylesheet associated to the `ProcessingInstruction`.\n\nThe `xml-stylesheet` processing instruction is used to associate a stylesheet in an XML file.",
+ "target": "\n\nThe read-only **`target`** property of the [ProcessingInstruction] interface\nrepresent the application to which the `ProcessingInstruction` is targeted.\n\nFor example:\n\n```html\n<?xml version=\"1.0\"?>\n```\n\nis a processing instruction whose `target` is `xml`."
+ }
+ },
+ "progressevent": {
+ "docs": "\n\nThe **`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`).\n\n",
+ "properties": {
+ "lengthcomputable": "\n\nThe\n**`ProgressEvent.lengthComputable`** read-only property is a\nboolean flag indicating if the resource concerned by the\n[ProgressEvent] has a length that can be calculated. If not, the\n[ProgressEvent.total] property has no significant value.",
+ "loaded": "\n\nThe **`ProgressEvent.loaded`** read-only property is an integer\nrepresenting the amount of work already performed by the underlying process. The ratio\nof work done can be calculated with the property and `ProgressEvent.total`.\nWhen downloading a resource using HTTP, this value is specified in bytes (not bits), and only represents the part of the content\nitself, not headers and other overhead.",
+ "total": "\n\nThe **`ProgressEvent.total`** read-only property is an unsigned\n64-bit integer value indicating the total size of the data being processed or\ntransmitted. In the case of an HTTP transmission, this is the size of the body of the\nmessage (the `Content-Length`), and does not include headers and other\noverhead.\n\nIf the event's [ProgressEvent.lengthComputable]\nproperty is `false`, this value is meaningless and should be ignored."
+ }
+ },
+ "promiserejectionevent": {
+ "docs": "\n\nThe **`PromiseRejectionEvent`** interface represents events which are sent to the global script context when JavaScript `Promise`s are rejected. These events are particularly useful for telemetry and debugging purposes.\n\nFor details, see [Promise rejection events](/en-US/docs/Web/JavaScript/Guide/Using_promises#promise_rejection_events).\n\n",
+ "properties": {
+ "promise": "\n\nThe [PromiseRejectionEvent] interface's\n**`promise`** read-only property indicates the JavaScript\n`Promise` which was rejected. You can examine the event's\n[PromiseRejectionEvent.reason] property to learn why the promise was\nrejected.",
+ "reason": "\n\nThe [PromiseRejectionEvent] **`reason`** read-only\nproperty is any JavaScript value or `Object` which provides the reason\npassed into `Promise.reject()`. This in theory provides information about\nwhy the promise was rejected."
+ }
+ },
+ "publickeycredential": {
+ "docs": "\n\nThe **`PublicKeyCredential`** interface provides information about a public key / private key pair, which is a credential for logging in to a service using an un-phishable and data-breach resistant asymmetric key pair instead of a password. It inherits from [Credential], and is part of the [Web Authentication API](/en-US/docs/Web/API/Web_Authentication_API) extension to the [Credential Management API](/en-US/docs/Web/API/Credential_Management_API).\n\n> **Note:** This API is restricted to top-level contexts. Use from within an `iframe` element will not have any effect.",
+ "properties": {
+ "authenticatorattachment": "\n\nThe **`authenticatorAttachment`** read-only property of the [PublicKeyCredential] interface is a string that indicates the general category of authenticator used during the associated [CredentialsContainer.create] or [CredentialsContainer.get] call.",
+ "getclientextensionresults": "\n\nThe **`getClientExtensionResults()`** method of the\n[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\nDuring the creation or fetching of a `PublicKeyCredential` (via\n[CredentialsContainer.create] and\n[CredentialsContainer.get] respectively), it is possible\nto 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](/en-US/docs/Web/API/Web_Authentication_API/WebAuthn_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](/en-US/docs/Web/API/Web_Authentication_API/Authenticator_data) available in [AuthenticatorAssertionResponse.authenticatorData].",
+ "id": "\n\nThe **`id`** read-only property of the\n[PublicKeyCredential] interface is a string, inherited\nfrom [Credential], which represents the identifier of the current\n`PublicKeyCredential` instance.\n\nThis property is a [base64url encoded](/en-US/docs/Glossary/Base64) version of [PublicKeyCredential.rawId].\n\n> **Note:** This property may only be used in top-level contexts and will\n> not be available in an `iframe` for example.",
+ "isconditionalmediationavailable": "\n\nThe **`isConditionalMediationAvailable()`** static method of the [PublicKeyCredential] interface returns a `Promise` which resolves to `true` if conditional mediation is available.\n\nConditional mediation, if available, results in any discovered credentials being presented to the user in a non-modal dialog box along with an indication of the origin requesting credentials. This is requested by including `mediation: 'conditional'` in your `get()` call. In practice, this means autofilling available credentials; you need to include `autocomplete=\"webauthn\"` on your form fields so that they will show the WebAuthn sign-in options.\n\nA conditional `get()` call does not show the browser UI and remains pending until the user picks an account to sign-in with from available autofill suggestions:\n\n- If the user makes a gesture outside of the dialog, it closes without resolving or rejecting the Promise and without causing a user-visible error condition.\n- If the user selects a credential, that credential is returned to the caller.\n\nThe prevent silent access flag (see [CredentialsContainer.preventSilentAccess]) is treated as being `true` regardless of its actual value: the conditional behavior always involves user mediation of some sort if applicable credentials are discovered.\n\n> **Note:** If no credentials are discovered, the non-modal dialog will not be visible, and the user agent can prompt the user to take action in a way that depends on the type of credential (for example, to insert a device containing credentials).",
+ "isuserverifyingplatformauthenticatoravailable_static": "\n\nThe **`isUserVerifyingPlatformAuthenticatorAvailable()`** static method of the [PublicKeyCredential] interface returns a `Promise` which resolves to `true` if a user-verifying platform authenticator is present.\n\nA user-verifying platform authenticator is a kind of multi-factor authenticator that is part of the client device (it is generally not removable) and that involves an action from the user in order to identify them. Common user-verifying platform authenticators include:\n\n- Touch ID or Face ID (macOS and iOS)\n- Windows Hello (Windows)\n- Device unlock (fingerprint, face, PIN, etc.) on Android\n\n> **Note:** This method may only be used in top-level contexts and will not be available in an `iframe` for example.",
+ "parsecreationoptionsfromjson_static": " \n\nThe **`parseCreationOptionsFromJSON()`** static method of the [PublicKeyCredential] interface converts a into its corresponding [`publicKey` create credentials options object structure](/en-US/docs/Web/API/CredentialsContainer/create#publickey_object_structure).\n\nThe method is a convenience function for converting credential options information provided by a relying party server to the form that a web app can use to [create a credential](/en-US/docs/Web/API/Web_Authentication_API#creating_a_key_pair_and_registering_a_user).",
+ "parserequestoptionsfromjson_static": " \n\nThe **`parseRequestOptionsFromJSON()`** static method of the [PublicKeyCredential] interface converts a into its corresponding [`publicKey` request credentials options object structure](/en-US/docs/Web/API/CredentialsContainer/get#publickey_object_structure).\n\nThe method is a convenience function for converting information provided by a relying server to a web app in order to request an existing credential.",
+ "rawid": "\n\nThe **`rawId`** read-only property of the\n[PublicKeyCredential] interface is an `ArrayBuffer` object\ncontaining the identifier of the credentials.\n\nThe [PublicKeyCredential.id] property is a [base64url encoded](/en-US/docs/Glossary/Base64) version of this identifier.\n\n> **Note:** This property may only be used in top-level contexts and will\n> not be available in an `iframe` for example.",
+ "response": "\n\nThe **`response`** read-only property of the\n[PublicKeyCredential] interface is an [AuthenticatorResponse]\nobject which is sent from the authenticator to the user agent for the creation/fetching\nof credentials. The information contained in this response will be used by the relying\nparty's server to verify the demand is legitimate.\n\nAn `AuthenticatorResponse` is either:\n\n- an [AuthenticatorAttestationResponse] (when the\n `PublicKeyCredential` is created via\n [CredentialsContainer.create])\n- an [AuthenticatorAssertionResponse] (when the\n `PublicKeyCredential` is obtained via\n [CredentialsContainer.get]).\n\nIn order to validate the _creation_ of credentials, a relying party's server\nneeds both:\n\n- this response\n- the extensions of the client (given by\n [PublicKeyCredential.getClientExtensionResults]) to validate the\n demand.\n\n> **Note:** When validating the fetching of existing credentials, the\n> whole `PublicKeyCredential` object and the client extensions are necessary\n> for the relying party's server.\n\n> **Note:** This property may only be used in top-level contexts and will\n> not be available in an `iframe` for example.",
+ "tojson": " \n\nThe **`toJSON()`** method of the [PublicKeyCredential] interface returns a of a [PublicKeyCredential].\n\nThe properties of the returned object depend on whether the credential is returned by [`navigator.credentials.create()`](/en-US/docs/Web/API/CredentialsContainer/create) when [creating a key pair and registering a user](/en-US/docs/Web/API/Web_Authentication_API#creating_a_key_pair_and_registering_a_user), or [`navigator.credentials.get()`](/en-US/docs/Web/API/CredentialsContainer/get) when [authenticating a user](/en-US/docs/Web/API/Web_Authentication_API#authenticating_a_user).\n\nThis method is automatically invoked when web app code calls [`JSON.stringify()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) to serialize a [PublicKeyCredential] so that it can be sent to relying party server when registering or authenticating a user.\nIt not intended to be called directly in web app code."
+ }
+ },
+ "pushevent": {
+ "docs": "\n\nThe **`PushEvent`** interface of the [Push API](/en-US/docs/Web/API/Push_API) represents a push message that has been received. This event is sent to the [global scope](/en-US/docs/Web/API/ServiceWorkerGlobalScope) of a [ServiceWorker]. It contains the information sent from an application server to a [PushSubscription].\n\n",
+ "properties": {
+ "data": "\n\nThe `data` read-only property of the **`PushEvent`** interface returns a reference to a [PushMessageData] object containing data sent to the [PushSubscription]."
+ }
+ },
+ "pushmanager": {
+ "docs": "\n\nThe **`PushManager`** interface of the [Push API](/en-US/docs/Web/API/Push_API) provides a way to receive notifications from third-party servers as well as request URLs for push notifications.\n\nThis interface is accessed via the [ServiceWorkerRegistration.pushManager] property.",
+ "properties": {
+ "getsubscription": "\n\nThe **`PushManager.getSubscription()`** method of the [PushManager] interface retrieves an existing push subscription.\n\nIt 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.",
+ "haspermission": "\n\nThe **`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:** This feature has been superseded by the [PushManager.permissionState] method.",
+ "permissionstate": "\n\nThe **`permissionState()`** method of the\n[PushManager] 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:** As of Firefox 44, the permissions for [Notifications](/en-US/docs/Web/API/Notifications_API) and [Push](/en-US/docs/Web/API/Push_API) have been merged. If permission is\n> granted for notifications, push will also be enabled.",
+ "register": "\n\nThe **`register`** method is used to ask the system to request\na new endpoint for notifications.\n\n> **Note:** This method has been superseded by [PushManager.subscribe].",
+ "registrations": "\n\nThe **`registrations`** method is used to ask the system about\nexisting push endpoint registrations.\n\n> **Note:** This method has been superseded by the [PushManager.getSubscription] method.",
+ "subscribe": "\n\nThe **`subscribe()`** method of the [PushManager]\ninterface subscribes to a push service.\n\nIt 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.",
+ "supportedcontentencodings_static": "\n\nThe **`supportedContentEncodings`** read-only static property of the\n[PushManager] interface returns an array of supported content codings that\ncan be used to encrypt the payload of a push message.",
+ "unregister": "\n\nThe **`unregister()`** method was used to ask the system to\nunregister and delete the specified endpoint.\n\n> **Note:** In the updated API, a subscription can be unregistered via the [PushSubscription.unsubscribe] method."
+ }
+ },
+ "pushmessagedata": {
+ "docs": "\n\nThe **`PushMessageData`** interface of the [Push API](/en-US/docs/Web/API/Push_API) provides methods which let you retrieve the push data sent by a server in various formats.\n\nUnlike the similar methods in the [Fetch API](/en-US/docs/Web/API/Fetch_API), which only allow the method to be invoked once, these methods can be called multiple times.\n\nMessages 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.",
+ "properties": {
+ "arraybuffer": "\n\nThe **`arrayBuffer()`** method of the [PushMessageData] interface extracts push message data as an `ArrayBuffer` object.",
+ "blob": "\n\nThe **`blob()`** method of the [PushMessageData] interface extracts push message data as a [Blob] object.",
+ "json": "\n\nThe **`json()`** method of the [PushMessageData] interface extracts push message data by parsing it as a [JSON](/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON) string and returning the result.",
+ "text": "\n\nThe **`text()`** method of the [PushMessageData] interface extracts push message data as a plain text string."
+ }
+ },
+ "pushsubscription": {
+ "docs": "\n\nThe `PushSubscription` interface of the [Push API](/en-US/docs/Web/API/Push_API) provides a subscription's URL endpoint and allows unsubscribing from a push service.\n\nAn instance of this interface can be serialized.",
+ "properties": {
+ "endpoint": "\n\nThe **`endpoint`** read-only property of the\n[PushSubscription] interface returns a string containing\nthe endpoint associated with the push subscription.\n\nThe 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.",
+ "expirationtime": "\n\nThe **`expirationTime`** read-only property of the\n[PushSubscription] interface returns a [DOMHighResTimeStamp]\nof the subscription expiration time associated with the push subscription, if there is\none, or `null` otherwise.",
+ "getkey": "\n\nThe `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.",
+ "options": "\n\nThe **`options`** read-only property\nof the [PushSubscription] interface is an object containing the options\nused to create the subscription.",
+ "subscriptionid": "\n\nThe **`subscriptionId`** read-only property of the\n[PushSubscription] interface returns a string containing\nthe subscription ID associated with the push subscription.\n\n> **Warning:** Instead of this feature, use the [PushSubscription.endpoint] property on the same interface.",
+ "tojson": "\n\nThe `toJSON()` method of the [PushSubscription] interface is a\nstandard serializer: it returns a JSON representation of the subscription properties,\nproviding a useful shortcut.",
+ "unsubscribe": "\n\nThe `unsubscribe()` method of the [PushSubscription] interface\nreturns a `Promise` that resolves to a boolean value when the\ncurrent subscription is successfully unsubscribed."
+ }
+ },
+ "pushsubscriptionoptions": {
+ "docs": "`Push API`\n\nThe **`PushSubscriptionOptions`** interface of the [Push API] represents the options associated with a push subscription.\n\nThe read-only `PushSubscriptionOptions` object is returned by calling [PushSubscription.options] on a [PushSubscription]. This interface has no constructor of its own.",
+ "properties": {
+ "applicationserverkey": "`Push API`\n\nThe **`applicationServerKey`** read-only property of the [PushSubscriptionOptions] interface contains the public key used by the push server.",
+ "uservisibleonly": "`Push API`\n\nThe **`userVisibleOnly`** read-only property of the [PushSubscriptionOptions] interface indicates if the returned push subscription will only be used for messages whose effect is made visible to the user."
+ }
+ },
+ "radionodelist": {
+ "docs": "\n\nThe **`RadioNodeList`** interface represents a collection of elements in a `form` or a `fieldset` element, returned by a call to [HTMLFormControlsCollection.namedItem].\n\n",
+ "properties": {
+ "value": "\n\nIf the underlying element collection contains radio buttons, the\n**`RadioNodeList.value`** property represents the checked radio\nbutton. On retrieving the `value` property, the `value` of the\ncurrently `checked` radio button is returned as a string. If the collection\ndoes not contain any radio buttons or none of the radio buttons in the collection is in\n`checked` state, the empty string is returned. On setting the\n`value` property, the first radio button input element whose\n`value` property is equal to the new value will be set to\n`checked`."
+ }
+ },
+ "range": {
+ "docs": "\n\nThe **`Range`** interface represents a fragment of a document that can contain nodes and parts of text nodes.\n\nA range can be created by using the [Document.createRange] method. Range objects can also be retrieved by using the [Selection/getRangeAt] method of the [Selection] object or the [Document/caretRangeFromPoint] method of the [Document] object.\n\nThere also is the [Range.Range] constructor available.\n\n",
+ "properties": {
+ "clonecontents": "\n\nThe **`Range.cloneContents()`** returns a [DocumentFragment] copying the objects of type [Node]\nincluded in the [Range].\n\nEvent listeners added using [EventTarget.addEventListener]\nare not copied during cloning. HTML attribute events are duplicated as they are\nfor the [Node.cloneNode] method. HTML `id` attributes\nare also cloned, which can lead to an invalid document through cloning.\n\nPartially selected nodes include the parent tags necessary to make the document\nfragment valid.",
+ "clonerange": "\n\nThe **`Range.cloneRange()`** method returns a\n[Range] object with boundary points identical to the cloned\n[Range].\n\nThe returned clone is copied by value, not reference, so a change in either\n[Range] does not affect the other.",
+ "collapse": "\n\nThe **`Range.collapse()`** method collapses the\n[Range] to one of its boundary points.\n\nA collapsed [Range] is empty, containing no content, specifying a\nsingle-point in a DOM tree. To determine if a [Range] is already collapsed,\nsee the [Range.collapsed] property.",
+ "collapsed": "\n\nThe **`Range.collapsed`** read-only property returns a\nboolean flag indicating whether the start and end points of the\n[Range] are at the same position. It returns `true` if the start\nand end boundary points of the [Range] are the same point in the DOM,\n`false` if not.\n\nA collapsed [Range] is empty (containing no content), and specifies a\nsingle point in a DOM tree. To collapse a range, see the [Range.collapse]\nmethod.",
+ "commonancestorcontainer": "\n\nThe **`Range.commonAncestorContainer`** read-only property\nreturns the deepest — or furthest down the document tree — [Node] that\ncontains both [boundary points](https://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position-h3) of the [Range]. This means that if\n[Range.startContainer] and [Range.endContainer] both refer to\nthe same node, this node is the **common ancestor container**.\n\nSince a `Range` need not be continuous, and may also partially select nodes,\nthis is a convenient way to find a `Node` which encloses a\n`Range`.\n\nThis 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\n`Range`, such as [Range.setStart] and\n[Range.setEnd].",
+ "compareboundarypoints": "\n\nThe\n**`Range.compareBoundaryPoints()`** method compares the\nboundary points of the [Range] with those of another range.",
+ "comparenode": "\n\nThe **`Range.compareNode()`** returns a constant indicating the\nposition of the [Node].\n\nThe possible values are:\n\n- `NODE_BEFORE` (`0`)\n - : Node starts before the Range\n- `NODE_AFTER` (`1`)\n - : Node ends after the Range\n- `NODE_BEFORE_AND_AFTER` (`2`)\n - : Node starts before and ends after the Range\n- `NODE_INSIDE` (`3`)\n - : Node starts after and ends before the Range, i.e. the Node is completely selected by\n the Range.\n\n> **Warning:** This method [has been removed](/en-US/docs/Mozilla/Firefox/Releases/3/Site_compatibility) from [Gecko 1.9](/en-US/docs/Mozilla/Firefox/Releases/3) and\n> will not exist in future versions of Firefox, which was the only browser implementing\n> it; you should switch to [Range.compareBoundaryPoints] as soon as\n> possible.\n\nThe following function can be used as replacement:\n\n```js\nfunction rangeCompareNode(range, node) {\n const nodeRange = node.ownerDocument.createRange();\n try {\n nodeRange.selectNode(node);\n } catch (e) {\n nodeRange.selectNodeContents(node);\n }\n const nodeIsBefore =\n range.compareBoundaryPoints(Range.START_TO_START, nodeRange) === 1;\n const nodeIsAfter =\n range.compareBoundaryPoints(Range.END_TO_END, nodeRange) === -1;\n\n if (nodeIsBefore && !nodeIsAfter) return 0;\n if (!nodeIsBefore && nodeIsAfter) return 1;\n if (nodeIsBefore && nodeIsAfter) return 2;\n\n return 3;\n}\n```",
+ "comparepoint": "\n\nThe **`Range.comparePoint()`** method returns `-1`,\n`0`, or `1` depending on whether the `referenceNode` is\nbefore, the same as, or after the [Range].\n\nIf the _reference node_ is a [Node] of type [Text],\n[Comment], or [CDATASection], then offset is the number of\ncharacters from the start of _reference node_. For other [Node]\ntypes, offset is the number of child nodes between the start of the _reference\nnode_.",
+ "createcontextualfragment": "\n\nThe **`Range.createContextualFragment()`** method returns a\n[DocumentFragment] by invoking the HTML fragment parsing algorithm or the\nXML fragment parsing algorithm with the start of the range (the _parent_ of the\nselected node) as the context node. The HTML fragment parsing algorithm is used if the\nrange belongs to a `Document` whose HTMLness bit is set. In the HTML case, if\nthe context node would be `html`, for historical reasons the fragment parsing\nalgorithm is invoked with `body` as the context instead.",
+ "deletecontents": "\n\nThe **`Range.deleteContents()`** method removes the contents of\nthe [Range] from the [Document].\n\nUnlike [Range.extractContents], this method does not return a\n[DocumentFragment] containing the deleted content.",
+ "detach": "\n\nThe **`Range.detach()`** method does nothing. It used to\ndisable the [Range] object and enable the browser to release associated\nresources. The method has been kept for compatibility.",
+ "endcontainer": "\n\nThe **`Range.endContainer`** read-only property returns the\n[Node] within which the [Range] ends. To change the end\nposition of a node, use the [Range.setEnd] method or a similar one.",
+ "endoffset": "\n\nThe **`Range.endOffset`** read-only property returns a number\nrepresenting where in the [Range.endContainer] the [Range]\nends.\n\nIf the `endContainer` is a [Node] of type [Text],\n[Comment], or [CDATASection], then the offset is the number of\ncharacters from the start of the `endContainer` to the boundary point of the\n[Range]. For other [Node] types, the `endOffset` is\nthe number of child nodes between the start of the `endContainer` and the\nboundary point of the [Range]. This property is read-only. To change the\n`endOffset` of a [Range], use one of the\n[Range.setEnd] methods.",
+ "extractcontents": "\n\nThe **`Range.extractContents()`** method moves contents of the\n[Range] from the document tree into a [DocumentFragment].\n\nEvent listeners added using DOM Events are not retained during extraction. HTML\nattribute events are retained or duplicated as they are for the\n[Node.cloneNode] method. HTML `id` attributes are also cloned,\nwhich can lead to an invalid document if a partially-selected node is extracted and\nappended to the document.\n\nPartially selected nodes are cloned to include the parent tags necessary to make the\ndocument fragment valid.",
+ "getboundingclientrect": "\n\nThe **`Range.getBoundingClientRect()`** method returns a [DOMRect] object that bounds the contents of the range; this is a rectangle\nenclosing the union of the bounding rectangles for all the elements in the range.\n\nThis method is useful for determining the viewport coordinates of the cursor or\nselection inside a text box. See [Element.getBoundingClientRect] for\ndetails on the returned value.",
+ "getclientrects": "\n\nThe **`Range.getClientRects()`** method returns a list of [DOMRect] objects representing the area of the screen occupied by the [range](/en-US/docs/Web/API/Range). This is created by aggregating the results of calls to\n[Element.getClientRects] for all the elements in the range.",
+ "insertnode": "\n\nThe **`Range.insertNode()`** method inserts a node at the start\nof the [Range].\n\nThe new node is inserted at the start boundary point of the `Range`. If the\nnew node is to be added to a text [Node], that `Node` is split\nat the insertion point, and the insertion occurs between the two text nodes.\n\nIf the new node is a document fragment, the children of the document fragment are\ninserted instead.",
+ "intersectsnode": "\n\nThe **`Range.intersectsNode()`** method returns a boolean\nindicating whether the given [Node] intersects the [Range].",
+ "ispointinrange": "\n\nThe **`Range.isPointInRange()`** method returns a boolean\nindicating whether the given point is in the [Range]. It returns\n`true` if the point (cursor position) at `offset` within\n`ReferenceNode` is within this range.",
+ "selectnode": "\n\nThe **`Range.selectNode()`** method sets the\n[Range] to contain the [Node] and its contents. The parent\n[Node] of the start and end of the [Range] will be the same as\nthe parent of the _referenceNode_.",
+ "selectnodecontents": "\n\nThe **`Range.selectNodeContents()`** method sets the [Range] to contain the contents of a [Node].\n\nThe parent `Node` of the start and end of the `Range` will be the\nreference node. The `startOffset` is 0, and the `endOffset` is the\nnumber of child `Node`s or number of characters contained in the reference\nnode.",
+ "setend": "\n\nThe **`Range.setEnd()`** method sets the end position of a [Range] to be located at the given offset into the specified node x.Setting\nthe end point above (higher in the document) than the start point will result in a\ncollapsed range with the start and end points both set to the specified end position.",
+ "setendafter": "\n\nThe **`Range.setEndAfter()`** method sets the end position of a\n[Range] relative to another [Node]. The parent\n`Node` of end of the `Range` will be the same as that for the\n`referenceNode`.",
+ "setendbefore": "\n\nThe **`Range.setEndBefore()`** method sets the end position of\na `Range` relative to another [Node]. The parent\n`Node` of end of the `Range` will be the same as that for the\n`referenceNode`.",
+ "setstart": "\n\nThe **`Range.setStart()`** method sets the start position of a\n[Range].\n\nIf the `startNode` is a [Node] of type [Text],\n[Comment], or [CDataSection], then `startOffset` is\nthe number of characters from the start of `startNode`. For other\n`Node` types, `startOffset` is the number of child nodes between\nthe start of the `startNode`.\n\nSetting the start point below (lower in the document) the end point will result in a\ncollapsed range with the start and end points both set to the specified start position.",
+ "setstartafter": "\n\nThe **`Range.setStartAfter()`** method sets the start position\nof a [Range] relative to a [Node]. The parent\n[Node] of the start of the [Range] will be the same as that\nfor the `referenceNode`.",
+ "setstartbefore": "\n\nThe **`Range.setStartBefore()`** method sets the start position\nof a [Range] relative to another [Node]. The parent\n[Node] of the start of the [Range] will be the same as that\nfor the `referenceNode`.",
+ "startcontainer": "\n\nThe **`Range.startContainer`** read-only property returns the\n[Node] within which the `Range` starts. To change the start\nposition of a node, use one of the [Range.setStart] methods.",
+ "startoffset": "\n\nThe **`Range.startOffset`** read-only property returns a number\nrepresenting where in the `startContainer` the `Range` starts.\n\nIf the `startContainer` is a [Node] of type\n[Text], [Comment], or [CDATASection], then the\noffset is the number of characters from the start of the `startContainer` to\nthe boundary point of the [Range]. For other [Node] types, the\n`startOffset` is the number of child nodes between the start of the\n`startContainer` and the boundary point of the [Range].\n\nTo change the `startOffset` of a [Range], use the\n[Range.setStart] method.",
+ "surroundcontents": "\n\nThe **`Range.surroundContents()`** method moves content of the\n[Range] into a new node, placing the new node at the start of the\nspecified range.\n\nThis method is nearly equivalent to\n`newNode.appendChild(range.extractContents()); range.insertNode(newNode)`.\nAfter surrounding, the boundary points of the `range` include\n`newNode`.\n\nAn exception will be thrown, however, if the [Range] splits a non-[Text] node with only one of its boundary points. That is, unlike the\nalternative above, if there are partially selected nodes, they will not be cloned and\ninstead the operation will fail.",
+ "tostring": "\n\nThe **`Range.toString()`** method is a returning\nthe text of the [Range].\n\nAlerting the contents of a [Range] makes an implicit\n`toString()` call, so comparing range and text through an alert dialog is\nineffective."
+ }
+ },
+ "readablebytestreamcontroller": {
+ "docs": "\n\nThe **`ReadableByteStreamController`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) represents a controller for a [readable byte stream](/en-US/docs/Web/API/Streams_API/Using_readable_byte_streams).\nIt allows control of the state and internal queue of a [ReadableStream] with an underlying byte source, and enables efficient zero-copy transfer of data from the underlying source to a consumer when the stream's internal queue is empty.\n\nAn instance of this controller type is created if an `underlyingSource` object with the property `type=\"bytes\"` is passed as an argument to the [`ReadableStream()` constructor](/en-US/docs/Web/API/ReadableStream/ReadableStream#type).\nThe `underlyingSource` object may also define [`start()`](/en-US/docs/Web/API/ReadableStream/ReadableStream#start) and [`pull()`](/en-US/docs/Web/API/ReadableStream/ReadableStream#pull) callback functions.\nThese are called with the controller as a parameter, in order to set up the underlying source, and request data when needed.\n\nThe underlying source uses the controller to supply data to the stream via its [`byobRequest`](#readablebytestreamcontroller.byobrequest) property or [`enqueue()`](#readablebytestreamcontroller.enqueue) method.\n[`byobRequest`](#readablebytestreamcontroller.byobrequest) is a [ReadableStreamBYOBRequest] object that represents a pending request from a consumer to make a zero-copy transfer of data direct to a consumer.\n`byobRequest` must be used to copy data if it exists (do not use `enqueue()` in this case)!\nIf the underlying source needs to pass data to the stream and `byobRequest` is `null` then the source can call [`enqueue()`](#readablebytestreamcontroller.enqueue) to add the data to the stream's internal queues.\n\nNote that the [`byobRequest`](#readablebytestreamcontroller.byobrequest) is only created in \"BYOB mode\" when there is a request from a reader and the stream's internal queue is empty.\n\"BYOB mode\" is enabled when using a [ReadableStreamBYOBReader] (typically constructed by calling [ReadableStream.getReader] with the argument `{ mode: 'byob' }`).\nIt is also enabled when using a default reader and [`autoAllocateChunkSize`](/en-US/docs/Web/API/ReadableStream/ReadableStream#autoallocatechunksize) is specified in the [`ReadableController()` constructor](/en-US/docs/Web/API/ReadableStream/ReadableStream#autoallocatechunksize).\n\nAn underlying byte source can also use the controller to [`close()`](#readablebytestreamcontroller.close) the stream when all the data has been sent and report errors from the underlying source using [`error()`](#readablebytestreamcontroller.error).\nThe controller's [`desiredSize`](#readablebytestreamcontroller.desiredsize) property is used to apply \"backpressure\", informing the underlying source of the size of the internal queue (small values indicate that the queue is filling up, hinting to the underlying source that it is be desirable to pause or throttle the inflow).\n\nNote that even though the controller is primarily used by the underlying byte source, there is no reason it cannot be stored used by other parts of the system to signal the stream.",
+ "properties": {
+ "byobrequest": "\n\nThe **`byobRequest`** read-only property of the [ReadableByteStreamController] interface returns the current BYOB request, or `null` if there are no pending requests.\n\nAn underlying byte source should check this property, and use it to write data to the stream if it exists (rather than using [ReadableByteStreamController.enqueue]).\nThis will result in an efficient zero-byte transfer of the data to the consumer.",
+ "close": "\n\nThe **`close()`** method of the [ReadableByteStreamController] interface closes the associated stream.\n\nThis might be called by the underlying source when its data source has been exhausted/completed.\n\n> **Note:** Readers will still be able to read any previously-enqueued chunks from the stream, but once those are read, the stream will become closed.\n> However if there is an outstanding and partially written [ReadableByteStreamController.byobRequest] when `close()` is called, the stream will be errored.",
+ "desiredsize": "\n\nThe **`desiredSize`** read-only property of the [ReadableByteStreamController] interface returns the number of bytes required to fill the stream's internal queue to its \"desired size\".\n\nThe value is used by the stream to indicate a preferred flow rate to the underlying source.\nSources that support throttling or pausing their inflow of data (not all do!) should control the inflow such that `desiredSize` of the stream buffer is kept positive and as close to zero as possible.\n\nThe `desiredSize` is used to apply [backpressure](/en-US/docs/Web/API/Streams_API/Concepts#backpressure) from downstream consumers.",
+ "enqueue": "\n\nThe **`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\nThis should only be used to transfer data to the queue when [ReadableByteStreamController.byobRequest] is `null`.",
+ "error": "\n\nThe **`error()`** method of the [ReadableByteStreamController] interface causes any future interactions with the associated stream to error with the specified reason.\n\nThis is commonly called by an underlying source to surface an error from the interface where it gets its data (such as a file-read or socket error).\nIt can also be called from elsewhere to trigger a stream error, for example if another part of the system that the stream relies on fails."
+ }
+ },
+ "readablestream": {
+ "docs": "\n\nThe `ReadableStream` interface of the [Streams API](/en-US/docs/Web/API/Streams_API) represents a readable stream of byte data. The [Fetch API](/en-US/docs/Web/API/Fetch_API) offers a concrete instance of a `ReadableStream` through the [Response.body] property of a [Response] object.\n\n`ReadableStream` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).",
+ "properties": {
+ "cancel": "\n\nThe **`cancel()`** method of the\n[ReadableStream] interface returns a `Promise` that\nresolves when the stream is canceled.\n\nCancel is used when you've completely finished with the stream and don't need any more\ndata from it, even if there are chunks enqueued waiting to be read. That data is lost\nafter cancel is called, and the stream is not readable any more. To read those chunks\nstill and not completely get rid of the stream, you'd use\n[ReadableStreamDefaultController.close].",
+ "from_static": "\n\nThe **`ReadableStream.from()`** static method returns a [ReadableStream] from a provided iterable or async iterable object.\n\nThe method can be used to wrap iterable and async iterable objects as readable streams, including arrays, sets, arrays of promises, async generators, `ReadableStreams`, Node.js `readable` streams, and so on.",
+ "getreader": "\n\nThe **`getReader()`** method of the [ReadableStream] interface creates a reader and locks the stream to it.\nWhile the stream is locked, no other reader can be acquired until this one is released.",
+ "locked": "\n\nThe **`locked`** read-only property of the [ReadableStream] interface returns whether or not the readable stream is locked to a reader.\n\nA readable stream can have at most one active reader at a time, and is locked to that reader until it is released.\nA reader might be obtained using [`ReadableStream.getReader()`](/en-US/docs/Web/API/ReadableStream/getReader) and released using the reader's `releaseLock()` method.",
+ "pipethrough": "\n\nThe **`pipeThrough()`** method of the [ReadableStream] interface provides a chainable way of piping the current stream through a transform stream or any other writable/readable pair.\n\nPiping a stream will generally lock it for the duration of the pipe, preventing other readers from locking it.",
+ "pipeto": "\n\nThe **`pipeTo()`** method of the [ReadableStream] interface pipes the current `ReadableStream` to a given [WritableStream] and returns a `Promise` that fulfills when the piping process completes successfully, or rejects if any errors were encountered.\n\nPiping a stream will generally [lock](/en-US/docs/Web/API/ReadableStream/locked) it for the duration of the pipe, preventing other readers from locking it.",
+ "tee": "\n\nThe **`tee()`** method of the\n[ReadableStream] interface [tees](https://streams.spec.whatwg.org/#tee-a-readable-stream) the current readable stream, returning a\ntwo-element array containing the two resulting branches as\nnew [ReadableStream] instances.\n\nThis is useful for allowing two readers to read a stream sequentially or simultaneously,\nperhaps at different speeds.\nFor example, you might do this in a ServiceWorker if you want to fetch\na response from the server and stream it to the browser, but also stream it to the\nServiceWorker cache. Since a response body cannot be consumed more than once, you'd need\ntwo copies to do this.\n\nA teed stream will partially signal backpressure at the rate of the _faster_ consumer\nof the two `ReadableStream` branches,\nand unread data is enqueued internally on the slower consumed `ReadableStream`\nwithout any limit or backpressure.\nThat is, when _both_ branches have an unread element in their internal queue,\nthen the original `ReadableStream`'s controller's internal queue will start to fill up,\nand once its [ReadableStreamDefaultController.desiredSize] ≤ 0\nor byte stream controller [ReadableByteStreamController.desiredSize] ≤ 0,\nthen the controller will stop calling `pull(controller)` on the\nunderlying source passed to [ReadableStream.ReadableStream].\nIf only one branch is consumed, then the entire body will be enqueued in memory.\nTherefore, you should not use the built-in `tee()` to read very large streams\nin parallel at different speeds.\nInstead, search for an implementation that fully backpressures\nto the speed of the _slower_ consumed branch.\n\nTo cancel the stream you then need to cancel both resulting branches. Teeing a stream\nwill generally lock it for the duration, preventing other readers from locking it."
+ }
+ },
+ "readablestreambyobreader": {
+ "docs": "\n\nThe `ReadableStreamBYOBReader` interface of the [Streams API](/en-US/docs/Web/API/Streams_API) defines a reader for a [ReadableStream] that supports zero-copy reading from an underlying byte source.\nIt is used for efficient copying from underlying sources where the data is delivered as an \"anonymous\" sequence of bytes, such as files.\n\nAn instance of this reader type should usually be obtained by calling [ReadableStream.getReader] on the stream, specifying `mode: \"byob\"` in the options parameter.\nThe readable stream must have an _underlying byte source_. In other words, it must have been [constructed](/en-US/docs/Web/API/ReadableStream/ReadableStream) specifying an underlying source with [`type: \"bytes\"`](/en-US/docs/Web/API/ReadableStream/ReadableStream#type)).\n\nUsing this kind of reader, a [`read()`](#readablestreambyobreader.read) request when the readable stream's internal queues are empty will result in a zero copy transfer from the underlying source (bypassing the stream's internal queues).\nIf the internal queues are not empty, a `read()` will satisfy the request from the buffered data.\n\nNote that the methods and properties are similar to those for the default reader ([ReadableStreamDefaultReader]).\nThe `read()` method differs in that it provide a view into which data should be written.",
+ "properties": {
+ "cancel": "\n\nThe **`cancel()`** method of the [ReadableStreamBYOBReader] interface returns a `Promise` that resolves when the stream is canceled.\nCalling this method signals a loss of interest in the stream by a consumer.\n\n> **Note:** If the reader is active, the `cancel()` method behaves the same as that for the associated stream ([ReadableStream.cancel]).",
+ "closed": "\n\nThe **`closed`** read-only property of the [ReadableStreamBYOBReader] interface returns a `Promise` that fulfills when the stream closes, or rejects if the stream throws an error or the reader's lock is released.\n\nThis property enables you to write code that responds to an end to the streaming process.",
+ "read": "\n\nThe **`read()`** method of the [ReadableStreamBYOBReader] interface is used to read data into a view on a user-supplied buffer from an associated [readable byte stream](/en-US/docs/Web/API/Streams_API/Using_readable_byte_streams).\nA request for data will be satisfied from the stream's internal queues if there is any data present.\nIf the stream queues are empty, the request may be supplied as a zero-copy transfer from the underlying byte source.\n\nThe method takes as an argument a view on a buffer that supplied data is to be read into, and returns a `Promise`.\nThe promise fulfills with an object that has properties `value` and `done` when data comes available, or if the stream is cancelled.\nIf the stream is errored, the promise will be rejected with the relevant error object.\n\nIf a chunk of data is supplied, the `value` property will contain a new view.\nThis will be a view over the same buffer/backing memory (and of the same type) as the original `view` passed to the `read()` method, now populated with the new chunk of data.\nNote that once the promise fulfills, the original `view` passed to the method will be detached and no longer usable.\nThe promise will fulfill with a `value: undefined` if the stream has been cancelled.\nIn this case the backing memory region of `view` is discarded and not returned to the caller (all previously read data in the view's buffer is lost).\n\nThe `done` property indicates whether or not more data is expected.\nThe value is set `true` if the stream is closed or cancelled, and `false` otherwise.",
+ "releaselock": "\n\nThe **`releaseLock()`** method of the [ReadableStreamBYOBReader] interface releases the reader's lock on the stream.\nAfter the lock is released, the reader is no longer active.\n\nThe reader will appear errored if the associated stream is errored when the lock is released; otherwise, the reader will appear closed.\n\nIf the reader's lock is released while it still has pending read requests then the promises returned by the reader's [ReadableStreamBYOBReader.read] method are immediately rejected with a `TypeError`.\nUnread chunks remain in the stream's internal queue and can be read later by acquiring a new reader."
+ }
+ },
+ "readablestreambyobrequest": {
+ "docs": "\n\nThe **`ReadableStreamBYOBRequest`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) represents a \"pull request\" for data from an underlying source that will made as a zero-copy transfer to a consumer (bypassing the stream's internal queues).\n\n`ReadableStreamBYOBRequest` objects are created in \"BYOB mode\" when a consumer makes a request for data and the stream's internal queue is _empty_.\n(The stream will resolve the consumer's request directly if it already has buffered data).\nAn underlying byte source can access active BYOB requests through its controller's [ReadableByteStreamController.byobRequest] property, which will be set to `null` if there is no outstanding request.\n\nAn underlying source that supports \"BYOB mode\" should check for [ReadableByteStreamController.byobRequest] and must use it for transferring data, if present.\nIf data arrives from the underlying source when [ReadableByteStreamController.byobRequest] is `null`, it can be queued using [ReadableByteStreamController.enqueue].\nThis might happen when an underlying push source receives new data when the stream's internal buffers are not empty.\n\nAn underlying source uses the request by writing data to the BYOB request's [`view`](#readablestreambyobrequest.view) and then calling [`respond()`](#readablestreambyobrequest.respond), or by calling [`respondWithNewView()`](#readablestreambyobrequest.respondwithnewview) and passing a new view as an argument.\nNote that the \"new view\" must actually be a view over the _same_ buffer as the original `view`, starting at the same offset.\nThis might be used to return a shorter buffer if the underlying source is unable to fill the entire original view.\n\nNote that a [ReadableByteStreamController] is only created for underlying sources when `type=\"bytes\"` is specified for the source in the [`ReadableStream()` constructor](/en-US/docs/Web/API/ReadableStream/ReadableStream#type).\n\"BYOB mode\" is enabled when either [`autoAllocateChunkSize`](/en-US/docs/Web/API/ReadableStream/ReadableStream#autoallocatechunksize) is specified in the [`ReadableController()` constructor](/en-US/docs/Web/API/ReadableStream/ReadableStream#autoallocatechunksize) or when using a [ReadableStreamBYOBReader] (typically constructed by calling [ReadableStream.getReader] with the argument `{ mode: 'byob' }`).",
+ "properties": {
+ "respond": "\n\nThe **`respond()`** method of the [ReadableStreamBYOBRequest] interface is used to signal to the associated [readable byte stream](/en-US/docs/Web/API/Streams_API/Using_readable_byte_streams) that the specified number of bytes were written into the [ReadableStreamBYOBRequest.view].\n\nAfter this method is called, the [ReadableStreamBYOBRequest/view] will be transferred and no longer modifiable.",
+ "respondwithnewview": "\n\nThe **`respondWithNewView()`** method of the [ReadableStreamBYOBRequest] interface specifies a new view that the consumer of the associated readable byte stream should write to instead of [ReadableStreamBYOBRequest.view].\n\nThe new view must be a `TypedArray` or a `DataView` that provides a view onto the same backing memory region as [ReadableStreamBYOBRequest.view].\nAfter this method is called, the view that was passed into the method will be transferred and no longer modifiable.\n\nThe method is intended for use cases where an underlying byte source needs to transfer a `byobRequest.view` internally before finishing its response.\nFor example, the source may transfer the BYOB view to a separate worker thread, and wait for the worker to transfer it back once it has been filled.",
+ "view": "\n\nThe **`view`** getter property of the [ReadableStreamBYOBRequest] interface returns the current view."
+ }
+ },
+ "readablestreamdefaultcontroller": {
+ "docs": "\n\nThe **`ReadableStreamDefaultController`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) represents a controller allowing control of a [ReadableStream]'s state and internal queue. Default controllers are for streams that are not byte streams.",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the\n[ReadableStreamDefaultController] interface closes the associated stream.\n\nReaders will still be able to read any previously-enqueued chunks from the stream,\nbut once those are read, the stream will become closed. If you want to completely get\nrid of the stream and discard any enqueued chunks, you'd use\n[ReadableStream.cancel] or\n[ReadableStreamDefaultReader.cancel].",
+ "desiredsize": "\n\nThe **`desiredSize`** read-only property of the\n[ReadableStreamDefaultController] interface returns the desired size\nrequired to fill the stream's internal queue.",
+ "enqueue": "\n\nThe **`enqueue()`** method of the\n[ReadableStreamDefaultController] interface enqueues a given chunk in the\nassociated stream.",
+ "error": "\n\nThe **`error()`** method of the\n[ReadableStreamDefaultController] interface causes any future interactions\nwith the associated stream to error.\n\n> **Note:** The `error()` method can be called\n> more than once, and can be called when the stream is not readable."
+ }
+ },
+ "readablestreamdefaultreader": {
+ "docs": "\n\nThe **`ReadableStreamDefaultReader`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) represents a default reader that can be used to read stream data supplied from a network (such as a fetch request).\n\nA `ReadableStreamDefaultReader` can be used to read from a [ReadableStream] that has an underlying source of any type (unlike a [ReadableStreamBYOBReader], which can only be used with readable streams that have an _underlying byte source_).\n\nNote however that zero-copy transfer from an underlying source is only supported for underlying byte sources that autoallocate buffers.\nIn other words, the stream must have been [constructed](/en-US/docs/Web/API/ReadableStream/ReadableStream) specifying both [`type=\"bytes\"`](/en-US/docs/Web/API/ReadableStream/ReadableStream#type) and [`autoAllocateChunkSize`](/en-US/docs/Web/API/ReadableStream/ReadableStream#autoallocatechunksize).\nFor any other underlying source, the stream will always satisfy read requests with data from internal queues.",
+ "properties": {
+ "cancel": "\n\nThe **`cancel()`** method of the\n[ReadableStreamDefaultReader] interface returns a `Promise` that resolves when the stream is canceled. Calling this method signals a loss of interest in the stream by a consumer.\n\nCancel is used when you've completely finished with the stream and don't need any more\ndata from it, even if there are chunks enqueued waiting to be read. That data is lost\nafter cancel is called, and the stream is not readable any more. To read those chunks\nstill and not completely get rid of the stream, you'd use\n[ReadableStreamDefaultController.close].\n\n> **Note:** If the reader is active, the\n> `cancel()` method behaves the same as that for the associated stream\n> ([ReadableStream.cancel]).",
+ "closed": "\n\nThe **`closed`** read-only property of the\n[ReadableStreamDefaultReader] interface returns a\n`Promise` that fulfills when the stream closes, or rejects if the\nstream throws an error or the reader's lock is released. This property enables you\nto write code that responds to an end to the streaming process.",
+ "read": "\n\nThe **`read()`** method of the [ReadableStreamDefaultReader] interface returns a `Promise` providing access to the next chunk in the stream's internal queue.",
+ "releaselock": "\n\nThe **`releaseLock()`** method of the [ReadableStreamDefaultReader] interface releases the reader's lock on the stream.\n\nIf the associated stream is errored when the lock is released, the reader will appear errored in that same way subsequently; otherwise, the reader will appear closed.\n\nIf the reader's lock is released while it still has pending read requests then the promises returned by the reader's [ReadableStreamDefaultReader.read] method are immediately rejected with a `TypeError`.\nUnread chunks remain in the stream's internal queue and can be read later by acquiring a new reader."
+ }
+ },
+ "relativeorientationsensor": {
+ "docs": "\n\nThe **`RelativeOrientationSensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) describes the device's physical orientation without regard to the Earth's reference coordinate system.\n\nTo use this sensor, the user must grant permission to the `'accelerometer'`, and `'gyroscope'` device sensors through the [Permissions API](/en-US/docs/Web/API/Permissions_API). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\n"
+ },
+ "remoteplayback": {
+ "docs": "\n\nThe **`RemotePlayback`** interface of the [Remote Playback API] allows the page to detect availability of remote playback devices, then connect to and control playing on these devices.\n\n",
+ "properties": {
+ "cancelwatchavailability": "\n\nThe **`cancelWatchAvailability()`** method of the [RemotePlayback] interface cancels the request to watch for one or all available devices.",
+ "connect_event": "\n\nThe **`connect`** event of the [RemotePlayback] interface fires when the user agent connects to the remote device.",
+ "connecting_event": "\n\nThe **`connecting`** event of the [RemotePlayback] interface fires when the user agent initiates remote playback.",
+ "disconnect_event": "\n\nThe **`disconnect`** event of the [RemotePlayback] interface fires when the user agent disconnects from the remote device.",
+ "prompt": "\n\nThe **`prompt()`** method of the [RemotePlayback] interface prompts the user to select an available remote playback device and give permission for the current media to be played using that device.\n\nIf the user gives permission, the [RemotePlayback.state] will be set to `connecting` and the user agent will connect to the device to initiate playback.\n\nIf the user chooses to instead disconnect from the device, the [RemotePlayback.state] will be set to `disconnected` and user agent will disconnect from this device.",
+ "state": "\n\nThe **`state`** read-only property of the [RemotePlayback] interface returns the current state of the `RemotePlayback` connection.",
+ "watchavailability": "\n\nThe **`watchAvailability()`** method of the [RemotePlayback] interface watches the list of available remote playback devices and returns a `Promise` that resolves with the `callbackId` of a remote playback device."
+ }
+ },
+ "report": {
+ "docs": "\n\nThe `Report` interface of the [Reporting API](/en-US/docs/Web/API/Reporting_API) represents a single report.\n\nReports 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()`](/en-US/docs/Web/API/ReportingObserver/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 HTTP header.",
+ "properties": {
+ "body": "\n\nThe **`body`** read-only property of the [Report]\ninterface returns the body of the report, which is a `ReportBody` object\ncontaining the detailed report information.",
+ "type": "\n\nThe **`type`** read-only property of the [Report]\ninterface returns the type of report generated, e.g. `deprecation` or\n`intervention`.",
+ "url": "\n\nThe **`url`** read-only property of the [Report]\ninterface returns the URL of the document that generated the report."
+ }
+ },
+ "reportbody": {
+ "docs": "\n\nThe **`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.\n\n### Reports that inherit from `ReportBody`\n\n- [CSPViolationReportBody]\n- [DeprecationReportBody]\n- [InterventionReportBody]\n\nAn instance of `ReportBody` is returned as the value of [Report.body]. The interface has no constructor.",
+ "properties": {
+ "tojson": "\n\nThe **`toJSON()`** method of the [ReportBody] interface is a _serializer_, and returns a JSON representation of the `ReportBody` object."
+ }
+ },
+ "reportingobserver": {
+ "docs": "\n\nThe `ReportingObserver` interface of the [Reporting API](/en-US/docs/Web/API/Reporting_API) allows you to collect and access reports.",
+ "properties": {
+ "disconnect": "\n\nThe **`disconnect()`** method of the\n[ReportingObserver] interface stops a reporting observer that had\npreviously started observing from collecting reports.\n\nAfter calling `disconnect()`, neither\n[ReportingObserver.takeRecords] nor the `records` parameter of\nthe\n[`ReportingObserver()`](/en-US/docs/Web/API/ReportingObserver/ReportingObserver)\ncallback will return any reports. The associated observer will no longer be active.",
+ "observe": "\n\nThe **`observe()`** method of the\n[ReportingObserver] interface instructs a reporting observer to start\ncollecting reports in its report queue.",
+ "takerecords": "\n\nThe **`takeRecords()`** method of the\n[ReportingObserver] interface returns the current list of reports contained\nin the observer's report queue, and empties the queue."
+ }
+ },
+ "request": {
+ "docs": "\n\nThe **`Request`** interface of the [Fetch API](/en-US/docs/Web/API/Fetch_API) represents a resource request.\n\nYou can create a new `Request` object using the [Request.Request] constructor, but you are more likely to encounter a `Request` object being returned as the result of another API operation, such as a service worker [FetchEvent.request].",
+ "properties": {
+ "arraybuffer": "\n\nThe **`arrayBuffer()`** method of the [Request] interface\nreads the request body and returns it as a promise that resolves with an `ArrayBuffer`.",
+ "blob": "\n\nThe **`blob()`** method of the [Request] interface\nreads the request body and returns it as a promise that resolves with a [Blob].",
+ "body": "\n\nThe read-only **`body`** property of the [Request]\ninterface contains a [ReadableStream] with the body contents\nthat have been added to the request. Note that a request using the\n`GET` or `HEAD` method cannot have a body\nand `null` is returned in these cases.",
+ "bodyused": "\n\nThe read-only **`bodyUsed`** property of the\n[Request] interface is a boolean value that indicates\nwhether the request body has been read yet.",
+ "cache": "\n\nThe **`cache`** read-only property of the [Request] interface contains the cache mode of the request. It controls how the request will interact with the browser's [HTTP cache](/en-US/docs/Web/HTTP/Caching).",
+ "clone": "\n\nThe **`clone()`** method of the [Request] interface creates a copy of the current `Request` object.\n\nLike the underlying [ReadableStream.tee] api,\nthe [Request.body] of a cloned `Response`\nwill signal backpressure at the rate of the _faster_ consumer of the two bodies,\nand unread data is enqueued internally on the slower consumed `body`\nwithout any limit or backpressure.\nBeware when you construct a `Request` from a stream and then `clone` it.\n\n`clone()` throws a `TypeError` if the request body has already been used. In fact, the main reason `clone()` exists is to allow multiple uses of body objects (when they are one-use only.)\n\nIf you intend to modify the request, you may prefer the [Request] constructor.",
+ "credentials": "\n\nThe **`credentials`** read-only property of the [Request] interface indicates whether the user agent should send or receive cookies from the other domain in the case of cross-origin requests.",
+ "destination": "\n\nThe **`destination`** read-only\nproperty of the **[Request]** interface returns a string\ndescribing the type of content being requested.\n\nThe string must be one of the `audio`, `audioworklet`,\n`document`, `embed`, `font`, `frame`,\n`iframe`, `image`, `manifest`, `object`,\n`paintworklet`, `report`, `script`, `sharedworker`,\n`style`, `track`, `video`, `worker`\nor `xslt` strings, or the empty string, which is the default value.\n\nThe `destination` is used by the 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\nThese 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\n[Worker]-based destinations, including [ServiceWorker]\nand [SharedWorker].",
+ "formdata": "\n\nThe **`formData()`** method of the [Request] interface\nreads the request body and returns it as a promise that resolves with a [FormData] object.",
+ "headers": "\n\nThe **`headers`** read-only property of the\n[Request] interface contains the [Headers] object associated\nwith the request.",
+ "integrity": "\n\nThe **`integrity`** read-only property of the [Request] interface contains the [subresource integrity](/en-US/docs/Web/Security/Subresource_Integrity) value of the request.",
+ "json": "\n\nThe **`json()`** method of the [Request] interface\nreads the request body and returns it as a promise that resolves with the result of parsing the body text as `JSON`.\n\nNote that despite the method being named `json()`, the result is not JSON but is instead the result of taking JSON as input and parsing it to produce a JavaScript object.",
+ "method": "\n\nThe **`method`** read-only property of the\n[Request] interface contains the request's method (`GET`,\n`POST`, etc.)",
+ "mode": "\n\nThe **`mode`** read-only property of the [Request]\ninterface contains the mode of the request (e.g., `cors`,\n`no-cors`, `same-origin`, `navigate` or `websocket`.) This is used\nto determine if cross-origin requests lead to valid responses, and which properties of the response are readable.",
+ "redirect": "\n\nThe **`redirect`** read-only property of the [Request] interface contains the mode for how redirects are handled.",
+ "referrer": "\n\nThe **`referrer`** read-only property of the\n[Request] interface is set by the user agent to be the referrer of the\nRequest. (e.g., `client`, `no-referrer`, or a URL.)\n\n> **Note:** If `referrer`'s value is `no-referrer`,\n> it returns an empty string.",
+ "referrerpolicy": "\n\nThe **`referrerPolicy`** read-only property of the\n[Request] interface returns the referrer policy, which governs what\nreferrer information, sent in the `Referer` header, should be included\nwith the request.",
+ "signal": "\n\nThe read-only **`signal`** property of the [Request] interface returns the [AbortSignal] associated with the request.",
+ "text": "\n\nThe **`text()`** method of the [Request] interface\nreads the request body and returns it as a promise that resolves with a `String`.\nThe response is _always_ decoded using UTF-8.",
+ "url": "\n\nThe **`url`** read-only property of the [Request]\ninterface contains the URL of the request."
+ }
+ },
+ "resizeobserver": {
+ "docs": "\n\nThe **`ResizeObserver`** interface reports changes to the dimensions of an [Element]'s content or border box, or the bounding box of an [SVGElement].\n\n> **Note:** The content box is the box in which content can be placed, meaning the border box minus the padding and border width. The border box encompasses the content, padding, and border. See [The box model](/en-US/docs/Learn/CSS/Building_blocks/The_box_model) for further explanation.",
+ "properties": {
+ "disconnect": "\n\nThe **`disconnect()`** method of the\n[ResizeObserver] interface unobserves all observed [Element]\nor [SVGElement] targets.",
+ "observe": "\n\nThe **`observe()`** method of the\n[ResizeObserver] interface starts observing the specified\n[Element] or [SVGElement].",
+ "unobserve": "\n\nThe **`unobserve()`** method of the\n[ResizeObserver] interface ends the observing of a specified\n[Element] or [SVGElement]."
+ }
+ },
+ "resizeobserverentry": {
+ "docs": "\n\nThe **`ResizeObserverEntry`** interface represents the object passed to the [ResizeObserver.ResizeObserver] constructor's callback function, which allows you to access the new dimensions of the [Element] or [SVGElement] being observed.",
+ "properties": {
+ "borderboxsize": "\n\nThe **`borderBoxSize`** read-only property of\nthe [ResizeObserverEntry] interface returns an array containing the new\nborder box size of the observed element when the callback is run.",
+ "contentboxsize": "\n\nThe **`contentBoxSize`** read-only property of\nthe [ResizeObserverEntry] interface returns an array containing the new\ncontent box size of the observed element when the callback is run.",
+ "contentrect": "\n\nThe `contentRect` read-only property of the\n[ResizeObserverEntry] interface returns a [DOMRectReadOnly]\nobject containing the new size of the observed element when the callback is run. Note\nthat this is better supported than [ResizeObserverEntry.borderBoxSize] or\n[ResizeObserverEntry.contentBoxSize], but it is left over from an earlier\nimplementation of the Resize Observer API, is still included in the spec for web compat\nreasons, and may be deprecated in future versions.",
+ "devicepixelcontentboxsize": "\n\nThe **`devicePixelContentBoxSize`** read-only property of\nthe [ResizeObserverEntry] interface returns an array containing the size in device pixels of the observed element when the callback is run.",
+ "target": "\n\nThe **`target`** read-only property of the\n[ResizeObserverEntry] interface returns a reference to the\n[Element] or [SVGElement] that is being observed."
+ }
+ },
+ "resizeobserversize": {
+ "docs": "`Resize Observer API`\n\nThe **`ResizeObserverSize`** interface of the [Resize Observer API] is used by the [ResizeObserverEntry] interface to access the box sizing properties of the element being observed.\n\n> **Note:** In [multi-column layout](/en-US/docs/Web/CSS/CSS_multicol_layout), which is a fragmented context, the sizing returned by `ResizeObserverSize` will be the size of the first column.",
+ "properties": {
+ "blocksize": "`Resize Observer API`\n\nThe **`blockSize`** read-only property of the [ResizeObserverSize] interface returns the length of the observed element's border box in the block dimension. For boxes with a horizontal , this is the vertical dimension, or height; if the writing-mode is vertical, this is the horizontal dimension, or width.\n\n> **Note:** For more explanation of writing modes and block and inline dimensions, read [Handling different text directions](/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions).",
+ "inlinesize": "`Resize Observer API`\n\nThe **`inlineSize`** read-only property of the [ResizeObserverSize] interface returns the length of the observed element's border box in the inline dimension. For boxes with a horizontal , this is the horizontal dimension, or width; if the writing-mode is vertical, this is the vertical dimension, or height.\n\n> **Note:** For more explanation of writing modes and block and inline dimensions, read [Handling different text directions](/en-US/docs/Learn/CSS/Building_blocks/Handling_different_text_directions)."
+ }
+ },
+ "response": {
+ "docs": "\n\nThe **`Response`** interface of the [Fetch API](/en-US/docs/Web/API/Fetch_API) represents the response to a request.\n\nYou can create a new `Response` object using the [Response.Response] constructor, but you are more likely to encounter a `Response` object being returned as the result of another API operation—for example, a service worker [FetchEvent.respondWith], or a simple [fetch].",
+ "properties": {
+ "arraybuffer": "\n\nThe **`arrayBuffer()`** method of the [Response] interface\ntakes a [Response] stream and reads it to completion. It returns a promise\nthat resolves with an `ArrayBuffer`.",
+ "blob": "\n\nThe **`blob()`** method of the [Response] interface takes\na [Response] stream and reads it to completion. It returns a promise that\nresolves with a [Blob].",
+ "body": "\n\nThe **`body`** read-only property of the [Response] interface is a [ReadableStream] of the body contents.",
+ "bodyused": "\n\nThe **`bodyUsed`** read-only property of the [Response] interface is a boolean value that indicates whether the body has been read yet.",
+ "clone": "\n\nThe **`clone()`** method of the [Response] interface creates a clone of a response object, identical in every way, but stored in a different variable.\n\nLike the underlying [ReadableStream.tee] api,\nthe [Response.body] of a cloned `Response`\nwill signal backpressure at the rate of the _faster_ consumer of the two bodies,\nand unread data is enqueued internally on the slower consumed `body`\nwithout any limit or backpressure.\nBackpressure refers to the mechanism by which the streaming consumer of data\n(in this case, the code that reads the body)\nslows down the producer of data (such as the TCP server)\nso as not to load large amounts of data in memory\nthat is waiting to be used by the application.\nIf only one cloned branch is consumed, then the entire body will be buffered in memory.\nTherefore, `clone()` is one way to read a response twice in sequence,\nbut you should not use it to read very large bodies\nin parallel at different speeds.\n\n`clone()` throws a `TypeError` if the response body has already been used.\nIn fact, the main reason `clone()` exists is to allow multiple uses of body objects (when they are one-use only.)",
+ "error_static": "\n\nThe **`error()`** static method of the [Response] interface returns a new `Response` object associated with a network error.\n\nThis is mainly useful when writing service workers: it enables a service worker to send a response from a [ServiceWorkerGlobalScope.fetch_event] event handler that will cause the [fetch] call in the main app code to reject the promise.\n\nAn error response has its [Response.type] set to `error`.",
+ "formdata": "\n\nThe **`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:** This is mainly relevant to [service workers](/en-US/docs/Web/API/Service_Worker_API). If a user submits\n> a form and a service worker intercepts the request, you could for example call\n> `formData()` on it to obtain a key-value map, modify some fields, then send\n> the form onwards to the server (or use it locally).",
+ "headers": "\n\nThe **`headers`** read-only property of the\n[Response] interface contains the [Headers] object associated\nwith the response.",
+ "json": "\n\nThe **`json()`** method of the [Response] interface takes\na [Response] stream and reads it to completion. It returns a promise which\nresolves with the result of parsing the body text as `JSON`.\n\nNote that despite the method being named `json()`, the result is not JSON but is instead the result of taking JSON as input and parsing it to produce a JavaScript object.",
+ "json_static": "\n\nThe **`json()`** static method of the [Response] interface returns a `Response` that contains the provided JSON data as body, and a header which is set to `application/json`.\nThe response status, status message, and additional headers can also be set.\n\nThe method makes it easy to create `Response` objects for returning JSON encoded data.\n[Service workers](/en-US/docs/Web/API/Service_Worker_API), for example, intercept fetch requests made by a browser, and might use `json()` to construct a `Response` from cached JSON data to return to the main thread.\nThe `json()` method can also be used in server code to return JSON data for [single page applications](/en-US/docs/Glossary/SPA), and any other applications where a JSON response is expected.",
+ "ok": "\n\nThe **`ok`** read-only property of the [Response] interface contains a Boolean stating whether the response was successful (status in the range 200-299) or not.",
+ "redirect_static": "\n\nThe **`redirect()`** static method of the [Response] interface returns a `Response` resulting in a redirect to the specified URL.\n\n> **Note:** This can be used alongside the [ServiceWorker API](/en-US/docs/Web/API/Service_Worker_API).\n> A controlling service worker could intercept a page's request and redirect it as desired.\n> This will actually lead to a real redirect if a service worker sends it upstream.",
+ "redirected": "\n\nThe read-only **`redirected`** property of the [Response] interface indicates whether or not the response is the result of a request you made which was redirected.\n\n> **Note:** Relying on redirected to filter out redirects makes it easy for a forged redirect to prevent your content from working as expected.\n> Instead, you should do the filtering when you call [fetch].\n> See the example [Disallowing redirects](#disallowing_redirects), which shows this being done.",
+ "status": "\n\nThe **`status`** read-only property of the [Response] interface contains the [HTTP status codes](/en-US/docs/Web/HTTP/Status) of the response.\n\nFor example, `200` for success, `404` if the resource could not be found.",
+ "statustext": "\n\nThe **`statusText`** read-only property of the [Response] interface contains the status message corresponding to the HTTP status code in [Response.status].\n\nFor example, this would be `OK` for a status code `200`, `Continue` for `100`, `Not Found` for `404`.",
+ "text": "\n\nThe **`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.",
+ "type": "\n\nThe **`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](https://fetch.spec.whatwg.org/#concept-filtered-response-cors) may be accessed.\n- `error`: Network error.\n No useful information describing the error is available.\n The Response's status is 0, headers are empty and immutable.\n This is the type for a Response obtained from `Response.error()`.\n- `opaque`: Response for \"no-cors\" request to cross-origin resource.\n [Severely restricted](https://fetch.spec.whatwg.org/#concept-filtered-response-opaque).\n- `opaqueredirect`: The fetch request was made with `redirect: \"manual\"`.\n The Response's status is 0, headers are empty, body is null and trailer is empty.\n\n> **Note:** An \"error\" Response never really gets exposed to script: such a response to a [fetch] would reject the promise.",
+ "url": "\n\nThe **`url`** read-only property of the [Response] interface contains the URL of the response.\nThe value of the `url` property will be the final URL obtained after any redirects."
+ }
+ },
+ "rsahashedimportparams": {
+ "docs": "\n\nThe **`RsaHashedImportParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.importKey] or [SubtleCrypto.unwrapKey], when importing any RSA-based key pair: that is, when the algorithm is identified as any of [RSASSA-PKCS1-v1_5](/en-US/docs/Web/API/SubtleCrypto/sign#rsassa-pkcs1-v1_5), [RSA-PSS](/en-US/docs/Web/API/SubtleCrypto/sign#rsa-pss), or [RSA-OAEP](/en-US/docs/Web/API/SubtleCrypto/encrypt#rsa-oaep)."
+ },
+ "rsahashedkeygenparams": {
+ "docs": "\n\nThe **`RsaHashedKeyGenParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.generateKey], when generating any RSA-based key pair: that is, when the algorithm is identified as any of [RSASSA-PKCS1-v1_5](/en-US/docs/Web/API/SubtleCrypto/sign#rsassa-pkcs1-v1_5), [RSA-PSS](/en-US/docs/Web/API/SubtleCrypto/sign#rsa-pss), or [RSA-OAEP](/en-US/docs/Web/API/SubtleCrypto/encrypt#rsa-oaep)."
+ },
+ "rsaoaepparams": {
+ "docs": "\n\nThe **`RsaOaepParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/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 [RSA_OAEP](/en-US/docs/Web/API/SubtleCrypto/encrypt#rsa-oaep) algorithm."
+ },
+ "rsapssparams": {
+ "docs": "\n\nThe **`RsaPssParams`** dictionary of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) represents the object that should be passed as the `algorithm` parameter into [SubtleCrypto.sign] or [SubtleCrypto.verify], when using the [RSA-PSS](/en-US/docs/Web/API/SubtleCrypto/sign#rsa-pss) algorithm."
+ },
+ "rtcaudiosourcestats": {
+ "docs": "\n\nThe [WebRTC API](/en-US/docs/Web/API/WebRTC_API)'s **`RTCAudioSourceStats`** dictionary provides information about an audio track that is attached to one or more senders.\n\nThese statistics can be obtained by iterating the [RTCStatsReport] returned by [RTCRtpSender.getStats] or [RTCPeerConnection.getStats] until you find a report with the [`type`](#type) of `media-source` and a [`kind`](#kind) of `audio`.\n\n> **Note:** For audio information about remotely sourced tracks (that are being received), see [RTCInboundRtpStreamStats].",
+ "properties": {
+ "audiolevel": "\n\nThe [RTCAudioSourceStats] dictionary's **`audioLevel`** property represents the audio level of the media source.\n\nThe 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](/en-US/docs/Web/API/RTCAudioSourceStats#description).\n\n> **Note:** For audio levels of remotely sourced tracks, see [RTCInboundRtpStreamStats.audioLevel].",
+ "id": "\n\nThe **`id`** property of the [RTCAudioSourceStats] dictionary is a string which uniquely identifies the object for which this object provides statistics.\n\nUsing 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].",
+ "kind": "\n\nThe [RTCAudioSourceStats] dictionary's **`kind`** property is a string value that is used to differentiate `audio` and `video` media sources.\n\nAlong with the [RTCAudioSourceStats.type], this identifies the object as an [RTCAudioSourceStats] object when iterating the [RTCStatsReport] returned by [RTCRtpSender.getStats] or [RTCPeerConnection.getStats].",
+ "timestamp": "\n\nThe **`timestamp`** property of the [RTCAudioSourceStats] dictionary is a [DOMHighResTimeStamp] object specifying the time at which the data in the object was sampled.\n\nThe time is given in milliseconds elapsed since the first moment of January 1, 1970, UTC (also known as [Unix time](/en-US/docs/Glossary/Unix_time)).",
+ "totalaudioenergy": "\n\nThe [RTCAudioSourceStats] dictionary's **`totalAudioEnergy`** property represents the total audio energy of the media source over the lifetime of this stats object.\n\nThe 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:** For audio energy of remotely sourced tracks, see [RTCInboundRtpStreamStats.totalAudioEnergy].",
+ "totalsamplesduration": "\n\nThe [RTCAudioSourceStats] dictionary's **`totalSamplesDuration`** property 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. <!-- Dropped samples in `droppedSamplesDuration`; not implemented -->\n\nThis can be used with [RTCAudioSourceStats.totalAudioEnergy] to compute an [average audio level over different intervals](/en-US/docs/Web/API/RTCAudioSourceStats#description).\n\n> **Note:** For audio duration of remotely sourced tracks, see [RTCInboundRtpStreamStats.totalSamplesDuration].",
+ "trackidentifier": "\n\nThe [RTCAudioSourceStats] dictionary's property **`trackIdentifier`** contains the `id` attribute of the associated [`MediaStreamTrack`](/en-US/docs/Web/API/MediaStreamTrack).",
+ "type": "\n\nThe [RTCAudioSourceStats] dictionary's property **`type`** is a string with value `media-source`.\n\nThe type of `media-source` identifies the type of statistics as either [RTCAudioSourceStats] or [RTCVideoSourceStats] when iterating the [RTCStatsReport] returned by [RTCRtpSender.getStats] or [RTCPeerConnection.getStats].\nThe type of stats can further be differentiated using the [RTCAudioSourceStats.kind], which will be `audio` for `RTCAudioSourceStats`."
+ }
+ },
+ "rtccertificate": {
+ "docs": "\n\nThe **`RTCCertificate`** interface of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) provides an object representing a certificate that an [RTCPeerConnection] uses to authenticate.\n\n`RTCCertificate` is a , so it can be cloned with [structuredClone] or copied between [Workers](/en-US/docs/Web/API/Worker) using [Worker/postMessage].",
+ "properties": {
+ "expires": "\n\nThe read-only **`expires`** property of the [RTCCertificate] interface returns the expiration date of the certificate.\n\nBy default a new certificate is configured with `expires` set to a value of 2592000000 milliseconds, or 30 days.\nThe expiration time cannot exceed 31536000000 milliseconds, or 365 days.\nIt's also useful to note that browsers may further restrict the expiration time of certificates if they choose.",
+ "getfingerprints": "\n\nThe **`getFingerprints()`** method of the **[RTCCertificate]** interface is used to get an array of certificate fingerprints.\n\nAn application can use this method to compare the client certificate fingerprints with the certificate fingerprints from the server.\nThe server and client may support different sets of algorithms: all fingerprint values for the set of algorithms supported by both client and server should match."
+ }
+ },
+ "rtccertificatestats": {
+ "docs": "`WebRTC`\n\nThe **`RTCCertificateStats`** dictionary of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) is used to report information about a certificate used by an [RTCDtlsTransport] and its underlying [RTCIceTransport].\n\nThe report can be obtained by iterating the [RTCStatsReport] returned by [RTCPeerConnection.getStats] until you find an entry with the [`type`](#type) of `certificate`.",
+ "properties": {
+ "base64certificate": "\n\nThe **`base64Certificate`** property of the [RTCCertificateStats] dictionary is a string containing the base-64 representation of the DER-encoded certificate.\n\nThis is essentially an encoding of the original certificate as a string that can safely serialized and deserialized when sent over an IP network.",
+ "fingerprint": "\n\nThe **`fingerprint`** property of the [RTCCertificateStats] dictionary is a string containing the fingerprint value of the associated [RTCCertificate].",
+ "fingerprintalgorithm": "\n\nThe **`fingerprintAlgorithm`** property of the [RTCCertificateStats] dictionary is a string containing the name of the hash function used to generate the [RTCCertificateStats.fingerprint] value in the associated [RTCCertificate].",
+ "id": "\n\nThe **`id`** property of the [RTCCertificateStats] dictionary is a string that uniquely identifies the object for which this object provides statistics.\n\nUsing 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].",
+ "timestamp": "\n\nThe **`timestamp`** property of the [RTCCertificateStats] dictionary is a [DOMHighResTimeStamp] object specifying the time at which the data in the object was sampled.",
+ "type": "\n\nThe **`type`** property of the [RTCCertificateStats] dictionary is a string with the value `\"certificate\"`.\n\nDifferent statistics are obtained by iterating the [RTCStatsReport] object returned by a call to [RTCPeerConnection.getStats].\nThe type indicates the set of statistics available through the object in a particular iteration step.\nA value of `\"certificate\"` indicates that the statistics available in the current step are those defined in [RTCCertificateStats]."
+ }
+ },
+ "rtcdatachannel": {
+ "docs": "\n\nThe **`RTCDataChannel`** interface represents a network channel which can be used for bidirectional peer-to-peer transfers of arbitrary data. Every data channel is associated with an [RTCPeerConnection], and each peer connection can have up to a theoretical maximum of 65,534 data channels (the actual limit may vary from browser to browser).\n\nTo create a data channel and ask a remote peer to join you, call the [RTCPeerConnection]'s [RTCPeerConnection.createDataChannel] method. The peer being invited to exchange data receives a [RTCPeerConnection.datachannel_event] event (which has type [RTCDataChannelEvent]) to let it know the data channel has been added to the connection.\n\n`RTCDataChannel` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).\n\n",
+ "properties": {
+ "binarytype": "\n\nThe property **`binaryType`** on the\n[RTCDataChannel] interface is a string which specifies\nthe type of object which should be used to represent binary data received\non the [RTCDataChannel]. Values allowed by the\n[WebSocket.binaryType] property are also permitted here:\n`blob` if [Blob] objects are being used or\n`arraybuffer` if `ArrayBuffer` objects are being used. The\ndefault is `blob`.\n\nWhen a binary message is received on the data channel, the resulting\n[RTCDataChannel.message_event] event's [MessageEvent.data] property is an object of\nthe type specified by the `binaryType`.",
+ "bufferedamount": "\n\nThe read-only `RTCDataChannel` property\n**`bufferedAmount`** returns the number of bytes of data\ncurrently queued to be sent over the data channel. The queue may build up as a\nresult of calls to the [RTCDataChannel.send] method. This only\nincludes data buffered by the user agent itself; it doesn't include any framing overhead\nor buffering done by the operating system or network hardware.\n\nThe 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:** Closing the data channel doesn't reset this count, even though the user agent purges\n> the queued messages. However, even after closing the channel, attempts to send\n> messages continue to add to the `bufferedAmount` value, even though the\n> messages are neither sent nor buffered.\n\nWhenever this value decreases to fall to or below the value specified in the\n[RTCDataChannel.bufferedAmountLowThreshold]\nproperty, the user agent fires the [RTCDataChannel.bufferedamountlow_event] event. This event may\nbe used, for example, to implement code which queues more messages to be sent whenever\nthere's room to buffer them.",
+ "bufferedamountlow_event": "\n\nA **`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 [RTCDataChannel.bufferedAmountLowThreshold]. `bufferedamountlow` events aren't sent if `bufferedAmountLowThreshold` is 0.\n\nThis event is not cancelable and does not bubble.",
+ "bufferedamountlowthreshold": "\n\nThe `RTCDataChannel` property\n**`bufferedAmountLowThreshold`** 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\n[RTCDataChannel.bufferedAmount] property, falls to or\nbelow this value, a [RTCDataChannel.bufferedamountlow_event] 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\n[RTCDataChannel.bufferedamountlow_event] or\n[EventTarget.addEventListener].\n\nThe 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.",
+ "close": "\n\nThe **`RTCDataChannel.close()`** method closes the\n[RTCDataChannel]. Either peer is permitted to call this method to initiate\nclosure of the channel.\n\nClosure of the data channel is not instantaneous. Most of the process of closing the\nconnection is handled asynchronously; you can detect when the channel has finished\nclosing by watching for a [RTCDataChannel.close_event] event on the data channel.\n\nThe sequence of events which occurs in response to this method being called:\n\n1. [RTCDataChannel.readyState] is set to `closing`.\n2. A background task is established to handle the remainder of the steps below, and\n `close()` returns to the caller.\n3. The transport layer deals with any buffered messages; the protocol layer decides\n whether to send them or discard them.\n4. The underlying data transport is closed.\n5. The [RTCDataChannel.readyState] property is set to\n `closed`.\n6. If the transport was closed with an error,\n the `RTCDataChannel` is sent\n an [RTCDataChannel.error_event] event\n with its [DOMException.name] set to `NetworkError`.\n7. A [RTCDataChannel.close_event] event is sent to the channel.",
+ "close_event": "\n\nThe **`close`** event is sent to the [RTCDataChannel.close_event] event handler on an [RTCDataChannel] instance when the data transport for the data channel has closed. Before any further data can be transferred using `RTCDataChannel`, a new 'RTCDataChannel' instance must be created.\n\nThis event is not cancelable and does not bubble.",
+ "closing_event": "\n\nThe **`closing`** event is sent to an [RTCDataChannel] just before the channel begins the process of shutting down its underlying data transport.\n\nThis event is not cancelable and does not bubble.",
+ "error_event": "\n\nA WebRTC [RTCDataChannel.error_event] event is sent to an [RTCDataChannel] object's `onerror` event handler when an error occurs on the data channel.\n\nThe [RTCErrorEvent] object provides details about the error that occurred; see that article for details.\n\nThis event is not cancelable and does not bubble.",
+ "id": "\n\nThe read-only `RTCDataChannel` property\n**`id`** returns an ID number (between 0 and 65,534) which\nuniquely identifies the [RTCDataChannel]. This ID is set at the\ntime the data channel is created, either by the user agent (if\n[RTCDataChannel.negotiated] is `false`) or by the site or app\nscript (if `negotiated` is `true`).\n\nEach [RTCPeerConnection] can therefore have up to a theoretical maximum of\n65,534 data channels on it, although the actual maximum may vary from browser to\nbrowser.",
+ "label": "\n\nThe read-only `RTCDataChannel` property **`label`**\nreturns a string containing a name describing the data channel. These\nlabels are not required to be unique.\n\nYou may use the label as you wish; you could use it to identify all the channels that\nare being used for the same purpose, by giving them all the same name. Or you could give\neach channel a unique label for tracking purposes. It's entirely up to the design\ndecisions made when building your site or app.\n\nA unique ID can be found in the [RTCDataChannel.id] property.\n\n> **Note:** A data channel's label is set when the channel is created by calling\n> [RTCPeerConnection.createDataChannel]. It cannot be changed after that.",
+ "maxpacketlifetime": "\n\nThe read-only `RTCDataChannel` property\n**`maxPacketLifeTime`** returns the amount of time, in\nmilliseconds, the browser is allowed to take to attempt to transmit a message, as set\nwhen the data channel was created, or `null`. This limits how long\nthe browser can continue to attempt to transmit and retransmit the message before giving\nup.",
+ "maxretransmits": "\n\nThe read-only `RTCDataChannel` property\n**`maxRetransmits`** returns the maximum number of times the\nbrowser should try to retransmit a message before giving up, as set when the data\nchannel was created, or `null`, which indicates that there is no\nmaximum. This can only be set when the [RTCDataChannel] is created\nby calling [RTCPeerConnection.createDataChannel], using the\n`maxRetransmits` field in the specified `options`.",
+ "message_event": "\n\nThe WebRTC **`message`** event is sent to the [RTCDataChannel.message_event] event handler on an [RTCDataChannel] object when a message has been received from the remote peer.\n\n> **Note:** The `message` event uses as its event object type the [MessageEvent] interface defined by the HTML specification.\n\nThis event is not cancelable and does not bubble.",
+ "negotiated": "\n\nThe read-only `RTCDataChannel` property\n**`negotiated`** indicates whether the\n[RTCDataChannel]'s connection was negotiated by the Web app\n(`true`) or by the WebRTC layer (`false`). **The\ndefault is `false`.**\n\nSee [Creating a data channel](/en-US/docs/Web/API/WebRTC_API/Using_data_channels#creating_a_data_channel) for further information about this property.",
+ "open_event": "\n\nThe WebRTC **`open`** event is sent to an [RTCDataChannel] object's `onopen` event handler when the underlying transport used to send and receive the data channel's messages is opened or reopened.\n\nThis event is not cancelable and does not bubble.",
+ "ordered": "\n\nThe read-only `RTCDataChannel` property **`ordered`** indicates\nwhether or not the data channel guarantees in-order delivery of messages;\nthe default is `true`,\nwhich indicates that the data channel is indeed ordered.\nThis is set when the [RTCDataChannel] is created,\nby setting the `ordered` property\non the object passed as [RTCPeerConnection.createDataChannel]'s `options` parameter.",
+ "protocol": "\n\nThe read-only `RTCDataChannel` property\n**`protocol`** returns a string containing the\nname of the subprotocol in use. If no protocol was specified when the data channel was\ncreated, then this property's value is the empty string (`\"\"`).\n\n> **Note:** The permitted values of this property are defined by the website or app using the\n> data channel.\n\nThe ability for each channel to have a defined subprotocol lets your app, for example,\nuse JSON objects as messages on one channel while another channel is plaintext and\nanother is raw binary or even some other format.",
+ "readystate": "\n\nThe read-only `RTCDataChannel` property **`readyState`** returns a string which indicates the state of the data channel's underlying data connection.",
+ "reliable": "\n\nThe read-only `RTCDataChannel` property\n**`reliable`** indicates whether or not the data channel is\nreliable.\n\n> **Warning:** This property is obsolete. Use [RTCDataChannel.ordered] instead in any\n> new code, and update existing code as soon as possible.",
+ "send": "\n\nThe **`send()`** method of the\n[RTCDataChannel] interface sends data across the data channel to the\nremote peer.\nThis can be done any time except during the initial process of\ncreating the underlying transport channel. Data sent before connecting is buffered if\npossible (or an error occurs if it's not possible), and is also buffered if sent while\nthe connection is closing or closed.\n\n> **Note:** Different browsers have different limitations on the size of the message you can\n> send. Specifications exist to define how to automatically fragment large messages, but\n> not all browsers implement them, and those that do have various additional\n> restrictions. This will get less complicated over time, but for now, if you have\n> questions, see [Understanding message size limits](/en-US/docs/Web/API/WebRTC_API/Using_data_channels#understanding_message_size_limits)."
+ }
+ },
+ "rtcdatachannelevent": {
+ "docs": "\n\nThe **`RTCDataChannelEvent`** interface\nrepresents an event related to a specific [RTCDataChannel].\n\n",
+ "properties": {
+ "channel": "\n\nThe read-only property **`RTCDataChannelEvent.channel`**\nreturns the [RTCDataChannel] associated with the event."
+ }
+ },
+ "rtcdtlstransport": {
+ "docs": "\n\nThe **`RTCDtlsTransport`** interface provides access to information about the Datagram Transport Layer Security (****) transport over which a [RTCPeerConnection]'s and packets are sent and received by its [RTCRtpSender] and [RTCRtpReceiver] objects.\n\nA `RTCDtlsTransport` object is also used to provide information about packets transmitted and received by a connection's [data channels](/en-US/docs/Web/API/RTCDataChannel).\n\nFeatures of the DTLS transport include the addition of security to the underlying transport; the `RTCDtlsTransport` interface can be used to obtain information about the underlying transport and the security added to it by the DTLS layer.\n\n",
+ "properties": {
+ "error_event": "\n\nAn [RTCDtlsTransport] receives an `error` event when a transport-level error occurs on the [RTCPeerConnection].\n\nThis event is not cancelable and does not bubble.",
+ "icetransport": "\n\nThe read-only **[RTCDtlsTransport]**\nproperty **`iceTransport`** contains a reference\nto the underlying [RTCIceTransport].",
+ "state": "\n\nThe **`state`** read-only property of the\n[RTCDtlsTransport] interface provides information which describes a\nDatagram Transport Layer Security (****) transport state."
+ }
+ },
+ "rtcdtmfsender": {
+ "docs": "\n\nThe **`RTCDTMFSender`** interface provides a mechanism for transmitting codes on a [WebRTC](/en-US/docs/Web/API/WebRTC_API) [RTCPeerConnection]. You gain access to the connection's `RTCDTMFSender` through the [RTCRtpSender.dtmf] property on the audio track you wish to send DTMF with.\n\nThe primary purpose for WebRTC's DTMF support is to allow WebRTC-based communication clients to be connected to a [public-switched telephone network (PSTN)](https://en.wikipedia.org/wiki/Public_switched_telephone_network) or other legacy telephone service, including extant voice over IP (VoIP) services. For that reason, DTMF can't be used between two WebRTC-based devices, because there is no mechanism provided by WebRTC for receiving DTMF codes.\n\n",
+ "properties": {
+ "insertdtmf": "\n\nThe **`insertDTMF()`** method on the [RTCDTMFSender] interface\nstarts sending tones to the remote peer over the\n[RTCPeerConnection].\n\nSending of the tones is performed asynchronously,\nwith [`tonechange`](/en-US/docs/Web/API/RTCDTMFSender/tonechange_event) events sent to the `RTCDTMFSender` every time\na tone starts or ends.\n\nAs long as the connection is active, you can send tones at any time. Calling\n`insertDTMF()` replaces any already-pending tones from the `toneBuffer`.\nYou can abort sending queued tones by specifying an empty string (`\"\"`) as the set of tones to play.\nSince `insertDTMF()` replaces the tone buffer, in order to add to the DTMF tones being played, it is necessary to call\n`insertDTMF` with a string containing both the remaining tones (stored in the `toneBuffer`) and the new tones appended together.",
+ "tonebuffer": "\n\nThe [RTCDTMFSender] interface's toneBuffer property returns a string\ncontaining a list of the tones currently queued for sending to the\nremote peer over the [RTCPeerConnection]. To place tones into the buffer,\ncall [RTCDTMFSender.insertDTMF].\n\nTones are removed from the string as they're played, so only upcoming tones are listed.",
+ "tonechange_event": "\n\nThe **`tonechange`** event is sent to an [RTCDTMFSender] by the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) to indicate when tones previously queued for sending (by calling [RTCDTMFSender.insertDTMF]) begin and end.\n\nTo determine what tone started playing, or if a tone stopped playing, check the value of the event's [RTCDTMFToneChangeEvent.tone] property.\n\nThis event is not cancelable and does not bubble."
+ }
+ },
+ "rtcdtmftonechangeevent": {
+ "docs": "\n\nThe **`RTCDTMFToneChangeEvent`** interface represents events sent to indicate that tones have started or finished playing. This interface is used by the [`tonechange`](/en-US/docs/Web/API/RTCDTMFSender/tonechange_event) event.\n\n",
+ "properties": {
+ "tone": "\n\nThe read-only property **`RTCDTMFToneChangeEvent.tone`**\nreturns the DTMF character which has just begun to play, or an empty string\n(`\"\"`). if all queued tones have finished playing (that is,\n[RTCDTMFSender.toneBuffer] is empty)."
+ }
+ },
+ "rtcencodedaudioframe": {
+ "docs": "\n\nThe **`RTCEncodedAudioFrame`** of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) represents an encoded audio frame in the WebRTC receiver or sender pipeline, which may be modified using a [WebRTC Encoded Transform](/en-US/docs/Web/API/WebRTC_API/Using_Encoded_Transforms).\n\nThe interface provides methods and properties to get metadata about the frame, allowing its format and order in the sequence of frames to be determined.\nThe `data` property gives access to the encoded frame data as a buffer, which might be encrypted, or otherwise modified by a transform.\n\n> **Note:** This feature is available in [_Dedicated_ Web Workers](/en-US/docs/Web/API/Web_Workers_API#worker_types).",
+ "properties": {
+ "data": "\n\nThe **`data`** property of the [RTCEncodedAudioFrame] interface returns a buffer containing the data for an encoded frame.",
+ "getmetadata": "\n\nThe **`getMetadata()`** method of the [RTCEncodedAudioFrame] interface returns an object containing the metadata associated with the frame.\n\nThis includes information about the frame, including the audio encoding used, the synchronization source and contributing sources, and the sequence number (for incoming frames).",
+ "timestamp": "\n\nThe readonly **`timestamp`** property of the [RTCEncodedAudioFrame] interface indicates the time at which frame sampling started."
+ }
+ },
+ "rtcencodedvideoframe": {
+ "docs": "\n\nThe **`RTCEncodedVideoFrame`** of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) represents an encoded video frame in the WebRTC receiver or sender pipeline, which may be modified using a [WebRTC Encoded Transform](/en-US/docs/Web/API/WebRTC_API/Using_Encoded_Transforms).\n\n> **Note:** This feature is available in [_Dedicated_ Web Workers](/en-US/docs/Web/API/Web_Workers_API#worker_types).",
+ "properties": {
+ "data": "\n\nThe **`data`** property of the [RTCEncodedVideoFrame] interface returns a buffer containing the frame data.",
+ "getmetadata": "\n\nThe **`getMetadata()`** method of the [RTCEncodedVideoFrame] interface returns an object containing the metadata associated with the frame.\n\nThis includes information about the frame, including its size, video encoding, other frames needed to construct a full image, timestamp, and other information.",
+ "timestamp": "\n\nThe readonly **`timestamp`** property of the [RTCEncodedVideoFrame] interface indicates the time at which frame sampling started.",
+ "type": "\n\nThe readonly **`type`** property of the [RTCEncodedVideoFrame] interface indicates whether this frame is a key frame, delta frame, or empty frame."
+ }
+ },
+ "rtcerror": {
+ "docs": "`WebRTC`\n\nThe **`RTCError`** interface describes an error which has occurred while handling [WebRTC](/en-US/docs/Web/API/WebRTC_API) operations. It's based upon the standard [DOMException] interface that describes general DOM errors.\n\n",
+ "properties": {
+ "errordetail": "\n\nThe [RTCError] interface's read-only\n**`errorDetail`** property is a string indicating the [WebRTC](/en-US/docs/Web/API/WebRTC_API)-specific error code that occurred.",
+ "receivedalert": "\n\nThe [RTCError] read-only property\n**`receivedAlert`** specifies the fatal \nerror which resulted in an alert being received from the remote peer.",
+ "sctpcausecode": "\n\nThe read-only **`sctpCauseCode`** property in an\n[RTCError] object provides the cause code explaining\nwhy the SCTP negotiation failed, if the `RTCError` represents an SCTP error.",
+ "sdplinenumber": "\n\nThe [RTCError] interface's read-only property\n**`sdpLineNumber`** specifies the line number within the\n at which a syntax error occurred while parsing it.",
+ "sentalert": "\n\nThe read-only **`sentAlert`** property in an\n[RTCError] object specifies the alert number occurred\nwhile sending data to the remote peer, if the error represents an outbound DTLS error."
+ }
+ },
+ "rtcerrorevent": {
+ "docs": "`WebRTC`\n\nThe WebRTC API's **`RTCErrorEvent`** interface represents an error sent to a WebRTC object. It's based on the standard [Event] interface, but adds RTC-specific information describing the error, as shown below.\n\n",
+ "properties": {
+ "error": "`WebRTC`\n\nThe read-only [RTCErrorEvent] property **`error`**\ncontains an [RTCError] object describing the details of the error which the\nevent is announcing."
+ }
+ },
+ "rtcicecandidate": {
+ "docs": "\n\nThe **`RTCIceCandidate`** interface—part of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API)—represents a candidate Interactive Connectivity Establishment () configuration which may be used to establish an [RTCPeerConnection].\n\nAn ICE candidate describes the protocols and routing needed for WebRTC to be able to communicate with a remote device. When starting a WebRTC peer connection, typically a number of candidates are proposed by each end of the connection, until they mutually agree upon one which describes the connection they decide will be best. WebRTC then uses that candidate's details to initiate the connection.\n\nFor details on how the ICE process works, see [Lifetime of a WebRTC session](/en-US/docs/Web/API/WebRTC_API/Session_lifetime). The article [WebRTC connectivity](/en-US/docs/Web/API/WebRTC_API/Connectivity) provides additional useful details.",
+ "properties": {
+ "address": "\n\nThe **[RTCIceCandidate]** interface's read-only **`address`** property is a string providing the IP address of the device which is the source of the candidate.\nThe `address` is `null` by default if not otherwise specified.\n\nThe `address` field's value is set from the `candidateInfo` options object passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nYou can't specify the value of `address` directly in the options object, but its value is automatically extracted from the object's `candidate` a-line, if it's formatted properly.",
+ "candidate": "\n\nThe read-only property **`candidate`** on the [RTCIceCandidate] interface returns a string describing the candidate in detail.\nMost of the other properties of `RTCIceCandidate` are actually extracted from this string.\n\nThis property can be configured using the `candidate` property of the object passed into the [RTCIceCandidate.RTCIceCandidate] or [RTCPeerConnection.addIceCandidate].",
+ "component": "\n\nThe read-only **`component`** property\non the [RTCIceCandidate] interface is a string which indicates whether\nthe candidate is an [RTP](/en-US/docs/Web/API/WebRTC_API/Intro_to_RTP) or\nan RTCP candidate.\n\nIf a candidate represents both RTP and RTCP multiplexed together, it is reported as an\nRTP candidate.",
+ "foundation": "\n\nThe **[RTCIceCandidate]**\ninterface's read-only **`foundation`** property is a string\nwhich uniquely identifies the candidate across multiple transports.\n\nThe `foundation` can therefore be used to correlate candidates that are present on\nmultiple [RTCIceTransport] objects",
+ "port": "\n\nThe **[RTCIceCandidate]** interface's read-only **`port`** property contains the port\nnumber on the device at the address given by [RTCIceCandidate.address] at which the candidate's peer can be reached.\n\nThe `port` field's value is set from the `candidateInfo` options object passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nYou can't specify the value of `port` directly in the options object, but its value is automatically extracted from the object's `candidate` a-line, if it's formatted properly.",
+ "priority": "\n\nThe **[RTCIceCandidate]** interface's read-only **`priority`** property specifies the candidate's priority according to the remote peer; the higher this value is, the better the remote peer considers the candidate to be.\n\nThe `priority` field's value is set from the `candidateInfo` options object passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nYou can't specify the value of `priority` directly in the options object, but its value is automatically extracted from the object's `candidate` a-line, if it's formatted properly.",
+ "protocol": "\n\nThe **[RTCIceCandidate]** interface's read-only **`protocol`** property is a string\nwhich indicates whether the candidate uses or as its transport protocol.\n\nThe `protocol` field's value is set from the `candidateInfo` options object passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nYou can't specify the value of `protocol` directly in the options object, but its value is automatically extracted from the object's `candidate` a-line, if it's formatted properly.\n\n`protocol` is `null` by default if not specified properly in the SDP, but this is an error condition and will result in a thrown exception when you call [RTCPeerConnection.addIceCandidate].",
+ "relatedaddress": "\n\nThe **[RTCIceCandidate]** interface's read-only **`relatedAddress`** property is a\nstring indicating the **related address** of a relay or reflexive candidate.\n\nIf the candidate is a host candidate (that is, its [RTCIceCandidate/address] is in fact the real IP address of the remote peer), `relatedAddress` is `null`.\n\nThe `relatedAddress` field's value is set from the `candidateInfo` options object passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nYou can't specify the value of `relatedAddress` directly in the options object, but its value is automatically extracted from the object's `candidate` a-line if it's formatted properly(the `rel-address` field).\n\nThe related address and port ([RTCIceCandidate.relatedPort]) are not used at all by itself; they are provided\nfor analysis and diagnostic purposes only, and their inclusion may be blocked by security systems, so do not rely on them having non-`null` values.",
+ "relatedport": "\n\nThe **[RTCIceCandidate]** interface's read-only **`relatedPort`** property indicates the port number of reflexive or relay candidates.\n\nIf the candidate is a host candidate (that is, its [RTCIceCandidate/address] is in fact the real IP address of the remote peer), `relatedPort` is `null`.\n\nThe `relatedPort` field's value is set from the `candidateInfo` options object passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nYou can't specify the value of `relatedPort` directly in the options object, but its value is automatically extracted from the object's `candidate` a-line, if it's formatted properly (the `rel-port` field).\n\nThe related address ([RTCIceCandidate.relatedAddress]) and port are not used at all by itself; they are provided for\nanalysis and diagnostic purposes only, and their inclusion may be blocked by security systems, so do not rely on them having non-`null` values.",
+ "sdpmid": "\n\nThe read-only property **`sdpMid`** on the [RTCIceCandidate] interface returns a string\nspecifying the media stream identification tag of the media component with which the candidate is associated.\nThis ID uniquely identifies a given stream for the component with which the candidate is associated.\n\nThis property can be configured by specifying the value of the `sdpMid` property in the `candidateInfo` options object that is passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nIf you call the constructor with an m-line string instead of the options object, the value of `sdpMid` is extracted from the specified candidate m-line string.",
+ "sdpmlineindex": "\n\nThe read-only **`sdpMLineIndex`** property on the [RTCIceCandidate] interface\nis a zero-based index of the m-line describing the media associated with the candidate.\n\nThis property can be configured by specifying the value of the `sdpMLineIndex` property in the `candidateInfo` options object that is passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nIf you call the constructor with an m-line string instead of the options object, the value of `sdpMLineIndex` is extracted from the specified candidate m-line string.",
+ "tcptype": "\n\nThe **[RTCIceCandidate]** interface's read-only **`tcpType`** property is included on TCP candidates to provide additional details about the candidate type.\n\nThe `tcpType` field's value is set from the `candidateInfo` options object passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nYou can't specify the value of `tcpType` directly in the options object, but its value is automatically extracted from the object's `candidate` a-line, if it's formatted properly.",
+ "tojson": "\n\nThe [RTCIceCandidate] method **`toJSON()`** converts the `RTCIceCandidate` on which it's called into JSON.\n\nA stringified version of the object can then be obtained by calling `stringify()` on the returned object.",
+ "type": "\n\nThe **[RTCIceCandidate]** interface's read-only **`type`** specifies the type of candidate the object represents.\n\nThe `type` field's value is set from the `candidateInfo` options object passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nYou can't specify the value of `type` directly in the options object, but its value is automatically extracted from the object's `candidate` a-line (the `cand-type` field), if it's formatted properly.",
+ "usernamefragment": "\n\nThe read-only **`usernameFragment`** property on the [RTCIceCandidate] interface is a string indicating the\nusername fragment (\"ufrag\") that uniquely identifies a single ICE interaction session.\n\nThis value is specified using the `usernameFragment` property in the `candidateInfo` options object that is passed to the [RTCIceCandidate.RTCIceCandidate] constructor.\nIf you call the constructor with an m-line string instead of the options object, the value of `usernameFragment` is extracted from the specified candidate m-line string.\n\nNote that 24 bits of the username fragment are required to be randomized by the browser. See [Randomization](#randomization) below for details."
+ }
+ },
+ "rtcicecandidatepair": {
+ "docs": "\n\nThe **`RTCIceCandidatePair`** dictionary describes a pair of ICE candidates which together comprise a description of a viable connection between two WebRTC endpoints. It is used as the return value from [RTCIceTransport.getSelectedCandidatePair] to identify the currently-selected candidate pair identified by the ICE agent.",
+ "properties": {
+ "local": "\n\nThe **`local`** property of the\n**[RTCIceCandidatePair]** dictionary specifies the\n[RTCIceCandidate] which describes the configuration of the local end of a\nviable WebRTC connection.",
+ "remote": "\n\nThe **`remote`** property of the\n**[RTCIceCandidatePair]** dictionary specifies the\n[RTCIceCandidate] describing the configuration of the remote end of a\nviable WebRTC connection."
+ }
+ },
+ "rtcicecandidatepairstats": {
+ "docs": "\n\nThe **`RTCIceCandidatePairStats`** dictionary of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) is used to report statistics that provide insight into the quality and performance of an [RTCPeerConnection] while connected and configured as described by the specified pair of candidates.\n\nThe statistics can be obtained by iterating the [RTCStatsReport] returned by [RTCPeerConnection.getStats] until you find an entry with the [`type`](#type) of `\"candidate-pair\"`.",
+ "properties": {
+ "availableincomingbitrate": "\n\nThe [RTCIceCandidatePairStats] property\n**`availableIncomingBitrate`** returns a value indicative of\nthe available inbound capacity of the network connection represented by the candidate\npair. The higher the value, the more bandwidth you can assume is available for\nincoming data.\n\nYou can get the outgoing available bitrate from\n[RTCIceCandidatePairStats.availableoutgoingBitrate].",
+ "availableoutgoingbitrate": "\n\nThe [RTCIceCandidatePairStats] property\n**`availableOutgoingBitrate`** returns a value indicative of\nthe available outbound capacity of the network connection represented by the candidate\npair. The higher the value, the more bandwidth you can assume is available for\noutgoing data.\n\nYou can get the incoming available bitrate from\n[RTCIceCandidatePairStats.availableIncomingBitrate].",
+ "bytesreceived": "\n\nThe [RTCIceCandidatePairStats] property\n**`bytesReceived`** indicates the total number of payload\nbytes—that is, bytes which aren't overhead such as headers or padding—that have been\nreceived to date on the connection described by the candidate pair.\n\nThe [RTCIceCandidatePairStats.bytesSent] property reports the\nnumber of bytes sent so far on the described connection.",
+ "bytessent": "\n\nThe [RTCIceCandidatePairStats] property\n**`bytesSent`** indicates the total number of payload\nbytes—that is, bytes which aren't overhead such as headers or padding—that have been\nsent so far on the connection described by the candidate pair.\n\nThe [RTCIceCandidatePairStats.bytesReceived] property\nreports the number of bytes received so far on the described connection.",
+ "currentroundtriptime": "\n\nThe [RTCIceCandidatePairStats] property\n**`currentRoundTripTime`** is a floating-point value\nindicating the number of seconds it takes for data to be sent by this peer to the\nremote peer and back over the connection described by this pair of \ncandidates.",
+ "id": "\n\nThe **`id`** property of the [RTCIceCandidatePairStats] dictionary is a string that uniquely identifies the object for which this object provides statistics.\n\nUsing 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].",
+ "lastpacketreceivedtimestamp": "\n\nThe [RTCIceCandidatePairStats] property\n**`lastPacketReceivedTimestamp`** indicates the time at which\nthe connection described by the candidate pair last received a packet.\n packets are not included.",
+ "lastpacketsenttimestamp": "\n\nThe [RTCIceCandidatePairStats] property\n**`lastPacketSentTimestamp`** indicates the time at which the\nconnection described by the candidate pair last sent a packet, not including\n packets.",
+ "localcandidateid": "\n\nThe [RTCIceCandidatePairStats] property\n**`localCandidateId`** is a string that uniquely identifies\nthe local candidate which was analyzed to generate the\n[RTCIceCandidateStats] used to compute the statistics for this pair of\ncandidates.",
+ "nominated": "\n\nThe [RTCIceCandidatePairStats] property\n**`nominated`** specifies whether or not the candidate pair\ndescribed by the underlying `RTCIceCandidatePair` has been nominated to be\nused as the configuration for the WebRTC connection.",
+ "priority": "\n\nThe _obsolete_ [RTCIceCandidatePairStats]\nproperty **`priority`** reports the priority of the candidate\npair as an integer value. The higher the value, the more likely the WebRTC\nlayer is to select the candidate pair when the time comes to establish (or re-establish)\na connection between the two peers.",
+ "readable": "\n\nThe _obsolete_ [RTCIceCandidatePairStats]\nproperty **`readable`** reports whether or not the connection\ndescribed by the candidate pair has received at least one valid incoming ICE\nrequest.",
+ "remotecandidateid": "\n\nThe [RTCIceCandidatePairStats] property\n**`remoteCandidateId`** is a string that uniquely identifies\nthe remote candidate which was analyzed to generate the\n[RTCIceCandidateStats] used to compute the statistics for this pair of\ncandidates.",
+ "requestsreceived": "\n\nThe [RTCIceCandidatePairStats] dictionary's\n**`requestsReceived`** property indicates the total number of\n connectivity check requests that have been received so far on the\nconnection described by this pairing of candidates.",
+ "requestssent": "\n\nThe [RTCIceCandidatePairStats] dictionary's\n**`requestsSent`** property indicates the total number of\n connectivity check requests that have been sent so far on the\nconnection described by this pair of candidates.",
+ "responsesreceived": "\n\nThe **`responsesReceived`** property\nin the [RTCIceCandidatePairStats] dictionary indicates the total number\nof connectivity check responses that have been received on the\nconnection described by this pair of candidates.",
+ "responsessent": "\n\nThe [RTCIceCandidatePairStats] dictionary's\n**`responsesSent`** property indicates the total number of\n connectivity check responses that have been sent so far on the\nconnection described by this pair of candidates.",
+ "selected": "\n\nThe _non-standard_, Firefox-specific [RTCIceCandidatePairStats] property **`selected`** indicates whether or not the candidate pair described by the object is the one currently being used to communicate with the remote peer.",
+ "state": "\n\nThe **`state`** property is a string that indicates the state of the checklist of which the candidate pair is a member.",
+ "timestamp": "\n\nThe **`timestamp`** property of the [RTCIceCandidatePairStats] dictionary is a [DOMHighResTimeStamp] object specifying the time at which the data in the object was sampled.",
+ "totalroundtriptime": "\n\nThe [RTCIceCandidatePairStats] dictionary's\n**`totalRoundTripTime`** property is the total time that has\nelapsed between sending requests and receiving the responses, for\nall such requests that have been made so far on the pair of candidates described by\nthis `RTCIceCandidatePairStats` object. This value includes both\nconnectivity check and consent check requests.",
+ "transportid": "\n\nThe **`transportId`** property\nuniquely identifies the [RTCIceTransport] that was inspected to obtain\nthe transport-related statistics contained in the\n[RTCIceCandidatePairStats] object.",
+ "type": "\n\nThe **`type`** property of the [RTCIceCandidatePairStats] dictionary is a string with the value `\"candidate-pair\"`.\n\nDifferent statistics are obtained by iterating the [RTCStatsReport] object returned by a call to [RTCPeerConnection.getStats].\nThe type indicates the set of statistics available through the object in a particular iteration step.\nA value of `\"candidate-pair\"` indicates that the statistics available in the current step are those defined in [RTCIceCandidatePairStats].",
+ "writable": "\n\nThe _obsolete_ [RTCIceCandidatePairStats]\nproperty **`writable`** reports whether or not the connection\ndescribed by the candidate pair is writable."
+ }
+ },
+ "rtcicecandidatestats": {
+ "docs": "\n\nThe **`RTCIceCandidateStats`** dictionary of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) is used to report statistics related to an [RTCIceCandidate].\n\nThe statistics can be obtained by iterating the [RTCStatsReport] returned by [RTCPeerConnection.getStats] until you find a report with the [`type`](#type) of `local-candidate`.",
+ "properties": {
+ "address": "\n\nThe **`address`** property of the\n[RTCIceCandidateStats] dictionary indicates the address of the\n candidate. While it's preferred that the address be specified as\nan IPv4 or IPv6 numeric address, a fully-qualified domain name can be used as\nwell.\n\nWhen a domain name is specified, the first IP address selected for that\naddress is used, even if the domain name maps to multiple IP addresses.",
+ "candidatetype": "\n\nThe [RTCIceCandidateStats] interface's\n**`candidateType`** property is a string that indicates the\ntype of candidate the object represents.",
+ "deleted": "\n\nThe [RTCIceCandidateStats] dictionary's\n**`deleted`** property indicates whether or not the candidate\nhas been deleted or released.",
+ "id": "\n\nThe **`id`** property of the [RTCIceCandidateStats] dictionary is a string that uniquely identifies the object for which this object provides statistics.\n\nUsing 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].",
+ "port": "\n\nThe [RTCIceCandidateStats] dictionary's **`port`**\nproperty specifies the network port used by the candidate.",
+ "priority": "\n\nThe [RTCIceCandidateStats] dictionary's\n**`priority`** property is a positive integer value\nindicating the priority (or desirability) of the described candidate.\n\nDuring negotiation while setting up a WebRTC peer connection, the\npriority values reported to the remote peer by a are used\nto determine which candidates are considered \"more desirable\". The higher the value,\nthe more desirable the candidate is.",
+ "protocol": "\n\nThe [RTCIceCandidateStats] dictionary's\n**`protocol`** property specifies the protocol the specified\ncandidate would use for communication with the remote peer.",
+ "relayprotocol": "\n\nThe [RTCIceCandidateStats] dictionary's\n**`relayProtocol`** property specifies the protocol being used\nby a local candidate to communicate with the \nserver.\n\nThe ICE protocol being used by the candidate otherwise can be obtained from the\n[RTCIceCandidateStats.protocol] property.",
+ "timestamp": "\n\nThe **`timestamp`** property of the [RTCIceCandidateStats] dictionary is a [DOMHighResTimeStamp] object specifying the time at which the data in the object was sampled.",
+ "transportid": "\n\nThe [RTCIceCandidateStats] dictionary's\n**`transportId`** property is a string that uniquely\nidentifies the transport that produced the [RTCTransportStats] from which\ninformation about this candidate was taken.",
+ "type": "\n\nThe **`type`** property of the [RTCIceCandidateStats] dictionary is a string with the value `\"local-candidate\"`.\n\nDifferent statistics are obtained by iterating the [RTCStatsReport] object returned by a call to [RTCPeerConnection.getStats].\nThe type indicates the set of statistics available through the object in a particular iteration step.\nA value of `\"local-candidate\"` indicates that the statistics available in the current step are those defined in [RTCIceCandidateStats].",
+ "url": "\n\nThe [RTCIceCandidateStats] dictionary's\n**`url`** property specifies the URL of the\n server from which the described candidate was obtained. This\nproperty is _only_ available for local candidates."
+ }
+ },
+ "rtciceparameters": {
+ "docs": "\n\nThe **`RTCIceParameters`** dictionary specifies the username fragment and password assigned to an session.\n\nDuring ICE negotiation, each peer's username fragment and password are recorded in an `RTCIceParameters` object, which can be obtained from the [RTCIceTransport] by calling its [RTCIceTransport.getLocalParameters] or [RTCIceTransport.getRemoteParameters] method, depending on which end interests you.",
+ "properties": {
+ "password": "\n\nThe **[RTCIceParameters]**\ndictionary's **`password`** property specifies the ICE\npassword that, in tandem with the [RTCIceParameters.usernameFragment], uniquely identifies an ICE session for its entire\nduration.",
+ "usernamefragment": "\n\nThe **[RTCIceParameters]** dictionary's\n**`usernameFragment`** property specifies the username fragment\n(\"ufrag\") that uniquely identifies the corresponding ICE session for the duration of the\ncurrent ICE session."
+ }
+ },
+ "rtcicetransport": {
+ "docs": "\n\nThe **`RTCIceTransport`** interface provides access to information about the transport layer over which the data is being sent and received.\nThis is particularly useful if you need to access state information about the connection.\n\n",
+ "properties": {
+ "component": "\n\nThe read-only **[RTCIceTransport]**\nproperty **`component`** specifies whether the object is\nserving to transport or .",
+ "gatheringstate": "\n\nThe read-only property **`gatheringState`** property of the [RTCIceTransport] interface returns a string that indicates the current gathering state of the ICE agent: `\"new\"`, `\"gathering\"`, or `\"complete\"`.",
+ "gatheringstatechange_event": "\n\nA **`gatheringstatechange`** event is sent to an [RTCIceTransport] when its candidate gathering state changes.\n\nThe gathering state, whose actual status can be found in the transport object's [RTCIceTransport.gatheringState] property, indicates whether or not the ICE agent has begun gathering candidates, and if so, if it has finished doing so.\n\nThe key difference between `gatheringstatechange` and [RTCPeerConnection.icegatheringstatechange_event] is that the latter represents the overall state of the connection including every [RTCIceTransport] used by every [RTCRtpSender] and every [RTCRtpReceiver] on the entire connection. In contrast, `gatheringstatechange` represents changes to the candidate gathering state for a single transport.\n\nThis event is not cancelable and does not bubble.",
+ "getlocalcandidates": "\n\nThe **[RTCIceTransport]** method\n**`getLocalCandidates()`** returns an array of\n[RTCIceCandidate] objects, one for each of the candidates that have been\ngathered by the local device during the current agent\nsession.\n\nThe local candidates are placed in this list by the ICE agent prior to being delivered\nto the local client's code in an [RTCPeerConnection.icecandidate_event] event so that the client can\nforward the candidates to the remote peer.",
+ "getlocalparameters": "\n\nThe **[RTCIceTransport]** method\n**`getLocalParameters()`** returns an\n[RTCIceParameters] object which provides information uniquely identifying\nthe local peer for the duration of the ICE session.\n\nThe local peer's parameters are obtained during ICE signaling and delivered to the\ntransport when the client calls [RTCPeerConnection.setLocalDescription].",
+ "getremotecandidates": "\n\nThe **[RTCIceTransport]** method\n**`getRemoteCandidates()`** returns an array which contains\none [RTCIceCandidate] for each of the candidates that have been received\nfrom the remote peer so far during the current gathering\nsession.\n\nEach time your signaling code calls [RTCPeerConnection.addIceCandidate]\nto add a received candidate to the ICE session, the ICE agent places it in the list\nreturned by this function.",
+ "getremoteparameters": "\n\nThe **[RTCIceTransport]** method\n**`getRemoteParameters()`** returns an\n[RTCIceParameters] object which provides information uniquely\nidentifying the remote peer for the duration of the ICE session.\n\nThe remote peer's parameters are received during ICE signaling and delivered to the\ntransport when the client calls\n[RTCPeerConnection.setRemoteDescription].",
+ "getselectedcandidatepair": "\n\nThe [RTCIceTransport] method\n**`getSelectedCandidatePair()`** returns an\n[RTCIceCandidatePair] object containing the current best-choice pair\nof candidates describing the configuration of the endpoints of the transport.",
+ "role": "\n\nThe read-only **[RTCIceTransport]**\nproperty **`role`** indicates which role\nthe transport is fulfilling: that of the controlling agent, or the agent that is being\ncontrolled.\n\nYou can learn more about ICE roles in\n[Choosing a candidate pair](/en-US/docs/Web/API/WebRTC_API/Connectivity#choosing_a_candidate_pair).",
+ "selectedcandidatepairchange_event": "\n\nA **`selectedcandidatepairchange`** event is sent to an [RTCIceTransport] when the agent selects a new pair of candidates that describe the endpoints of a viable connection.\n\nThe pair of candidates is in turn described by an [RTCIceCandidatePair] object which contains one [RTCIceCandidate] representing the local end of the connection, and another representing the remote end of the connection.\n\nTogether, the candidates can be used to establish a connection to be used by the [RTCIceTransport], and, by extension, by an [RTCPeerConnection].\n\nThis event is not cancelable and does not bubble.",
+ "state": "\n\nThe read-only **[RTCIceTransport]**\nproperty **`state`** returns the current state of the ICE\ntransport, so you can determine the state of ICE gathering in which the ICE agent\ncurrently is operating.\n\nThis differs from the [RTCIceTransport.gatheringState],\nwhich only indicates whether or not ICE gathering is currently underway.",
+ "statechange_event": "\n\nA **`statechange`** event occurs when the [RTCIceTransport] changes state. The [RTCIceTransport.state] can be used to determine how far through the process of examining, verifying, and selecting a valid candidate pair is prior to successfully connecting the two peers for WebRTC communications.\n\nThis event is not cancelable and does not bubble."
+ }
+ },
+ "rtcidentityassertion": {
+ "docs": "\n\nThe **`RTCIdentityAssertion`** interface of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) represents the identity of a remote peer of the current connection. If no peer has yet been set and verified, then this interface returns `null`. Once set it can't be changed."
+ },
+ "rtcinboundrtpstreamstats": {
+ "docs": "\n\nThe **`RTCInboundRtpStreamStats`** dictionary of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) is used to report statistics related to the receiving end of an RTP stream on the local end of the [RTCPeerConnection].\n\nThe statistics can be obtained by iterating the [RTCStatsReport] returned by [RTCPeerConnection.getStats] or [RTCRtpReceiver.getStats] until you find a report with the [`type`](#type) of `inbound-rtp`.",
+ "properties": {
+ "averagertcpinterval": "\n\nThe **`averageRtcpInterval`** property\nof the [RTCInboundRtpStreamStats] dictionary is a floating-point value\nindicating the average transmission interval, in seconds.\n\nThe RTCP interval is the amount of time that should elapse between transmissions of RTCP\npackets.",
+ "bytesreceived": "\n\nThe [RTCInboundRtpStreamStats] dictionary's\n**`bytesReceived`** property is an integer value which\nindicates the total number of bytes received so far from this synchronization source\n(SSRC).",
+ "fecpacketsdiscarded": "\n\nThe **`fecPacketsDiscarded`** property\nof the [RTCInboundRtpStreamStats] dictionary is a numeric value\nindicating the number of Forward Error Correction (FEC) packets\nthat have been discarded.",
+ "fecpacketsreceived": "\n\nThe **`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\nAn FEC packet provides parity information which can\nbe used to attempt to reconstruct RTP data packets which have been corrupted in\ntransit.",
+ "fircount": "\n\nThe **`firCount`** property of the\n[RTCInboundRtpStreamStats] dictionary indicates the number of\n**Full Intra Request** (**FIR**) packets have been sent by\nthe receiver to the sender.\n\nThe receiver sends a FIR packet when the stream\nfalls behind and needs to skip frames in order to catch up.",
+ "framesdecoded": "\n\nThe **`framesDecoded`** property of\nthe [RTCInboundRtpStreamStats] dictionary indicates the total number of\nframes which have been decoded successfully for this media source.",
+ "id": "\n\nThe **`id`** property of the [RTCInboundRtpStreamStats] dictionary is a string that uniquely identifies the object for which this object provides statistics.\n\nUsing 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].",
+ "lastpacketreceivedtimestamp": "\n\nThe **`lastPacketReceivedTimestamp`** property of the [RTCInboundRtpStreamStats] dictionary indicates the time at which the most recently received packet arrived from this source.",
+ "nackcount": "\n\nThe **`nackCount`** property of the\n[RTCInboundRtpStreamStats] dictionary is a numeric value indicating the\nnumber of times the receiver sent a **NACK** packet to the sender.\n\nA NACK (Negative ACKnowledgement, also called \"Generic NACK\") packet tells the sender\nthat one or more of the packets it sent were lost in transport.",
+ "packetsduplicated": "\n\nThe **`packetsDuplicated`** property\nof the [RTCInboundRtpStreamStats] dictionary indicates the total number\nof packets discarded because they were duplicates of previously-received\npackets.\n\nThese packets are not counted by the\n[RTCInboundRtpStreamStats.packetsDiscarded] property.",
+ "packetsfaileddecryption": "\n\nThe **`packetsFailedDecryption`**\nproperty of the [RTCInboundRtpStreamStats] dictionary indicates the total\nnumber of packets which failed to be decrypted successfully after\nbeing received by the local end of the connection during this session.",
+ "perdscppacketsreceived": "\n\nThe **`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:** Not all operating systems make data available on a per-DSCP\n> basis, so this property shouldn't be relied upon on those systems.",
+ "plicount": "\n\nThe **`pliCount`** property of the\n[RTCInboundRtpStreamStats] dictionary states the number of times the\n[RTCRtpReceiver] described by these statistics sent a **Picture\nLoss Indication** (**PLI**) packet to the sender.\n\nA PLI\npacket indicates that some amount of encoded video data has been lost for one or more\nframes.",
+ "qpsum": "\n\nThe **`qpSum`** property of the\n[RTCInboundRtpStreamStats] dictionary is a value generated by adding the\n**Quantization Parameter** (**QP**) values for every frame\nsent or received to date on the video track corresponding to this\n`RTCInboundRtpStreamStats` object.\n\nIn general, the higher this\nnumber is, the more heavily compressed the video data is.",
+ "receiverid": "\n\nThe **`receiverId`** property of the [RTCInboundRtpStreamStats] dictionary specifies the [RTCInboundRtpStreamStats.id] of the [RTCAudioReceiverStats] or [RTCVideoReceiverStats] object representing the [RTCRtpReceiver] receiving the stream.",
+ "remoteid": "\n\nThe **`remoteId`** property of the\n[RTCInboundRtpStreamStats] dictionary specifies the [RTCInboundRtpStreamStats.id] of the [RTCRemoteOutboundRtpStreamStats] object representing the remote peer's [RTCRtpSender] which is sending the media to the local peer.",
+ "slicount": "\n\nThe **`sliCount`** property of the\n[RTCInboundRtpStreamStats] dictionary indicates how many **Slice\nLoss Indication** (**SLI**) packets the\n[RTCRtpReceiver] for which this object provides statistics sent to the\nremote [RTCRtpSender].\n\nAn 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\nIn 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.",
+ "timestamp": "\n\nThe **`timestamp`** property of the [RTCInboundRtpStreamStats] dictionary is a [DOMHighResTimeStamp] object specifying the time at which the data in the object was sampled.",
+ "trackid": " \n\nThe **`trackId`** property of the [RTCInboundRtpStreamStats] dictionary indicates the [RTCInboundRtpStreamStats.id] of the [RTCReceiverAudioTrackAttachmentStats] or [RTCReceiverVideoTrackAttachmentStats] object representing the [MediaStreamTrack] which is receiving the incoming media.",
+ "type": "\n\nThe **`type`** property of the [RTCInboundRtpStreamStats] dictionary is a string with the value `\"inbound-rtp\"`.\n\nDifferent statistics are obtained by iterating the [RTCStatsReport] object returned by a call to [RTCPeerConnection.getStats].\nThe type indicates the set of statistics available through the object in a particular iteration step.\nA value of `\"inbound-rtp\"` indicates that the statistics available in the current step are those defined in [RTCInboundRtpStreamStats]."
+ }
+ },
+ "rtcoutboundrtpstreamstats": {
+ "docs": "\n\nThe **`RTCOutboundRtpStreamStats`** dictionary of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) is used to report metrics and statistics related to an outbound stream being sent by an [RTCRtpSender].\n\nThe statistics can be obtained by iterating the [RTCStatsReport] returned by [RTCPeerConnection.getStats] or [RTCRtpSender.getStats] until you find a report with the [`type`](#type) of `outbound-rtp`.",
+ "properties": {
+ "averagertcpinterval": "\n\nThe **`averageRtcpInterval`** property\nof the [RTCOutboundRtpStreamStats] dictionary is a floating-point value\nindicating the average time that should pass between transmissions of\n packets on this stream.",
+ "fircount": "\n\nThe **`firCount`** property of the\n[RTCOutboundRtpStreamStats] dictionary indicates the number of\n**Full Intra Request** (**FIR**) that the remote\n[RTCRtpReceiver] has sent to this [RTCRtpSender].\n\nA FIR packet is sent when the receiver finds that it has fallen behind and needs to skip\nframes in order to catch up; the sender should respond by sending a full frame instead\nof a delta frame.\n\nAvailable only on video media.",
+ "framesencoded": "\n\nThe **`framesEncoded`** property of\nthe [RTCOutboundRtpStreamStats] dictionary indicates the total number of\nframes that have been encoded by this [RTCRtpSender] for this media\nsource.",
+ "id": "\n\nThe **`id`** property of the [RTCOutboundRtpStreamStats] dictionary is a string that uniquely identifies the object for which this object provides statistics.\n\nUsing 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].",
+ "nackcount": "\n\nThe **`nackCount`** property of the\n[RTCOutboundRtpStreamStats] dictionary is a numeric value indicating the\nnumber of times the [RTCRtpSender] described by this object received a\n**NACK** packet from the remote receiver.\n\nA NACK (Negative\nACKnowledgement, also called \"Generic NACK\") packet is used by the\n[RTCRtpReceiver] to inform the sender that one or more \npackets it sent were lost in transport.",
+ "perdscppacketssent": "\n\nThe **`perDscpPacketsSent`** property\nof the [RTCOutboundRtpStreamStats] dictionary is a record comprised of\nkey/value pairs in which each key is a string representation of a Differentiated\nServices Code Point and the value is the number of packets sent for that DCSP.\n\n> **Note:** Not all operating systems make data available on a per-DSCP\n> basis, so this property shouldn't be relied upon on those systems.",
+ "plicount": "\n\nThe **`pliCount`** property of the\n[RTCOutboundRtpStreamStats] dictionary states the number of times the\nremote peer's [RTCRtpReceiver] sent a **Picture Loss\nIndication** (**PLI**) packet to the [RTCRtpSender]\nfor which this object provides statistics.\n\nA PLI packet indicates that some\namount of encoded video data has been lost for one or more frames.",
+ "qpsum": "\n\nThe **`qpSum`** property of the [RTCOutboundRtpStreamStats] dictionary is a value generated by adding the **Quantization Parameter** (**QP**) values for every frame this sender has produced to date on the video track corresponding to this `RTCOutboundRtpStreamStats` object.\n\nIn general, the higher this number is, the more heavily compressed the video data is.",
+ "qualitylimitationreason": "\n\nThe **`qualityLimitationReason`**\nproperty of the [RTCOutboundRtpStreamStats] dictionary is a string\nindicating the reason why the media quality in the stream is currently being reduced\nby the codec during encoding, or `none` if no quality reduction is being\nperformed.\n\nThis quality reduction may include changes such as reduced frame\nrate or resolution, or an increase in compression factor.\n\nThe amount of time the encoded media has had its quality reduced in each of the\npotential ways that can be done can be found in\n[RTCOutboundRtpStreamStats.qualityLimitationDurations].",
+ "remoteid": "\n\nThe **`remoteId`** property of the\n[RTCOutboundRtpStreamStats] dictionary specifies the\n[RTCOutboundRtpStreamStats.id] of the [RTCRemoteInboundRtpStreamStats]\nobject representing the remote peer's [RTCRtpReceiver] which is sending\nthe media to the local peer for this SSRC.",
+ "slicount": "\n\nThe **`sliCount`** property of the\n[RTCOutboundRtpStreamStats] dictionary indicates how many **Slice\nLoss Indication** (**SLI**) packets the\n[RTCRtpSender] received from the remote [RTCRtpReceiver] for\nthe RTP stream described by this object.\n\nAn SLI packet is used by a decoder to let the encoder (the sender) know that it's\ndetected corruption of one or more consecutive macroblocks, in scan order, in the\nreceived media. In general, what's usually of interest is that the higher this number is,\nthe more the stream data is becoming corrupted between the sender and the receiver,\ncausing the receiver to request retransmits or to drop frames entirely.",
+ "timestamp": "\n\nThe **`timestamp`** property of the [RTCOutboundRtpStreamStats] dictionary is a [DOMHighResTimeStamp] object specifying the time at which the data in the object was sampled.",
+ "trackid": "\n\nThe **`trackId`** property of the [RTCOutboundRtpStreamStats] dictionary indicates the [RTCOutboundRtpStreamStats.id] of the [RTCSenderAudioTrackAttachmentStats] or [RTCSenderVideoTrackAttachmentStats] object representing the [MediaStreamTrack] which is being sent on this stream.",
+ "type": "\n\nThe **`type`** property of the [RTCOutboundRtpStreamStats] dictionary is a string with the value `\"outbound-rtp\"`.\n\nDifferent statistics are obtained by iterating the [RTCStatsReport] object returned by a call to [RTCPeerConnection.getStats].\nThe type indicates the set of statistics available through the object in a particular iteration step.\nA value of `\"outbound-rtp\"` indicates that the statistics available in the current step are those defined in [RTCOutboundRtpStreamStats]."
+ }
+ },
+ "rtcpeerconnection": {
+ "docs": "\n\nThe **`RTCPeerConnection`** interface represents a WebRTC connection between the local computer and a remote peer.\nIt provides methods to connect to a remote peer, maintain and monitor the connection, and close the connection once it's no longer needed.\n\n",
+ "properties": {
+ "addicecandidate": "\n\nWhen a website or app using [RTCPeerConnection] receives a new ICE candidate from the remote peer over its signaling channel, it delivers the newly-received candidate to the browser's agent by calling **`RTCPeerConnection.addIceCandidate()`**.\nThis adds this new remote candidate to the `RTCPeerConnection`'s remote description, which describes the state of the remote end of the connection.\n\nIf the `candidate` parameter is missing or a value of `null` is given when calling `addIceCandidate()`, the added ICE candidate is an \"end-of-candidates\" indicator.\nThe same is the case if the value of the specified object's [RTCIceCandidate.candidate] is either missing or an empty string (`\"\"`), it signals that all remote candidates have been delivered.\n\nThe end-of-candidates notification is transmitted to the remote peer using a candidate with an a-line value of `end-of-candidates`.\n\nDuring negotiation, your app will likely receive many candidates which you'll deliver to the ICE agent in this way, allowing it to build up a list of potential connection methods.\nThis is covered in more detail in the articles [WebRTC connectivity](/en-US/docs/Web/API/WebRTC_API/Connectivity) and\n[Signaling and video calling](/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling).",
+ "addstream": "\n\nThe _obsolete_ [RTCPeerConnection] method\n**`addStream()`** adds a [MediaStream] as a local\nsource of audio or video. Instead of using this obsolete method, you should instead use\n[RTCPeerConnection.addTrack] once for each track you wish to\nsend to the remote peer.\n\nIf the [RTCPeerConnection.signalingState] is set to\n`closed`, an `InvalidStateError` is raised. If the\n[RTCPeerConnection.signalingState] is set to\n`stable`, the event [RTCPeerConnection/negotiationneeded_event] is sent on the\n[RTCPeerConnection] to indicate that negotiation must\nbe repeated to consider the new stream.",
+ "addstream_event": "\n\nThe obsolete **`addstream`** event is sent to an [RTCPeerConnection] when new media, in the form of a [MediaStream] object, has been added to it.\n\n> **Warning:** This event has been removed from the WebRTC specification. You should instead watch for the [RTCPeerConnection.track_event] event, which is sent for each media track added to the `RTCPeerConnection`.\n\nYou can, similarly, watch for streams to be removed from the connection by monitoring the [RTCPeerConnection.removestream_event] event.\n\nThis event is not cancelable and does not bubble.",
+ "addtrack": "\n\nThe [RTCPeerConnection] method **`addTrack()`** adds a new media track to the set of tracks which will be transmitted to the other peer.\n\n> **Note:** Adding a track to a connection triggers renegotiation by firing a [RTCPeerConnection/negotiationneeded_event] event.\n> See [Starting negotiation](/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling#starting_negotiation) for details.",
+ "addtransceiver": "\n\nThe [RTCPeerConnection] method **`addTransceiver()`** creates a new [RTCRtpTransceiver] and adds it to the set of transceivers associated with the `RTCPeerConnection`.\nEach transceiver represents a bidirectional stream, with both an [RTCRtpSender] and an [RTCRtpReceiver] associated with it.",
+ "cantrickleicecandidates": "\n\nThe read-only **[RTCPeerConnection]** property **`canTrickleIceCandidates`**\nreturns a boolean value which indicates whether or not the remote peer can accept\n[trickled ICE candidates](https://datatracker.ietf.org/doc/html/draft-ietf-mmusic-trickle-ice).\n\n**ICE trickling** is the process of continuing to send candidates after\nthe initial offer or answer has already been sent to the other peer.\n\nThis property is only set after having called\n[RTCPeerConnection.setRemoteDescription]. Ideally, your signaling\nprotocol provides a way to detect trickling support, so that you don't need to rely on\nthis property. A WebRTC browser will always support trickle ICE. If trickling isn't\nsupported, or you aren't able to tell, you can check for a falsy value for this\nproperty and then wait until the value of\n[RTCPeerConnection.iceGatheringState] changes to\n`\"completed\"` before creating and sending the initial offer. That way, the\noffer contains all of the candidates.",
+ "close": "\n\nThe **`RTCPeerConnection.close()`** method closes the current\npeer connection.",
+ "connectionstate": "\n\nThe read-only **`connectionState`** property of the [RTCPeerConnection] interface indicates the current state of the peer connection by returning one of the following string values: `new`, `connecting`, `connected`, `disconnected`, `failed`, or `closed`.\n\nThis state essentially represents the aggregate state of all ICE transports (which are of type [RTCIceTransport] or [RTCDtlsTransport]) being used by the connection.\n\nWhen this property's value changes, a [RTCPeerConnection.connectionstatechange_event] event is sent to the [RTCPeerConnection] instance.",
+ "connectionstatechange_event": "\n\nThe **`connectionstatechange`** event is sent to the `onconnectionstatechange` event handler on an [RTCPeerConnection] object after a new track has been added to an [RTCRtpReceiver] which is part of the connection.\nThe new connection state can be found in [RTCPeerConnection.connectionState], and is one of the string values: `new`, `connecting`, `connected`, `disconnected`, `failed`, or `closed`.\n\nThis event is not cancelable and does not bubble.",
+ "createanswer": "\n\nThe **`createAnswer()`** method on the\n[RTCPeerConnection] interface creates an answer to an\noffer received from a remote peer during the offer/answer negotiation of a WebRTC\nconnection. The answer contains information about any media already attached to the\nsession, codecs and options supported by the browser, and any \ncandidates already gathered. The answer is delivered to the returned\n`Promise`, and should then be sent to the source of the offer to continue\nthe negotiation process.",
+ "createdatachannel": "\n\nThe **`createDataChannel()`** method\non the [RTCPeerConnection] interface\ncreates a new channel linked with the remote peer,\nover which any kind of data may be transmitted.\nThis can be useful for back-channel content,\nsuch as images, file transfer, text chat, game update\npackets, and so forth.\n\nIf the new data channel is the first one added to the connection, renegotiation is\nstarted by delivering a [RTCPeerConnection/negotiationneeded_event] event.",
+ "createoffer": "\n\nThe **`createOffer()`** method\nof the [RTCPeerConnection] interface\ninitiates the creation of an offer\nfor the purpose of starting a new WebRTC connection to a remote peer.\nThe SDP offer includes information\nabout any [MediaStreamTrack] objects\nalready attached to the WebRTC session, codec, and options supported by the browser,\nand any candidates already gathered by the agent,\nfor the purpose of being sent over the signaling channel\nto a potential peer\nto request a connection\nor to update the configuration of an existing connection.\n\nThe return value is a `Promise` which, when the offer has been created, is\nresolved with a [RTCSessionDescription] object containing the newly-created\noffer.",
+ "currentlocaldescription": "\n\nThe read-only property\n**`RTCPeerConnection.currentLocalDescription`** returns an\n[RTCSessionDescription] object describing the local end of the connection\nas it was most recently successfully negotiated since the last time the\n[RTCPeerConnection] finished negotiating and connecting to a remote peer.\nAlso included is a list of any ICE candidates that may already have been generated by\nthe ICE agent since the offer or answer represented by the description was first\ninstantiated.\n\nTo change the `currentLocalDescription`, call\n[RTCPeerConnection.setLocalDescription], which triggers a series of\nevents which leads to this value being set. For details on what exactly happens and why\nthe change isn't necessarily instantaneous, see\n[Pending and current descriptions](/en-US/docs/Web/API/WebRTC_API/Connectivity#pending_and_current_descriptions) in the WebRTC Connectivity page.\n\n> **Note:** Unlike [RTCPeerConnection.localDescription], this value represents the\n> actual current state of the local end of the connection; `localDescription`\n> may specify a description which the connection is currently in the process of\n> switching over to.",
+ "currentremotedescription": "\n\nThe read-only property\n**`RTCPeerConnection.currentRemoteDescription`** returns an\n[RTCSessionDescription] object describing the remote end of the connection\nas it was most recently successfully negotiated since the last time the\n[RTCPeerConnection] finished negotiating and connecting to a remote peer.\nAlso included is a list of any ICE candidates that may already have been generated by\nthe ICE agent since the offer or answer represented by the description was first\ninstantiated.\n\nTo change the `currentRemoteDescription`, call\n[RTCPeerConnection.setRemoteDescription], which triggers a series of\nevents which leads to this value being set. For details on what exactly happens and why\nthe change isn't necessarily instantaneous, see\n[Pending and current descriptions](/en-US/docs/Web/API/WebRTC_API/Connectivity#pending_and_current_descriptions) in the WebRTC Connectivity page.\n\n> **Note:** Unlike [RTCPeerConnection.remoteDescription], this value represents the\n> actual current state of the local end of the connection;\n> `remoteDescription` may specify a description which the connection is\n> currently in the process of switching over to.",
+ "datachannel_event": "\n\nA **`datachannel`** event is sent to an [RTCPeerConnection] instance when an [RTCDataChannel] has been added to the connection, as a result of the remote peer calling [RTCPeerConnection.createDataChannel].\n\n> **Note:** This event is _not_ dispatched when the local end of the connection creates the channel.\n\nThis event is not cancelable and does not bubble.",
+ "generatecertificate_static": "\n\nThe static **`RTCPeerConnection.generateCertificate()`**\nfunction creates an X.509 certificate and corresponding private key, returning a promise\nthat resolves with the new [RTCCertificate] once it's generated.",
+ "getconfiguration": "\n\nThe **`RTCPeerConnection.getConfiguration()`** method returns\nan object which indicates the current configuration of\nthe [RTCPeerConnection] on which the method is called.\n\nThe returned configuration is the last configuration applied via\n[RTCPeerConnection.setConfiguration], or if\n`setConfiguration()` hasn't been called, the configuration the\n`RTCPeerConnection` was constructed with. The configuration includes a list\nof the ICE servers used by the connection, information about transport policies, and\nidentity information.",
+ "getidentityassertion": "\n\nThe **`RTCPeerConnection.getIdentityAssertion()`** method\ninitiates the gathering of an identity assertion. This has an effect only if the\n[RTCPeerConnection.signalingState] is not\n`\"closed\"`.\n\nThe method returns a JavaScript `Promise` which resolves to an\nidentity assertion encoded as a string.\n\nIt is not expected for the application dealing with the `RTCPeerConnection`:\nthis is automatically done; an explicit call only allows to anticipate the need.",
+ "getreceivers": "\n\nThe **`RTCPeerConnection.getReceivers()`** method returns an array of [RTCRtpReceiver] objects, each of which represents one RTP receiver.\nEach RTP receiver manages the reception and decoding of data for a [MediaStreamTrack] on an [RTCPeerConnection].",
+ "getsenders": "\n\nThe [RTCPeerConnection] method **`getSenders()`** returns an array of [RTCRtpSender] objects, each of which represents the RTP sender responsible for transmitting one track's data.\nA sender object provides methods and properties for examining and controlling the encoding and transmission of the track's data.",
+ "getstats": "\n\nThe [RTCPeerConnection] method\n**`getStats()`** returns a promise which resolves with data\nproviding statistics about either the overall connection or about the specified\n[MediaStreamTrack].",
+ "gettransceivers": "\n\nThe [RTCPeerConnection] interface's **`getTransceivers()`** method returns a list of the [RTCRtpTransceiver] objects being used to send and receive data on the connection.",
+ "icecandidate_event": "\n\nAn **`icecandidate`** event is sent to an [RTCPeerConnection] when:\n\n- An [RTCIceCandidate] has been identified and added to the local peer by a call to [RTCPeerConnection.setLocalDescription],\n- Every [RTCIceCandidate] correlated with a particular username fragment and password combination (a **generation**) has been so identified and added, and\n- All ICE gathering on all transports is complete.\n\nIn the first two cases, the event handler should transmit the candidate to the remote peer over the signaling channel so the remote peer can add it to its set of remote candidates.\n\nThis event is not cancelable and does not bubble.",
+ "icecandidateerror_event": "\n\nThe [WebRTC API](/en-US/docs/Web/API/WebRTC_API) event **`icecandidateerror`** is sent to an [RTCPeerConnection] if an error occurs while performing ICE negotiations through a or server. The event object is of type [RTCPeerConnectionIceErrorEvent], and contains information describing the error in some amount of detail.\n\nThis event is not cancelable and does not bubble.",
+ "iceconnectionstate": "\n\nThe read-only property **`RTCPeerConnection.iceConnectionState`** returns\na string which state of the agent associated with the [RTCPeerConnection]:\n`new`, `checking`, `connected`, `completed`,\n`failed`, `disconnected`, and `closed`.\n\nIt describes the current state of the ICE agent\nand its connection to the ICE server;\nthat is, the or server.\n\nYou can detect when this value has changed by watching for the\n[RTCPeerConnection.iceconnectionstatechange_event] event.",
+ "iceconnectionstatechange_event": "\n\nAn **`iceconnectionstatechange`** event is sent to an [RTCPeerConnection] object each time the connection state changes during the negotiation process.\nThe new ICE connection state is available in the object's [RTCPeerConnection.iceConnectionState] property.\n\nOne common task performed by the `iceconnectionstatechange` event listener is to trigger [ICE restart](/en-US/docs/Web/API/WebRTC_API/Session_lifetime#ice_restart) when the state changes to `failed`.\n\nThis event is not cancelable and does not bubble.",
+ "icegatheringstate": "\n\nThe read-only property **`RTCPeerConnection.iceGatheringState`** returns a string\nthat describes the connection's ICE gathering state.\nThis lets you detect, for example, when collection of ICE candidates has finished.\n\nYou can detect when the value of this property changes by watching for an event of type\n[RTCPeerConnection/icegatheringstatechange_event].",
+ "icegatheringstatechange_event": "\n\nThe **`icegatheringstatechange`** event is sent to the `onicegatheringstatechange` event handler on an [RTCPeerConnection] when the state of the candidate gathering process changes.\nThis signifies that the value of the connection's [RTCPeerConnection.iceGatheringState] property has changed.\n\nWhen ICE first starts to gather connection candidates, the value changes from `new` to `gathering` to indicate that the process of collecting candidate configurations for the connection has begun. When the value changes to `complete`, all of the transports that make up the `RTCPeerConnection` have finished gathering ICE candidates.\n\n> **Note:** While you can determine that ICE candidate gathering is complete by watching for `icegatheringstatechange` events and checking for the value of [RTCPeerConnection.iceGatheringState] to become `complete`, you can also have your handler for the [RTCPeerConnection.icecandidate_event] event look to see if its [RTCPeerConnectionIceEvent.candidate] property is `null`. This also indicates that collection of candidates is finished.\n\nThis event is not cancelable and does not bubble.",
+ "localdescription": "\n\nThe read-only property **`RTCPeerConnection.localDescription`** returns an [RTCSessionDescription] describing the session for the local end of the connection.\nIf it has not yet been set, this is `null`.",
+ "negotiationneeded_event": "\n\nA **`negotiationneeded`** event is sent to the [RTCPeerConnection] when negotiation of the connection through the signaling channel is required.\nThis occurs both during the initial setup of the connection as well as any time a change to the communication environment requires reconfiguring the connection.\n\nThe `negotiationneeded` event is first dispatched to the [RTCPeerConnection] when media is first added to the connection. This starts the process of negotiation by instructing your code to begin exchanging ICE candidates through the signaling server. See [Signaling transaction flow](/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling#signaling_transaction_flow) for a description of the signaling process that begins with a `negotiationneeded` event.\n\nThis event is not cancelable and does not bubble.",
+ "peeridentity": "\n\nThe read-only [RTCPeerConnection] property\n**`peerIdentity`** returns a JavaScript `Promise`\nthat resolves to an [RTCIdentityAssertion] which contains a\nstring identifying the remote peer. Once this promise\nresolves successfully, the resulting identity is the **target peer\nidentity** and cannot change for the duration of the connection.",
+ "pendinglocaldescription": "\n\nThe read-only property\n**`RTCPeerConnection.pendingLocalDescription`** returns an\n[RTCSessionDescription] object describing a pending configuration change\nfor the local end of the connection. This does not describe the connection as it\ncurrently stands, but as it may exist in the near future. Use\n[RTCPeerConnection.currentLocalDescription] or\n[RTCPeerConnection.localDescription] to get the current state of the\nendpoint. For details on the difference, see\n[Pending and current descriptions](/en-US/docs/Web/API/WebRTC_API/Connectivity#pending_and_current_descriptions) in the WebRTC Connectivity page.",
+ "pendingremotedescription": "\n\nThe read-only property\n**`RTCPeerConnection.pendingRemoteDescription`** returns an\n[RTCSessionDescription] object describing a pending configuration change\nfor the remote end of the connection. This does not describe the connection as it\ncurrently stands, but as it may exist in the near future. Use\n[RTCPeerConnection.currentRemoteDescription] or\n[RTCPeerConnection.remoteDescription] to get the current session\ndescription for the remote endpoint. For details on the difference, see\n[Pending and current descriptions](/en-US/docs/Web/API/WebRTC_API/Connectivity#pending_and_current_descriptions) in the WebRTC Connectivity page.",
+ "remotedescription": "\n\nThe read-only property\n**`RTCPeerConnection.remoteDescription`** returns a\n[RTCSessionDescription] describing the session (which includes\nconfiguration and media information) for the remote end of the connection. If this\nhasn't been set yet, this is `null`.\n\nThe returned value typically reflects a remote description which has been received over\nthe signaling server (as either an offer or an answer) and then put into effect by your\ncode calling [RTCPeerConnection.setRemoteDescription] in response.",
+ "removestream": "\n\nThe\n**`RTCPeerConnection.removeStream()`** method removes a\n[MediaStream] as a local source of audio or video. If the negotiation\nalready 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\n[RTCPeerConnection.removeTrack] if your target browser\nversions have implemented it.\n\nIf the [RTCPeerConnection.signalingState] is set to\n`\"closed\"`, an `InvalidStateError` is raised. If the\n[RTCPeerConnection.signalingState] is set to\n`\"stable\"`, the event [RTCPeerConnection/negotiationneeded_event] is sent on the\n[RTCPeerConnection].",
+ "removestream_event": "\n\nThe obsolete **`removestream`** event was sent to an [RTCPeerConnection] to inform it that a [MediaStream] had been removed from the connection.\nYou can use the `RTCPeerConnection` interface's `onremovestream` property to set a handler for this event.\n\nThis is the counterpart to the [RTCPeerConnection.addstream_event] event, which is also obsolete.\n\n> **Warning:** This event has been removed from the WebRTC specification in favor of the existing [MediaStream/removetrack_event] event on the remote [MediaStream] and the corresponding event handler property of the remote [MediaStream]. The [RTCPeerConnection] API is now track-based, so having zero tracks in the remote stream is equivalent to the remote stream being removed, which caused a `removestream` event.\n\nThis event is not cancelable and does not bubble.",
+ "removetrack": "\n\nThe\n**`RTCPeerConnection.removeTrack()`** method tells the local\nend of the connection to stop sending media from the specified track, without actually\nremoving the corresponding [RTCRtpSender] from the list of senders as\nreported by [RTCPeerConnection.getSenders]. If the track is\nalready stopped, or is not in the connection's senders list, this method has no effect.\n\nIf the connection has already been negotiated\n([RTCPeerConnection.signalingState] is set to\n`\"stable\"`), it is marked as needing to be negotiated again; the remote peer\nwon't experience the change until this negotiation occurs. A\n[RTCPeerConnection/negotiationneeded_event] event is sent to the [RTCPeerConnection] to\nlet the local end know this negotiation must occur.",
+ "restartice": "\n\nThe [WebRTC](/en-US/docs/Web/API/WebRTC_API) API's\n[RTCPeerConnection] interface offers the\n**`restartIce()`** method to allow a web application to easily\nrequest that candidate gathering be redone on both ends of the\nconnection.\nThis simplifies the process by allowing the same method to be used\nby either the caller or the receiver to trigger an ICE restart.\n\nAfter `restartIce()` returns, the offer returned by the next call to\n[RTCPeerConnection.createOffer] is automatically\nconfigured to trigger ICE restart on both the local peer (once the local peer has been\nset) and on the remote peer, once the offer is sent across your signaling mechanism and\nthe remote peer has set its description as well.\n\n`restartIce()` causes the\n[RTCPeerConnection.negotiationneeded_event] event to\nbe fired on the `RTCPeerConnection` to inform the application that it should\nperform negotiation using its signaling channel.\n\nIf negotiation fails to complete—either due to rollback or because incoming offers are\nin the process of being negotiated—the [RTCPeerConnection] will remember\nthat you requested ICE restart. The next time the connection's\n[RTCPeerConnection.signalingState] changes to\n`stable`, the connection will fire the\n[RTCPeerConnection.negotiationneeded_event] event.\nThis process continues until an ICE restart has been successfully completed.",
+ "sctp": "\n\nThe read-only **`sctp`** property on the [RTCPeerConnection] interface returns an [RTCSctpTransport] describing the transport over which SCTP data is being sent and\nreceived.\nIf SCTP hasn't been negotiated, this value is `null`.\n\nThe SCTP transport is used for transmitting and receiving data for any and all [RTCDataChannel]s on the peer connection.",
+ "setconfiguration": "\n\nThe **`RTCPeerConnection.setConfiguration()`** method sets the\ncurrent configuration of the [RTCPeerConnection] based on the values\nincluded in the specified object. This lets you change\nthe ICE servers used by the connection and which transport policies to use.\n\nThe most common use case for this method (and even then, probably not a very common use\ncase) is to replace the set of ICE servers to be used. Two potential scenarios in which\nthis might be done:\n\n- The [RTCPeerConnection] was instantiated without specifying any ICE\n servers. If, for example, the [RTCPeerConnection.RTCPeerConnection] constructor was called with no parameters, you would have to\n then call `setConfiguration()` to add ICE servers before ICE negotiation could begin.\n- Renegotiation of the connection is needed, and a different set of ICE servers needs\n to be used for some reason. Perhaps the user has moved into a new region, so using new\n regional ICE servers is necessary, for example.\n In this situation, one might call `setConfiguration()` to switch to new regional ICE servers, then initiate an [ICE restart](/en-US/docs/Web/API/WebRTC_API/Session_lifetime#ice_restart).\n\n> **Note:** You cannot change the identity information for a connection once it's already been set.",
+ "setidentityprovider": "\n\nThe **`RTCPeerConnection.setIdentityProvider()`** method sets\nthe Identity Provider (IdP) to the triplet given in parameter: its name, the protocol\nused to communicate with it (optional) and an optional username. The IdP will be used\nonly when an assertion is needed.\n\nIf the [RTCPeerConnection.signalingState] is set to\n`\"closed\"`, an `InvalidStateError` is raised.",
+ "setlocaldescription": "\n\nThe [RTCPeerConnection] method\n[RTCPeerConnection.setLocalDescription] changes\nthe local description associated with the connection. This description specifies the\nproperties of the local end of the connection, including the media format.\nThe method takes a single parameter—the session description—and it returns a\n`Promise` which is fulfilled once the description has been changed,\nasynchronously.\n\nIf `setLocalDescription()` is called while a connection is already in place,\nit means renegotiation is underway (possibly to adapt to changing network conditions).\nBecause descriptions will be exchanged until the two peers agree on a configuration, the\ndescription submitted by calling `setLocalDescription()` does not immediately\ntake effect. Instead, the current connection configuration remains in place until\nnegotiation is complete. Only then does the agreed-upon configuration take effect.",
+ "setremotedescription": "\n\nThe [RTCPeerConnection]\nmethod **`setRemoteDescription()`** sets the specified\nsession description as the remote peer's current offer or answer. The description\nspecifies the properties of the remote end of the connection, including the media\nformat. The method takes a single parameter—the session description—and it\nreturns a `Promise` which is fulfilled once the description has been\nchanged, asynchronously.\n\nThis is typically called after receiving an offer or answer from another peer over the\nsignaling server. Keep in mind that if `setRemoteDescription()` is called\nwhile a connection is already in place, it means renegotiation is underway (possibly\nto adapt to changing network conditions).\n\nBecause descriptions will be exchanged until the two peers agree on a configuration,\nthe description submitted by calling `setRemoteDescription()` does not\nimmediately take effect. Instead, the current connection configuration remains in\nplace until negotiation is complete. Only then does the agreed-upon configuration take\neffect.",
+ "signalingstate": "\n\nThe read-only **`signalingState`** property on the\n[RTCPeerConnection] interface returns a string value\ndescribing the state of the signaling process\non the local end of the connection\nwhile connecting or reconnecting to another peer.\nSee [Signaling](/en-US/docs/Web/API/WebRTC_API/Session_lifetime#signaling) in our WebRTC session lifetime page.\n\nBecause the signaling process is a state machine, being able to verify that your code\nis in the expected state when messages arrive can help avoid unexpected and avoidable\nfailures. For example, if you receive an answer while the `signalingState`\nisn't `\"have-local-offer\"`, you know that something is wrong, since you\nshould only receive answers after creating an offer but before an answer has been\nreceived and passed into [RTCPeerConnection.setLocalDescription]. Your\ncode will be more reliable if you watch for mismatched states like this and handle them\ngracefully.\n\nThis value may also be useful during debugging, for example.\n\nIn addition, when the value of this property changes, a\n[RTCPeerConnection/signalingstatechange_event] event is sent to the [RTCPeerConnection]\ninstance.",
+ "signalingstatechange_event": "\n\nA **`signalingstatechange`** event is sent to an [RTCPeerConnection] to notify it that its signaling state, as indicated by the [RTCPeerConnection.signalingState] property, has changed.\n\nThis event is not cancelable and does not bubble.",
+ "track_event": "\n\nThe **`track`** event is sent to the `ontrack` event handler on [RTCPeerConnection]s after a new track has been added to an [RTCRtpReceiver] which is part of the connection.\n\nBy the time this event is delivered, the new track has been fully added to the peer connection. See [Track event types](/en-US/docs/Web/API/RTCTrackEvent#track_event_types) for details.\n\nThis event is not cancellable and does not bubble."
+ }
+ },
+ "rtcpeerconnectioniceerrorevent": {
+ "docs": "`WebRTC API`\n\nThe **`RTCPeerConnectionIceErrorEvent`** interface—based upon the [Event] interface—provides details pertaining to an error announced by sending an [RTCPeerConnection.icecandidateerror_event] event to the [RTCPeerConnection] object.\n\n",
+ "properties": {
+ "address": "`WebRTC`\n\nThe [RTCPeerConnectionIceErrorEvent] property\n**`address`** is a string which indicates the local IP address\nbeing used to communicate with the or server\nduring negotiations. The error which occurred involved this address."
+ }
+ },
+ "rtcpeerconnectioniceevent": {
+ "docs": "\n\nThe **`RTCPeerConnectionIceEvent`** interface represents events that occur in relation to candidates with the target, usually an [RTCPeerConnection].\n\nOnly one event is of this type: [RTCPeerConnection.icecandidate_event].\n\n",
+ "properties": {
+ "candidate": "\n\nThe read-only **`candidate`** property\nof the [RTCPeerConnectionIceEvent] interface returns the\n[RTCIceCandidate] associated with the event."
+ }
+ },
+ "rtcpeerconnectionstats": {
+ "docs": "\n\nThe **`RTCPeerConnectionStats`** dictionary of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) provides information about the high level peer connection ([RTCPeerConnection]).\n\nIn particular, it provides the number of unique data channels that have been opened, and the number of opened channels that have been closed.\nThis allows the current number of open channels to be calculated.\n\nThese statistics can be obtained by iterating the [RTCStatsReport] returned by [RTCPeerConnection.getStats] until you find a report with the [`type`](#type) of `peer-connection`.",
+ "properties": {
+ "datachannelsclosed": "\n\nThe **`dataChannelsClosed`** property of the [RTCPeerConnectionStats] dictionary indicates the number of unique [RTCDataChannel] objects that have left the [`open`](/en-US/docs/Web/API/RTCDataChannel/readyState#open) state during their lifetime.\n\nA channel will leave the `open` state if either end of the connection or the underlying transport is closed.\nNote that channels that transition to [`closing`](/en-US/docs/Web/API/RTCDataChannel/readyState#closing) or [`closed`](/en-US/docs/Web/API/RTCDataChannel/readyState#closed) without ever being `open` are not counted in this number.",
+ "datachannelsopened": "\n\nThe **`dataChannelsOpened`** property of the [RTCPeerConnectionStats] dictionary indicates the number of unique [RTCDataChannel] objects that have entered the [`open`](/en-US/docs/Web/API/RTCDataChannel/readyState#open) state during their lifetime.",
+ "id": "\n\nThe **`id`** property of the [RTCPeerConnectionStats] dictionary is a string which uniquely identifies the object for which this object provides statistics.\n\nUsing 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].",
+ "timestamp": "\n\nThe **`timestamp`** property of the [RTCPeerConnectionStats] dictionary is a [DOMHighResTimeStamp] object specifying the time at which the data in the object was sampled.",
+ "type": "\n\nThe **`type`** property of the [RTCPeerConnectionStats] dictionary is a string with the value `\"peer-connection\"`.\n\nDifferent statistics are obtained by iterating the [RTCStatsReport] object returned by a call to [RTCPeerConnection.getStats].\nThe type indicates the set of statistics available through the object in a particular iteration step.\nA value of `\"peer-connection\"` indicates that the statistics available in the current step are those defined in [RTCPeerConnectionStats]."
+ }
+ },
+ "rtcremoteoutboundrtpstreamstats": {
+ "docs": "\n\nThe **`RTCRemoteOutboundRtpStreamStats`** dictionary of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) is used to report statistics from remote endpoint of its outbound RTP stream, which corresponds to an inbound stream that is currently received by an [RTCPeerConnection] object.\n\nThe statistics can be obtained by iterating the [RTCStatsReport] returned by [RTCPeerConnection.getStats] until you find a report with the [`type`](#type) of `remote-outbound-rtp`.",
+ "properties": {
+ "codecid": "\n\nThe **`codecId`** property of the [RTCRemoteOutboundRtpStreamStats] dictionary is a string that uniquely identifies the object that was inspected to produce the data in the [RTCCodecStats] for the stream.",
+ "id": "\n\nThe **`id`** property of the [RTCRemoteOutboundRtpStreamStats] dictionary is a string that uniquely identifies the object for which this object provides statistics.\n\nUsing 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].",
+ "kind": "\n\nThe **`kind`** property of the [RTCRemoteOutboundRtpStreamStats] dictionary is a string indicating whether the described stream contains audio or video media.",
+ "localid": "\n\nThe [RTCRemoteOutboundRtpStreamStats] dictionary's **`localId`** property is a string which can be used to identify the [RTCInboundRtpStreamStats] object whose [RTCInboundRtpStreamStats.remoteId] matches this value.\n\nTogether, these two objects provide statistics about the inbound and outbound sides of the same synchronization source (SSRC).",
+ "remotetimestamp": "\n\nThe [RTCRemoteOutboundRtpStreamStats] property **`remoteTimestamp`** indicates the timestamp on the remote peer at which these statistics were sent.\nThis differs from `timestamp`, which indicates the time at which the statistics were generated or received locally.",
+ "ssrc": "\n\nThe **`ssrc`** property of the [RTCRemoteOutboundRtpStreamStats] dictionary provides the Synchronization Source (SSRC), an integer which uniquely identifies the source of the packets whose statistics are covered by the [RTCStatsReport] that includes this `RTCRemoteOutboundRtpStreamStats` dictionary.",
+ "timestamp": "\n\nThe **`timestamp`** property of the [RTCRemoteOutboundRtpStreamStats] dictionary is a [DOMHighResTimeStamp] object specifying the time at which the data in the object was sampled.",
+ "transportid": "\n\nThe **`transportId`** property of the [RTCRemoteOutboundRtpStreamStats] dictionary is a string that uniquely identifies the object from which the statistics contained in the [RTCTransportStats] properties in the [RTCStatsReport].",
+ "type": "\n\nThe **`type`** property of the [RTCRemoteOutboundRtpStreamStats] dictionary is a string with the value `\"remote-outbound-rtp\"`.\n\nDifferent statistics are obtained by iterating the [RTCStatsReport] object returned by a call to [RTCPeerConnection.getStats].\nThe type indicates the set of statistics available through the object in a particular iteration step.\nA value of `\"remote-outbound-rtp\"` indicates that the statistics available in the current step are those defined in [RTCRemoteOutboundRtpStreamStats]."
+ }
+ },
+ "rtcrtpcodecparameters": {
+ "docs": "\n\nThe [RTCRtpCodecParameters] dictionary, part of the WebRTC API, is used to describe the configuration parameters for a single media .\n\nIt's used in [RTCRtpSender.getParameters], [RTCRtpSender.setParameters] and [RTCRtpReceiver.getParameters].\nIts also use used when calling [RTCRtpTransceiver.setCodecPreferences] to configure a transceiver's codecs before beginning the offer/answer process to establish a WebRTC peer connection.\n\nMost of the fields in this property take values which are defined and maintained by the Internet Assigned Numbers Authority (IANA). References to relevant IANA documents are provided in the [see also](#see_also) section at the end of this article."
+ },
+ "rtcrtpreceiver": {
+ "docs": "\n\nThe **`RTCRtpReceiver`** interface of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) manages the reception and decoding of data for a [MediaStreamTrack] on an [RTCPeerConnection].",
+ "properties": {
+ "getcapabilities_static": "`WebRTC`\n\nThe _static method_ **`RTCRtpReceiver.getCapabilities()`** returns an object describing the codec and header extension capabilities supported by [RTCRtpReceiver] objects on the current device.\n\nYou can, similarly, obtain the capabilities of [RTCRtpSender] objects by calling the static function [RTCRtpSender.getCapabilities_static].",
+ "getcontributingsources": "\n\nThe **`getContributingSources()`** method of the [RTCRtpReceiver] interface returns an array of objects, each corresponding to one CSRC (contributing source) identifier received by the current `RTCRtpReceiver` in the last ten seconds.",
+ "getparameters": "\n\nThe **`getParameters()`** method of the [RTCRtpReceiver] interface returns an object describing the current configuration for the encoding and transmission of media on the receiver's [RTCRtpReceiver.track].",
+ "getstats": "\n\nThe [RTCRtpReceiver] method **`getStats()`** asynchronously requests an [RTCStatsReport] object which provides statistics about incoming traffic on the owning [RTCPeerConnection], returning a `Promise` whose fulfillment handler will be called once the results are available.",
+ "getsynchronizationsources": "\n\nThe **`getSynchronizationSources()`** method of the [RTCRtpReceiver] interface returns an array of objects, each corresponding to one SSRC (synchronization source) identifier received by the current `RTCRtpReceiver` in the last ten seconds.",
+ "track": "\n\nThe **`track`** read-only property of the\n[RTCRtpReceiver] interface returns the [MediaStreamTrack]\nassociated with the current [RTCRtpReceiver] instance.",
+ "transform": "\n\nThe **`transform`** property of the [RTCRtpReceiver] object is used to insert a transform stream ([TransformStream]) running in a worker thread into the receiver pipeline.\nThis allows stream transforms to be applied to encoded video and audio frames as they arrive from the packetizer (before they are played/rendered).\n\nThe transform that is to be added is defined using an [RTCRtpScriptTransform] and its associated [Worker].\nIf the transform is set in the peer connection [`track` event](/en-US/docs/Web/API/RTCPeerConnection/track_event) handler, the transform stream will receive the first full incoming frame for the track.\n\n### Value\n\nA [RTCRtpScriptTransform]<!-- or [SFrameTransform] -->, or `null` if the receiver has no associated transform stream.",
+ "transport": "`WebRTC`\n\nThe read-only **`transport`** property of an\n[RTCRtpReceiver] object provides the [RTCDtlsTransport] object\nused to interact with the underlying transport over which the receiver is exchanging\nReal-time Transport Control Protocol () packets.\n\nThis transport is responsible for receiving the data for the media on the receiver's\n[RTCRtpReceiver.track]."
+ }
+ },
+ "rtcrtpscripttransform": {
+ "docs": "\n\nThe **`RTCRtpScriptTransform`** interface of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) is used to insert a [WebRTC Encoded Transform](/en-US/docs/Web/API/WebRTC_API/Using_Encoded_Transforms) (a [TransformStream] running in a worker thread) into the WebRTC sender and receiver pipelines."
+ },
+ "rtcrtpscripttransformer": {
+ "docs": "\n\nThe **`RTCRtpScriptTransformer`** interface of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) provides a worker-side [Stream API](/en-US/docs/Web/API/Streams_API) interface that a [WebRTC Encoded Transform](/en-US/docs/Web/API/WebRTC_API/Using_Encoded_Transforms) can use to modify encoded media frames in the incoming and outgoing WebRTC pipelines.\n\n> **Note:** This feature is available in [_Dedicated_ Web Workers](/en-US/docs/Web/API/Web_Workers_API#worker_types).",
+ "properties": {
+ "generatekeyframe": "\n\nThe **`generateKeyFrame()`** method of the [RTCRtpScriptTransformer] interface causes a video encoder to generate a key frame.",
+ "options": "\n\nThe **`options`** read-only property of the [RTCRtpScriptTransformer] interface returns the object that was (optionally) passed as the second argument [during construction](/en-US/docs/Web/API/RTCRtpScriptTransform/RTCRtpScriptTransform) of the corresponding [RTCRtpScriptTransform].",
+ "readable": "\n\nThe **`readable`** read-only property of the [RTCRtpScriptTransformer] interface returns a [ReadableStream] instance is a source for encoded media frames.\n\nWhen the corresponding [RTCRtpScriptTransform] is inserted into the WebRTC sender and receiver pipelines, this stream may be enqueued with outgoing or incoming encoded media frames ([RTCEncodedVideoFrame] or [RTCEncodedAudioFrame]).\nA WebRTC encoded transform can read the frames, modify them as needed, and then send them back into the WebRTC pipeline by writing them to [RTCRtpScriptTransformer.writable].\nA common way to perform this operation is to pipe the frames through a [TransformStream].",
+ "sendkeyframerequest": "\n\nThe **`sendKeyFrameRequest()`** method of the [RTCRtpScriptTransformer] interface may be called by a [WebRTC Encoded Transform](/en-US/docs/Web/API/WebRTC_API/Using_Encoded_Transforms) that is processing incoming encoded video frames, in order to request a key frame from the sender.\n\nThe method may only be called when receiving _video_ (not audio) frames and if, for whatever reason, a recipient will not be able to decode the video without a new key frame.\nNote that the user agent can decide that the request for a key frame is not necessary, in which case the returned promise will fulfill even though the request was not actually sent.\n\n> **Note:** It might be called, for example, if a new user joins a WebRTC conference, in order to reduce the time before they receive a key frame and can hence start displaying video.\n> For more information see [Triggering a key frame](/en-US/docs/Web/API/WebRTC_API/Using_Encoded_Transforms#triggering_a_key_frame) in Using WebRTC Encoded Transforms.",
+ "writable": "\n\nThe **`writable`** read-only property of the [RTCRtpScriptTransformer] interface returns a [WritableStream] instance that can be used as a sink for encoded media frames enqueued on the corresponding [RTCRtpScriptTransformer.readable].\n\nWhen the corresponding [RTCRtpScriptTransform] is inserted into the WebRTC sender and receiver pipelines, encoded media frames ([RTCEncodedVideoFrame] or [RTCEncodedAudioFrame]) may be enqueued on the [RTCRtpScriptTransformer.readable].\nA WebRTC encoded transform can read the frames from `readable`, modify them as needed, and then send them back into the WebRTC pipeline by sending them to this `writable`.\nA common way to perform this operation is to pipe the frames through a [TransformStream]."
+ }
+ },
+ "rtcrtpsender": {
+ "docs": "\n\nThe **`RTCRtpSender`** interface provides the ability to control and obtain details about how a particular [MediaStreamTrack] is encoded and sent to a remote peer.\n\nWith it, you can configure the encoding used for the corresponding track, get information about the device's media capabilities, and so forth. You can also obtain access to an [RTCDTMFSender] which can be used to send codes (to simulate the user pressing buttons on a telephone's dial pad) to the remote peer.",
+ "properties": {
+ "dtmf": "\n\nThe read-only **`dtmf`** property on the\n**[RTCRtpSender]** interface returns a\n[RTCDTMFSender] object which can be used to send tones\nover the [RTCPeerConnection]. See [Using DTMF](/en-US/docs/Web/API/WebRTC_API/Using_DTMF) for details on how to\nmake use of the returned `RTCDTMFSender` object.",
+ "getcapabilities_static": "`WebRTC`\n\nThe _static method_ **`RTCRtpSender.getCapabilities()`** returns an object describing the codec and header extension capabilities supported by the [RTCRtpSender].\n\nYou can, similarly, obtain the capabilities of [RTCRtpReceiver] objects on the device by calling the static function [RTCRtpReceiver.getCapabilities_static].",
+ "getparameters": "`WebRTC`\n\nThe **`getParameters()`** method of the [RTCRtpSender] interface returns an object describing the current configuration for how the sender's [RTCRtpSender.track] will be encoded and transmitted to a remote [RTCRtpReceiver].",
+ "getstats": "\n\nThe [RTCRtpSender] method **`getStats()`** asynchronously requests an [RTCStatsReport] object which provides statistics about outgoing traffic on the [RTCPeerConnection] which owns the sender, returning a `Promise` which is fulfilled when the results are available.",
+ "replacetrack": "\n\nThe [RTCRtpSender] method\n**`replaceTrack()`** replaces the track currently being used\nas the sender's source with a new [MediaStreamTrack].\n\nThe new\ntrack must be of the same media kind (audio, video, etc.) and switching the track should\nnot require negotiation.\n\nAmong the use cases for `replaceTrack()` is the common need to switch\nbetween the rear- and front-facing cameras on a phone. With `replaceTrack()`,\nyou can have a track object for each camera and switch between the two as needed. See\nthe example [Switching cameras](#switching_cameras) below.",
+ "setparameters": "\n\nThe **`setParameters()`** method of the [RTCRtpSender] interface applies changes the configuration of sender's [RTCRtpSender.track], which is the [MediaStreamTrack] for which the `RTCRtpSender` is responsible.\n\nIn other words, `setParameters()` updates the configuration of the transmission as well as the encoding configuration for a specific outgoing media track on the [WebRTC](/en-US/docs/Web/API/WebRTC_API) connection.",
+ "setstreams": "`WebRTC API`\n\nThe [RTCRtpSender] method **`setStreams()`** associates the sender's [RTCRtpSender.track] with the specified [MediaStream] objects.",
+ "track": "\n\nThe **`track`** read-only property of\nthe [RTCRtpSender] interface returns the [MediaStreamTrack]\nwhich is being handled by the `RTCRtpSender`.",
+ "transform": "\n\nThe **`transform`** property of the [RTCRtpSender] object is used to insert a transform stream ([TransformStream]) running in a worker thread into the sender pipeline.\nThis allows stream transforms to be applied to encoded video and audio frames after they are output by a codec, and before they are sent.\n\nThe transform that is to be added is defined using an [RTCRtpScriptTransform] and its associated [Worker].\nIf the transform is set synchronously immediately after creating the `RTCRtpSender` it will receive the first full frame generated by the sender's encoder.\n\n### Value\n\nA [RTCRtpScriptTransform]<!-- or [SFrameTransform] -->, or `null` if the sender has no associated transform stream.",
+ "transport": "`WebRTC`\n\nThe read-only **`transport`** property of an\n[RTCRtpSender] object provides the [RTCDtlsTransport] object\nused to interact with the underlying transport over which the sender is exchanging\nReal-time Transport Control Protocol () packets.\n\nThis transport is responsible for receiving the data for the media on the sender's\n[RTCRtpReceiver.track]."
+ }
+ },
+ "rtcrtpstreamstats": {
+ "docs": "\n\nThe [RTCRtpStreamStats] dictionary is returned by the [RTCPeerConnection.getStats], [RTCRtpSender.getStats], and [RTCRtpReceiver.getStats] methods to provide detailed statistics about WebRTC connectivity.\n\nWhile the dictionary has a base set of properties that are present in each of these cases, there are also additional properties added depending on which interface the method is called on.\n\n`RTCRtpStreamStats` is the base class for all RTP-related statistics reports.\n\n> **Note:** This interface was called `RTCRTPStreamStats` until a specification update in the spring of 2017.\n> Check the [Browser compatibility](#browser_compatibility) table to know if and when the name change was implemented in specific browsers.",
+ "properties": {
+ "codecid": "\n\nThe [RTCRtpStreamStats] dictionary's\n**`codecId`** property is a string which uniquely identifies\nthe object that was inspected to produce the data in the [RTCCodecStats]\nfor the stream.",
+ "fircount": "\n\nThe **`firCount`** property of the\n[RTCRtpStreamStats] dictionary indicates the number of **Full Intra\nRequest** (**FIR**) packets have been sent by the receiver to\nthe sender.\n\nThis is a measure of how often the stream falls behind and has to\nskip frames in order to catch up.",
+ "kind": "\n\nThe **`kind`** property of the\n[RTCRtpStreamStats] dictionary is a string indicating whether the\ndescribed stream contains audio or video media.\n\nIts value\nis always either `\"audio\"` or `\"video\"`.\n\nThis property was previously called `mediaType`. The name was changed in the\nspecification in February, 2018. See [Browser compatibility](#browser_compatibility) below to\ndetermine how this affects the browsers you're targeting.",
+ "nackcount": "\n\nThe **`nackCount`** property of the\n[RTCRtpStreamStats] dictionary is a numeric value indicating the number\nof times the receiver sent a **NACK packet** to the sender.\n\nA NACK\n(Negative ACKnowledgement, also called \"Generic NACK\") packet tells the sender that one\nor more of the packets it sent were lost in transport.",
+ "plicount": "\n\nThe **`pliCount`** property of the\n[RTCRtpStreamStats] dictionary states the number of times the stream's\nreceiving end sent a **Picture Loss Indication** (**PLI**)\npacket to the sender.\n\nA PLI packet indicates that some amount of encoded video\ndata has been lost for one or more frames.",
+ "qpsum": "\n\nThe **`qpSum`** property of the\n[RTCRtpStreamStats] dictionary is a value generated by adding the\n**Quantization Parameter** (**QP**) values for every frame\nsent or received to date on the video track corresponding to this\n`RTCRtpStreamStats` object.\n\nIn general, the higher this number is,\nthe more heavily compressed the video data is.",
+ "ssrc": "\n\nThe [RTCRtpStreamStats] dictionary's\n**`ssrc`** property provides the Synchronization Source\n(SSRC), an integer which uniquely identifies the source of the \npackets whose statistics are covered by the [RTCStatsReport] that\nincludes this `RTCRtpStreamStats` dictionary.",
+ "trackid": "\n\nThe [RTCRtpStreamStats] dictionary's\n**`trackId`** property is a string which uniquely identifies\nthe [RTCMediaStreamTrackStats] object which contains the track statistics\nfor the [MediaStreamTrack] for which statistics are provided in this\nobject.",
+ "transportid": "\n\nThe [RTCRtpStreamStats] dictionary's\n**`transportId`** property is a string which uniquely\nidentifies the object from which the statistics contained in the\n[RTCTransportStats] properties in the\n[RTCStatsReport]."
+ }
+ },
+ "rtcrtptransceiver": {
+ "docs": "\n\nThe WebRTC interface **`RTCRtpTransceiver`** describes a permanent pairing of an [RTCRtpSender] and an [RTCRtpReceiver], along with some shared state.\n\nEach media section describes one bidirectional SRTP (\"Secure Real Time Protocol\") stream (excepting the media section for [RTCDataChannel], if present).\nThis pairing of send and receive SRTP streams is significant for some applications, so `RTCRtpTransceiver` is used to represent this pairing, along with other important state from the media section.\nEach non-disabled SRTP media section is always represented by exactly one transceiver.\n\nA transceiver is uniquely identified using its [RTCRtpTransceiver.mid] property, which is the same as the media ID (`mid`) of its corresponding m-line. An `RTCRtpTransceiver` is **associated** with an m-line if its `mid` is non-null; otherwise it's considered disassociated.",
+ "properties": {
+ "currentdirection": "\n\nThe read-only [RTCRtpTransceiver] property **`currentDirection`** is a string which indicates the current negotiated directionality of the transceiver.\n\nThe directionality indicates whether the transceiver will offer to send and/or receive data, or whether it is inactive or stopped and won't send or receive data.\n\nThe transceiver's preferred directionality can be set and read using the [RTCRtpTransceiver.direction] property.\nChanging the `direction` triggers a renegotiation, which may eventually result in the `currentDirection` also changing.",
+ "direction": "\n\nThe [RTCRtpTransceiver] property **`direction`** is a string that indicates the transceiver's _preferred_ directionality.\n\nThe directionality indicates whether the transceiver will offer to send and/or receive data, or whether it is inactive or stopped (terminated).\nWhen setting the transceiver's direction, the value is not applied immediately.\nThe _current_ direction is indicated by the [RTCRtpTransceiver.currentDirection] property.",
+ "mid": "\n\nThe read-only [RTCRtpTransceiver] interface's\n**`mid`** property specifies the negotiated media ID\n(`mid`) which the local and remote peers have agreed upon to uniquely\nidentify the stream's pairing of sender and receiver.",
+ "receiver": "\n\nThe read-only **`receiver`** property\nof WebRTC's [RTCRtpTransceiver] interface indicates the\n[RTCRtpReceiver] responsible for receiving and decoding incoming media\ndata for the transceiver's stream.",
+ "sender": "\n\nThe read-only **`sender`** property\nof WebRTC's [RTCRtpTransceiver] interface indicates the\n[RTCRtpSender] responsible for encoding and sending outgoing media data\nfor the transceiver's stream.",
+ "setcodecpreferences": "\n\nThe [RTCRtpTransceiver] method **`setCodecPreferences()`** configures the transceiver's preferred list of codecs.\n\nThe specified set of codecs will be used for all future connections that include this transceiver until this method is called again.\n\nWhen preparing to open an [RTCPeerConnection], you can change the codec parameters from the default configuration by calling `setCodecParameters()` _before_ calling either [RTCPeerConnection.createOffer] or [RTCPeerConnection.createAnswer].\n\nA guide to codecs supported by WebRTC—and each codec's positive and negative characteristics—can be found in [Codecs used by WebRTC](/en-US/docs/Web/Media/Formats/WebRTC_codecs).",
+ "stop": "\n\nThe **`stop()`** method in the [RTCRtpTransceiver] interface permanently stops the transceiver by stopping both the associated [RTCRtpSender] and\n[RTCRtpReceiver].",
+ "stopped": "\n\n> **Note:** Instead of using this deprecated property, compare [RTCRtpTransceiver.currentDirection] to `\"stopped\"`.\n\nThe read-only **`stopped`** property on the [RTCRtpTransceiver] interface indicates whether or not the transceiver's associated sender and receiver have both been stopped.\n\nThe transceiver is stopped if the [RTCRtpTransceiver.stop] method has been called or if a change to either the local or the remote description has caused the transceiver to be stopped for some reason."
+ }
+ },
+ "rtcsctptransport": {
+ "docs": "\n\nThe **`RTCSctpTransport`** interface provides information which describes a Stream Control Transmission Protocol (****) transport. This provides information about limitations of the transport, but also provides a way to access the underlying Datagram Transport Layer Security (****) transport over which SCTP packets for all of an [RTCPeerConnection]'s data channels are sent and received.\n\nYou don't create [RTCSctpTransport] objects yourself; instead, you get access to the `RTCSctpTransport` for a given `RTCPeerConnection` through its **[RTCPeerConnection.sctp]** property.\n\nPossibly the most useful property on this interface is its [`maxMessageSize`](#rtcsctptransport.maxmessagesize) property, which you can use to determine the upper limit on the size of messages you can send over a data channel on the peer connection.\n\n",
+ "properties": {
+ "maxchannels": "\n\nThe **`maxChannels`** read-only property of the [RTCSctpTransport] interface indicates the maximum number of [RTCDataChannel] objects that can be opened simultaneously.",
+ "maxmessagesize": "\n\nThe **`maxMessageSize`** read-only property of the [RTCSctpTransport] interface indicates the maximum size of a message that can be sent using the [RTCDataChannel.send] method.",
+ "state": "\n\nThe **`state`** read-only property of the [RTCSctpTransport] interface provides information which describes a Stream Control Transmission Protocol () transport state.",
+ "statechange_event": "\n\nA **`statechange`** event is sent to an [RTCSctpTransport] to provide notification when the [RTCSctpTransport.state] property has changed.\n\n<!-- This event is not cancelable and does not bubble. -->",
+ "transport": "\n\nThe **`transport`** read-only property of the [RTCSctpTransport] interface returns a [RTCDtlsTransport] object representing the transport used for the transmission and receipt of data packets."
+ }
+ },
+ "rtcsessiondescription": {
+ "docs": "\n\nThe **`RTCSessionDescription`** interface describes one end of a connection—or potential connection—and how it's configured. Each `RTCSessionDescription` consists of a description [RTCSessionDescription.type] indicating which part of the offer/answer negotiation process it describes and of the descriptor of the session.\n\nThe process of negotiating a connection between two peers involves exchanging `RTCSessionDescription` objects back and forth, with each description suggesting one combination of connection configuration options that the sender of the description supports. Once the two peers agree upon a configuration for the connection, negotiation is complete.",
+ "properties": {
+ "sdp": "\n\nThe property **`RTCSessionDescription.sdp`** is a read-only\nstring containing the which describes the session.",
+ "tojson": "\n\nThe **`RTCSessionDescription.toJSON()`** method generates a\n description of the object. Both properties,\n[RTCSessionDescription.type] and\n[RTCSessionDescription.sdp], are contained in the generated JSON.",
+ "type": "\n\nThe property **`RTCSessionDescription.type`** is a read-only\nstring value which describes the description's type."
+ }
+ },
+ "rtcstatsreport": {
+ "docs": "\n\nThe **`RTCStatsReport`** interface of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) provides a statistics report for a [RTCPeerConnection], [RTCRtpSender], or [RTCRtpReceiver].\n\nAn `RTCStatsReport` instance is a read-only [`Map`-like object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#map-like_browser_apis), in which each key is an identifier for an object for which statistics are being reported, and the corresponding value is a dictionary object providing the statistics.",
+ "properties": {
+ "@@iterator": "\n\nThe **`[@@iterator]()`** method of the [RTCStatsReport] interface implements the [iterable protocol](/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) and allows statistics reports to be consumed by most syntaxes expecting iterables, such as the [spread syntax](/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax) and `for...of` loops.\nIt returns an [iterator object](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator) that yields the key-value pairs of the report in insertion order.\n\nThe initial value of this property is the same function object as the initial value of the [RTCStatsReport.entries] method.\n\nThe method is otherwise the same as [`Map.prototype[@@iterator]()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/@@iterator).",
+ "entries": "\n\nThe **`entries()`** method of the [RTCStatsReport] interface returns a new [iterator](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator) object that can be used to iterate through the key/value pairs for each element in the `RTCStatsReport` object, in insertion order.\n\nThe keys are unique `id` values for monitored statistics objects from which the statistics are derived, and the associated values are [statistics dictionary objects](/en-US/docs/Web/API/RTCStatsReport#the_statistic_types).\n\nThe method is otherwise the same as `Map.prototype.entries()`.",
+ "foreach": "\n\nThe **`forEach()`** method of the [RTCStatsReport] interface executes a provided function once for each key/value pair in the `RTCStatsReport` object, in insertion order.\n\nThe keys are unique `id` values for the monitored statistics objects from which the statistics are derived, and the associated values are [statistics dictionary objects](/en-US/docs/Web/API/RTCStatsReport#the_statistic_types).\n\nThe method is otherwise the same as `Map.prototype.forEach()`.",
+ "get": "\n\nThe **`get()`** method of the [RTCStatsReport] interface returns a specified element from an `RTCStatsReport`.\n\nElements in the `RTCStatsReport` are identified by unique `id` values, which represent the monitored statistics objects from which the statistics are derived.\nThe element returned will be an instance of one of the [statistics dictionary objects](/en-US/docs/Web/API/RTCStatsReport#the_statistic_types), and it will contain statistics for the object with the given `id`.\nThe fetched value is a reference to the statistics dictionary, and any change made to that object will effectively modify it inside the `RTCStatsReport` object.\n\nThe method is otherwise the same as `Map.prototype.get()`.",
+ "has": "\n\nThe **`has()`** method of the [RTCStatsReport] interface returns a boolean indicating whether a report contains a statistics dictionary with the specified id.\n\nThe method is otherwise the same as `Map.prototype.has()`.",
+ "keys": "\n\nThe **`keys()`** method of the [RTCStatsReport] interface returns a new _[iterator](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator)_ object that can be used to iterate through the keys for each element in the `RTCStatsReport` object, in insertion order.\n\nThe keys in the `RTCStatsReport` are unique string `id` values, which represent the monitored statistics objects from which the statistics are derived.\n\nThe method is otherwise the same as `Map.prototype.keys()`.",
+ "size": "\n\nThe **`size`** read-only property of the [RTCStatsReport] interface returns the number of items in the current report.\n\nNote that each item consists of a key-value pair, where the keys are unique `id` values for monitored statistics objects from which the statistics are derived, and the associated values are [statistics dictionary objects](/en-US/docs/Web/API/RTCStatsReport#the_statistic_types).\n\nThis property is otherwise the same as `Map.prototype.size`.",
+ "values": "\n\nThe **`values()`** method of the [RTCStatsReport] interface returns a new _[iterator](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator)_ object that can be used to iterate through the values for each element in the `RTCStatsReport` object, in insertion order.\n\nThe values are [statistics dictionary objects](/en-US/docs/Web/API/RTCStatsReport#the_statistic_types).\n\nThe method is otherwise the same as `Map.prototype.values()`."
+ }
+ },
+ "rtctrackevent": {
+ "docs": "\n\nThe [WebRTC API](/en-US/docs/Web/API/WebRTC_API) interface **`RTCTrackEvent`** represents the [RTCPeerConnection.track_event] event, which is sent when a new [MediaStreamTrack] is added to an [RTCRtpReceiver] which is part of the [RTCPeerConnection].\n\nThe target is the `RTCPeerConnection` object to which the track is being added.\n\nThis event is sent by the WebRTC layer to the website or application, so you will not typically need to instantiate an `RTCTrackEvent` yourself.\n\n",
+ "properties": {
+ "receiver": "\n\nThe read-only **`receiver`** property\nof the [RTCTrackEvent] interface indicates the\n[RTCRtpReceiver] which is used to receive data containing media for the\n[RTCTrackEvent.track] to which the event refers.",
+ "streams": "\n\nThe [WebRTC API](/en-US/docs/Web/API/WebRTC_API)\ninterface [RTCTrackEvent]'s read-only\n**`streams`** property specifies an array of\n[MediaStream] objects, one for each of the streams that comprise the\ntrack being added to the [RTCPeerConnection].",
+ "track": "\n\nThe [WebRTC API](/en-US/docs/Web/API/WebRTC_API)\ninterface [RTCTrackEvent]'s read-only **`track`**\nproperty specifies the [MediaStreamTrack] that has been added to the\n[RTCPeerConnection].",
+ "transceiver": "\n\nThe WebRTC API interface [RTCTrackEvent]'s\nread-only **`transceiver`** property indicates the\n[RTCRtpTransceiver] affiliated with the event's\n[RTCTrackEvent.track].\n\nThe transceiver pairs the track's\n[RTCTrackEvent.receiver] with an [RTCRtpSender]."
+ }
+ },
+ "rtctransformevent": {
+ "docs": "\n\nThe **`RTCTransformEvent`** of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) represent an event that is fired in a dedicated worker when an encoded frame has been queued for processing by a [WebRTC Encoded Transform](/en-US/docs/Web/API/WebRTC_API/Using_Encoded_Transforms).\n\nThe interface has a [RTCTransformEvent.transformer] property that exposes a readable stream and a writable stream.\nA worker should read encoded frames from `transformer.readable`, modify them as needed, and write them to `transformer.writable` in the same order and without any duplication.\n\nAt time of writing there is just one event based on `RTCTransformEvent`: [DedicatedWorkerGlobalScope.rtctransform_event].\n\n",
+ "properties": {
+ "transformer": "\n\nThe read-only **`transformer`** property of the [RTCTransformEvent] interface returns the [RTCRtpScriptTransformer] associated with the event.\n\nThe property exposes the WebRTC sender or receiver pipeline as a readable and writable stream of encoded media frames, which a [WebRTC Encoded Transform](/en-US/docs/Web/API/WebRTC_API/Using_Encoded_Transforms) can insert itself into in order to modify frames."
+ }
+ },
+ "rtctransportstats": {
+ "docs": "\n\nThe **`RTCTransportStats`** dictionary of the [WebRTC API](/en-US/docs/Web/API/WebRTC_API) provides information about the transport ([RTCDtlsTransport] and its underlying [RTCIceTransport]) used by a particular candidate pair.\n\nThe _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](/en-US/docs/Web/API/RTCPeerConnection/RTCPeerConnection).\n\nThese statistics can be obtained by iterating the [RTCStatsReport] returned by [RTCPeerConnection.getStats] until you find a report with the [`type`](#type) of `transport`.",
+ "properties": {
+ "id": "\n\nThe **`id`** property of the [RTCTransportStats] dictionary is a string which uniquely identifies the object for which this object provides statistics.\n\nUsing 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].",
+ "timestamp": "\n\nThe **`timestamp`** property of the [RTCTransportStats] dictionary is a [DOMHighResTimeStamp] object specifying the time at which the data in the object was sampled.",
+ "type": "\n\nThe **`type`** property of the [RTCTransportStats] dictionary is a string with the value `\"transport\"`.\n\nDifferent statistics are obtained by iterating the [RTCStatsReport] object returned by a call to [RTCPeerConnection.getStats].\nThe type indicates the set of statistics available through the object in a particular iteration step.\nA value of `\"transport\"` indicates that the statistics available in the current step are those defined in [RTCTransportStats]."
+ }
+ },
+ "sanitizer": {
+ "docs": "\n\nThe **`Sanitizer`** interface of the [HTML Sanitizer API] is used to sanitize untrusted strings of HTML, [Document] and [DocumentFragment] objects.\nAfter sanitization, unwanted elements or attributes are removed, and the returned objects can safely be inserted into a document's DOM.\n\nA **`Sanitizer`** object is also used by the [Element.setHTML] method to parse and sanitize a string of HTML, and immediately insert it into an element.\n\nThe default configuration strips out XSS-relevant input by default, including `script` tags, custom elements, and comments.\nThis configuration may be customized using constructor options.",
+ "properties": {
+ "sanitize": "\n\nThe **`sanitize()`** method of the [Sanitizer] interface is used to sanitize a tree of DOM nodes, removing any unwanted elements or attributes.\n\nIt should be used when the data to be sanitized is already available as DOM nodes.\nFor example when sanitizing a `Document` instance in a frame.\n\nThe default `Sanitizer()` configuration strips out XSS-relevant input by default, including `script` tags, custom elements, and comments.\nThe sanitizer configuration may be customized using [Sanitizer.Sanitizer] constructor options.\n\n> **Note:** To sanitize strings, instead use [Element.setHTML].\n> See [HTML Sanitizer API] for more information."
+ }
+ },
+ "scheduler": {
+ "docs": "\n\nThe **`Scheduler`** interface of the [Prioritized Task Scheduling API](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API) provides the [Scheduler.postTask] method that can be used for adding prioritized tasks to be scheduled.\n\nA `Scheduler` can be accessed from the global object [Window] or [WorkerGlobalScope] (`this.scheduler`).",
+ "properties": {
+ "posttask": "\n\nThe **`postTask()`** method of the [Scheduler] interface is used for adding tasks to be [scheduled](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API) according to their [priority](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#task_priorities).\n\nThe method allows users to optionally specify a minimum delay before the task will run, a priority for the task, and a signal that can be used to modify the task priority and/or abort the task.\nIt returns a promise that is resolved with the result of the task callback function, or rejected with the abort reason or an error thrown in the task.\n\nTask priority can be [mutable or immutable](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#mutable_and_immutable_task_priority).\nIf the task priority will never need to change then it should be set using the `options.priority` parameter (any priority set through a signal will then be ignored).\nYou can still pass an [AbortSignal] (which has no priority) or [TaskSignal] to the `options.signal` parameter for aborting the task.\n\nIf the task priority might need to be changed the `options.priority` parameter must not be set.\nInstead a [TaskController] should be created and its [TaskSignal] should be passed to `options.signal`.\nThe task priority will be initialized from the signal priority, and can later be modified using the signal's associated [TaskController].\n\nIf no priority is set then the task priority defaults to [`\"user-visible\"`](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#user-visible).\n\nIf a delay is specified and greater than 0, then the execution of the task will be delayed for at least that many milliseconds.\nOtherwise the task is immediately scheduled for prioritization."
+ }
+ },
+ "scheduling": {
+ "docs": "\n\nThe **`Scheduling`** object provides methods and properties to control scheduling tasks within the current document.",
+ "properties": {
+ "isinputpending": "\n\nThe **`isInputPending()`** method of the [Scheduling] interface allows you to check whether there are pending input events in the event queue, indicating that the user is attempting to interact with the page.\n\nThis feature is useful in situations where you have a queue of tasks to run, and you want to yield to the main thread regularly to allow user interaction to occur so that the app is kept as responsive and performant as possible. `isInputPending()` allows you to yield only when there is input pending, rather than having to do it at arbitrary intervals.\n\n`isInputPending()` is called using `navigator.scheduling.isInputPending()`."
+ }
+ },
+ "screen": {
+ "docs": "\n\nThe `Screen` interface represents a screen, usually the one on which the current window is being rendered, and is obtained using [window.screen].\n\nNote that browsers determine which screen to report as current by detecting which screen has the center of the browser window.\n\n",
+ "properties": {
+ "availheight": "\n\nThe read-only [Screen] interface's\n**`availHeight`** property returns the height, in CSS pixels, of\nthe space available for Web content on the screen. Since [Screen] is\nexposed on the [Window] interface's [Window.screen] property, you access `availHeight` using\n`window.screen.availHeight`.\n\nYou can similarly use [Screen.availWidth] to get the number of pixels\nwhich are horizontally available to the browser for its use.",
+ "availwidth": "\n\nThe **`Screen.availWidth`** property returns the amount of\nhorizontal space (in pixels) available to the window.",
+ "change_event": "\n\nThe **`change`** event of the [Screen] interface is fired on a specific screen when one or more of the following properties change on it:\n\n- [Screen.width]\n- [Screen.height]\n- [Screen.availWidth]\n- [Screen.availHeight]\n- [Screen.colorDepth]\n- [Screen.orientation]",
+ "colordepth": "\n\nThe **`Screen.colorDepth`** read-only property returns the\ncolor depth of the screen. Per the CSSOM, some implementations return `24`\nfor compatibility reasons. See the browser compatibility section for those that don't.",
+ "height": "\n\nThe **`Screen.height`** read-only property returns the height\nof the screen in pixels.",
+ "isextended": "\n\nThe **`isExtended`** read-only property of the\n[Screen] interface returns `true` if the user's device has multiple screens, and `false` if not.\n\nThis property is typically accessed via `window.screen.isExtended`, and can be used to test whether multiple screens are available before attempting to create a multi-window, multi-screen layout using the [Window Management API](/en-US/docs/Web/API/Window_Management_API).",
+ "lockorientation": "\n\nThe **`lockOrientation()`** method of the [Screen]\ninterface locks the screen into a specified orientation.\n\n> **Warning:** This feature is deprecated and should be avoided. Use the [ScreenOrientation.lock] method instead.\n\n> **Note:** This method only works for installed Web apps or for Web pages\n> in [fullscreen mode](/en-US/docs/Web/API/Fullscreen_API).",
+ "mozbrightness": "\n\nIndicates 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\nYou 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.",
+ "mozenabled": "\n\nThis Boolean attribute controls the device's screen. Setting it to `false`\nwill turn off the screen.",
+ "orientation": "\n\nThe **`orientation`** read-only property of the\n[Screen] interface returns the current orientation of the screen.",
+ "orientationchange_event": "\n\nThe `orientationchange` event fires when the device's orientation has changed.",
+ "pixeldepth": "\n\nReturns the bit depth of the screen. Per the CSSOM, some implementations\nreturn `24` for compatibility reasons. See the [browser compatibility](#browser_compatibility) section for those that don't.",
+ "unlockorientation": "\n\nThe **`Screen.unlockOrientation()`** method removes all the\nprevious screen locks set by the page/app. The [ScreenOrientation.unlock]\nmethod should be used instead.\n\n> **Warning:** This feature is deprecated and should be avoided. Use the [ScreenOrientation.unlock] method instead.\n\n> **Note:** This method only works for installed Web apps or for Web pages\n> in [fullscreen mode](/en-US/docs/Web/API/Fullscreen_API).",
+ "width": "\n\nThe **`Screen.width`** read-only property returns the width of\nthe screen in CSS pixels."
+ }
+ },
+ "screendetailed": {
+ "docs": "\n\nThe **`ScreenDetailed`** interface of the [Window Management API](/en-US/docs/Web/API/Window_Management_API) represents detailed information about one specific screen available to the user's device.\n\n`ScreenDetailed` objects can be accessed via the [ScreenDetails.screens] and [ScreenDetails.currentScreen] properties.\n\n",
+ "properties": {
+ "availleft": "\n\nThe **`availLeft`** read-only property of the\n[ScreenDetailed] interface is a number representing the x-coordinate (left-hand edge) of the available screen area inside the OS virtual screen arrangement, relative to the [multi-screen origin](/en-US/docs/Web/API/Window_Management_API/Multi-screen_origin).\n\nThis is equal to the [ScreenDetailed.left] property, plus the width of any OS UI element drawn on the left of the screen. Windows cannot be placed in those areas, so `availLeft` is useful for giving you the left boundary of the actual area available to open or place windows.\n\n> **Note:** A non-standard implementation of the `availLeft` property is available on the `Screen` interface in all browsers. See the [Non-standard example](#non-standard_example) below for usage details, and see the [`Screen`](/en-US/docs/Web/API/Screen#browser_compatibility) reference page for browser support information relating to the non-standard implementation.",
+ "availtop": "\n\nThe **`availTop`** read-only property of the\n[ScreenDetailed] interface is a number representing the y-coordinate (top edge) of the available screen area inside the OS virtual screen arrangement, relative to the [multi-screen origin](/en-US/docs/Web/API/Window_Management_API/Multi-screen_origin).\n\nThis is equal to the [ScreenDetailed.top] property, plus the height of any OS UI element drawn at the top of the screen. Windows cannot be placed in those areas, so `availTop` is useful for giving you the top boundary of the actual area available to open or place windows.\n\n> **Note:** A non-standard implementation of the `availTop` property is available on the `Screen` interface in all browsers. See the [Non-standard example](#non-standard_example) below for usage details, and see the [`Screen`](/en-US/docs/Web/API/Screen#browser_compatibility) reference page for browser support information relating to the non-standard implementation.",
+ "devicepixelratio": "\n\nThe **`devicePixelRatio`** read-only property of the\n[ScreenDetailed] interface is a number representing the screen's device pixel ratio.\n\nThis is the same as the value returned by [Window.devicePixelRatio], except that `Window.devicePixelRatio`:\n\n- always returns the device pixel ratio for the [ScreenDetails.currentScreen].\n- also includes scaling of the window itself, i.e. page zoom (at least on some browser implementations).",
+ "isinternal": "\n\nThe **`isInternal`** read-only property of the\n[ScreenDetailed] interface is a boolean indicating whether the screen is internal to the device or external. External devices are generally manufactured separately from the device they are attached to and can be connected and disconnected as needed, whereas internal screens are part of the device and not intended to be disconnected.",
+ "isprimary": "\n\nThe **`isPrimary`** read-only property of the\n[ScreenDetailed] interface is a boolean indicating whether the screen is set as the operating system (OS) primary screen or not.\n\nThe OS hosting the browser will have one primary screen, and one or more secondary screens. The primary screen can usually be specified by the user via OS settings, and generally contains OS UI features such as the taskbar/icon dock. The primary screen may change for a number of reasons, such as a screen being unplugged.",
+ "label": "\n\nThe **`label`** read-only property of the\n[ScreenDetailed] interface is a string providing a descriptive label for the screen, for example \"Built-in Retina Display\".\n\nThis is useful for constructing a list of options to display to the user if you want them to choose a screen to display content on.",
+ "left": "\n\nThe **`left`** read-only property of the\n[ScreenDetailed] interface is a number representing the x-coordinate (left-hand edge) of the total screen area inside the OS virtual screen arrangement, relative to the [multi-screen origin](/en-US/docs/Web/API/Window_Management_API/Multi-screen_origin).\n\nThis is equal to the true left-hand edge, ignoring any OS UI element drawn at the left of the screen. Windows cannot be placed in those areas; to get the left-hand coordinate of the screen area that windows can be placed in, use [ScreenDetailed.availLeft].\n\n> **Note:** In Firefox, a non-standard implementation of the `left` property is available on the `Screen` interface. See the [Non-standard example](#non-standard_example) below for usage details, and see the [`Screen`](/en-US/docs/Web/API/Screen#browser_compatibility) reference page for browser support information relating to the non-standard implementation.",
+ "top": "\n\nThe **`top`** read-only property of the\n[ScreenDetailed] interface is a number representing the y-coordinate (top edge) of the total screen area inside the OS virtual screen arrangement, relative to the [multi-screen origin](/en-US/docs/Web/API/Window_Management_API/Multi-screen_origin).\n\nThis is equal to the true top edge, ignoring any OS UI element drawn at the top of the screen. Windows cannot be placed in those areas; to get the top coordinate of the screen area that windows can be placed in, use [ScreenDetailed.availTop].\n\n> **Note:** In Firefox, a non-standard implementation of the `top` property is available on the `Screen` interface. See the [Non-standard example](#non-standard_example) below for usage details, and see the [`Screen`](/en-US/docs/Web/API/Screen#browser_compatibility) reference page for browser support information relating to the non-standard implementation."
+ }
+ },
+ "screendetails": {
+ "docs": "\n\nThe **`ScreenDetails`** interface of the [Window Management API](/en-US/docs/Web/API/Window_Management_API) represents the details of all the screens available to the user's device.\n\nThis 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\n",
+ "properties": {
+ "currentscreen": "\n\nThe **`currentScreen`** read-only property of the\n[ScreenDetails] interface contains a single [ScreenDetailed] object representing detailed information about the screen that the current browser window is displayed in.",
+ "currentscreenchange_event": "\n\nThe **`currentscreenchange`** event of the [ScreenDetails] interface is fired when the [ScreenDetails.currentScreen] changes in one of the following ways:\n\n- The current screen changes to a different screen, i.e., the current browser window is moved to a different screen.\n- One or more of the following properties change on the current screen:\n - [Screen.width]\n - [Screen.height]\n - [Screen.availWidth]\n - [Screen.availHeight]\n - [Screen.colorDepth]\n - [Screen.orientation]\n- One or more of the following values change:\n - The screen's **position** ((x,y) coordinates of the top-left corner) inside the OS virtual screen arrangement, relative to the [multi-screen origin](/en-US/docs/Web/API/Window_Management_API/Multi-screen_origin)\n - The screen's **available position** ((x,y) coordinates of the top-left corner) inside the OS virtual screen arrangement, relative to the [multi-screen origin](/en-US/docs/Web/API/Window_Management_API/Multi-screen_origin). This is equal to the screen position, plus the width/height of any OS UI elements drawn on the top-left of the screen — windows cannot be placed in those areas\n - [ScreenDetailed.devicePixelRatio]\n - [ScreenDetailed.label]\n - The screen's designation as primary or secondary (see [ScreenDetailed.isPrimary])\n - The screen's designation as internal or external (see [ScreenDetailed.isInternal])",
+ "screens": "\n\nThe **`screens`** read-only property of the\n[ScreenDetails] interface contains an array of [ScreenDetailed] objects, each one representing detailed information about one specific screen available to the user's device.",
+ "screenschange_event": "\n\nThe **`screenschange`** event of the [ScreenDetails] interface is fired when the set of screens available to the system has changed: that is, a new screen has become available or an existing screen has become unavailable. This will be reflected in a change in the [ScreenDetails.screens] array."
+ }
+ },
+ "screenorientation": {
+ "docs": "\n\nThe **`ScreenOrientation`** interface of the [Screen Orientation API](/en-US/docs/Web/API/Screen_Orientation_API) provides information about the current orientation of the document.\n\nA **`ScreenOrientation`** instance object can be retrieved using the [screen.orientation] property.\n\n",
+ "properties": {
+ "angle": "\n\nThe **`angle`** read-only property of the\n[ScreenOrientation] interface returns the document's current orientation\nangle.",
+ "change_event": "\n\nThe **`change`** event of the [ScreenOrientation] interface fires when the orientation of the screen has changed, for example when a user rotates their mobile phone.",
+ "lock": "\n\nThe **`lock()`** property of the [ScreenOrientation] interface locks the orientation of the containing document to the specified orientation.\n\nTypically orientation locking is only enabled on mobile devices, and when the browser context is full screen.\nIf locking is supported, then it must work for all the parameter values listed below.",
+ "type": "\n\nThe **`type`** read-only property of the\n[ScreenOrientation] interface returns the document's current orientation\ntype, one of `portrait-primary`, `portrait-secondary`, `landscape-primary`, or\n`landscape-secondary`.",
+ "unlock": "\n\nThe **`unlock()`** property of the\n[ScreenOrientation] interface unlocks the orientation of the containing\ndocument from its default orientation."
+ }
+ },
+ "scriptprocessornode": {
+ "docs": "\n\nThe `ScriptProcessorNode` interface allows the generation, processing, or analyzing of audio using JavaScript.\n\n> **Note:** This feature was replaced by [AudioWorklets](/en-US/docs/Web/API/AudioWorklet) and the [AudioWorkletNode] interface.\n\nThe `ScriptProcessorNode` interface is an [AudioNode] audio-processing module that is linked to two buffers, one containing the input audio data, one containing the processed output audio data. An event, implementing the [AudioProcessingEvent] interface, is sent to the object each time the input buffer contains new data, and the event handler terminates when it has filled the output buffer with data.\n\n\n\nThe size of the input and output buffer are defined at the creation time, when the [BaseAudioContext.createScriptProcessor] method is called (both are defined by [BaseAudioContext.createScriptProcessor]'s `bufferSize` parameter). The buffer size must be a power of 2 between `256` and `16384`, that is `256`, `512`, `1024`, `2048`, `4096`, `8192` or `16384`. Small numbers lower the _latency_, but large number may be necessary to avoid audio breakup and glitches.\n\nIf the buffer size is not defined, which is recommended, the browser will pick one that its heuristic deems appropriate.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code> (not used in the default count mode)</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "audioprocess_event": "\n\nThe `audioprocess` event of the [ScriptProcessorNode] interface is fired when an input buffer of a script processor is ready to be processed.\n\n> **Note:** This feature was replaced by [AudioWorklets](/en-US/docs/Web/API/AudioWorklet) and the [AudioWorkletNode] interface.\n\nThis event is not cancelable and does not bubble.",
+ "buffersize": "\n\nThe `bufferSize` property of the [ScriptProcessorNode] interface returns an integer representing both the input and output buffer size, in sample-frames. Its value can be a power of 2 value in the range `256` – `16384`.\n\n> **Note:** This feature was replaced by [AudioWorklets](/en-US/docs/Web/API/AudioWorklet) and the [AudioWorkletNode] interface."
+ }
+ },
+ "scrolltimeline": {
+ "docs": "\n\nThe **`ScrollTimeline`** interface of the [Web Animations API] represents a scroll progress timeline (see [CSS scroll-driven animations](/en-US/docs/Web/CSS/CSS_scroll-driven_animations) for more details).\n\nPass a `ScrollTimeline` instance to the [Animation.Animation] constructor or the [Element.animate] method to specify it as the timeline that will control the progress of the animation.\n\n",
+ "properties": {
+ "axis": "\n\nThe **`axis`** read-only property of the\n[ScrollTimeline] interface returns an enumerated value representing the scroll axis that is driving the progress of the timeline.",
+ "source": "\n\nThe **`source`** read-only property of the\n[ScrollTimeline] interface returns a reference to the scrollable element (_scroller_) whose scroll position is driving the progress of the timeline and therefore the animation."
+ }
+ },
+ "securepaymentconfirmationrequest": {
+ "docs": "\n\nThe **`SecurePaymentConfirmationRequest`** dictionary describes input to the [Payment Request API](/en-US/docs/Web/API/Payment_Request_API) when used to authenticate a user during an e-commerce transaction [using SPC with Payment Request API](/en-US/docs/Web/API/Payment_Request_API/Using_secure_payment_confirmation).\n\nAn instance of this dictionary must be passed into the [PaymentRequest.PaymentRequest] constructor as the value of the [`data`](/en-US/docs/Web/API/PaymentRequest/PaymentRequest#data) field corresponding to a [`supportedMethods`](/en-US/docs/Web/API/PaymentRequest/PaymentRequest#supportedmethods) value of `\"secure-payment-confirmation\"`."
+ },
+ "securitypolicyviolationevent": {
+ "docs": "\n\nThe **`SecurityPolicyViolationEvent`** interface inherits from [Event], and represents the event object of an event sent on a document or worker when its content security policy is violated.\n\n",
+ "properties": {
+ "blockeduri": "\n\nThe **`blockedURI`** read-only property of the\n[SecurityPolicyViolationEvent] interface is a string\nrepresenting the URI of the resource that was blocked because it violates a policy.",
+ "columnnumber": "\n\nThe **`columnNumber`** read-only property of the\n[SecurityPolicyViolationEvent] interface is the column number in the\ndocument or worker at which the violation occurred.",
+ "disposition": "\n\nThe **`disposition`** read-only property of the\n[SecurityPolicyViolationEvent] interface indicates how the violated policy\nis configured to be treated by the user agent.",
+ "documenturi": "\n\nThe **`documentURI`** read-only property of the\n[SecurityPolicyViolationEvent] interface is a string\nrepresenting the URI of the document or worker in which the violation was found.",
+ "effectivedirective": "\n\nThe **`effectiveDirective`** read-only property of the\n[SecurityPolicyViolationEvent] interface is a string\nrepresenting the directive whose enforcement uncovered the violation.",
+ "linenumber": "\n\nThe **`lineNumber`** read-only property of the\n[SecurityPolicyViolationEvent] interface is the line number in the document\nor worker at which the violation occurred.",
+ "originalpolicy": "\n\nThe **`originalPolicy`** read-only property of the\n[SecurityPolicyViolationEvent] interface is a string\ncontaining the policy whose enforcement uncovered the violation.",
+ "referrer": "\n\nThe **`referrer`** read-only property of the\n[SecurityPolicyViolationEvent] interface is a string\nrepresenting the referrer of the resources whose policy was violated. This will be a URL\nor `null`.",
+ "sample": "\n\nThe **`sample`** read-only property of the\n[SecurityPolicyViolationEvent] interface is a string\nrepresenting a sample of the resource that caused the violation.",
+ "sourcefile": "\n\nThe **`sourceFile`** read-only property of the\n[SecurityPolicyViolationEvent] interface is a string\nrepresenting the URI of the document or worker in which the violation was found.",
+ "statuscode": "\n\nThe **`statusCode`** read-only property of the\n[SecurityPolicyViolationEvent] interface is a number representing the HTTP\nstatus code of the document or worker in which the violation occurred.",
+ "violateddirective": "\n\nThe **`violatedDirective`** read-only property of the\n[SecurityPolicyViolationEvent] interface is a string\nrepresenting the directive whose enforcement uncovered the violation."
+ }
+ },
+ "selection": {
+ "docs": "\n\nA **`Selection`** object represents the range of text selected by the user or the current position of the caret. To obtain a `Selection` object for examination or manipulation, call [window.getSelection].\n\nA 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.",
+ "properties": {
+ "addrange": "\n\nThe **`Selection.addRange()`** method adds a\n[Range] to a [Selection].",
+ "anchornode": "\n\nThe **`Selection.anchorNode`** read-only property returns the\n[Node] in which the selection begins.\n\nA 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.",
+ "anchoroffset": "\n\nThe **`Selection.anchorOffset`** read-only property returns the\nnumber of characters that the selection's anchor is offset within the\n[Selection.anchorNode].\n\nThis number is zero-based. If the selection begins with the first character in the\n[Selection.anchorNode], `0` is returned.",
+ "collapse": "\n\nThe **`Selection.collapse()`** method collapses the current selection to a single point. The document is not modified. If the content is focused and editable, the caret will blink there.\n\n> **Note:** This method is an alias for the [Selection.setPosition] method.",
+ "collapsetoend": "\n\nThe **`Selection.collapseToEnd()`** method collapses the\nselection to the end of the last range in the selection. If the content of the selection\nis focused and editable, the caret will blink there.",
+ "collapsetostart": "\n\nThe **`Selection.collapseToStart()`** method collapses the\nselection to the start of the first range in the selection. If the content of the\nselection is focused and editable, the caret will blink there.",
+ "containsnode": "\n\nThe **`Selection.containsNode()`** method indicates whether a\nspecified node is part of the selection.",
+ "deletefromdocument": "\n\nThe **`deleteFromDocument()`** method of the\n[Selection] interface deletes the selected text from the document's DOM.",
+ "empty": "\n\nThe **`Selection.empty()`** method removes all ranges from the selection, leaving the [Selection.anchorNode] and [Selection.focusNode] properties equal to `null` and nothing selected. When this method is called, a [Document/selectionchange_event] event is fired at the document.\n\n> **Note:** This method is an alias for the [Selection.removeAllRanges] method.",
+ "extend": "\n\nThe **`Selection.extend()`** method moves the focus of the\nselection to a specified point. The anchor of the selection does not move. The selection\nwill be from the anchor to the new focus, regardless of direction.",
+ "focusnode": "\n\nThe **`Selection.focusNode`** read-only property returns the\n[Node] in which the selection ends.\n\nA 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 <kbd>Shift</kbd> 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.",
+ "focusoffset": "\n\nThe **`Selection.focusOffset`** read-only property returns the\nnumber of characters that the selection's focus is offset within the\n[Selection.focusNode].\n\nThis number is zero-based. If the selection ends with the first character in the\n[Selection.focusNode], `0` is returned.",
+ "getrangeat": "\n\nThe **`Selection.getRangeAt()`** method returns a range object\nrepresenting one of the ranges currently selected.",
+ "iscollapsed": "\n\nThe **`Selection.isCollapsed`** read-only property returns a\nboolean value which indicates whether or not there is currently any text\nselected. No text is selected when the selection's start and end points are at the same\nposition in the content.\n\nKeep in mind that a collapsed selection may still have one (or more, in Gecko)\n[Range]s, so [Selection.rangeCount] may not be zero. In that\nscenario, calling a [Selection] object's [Selection.getRangeAt] method may return a `Range` object which is collapsed.",
+ "modify": "\n\nThe **`Selection.modify()`** method applies a change to the\ncurrent selection or cursor position, using simple textual commands.",
+ "rangecount": "\n\nThe **`Selection.rangeCount`** read-only property returns the\nnumber of ranges in the selection.\n\nBefore the user has clicked a freshly loaded page, the `rangeCount` is\n`0`. After the user clicks on the page, `rangeCount` is\n`1`, even if no selection is visible.\n\nA user can normally only select one range at a time, so the `rangeCount`\nwill usually be `1`. Scripting can be used to make the selection contain more\nthan one range.\n\nGecko browsers allow multiple selections across table cells. Firefox allows to select\nmultiple ranges in the document by using Ctrl+click (unless the click occurs within an\nelement that has the `display: table-cell` CSS property assigned).",
+ "removeallranges": "\n\nThe **`Selection.removeAllRanges()`** method removes all ranges from the selection, leaving the [Selection.anchorNode] and [Selection.focusNode] properties equal to `null` and nothing selected. When this method is called, a [Document/selectionchange_event] event is fired at the document.\n\n> **Note:** This method is an alias for the [Selection.empty] method.",
+ "removerange": "\n\nThe **`Selection.removeRange()`** method removes a range from a\nselection.",
+ "selectallchildren": "\n\nThe **`Selection.selectAllChildren()`** method adds all the\nchildren of the specified node to the selection. Previous selection is lost.",
+ "setbaseandextent": "\n\nThe **`setBaseAndExtent()`** method of the\n[Selection] interface sets the selection to be a range including all or\nparts of two specified DOM nodes, and any content located between them.",
+ "setposition": "\n\nThe **`Selection.setPosition()`** method collapses the current selection to a single point. The document is not modified. If the content is focused and editable, the caret will blink there.\n\n> **Note:** This method is an alias for the [Selection.collapse] method.",
+ "tostring": "\n\nThe **`Selection.toString()`** method returns a string\ncurrently being represented by the selection object, i.e. the currently selected text.",
+ "type": "\n\nThe **`type`** read-only property of the\n[Selection] interface returns a string describing the\ntype of the current selection."
+ }
+ },
+ "sensor": {
+ "docs": "\n\nThe **`Sensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) is the base class for all the other sensor interfaces. This interface cannot be used directly. Instead it provides properties, event handlers, and methods accessed by interfaces that inherit from it.\n\nThis feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.\n\nWhen initially created, the `Sensor` object is _idle_, meaning it does not take measures. Once the [Sensor.start] method is called, it prepares itself to read data and, once ready, the [Sensor/activate_event] event is sent and the sensor becomes _activated_. It then sends a [Sensor/reading_event] event each time new data is available.\n\nIn case of an error, the [Sensor/error_event] event is sent, reading stops, and the `Sensor` object becomes _idle_ again. The [Sensor.start] method needs to be called again before it can read further data.",
+ "properties": {
+ "activate_event": "\n\nThe **`activate`** event is fired when a sensor becomes activated. It means that it will start obtaining readings.\n\nThe [Sensor] interface is a base class, `onactivate` and the `activate` event may only be used\non one of the [derived classes](/en-US/docs/Web/API/Sensor#interfaces_based_on_sensor).",
+ "activated": "\n\nThe **`activated`** read-only property\nof the [Sensor] interface returns a boolean value indicating\nwhether the sensor is active.\n\nBecause [Sensor] is a base class, `activated` may only be read\nfrom one of its derived classes.",
+ "error_event": "\n\nThe **`error`** event is fired when an exception occurs on a sensor.\n\nThe [Sensor] interface is a base class, `onerror` and the `error` event may only be used\non one of the [derived classes](/en-US/docs/Web/API/Sensor#interfaces_based_on_sensor).\n\nAfter this event has occurred, the [Sensor] object becomes idle. If the sensor was reading values, it will stop until it restarts.",
+ "hasreading": "\n\nThe **`hasReading`** read-only\nproperty of the [Sensor] interface returns a boolean value\nindicating whether the sensor has a reading.\n\nBecause [Sensor] is a base class, `hasReading` may only be read\nfrom one of its derived classes.",
+ "reading_event": "\n\nThe **`reading`** event is fired when a new reading is available on a sensor.\n\nThe [Sensor] interface is a base class, `onreading` and the `reading` event may only be used\non one of the [derived classes](/en-US/docs/Web/API/Sensor#interfaces_based_on_sensor).",
+ "start": "\n\nThe **`start`** method activates one\nof the sensors based on `Sensor`.",
+ "stop": "\n\nThe **`stop`** method of the\n[Sensor] interface deactivates the current sensor.",
+ "timestamp": "\n\nThe **`timestamp`** read-only property\nof the [Sensor] interface returns the timestamp of the latest sensor\nreading.\n\nBecause [Sensor] is a base class, `timestamp` may only be read\nfrom one of its derived classes."
+ }
+ },
+ "sensorerrorevent": {
+ "docs": "\n\nThe **`SensorErrorEvent`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides information about errors thrown by a [Sensor] or derived interface.\n\n",
+ "properties": {
+ "error": "\n\nThe **`error`** read-only property of\nthe [SensorErrorEvent] interface returns the [DOMException]\nobject passed in the event's constructor."
+ }
+ },
+ "serial": {
+ "docs": "\n\nThe `Serial` interface of the [Web_Serial_API] provides attributes and methods for finding and connecting to serial ports from a web page.\n\n",
+ "properties": {
+ "getports": "\n\nThe **`getPorts()`** method of the [Serial] interface returns a `Promise` that resolves with an array of [SerialPort] objects representing serial ports connected to the host which the origin has permission to access.",
+ "requestport": "\n\nThe **`Serial.requestPort()`** method of the [Serial] interface returns a `Promise` that resolves with an instance of [SerialPort] representing the device chosen by the user or rejects if no device was selected."
+ }
+ },
+ "serialport": {
+ "docs": "\n\nThe `SerialPort` interface of the [Web_Serial_API] provides access to a serial port on the host device.\n\n",
+ "properties": {
+ "close": "\n\nThe **`SerialPort.close()`** method of the [SerialPort] interface returns a `Promise` that resolves when the port closes.",
+ "connect_event": "\n\nThe **`connect`** event of the [SerialPort] interface is fired when a port has connected to the device. This event is only fired for ports associated with removable devices such as those connected via USB.\n\nThis event bubbles to the instance of [Serial] that returned this interface.",
+ "disconnect_event": "\n\nThe **`disconnect`** event of the [SerialPort] interface is fired when the port has disconnected from the device. This event is only fired for ports associated with removable devices such as those connected via USB.\n\nThis event bubbles to the instance of [Serial] that returned this interface.",
+ "forget": "\n\nThe **`SerialPort.forget()`** method of the [SerialPort] interface returns a `Promise` that resolves when the serial port is closed and is forgotten.",
+ "getinfo": "\n\nThe **`getInfo()`** method of the [SerialPort] interface returns an object whose properties are the vendor ID and product ID of the device.",
+ "getsignals": "\n\nThe **`SerialPort.getSignals()`** method of the [SerialPort] interface returns a `Promise` that resolves with an object containing the current state of the port's control signals.",
+ "open": "\n\nThe **`open()`** method of the [SerialPort] interface returns a `Promise` that resolves when the port is opened. By default the port is opened with 8 data bits, 1 stop bit and no parity checking. The `baudRate` parameter is required.",
+ "readable": "\n\nThe **`readable`** read-only property of the [SerialPort] interface returns a [ReadableStream] for receiving data from the device connected to the port. Chunks read from this stream are instances of `Uint8Array`. This property is non-null as long as the port is open and has not encountered a fatal error.",
+ "setsignals": "\n\nThe **`setSignals()`** method of the [SerialPort] interface sets control signals on the port and returns a `Promise` that resolves when they are set.",
+ "writable": "\n\nThe **`writable`** read-only property of the [SerialPort] interface returns a [WritableStream] for sending data to the device connected to the port. Chunks written to this stream must be instances of `ArrayBuffer`, `TypedArray`, or `DataView`. This property is non-null as long as the port is open and has not encountered a fatal error."
+ }
+ },
+ "serviceworker": {
+ "docs": "\n\nThe **`ServiceWorker`** interface of the [Service Worker API](/en-US/docs/Web/API/Service_Worker_API) provides a reference to a service worker. Multiple (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique `ServiceWorker` object.\n\nA `ServiceWorker` object is available via a number of properties:\n\n- [ServiceWorkerRegistration.active]\n- [ServiceWorkerGlobalScope.serviceWorker]\n- [ServiceWorkerContainer.controller] — when the service worker is in `activating` or `activated` state\n- [ServiceWorkerRegistration.installing] — when the service worker is in `installing` state\n- [ServiceWorkerRegistration.waiting] — when the service worker is in `installed` state\n\nThe `ServiceWorker` interface is dispatched a set of lifecycle events — `install` and `activate` — and functional events including `fetch`. A `ServiceWorker` object has an associated [ServiceWorker.state], related to its lifecycle.\n\nService workers allow static import of [ECMAScript modules](/en-US/docs/Web/JavaScript/Guide/Modules), if supported, using [`import`](/en-US/docs/Web/JavaScript/Reference/Statements/import).\nDynamic import is disallowed by the specification — calling [`import()`](/en-US/docs/Web/JavaScript/Reference/Operators/import) will throw.\n\n",
+ "properties": {
+ "error_event": "\n\nThe `error` event fires whenever an error occurs in the service worker.",
+ "postmessage": "\n\nThe **`postMessage()`** method of the [ServiceWorker] interface sends a message to the worker. This accepts a single parameter, which is the data to send to the worker. The data may be any JavaScript object which can be handled by the [structured clone algorithm](/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm).\n\nThe service worker can send back information to its clients by using the [Client.postMessage] method. The message will not be sent back to this `ServiceWorker` object but to the associated [ServiceWorkerContainer] available via [navigator.serviceWorker].",
+ "scripturl": "\n\nReturns the `ServiceWorker` serialized script URL defined as part of [`ServiceWorkerRegistration`](/en-US/docs/Web/API/ServiceWorkerRegistration).\nMust be on the same origin as the document that registers the\n`ServiceWorker`.",
+ "state": "\n\nThe **`state`** read-only property of the\n[ServiceWorker] interface returns a string representing the current state\nof the service worker. It can be one of the following values: `parsed`, `installing`,\n`installed`, `activating`, `activated`, or\n`redundant`.",
+ "statechange_event": "\n\nThe `statechange` event fires anytime the [ServiceWorker.state] changes."
+ }
+ },
+ "serviceworkercontainer": {
+ "docs": "\n\nThe **`ServiceWorkerContainer`** interface of the [Service Worker API](/en-US/docs/Web/API/Service_Worker_API) provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations.\n\nMost importantly, it exposes the [ServiceWorkerContainer.register] method used to register service workers, and the [ServiceWorkerContainer.controller] property used to determine whether or not the current page is actively controlled.\n\n",
+ "properties": {
+ "controller": "\n\nThe **`controller`** read-only\nproperty of the [ServiceWorkerContainer] interface returns a\n[ServiceWorker] object if its state is `activating` or\n`activated` (the same object returned by\n[ServiceWorkerRegistration.active]). This property returns\n`null` if the request is a force refresh (_Shift_ + refresh) or if\nthere is no active worker.",
+ "controllerchange_event": "\n\nThe **`controllerchange`** event of the [ServiceWorkerContainer] interface fires when the document's associated [ServiceWorkerRegistration] acquires a new [ServiceWorkerRegistration.active] worker.",
+ "error_event": "\n\nThe `error` event fires when an error occurs in the service worker.",
+ "getregistration": "\n\nThe **`getRegistration()`** method of the\n[ServiceWorkerContainer] interface gets a\n[ServiceWorkerRegistration] object whose scope URL matches the provided\nclient URL. The method returns a `Promise` that resolves to\na [ServiceWorkerRegistration] or `undefined`.",
+ "getregistrations": "\n\nThe **`getRegistrations()`** method of the\n[ServiceWorkerContainer] interface gets all\n[ServiceWorkerRegistration]s associated with a\n`ServiceWorkerContainer`, in an array. The method returns a\n`Promise` that resolves to an array of\n[ServiceWorkerRegistration].",
+ "message_event": "\n\nThe **`message`** event is used in a page controlled by a service worker to receive messages from the service worker.\n\nThis event is not cancelable and does not bubble.",
+ "messageerror_event": "\n\nThe **`messageerror`** event is fired to the [ServiceWorkerContainer] when an incoming message sent to the associated worker can't be deserialized.\n\nThis event is not cancelable and does not bubble.",
+ "ready": "\n\nThe **`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 [ServiceWorkerRegistration.active] worker. Once that\ncondition is met, it resolves with\nthe [ServiceWorkerRegistration].",
+ "register": "\n\nThe **`register()`** method of the\n[ServiceWorkerContainer] interface creates or updates a\n[ServiceWorkerRegistration] for the given `scriptURL`.\n\nIf successful, a service worker registration ties the provided script URL to a\n_scope_, which is subsequently used for navigation matching. You can call this\nmethod unconditionally from the controlled page. I.e., you don't need to first check\nwhether there's an active registration.\n\nThere is frequent confusion surrounding the meaning and use of _scope_. Since a\nservice worker can't have a scope broader than its own location, only use the\n`scope` option when you need a scope that is narrower than the default.",
+ "startmessages": "\n\nThe **`startMessages()`** method of\nthe [ServiceWorkerContainer] interface explicitly starts the flow of\nmessages being dispatched from a service worker to pages under its control (e.g. sent\nvia [Client.postMessage]). This can be used to react to sent messages\nearlier, even before that page's content has finished loading."
+ }
+ },
+ "serviceworkerglobalscope": {
+ "docs": "\n\nThe **`ServiceWorkerGlobalScope`** interface of the [Service Worker API](/en-US/docs/Web/API/Service_Worker_API) represents the global execution context of a service worker.\n\nDevelopers should keep in mind that the ServiceWorker state is not persisted across the termination/restart cycle, so each event handler should assume it's being invoked with a bare, default global state.\n\nOnce successfully registered, a service worker can and will be terminated when idle to conserve memory and processor power. An active service worker is automatically restarted to respond to events, such as [ServiceWorkerGlobalScope.fetch_event] or [ServiceWorkerGlobalScope.message_event].\n\nAdditionally, synchronous requests are not allowed from within a service worker — only asynchronous requests, like those initiated via the [fetch] method, can be used.\n\nThis interface inherits from the [WorkerGlobalScope] interface, and its parent [EventTarget].\n\n",
+ "properties": {
+ "activate_event": "\n\nThe **`activate`** event of the [ServiceWorkerGlobalScope] interface is fired when a [ServiceWorkerRegistration] acquires a new [ServiceWorkerRegistration.active] worker.\n\nThis event is not cancelable and does not bubble.",
+ "backgroundfetchabort_event": "\n\nThe **`backgroundfetchabort`** event of the [ServiceWorkerGlobalScope] interface is fired when the user or the app itself cancels a [background fetch](/en-US/docs/Web/API/Background_Fetch_API) operation.\n\nThis event is not cancelable and does not bubble.",
+ "backgroundfetchclick_event": "\n\nThe **`backgroundfetchclick`** event of the [ServiceWorkerGlobalScope] interface is fired when the user clicks on the UI that the browser provides to show the user the progress of the [background fetch](/en-US/docs/Web/API/Background_Fetch_API) operation.\n\nThis event is not cancelable and does not bubble.",
+ "backgroundfetchfail_event": "\n\nThe **`backgroundfetchfail`** event of the [ServiceWorkerGlobalScope] interface is fired when a [background fetch](/en-US/docs/Web/API/Background_Fetch_API) operation has failed: that is, when at least one network request in the fetch has failed to complete successfully.\n\nThis event is not cancelable and does not bubble.",
+ "backgroundfetchsuccess_event": "\n\nThe **`backgroundfetchsuccess`** event of the [ServiceWorkerGlobalScope] interface is fired when a [background fetch](/en-US/docs/Web/API/Background_Fetch_API) operation has completed successfully: that is, when all network requests in the fetch have completed successfully.\n\nThis event is not cancelable and does not bubble.",
+ "canmakepayment_event": "\n\nThe **`canmakepayment`** event of the [ServiceWorkerGlobalScope] interface is fired on a payment app's service worker to check whether it is ready to handle a payment. Specifically, it is fired when the merchant website calls [PaymentRequest.PaymentRequest].",
+ "clients": "\n\nThe **`clients`** read-only property of the\n[ServiceWorkerGlobalScope] interface returns the [`Clients`](/en-US/docs/Web/API/Clients)\nobject associated with the service worker.",
+ "contentdelete_event": "\n\nThe **`contentdelete`** event of the [ServiceWorkerGlobalScope] interface is fired when an item is removed from the indexed content via the user agent.\n\nThis event is not cancelable and does not bubble.",
+ "cookiechange_event": "\n\nThe **`cookiechange`** event of the [ServiceWorkerGlobalScope] interface is fired when a cookie change occurs that matches the service worker's cookie change subscription list.\n\nThis event is not cancelable and does not bubble.",
+ "fetch_event": "\n\nThe **`fetch`** event is fired in the service worker's global scope when the main app thread makes a network request. It enables the service worker to intercept network requests and send customized responses (for example, from a local cache).\n\nThis event is not cancelable and does not bubble.",
+ "install_event": "\n\nThe **`install`** event of the [ServiceWorkerGlobalScope] interface is fired when a [ServiceWorkerRegistration] acquires a new [ServiceWorkerRegistration.installing] worker.\n\nThis event is not cancelable and does not bubble.",
+ "message_event": "\n\nThe **`message`** event of the [ServiceWorkerGlobalScope] interface occurs when incoming messages are received. Controlled pages can use the [ServiceWorker.postMessage] method to send messages to service workers.\nThe service worker can optionally send a response back via the [Client.postMessage], corresponding to the controlled page.\n\nThis event is not cancelable and does not bubble.",
+ "messageerror_event": "\n\nThe **`messageerror`** event of the [ServiceWorkerGlobalScope] interface occurs when incoming messages can't be deserialized.\n\nThis event is not cancelable and does not bubble.",
+ "notificationclick_event": "\n\nThe **`notificationclick`** event is fired to indicate that a system notification spawned by [ServiceWorkerRegistration.showNotification] has been clicked.\n\nThis event is not cancelable and does not bubble.",
+ "notificationclose_event": "\n\nThe **`notificationclose`** event fires when a user closes a displayed notification spawned by [ServiceWorkerRegistration.showNotification].\n\nNotifications created on the main thread or in workers which aren't service workers\nusing the [Notification.Notification] constructor will\ninstead receive a [Notification/close_event] event on the `Notification` object\nitself.\n\n> **Note:** Trying to create a notification inside the\n> [ServiceWorkerGlobalScope] using the\n> [Notification.Notification] constructor will throw an\n> error.\n\nThis event is not cancelable and does not bubble.",
+ "paymentrequest_event": "\n\nThe **`paymentrequest`** event of the [ServiceWorkerGlobalScope] interface is fired on a payment app when a payment flow has been initiated on the merchant website via the [PaymentRequest.show] method.",
+ "periodicsync_event": "\n\nThe **`periodicsync`** event of the [ServiceWorkerGlobalScope] interface is fired at timed intervals, specified when registering a [PeriodicSyncManager].\n\nThis event is not cancelable and does not bubble.",
+ "push_event": "\n\nThe **`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.\n\nThis event is not cancelable and does not bubble.",
+ "pushsubscriptionchange_event": "\n\nThe **`pushsubscriptionchange`** event is sent to the [global scope](/en-US/docs/Web/API/ServiceWorkerGlobalScope) of a [ServiceWorker] to indicate a change in push subscription that was triggered outside the application's control.\n\nThis may occur if the subscription was refreshed by the browser, but it may also happen if the subscription has been revoked or lost.\n\nThis event is not cancelable and does not bubble.",
+ "registration": "\n\nThe **`registration`** read-only property of the [ServiceWorkerGlobalScope] interface returns a reference to the [ServiceWorkerRegistration] object, which represents the service worker's registration.",
+ "serviceworker": "\n\nThe **`serviceWorker`** read-only property of the [ServiceWorkerGlobalScope] interface returns a reference to the [ServiceWorker] object, which represents the service worker.",
+ "skipwaiting": "\n\nThe **`ServiceWorkerGlobalScope.skipWaiting()`** method of the [ServiceWorkerGlobalScope] forces the waiting service worker to become the active service worker.\n\nUse this method with [Clients.claim] to ensure that updates to the underlying service worker take effect immediately for both the current client and all other active clients.",
+ "sync_event": "`Background Sync`\n\nThe **`sync`** event of the [ServiceWorkerGlobalScope] interface is fired when the page (or worker) that registered the event with the [SyncManager] is running and as soon as network connectivity is available.\n\nThis event is not cancelable and does not bubble."
+ }
+ },
+ "serviceworkerregistration": {
+ "docs": "\n\nThe **`ServiceWorkerRegistration`** interface of the [Service Worker API](/en-US/docs/Web/API/Service_Worker_API) represents the service worker registration. You register a service worker to control one or more pages that share the same origin.\n\nThe lifetime of a service worker registration is beyond that of the `ServiceWorkerRegistration` objects that represent them within the lifetime of their corresponding service worker clients. The browser maintains a persistent list of active `ServiceWorkerRegistration` objects.\n\n> **Note:** This feature is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).\n\n",
+ "properties": {
+ "active": "\n\nThe **`active`** property of the\n[ServiceWorkerRegistration] interface returns a service worker whose\n[ServiceWorker.state] is `activating` or `activated`.\nThis property is initially set to `null`.\n\nAn active worker controls a [Client] if the client's URL\nfalls within the scope of the registration (the `scope` option set when\n[ServiceWorkerContainer.register] is first called.)\n\n> **Note:** This feature is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).\n\n> **Note:** Once an active worker is `activating`, neither a\n> runtime script error nor a force termination of the active worker prevents the active\n> worker from getting `activated`.",
+ "backgroundfetch": "\n\nThe **`backgroundFetch`** property of the\n[ServiceWorkerRegistration] interface returns a reference to a\n[BackgroundFetchManager] object, which can be used to initiate background fetch operations.",
+ "getnotifications": "\n\nThe **`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.",
+ "index": "\n\nThe **`index`** read-only property of the\n[ServiceWorkerRegistration] interface returns a reference to the\n[ContentIndex] interface, which allows for indexing of offline content.",
+ "installing": "\n\nThe **`installing`** property of the\n[ServiceWorkerRegistration] interface returns a service worker whose\n[ServiceWorker.state] is `installing`. This property is\ninitially set to `null`.\n\n> **Note:** This feature is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "navigationpreload": "\n\nThe **`navigationPreload`** read-only property of the [ServiceWorkerRegistration] interface returns the [NavigationPreloadManager] associated with the current service worker registration.\n\nThe returned object allows resources managed by a service worker to be preemptively downloaded in parallel with service worker boot up.",
+ "paymentmanager": "\n\nThe **`paymentManager`** read-only property of the\n[ServiceWorkerRegistration] interface returns a payment app's [PaymentManager] instance, which is used to manage various payment app functionality.",
+ "periodicsync": "\n\nThe **`periodicSync`** read-only property of\nthe [ServiceWorkerRegistration] interface returns a reference to the\n[PeriodicSyncManager] interface, which allows for registering of tasks to\nrun at specific intervals.",
+ "pushmanager": "\n\nThe **`pushManager`** property of the\n[ServiceWorkerRegistration] interface returns a reference to the\n[PushManager] interface for managing push subscriptions; this includes\nsupport for subscribing, getting an active subscription, and accessing push permission\nstatus.",
+ "scope": "\n\nThe **`scope`** read-only property of the\n[ServiceWorkerRegistration] interface returns a unique identifier for a\nservice worker registration. The service worker must be on the same origin as the\ndocument that registers the [ServiceWorker].\n\n> **Note:** This feature is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "shownotification": "\n\nThe **`showNotification()`** method of the\n[ServiceWorkerRegistration] interface creates a notification on an active\nservice worker.\n\n> **Note:** This feature is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "sync": "\n\nThe **`sync`** property of the\n[ServiceWorkerRegistration] interface returns a reference to the\n[SyncManager] interface, which manages background synchronization\nprocesses.",
+ "unregister": "\n\nThe **`unregister()`** method of the\n[ServiceWorkerRegistration] interface unregisters the service worker\nregistration and returns a `Promise`. The promise will resolve to\n`false` if no registration was found, otherwise it resolves to\n`true` irrespective of whether unregistration happened or not (it may not\nunregister if someone else just called [ServiceWorkerContainer.register]\nwith the same scope.) The service worker will finish any ongoing operations before it is\nunregistered.\n\n> **Note:** This feature is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "update": "\n\nThe **`update()`** method of the\n[ServiceWorkerRegistration] interface attempts to update the service\nworker. It fetches the worker's script URL, and if the new worker is not byte-by-byte\nidentical to the current worker, it installs the new worker. The fetch of the worker\nbypasses any browser caches if the previous fetch occurred over 24 hours ago.\n\n> **Note:** This feature is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API).",
+ "updatefound_event": "\n\nThe **`updatefound`** event of the\n[ServiceWorkerRegistration] interface is fired any time the [ServiceWorkerRegistration.installing] property acquires a new service worker.",
+ "updateviacache": "\n\nThe **`updateViaCache`** read-only property of the\n[ServiceWorkerRegistration] interface updates the cache using\nthe mode specified in the call to [ServiceWorkerContainer.register].\nRequests for `importScripts` still go via the HTTP cache. `updateViaCache` offers\ncontrol over this behavior.",
+ "waiting": "\n\nThe **`waiting`** property of the\n[ServiceWorkerRegistration] interface returns a service worker whose\n[ServiceWorker.state] is `installed`. This property is initially\nset to `null`.\n\n> **Note:** This feature is available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API)."
+ }
+ },
+ "shadowroot": {
+ "docs": "\n\nThe **`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\nYou 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`.\n\n",
+ "properties": {
+ "activeelement": "\n\nThe **`activeElement`** read-only property of the\n[ShadowRoot] interface returns the element within the shadow tree that has focus.",
+ "adoptedstylesheets": "\n\nThe **`adoptedStyleSheets`** property of the [ShadowRoot] interface sets an array of constructed stylesheets to be used by the shadow DOM subtree.\n\n> **Note:** A constructed stylesheet is a stylesheet created programmatically using the [`CSSStyleSheet()` constructor](/en-US/docs/Web/API/CSSStyleSheet/CSSStyleSheet) (as compared to one created by a user-agent when importing a stylesheet from a script, imported using `style` and , or linked to via `link`).\n\nThe 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\nStylesheets 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`](/en-US/docs/Web/API/ShadowRoot/styleSheets)).\n\nOnly stylesheets created using the [`CSSStyleSheet()` constructor](/en-US/docs/Web/API/CSSStyleSheet/CSSStyleSheet), and from within the same parent [Document] as the shadow root, may be adopted.",
+ "delegatesfocus": "\n\nThe **`delegatesFocus`** read-only property of the [ShadowRoot] interface returns `true` if the shadow root delegates focus, and `false` otherwise.\n\nIf `true`, when a non-focusable part of the shadow DOM is clicked, or `.focus()` is called on the host element, the first focusable part is given focus, and the shadow host is given any available `:focus` styling.\n\nFocus is of particular importance for keyboard users (including those using screen readers). `delegatesFocus` default behavior is to focus the first focusable element — which may be undesirable if that element is not meant to be part of the tabbing order (for example, an element with `tabindex=\"-1\"`), or if a more 'important' focusable element should receive initial focus (for instance, the first text field rather than the 'close' button which precedes it). In such cases, the `autofocus` attribute can be specified on the element which should receive initial focus. Use the `autofocus` attribute with caution as it can introduce accessibility issues, such as bypassing important content which may go unnoticed due to focus being set to an element later in the DOM order.\n\nThe property value is set using the `delegatesFocus` property of the object passed to [Element.attachShadow]).",
+ "fullscreenelement": "\n\nThe **`fullscreenElement`** read-only property of the\n[ShadowRoot] interface returns the element within the shadow tree that is currently displayed in full screen.",
+ "getanimations": "\n\nThe **`getAnimations()`** method of the [ShadowRoot] interface\nreturns an array of all [Animation] objects currently in effect whose\ntarget elements are descendants of the shadow tree. This array includes [CSS Animations](/en-US/docs/Web/CSS/CSS_animations), [CSS Transitions](/en-US/docs/Web/CSS/CSS_transitions), and [Web Animations](/en-US/docs/Web/API/Web_Animations_API).",
+ "host": "\n\nThe **`host`** read-only property of\nthe [ShadowRoot] returns a reference to the DOM element the\n`ShadowRoot` is attached to.",
+ "innerhtml": "\n\nThe **`innerHTML`** property of the [ShadowRoot]\ninterface sets or returns a reference to the DOM tree inside the\n`ShadowRoot`.",
+ "mode": "\n\nThe **`mode`** read-only property of the [ShadowRoot]\nspecifies its mode — either `open` or `closed`. This defines\nwhether or not the shadow root's internal features are accessible from JavaScript.\n\nWhen the `mode` of a shadow root is \"`closed`\", the shadow root's\nimplementation internals are inaccessible and unchangeable from JavaScript—in the same\nway the implementation internals of, for example, the `video` element\nare inaccessible and unchangeable from JavaScript.",
+ "pictureinpictureelement": "\n\nThe **`pictureInPictureElement`** read-only property of the\n[ShadowRoot] interface returns the [Element] that is currently being\npresented in picture-in-picture mode in this shadow tree, or `null` if\npicture-in-picture mode is not currently in use.",
+ "pointerlockelement": "\n\nThe **`pointerLockElement`** read-only property of the [ShadowRoot] interface provides the element set as the target for mouse events while the pointer is locked.\nIt is `null` if lock is pending, pointer is unlocked, or the target is in another tree.",
+ "slotassignment": "\n\nThe 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].",
+ "stylesheets": "\n\nThe **`styleSheets`** read-only property of the [ShadowRoot] interface\nreturns a [StyleSheetList] of [CSSStyleSheet] objects, for stylesheets explicitly linked into or embedded in a shadow tree."
+ }
+ },
+ "sharedstorage": {
+ "docs": "\n\nThe **`SharedStorage`** interface of the [Shared Storage API] represents the shared storage for a particular origin, defining methods to write data to the shared storage.\n\n`SharedStorage` is the base class for:\n\n- [WindowSharedStorage], accessed via [Window.sharedStorage].\n- [WorkletSharedStorage], accessed via [SharedStorageWorkletGlobalScope.sharedStorage].\n\n",
+ "properties": {
+ "append": "\n\nThe **`append()`** method of the [SharedStorage] interface appends a string to the value of an existing key-value pair in the current origin's shared storage.",
+ "clear": "\n\nThe **`clear()`** method of the [SharedStorage] interface clears the current origin's shared storage, removing all data from it.",
+ "delete": "\n\nThe **`delete()`** method of the [SharedStorage] interface deletes an existing key-value pair from the current origin's shared storage.",
+ "set": "\n\nThe **`set()`** method of the [SharedStorage] interface either stores a new key-value pair in the current origin's shared storage or updates an existing one."
+ }
+ },
+ "sharedstorageoperation": {
+ "docs": "\n\nThe **`SharedStorageOperation`** interface of the [Shared Storage API] represents the base class for all output gate operation types.\n\nThe output gate types are detailed below:\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th>Name</th>\n <th>Description</th>\n <th>Defined by</th>\n <th>Invoked by</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>URL Selection</td>\n <td>Used to select a URL to display to the user based on shared storage data.</td>\n <td>[SharedStorageSelectURLOperation]</td>\n <td>[WindowSharedStorage.selectURL]</td>\n </tr>\n <tr>\n <td>Run</td>\n <td>A generic way to process some shared storage data. Used, for example, by the <a href=\"https://developer.chrome.com/docs/privacy-sandbox/private-aggregation/\">Private Aggregation API</a> to process shared storage data and generate aggregated reports. </td>\n <td>[SharedStorageRunOperation]</td>\n <td>[WindowSharedStorage.run]</td>\n </tr>\n </tbody>\n</table>"
+ },
+ "sharedstoragerunoperation": {
+ "docs": "\n\nThe **`SharedStorageRunOperation`** interface of the [Shared Storage API] represents a [Run output gate](/en-US/docs/Web/API/Shared_Storage_API#run) operation.\n\n",
+ "properties": {
+ "run": "\n\nThe **`run()`** method of the\n[SharedStorageRunOperation] interface defines the structure to which the `run()` method defined inside a Run output gate operation should conform."
+ }
+ },
+ "sharedstorageselecturloperation": {
+ "docs": "\n\nThe **`SharedStorageSelectURLOperation`** interface of the [Shared Storage API] represents a [URL Selection output gate](/en-US/docs/Web/API/Shared_Storage_API#url_selection) operation.\n\n",
+ "properties": {
+ "run": "\n\nThe **`run()`** method of the [SharedStorageSelectURLOperation] interface defines the structure to which the `run()` method defined inside a URL Selection output gate operation should conform."
+ }
+ },
+ "sharedstorageworklet": {
+ "docs": "\n\nThe **`SharedStorageWorklet`** interface of the [Shared Storage API] represents the shared storage worklet for the current origin.\n\n`SharedStorageWorklet` does not have its own properties or methods. Rather, it inherits the [Worklet.addModule] method from the [Worklet] interface. This method is used for adding a module.\n\nUnlike a regular [Worklet]:\n\n- If the calling site has not included the Shared Storage API in a [privacy sandbox enrollment process](/en-US/docs/Web/Privacy/Privacy_sandbox/Enrollment), calls to `sharedStorageWorklet.addModule()` will be rejected.\n- `SharedStorageWorklet` allows only a single module to be added, for privacy reasons. Even with a successful enrollment, repeated calls to `addModule()` on the same shared storage worklet will be rejected.\n\n`SharedStorageWorklet` is accessed via [WindowSharedStorage.worklet].\n\n"
+ },
+ "sharedstorageworkletglobalscope": {
+ "docs": "\n\nThe **`SharedStorageWorkletGlobalScope`** interface of the [Shared Storage API] represents the global scope of a [SharedStorageWorklet] module.\n\n",
+ "properties": {
+ "register": "\n\nThe **`register()`** method of the\n[SharedStorageWorkletGlobalScope] interface registers an [SharedStorageOperation] defined inside the current worklet module.",
+ "sharedstorage": "\n\nThe **`context`** read-only property of the\n[SharedStorageWorkletGlobalScope] interface contains a [WorkletSharedStorage] object instance, which represents the shared storage for a particular origin as exposed to a worklet context."
+ }
+ },
+ "sharedworker": {
+ "docs": "\n\nThe **`SharedWorker`** interface represents a specific kind of worker that can be _accessed_ from several browsing contexts, such as several windows, iframes or even workers. They implement an interface different than dedicated workers and have a different global scope, [SharedWorkerGlobalScope].\n\n> **Note:** If SharedWorker can be accessed from several browsing contexts, all those browsing contexts must share the exact same origin (same protocol, host and port).\n\n",
+ "properties": {
+ "error_event": "\n\nThe **`error`** event of the [SharedWorker] interface fires when an error occurs in the worker.",
+ "port": "\n\nThe **`port`** property of the [SharedWorker]\ninterface returns a [MessagePort] object used to communicate and control\nthe shared worker."
+ }
+ },
+ "sharedworkerglobalscope": {
+ "docs": "\n\nThe **`SharedWorkerGlobalScope`** object (the [SharedWorker] global scope) is accessible through the [window.self] keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are listed in the [JavaScript Reference](/en-US/docs/Web/JavaScript/Reference). See the complete list of [functions available to workers](/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers).\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [SharedWorkerGlobalScope] interface discards any tasks queued in the `SharedWorkerGlobalScope`'s event loop, effectively closing this particular scope.",
+ "connect_event": "\n\nThe **`connect`** event is fired in shared workers at their [SharedWorkerGlobalScope] when a new client connects.\n\nThis event is not cancelable and does not bubble.",
+ "name": "\n\nThe **`name`** read-only property of the\n[SharedWorkerGlobalScope] interface returns the name that the\n[SharedWorker] was (optionally) given when it was created. This is the name\nthat the [SharedWorker.SharedWorker] constructor can pass\nto get a reference to the [SharedWorkerGlobalScope]."
+ }
+ },
+ "sourcebuffer": {
+ "docs": "\n\nThe **`SourceBuffer`** interface represents a chunk of media to be passed into an [HTMLMediaElement] and played, via a [MediaSource] object. This can be made up of one or several media segments.\n\n",
+ "properties": {
+ "abort": "\n\nThe **`abort()`** method of the [SourceBuffer]\ninterface aborts the current segment and resets the segment parser.",
+ "appendbuffer": "\n\nThe **`appendBuffer()`** method of the\n[SourceBuffer] interface appends media segment data from an\n`ArrayBuffer`, a `TypedArray` or a `DataView` object\nto the `SourceBuffer`.",
+ "appendbufferasync": "\n\nThe **`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.",
+ "appendwindowend": "\n\nThe **`appendWindowEnd`** property of the\n[SourceBuffer] interface controls the timestamp for the end of the [append window](https://w3c.github.io/media-source/#append-window), a\ntimestamp range that can be used to filter what media data is appended to the\n`SourceBuffer`. Coded media frames with timestamps within this range will be\nappended, whereas those outside the range will be filtered out.\n\nThe default value of `appendWindowEnd` is positive infinity.",
+ "appendwindowstart": "\n\nThe **`appendWindowStart`** property of the\n[SourceBuffer] interface controls the timestamp for the start of the [append window](https://w3c.github.io/media-source/#append-window), a\ntimestamp range that can be used to filter what media data is appended to the\n`SourceBuffer`. Coded media frames with timestamps within this range will be\nappended, whereas those outside the range will be filtered out.\n\nThe default value of `appendWindowStart` is the presentation start time,\nwhich is the beginning time of the playable media.",
+ "audiotracks": "\n\nThe **`audioTracks`** read-only property of the\n[SourceBuffer] interface returns a list of the audio tracks currently\ncontained inside the `SourceBuffer`.",
+ "buffered": "\n\nThe **`buffered`** read-only property of the\n[SourceBuffer] interface returns the time ranges that are currently\nbuffered in the `SourceBuffer` as a normalized [TimeRanges]\nobject.",
+ "changetype": "\n\nThe **`changeType()`** method of the\n[SourceBuffer] interface sets the MIME type that future calls to\n[SourceBuffer.appendBuffer] should expect the new media\ndata to conform to. This makes it possible to change codecs or container type\nmid-stream.\n\nOne scenario in which this is helpful is to support adapting the media source to\nchanging bandwidth availability, by transitioning from one codec to another as resource\nconstraints change.",
+ "mode": "\n\nThe **`mode`** property of the [SourceBuffer]\ninterface controls whether media segments can be appended to the\n`SourceBuffer` in any order, or in a strict sequence.\n\nThe two available values are:\n\n- `segments`: The media segment timestamps determine the order in which the\n segments are played. The segments can be appended to the `SourceBuffer` in\n any order.\n- `sequence`: The order in which the segments are appended to the\n `SourceBuffer` determines the order in which they are played. Segment\n timestamps are generated automatically for the segments that observe this order.\n\nThe mode value is initially set when the `SourceBuffer` is created using\n`MediaSource.addSourceBuffer()`. If timestamps already exist for the media\nsegments, then the value will be set to `segments`; if they don't, then the\nvalue will be set to `sequence`.\n\nIf you try to set the `mode` property value to `segments` when\nthe initial value is `sequence`, an exception will be thrown. The existing\nsegment order must be maintained in `sequence` mode. You can, however, change\nthe value from `segments` to `sequence`. It just means the play\norder will be fixed, and new timestamps generated to reflect this.\n\nThis property cannot be changed during while the `SourceBuffer` is\nprocessing either an [SourceBuffer.appendBuffer] or\n[SourceBuffer.remove] call.",
+ "remove": "\n\nThe **`remove()`** method of the [SourceBuffer]\ninterface removes media segments within a specific time range from the\n`SourceBuffer`. This method can only be called when\n[SourceBuffer.updating] equals `false`. If\n`SourceBuffer.updating` is not equal to `false`, call\n[SourceBuffer.abort].",
+ "removeasync": "\n\nThe **`removeAsync()`** method of the\n[SourceBuffer] 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\nThis method can only be called when [SourceBuffer.updating] is\n`false`. If that's not the case, call [SourceBuffer.abort] instead.",
+ "texttracks": "\n\nThe **`textTracks`** read-only property of the\n[SourceBuffer] interface returns a list of the text tracks currently\ncontained inside the `SourceBuffer`.",
+ "timestampoffset": "\n\nThe **`timestampOffset`** property of the\n[SourceBuffer] interface controls the offset applied to timestamps inside\nmedia segments that are appended to the `SourceBuffer`.\n\nThe initial value of `timestampOffset` is 0.",
+ "updating": "\n\nThe **`updating`** read-only property of the\n[SourceBuffer] interface indicates whether the `SourceBuffer` is\ncurrently being updated — i.e. whether an [SourceBuffer.appendBuffer] or [SourceBuffer.remove]\noperation is currently in progress.",
+ "videotracks": "\n\nThe **`videoTracks`** read-only property of the\n[SourceBuffer] interface returns a list of the video tracks currently\ncontained inside the `SourceBuffer`."
+ }
+ },
+ "sourcebufferlist": {
+ "docs": "\n\nThe **`SourceBufferList`** interface represents a simple container list for multiple [SourceBuffer] objects.\n\nThe source buffer list containing the `SourceBuffer`s appended to a particular `MediaSource` can be retrieved using the [MediaSource.sourceBuffers] property.\n\nThe individual source buffers can be accessed using the [bracket notation](/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors#bracket_notation) `[]`.\n\n",
+ "properties": {
+ "length": "\n\nThe **`length`** read-only property of the\n[SourceBufferList] interface returns the number of\n[SourceBuffer] objects in the list."
+ }
+ },
+ "speechgrammar": {
+ "docs": "\n\nThe **`SpeechGrammar`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) represents a set of words or patterns of words that we want the recognition service to recognize.\n\nGrammar is defined using [JSpeech Grammar Format](https://www.w3.org/TR/jsgf/) (**JSGF**.) Other formats may also be supported in the future.",
+ "properties": {
+ "src": "\n\nThe **`src`** property of the [SpeechGrammar]\ninterface sets and returns a string containing the grammar from within in the\n`SpeechGrammar` object.",
+ "weight": "\n\nThe optional **`weight`** property of the\n[SpeechGrammar] interface sets and returns the weight of the\n`SpeechGrammar` object."
+ }
+ },
+ "speechgrammarlist": {
+ "docs": "\n\nThe **`SpeechGrammarList`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) represents a list of [SpeechGrammar] objects containing words or patterns of words that we want the recognition service to recognize.\n\nGrammar is defined using [JSpeech Grammar Format](https://www.w3.org/TR/jsgf/) (**JSGF**.) Other formats may also be supported in the future.",
+ "properties": {
+ "addfromstring": "\n\nThe **`addFromString()`** method of the\n[SpeechGrammarList] 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.",
+ "addfromuri": "\n\nThe **`addFromURI()`** method of the\n[SpeechGrammarList] interface takes a grammar present at a specific URI and\nadds it to the `SpeechGrammarList` as a new [SpeechGrammar]\nobject.\n\nNote that some speech recognition services may support built-in grammars that can be\nspecified by URI.",
+ "item": "\n\nThe **`item`** getter of the [SpeechGrammarList]\ninterface is a standard getter — it allows individual [SpeechGrammar]\nobjects to be retrieved from the `SpeechGrammarList` using array syntax.",
+ "length": "\n\nThe **`length`** read-only property of the\n[SpeechGrammarList] interface returns the number of\n[SpeechGrammar] objects contained in the [SpeechGrammarList]."
+ }
+ },
+ "speechrecognition": {
+ "docs": "\n\nThe **`SpeechRecognition`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is the controller interface for the recognition service; this also handles the [SpeechRecognitionEvent] sent from the recognition service.\n\n> **Note:** On some browsers, like Chrome, using Speech Recognition on a web page involves a server-based recognition engine. Your audio is sent to a web service for recognition processing, so it won't work offline.\n\n",
+ "properties": {
+ "abort": "\n\nThe **`abort()`** method of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) stops the speech\nrecognition service from listening to incoming audio, and doesn't attempt to return a\n[SpeechRecognitionResult].",
+ "audioend_event": "\n\nThe **`audioend`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when the user agent has finished capturing audio for speech recognition.",
+ "audiostart_event": "\n\nThe **`audiostart`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when the user agent has started to capture audio for speech recognition.",
+ "continuous": "\n\nThe **`continuous`** property of the\n[SpeechRecognition] interface controls whether continuous results are\nreturned for each recognition, or only a single result.\n\nIt defaults to single results (`false`.)",
+ "end_event": "\n\nThe **`end`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) [SpeechRecognition] object is fired when the speech recognition service has disconnected.",
+ "error_event": "\n\nThe **`error`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) [SpeechRecognition] object is fired when a speech recognition error occurs.",
+ "grammars": "\n\nThe **`grammars`** property of the\n[SpeechRecognition] interface returns and sets a collection of\n[SpeechGrammar] objects that represent the grammars that will be understood\nby the current `SpeechRecognition`.",
+ "interimresults": "\n\nThe **`interimResults`** property of the\n[SpeechRecognition] interface controls whether interim results should be\nreturned (`true`) or not (`false`.) Interim results are results\nthat are not yet final (e.g. the [SpeechRecognitionResult.isFinal] property\nis `false`.)\n\nThe default value for **`interimResults`** is `false`.",
+ "lang": "\n\nThe **`lang`** property of the [SpeechRecognition]\ninterface returns and sets the language of the current `SpeechRecognition`.\nIf not specified, this defaults to the HTML [`lang`](/en-US/docs/Web/HTML/Element/html#lang) attribute\nvalue, or the user agent's language setting if that isn't set either.",
+ "maxalternatives": "\n\nThe **`maxAlternatives`** property of the\n[SpeechRecognition] interface sets the maximum number of\n[SpeechRecognitionAlternative]s provided per\n[SpeechRecognitionResult].\n\nThe default value is 1.",
+ "nomatch_event": "\n\nThe **`nomatch`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when the speech recognition service returns a final result with no significant recognition.\n\nThis may involve some degree of recognition, which doesn't meet or exceed the [SpeechRecognitionAlternative.confidence] threshold.",
+ "result_event": "\n\nThe **`result`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when the speech recognition service returns a result — a word or phrase has been positively recognized and this has been communicated back to the app",
+ "soundend_event": "\n\nThe **`soundend`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when any sound — recognizable speech or not — has stopped being detected.",
+ "soundstart_event": "\n\nThe **`soundstart`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when any sound — recognizable speech or not — has been detected.",
+ "speechend_event": "\n\nThe **`speechend`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when speech recognized by the speech recognition service has stopped being detected.",
+ "speechstart_event": "\n\nThe **`speechstart`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when sound recognized by the speech recognition service as speech has been detected.",
+ "start": "\n\nThe **`start()`** method of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) starts the speech\nrecognition service listening to incoming audio with intent to recognize grammars\nassociated with the current [SpeechRecognition].",
+ "start_event": "\n\nThe **`start`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) [SpeechRecognition] object is fired when the speech recognition service has begun listening to incoming audio with intent to recognize grammars associated with the current `SpeechRecognition`.",
+ "stop": "\n\nThe **`stop()`** method of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) stops the speech\nrecognition service from listening to incoming audio, and attempts to return a\n[SpeechRecognitionResult] using the audio captured so far."
+ }
+ },
+ "speechrecognitionalternative": {
+ "docs": "\n\nThe **`SpeechRecognitionAlternative`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) represents a single word that has been recognized by the speech recognition service.",
+ "properties": {
+ "confidence": "\n\nThe **`confidence`** read-only property of the\n[SpeechRecognitionResult] interface returns a numeric estimate of how\nconfident the speech recognition system is that the recognition is correct.\n\n> **Note:** Mozilla's implementation of `confidence` is still\n> being worked on — at the moment, it always seems to return 1.",
+ "transcript": "\n\nThe **`transcript`** read-only property of the\n[SpeechRecognitionResult] interface returns a string containing the\ntranscript of the recognized word(s).\n\nFor continuous recognition, leading or trailing whitespace will be included where\nnecessary so that concatenation of consecutive [SpeechRecognitionResult]s\nproduces a proper transcript of the session."
+ }
+ },
+ "speechrecognitionerrorevent": {
+ "docs": "\n\nThe **`SpeechRecognitionErrorEvent`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) represents error messages from the recognition service.\n\n",
+ "properties": {
+ "error": "\n\nThe **`error`** read-only property of the\n[SpeechRecognitionErrorEvent] interface returns the type of error raised.",
+ "message": "\n\nThe **`message`** read-only property of the\n[SpeechRecognitionErrorEvent] interface returns a message describing the\nerror in more detail."
+ }
+ },
+ "speechrecognitionevent": {
+ "docs": "\n\nThe **`SpeechRecognitionEvent`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) represents the event object for the [SpeechRecognition.result_event] and [SpeechRecognition.nomatch_event] events, and contains all the data associated with an interim or final speech recognition result.\n\n",
+ "properties": {
+ "emma": "\n\nThe **`emma`** read-only property of the\n[SpeechRecognitionEvent] interface returns an Extensible\nMultiModal Annotation markup language (EMMA) — XML — representation of the\nresult.\n\n> **Note:** EMMA is defined in the specification [EMMA: Extensible MultiModal Annotation markup language](https://www.w3.org/TR/emma/). You can see multiple EMMA examples in the spec.",
+ "interpretation": "\n\nThe **`interpretation`** read-only property of the\n[SpeechRecognitionEvent] interface returns the semantic meaning of what the\nuser said.\n\nThis might be determined, for instance, through the SISR specification of semantics in\na grammar (see\n[Semantic Interpretation for Speech Recognition (SISR) Version 1.0](https://www.w3.org/TR/semantic-interpretation/)\nfor specification and examples.)",
+ "resultindex": "\n\nThe **`resultIndex`** read-only property of the\n[SpeechRecognitionEvent] interface returns the lowest index value result in\nthe [SpeechRecognitionResultList] \"array\" that has actually changed.\n\nThe [SpeechRecognitionResultList] object is not an array, but it has a\ngetter that allows it to be accessed by array syntax.",
+ "results": "\n\nThe **`results`** read-only property of the\n[SpeechRecognitionEvent] interface returns a\n[SpeechRecognitionResultList] object representing all the speech\nrecognition results for the current session.\n\nSpecifically this object will contain all final results that have been returned,\nfollowed by the current best hypothesis for all interim results. When subsequent\n[SpeechRecognition.result_event] 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."
+ }
+ },
+ "speechrecognitionresult": {
+ "docs": "\n\nThe **`SpeechRecognitionResult`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) represents a single recognition match, which may contain multiple [SpeechRecognitionAlternative] objects.",
+ "properties": {
+ "isfinal": "\n\nThe **`isFinal`** read-only property of the\n[SpeechRecognitionResult] interface is a boolean value that states\nwhether this result is final (`true`) or not (`false`) — if so,\nthen this is the final time this result will be returned; if not, then this result is an\ninterim result, and may be updated later on.",
+ "item": "\n\nThe **`item`** getter of the\n[SpeechRecognitionResult] interface is a standard getter that allows\n[SpeechRecognitionAlternative] objects within the result to be accessed via\narray syntax.",
+ "length": "\n\nThe **`length`** read-only property of the\n[SpeechRecognitionResult] interface returns the length of the \"array\"\n— the number of [SpeechRecognitionAlternative] objects contained\nin the result (also referred to as \"n-best alternatives\".)\n\nThe number of alternatives contained in the result depends on what the\n[SpeechRecognition.maxAlternatives] property was set to when the speech\nrecognition was first initiated."
+ }
+ },
+ "speechrecognitionresultlist": {
+ "docs": "\n\nThe **`SpeechRecognitionResultList`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) represents a list of [SpeechRecognitionResult] objects, or a single one if results are being captured in mode.",
+ "properties": {
+ "item": "\n\nThe **`item`** getter of the\n[SpeechRecognitionResultList] interface is a standard getter — it allows\n[SpeechRecognitionResult] objects in the list to be accessed via array\nsyntax.",
+ "length": "\n\nThe **`length`** read-only property of the\n[SpeechRecognitionResultList] interface returns the length of the\n\"array\" — the number of [SpeechRecognitionResult] objects in the\nlist."
+ }
+ },
+ "speechsynthesis": {
+ "docs": "\n\nThe **`SpeechSynthesis`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is the controller interface for the speech service; this can be used to retrieve information about the synthesis voices available on the device, start and pause speech, and other commands besides.\n\n",
+ "properties": {
+ "cancel": "\n\nThe **`cancel()`** method of the [SpeechSynthesis]\ninterface removes all utterances from the utterance queue.\n\nIf an utterance is currently being spoken, speaking will stop immediately.",
+ "getvoices": "\n\nThe **`getVoices()`** method of the\n[SpeechSynthesis] interface returns a list of\n[SpeechSynthesisVoice] objects representing all the available voices on the\ncurrent device.",
+ "pause": "\n\nThe **`pause()`** method of the [SpeechSynthesis]\ninterface puts the `SpeechSynthesis` object into a paused state.",
+ "paused": "\n\nThe **`paused`** read-only property of the\n[SpeechSynthesis] interface is a boolean value that returns\n`true` if the `SpeechSynthesis` object is in a paused state, or `false` if not.\n\nIt can be set to [SpeechSynthesis.pause] even if nothing is\ncurrently being spoken through it. If\n[SpeechSynthesisUtterance] are then added to the utterance\nqueue, they will not be spoken until the `SpeechSynthesis` object is\nunpaused, using [SpeechSynthesis.resume].",
+ "pending": "\n\nThe **`pending`** read-only property of the\n[SpeechSynthesis] interface is a boolean value that returns\n`true` if the utterance queue contains as-yet-unspoken utterances.",
+ "resume": "\n\nThe **`resume()`** method of the [SpeechSynthesis]\ninterface puts the `SpeechSynthesis` object into a non-paused state:\nresumes it if it was already paused.",
+ "speak": "\n\nThe **`speak()`** method of the [SpeechSynthesis]\ninterface adds an [SpeechSynthesisUtterance] to the utterance\nqueue; it will be spoken when any other utterances queued before it have been spoken.",
+ "speaking": "\n\nThe **`speaking`** read-only property of the\n[SpeechSynthesis] interface is a boolean value that returns\n`true` if an utterance is currently in the process of being spoken — even\nif `SpeechSynthesis` is in a\n[SpeechSynthesis/pause] state.",
+ "voiceschanged_event": "\n\nThe **`voiceschanged`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when the list of [SpeechSynthesisVoice] objects that would be returned by the [SpeechSynthesis.getVoices] method has changed (when the `voiceschanged` event fires.)"
+ }
+ },
+ "speechsynthesiserrorevent": {
+ "docs": "\n\nThe **`SpeechSynthesisErrorEvent`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) contains information about any errors that occur while processing [SpeechSynthesisUtterance] objects in the speech service.\n\n",
+ "properties": {
+ "error": "\n\nThe **`error`** property of the\n[SpeechSynthesisErrorEvent] interface returns an error code indicating what has gone wrong with a speech synthesis attempt."
+ }
+ },
+ "speechsynthesisevent": {
+ "docs": "\n\nThe **`SpeechSynthesisEvent`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) contains information about the current state of [SpeechSynthesisUtterance] objects that have been processed in the speech service.\n\n",
+ "properties": {
+ "charindex": "\n\nThe **`charIndex`** read-only property of the [SpeechSynthesisUtterance] interface returns the index position of the character in [SpeechSynthesisUtterance.text] that was being spoken when the event was triggered.",
+ "charlength": "\n\nThe read-only **`charLength`** property of the [SpeechSynthesisEvent] interface returns the number of characters left to be spoken after the character at the [SpeechSynthesisEvent.charIndex] position.\n\nIf the speech engine can't determine it, it returns 0.",
+ "elapsedtime": "\n\nThe **`elapsedTime`** read-only property of the [SpeechSynthesisEvent] returns the elapsed time in seconds, after the [SpeechSynthesisUtterance.text] started being spoken, at which the [event](/en-US/docs/Web/API/SpeechSynthesisUtterance#events) was triggered.",
+ "name": "\n\nThe **`name`** read-only property of the [SpeechSynthesisUtterance] interface returns the name associated with certain types of events occurring as the [SpeechSynthesisUtterance.text] is being spoken:\nthe name of the [SSML](https://www.w3.org/TR/speech-synthesis/#S3.3.2) marker reached in the case of a [SpeechSynthesisUtterance.mark_event] event, or the type of boundary reached in the case of a [SpeechSynthesisUtterance.boundary_event] event.",
+ "utterance": "\n\nThe **`utterance`** read-only property of the [SpeechSynthesisUtterance] interface returns the [SpeechSynthesisUtterance] instance that the event was triggered on."
+ }
+ },
+ "speechsynthesisutterance": {
+ "docs": "\n\nThe **`SpeechSynthesisUtterance`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) represents a speech request.\nIt contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.)\n\n",
+ "properties": {
+ "boundary_event": "\n\nThe **`boundary`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) is fired when the spoken utterance reaches a word or sentence boundary.",
+ "end_event": "\n\nThe **`end`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) [SpeechSynthesisUtterance] object is fired when the utterance has finished being spoken.",
+ "error_event": "\n\nThe **`error`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) [SpeechSynthesisUtterance] object is fired when an error occurs that prevents the utterance from being successfully spoken.",
+ "lang": "\n\nThe **`lang`** property of the [SpeechSynthesisUtterance] interface gets and sets the language of the utterance.\n\nIf unset, the app's (i.e. the `html` [`lang`](/en-US/docs/Web/HTML/Element/html#lang) value) lang will be used, or the user-agent default if that is unset too.",
+ "mark_event": "\n\nThe **`mark`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) [SpeechSynthesisUtterance] object is fired when the spoken utterance reaches a named SSML \"mark\" tag.",
+ "pause_event": "\n\nThe **`pause`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) [SpeechSynthesisUtterance] object is fired when the utterance is paused part way through.",
+ "pitch": "\n\nThe **`pitch`** property of the [SpeechSynthesisUtterance] interface gets and sets the pitch at which the utterance will be spoken at.\n\nIf unset, a default value of 1 will be used.",
+ "rate": "\n\nThe **`rate`** property of the [SpeechSynthesisUtterance] interface gets and sets the speed at which the utterance will be spoken at.\n\nIf unset, a default value of 1 will be used.",
+ "resume_event": "\n\nThe **`resume`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) [SpeechSynthesisUtterance] object is fired when a paused utterance is resumed.",
+ "start_event": "\n\nThe **`start`** event of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) [SpeechSynthesisUtterance] object is fired when the utterance has begun to be spoken.",
+ "text": "\n\nThe **`text`** property of the\n[SpeechSynthesisUtterance] interface gets and sets the text that will be synthesized when the utterance is spoken.\n\nThe text may be provided as plain text, or a well-formed [SSML](https://www.w3.org/TR/speech-synthesis/) document.\nThe SSML tags will be stripped away by devices that don't support SSML.",
+ "voice": "\n\nThe **`voice`** property of the [SpeechSynthesisUtterance] interface gets and sets the voice that will be used to speak the utterance.\n\nThis should be set to one of the [SpeechSynthesisVoice] objects returned by [SpeechSynthesis.getVoices].\nIf not set by the time the utterance is spoken, the voice used will be the most suitable default voice available for the utterance's [SpeechSynthesisUtterance.lang] setting.",
+ "volume": "\n\nThe **`volume`** property of the [SpeechSynthesisUtterance] interface gets and sets the volume that the utterance will be spoken at.\n\nIf not set, the default value 1 will be used."
+ }
+ },
+ "speechsynthesisvoice": {
+ "docs": "\n\nThe **`SpeechSynthesisVoice`** interface of the [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) represents a voice that the system supports.\nEvery `SpeechSynthesisVoice` has its own relative speech service including information about language, name and URI.",
+ "properties": {
+ "default": "\n\nThe **`default`** read-only property of the\n[SpeechSynthesisVoice] interface returns a boolean value\nindicating whether the voice is the default voice for the current app\n(`true`), or not (`false`.)\n\n> **Note:** For some devices, it might be the default voice for the\n> voice's language. The spec is not very clear on which it should be, so some\n> implementations may differ.",
+ "lang": "\n\nThe **`lang`** read-only property of the [SpeechSynthesisVoice] interface returns a BCP 47 language tag indicating the language of the voice.",
+ "localservice": "\n\nThe **`localService`** read-only property of the\n[SpeechSynthesisVoice] interface returns a boolean value\nindicating whether the voice is supplied by a local speech synthesizer service\n(`true`), or a remote speech synthesizer service (`false`.)\n\nThis property is provided to allow differentiation in the case that some voice options\nare provided by a remote service; it is possible that remote voices might have extra\nlatency, bandwidth or cost associated with them, so such distinction may be useful.",
+ "name": "\n\nThe **`name`** read-only property of the\n[SpeechSynthesisVoice] interface returns a human-readable name that\nrepresents the voice.",
+ "voiceuri": "\n\nThe **`voiceURI`** read-only property of the\n[SpeechSynthesisVoice] interface returns the type of URI and location of\nthe speech synthesis service for this voice."
+ }
+ },
+ "staticrange": {
+ "docs": "\n\nThe [DOM](/en-US/docs/Web/API/Document_Object_Model) **`StaticRange`** interface extends [AbstractRange] to provide a method to specify a range of content in the DOM whose contents don't update to reflect changes which occur within the DOM tree.\n\nThis interface offers the same set of properties and methods as `AbstractRange`.\n\n`AbstractRange` and `StaticRange` are not available from [web workers](/en-US/docs/Web/API/Web_Workers_API).\n\n",
+ "properties": {
+ "collapsed": "\n\nThe **`collapsed`** read-only property\nof the [StaticRange] interface returns `true` if the range's\nstart position and end position are the same.",
+ "endcontainer": "\n\nThe **`endContainer`** property of the [StaticRange] interface returns the end [Node] for the range.",
+ "endoffset": "\n\nThe **`endOffset`** property of the [StaticRange]\ninterface returns the offset into the end node of the range's end position.",
+ "startcontainer": "\n\nThe read-only **`startContainer`**\nproperty of the [StaticRange] interface returns the start\n[Node] for the range.",
+ "startoffset": "\n\nThe read-only **`startOffset`**\nproperty of the [StaticRange] interface returns the offset into the start\nnode of the range's start position."
+ }
+ },
+ "stereopannernode": {
+ "docs": "\n\nThe `StereoPannerNode` interface of the [Web Audio API](/en-US/docs/Web/API/Web_Audio_API) represents a simple stereo panner node that can be used to pan an audio stream left or right. It is an [AudioNode] audio-processing module that positions an incoming audio stream in a stereo image using a low-cost equal-power [panning algorithm](https://webaudio.github.io/web-audio-api/#panning-algorithm).\n\nThe [StereoPannerNode.pan] property takes a unitless value between `-1` (full left pan) and `1` (full right pan). This interface was introduced as a much simpler way to apply a simple panning effect than having to use a full [PannerNode].\n\n\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"clamped-max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "pan": "\n\nThe `pan` property of the [StereoPannerNode] interface is an [a-rate](/en-US/docs/Web/API/AudioParam#a-rate) [AudioParam] representing the amount of panning to apply. The value can range between `-1` (full left pan) and `1` (full right pan)."
+ }
+ },
+ "storage": {
+ "docs": "\n\nThe **`Storage`** interface of the [Web Storage API](/en-US/docs/Web/API/Web_Storage_API) provides access to a particular domain's session or local storage. It allows, for example, the addition, modification, or deletion of stored data items.\n\nTo manipulate, for instance, the session storage for a domain, a call to [Window.sessionStorage] is made; whereas for local storage the call is made to [Window.localStorage].",
+ "properties": {
+ "clear": "\n\nThe **`clear()`** method of the [Storage]\ninterface clears all keys stored in a given `Storage` object.",
+ "getitem": "\n\nThe **`getItem()`** method of the [Storage]\ninterface, when passed a key name, will return that key's value, or `null` if\nthe key does not exist, in the given `Storage` object.",
+ "key": "\n\nThe **`key()`** method of the [Storage] interface,\nwhen passed a number n, returns the name of the nth key in a given `Storage`\nobject. The order of keys is user-agent defined, so you should not rely on it.",
+ "length": "\n\nThe **`length`** read-only property of the\n[Storage] interface returns the number of data items stored in a given\n`Storage` object.",
+ "removeitem": "\n\nThe **`removeItem()`** method of the [Storage]\ninterface, when passed a key name, will remove that key from the given\n`Storage` object if it exists.\nThe **`Storage`** interface of the [Web Storage API](/en-US/docs/Web/API/Web_Storage_API) provides access to a\nparticular domain's session or local storage.\n\nIf there is no item associated with the given key, this method will do nothing.",
+ "setitem": "\n\nThe **`setItem()`** method of the [Storage]\ninterface, when passed a key name and value, will add that key to the given\n`Storage` object, or update that key's value if it already exists."
+ }
+ },
+ "storageevent": {
+ "docs": "\n\nThe **`StorageEvent`** interface is implemented by the [Window/storage_event] event, which is\nsent to a window\nwhen a storage area the window has access to is changed within the context of another document.\n\n",
+ "properties": {
+ "initstorageevent": "\n\nThe **`StorageEvent.initStorageEvent()`** method is used to initialize the value of a [StorageEvent].",
+ "key": "\n\nThe **`key`** property of the [StorageEvent] interface returns the key for the storage item that was changed.",
+ "newvalue": "\n\nThe **`newValue`** property of the [StorageEvent] interface returns the new value of the storage item whose value was changed.",
+ "oldvalue": "\n\nThe **`oldValue`** property of the [StorageEvent] interface returns the original value of the storage item whose value changed.",
+ "storagearea": "\n\nThe **`storageArea`** property of the [StorageEvent] interface returns the storage object that was affected.",
+ "url": "\n\nThe **`url`** property of the [StorageEvent] interface returns the URL of the document whose storage changed."
+ }
+ },
+ "storagemanager": {
+ "docs": "\n\nThe **`StorageManager`** interface of the [Storage API](/en-US/docs/Web/API/Storage_API) provides an interface for managing persistence permissions and estimating available storage. You can get a reference to this interface using either [navigator.storage] or [WorkerNavigator.storage].\n\n",
+ "properties": {
+ "estimate": "\n\nThe **`estimate()`** method of the [StorageManager] interface asks the Storage Manager for how much storage the current [origin](/en-US/docs/Glossary/Same-origin_policy) takes up (`usage`), and how much space is available (`quota`).\n\nThis method operates asynchronously, so it returns a `Promise` which resolves once the information is available. The promise's fulfillment handler is called with an object containing the usage and quota data.\n\n",
+ "getdirectory": "\n\nThe **`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](/en-US/docs/Web/API/File_System_API/Origin_private_file_system) (OPFS).\n\n",
+ "persist": "\n\nThe **`persist()`** method of the [StorageManager] interface requests permission to use persistent storage, and returns a `Promise` that resolves to `true` if permission is granted and bucket mode is persistent, and `false` otherwise.\n\n> **Note:** This method is not available in [Web Workers](/en-US/docs/Web/API/Web_Workers_API), though the [StorageManager] interface is.",
+ "persisted": "\n\nThe **`persisted()`** method of the [StorageManager] interface returns a `Promise` that resolves to `true` if your site's storage bucket is persistent.\n\n"
+ }
+ },
+ "stylepropertymap": {
+ "docs": "\n\nThe **`StylePropertyMap`** interface of the [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Object_Model#css_typed_object_model_experimental) provides a representation of a CSS declaration block that is an alternative to [CSSStyleDeclaration].\n\n",
+ "properties": {
+ "append": "\n\nThe **`append()`** method of the\n[StylePropertyMap] interface adds the passed CSS value to the\n`StylePropertyMap` with the given property.",
+ "clear": "\n\nThe **`clear()`** method of the [StylePropertyMap]\ninterface removes all declarations in the `StylePropertyMap`.",
+ "delete": "\n\nThe **`delete()`** method of the\n[StylePropertyMap] interface removes the CSS declaration with the given\nproperty.",
+ "set": "\n\nThe **`set()`** method of the [StylePropertyMap]\ninterface changes the CSS declaration with the given property."
+ }
+ },
+ "stylepropertymapreadonly": {
+ "docs": "\n\nThe **`StylePropertyMapReadOnly`** interface of the [CSS Typed Object Model API](/en-US/docs/Web/API/CSS_Object_Model#css_typed_object_model) provides a read-only representation of a CSS declaration block that is an alternative to [CSSStyleDeclaration]. Retrieve an instance of this interface using [Element.computedStyleMap].",
+ "properties": {
+ "entries": "\n\nThe **`StylePropertyMapReadOnly.entries()`** method returns an\narray of a given object's own enumerable property `[key, value]` pairs, in\nthe same order as that provided by a `for...in` loop\n(the difference being that a for-in loop enumerates properties in the prototype chain as\nwell).",
+ "foreach": "\n\nThe **`StylePropertyMapReadOnly.forEach()`** method executes a\nprovided function once for each element of [StylePropertyMapReadOnly].",
+ "get": "\n\nThe **`get()`** method of the\n[StylePropertyMapReadOnly] interface returns a [CSSStyleValue]\nobject for the first value of the specified property.",
+ "getall": "\n\nThe **`getAll()`** method of the\n[StylePropertyMapReadOnly] interface returns an array of\n[CSSStyleValue] objects containing the values for the provided property.",
+ "has": "\n\nThe **`has()`** method of the\n[StylePropertyMapReadOnly] interface indicates whether the specified\nproperty is in the `StylePropertyMapReadOnly` object.",
+ "keys": "\n\nThe **`StylePropertyMapReadOnly.keys()`** method returns a new\n_array iterator_ containing the keys for each item\nin `StylePropertyMapReadOnly`",
+ "size": "\n\nThe **`size`** read-only property of the\n[StylePropertyMapReadOnly] interface returns an unsigned long integer\ncontaining the size of the `StylePropertyMapReadOnly` object.",
+ "values": "\n\nThe **`StylePropertyMapReadOnly.values()`** method returns a\nnew _array iterator_ containing the values for each index in the\n`StylePropertyMapReadOnly` object."
+ }
+ },
+ "stylesheet": {
+ "docs": "\n\nAn object implementing the `StyleSheet` interface represents a single style sheet. CSS style sheets will further implement the more specialized [CSSStyleSheet] interface.",
+ "properties": {
+ "disabled": "\n\nThe **`disabled`** property of the\n[StyleSheet] interface determines whether the style sheet is prevented from\napplying to the document.\n\nA style sheet may be disabled by manually setting this property to `true` or\nif it's an inactive [alternative style sheet](/en-US/docs/Web/CSS/Alternative_style_sheets). Note that `disabled === false` does not guarantee the style\nsheet is applied (it could be removed from the document, for instance).",
+ "href": "\n\nThe **`href`** property of the [StyleSheet]\ninterface returns the location of the style sheet.\n\nThis property is read-only.",
+ "media": "\n\nThe **`media`** property of the [StyleSheet] interface specifies the intended destination media for style information. It is a read-only, array-like `MediaList` object and can be removed with `deleteMedium()` and added with `appendMedium()`.",
+ "ownernode": "\n\nThe **`ownerNode`** property of the\n[StyleSheet] interface returns the node that associates this style sheet\nwith the document.\n\nThis is usually an HTML\n[`<link>`](/en-US/docs/Web/HTML/Element/link) or\n[`<style>`](/en-US/docs/Web/HTML/Element/style) element, but\ncan also return a [processing instruction node](/en-US/docs/Web/API/ProcessingInstruction) in the case of `<?xml-stylesheet ?>`.",
+ "parentstylesheet": "\n\nThe **`parentStyleSheet`** property of the\n[StyleSheet] interface returns the style sheet, if any, that is including\nthe given style sheet.",
+ "title": "\n\nThe **`title`** property of the [StyleSheet] interface returns the advisory title of the current style sheet.\n\nThe title is often specified in the [StyleSheet/OwnerNode].",
+ "type": "\n\nThe **`type`** property of the [StyleSheet]\ninterface specifies the style sheet language for the given style sheet."
+ }
+ },
+ "stylesheetlist": {
+ "docs": "\n\nThe `StyleSheetList` interface represents a list of [CSSStyleSheet] objects. An instance of this object can be returned by [Document.styleSheets].\n\nIt is an array-like object but can't be iterated over using `Array` methods. However it can be iterated over in a standard `for` loop over its indices, or converted to an `Array`.\n\n> **Note:** This interface was an [attempt to create an unmodifiable list](https://stackoverflow.com/questions/74630989/why-use-domstringlist-rather-than-an-array/74641156#74641156) and only continues to be supported to not break code that's already using it. Modern APIs use types that wrap around ECMAScript array types instead, so you can treat them like ECMAScript arrays, and at the same time impose additional semantics on their usage (such as making their items read-only).",
+ "properties": {
+ "item": "\n\nThe **`item()`** method of the [StyleSheetList] interface returns a single [CSSStyleSheet] object.",
+ "length": "\n\nThe **`length`** read-only property of the [StyleSheetList] interface returns the number of [CSSStyleSheet] objects in the collection."
+ }
+ },
+ "submitevent": {
+ "docs": "\n\nThe **`SubmitEvent`** interface defines the object used to represent an form's [HTMLFormElement.submit_event] event. This event is fired at the `form` when the form's submit action is invoked.\n\n",
+ "properties": {
+ "submitter": "\n\nThe read-only **`submitter`** property found on\nthe [SubmitEvent] interface specifies the submit button or other element\nthat was invoked to cause the form to be submitted."
+ }
+ },
+ "subtlecrypto": {
+ "docs": "\n\nThe **`SubtleCrypto`** interface of the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API) provides a number of low-level cryptographic functions. Access to the features of `SubtleCrypto` is obtained through the [Crypto.subtle] property of the [Crypto] object you get from the [crypto_property] property.\n\n> **Warning:** This API provides a number of low-level cryptographic primitives. It's very easy to misuse them, and the pitfalls involved can be very subtle.\n>\n> Even assuming you use the basic cryptographic functions correctly, secure key management and overall security system design are extremely hard to get right, and are generally the domain of specialist security experts.\n>\n> Errors in security system design and implementation can make the security of the system completely ineffective.\n>\n> Please learn and experiment, but don't guarantee or imply the security of your work before an individual knowledgeable in this subject matter thoroughly reviews it. The [Crypto 101 Course](https://www.crypto101.io/) can be a great place to start learning about the design and implementation of secure systems.",
+ "properties": {
+ "decrypt": "\n\nThe **`decrypt()`** method of the [SubtleCrypto] interface decrypts some encrypted data.\nIt takes as arguments a to decrypt with, some optional extra parameters, and the data to decrypt (also known as \"ciphertext\").\nIt returns a `Promise` which will be fulfilled with the decrypted data (also known as \"plaintext\").",
+ "derivebits": "\n\nThe **`deriveBits()`** method of the\n[SubtleCrypto] interface can be used to derive an array of bits from a base\nkey.\n\nIt takes as its arguments the base key, the derivation algorithm to use, and the length\nof the bits to derive. It returns a [`Promise`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)\nwhich will be fulfilled with an\n[`ArrayBuffer`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)\ncontaining the derived bits.\n\nThis method is very similar to\n[`SubtleCrypto.deriveKey()`](/en-US/docs/Web/API/SubtleCrypto/deriveKey),\nexcept that `deriveKey()` returns a\n[`CryptoKey`](/en-US/docs/Web/API/CryptoKey) object rather than an\n`ArrayBuffer`. Essentially `deriveKey()` is composed of\n`deriveBits()` followed by\n[`importKey()`](/en-US/docs/Web/API/SubtleCrypto/importKey).\n\nThis function supports the same derivation algorithms as `deriveKey()`:\nECDH, HKDF, and PBKDF2. See [Supported algorithms](/en-US/docs/Web/API/SubtleCrypto/deriveKey#supported_algorithms)\nfor some more detail on these algorithms.",
+ "derivekey": "\n\nThe **`deriveKey()`** method of the [SubtleCrypto]\ninterface can be used to derive a secret key from a master key.\n\nIt takes as arguments some initial key material, the derivation algorithm to use, and\nthe desired properties for the key to derive. It returns a [`Promise`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)\nwhich will be fulfilled with a [CryptoKey] object representing the new key.\n\nIt's worth noting that the three key derivation algorithms you can use have quite\ndifferent characteristics and are appropriate in quite different situations. See [Supported algorithms](#supported_algorithms) for some more detail on this.",
+ "digest": "\n\nThe **`digest()`** method of the [SubtleCrypto]\ninterface generates a of the given data. A digest is a short\nfixed-length value derived from some variable-length input. Cryptographic digests should\nexhibit collision-resistance, meaning that it's hard to come up with two different\ninputs that have the same digest value.\n\nIt takes as its arguments an identifier for the digest algorithm to use and the data to\ndigest. It returns a `Promise` which will be fulfilled with the digest.\n\nNote that this API does not support streaming input: you must read the entire input into memory before passing it into the digest function.",
+ "encrypt": "\n\nThe **`encrypt()`** method of the [SubtleCrypto] interface encrypts data.\n\nIt takes as its arguments a to encrypt with, some algorithm-specific parameters, and the data to encrypt (also known as \"plaintext\").\nIt returns a `Promise` which will be fulfilled with the encrypted data (also known as \"ciphertext\").",
+ "exportkey": "\n\nThe **`exportKey()`** method of the [SubtleCrypto]\ninterface exports a key: that is, it takes as input a [CryptoKey] object\nand gives you the key in an external, portable format.\n\nTo export a key, the key must have [CryptoKey.extractable] set to\n`true`.\n\nKeys can be exported in several formats: see [Supported formats](/en-US/docs/Web/API/SubtleCrypto/importKey#supported_formats) in the\n[`SubtleCrypto.importKey()`](/en-US/docs/Web/API/SubtleCrypto/importKey)\npage for details.\n\nKeys are not exported in an encrypted format: to encrypt keys when exporting them use\nthe\n[`SubtleCrypto.wrapKey()`](/en-US/docs/Web/API/SubtleCrypto/wrapKey)\nAPI instead.",
+ "generatekey": "\n\nUse the **`generateKey()`** method of the\n[SubtleCrypto] interface to generate a new key (for symmetric algorithms)\nor key pair (for public-key algorithms).",
+ "importkey": "\n\nThe **`importKey()`** method of the [SubtleCrypto]\ninterface imports a key: that is, it takes as input a key in an external, portable\nformat and gives you a [CryptoKey] object that you can use in the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API).\n\nThe function accepts several import formats: see [Supported formats](#supported_formats) for details.",
+ "sign": "\n\nThe **`sign()`** method of the [SubtleCrypto]\ninterface generates a digital .\n\nIt takes as its arguments a to sign with, some algorithm-specific\nparameters, and the data to sign. It returns a `Promise` which will be\nfulfilled with the signature.\n\nYou can use the corresponding [SubtleCrypto.verify] method to verify the\nsignature.",
+ "unwrapkey": "\n\nThe **`unwrapKey()`** method of the [SubtleCrypto] interface \"unwraps\" a key.\nThis means that it takes as its input a key that has been exported and then encrypted (also called \"wrapped\").\nIt decrypts the key and then imports it, returning a [CryptoKey] object that can be used in the [Web Crypto API](/en-US/docs/Web/API/Web_Crypto_API).\n\nAs with [`SubtleCrypto.importKey()`](/en-US/docs/Web/API/SubtleCrypto/importKey), you specify the key's [import format](/en-US/docs/Web/API/SubtleCrypto/importKey#supported_formats) and other attributes of the key to import details such as whether it is extractable, and which operations it can be used for.\n\nBut because `unwrapKey()` also decrypts the key to be imported, you also need to pass in the key that must be used to decrypt it.\nThis is sometimes called the \"unwrapping key\".\n\nThe inverse of `unwrapKey()` is [SubtleCrypto.wrapKey]: while `unwrapKey` is composed of decrypt + import, `wrapKey` is composed of encrypt + export.",
+ "verify": "\n\nThe **`verify()`** method of the [SubtleCrypto]\ninterface verifies a digital .\n\nIt takes as its arguments a to verify the signature with, some\nalgorithm-specific parameters, the signature, and the original signed data. It returns a\n`Promise` which will be fulfilled with a boolean value\nindicating whether the signature is valid.",
+ "wrapkey": "\n\nThe **`wrapKey()`** method of the [SubtleCrypto] interface \"wraps\" a key.\nThis means that it exports the key in an external, portable format, then encrypts the exported key.\nWrapping a key helps protect it in untrusted environments, such as inside an otherwise unprotected data store or in transmission over an unprotected network.\n\nAs with [SubtleCrypto.exportKey], you specify an [export format](/en-US/docs/Web/API/SubtleCrypto/importKey#supported_formats) for the key.\nTo export a key, it must have [CryptoKey.extractable] set to `true`.\n\nBut because `wrapKey()` also encrypts the key to be exported, you also need to pass in the key that must be used to encrypt it.\nThis is sometimes called the \"wrapping key\".\n\nThe inverse of `wrapKey()` is [SubtleCrypto.unwrapKey]: while `wrapKey` is composed of export + encrypt, `unwrapKey` is composed of import + decrypt."
+ }
+ },
+ "svgaelement": {
+ "docs": "\n\nThe **`SVGAElement`** interface provides access to the properties of an element, as well as methods to manipulate them.\n\n",
+ "properties": {
+ "target": "\n\nThe **`SVGAElement.target`** read-only property of [SVGAElement] returns an [SVGAnimatedString] object that specifies the portion of a target window, frame, pane into which a document is to be opened when a link is activated.\n\nThis property is used when there are multiple possible targets for the ending resource, like when the parent document is a multi-frame HTML or XHTML document."
+ }
+ },
+ "svgangle": {
+ "docs": "\n\nThe `SVGAngle` interface is used to represent a value that can be an or value. An `SVGAngle` reflected through the `animVal` attribute is always read only.\n\nAn `SVGAngle` object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.\n\nAn `SVGAngle` object can be associated with a particular element. The associated element is used to determine which element's content attribute to update if the object reflects an attribute. Unless otherwise described, an `SVGAngle` object is not associated with any element.\n\nEvery `SVGAngle` object operates in one of two modes:\n\n1. **_Reflect the base value_** of a reflected animatable attribute (being exposed through the `baseVal` member of an [SVGAnimatedAngle]),\n2. **_Be detached_,** which is the case for `SVGAngle` objects created with [SVGSVGElement.createSVGAngle]."
+ },
+ "svganimatecolorelement": {
+ "docs": "\n\nThe **`SVGAnimateColorElement`** interface corresponds to the `<animateColor>` element.\n\n"
+ },
+ "svganimatedangle": {
+ "docs": ""
+ },
+ "svganimatedboolean": {
+ "docs": ""
+ },
+ "svganimatedenumeration": {
+ "docs": "\n\nThe **`SVGAnimatedEnumeration`** interface describes attribute values which are constants from a particular enumeration and which can be animated.",
+ "properties": {
+ "animval": "\n\nThe **`animVal`** property of the [SVGAnimatedEnumeration] interface contains the current value of an SVG enumeration. If there is no animation, it is the same value as the [SVGAnimatedEnumeration.baseVal].",
+ "baseval": "\n\nThe **`baseVal`** property of the [SVGAnimatedEnumeration] interface contains the initial value of an SVG enumeration."
+ }
+ },
+ "svganimatedinteger": {
+ "docs": ""
+ },
+ "svganimatedlength": {
+ "docs": "\n\nThe **`SVGAnimatedLength`** interface represents attributes of type [\\<length>](/en-US/docs/Web/SVG/Content_type#length) which can be animated.",
+ "properties": {
+ "animval": "\n\nThe **`animVal`** property of the [SVGAnimatedLength] interface contains the current value of an SVG enumeration. If there is no animation, it is the same value as the [SVGAnimatedLength.baseVal].",
+ "baseval": "\n\nThe **`baseVal`** property of the [SVGAnimatedLength] interface contains the initial value of an SVG enumeration."
+ }
+ },
+ "svganimatedlengthlist": {
+ "docs": ""
+ },
+ "svganimatednumber": {
+ "docs": ""
+ },
+ "svganimatednumberlist": {
+ "docs": ""
+ },
+ "svganimatedpreserveaspectratio": {
+ "docs": ""
+ },
+ "svganimatedrect": {
+ "docs": "\n\nThe `SVGAnimatedRect` interface is used for attributes of basic [SVGRect] which can be animated.\n\n### Interface overview\n\n<table class=\"no-markdown\">\n <tbody>\n <tr>\n <th scope=\"row\">Also implement</th>\n <td><em>None</em></td>\n </tr>\n <tr>\n <th scope=\"row\">Methods</th>\n <td><em>None</em></td>\n </tr>\n <tr>\n <th scope=\"row\">Properties</th>\n <td>\n <ul>\n <li>\n readonly [SVGRect] <code>baseVal</code>\n </li>\n <li>\n readonly [SVGRect] <code>animVal</code>\n </li>\n </ul>\n </td>\n </tr>\n <tr>\n <th scope=\"row\">Normative document</th>\n <td>\n <a\n href=\"https://www.w3.org/TR/SVG11/types.html#InterfaceSVGAnimatedRect\"\n >SVG 1.1 (2nd Edition)</a\n >\n </td>\n </tr>\n </tbody>\n</table>"
+ },
+ "svganimatedstring": {
+ "docs": "\n\nThe **`SVGAnimatedString`** interface represents string attributes which can be animated from each SVG declaration. You need to create SVG attribute before doing anything else, everything should be declared inside this.",
+ "properties": {
+ "animval": "\n\nAnimVal attribute or animVal property contains the same value as the [SVGAnimatedString.baseVal] property. If the given attribute or property is being animated, contains the current animated value of the attribute or property. If the given attribute or property is not currently being animated, then it contains the same value as baseVal\n\n> **Note:** The **animVal** property is a read only property.",
+ "baseval": "\n\nBaseVal gets or sets the base value of the given attribute before any animations are applied. The base value of the given attribute before applying any animations. Setter throws DOMException."
+ }
+ },
+ "svganimatedtransformlist": {
+ "docs": ""
+ },
+ "svganimateelement": {
+ "docs": "\n\nThe **`SVGAnimateElement`** interface corresponds to the element.\n\n"
+ },
+ "svganimatemotionelement": {
+ "docs": "\n\nThe **`SVGAnimateMotionElement`** interface corresponds to the element.\n\n"
+ },
+ "svganimatetransformelement": {
+ "docs": "\n\nThe `SVGAnimateTransformElement` interface corresponds to the element.\n\n"
+ },
+ "svganimationelement": {
+ "docs": "\n\nThe **`SVGAnimationElement`** interface is the base interface for all of the animation element interfaces: [SVGAnimateElement], [SVGSetElement], [SVGAnimateColorElement], [SVGAnimateMotionElement] and [SVGAnimateTransformElement].\n\n",
+ "properties": {
+ "beginevent_event": "\n\nThe **`beginEvent`** event of the [SVGAnimationElement] interface is fired when the element local timeline begins to play. It will be raised each time the element begins the active duration (i.e., when it restarts, but not when it repeats).\n\nIt may be raised both in the course of normal (i.e. scheduled or interactive) timeline play, as well as in the case that the element was begun with a DOM method.\n\nThis event is not cancelable and does not bubble.",
+ "endevent_event": "\n\nThe **`endEvent`** event of the [SVGAnimationElement] interface is fired when at the active end of the animation is reached.\n\n> **Note:** This event is not raised at the simple end of each animation repeat. This event may be raised both in the course of normal (i.e. scheduled or interactive) timeline play, as well as in the case that the element was ended with a DOM method.\n\nThis event is not cancelable and does not bubble.",
+ "repeatevent_event": "\n\nThe **`repeatEvent`** event of the [SVGAnimationElement] interface is fired when the element's local timeline repeats. It will be fired each time the element repeats, after the first iteration.\n\n> **Note:** Associated with the `repeatEvent` event is an integer that indicates which repeat iteration is beginning; this can be found in the `detail` property of the event object. The value is a 0-based integer, but the repeat event is not raised for the first iteration and so the observed values will be >= 1. This is supported in Firefox, but not in Chrome.\n\nThis event is not cancelable and does not bubble.",
+ "targetelement": "\n\nThe **`SVGAnimationElement.targetElement`** property refers to\nthe element which is being animated. If no target element is being animated (for\nexample, because the `href` attribute specifies an unknown element), the\nvalue returned is `null`."
+ }
+ },
+ "svgcircleelement": {
+ "docs": "\n\nThe **`SVGCircleElement`** interface is an interface for the element.\n\n",
+ "properties": {
+ "cx": "\n\nThe **`cx`** read-only property of the [SVGCircleElement] interface reflects the `cx` attribute of a element and by that defines the x-coordinate of the circle's center.<\n\nIf unspecified, the effect is as if the value is set to `0`.",
+ "cy": "\n\nThe **`cy`** read-only property of the [SVGCircleElement] interface reflects the `cy` attribute of a element and by that defines the y-coordinate of the circle's center.\n\nIf unspecified, the effect is as if the value is set to `0`.",
+ "r": "\n\nThe **`r`** read-only property of the [SVGCircleElement] interface reflects the `r` attribute of a element and by that defines the radius of the circle.\n\nIf unspecified, the effect is as if the value is set to `0`."
+ }
+ },
+ "svgclippathelement": {
+ "docs": "\n\nThe **`SVGClipPathElement`** interface provides access to the properties of elements, as well as methods to manipulate them.\n\n",
+ "properties": {
+ "clippathunits": "\n\nThe read-only **`clipPathUnits`** property of the [SVGClipPathElement] interface reflects the `clipPathUnits` attribute of a element which defines the coordinate system to use for the content of the element.\n\n> **Note:** Although this property is read-only, it is merely a container for two values you can modify, [SVGAnimatedEnumeration.baseVal] and [SVGAnimatedEnumeration.animVal].",
+ "transform": "\n\nThe read-only **`transform`** property of the [SVGClipPathElement] interface reflects the `transform` attribute of a element, that is a list of transformations applied to the element."
+ }
+ },
+ "svgcomponenttransferfunctionelement": {
+ "docs": "\n\nThe **`SVGComponentTransferFunctionElement`** interface defines a base interface used by the component transfer function interfaces.\n\n"
+ },
+ "svgcursorelement": {
+ "docs": "\n\nThe **`SVGCursorElement`** interface provides access to the properties of elements, as well as methods to manipulate them.\n\n"
+ },
+ "svgdefselement": {
+ "docs": "\n\nThe **`SVGDefsElement`** interface corresponds to the element.\n\n"
+ },
+ "svgdescelement": {
+ "docs": "\n\nThe **`SVGDescElement`** interface corresponds to the element.\n\n"
+ },
+ "svgelement": {
+ "docs": "\n\nAll of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the `SVGElement` interface.\n\n",
+ "properties": {
+ "error_event": "\n\nThe `error` event is fired when an SVG element does not load properly or when an error occurs during script execution.\n\nThis basically implements the standard `error` DOM event.\n\nThis event is not cancelable.",
+ "load_event": "\n\nThe `load` event fires on an `SVGElement` when it is loaded in the browser, e.g. in the DOM in the case of an embedded `<svg>`. It is basically the same as the standard `load` DOM event.\n\nThis event is not cancelable and does not bubble.",
+ "style": "\n\nThe read-only **`style`** property of the [SVGElement] 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`](/en-US/docs/Web/HTML/Global_attributes/style) attribute.\n\nShorthand properties are expanded. If you set `style=\"border-top: 1px solid black\"`, the longhand properties (, , and ) are set instead.\n\nThis 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\nTherefore, 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\nA style declaration is reset by setting it to `null` or an empty string, e.g., `elt.style.color = null`.\n\n> **Note:** CSS 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 : `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."
+ }
+ },
+ "svgellipseelement": {
+ "docs": "\n\nThe **`SVGEllipseElement`** interface provides access to the properties of elements.\n\n"
+ },
+ "svgevent": {
+ "docs": "\n\nThe [SVGEvent] interface represents the event object for most SVG-related events."
+ },
+ "svgfeblendelement": {
+ "docs": "\n\nThe **`SVGFEBlendElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfecolormatrixelement": {
+ "docs": "\n\nThe **`SVGFEColorMatrixElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfecomponenttransferelement": {
+ "docs": "\n\nThe **`SVGFEComponentTransferElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfecompositeelement": {
+ "docs": "\n\nThe **`SVGFECompositeElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfeconvolvematrixelement": {
+ "docs": "\n\nThe **`SVGFEConvolveMatrixElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfediffuselightingelement": {
+ "docs": "\n\nThe **`SVGFEDiffuseLightingElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfedisplacementmapelement": {
+ "docs": "\n\nThe **`SVGFEDisplacementMapElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfedistantlightelement": {
+ "docs": "\n\nThe **`SVGFEDistantLightElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfedropshadowelement": {
+ "docs": "\n\nThe **`SVGFEDropShadowElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfefloodelement": {
+ "docs": "\n\nThe **`SVGFEFloodElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfefuncaelement": {
+ "docs": "\n\nThe **`SVGFEFuncAElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfefuncbelement": {
+ "docs": "\n\nThe **`SVGFEFuncBElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfefuncgelement": {
+ "docs": "\n\nThe **`SVGFEFuncGElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfefuncrelement": {
+ "docs": "\n\nThe **`SVGFEFuncRElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfegaussianblurelement": {
+ "docs": "\n\nThe **`SVGFEGaussianBlurElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfeimageelement": {
+ "docs": "\n\nThe **`SVGFEImageElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfemergeelement": {
+ "docs": "\n\nThe **`SVGFEMergeElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfemergenodeelement": {
+ "docs": "\n\nThe **`SVGFEMergeNodeElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfemorphologyelement": {
+ "docs": "\n\nThe **`SVGFEMorphologyElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfeoffsetelement": {
+ "docs": "\n\nThe **`SVGFEOffsetElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfepointlightelement": {
+ "docs": "\n\nThe **`SVGFEPointLightElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfespecularlightingelement": {
+ "docs": "\n\nThe **`SVGFESpecularLightingElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfespotlightelement": {
+ "docs": "\n\nThe **`SVGFESpotLightElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfetileelement": {
+ "docs": "\n\nThe **`SVGFETileElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfeturbulenceelement": {
+ "docs": "\n\nThe **`SVGFETurbulenceElement`** interface corresponds to the element.\n\n"
+ },
+ "svgfilterelement": {
+ "docs": "\n\nThe **`SVGFilterElement`** interface provides access to the properties of elements, as well as methods to manipulate them.\n\n"
+ },
+ "svgfontelement": {
+ "docs": "\n\nThe **`SVGFontElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "svgfontfaceelement": {
+ "docs": "\n\nThe **`SVGFontFaceElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "svgfontfaceformatelement": {
+ "docs": "\n\nThe **`SVGFontFaceFormatElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "svgfontfacenameelement": {
+ "docs": "\n\nThe **`SVGFontFaceNameElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "svgfontfacesrcelement": {
+ "docs": "\n\nThe **`SVGFontFaceSrcElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "svgfontfaceurielement": {
+ "docs": "\n\nThe **`SVGFontFaceUriElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "svgforeignobjectelement": {
+ "docs": "\n\nThe **`SVGForeignObjectElement`** interface provides access to the properties of elements, as well as methods to manipulate them.\n\n"
+ },
+ "svggelement": {
+ "docs": "\n\nThe **`SVGGElement`** interface corresponds to the element.\n\n"
+ },
+ "svggeometryelement": {
+ "docs": "\n\nThe `SVGGeometryElement` interface represents SVG elements whose rendering is defined by geometry with an equivalent path, and which can be filled and stroked. This includes paths and the basic shapes.\n\n",
+ "properties": {
+ "getpointatlength": "\n\nThe\n**`SVGGeometryElement.getPointAtLength()`** method returns the\npoint at a given distance along the path.",
+ "gettotallength": "\n\nThe **`SVGGeometryElement.getTotalLength()`** method returns\nthe user agent's computed value for the total length of the path in user units.",
+ "ispointinfill": "\n\nThe **`SVGGeometryElement.isPointInFill()`** method determines\nwhether a given point is within the fill shape of an element. Normal hit testing rules\napply; the value of the property on the element determines\nwhether a point is considered to be within the fill. The `point` argument is\ninterpreted as a point in the local coordinate system of the element.",
+ "ispointinstroke": "\n\nThe **`SVGGeometryElement.isPointInStroke()`** method\ndetermines whether a given point is within the stroke shape of an element. Normal hit\ntesting rules apply; the value of the property on the\nelement determines whether a point is considered to be within the stroke. The\n`point` argument is interpreted as a point in the local coordinate system of\nthe element.",
+ "pathlength": "\n\nThe **`SVGGeometryElement.pathLength`** property reflects the\n`pathLength` attribute and returns the total length of the path, in user units."
+ }
+ },
+ "svgglyphelement": {
+ "docs": "\n\nThe **`SVGGlyphElement`** interface corresponds to the element.\n\nObject-oriented access to the attributes of the `<glyph>` element via the SVG DOM is not possible.\n\n> **Warning:** This interface was removed in the SVG 2 specification."
+ },
+ "svgglyphrefelement": {
+ "docs": "\n\nThe **`SVGGlyphRefElement`** interface corresponds to the elements.\n\n"
+ },
+ "svggradientelement": {
+ "docs": "\n\nThe **`SVGGradient`** interface is a base interface used by [SVGLinearGradientElement] and [SVGRadialGradientElement].\n\n"
+ },
+ "svggraphicselement": {
+ "docs": "\n\nThe **`SVGGraphicsElement`** interface represents SVG elements whose primary purpose is to directly render graphics into a group.\n\n",
+ "properties": {
+ "copy_event": "\n\nThe **`copy`** event fires on [SVGGraphicsElement] when the user initiates a copy action through the browser's user interface.\n\nThe event's default action is to copy the selection (if any) to the clipboard.\n\nA handler for this event can _modify_ the clipboard contents by calling [DataTransfer.setData] on the event's [ClipboardEvent.clipboardData] property, and cancelling the event's default action using [`event.preventDefault()`](/en-US/docs/Web/API/Event/preventDefault).\n\nHowever, the handler cannot _read_ the clipboard data.\n\nIt's possible to construct and dispatch a [synthetic](/en-US/docs/Web/Events/Creating_and_triggering_events) `copy` event, but this will not affect the system clipboard.",
+ "cut_event": "\n\nThe **`cut`** event is fired on an [SVGGraphicsElement] when the user has initiated a \"cut\" action through the browser's user interface.\n\nIf the user attempts a cut action on uneditable content, the `cut` event still fires but the event object contains no data.\n\nThe event's default action is to copy the current selection (if any) to the system clipboard and remove it from the document.\n\nA handler for this event can _modify_ the clipboard contents by calling [`setData(format, data)`](/en-US/docs/Web/API/DataTransfer/setData) on the event's [`ClipboardEvent.clipboardData`](/en-US/docs/Web/API/ClipboardEvent/clipboardData) property, and cancelling the default action using [`event.preventDefault()`](/en-US/docs/Web/API/Event/preventDefault).\n\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.\n\nThe handler cannot _read_ the clipboard data.\n\nIt's possible to construct and dispatch a [synthetic](/en-US/docs/Web/Events/Creating_and_triggering_events) `cut` event, but this will not affect the system clipboard or the document's contents.",
+ "getbbox": "\n\nThe **`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\n> the time the method was called—even in case the element has not yet been rendered. It\n> also does not account for any transformation applied to the element or its parents.\n\n> **Note:** `getBBox` returns different values than\n> [Element.getBoundingClientRect], as the\n> latter returns value relative to the viewport",
+ "paste_event": "\n\nThe **`paste`** event is fired on an [SVGGraphicsElement] when the user has initiated a \"paste\" action through the browser's user interface.\n\nIf the cursor is in an editable context (for example, in a `textarea` or an element with [`contenteditable`](/en-US/docs/Web/HTML/Global_attributes/contenteditable) attribute set to `true`) then the default action is to insert the contents of the clipboard into the document at the cursor position.\n\nA handler for this event can access the clipboard contents by calling [DataTransfer/getData] on the event's `clipboardData` property.\n\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.\n\nIt's possible to construct and dispatch a [synthetic](/en-US/docs/Web/Events/Creating_and_triggering_events) `paste` event, but this will not affect the document's contents."
+ }
+ },
+ "svghkernelement": {
+ "docs": "\n\nThe **`SVGHKernElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "svgimageelement": {
+ "docs": "\n\nThe **`SVGImageElement`** interface corresponds to the element.\n\n",
+ "properties": {
+ "decode": "\n\nThe **`decode()`** method of the\n[SVGImageElement] interface initiates asynchronous decoding of an image,\nreturning a `Promise` that resolves once the image is decoded and it is safe to append\nit to the DOM.",
+ "decoding": "\n\nThe **`decoding`** property of the [SVGImageElement] interface provides a hint to the browser as to whether it should perform image decoding synchronously or asynchronously.",
+ "height": "\n\nThe **`height`** read-only property of the\n[SVGImageElement] interface returns an [SVGAnimatedLength]\ncorresponding to the `height` attribute of the given\n element.",
+ "preserveaspectratio": "\n\nThe **`preserveAspectRatio`** read-only\nproperty of the [SVGImageElement] interface returns an\n[SVGAnimatedPreserveAspectRatio] corresponding to the\n`preserveAspectRatio` attribute of the given \nelement.",
+ "width": "\n\nThe **`width`** read-only property of the\n[SVGImageElement] interface returns an [SVGAnimatedLength]\ncorresponding to the `width` attribute of the given \nelement.",
+ "x": "\n\nThe **`x`** read-only property of the\n[SVGImageElement] interface returns an [SVGAnimatedLength]\ncorresponding to the `x` attribute of the given \nelement.",
+ "y": "\n\nThe **`y`** read-only property of the\n[SVGImageElement] interface returns an [SVGAnimatedLength]\ncorresponding to the `y` attribute of the given \nelement."
+ }
+ },
+ "svglength": {
+ "docs": ""
+ },
+ "svglengthlist": {
+ "docs": ""
+ },
+ "svglineargradientelement": {
+ "docs": "\n\nThe **`SVGLinearGradientElement`** interface corresponds to the element.\n\n"
+ },
+ "svglineelement": {
+ "docs": "\n\nThe **`SVGLineElement`** interface provides access to the properties of elements, as well as methods to manipulate them.\n\n"
+ },
+ "svgmarkerelement": {
+ "docs": "\n\nThe **`SVGMarkerElement`** interface provides access to the properties of elements, as well as methods to manipulate them. The element defines the graphics used for drawing marks on a shape.\n\nThe following properties and methods all return, or act on the attributes of the element represented by `SVGMarkerElement`.",
+ "properties": {
+ "markerheight": "\n\nThe **`markerHeight`** read-only property of the [SVGMarkerElement] interface returns an [SVGAnimatedLength] object containing the height of the viewport as defined by the `markerHeight` attribute.",
+ "markerunits": "\n\nThe **`markerUnits`** read-only property of the [SVGMarkerElement] interface returns an [SVGAnimatedEnumeration] object. This object returns an integer which represents the keyword values that the `markerUnits` attribute accepts.",
+ "markerwidth": "\n\nThe **`markerWidth`** read-only property of the [SVGMarkerElement] interface returns an [SVGAnimatedLength] object containing the width of the viewport as defined by the `markerWidth` attribute.",
+ "orientangle": "\n\nThe **`orientAngle`** read-only property of the [SVGMarkerElement] interface returns an [SVGAnimatedAngle] object containing the angle of the `orient` attribute.",
+ "orienttype": "\n\nThe **`orientType`** read-only property of the [SVGMarkerElement] interface returns an [SVGAnimatedEnumeration] object indicating whether the `orient` attribute is `auto`, an angle value, or something else.\n\nThis _something else_ is most likely to be the keyword `auto-start-reverse` however the spec leaves it open for this to be other values. Unsupported values will generally be thrown away by the parser, leaving the value the default of `auto`.",
+ "preserveaspectratio": "\n\nThe **`preserveAspectRatio`** read-only property of the [SVGMarkerElement] interface returns an [SVGAnimatedPreserveAspectRatio] object containing the value of the `preserveAspectRatio` attribute of the .",
+ "refx": "\n\nThe **`refX`** read-only property of the [SVGMarkerElement] interface returns an [SVGAnimatedLength] object containing the value of the `refX` attribute of the .",
+ "refy": "\n\nThe **`refY`** read-only property of the [SVGMarkerElement] interface returns an [SVGAnimatedLength] object containing the value of the `refY` attribute of the .",
+ "setorienttoangle": "\n\nThe **`setOrientToAngle()`** method of the [SVGMarkerElement] interface sets the value of the `orient` attribute to the value in the [SVGAngle] passed in.",
+ "setorienttoauto": "\n\nThe **`setOrientToAuto()`** method of the [SVGMarkerElement] interface sets the value of the `orient` attribute to `auto`.",
+ "viewbox": "\n\nThe **`viewBox`** read-only property of the [SVGMarkerElement] interface returns an [SVGAnimatedRect] object which contains the values set by the `viewBox` attribute on the ."
+ }
+ },
+ "svgmaskelement": {
+ "docs": "\n\nThe **`SVGMaskElement`** interface provides access to the properties of elements, as well as methods to manipulate them.\n\n",
+ "properties": {
+ "height": "\n\nThe read-only **`height`** property of the [SVGMaskElement] interface returns an [SVGAnimatedLength] object containing the value of the `height` attribute of the .\n\n> **Note:** Although this property is read-only, it is merely a container for two values you can modify, [SVGAnimatedLength.baseVal] and [SVGAnimatedLength.animVal].",
+ "maskcontentunits": "\n\nThe read-only **`maskContentUnits`** property of the [SVGMaskElement] interface reflects the `maskContentUnits` attribute. It indicates which coordinate system to use for the contents of the element.\n\n> **Note:** Although this property is read-only, it is merely a container for two values you can modify, [SVGAnimatedEnumeration.baseVal] and [SVGAnimatedEnumeration.animVal].",
+ "maskunits": "\n\nThe read-only **`maskUnits`** property of the [SVGMaskElement] interface reflects the `maskUnits` attribute of a element which defines the coordinate system to use for the mask of the element.\n\n> **Note:** Although this property is read-only, it is merely a container for two values you can modify, [SVGAnimatedEnumeration.baseVal] and [SVGAnimatedEnumeration.animVal].",
+ "width": "\n\nThe read-only **`width`** property of the [SVGMaskElement] interface returns an [SVGAnimatedLength] object containing the value of the `width` attribute of the .\n\n> **Note:** Although this property is read-only, it is merely a container for two values you can modify, [SVGAnimatedLength.baseVal] and [SVGAnimatedLength.animVal].",
+ "x": "\n\nThe read-only **`x`** property of the [SVGMaskElement] interface returns an [SVGAnimatedLength] object containing the value of the `x` attribute of the . It represents the x-axis coordinate of the _top-left_ corner of the masking area.\n\n> **Note:** Although this property is read-only, it is merely a container for two values you can modify, [SVGAnimatedLength.baseVal] and [SVGAnimatedLength.animVal].",
+ "y": "\n\nThe read-only **`y`** property of the [SVGMaskElement] interface returns an [SVGAnimatedLength] object containing the value of the `y` attribute of the . It represents the y-axis coordinate of the _top-left_ corner of the masking area.\n\n> **Note:** Although this property is read-only, it is merely a container for two values you can modify, [SVGAnimatedLength.baseVal] and [SVGAnimatedLength.animVal]."
+ }
+ },
+ "svgmetadataelement": {
+ "docs": "\n\nThe **`SVGMetadataElement`** interface corresponds to the element.\n\n"
+ },
+ "svgmissingglyphelement": {
+ "docs": "\n\nThe **`SVGMissingGlyphElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "svgmpathelement": {
+ "docs": "\n\nThe **`SVGMPathElement`** interface corresponds to the element.\n\n"
+ },
+ "svgnumber": {
+ "docs": "\n\nThe **`SVGNumber`** interface corresponds to the basic data type.\n\nAn `SVGNumber` object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown."
+ },
+ "svgnumberlist": {
+ "docs": ""
+ },
+ "svgpathelement": {
+ "docs": "\n\nThe **`SVGPathElement`** interface corresponds to the element.\n\n> **Note:** In SVG 2 the `getPathSegAtLength()` and `createSVGPathSeg*` methods were removed and the `pathLength` property and the `getTotalLength()` and `getPointAtLength()` methods were moved to [SVGGeometryElement]."
+ },
+ "svgpatternelement": {
+ "docs": "\n\nThe **`SVGPatternElement`** interface corresponds to the element.\n\n"
+ },
+ "svgpoint": {
+ "docs": "\n\n> **Warning:** `SVGPoint` is deprecated.\n> Use [DOMPoint] or [DOMPointReadOnly] instead.\n\nAn `SVGPoint` represents a 2D or 3D point in the SVG coordinate system."
+ },
+ "svgpointlist": {
+ "docs": "\n\nThe **`SVGPointList`** interface represents a list of [SVGPoint] objects.\n\nAn `SVGPointList` can be designated as read-only, which means that attempts to modify the object will result in an exception being thrown.",
+ "properties": {
+ "appenditem": "\n\nThe **`appendItem()`** method of the [SVGPointList] interface adds a [SVGPoint] to the end of the list.",
+ "clear": "\n\nThe **`clear()`** method of the [SVGPointList] interface removes all items from the list.",
+ "getitem": "\n\nThe **`getItem()`** method of the [SVGPointList] interface gets one item from the list at the specified index.",
+ "initialize": "\n\nThe **`initialize()`** method of the [SVGPointList] interface clears the list then adds a single new [SVGPoint] object to the list.",
+ "insertitembefore": "\n\nThe **`insertItemBefore()`** method of the [SVGPointList] interface inserts a [SVGPoint] before another item in the list.",
+ "length": "\n\nThe **`length`** read-only property of the [SVGPointList] interface returns the number of items in the list.",
+ "numberofitems": "\n\nThe **`numberOfItems`** read-only property of the [SVGPointList] interface returns the number of items in the list.",
+ "removeitem": "\n\nThe **`removeItem()`** method of the [SVGPointList] interface removes a [SVGPoint] from the list.",
+ "replaceitem": "\n\nThe **`replaceItem()`** method of the [SVGPointList] interface replaces a [SVGPoint] in the list."
+ }
+ },
+ "svgpolygonelement": {
+ "docs": "\n\nThe **`SVGPolygonElement`** interface provides access to the properties of elements, as well as methods to manipulate them.\n\n"
+ },
+ "svgpolylineelement": {
+ "docs": "\n\nThe **`SVGPolylineElement`** interface provides access to the properties of elements, as well as methods to manipulate them.\n\n"
+ },
+ "svgpreserveaspectratio": {
+ "docs": ""
+ },
+ "svgradialgradientelement": {
+ "docs": "\n\nThe **`SVGRadialGradientElement`** interface corresponds to the element.\n\n"
+ },
+ "svgrect": {
+ "docs": "\n\nThe **`SVGRect`** represents a rectangle. Rectangles consist of an `x` and `y` coordinate pair identifying a minimum `x` value, a minimum `y` value, and a `width` and `height`, which are constrained to be non-negative.\n\nAn **`SVGRect`** object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.",
+ "properties": {
+ "the__x__property": "\n\nThe [x](https://svgwg.org/svg2-draft/geometry.html#XProperty) property describes the horizontal coordinate of the position of the element."
+ }
+ },
+ "svgrectelement": {
+ "docs": "\n\nThe `SVGRectElement` interface provides access to the properties of elements, as well as methods to manipulate them.\n\n"
+ },
+ "svgrenderingintent": {
+ "docs": "\n\nThe **`SVGRenderingIntent`** interface defines the enumerated list of possible values for attributes or descriptors.\n\n> **Warning:** This interface was removed in the SVG 2 specification."
+ },
+ "svgscriptelement": {
+ "docs": "\n\nThe **`SVGScriptElement`** interface corresponds to the SVG element.\n\n"
+ },
+ "svgsetelement": {
+ "docs": "\n\nThe **`SVGSetElement`** interface corresponds to the element.\n\n"
+ },
+ "svgstopelement": {
+ "docs": "\n\nThe **`SVGStopElement`** interface corresponds to the element.\n\n"
+ },
+ "svgstringlist": {
+ "docs": ""
+ },
+ "svgstyleelement": {
+ "docs": "\n\nThe **`SVGStyleElement`** interface corresponds to the SVG element.\n\n",
+ "properties": {
+ "disabled": "\n\nThe **`SVGStyleElement.disabled`** property can be used to get and set whether the stylesheet is disabled (`true`) or not (`false`).\n\nNote that there is no corresponding `disabled` attribute on the [SVG `<style>` element](/en-US/docs/Web/SVG/Element/style).",
+ "media": "\n\nThe **`SVGStyleElement.media`** property is a media query string corresponding to the [`media`](/en-US/docs/Web/SVG/Element/style#media) attribute of the given SVG style element.\n\nThe query must be matched for the style to apply.",
+ "sheet": "\n\nThe **`SVGStyleElement.sheet`** read-only property returns the [CSSStyleSheet] corresponding to the given SVG style element, or `null` if there is none.",
+ "title": "\n\nThe **`SVGStyleElement.title`** property is a string corresponding to the [`title`](/en-US/docs/Web/SVG/Element/style#title) attribute of the given SVG style element.\nIt may be used to select between [alternate style sheets](/en-US/docs/Web/CSS/Alternative_style_sheets).",
+ "type": " \n\nThe **`SVGStyleElement.type`** property returns the type of the current style.\nThe value reflects the associated SVG `<style>` element's [`type`](/en-US/docs/Web/SVG/Element/style#type) attribute.\n\nAuthors should not use this property or rely on the value."
+ }
+ },
+ "svgsvgelement": {
+ "docs": "\n\nThe **`SVGSVGElement`** interface provides access to the properties of elements, as well as methods to manipulate them. This interface contains also various miscellaneous commonly-used utility methods, such as matrix operations and the ability to control the time of redraw on visual rendering devices.\n\n"
+ },
+ "svgswitchelement": {
+ "docs": "\n\nThe **`SVGSwitchElement`** interface corresponds to the element.\n\n"
+ },
+ "svgsymbolelement": {
+ "docs": "\n\nThe **`SVGSymbolElement`** interface corresponds to the element.\n\n"
+ },
+ "svgtextcontentelement": {
+ "docs": "\n\nThe **`SVGTextContentElement`** interface is implemented by elements that support rendering child text content. It is inherited by various text-related interfaces, such as [SVGTextElement], [SVGTSpanElement], [SVGTRefElement], and [SVGTextPathElement].\n\n"
+ },
+ "svgtextelement": {
+ "docs": "\n\nThe **`SVGTextElement`** interface corresponds to the elements.\n\n"
+ },
+ "svgtextpathelement": {
+ "docs": "\n\nThe **`SVGTextPathElement`** interface corresponds to the element.\n\n"
+ },
+ "svgtextpositioningelement": {
+ "docs": "\n\nThe **`SVGTextPositioningElement`** interface is implemented by elements that support attributes that position individual text glyphs. It is inherited by [SVGTextElement], [SVGTSpanElement], and [SVGTRefElement].\n\n"
+ },
+ "svgtitleelement": {
+ "docs": "\n\nThe **`SVGTitleElement`** interface corresponds to the element.\n\n"
+ },
+ "svgtransform": {
+ "docs": ""
+ },
+ "svgtransformlist": {
+ "docs": ""
+ },
+ "svgtrefelement": {
+ "docs": "\n\nThe **`SVGTRefElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "svgtspanelement": {
+ "docs": "\n\nThe **`SVGTSpanElement`** interface represents a element.\n\n"
+ },
+ "svgunittypes": {
+ "docs": "\n\nThe **`SVGUnitTypes`** interface defines a commonly used set of constants used for reflecting `gradientUnits`, `patternContentUnits` and other similar attributes.\n\n"
+ },
+ "svguseelement": {
+ "docs": ""
+ },
+ "svgviewelement": {
+ "docs": "\n\nThe **`SVGViewElement`** interface provides access to the properties of elements, as well as methods to manipulate them.\n\n"
+ },
+ "svgvkernelement": {
+ "docs": "\n\nThe **`SVGVKernElement`** interface corresponds to the elements.\n\nObject-oriented access to the attributes of the element via the SVG DOM is not possible.\n\n"
+ },
+ "syncevent": {
+ "docs": "\n\nThe **`SyncEvent`** interface represents a sync action that is dispatched on the [ServiceWorkerGlobalScope] of a ServiceWorker.\n\nThis interface inherits from the [ExtendableEvent] interface.\n\n",
+ "properties": {
+ "lastchance": "\n\nThe **`SyncEvent.lastChance`** read-only property of the\n[SyncEvent] interface returns `true` if the user agent will not\nmake further synchronization attempts after the current attempt. This is the value\npassed in the `lastChance` parameter of the\n[SyncEvent.SyncEvent] constructor.",
+ "tag": "\n\nThe **`SyncEvent.tag`** read-only property of the\n[SyncEvent] interface returns the developer-defined identifier for\nthis `SyncEvent`. This is the value passed in the `tag` parameter\nof the [SyncEvent.SyncEvent] constructor."
+ }
+ },
+ "syncmanager": {
+ "docs": "\n\nThe **`SyncManager`** interface of the [ServiceWorker API](/en-US/docs/Web/API/Service_Worker_API) provides an interface for registering and listing sync registrations.",
+ "properties": {
+ "gettags": "\n\nThe **`SyncManager.getTags`** method of the\n[SyncManager] interface returns a list of developer-defined identifiers for\n`SyncManager` registrations.",
+ "register": "\n\nThe **`SyncManager.register`** method of the [SyncManager] interface registers a synchronization event, triggering a [ServiceWorkerGlobalScope.sync_event] event inside the associated service worker as soon as network connectivity is available."
+ }
+ },
+ "taskattributiontiming": {
+ "docs": "\n\nThe **`TaskAttributionTiming`** interface returns information about the work involved in a long task and its associate frame context. The frame context, also called the container, is the iframe, embed or object that is being implicated, on the whole, for a long task.\n\nYou usually work with `TaskAttributionTiming` objects when observing [long tasks](/en-US/docs/Web/API/PerformanceLongTaskTiming).\n\n`TaskAttributionTiming` inherits from [PerformanceEntry].\n\n",
+ "properties": {
+ "containerid": "\n\nThe **`containerId`** readonly property of the [TaskAttributionTiming] interface returns the container's `id`\nattribute. A container is the iframe, embed or object etc. that is being implicated, on the whole, for a long task.",
+ "containername": "\n\nThe **`containerName`** readonly property of the [TaskAttributionTiming] interface returns the container's `name`\nattribute. A container is the iframe, embed or object etc. that is being implicated, on the whole, for a long task.",
+ "containersrc": "\n\nThe **`containerSrc`** readonly property of the [TaskAttributionTiming] interface returns the container's `src`\nattribute. A container is the iframe, embed or object etc. that is being implicated, on the whole, for a long task.",
+ "containertype": "\n\nThe **`containerType`** readonly property of the [TaskAttributionTiming] interface returns the type of the container, one of `iframe`, `embed`, or `object`.",
+ "tojson": "\n\nThe **`toJSON()`** method of the [TaskAttributionTiming] interface is a ; it returns a JSON representation of the [TaskAttributionTiming] object."
+ }
+ },
+ "taskcontroller": {
+ "docs": "\n\nThe **`TaskController`** interface of the [Prioritized Task Scheduling API](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API) represents a controller object that can be used to both abort and change the [priority](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#task_priorities) of one or more prioritized tasks.\nIf there is no need to change task priorities, then [AbortController] can be used instead.\n\nA new `TaskController` instance is created using the [TaskController.TaskController] constructor, optionally specifying a [priority](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#task_priorities) for its associated signal (a [TaskSignal]).\nIf not specified, the signal will have a priority of [`\"user-visible\"`](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#user-visible) by default.\n\nThe controller's signal can be passed as an argument to the [Scheduler.postTask] method for one or more tasks.\nFor [mutable tasks](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#mutable_and_immutable_task_priority) (only) the task is initialized with the signal priority, and can later be changed by calling [TaskController.setPriority].\nFor immutable tasks, any priority initialized or set by the controller is ignored.\n\nTasks can be aborted by calling [AbortController.abort] on the controller.\n\n",
+ "properties": {
+ "setpriority": "\n\nThe **`setPriority()`** method of the [TaskController] interface can be called to set a new [priority](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#task_priorities) for this controller's [`signal`](/en-US/docs/Web/API/TaskController#taskcontroller.signal).\nIf a prioritized task is [configured](/en-US/docs/Web/API/Scheduler/postTask#signal) to use the signal, this will also change the task priority.\n\nObservers are notified of priority changes by dispatching a [`prioritychange`](/en-US/docs/Web/API/TaskSignal/prioritychange_event) event.\nThe method will only notify if the priority actually changes (the event is not fired if the priority would not be changed by the call).\n\nNote that task priority can only be changed for [tasks with mutable priorities](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#mutable_and_immutable_task_priority).\nIf the task is immutable, the function call is ignored."
+ }
+ },
+ "taskprioritychangeevent": {
+ "docs": "\n\nThe **`TaskPriorityChangeEvent`** is the interface for the [`prioritychange`](/en-US/docs/Web/API/TaskSignal/prioritychange_event) event.\n\n",
+ "properties": {
+ "previouspriority": "\n\nThe readonly **`previousPriority`** property of the [TaskPriorityChangeEvent] interface returns the priority of the corresponding [TaskSignal] before it was changed and this [`prioritychange`](/en-US/docs/Web/API/TaskSignal/prioritychange_event) event was emitted.\n\nThis is the value that was set in the [`TaskPriorityChangeEvent` constructor](/en-US/docs/Web/API/TaskPriorityChangeEvent/TaskPriorityChangeEvent) argument `options.previous`. <!-- link? -->\n\nThe new priority of the task can be read from `event.target.priority`."
+ }
+ },
+ "tasksignal": {
+ "docs": "\n\nThe **`TaskSignal`** interface of the [Prioritized Task Scheduling API](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API) represents a signal object that allows you to communicate with a prioritized task, and abort it or change the [priority](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#task_priorities) (if required) via a [TaskController] object.\n\nAn 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.TaskController] constructor (by default it is `\"user-visible\"`).\nThe priority can be changed by calling [TaskController.setPriority] on the controller.\n\nThe 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](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#mutable_and_immutable_task_priority), 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.\n\n",
+ "properties": {
+ "any_static": "\n\nThe **`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\nWhen the task signal is aborted, its [AbortSignal.reason] property will be set to the reason of the first signal that is aborted.",
+ "priority": "\n\nThe read-only **`priority`** property of the [TaskSignal] interface indicates the signal [priority](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#task_priorities).\n\nThe initial value is set in the associated [TaskController] by specifying it as an argument to the [`TaskController` constructor](/en-US/docs/Web/API/TaskController/TaskController) (by default it is `\"user-visible\"`).\nThe priority of the signal can be changed by calling [TaskController.setPriority] on the associated controller.\n\nFor [tasks with a mutable priority](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#mutable_and_immutable_task_priority), this value is used to set the initial task priority and later to change it.\nTasks with an immutable priority will ignore the value.",
+ "prioritychange_event": "\n\nThe **`prioritychange`** event is sent to a [TaskSignal] if its [priority](/en-US/docs/Web/API/Prioritized_Task_Scheduling_API#task_priorities) is changed."
+ }
+ },
+ "text": {
+ "docs": "\n\nThe **`Text`** interface represents a text [Node] in a DOM tree.\n\nTo understand what a text node is, consider the following document:\n\n```html\n<html lang=\"en\" class=\"e\">\n <head>\n <title>Aliens?</title>\n </head>\n <body>\n Why yes.\n </body>\n</html>\n```\n\nIn that document, there are five text nodes, with the following contents:\n\n- `\"\\n \"` (after the `<head>` start tag, a newline followed by four spaces)\n- `\"Aliens?\"` (the contents of the `title` element)\n- `\"\\n \"` (after the `</head>` end tag, a newline followed by two spaces)\n- `\"\\n \"` (after the `<body>` start tag, a newline followed by two spaces)\n- `\"\\n Why yes.\\n \\n\\n\"` (the contents of the `body` element)\n\nEach of those text nodes is an object that has the properties and methods documented in this article.",
+ "properties": {
+ "assignedslot": "\n\nThe read-only **`assignedSlot`** property of the [Text] interface\nreturns the [HTMLSlotElement] object associated with the element.",
+ "splittext": "\n\nThe **`splitText()`** method of the [Text] interface\nbreaks the [Text] node into two nodes at the specified offset,\nkeeping both nodes in the tree as siblings.\n\nAfter the split, the current node contains all the content\nup to the specified offset point,\nand a newly created node of the same type contains the remaining text.\nThe newly created node is returned to the caller.\nIf the original node had a parent, the new node is inserted as the next sibling of the original node.\nIf the offset is equal to the length of the original node,\nthe newly created node has no data.\n\nSeparated text nodes can be concatenated using the [Node.normalize]\nmethod.",
+ "wholetext": "\n\nThe read-only **`wholeText`** property of the [Text] interface\nreturns the full text of all [Text] nodes logically adjacent to the node.\nThe text is concatenated in document order.\nThis allows specifying any text node and obtaining all adjacent text as a single string.\n\n> **Note:** This is similar to call [Node.normalize] followed by reading the text value,\n> but without modifying the tree."
+ }
+ },
+ "textdecoder": {
+ "docs": "\n\nThe **`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.\n\n",
+ "properties": {
+ "decode": "\n\nThe **`TextDecoder.decode()`** method returns a string containing text decoded from the buffer passed as a parameter.\n\nThe decoding method is defined in the current [TextDecoder] object.\nThis includes the expected encoding of the data, and how decoding errors are handled.",
+ "encoding": "\n\nThe **`TextDecoder.encoding`** read-only property returns a string containing the name of the decoding algorithm used by the specific decoder object.\n\nThe encoding is set by the [constructor](/en-US/docs/Web/API/TextDecoder/TextDecoder) `label` parameter, and defaults to `utf-8`.",
+ "fatal": "\n\nThe **`fatal`** read-only property of the [TextDecoder] interface is a `Boolean` indicating whether the error mode is fatal.\n\nIf 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](/en-US/docs/Web/API/TextDecoder/TextDecoder).",
+ "ignorebom": "\n\nThe **`ignoreBOM`** read-only property of the [TextDecoder] interface is a `Boolean` indicating whether the [byte order mark](https://www.w3.org/International/questions/qa-byte-order-mark) will be included in the output or skipped over."
+ }
+ },
+ "textdecoderstream": {
+ "docs": "\n\nThe **`TextDecoderStream`** interface of the [Encoding API] converts a stream of text in a binary encoding, such as UTF-8 etc., to a stream of strings.\nIt is the streaming equivalent of [TextDecoder].",
+ "properties": {
+ "encoding": "\n\nThe **`encoding`** read-only property of the [TextDecoderStream] interface returns a string containing the name of the encoding algorithm used by the specific decoder.\n\nThe encoding is set by the [constructor](/en-US/docs/Web/API/TextDecoderStream/TextDecoderStream) `label` parameter, and defaults to `utf-8`.",
+ "fatal": "\n\nThe **`fatal`** read-only property of the [TextDecoderStream] interface is a `boolean` indicating if the error mode of the `TextDecoderStream` object is set to `fatal`.\n\nIf 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 [`TextDecoderStream()` constructor](/en-US/docs/Web/API/TextDecoderStream/TextDecoderStream).",
+ "ignorebom": "\n\nThe **`ignoreBOM`** read-only property of the [TextDecoderStream] interface is a `Boolean` indicating whether the [byte order mark](https://www.w3.org/International/questions/qa-byte-order-mark) will be included in the output or skipped over.",
+ "readable": "\n\nThe **`readable`** read-only property of the [TextDecoderStream] interface returns a [ReadableStream].",
+ "writable": "\n\nThe **`writable`** read-only property of the [TextDecoderStream] interface returns a [WritableStream]."
+ }
+ },
+ "textencoder": {
+ "docs": "\n\nThe **`TextEncoder`** interface takes a stream of code points as input and emits a stream of UTF-8 bytes.\n\n",
+ "properties": {
+ "encode": "\n\nThe **`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.",
+ "encodeinto": "\n\nThe **`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.",
+ "encoding": "\n\nThe **`TextEncoder.encoding`** read-only property returns a string containing the name of the encoding algorithm used by the specific encoder.\n\nIt can only have the following value `utf-8`."
+ }
+ },
+ "textencoderstream": {
+ "docs": "\n\nThe **`TextEncoderStream`** interface of the [Encoding API] converts a stream of strings into bytes in the UTF-8 encoding. It is the streaming equivalent of [TextEncoder].",
+ "properties": {
+ "encoding": "\n\nThe **`encoding`** read-only property of the [TextEncoderStream] interface returns a\nstring containing the name of the encoding algorithm used by the current `TextEncoderStream` object.",
+ "readable": "\n\nThe **`readable`** read-only property of the [TextEncoderStream] interface returns a [ReadableStream].",
+ "writable": "\n\nThe **`writable`** read-only property of the [TextEncoderStream] interface returns a [WritableStream]."
+ }
+ },
+ "textmetrics": {
+ "docs": "\n\nThe **`TextMetrics`** interface represents the dimensions of a piece of text in the canvas; a `TextMetrics` instance can be retrieved using the [CanvasRenderingContext2D.measureText] method.",
+ "properties": {
+ "actualboundingboxascent": "\n\nThe read-only **`actualBoundingBoxAscent`** property of the [TextMetrics] interface is a `double` giving the distance from the horizontal line indicated by the [CanvasRenderingContext2D.textBaseline] attribute to the top of the bounding rectangle used to render the text, in CSS pixels.",
+ "actualboundingboxdescent": "\n\nThe read-only `actualBoundingBoxDescent` property of the [TextMetrics] interface is a `double` giving the distance from the horizontal line indicated by the [CanvasRenderingContext2D.textBaseline] attribute to the bottom of the bounding rectangle used to render the text, in CSS pixels.",
+ "actualboundingboxleft": "\n\nThe read-only `actualBoundingBoxLeft` property of the [TextMetrics] interface is a `double` giving the distance parallel to the baseline from the alignment point given by the [CanvasRenderingContext2D.textAlign] property to the left side of the bounding rectangle of the given text, in CSS pixels; positive numbers indicating a distance going left from the given alignment point.",
+ "actualboundingboxright": "\n\nThe read-only `actualBoundingBoxRight` property of the [TextMetrics] interface is a `double` giving the distance parallel to the baseline from the alignment point given by the [CanvasRenderingContext2D.textAlign] property to the right side of the bounding rectangle of the given text, in CSS pixels.",
+ "alphabeticbaseline": "\n\nThe read-only `alphabeticBaseline` property of the [TextMetrics] interface is a `double` giving the distance from the horizontal line indicated by the [CanvasRenderingContext2D.textBaseline] property to the alphabetic baseline of the line box, in CSS pixels.",
+ "emheightascent": "\n\nThe read-only `emHeightAscent` property of the [TextMetrics] interface returns the distance from the horizontal line indicated by the [CanvasRenderingContext2D.textBaseline] property to the top of the _em_ square in the line box, in CSS pixels.",
+ "emheightdescent": "\n\nThe read-only `emHeightDescent` property of the [TextMetrics] interface returns the distance from the horizontal line indicated by the [CanvasRenderingContext2D.textBaseline] property to the bottom of the _em_ square in the line box, in CSS pixels.",
+ "fontboundingboxascent": "\n\nThe read-only `fontBoundingBoxAscent` property of the [TextMetrics] interface returns the distance from the horizontal line indicated by the [CanvasRenderingContext2D.textBaseline] attribute, to the top of the highest bounding rectangle of all the fonts used to render the text, in CSS pixels.",
+ "fontboundingboxdescent": "\n\nThe read-only `fontBoundingBoxDescent` property of the [TextMetrics] interface returns the distance from the horizontal line indicated by the [CanvasRenderingContext2D.textBaseline] attribute to the bottom of the bounding rectangle of all the fonts used to render the text, in CSS pixels.",
+ "hangingbaseline": "\n\nThe read-only `hangingBaseline` property of the [TextMetrics] interface is a `double` giving the distance from the horizontal line indicated by the [CanvasRenderingContext2D.textBaseline] property to the hanging baseline of the line box, in CSS pixels.",
+ "ideographicbaseline": "\n\nThe read-only `ideographicBaseline` property of the [TextMetrics] interface is a `double` giving the distance from the horizontal line indicated by the [CanvasRenderingContext2D.textBaseline] property to the ideographic baseline of the line box, in CSS pixels.",
+ "width": "\n\nThe read-only **`width`** property of the [TextMetrics] interface contains the text's advance width (the width of that inline box) in CSS pixels."
+ }
+ },
+ "texttrack": {
+ "docs": "\n\nThe `TextTrack` interface—part of the API for handling WebVTT (text tracks on media presentations)—describes and controls the text track associated with a particular `track` element.\n\n",
+ "properties": {
+ "activecues": "\n\nThe **`activeCues`** read-only property of the [TextTrack] interface returns a [TextTrackCueList] object listing the currently active cues.",
+ "addcue": "\n\nThe **`addCue()`** method of the [TextTrack] interface adds a new cue to the list of cues.",
+ "cuechange_event": "\n\nThe **`cuechange`** event fires when a [TextTrack] has changed the currently displaying cues. The event is fired on both the `TextTrack` and the [HTMLTrackElement] in which it's being presented, if any.",
+ "cues": "\n\nThe **`cues`** read-only property of the [TextTrack] interface returns a [TextTrackCueList] object containing all of the track's cues.",
+ "id": "\n\nThe **`id`** read-only property of the [TextTrack] interface returns the ID of the track if it has one.",
+ "inbandmetadatatrackdispatchtype": "\n\nThe **`inBandMetadataTrackDispatchType`** read-only property of the [TextTrack] interface returns the text track's in-band metadata dispatch type of the text track represented by the [TextTrack] object.\n\nAn in-band metadata dispatch type is a string extracted from a media resource specifically for in-band metadata tracks. An example of a media resource that might have such tracks is a TV station streaming a broadcast on the web. Text Tracks may be used to include metadata for ad targeting, additional information such as recipe data during a cooking show, or trivia game data during a game show.\n\nThe value of this attribute could be used to attach these tracks to dedicated script modules as they are loaded.",
+ "kind": "\n\nThe **`kind`** read-only property of the [TextTrack] interface returns the kind of text track this object represents. This decides how the track will be handled by a user agent.",
+ "label": "\n\nThe **`label`** read-only property of the [TextTrack] interface returns a human-readable label for the text track, if it is available.",
+ "language": "\n\nThe **`language`** read-only property of the [TextTrack] interface returns the language of the text track.\n\nThis uses the same values as the HTML [`lang`](/en-US/docs/Web/HTML/Global_attributes#lang) attribute. These values are documented in `5646, \"Tags for Identifying Languages (also known as BCP 47)\"`.",
+ "mode": "\n\nThe [TextTrack] interface's\n**`mode`** property is a string specifying and controlling the\ntext track's mode: `disabled`, `hidden`, or\n`showing`. You can read this value to determine the current mode,\nand you can change this value to switch modes.\n\nSafari additionally requires the **`default`**\nboolean attribute to be set to true when implementing your own video player controls in\norder for the subtitles cues to be shown.\n\n### Value\n\nA string which indicates the track's current mode. One of:\n\n- `disabled`\n - : The text track is currently disabled. While the track's presence is exposed in the\n DOM, the user agent is otherwise ignoring it. No cues are active, no events are being\n fired, and the user agent won't attempt to obtain the track's cues. This is the\n default value, unless the text track has the [`default`](/en-US/docs/Web/HTML/Element/track#default)\n Boolean attribute is specified, in which case the default is `showing`.\n- `hidden`\n - : The text track is currently active but the cues aren't being displayed. If the user\n agent hasn't tried to obtain the track's cues yet, it will do so soon (thereby\n populating the track's [TextTrack.cues] property). The user agent is\n keeping a list of the active cues (in the track's [TextTrack.activeCues] property) and events are being fired at the corresponding times, even\n though the text isn't being displayed.\n- `showing`\n - : The text track is currently enabled and is visible. If the track's cues list hasn't\n been obtained yet, it will be soon. The [TextTrack.activeCues] list is being maintained and events are firing at the appropriate\n times; the track's text is also being drawn appropriately based on the styling and the\n track's [TextTrack.kind]. This is the default value if the text\n track's [`default`](/en-US/docs/Web/HTML/Element/track#default) Boolean attribute is specified.",
+ "removecue": "\n\nThe **`removeCue()`** method of the [TextTrack] interface removes a cue from the list of cues."
+ }
+ },
+ "texttrackcue": {
+ "docs": "\n\n**`TextTrackCue`** is an abstract class which is used as the basis for the various derived cue types, such as [VTTCue]; you will instead work with those derived types. These cues represent strings of text presented for some duration of time during the performance of a [TextTrack]. The cue includes the start time (the time at which the text will be displayed) and the end time (the time at which it will be removed from the display), as well as other information.\n\n",
+ "properties": {
+ "endtime": "\n\nThe **`endTime`** property of the [TextTrackCue] interface returns and sets the end time of the cue.",
+ "enter_event": "\n\nThe **`enter`** event fires when a cue becomes active. In the case of subtitles or a caption this is when it displays over the media.",
+ "exit_event": "\n\nThe **`exit`** event fires when a cue stops being active.",
+ "id": "\n\nThe **`id`** property of the [TextTrackCue] interface returns and sets the identifier for this cue.",
+ "pauseonexit": "\n\nThe **`pauseOnExit`** property of the [TextTrackCue] interface returns or sets the flag indicating whether playback of the media should pause when the end of the range to which this cue applies is reached.",
+ "starttime": "\n\nThe **`startTime`** property of the [TextTrackCue] interface returns and sets the start time of the cue.",
+ "track": "\n\nThe **`track`** read-only property of the [TextTrackCue] interface returns the [TextTrack] object that this cue belongs to."
+ }
+ },
+ "texttrackcuelist": {
+ "docs": "\n\nThe **`TextTrackCueList`** array-like object represents a dynamically updating list of [TextTrackCue] objects.\n\nThis interface has no constructor. Retrieve an instance of this object with [TextTrack.cues] which returns all of the cues in a [TextTrack] object.",
+ "properties": {
+ "getcuebyid": "\n\nThe **`getCueById()`** method of the [TextTrackCueList] interface returns the first [VTTCue] in the list represented by the `TextTrackCueList` object whose identifier matches the value of `id`.",
+ "length": "\n\nThe **`length`** read-only property of the [TextTrackCueList] interface returns the number of cues in the list."
+ }
+ },
+ "texttracklist": {
+ "docs": "\n\nThe **`TextTrackList`** interface is used to represent a list of the text tracks defined by the `track` element, with each track represented by a separate [textTrack] object in the list.\n\nRetrieve an instance of this object with the [HTMLMediaElement.textTracks] property of an [HTMLMediaElement] object.\n\nFor a given [HTMLMediaElement] object _media_, the individual tracks can be accessed using:\n\n- `media.TextTracks[n]`, to get the n-th text track from the object's list of text tracks\n\n- the `media.textTracks`.[`getTrackById()`](/en-US/docs/Web/API/TextTrackList/getTrackById) method\n\n",
+ "properties": {
+ "addtrack_event": "\n\nThe **`addtrack`** event is fired when a track is added to a [`TextTrackList`](/en-US/docs/Web/API/TextTrackList).",
+ "change_event": "\n\nThe **`change`** event is fired when a text track is made active or inactive, or a [TextTrackList] is otherwise changed.",
+ "gettrackbyid": "\n\nThe **[TextTrackList]** method\n**`getTrackById()`** returns the first\n[TextTrack] object from the track list whose\n[`id`](/en-US/docs/Web/HTML/Global_attributes/id) matches the\nspecified string. This lets you find a specified track if you know its ID\nstring.",
+ "length": "\n\nThe read-only **[TextTrackList]**\nproperty **`length`** returns the number of entries in the\n`TextTrackList`, each of which is a [TextTrack] representing\none track in the media element.\n\nA value of 0 indicates that there are no text\ntracks in the media.",
+ "removetrack_event": "\n\nThe **`removetrack`** event is fired when a track is removed from a [`TextTrackList`](/en-US/docs/Web/API/TextTrackList)."
+ }
+ },
+ "timeevent": {
+ "docs": "\n\nThe **`TimeEvent`** interface, a part of [SVG SMIL](/en-US/docs/Web/SVG/SVG_animation_with_SMIL) animation, provides specific contextual information associated with Time events.\n\n"
+ },
+ "timeranges": {
+ "docs": "\n\nWhen loading a media resource for use by an `audio` or `video` element, the **`TimeRanges`** interface is used for representing the time ranges of the media resource that have been buffered, the time ranges that have been played, and the time ranges that are seekable.\n\nA `TimeRanges` object includes one or more ranges of time, each specified by a starting time offset and an ending time offset. You reference each time range by using the `start()` and `end()` methods, passing the index number of the time range you want to retrieve.",
+ "properties": {
+ "end": "\n\nThe **`end()`** method of the [TimeRanges] interface returns the time offset at which a specified time range ends.",
+ "length": "\n\nThe **`TimeRanges.length`** read-only property returns the\nnumber of ranges in the object.",
+ "start": "\n\nThe **`start()`** method of the [TimeRanges] interface returns the time offset at which a specified time range begins."
+ }
+ },
+ "toggleevent": {
+ "docs": "\n\nThe **`ToggleEvent`** interface represents an event notifying the user when a [popover element](/en-US/docs/Web/API/Popover_API)'s state toggles between showing and hidden.\n\nIt is the event object for the `HTMLElement` [HTMLElement.beforetoggle_event] and [HTMLElement.toggle_event] events, which fire on popovers when they transition between showing and hidden (before and after, respectively).\n\n> **Note:** `ToggleEvent` is unrelated to the `HTMLDetailsElement` [HTMLDetailsElement.toggle_event] event, which fires on a `details` element when its `open`/`closed` state is toggled. Its event object is a generic [Event].",
+ "properties": {
+ "newstate": "\n\nThe **`newState`** read-only property of the [ToggleEvent] interface is a string representing the state the element is transitioning to.",
+ "oldstate": "\n\nThe **`oldState`** read-only property of the [ToggleEvent] interface is a string representing the state the element is transitioning from."
+ }
+ },
+ "touch": {
+ "docs": "\n\nThe **`Touch`** interface represents a single contact point on a touch-sensitive device. The contact point is commonly a finger or stylus and the device may be a touchscreen or trackpad.\n\nThe [Touch.radiusX], [Touch.radiusY], and [Touch.rotationAngle] describe the area of contact between the user and the screen, the _touch area_. This can be helpful when dealing with imprecise pointing devices such as fingers. These values are set to describe an ellipse that as closely as possible matches the entire area of contact (such as the user's fingertip).\n\n> **Note:** Many of the properties' values are hardware-dependent; for example, if the device doesn't have a way to detect the amount of pressure placed on the surface, the `force` value will always be 0. This may also be the case for `radiusX` and `radiusY`; if the hardware reports only a single point, these values will be 1.",
+ "properties": {
+ "clientx": "\n\nThe `Touch.clientX` read-only property returns the X coordinate of the touch\npoint relative to the viewport, not including any scroll offset.",
+ "clienty": "\n\nThe **`Touch.clientY`** read-only property returns the Y\ncoordinate of the touch point relative to the browser's viewport, not including any\nscroll offset.",
+ "force": "\n\nThe **`Touch.force`** read-only property returns the amount of\npressure the user is applying to the touch surface for a [Touch] point.",
+ "identifier": "\n\nThe **`Touch.identifier`** returns a value uniquely identifying\nthis point of contact with the touch surface. This value remains consistent for every\nevent involving this finger's (or stylus's) movement on the surface until it is lifted\noff the surface.",
+ "pagex": "\n\nThe **`Touch.pageX`** read-only property returns the X\ncoordinate of the touch point relative to the viewport, including any scroll offset.",
+ "pagey": "\n\nThe **`Touch.pageY`** read-only property returns the Y\ncoordinate of the touch point relative to the viewport, including any scroll offset.",
+ "radiusx": "\n\nThe **`radiusX`** read-only property of the [Touch] interface returns the X radius of the ellipse that most closely circumscribes the area of contact with the touch surface. The value is in CSS pixels of the same scale as [Touch.screenX].\n\nThis value, in combination with [Touch.radiusY] and [Touch.rotationAngle] constructs an ellipse that approximates the size and shape of the area of contact between the user and the screen. This may be a relatively large ellipse representing the contact between a fingertip and the screen or a small area representing the tip of a stylus, for example.",
+ "radiusy": "\n\nThe **`radiusY`** read-only property of the [Touch] interface returns the Y radius of the ellipse that most closely circumscribes the area of contact with the touch surface. The value is in CSS pixels of the same scale as [Touch.screenX].\n\nThis value, in combination with [Touch.radiusX] and [Touch.rotationAngle] constructs an ellipse that approximates the size and shape of the area of contact between the user and the screen. This may be a large ellipse representing the contact between a fingertip and the screen or a small one representing the tip of a stylus, for example.",
+ "rotationangle": "\n\nThe **`rotationAngle`** read-only property of the [Touch] interface returns the rotation angle, in degrees, of the contact area ellipse defined by [Touch.radiusX] and [Touch.radiusY]. The value may be between 0 and 90. Together, these three values describe an ellipse that approximates the size and shape of the area of contact between the user and the screen. This may be a relatively large ellipse representing the contact between a fingertip and the screen or a small area representing the tip of a stylus, for example.",
+ "screenx": "\n\nReturns the X coordinate of the touch point relative to the screen, not including any scroll offset.",
+ "screeny": "\n\nReturns the Y coordinate of the touch point relative to the screen, not including any scroll offset.",
+ "target": "\n\nThe read-only **`target`** property of the `Touch` interface returns the ([EventTarget]) on which the touch contact started when it was first placed on the surface, even if the touch point has since moved outside the interactive area of that element or even been removed from the document. Note that if the target element is removed from the document, events will still be targeted at it, and hence won't necessarily bubble up to the window or document anymore. If there is any risk of an element being removed while it is being touched, the best practice is to attach the touch listeners directly to the target."
+ }
+ },
+ "touchevent": {
+ "docs": "\n\nThe **`TouchEvent`** interface represents an [UIEvent] which is sent when the state of contacts with a touch-sensitive surface changes. This surface can be a touch screen or trackpad, for example. The event can describe one or more points of contact with the screen and includes support for detecting movement, addition and removal of contact points, and so forth.\n\nTouches are represented by the [Touch] object; each touch is described by a position, size and shape, amount of pressure, and target element. Lists of touches are represented by [TouchList] objects.\n\n",
+ "properties": {
+ "altkey": "\n\nThe read-only **`altKey`** property of the [TouchEvent] interface returns a boolean value indicating whether or not the <kbd>alt</kbd> (Alternate) key is enabled when the touch event is created. If the <kbd>alt</kbd> key is enabled, the attribute's value is `true`. Otherwise, it is `false`.\n\nThis property is .",
+ "changedtouches": "\n\nThe **`changedTouches`** read-only property is a [TouchList] whose touch points ([Touch] objects) varies depending on the event type, as follows:\n\n- For the [Element/touchstart_event] event, it is a list of the touch points that became active with the current event.\n- For the [Element/touchmove_event] event, it is a list of the touch points that have changed since the last event.\n- For the [Element/touchend_event] event, it is a list of the touch points that have been removed from the surface (that is, the set of touch points corresponding to fingers no longer touching the surface).",
+ "ctrlkey": "\n\nThe read-only **`ctrlKey`** property of the [TouchEvent] interface returns a boolean value indicating whether the <kbd>control</kbd> (Control) key is enabled when the touch event is created. If this key is enabled, the attribute's value is `true`. Otherwise, it is `false`.\n\nThis property is .",
+ "metakey": "\n\nThe read-only **`metaKey`** property of the [TouchEvent] interface returns a boolean value indicating whether or not the <kbd>Meta</kbd> key is enabled when the touch event is created. If this key is enabled, the attribute's value is `true`. Otherwise, it is `false`.\n\nThis property is .\n\n> **Note:** On Macintosh keyboards, this is the <kbd>⌘ Command</kbd> key. On Windows keyboards, this is the Windows key (<kbd>⊞</kbd>).",
+ "shiftkey": "\n\nThe read-only **`shiftKey`** property of the `TouchEvent` interface returns a boolean value indicating whether or not the <kbd>shift</kbd> key is enabled when the touch event is created. If this key is enabled, the attribute's value is `true`. Otherwise, it is `false`.",
+ "targettouches": "\n\nThe **`targetTouches`** read-only property is a [TouchList] listing all the [Touch] objects for touch points that are still in contact with the touch surface **and** whose [Element/touchstart_event] event occurred inside the same target [element] as the current target element.",
+ "touches": "\n\n**`touches`** is a read-only [TouchList] listing\nall the [Touch] objects for touch points that are currently in contact\nwith the touch surface, regardless of whether or not they've changed or what their\ntarget element was at [Element/touchstart_event] time.\n\nYou can think of it as how many separate fingers are able to be identified as touching\nthe screen.\n\n> **Note:** Touches inside the array are not necessarily ordered by order of occurrences (the\n> i-th element in the array being the i-th touch that happened). You cannot assume a specific order. To determine the order of occurrences of the touches, use the `touch` object IDs."
+ }
+ },
+ "touchlist": {
+ "docs": "\n\nThe **`TouchList`** interface represents a list of contact points on a touch surface. For example, if the user has three fingers on the touch surface (such as a screen or trackpad), the corresponding `TouchList` object would have one [Touch] object for each finger, for a total of three entries.\n\n> **Note:** This interface was an [attempt to create an unmodifiable list](https://stackoverflow.com/questions/74630989/why-use-domstringlist-rather-than-an-array/74641156#74641156) and only continues to be supported to not break code that's already using it. Modern APIs use types that wrap around ECMAScript array types instead, so you can treat them like ECMAScript arrays, and at the same time impose additional semantics on their usage (such as making their items read-only).",
+ "properties": {
+ "item": "\n\nThe **`item()`** method returns the [Touch]\nobject at the specified index in the [TouchList].",
+ "length": "\n\nThe **`length`** read-only property indicates the number of\nitems (touch points) in a given [TouchList]."
+ }
+ },
+ "trackevent": {
+ "docs": "\n\nThe **`TrackEvent`** interface, which is part of the HTML DOM specification, is used for events which represent changes to a set of available tracks on an HTML media element; these events are `addtrack` and `removetrack`.\n\nIt's important not to confuse `TrackEvent` with the [RTCTrackEvent] interface, which is used for tracks which are part of an [RTCPeerConnection].\n\nEvents based on `TrackEvent` are always sent to one of the media track list types:\n\n- Events involving video tracks are always sent to the [VideoTrackList] found in [HTMLMediaElement.videoTracks]\n- Events involving audio tracks are always sent to the [AudioTrackList] specified in [HTMLMediaElement.audioTracks]\n- Events affecting text tracks are sent to the [TextTrackList] object indicated by [HTMLMediaElement.textTracks].\n\n",
+ "properties": {
+ "track": "\n\nThe read-only **`track`** property of\nthe [TrackEvent] interface specifies the media track object to which the\nevent applies.\n\nThe media track will be an [AudioTrack],\n[VideoTrack], or [TextTrack] object."
+ }
+ },
+ "transformstream": {
+ "docs": "\n\nThe **`TransformStream`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) represents a concrete implementation of the [pipe chain](/en-US/docs/Web/API/Streams_API/Concepts#pipe_chains) _transform stream_ concept.\n\nIt may be passed to the [ReadableStream.pipeThrough] method in order to transform a stream of data from one format into another.\nFor example, it might be used to decode (or encode) video frames, decompress data, or convert the stream from XML to JSON.\n\nA transformation algorithm may be provided as an optional argument to the object constructor.\nIf not supplied, data is not modified when piped through the stream.\n\n`TransformStream` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).",
+ "properties": {
+ "readable": "\n\nThe **`readable`** read-only property of the [TransformStream] interface returns the [ReadableStream] instance controlled by this `TransformStream`.",
+ "writable": "\n\nThe **`writable`** read-only property of the [TransformStream] interface returns the [WritableStream] instance controlled by this `TransformStream`."
+ }
+ },
+ "transformstreamdefaultcontroller": {
+ "docs": "\n\nThe **`TransformStreamDefaultController`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) provides methods to manipulate the associated [ReadableStream] and [WritableStream].\n\nWhen constructing a [TransformStream], the `TransformStreamDefaultController` is created. It therefore has no constructor. The way to get an instance of `TransformStreamDefaultController` is via the callback methods of [TransformStream.TransformStream].",
+ "properties": {
+ "desiredsize": "`Streams API`\n\nThe **`desiredSize`** read-only property of the [TransformStreamDefaultController] interface returns the desired size to fill the queue of the associated [ReadableStream].\n\nThe internal queue of a `ReadableStream` contains chunks that have been enqueued, but not yet read. The browser determines the **desired size** to fill the stream, and it is this value returned by the `desiredSize` property.\n\nIf the `desiredSize` is `0` then the queue is full. Therefore you can use this information to [manually apply backpressure](/en-US/docs/Web/API/Streams_API/Concepts#backpressure) to manage the queue.",
+ "enqueue": "`Streams API`\n\nThe **`enqueue()`** method of the [TransformStreamDefaultController] interface enqueues the given chunk in the readable side of the stream.\n\nFor more information on readable streams and chunks see [Using Readable Streams](/en-US/docs/Web/API/Streams_API/Using_readable_streams).",
+ "error": "`Streams API`\n\nThe **`error()`** method of the [TransformStreamDefaultController] interface errors both sides of the stream. Any further interactions with it will fail with the given error message, and any chunks in the queue will be discarded.",
+ "terminate": "`Streams API`\n\nThe **`terminate()`** method of the [TransformStreamDefaultController] interface closes the readable side and errors the writable side of the stream."
+ }
+ },
+ "transitionevent": {
+ "docs": "\n\nThe **`TransitionEvent`** interface represents events providing information related to [transitions](/en-US/docs/Web/CSS/CSS_transitions/Using_CSS_transitions).\n\n",
+ "properties": {
+ "elapsedtime": "\n\nThe **`TransitionEvent.elapsedTime`** read-only property is a\n`float` giving the amount of time the animation has been running, in seconds,\nwhen this event fired. This value is not affected by the \nproperty.",
+ "propertyname": "\n\nThe **`propertyName`** read-only property of [TransitionEvent] objects is a string containing the name of the CSS property associated with the transition.",
+ "pseudoelement": "\n\nThe **`TransitionEvent.pseudoElement`** read-only property is a\nstring, starting with `'::'`, containing the name of the [pseudo-element](/en-US/docs/Web/CSS/Pseudo-elements) the animation runs on.\nIf the transition doesn't run on a pseudo-element but on the element, an empty string:\n`''``.`"
+ }
+ },
+ "treewalker": {
+ "docs": "\n\nThe **`TreeWalker`** object represents the nodes of a document subtree and a position within them.\n\nA `TreeWalker` can be created using the [Document.createTreeWalker] method.",
+ "properties": {
+ "currentnode": "\n\nThe **`TreeWalker.currentNode`** property represents the\n[Node] which the [TreeWalker] is currently pointing at.",
+ "filter": "\n\nThe **`TreeWalker.filter`** read-only property returns a\n`NodeFilter` that is the filtering object associated with the\n[TreeWalker].\n\nWhen creating the `TreeWalker`, the filter object is passed in as the third\nparameter, and its method `acceptNode()` is called on every\nsingle node to determine whether or not to accept it.",
+ "firstchild": "\n\nThe **`TreeWalker.firstChild()`** method moves the current\n[Node] to the first _visible_ child of the current node, and returns\nthe found child. If no such child exists, it returns `null` and the current node is not changed.",
+ "lastchild": "\n\nThe **`TreeWalker.lastChild()`** method moves the current\n[Node] to the last _visible_ child of the current node, and returns\nthe found child. If no such child exists, it returns `null` and the current node is not changed.",
+ "nextnode": "\n\nThe **`TreeWalker.nextNode()`** method moves the current\n[Node] to the next _visible_ node in the document order, and returns\nthe found node. If no such node exists, it returns `null` and the current node is not changed.",
+ "nextsibling": "\n\nThe **`TreeWalker.nextSibling()`** method moves the current\n[Node] to its next sibling, if any, and returns the found sibling. If there\nis no such node, it returns `null` and the current node is not changed.",
+ "parentnode": "\n\nThe **`TreeWalker.parentNode()`** method moves the current\n[Node] to the first _visible_ ancestor node in the document order,\nand returns the found node. If no such node exists, or if it is above the\n`TreeWalker`'s _root node_, it returns `null` and the current\nnode is not changed.",
+ "previousnode": "\n\nThe **`TreeWalker.previousNode()`** method moves the current\n[Node] to the previous _visible_ node in the document order, and\nreturns the found node. If no such node\nexists, or if it is before that the _root node_ defined at the object\nconstruction, it returns `null` and the current node is not changed.",
+ "previoussibling": "\n\nThe **`TreeWalker.previousSibling()`** method moves the current\n[Node] to its previous sibling, if any, and returns the found sibling. If\nthere is no such node, it returns `null` and the current node is not changed.",
+ "root": "\n\nThe **`TreeWalker.root`** read-only property returns the node\nthat is the root of what the TreeWalker traverses.",
+ "whattoshow": "\n\nThe **`TreeWalker.whatToShow`** read-only property returns a\nbitmask that indicates the types of\n[nodes](/en-US/docs/Web/API/Node) to show. Non-matching nodes are skipped, but their\nchildren may be included, if relevant. The possible values are:\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th>Constant</th>\n <th>Numerical value</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><code>NodeFilter.SHOW_ALL</code></td>\n <td>\n <code>4294967295</code> (that is the max value of <code>unsigned long</code>)\n </td>\n <td>Shows all nodes.</td>\n </tr>\n <tr>\n <td>\n <code>NodeFilter.SHOW_ATTRIBUTE</code> \n </td>\n <td><code>2</code></td>\n <td>\n Shows attribute [Attr] nodes. This is meaningful\n only when creating a [TreeWalker] with an\n [Attr] node as its root; in this case, it means\n that the attribute node will appear in the first position of the\n iteration or traversal. Since attributes are never children of other\n nodes, they do not appear when traversing over the document tree.\n </td>\n </tr>\n <tr>\n <td>\n <code>NodeFilter.SHOW_CDATA_SECTION</code> \n </td>\n <td><code>8</code></td>\n <td>Shows [CDATASection] nodes.</td>\n </tr>\n <tr>\n <td><code>NodeFilter.SHOW_COMMENT</code></td>\n <td><code>128</code></td>\n <td>Shows [Comment] nodes.</td>\n </tr>\n <tr>\n <td><code>NodeFilter.SHOW_DOCUMENT</code></td>\n <td><code>256</code></td>\n <td>Shows [Document] nodes.</td>\n </tr>\n <tr>\n <td><code>NodeFilter.SHOW_DOCUMENT_FRAGMENT</code></td>\n <td><code>1024</code></td>\n <td>Shows [DocumentFragment] nodes.</td>\n </tr>\n <tr>\n <td><code>NodeFilter.SHOW_DOCUMENT_TYPE</code></td>\n <td><code>512</code></td>\n <td>Shows [DocumentType] nodes.</td>\n </tr>\n <tr>\n <td><code>NodeFilter.SHOW_ELEMENT</code></td>\n <td><code>1</code></td>\n <td>Shows [Element] nodes.</td>\n </tr>\n <tr>\n <td><code>NodeFilter.SHOW_ENTITY</code> </td>\n <td><code>32</code></td>\n <td>Legacy, no more used.</td>\n </tr>\n <tr>\n <td>\n <code>NodeFilter.SHOW_ENTITY_REFERENCE</code>\n \n </td>\n <td><code>16</code></td>\n <td>Legacy, no more used.</td>\n </tr>\n <tr>\n <td>\n <code>NodeFilter.SHOW_NOTATION</code> \n </td>\n <td><code>2048</code></td>\n <td>Legacy, no more used.</td>\n </tr>\n <tr>\n <td><code>NodeFilter.SHOW_PROCESSING_INSTRUCTION</code></td>\n <td><code>64</code></td>\n <td>Shows [ProcessingInstruction] nodes.</td>\n </tr>\n <tr>\n <td><code>NodeFilter.SHOW_TEXT</code></td>\n <td><code>4</code></td>\n <td>Shows [Text] nodes.</td>\n </tr>\n </tbody>\n</table>"
+ }
+ },
+ "trustedhtml": {
+ "docs": "`Trusted Types API`\n\nThe **`TrustedHTML`** interface of the [Trusted Types API] represents a string that a developer can insert into an [injection sink](/en-US/docs/Web/API/Trusted_Types_API#injection_sinks) that will render it as HTML. These objects are created via [TrustedTypePolicy.createHTML] and therefore have no constructor.\n\nThe value of a **TrustedHTML** object is set when the object is created and cannot be changed by JavaScript as there is no setter exposed.",
+ "properties": {
+ "tojson": "`Trusted Types API`\n\nThe **`toJSON()`** method of the [TrustedHTML] interface returns a JSON representation of the stored data.",
+ "tostring": "`Trusted Types API`\n\nThe **`toString()`** method of the [TrustedHTML] interface returns a string which may safely inserted into an injection sink."
+ }
+ },
+ "trustedscript": {
+ "docs": "`Trusted Types API`\n\nThe **`TrustedScript`** interface of the [Trusted Types API] represents a string with an uncompiled script body that a developer can insert into an [injection sink](/en-US/docs/Web/API/Trusted_Types_API#injection_sinks) that might execute the script. These objects are created via [TrustedTypePolicy.createScript] and therefore have no constructor.\n\nThe value of a **TrustedScript** object is set when the object is created and cannot be changed by JavaScript as there is no setter exposed.",
+ "properties": {
+ "tojson": "`Trusted Types API`\n\nThe **`toJSON()`** method of the [TrustedScript] interface returns a JSON representation of the stored data.",
+ "tostring": "`Trusted Types API`\n\nThe **`toString()`** method of the [TrustedScript] interface returns a string which may safely inserted into an [injection sink](/en-US/docs/Web/API/Trusted_Types_API#injection_sinks)."
+ }
+ },
+ "trustedscripturl": {
+ "docs": "`Trusted Types API`\n\nThe **`TrustedScriptURL`** interface of the [Trusted Types API] represents a string that a developer can insert into an [injection sink](/en-US/docs/Web/API/Trusted_Types_API#injection_sinks) that will parse it as a URL of an external script. These objects are created via [TrustedTypePolicy.createScriptURL] and therefore have no constructor.\n\nThe value of a **TrustedScriptURL** object is set when the object is created and cannot be changed by JavaScript as there is no setter exposed.",
+ "properties": {
+ "tojson": "`Trusted Types API`\n\nThe **`toJSON()`** method of the [TrustedScriptURL] interface returns a JSON representation of the stored data.",
+ "tostring": "`Trusted Types API`\n\nThe **`toString()`** method of the [TrustedScriptURL] interface returns a string which may safely inserted into an [injection sink](/en-US/docs/Web/API/Trusted_Types_API#injection_sinks)."
+ }
+ },
+ "trustedtypepolicy": {
+ "docs": "`Trusted Types API`\n\nThe **`TrustedTypePolicy`** interface of the [Trusted Types API] defines a group of functions which create [TrustedType] objects.\n\nA `TrustedTypePolicy` object is created by [TrustedTypePolicyFactory.createPolicy] to define a policy for enforcing security rules on input. Therefore, `TrustedTypePolicy` has no constructor.",
+ "properties": {
+ "createhtml": "`Trusted Types API`\n\nThe **`createHTML()`** method of the [TrustedTypePolicy] interface creates a [TrustedHTML] object using a policy created by [TrustedTypePolicyFactory.createPolicy].",
+ "createscript": "`Trusted Types API`\n\nThe **`createScript()`** method of the [TrustedTypePolicy] interface creates a [TrustedScript] object using a policy created by [TrustedTypePolicyFactory.createPolicy].",
+ "createscripturl": "`Trusted Types API`\n\nThe **`createScriptURL()`** method of the [TrustedTypePolicy] interface creates a [TrustedScriptURL] object using a policy created by [TrustedTypePolicyFactory.createPolicy].",
+ "name": "`Trusted Types API`\n\nThe **`name`** read-only property of the [TrustedTypePolicy] interface returns the name of the policy."
+ }
+ },
+ "trustedtypepolicyfactory": {
+ "docs": "`Trusted Types API`\n\nThe **`TrustedTypePolicyFactory`** interface of the [Trusted Types API] creates policies and allows the verification of Trusted Type objects against created policies.",
+ "properties": {
+ "createpolicy": "`Trusted Types API`\n\nThe **`createPolicy()`** method of the [TrustedTypePolicyFactory] interface creates a [TrustedTypePolicy] object that implements the rules passed as `policyOptions`.\n\n### The default policy\n\nIn Chrome a policy with a name of \"default\" creates a special policy that will be used if a string (rather than a Trusted Type object) is passed to an injection sink. This can be used in a transitional phase while moving from an application that inserted strings into injection sinks.\n\n> **Note:** The above behavior is not yet settled in the specification and may change in future.\n\n> **Warning:** A lax default policy could defeat the purpose of using Trusted Types, and therefore should be defined with strict rules to ensure it cannot be used to run dangerous code.",
+ "defaultpolicy": "`Trusted Types API`\n\nThe **`defaultPolicy`** read-only property of the [TrustedTypePolicyFactory] interface returns the default [TrustedTypePolicy] or null if this is empty.\n\n> **Note:** Information about the creation and use of default policies can be found in the [`createPolicy()`](/en-US/docs/Web/API/TrustedTypePolicyFactory/createPolicy#default_policy) documentation.",
+ "emptyhtml": "`Trusted Types API`\n\nThe **`emptyHTML`** read-only property of the [TrustedTypePolicyFactory] interface returns a [TrustedHTML] object containing an empty string.\n\nThis object can be used when the application requires an empty string to be inserted into an injection sink.",
+ "emptyscript": "`Trusted Types API`\n\nThe **`emptyScript`** read-only property of the [TrustedTypePolicyFactory] interface returns a [TrustedScript] object containing an empty string.\n\nThis object can be used when the application requires an empty string to be inserted into an injection sink which is expecting a `TrustedScript` object.",
+ "getattributetype": "`Trusted Types API`\n\nThe **`getAttributeType()`** method of the [TrustedTypePolicyFactory] interface allows web developers to check if a Trusted Type is required for an element, and if so which Trusted Type is used.",
+ "getpropertytype": "`Trusted Types API`\n\nThe **`getPropertyType()`** method of the [TrustedTypePolicyFactory] interface allows web developers to check if a Trusted Type is required for an element's property.",
+ "ishtml": "`Trusted Types API`\n\nThe **`isHTML()`** method of the [TrustedTypePolicyFactory] interface returns true if it is passed a valid [TrustedHTML] object.\n\n> **Note:** The purpose of the functions `isHTML()`, [TrustedTypePolicyFactory.isScript], and [TrustedTypePolicyFactory.isScriptURL] is to check if the object is a valid TrustedType object, created by a configured policy.",
+ "isscript": "`Trusted Types API`\n\nThe **`isScript()`** method of the [TrustedTypePolicyFactory] interface returns true if it is passed a valid [TrustedScript] object.\n\n> **Note:** The purpose of the functions `isScript()`, [TrustedTypePolicyFactory.isHTML], and [TrustedTypePolicyFactory.isScriptURL] is to check if the object is a valid TrustedType object, created by a configured policy.",
+ "isscripturl": "`Trusted Types API`\n\nThe **`isScriptURL()`** method of the [TrustedTypePolicyFactory] interface returns true if it is passed a valid [TrustedScriptURL] object.\n\n> **Note:** The purpose of the functions `isScriptURL()`, [TrustedTypePolicyFactory.isHTML], and [TrustedTypePolicyFactory.isScript] is to check if the object is a valid TrustedType object, created by a configured policy."
+ }
+ },
+ "uievent": {
+ "docs": "\n\nThe **`UIEvent`** interface represents simple user interface events.\n\n`UIEvent` derives from [Event]. Although the [UIEvent.initUIEvent] method is kept for backward compatibility, you should create a `UIEvent` object using the [UIEvent.UIEvent] constructor.\n\nSeveral interfaces are direct or indirect descendants of this one: [MouseEvent], [TouchEvent], [FocusEvent], [KeyboardEvent], [WheelEvent], [InputEvent], and [CompositionEvent].\n\n",
+ "properties": {
+ "detail": "\n\nThe **`UIEvent.detail`** read-only property, when non-zero, provides the current (or next, depending on the event) click count.\n\nFor [Element/click_event] or [Element/dblclick_event] events, `UIEvent.detail` is the current click count.\n\nFor [Element/mousedown_event] or [Element/mouseup_event] events, `UIEvent.detail` is _1 plus_ the current click count.\n\nFor all other [UIEvent] objects, `UIEvent.detail` is always zero.",
+ "inituievent": " \n\nThe **`UIEvent.initUIEvent()`** method initializes a UI event\nonce it's been created.\n\nEvents 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:** Do not use this method anymore as it is deprecated.\n>\n> Instead use specific event constructors, like [UIEvent.UIEvent]. The page on [Creating and triggering events](/en-US/docs/Web/Events/Creating_and_triggering_events) gives more information about the way to use these.",
+ "sourcecapabilities": "\n\nThe **`sourceCapabilities`** read-only property of the [UIEvent] interface returns\nan instance of the [InputDeviceCapabilities] interface which provides\ninformation about the physical device responsible for generating a touch event. If no\ninput device was responsible for the event, it returns `null`.\n\nWhen a single user interaction with an input device generates a series of different\ninput events, the `sourceCapabilities` property for all of them will point to\nthe same instance of `InputDeviceCapabilities`. For example, when a user\nlifts their finger off of a touchscreen, several UIEvents may be generated including\n`touchend`, `mousedown`, `click`, and\n`focus`. All of these events must have the same\n`sourceCapabilities` representing the touchscreen.\n\nA device is considered \"responsible\" for an event only when that interaction is part of\nthe abstraction provided by the web platform. For example, many user agents allow a\nwindow to be resized with a mouse or a keyboard, but this detail is not exposed to the\nweb platform in any way, and so the sourceCapabilities of a resize event will typically\nbe null.",
+ "view": "\n\nThe **`UIEvent.view`** read-only property returns the\n object from which the event was generated. In browsers, this\nis the [Window] object the event happened in.",
+ "which": "\n\nThe **`UIEvent.which`** read-only property of the [UIEvent] interface returns a number that indicates which button was pressed on the mouse, or the numeric `keyCode` or the character code (`charCode`) of the key pressed on the keyboard."
+ }
+ },
+ "url": {
+ "docs": "\n\nThe **`URL`** interface is used to parse, construct, normalize, and encode . It works by providing properties which allow you to easily read and modify the components of a URL.\n\nYou normally create a new `URL` object by specifying the URL as a string when calling its constructor, or by providing a relative URL and a base URL. You can then easily read the parsed components of the URL or make changes to the URL.\n\nIf a browser doesn't yet support the [URL.URL] constructor, you can access a URL object using the [Window] interface's [URL] property. Be sure to check to see if any of your target browsers require this to be prefixed.\n\n",
+ "properties": {
+ "canparse_static": "\n\nThe **`URL.canParse()`** static method of the [URL] interface returns a boolean indicating whether or not an absolute URL, or a relative URL combined with a base URL, are parsable and valid.\n\nThis is a fast and easy alternative to constructing a `URL` within a [try...catch](/en-US/docs/Web/JavaScript/Reference/Statements/try...catch) block.\nIt returns `true` for the same values for which the [`URL()` constructor](/en-US/docs/Web/API/URL/URL) would succeed, and `false` for the values that would cause the constructor to throw.",
+ "createobjecturl_static": "\n\nThe **`URL.createObjectURL()`** static\nmethod creates a string containing a URL representing the object\ngiven in the parameter.\n\nThe URL lifetime is tied to the [document]\nin the window on which it was created. The new object URL represents the specified\n[File] object or [Blob] object.\n\nTo release an object URL, call [URL.revokeObjectURL_static].\n\n`notservice`\n\n> **Note:** This feature is _not_ available in [Service Workers](/en-US/docs/Web/API/Service_Worker_API) due to its\n> potential to create memory leaks.",
+ "hash": "\n\nThe **`hash`** property of the\n[URL] interface is a string containing a\n`'#'` followed by the fragment identifier of the URL.\n\nThe fragment is not [URL decoded](https://en.wikipedia.org/wiki/URL_encoding). If the URL does not\nhave a fragment identifier, this property contains an empty string — `\"\"`.\n\n",
+ "host": "\n\nThe **`host`** property of the [URL] interface is\na string containing the host, that is the [URL.hostname], and then, if the of the URL is nonempty, a\n`':'`, followed by the [URL.port] of the URL.\n\n",
+ "hostname": "\n\nThe **`hostname`** property of the [URL] interface\nis a string containing the of the URL.\n\n",
+ "href": "\n\nThe **`href`** property of the [URL] interface is\na string containing the whole URL.\n\n",
+ "origin": "\n\nThe **`origin`** read-only property of\nthe [URL] interface returns a string containing the\nUnicode serialization of the origin of the represented URL.\n\nThe exact structure\nvaries depending on the type of URL:\n\n- For `http` or `https` URLs, the scheme followed by\n `'://'`, followed by the domain, followed by `':'`, followed by\n the port (if explicitly specified, unless it is the default port - `80` and `443` respectively).\n- For `file:` URLs, the value is browser dependent.\n- for `blob:` URLs, the origin of the URL following `blob:` will\n be used. For example, `\"blob:https://mozilla.org\"` will be returned as\n `\"https://mozilla.org\".`\n\n",
+ "password": "\n\nThe **`password`** property of the [URL] interface\nis a string containing the password specified before the domain name.\n\nIf it is set without first setting the [URL.username]\nproperty, it silently fails.\n\n",
+ "pathname": "\n\nThe **`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. If the URL has no path segments, the value of its `pathname` property will be the empty string.\n\nURLs such as `https` and `http` URLs that have [hierarchical schemes](https://www.rfc-editor.org/rfc/rfc3986#section-1.2.3) (which the URL standard calls \"[special schemes](https://url.spec.whatwg.org/#special-scheme)\") always have at least one (invisible) path segment: the empty string. Thus the `pathname` value for such \"special scheme\" URLs can never be the empty string, but will instead always have a least one `/` character.\n\nFor example, the URL `https://developer.mozilla.org` has just one path segment: the empty string, so its `pathname` value is constructed by prefixing a `/` character to the empty string.\n\nSome systems define the term _slug_ to mean the final segment of a non-empty path if it identifies a page in human-readable keywords. For example, the URL `https://example.org/articles/this-that-other-outre-collection` has `this-that-other-outre-collection` as its slug.\n\nSome systems use the `;` and `=` characters to delimit parameters and parameter values applicable to a path segment. For example, with the URL `https://example.org/users;id=42/tasks;state=open?sort=modified`, a system might extract and use the path segment parameters `id=42` and `state=open` from the path segments `users;id=42` and `tasks;state=open`.\n\n",
+ "port": "\n\nThe **`port`** property of the [URL] interface is\na string containing the port number of the URL.\n\n> **Note:** If an input string passed to the [`URL()`](/en-US/docs/Web/API/URL/URL) constructor doesn't contain an explicit port number (e.g., `https://localhost`) or contains a port number that's the default port number corresponding to the protocol part of the input string (e.g., `https://localhost:443`), then in the [`URL`](/en-US/docs/Web/API/URL) object the constructor returns, the value of the port property will be the empty string: `''`.\n\n",
+ "protocol": "\n\nThe **`protocol`** property of the [URL] interface\nis a string representing the protocol scheme of the URL, including the\nfinal `':'`.\n\n",
+ "revokeobjecturl_static": "\n\nThe **`URL.revokeObjectURL()`** static\nmethod releases an existing object URL which was previously created by calling\n[URL.createObjectURL_static].\n\nCall 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`notservice`\n\n> **Note:** This method is _not_ available in [Service Workers](/en-US/docs/Web/API/Service_Worker_API), due to\n> issues with the [Blob] interface's life cycle and the potential for leaks.",
+ "search": "\n\nThe **`search`** property of the [URL] interface\nis a search string, also called a _query string_, that is a\nstring containing a `'?'` followed by the parameters of the\nURL.\n\nModern browsers provide the [URL.searchParams] property to make it easy to\nparse out the parameters from the query string.\n\n",
+ "searchparams": "\n\nThe **`searchParams`** read-only property of the\n[URL] interface returns a [URLSearchParams] object allowing\naccess to the `GET` decoded query arguments contained in the URL.\n\n",
+ "tojson": "\n\nThe **`toJSON()`** method of the [URL] interface\nreturns a string containing a serialized version of the URL,\nalthough in practice it seems to have the same effect as\n[URL.toString].\n\n",
+ "tostring": "\n\nThe **`toString()`** method of the [URL] interface returns a\nstring containing the whole URL. It is effectively a read-only version\nof [URL.href].\n\n",
+ "username": "\n\nThe **`username`** property of the [URL] interface\nis a string containing the username specified before the domain name.\n\n"
+ }
+ },
+ "urlpattern": {
+ "docs": "\n\nThe **`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\nMore information about the syntax of patterns can be found on the API overview\npage: [URL Pattern API].\n\n",
+ "properties": {
+ "exec": "\n\nThe **`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.\n\n",
+ "hash": "\n\nThe **`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.\n\n",
+ "hostname": "\n\nThe **`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.\n\n",
+ "password": "\n\nThe **`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.\n\n",
+ "pathname": "\n\nThe **`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.\n\n",
+ "port": "\n\nThe **`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.\n\n",
+ "protocol": "\n\nThe **`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.\n\n",
+ "search": "\n\nThe **`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.\n\n",
+ "test": "\n\nThe **`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.\n\n",
+ "username": "\n\nThe **`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.\n\n"
+ }
+ },
+ "urlsearchparams": {
+ "docs": "\n\nThe **`URLSearchParams`** interface defines utility methods to work with the query string of a URL.\n\nAn object implementing `URLSearchParams` can directly be used in a `for...of` structure to iterate over key/value pairs in the same order as they appear in the query string, for example the following two lines are equivalent:\n\n```js\nfor (const [key, value] of mySearchParams) {\n}\nfor (const [key, value] of mySearchParams.entries()) {\n}\n```\n\n",
+ "properties": {
+ "append": "\n\nThe **`append()`** method of the [URLSearchParams]\ninterface appends a specified key/value pair as a new search parameter.\n\nAs shown in the example below, if the same key is appended multiple times it will\nappear in the parameter string multiple times for each value.\n\n",
+ "delete": "\n\nThe **`delete()`** method of the [URLSearchParams] interface deletes specified parameters and their associated value(s) from the list of all search parameters.\n\nA parameter name and optional value are used to match parameters.\nIf only a parameter name is specified, then all search parameters that match the name are deleted, along with their associated values.\nIf both a parameter name and value are specified, then all search parameters that match both the parameter name and value are deleted.\n\n",
+ "entries": "\n\nThe **`entries()`** method of the\n[URLSearchParams] interface returns an\n`iterator` allowing iteration through all key/value\npairs contained in this object. The iterator returns key/value pairs in the same order as they appear in the query string. The key and value of each pair are\nstring objects.\n\n",
+ "foreach": "\n\nThe **`forEach()`** method of the\n[URLSearchParams] interface allows iteration through all values contained\nin this object via a callback function.\n\n",
+ "get": "\n\nThe **`get()`** method of the [URLSearchParams]\ninterface returns the first value associated to the given search parameter.\n\n",
+ "getall": "\n\nThe **`getAll()`** method of the [URLSearchParams]\ninterface returns all the values associated with a given search parameter as an array.\n\n",
+ "has": "\n\nThe **`has()`** method of the [URLSearchParams] interface returns a boolean value that indicates whether the specified parameter is in the search parameters.\n\nA parameter name and optional value are used to match parameters.\nIf only a parameter name is specified, then the method will return `true` if any parameters in the query string match the name, and `false` otherwise.\nIf both a parameter name and value are specified, then the method will return `true` if a parameter matches both the name and value.\n\n",
+ "keys": "\n\nThe **`keys()`** method of the [URLSearchParams]\ninterface returns an `iterator` allowing iteration\nthrough all keys contained in this object. The keys are string\nobjects.\n\n",
+ "set": "\n\nThe **`set()`** method of the [URLSearchParams]\ninterface sets the value associated with a given search parameter to the given value.\nIf there were several matching values, this method deletes the others. If the search\nparameter doesn't exist, this method creates it.\n\n",
+ "size": "\n\nThe **`size`** read-only property of the [URLSearchParams] interface indicates the total number of search parameter entries.\n\n",
+ "sort": "\n\nThe **`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).\n\n",
+ "tostring": "\n\nThe **`toString()`** method of the\n[URLSearchParams] interface returns a query string suitable for use in a\nURL.\n\n> **Note:** This method returns the query string without the question mark. This is different from [`Location.search`](/en-US/docs/Web/API/Location/search), [`HTMLAnchorElement.search`](/en-US/docs/Web/API/HTMLAnchorElement/search), and [`URL.search`](/en-US/docs/Web/API/URL/search), which all include the question mark.\n\n",
+ "values": "\n\nThe **`values()`** method of the [URLsearchParams]\ninterface returns an `iterator` allowing iteration\nthrough all values contained in this object. The values are string\nobjects.\n\n"
+ }
+ },
+ "usb": {
+ "docs": "\n\nThe **`USB`** interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides attributes and methods for finding and connecting USB devices from a web page.\n\nUse [navigator.usb] to get access to the `USB` object.\n\nThe USB interface inherits from [EventTarget].\n\n",
+ "properties": {
+ "connect_event": "\n\nThe **`connect`** event of the [USB] interface is fired whenever a paired device is connected.",
+ "disconnect_event": "\n\nThe **`disconnect`** event of the [USB] interface is fired whenever a paired device is disconnected.",
+ "getdevices": "\n\nThe **`getDevices`** method of the [USB] interface\nreturns a `Promise` that resolves with an array of [USBDevice]\nobjects for paired attached devices. For information on pairing devices, see\n[USB.requestDevice].",
+ "requestdevice": "\n\nThe **`requestDevice()`** method of the [USB]\ninterface returns a `Promise` that resolves with an instance of\n[USBDevice] if the specified device is found. Calling this function\ntriggers the user agent's pairing flow."
+ }
+ },
+ "usbalternateinterface": {
+ "docs": "\n\nThe `USBAlternateInterface` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides information about a particular configuration of an interface provided by the USB device. An interface includes one or more alternate settings which can configure a set of endpoints based on the operating mode of the device."
+ },
+ "usbconfiguration": {
+ "docs": "\n\nThe `USBConfiguration` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides information about a particular configuration of a USB device and the interfaces that it supports.",
+ "properties": {
+ "configurationname": "\n\nThe **`configurationName`** read-only property\nof the [USBConfiguration] interface returns the name provided by the device\nto describe this configuration. This is equal to the value of the string descriptor with\nthe index provided in the [`iConfiguration`](https://www.beyondlogic.org/usbnutshell/usb5.shtml#ConfigurationDescriptors)\nfield of the configuration descriptor defining this configuration.",
+ "configurationvalue": "\n\nThe **`configurationValue`** read-only property\nof the [USBConfiguration] interface returns the configuration value of this configuration. This is equal to the\n[`bConfigurationValue`](https://www.beyondlogic.org/usbnutshell/usb5.shtml#ConfigurationDescriptors) field of the configuration descriptor provided by the device defining this configuration.",
+ "interfaces": "\n\nThe **`interfaces`** read-only property of the\n[USBConfiguration] interface returns an array containing instances of the\n[USBInterface] describing each interface supported by this configuration."
+ }
+ },
+ "usbconnectionevent": {
+ "docs": "\n\nThe **`USBConnectionEvent`** interface of the [WebUSB API] is the event type passed to `USB` [USB.connect_event] and [USB.disconnect_event] events when the user agent detects that a new USB device has been connected or disconnected.\n\n",
+ "properties": {
+ "device": "\n\nThe **`device`** read-only property of the [USBConnectionEvent] interface returns a [USBDevice] object representing the device being connected or disconnected."
+ }
+ },
+ "usbdevice": {
+ "docs": "\n\nThe **`USBDevice`** interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides access to metadata about a paired USB device and methods for controlling it.",
+ "properties": {
+ "claiminterface": "\n\nThe **`claimInterface()`** method of the\n[USBDevice] interface returns a `promise` that resolves when\nthe requested interface is claimed for exclusive access.",
+ "clearhalt": "\n\nThe **`clearHalt()`** method of the [USBDevice]\ninterface returns a `promise` that resolves when a halt condition is\ncleared. A halt condition is when a data transfer to or from the device has a status\nof `'stall'`, which requires the web page (the _host_ system, in USB\nterminology) to clear that condition. See the for details.",
+ "close": "\n\nThe **`close()`** method of the [USBDevice]\ninterface returns a `promise` that resolves when all open interfaces are\nreleased and the device session has ended.",
+ "configuration": "\n\nThe **`configuration`** read only property of the\n[USBDevice] interface returns a [USBConfiguration] object for\nthe currently selected interface for a paired USB device.",
+ "configurations": "\n\nThe **`configurations`** read only property of the\n[USBDevice] interface an `array` of device-specific interfaces\nfor controlling a paired USB device.",
+ "controltransferin": "\n\nThe **`controlTransferIn()`** method of the [USBDevice] interface returns a `Promise` that resolves with a [USBInTransferResult] when a command or status request has been transmitted to (received by) the USB device.",
+ "controltransferout": "\n\nThe **`controlTransferOut()`** method of the [USBDevice] interface returns a `Promise` that resolves with a [USBOutTransferResult] when a command or status operation has been transmitted from the USB device.",
+ "deviceclass": "\n\nThe **`deviceClass`** read only property of the\n[USBDevice] interface one of three properties that identify USB devices for\nthe purpose of loading a USB driver that will work with that device. The other two\nproperties are USBDevice.deviceSubclass and USBDevice.deviceprotocol.",
+ "deviceprotocol": "\n\nThe **`deviceProtocol`** read only property of the\n[USBDevice] interface one of three properties that identify USB devices for\nthe purpose of loading a USB driver that will work with that device. The other two\nproperties are `USBDevice.deviceClass`\nand `USBDevice.deviceSubclass`.",
+ "devicesubclass": "\n\nThe **`deviceSubclass`** read only property of the\n[USBDevice] interface one of three properties that identify USB devices for\nthe purpose of loading a USB driver that will work with that device. The other two\nproperties are USBDevice.deviceClass and USBDevice.deviceProtocol.",
+ "deviceversionmajor": "\n\nThe **`deviceVersionMajor`** read only property of the\n[USBDevice] interface he major version number of the device in a semantic\nversioning scheme.",
+ "deviceversionminor": "\n\nThe **`deviceVersionMinor`** read only property of the\n[USBDevice] interface the minor version number of the device in a semantic\nversioning scheme.",
+ "deviceversionsubminor": "\n\nThe **`deviceVersionSubminor`** read only property of the\n[USBDevice] interface the patch version number of the device in a semantic\nversioning scheme.",
+ "forget": "\n\nThe **`forget()`** method of the [USBDevice] interface returns a `Promise` that resolves when all pending operations are aborted, all open interfaces are released, the device session has ended, and the permission is reset.",
+ "isochronoustransferin": "\n\nThe **`isochronousTransferIn()`** method of the [USBDevice] interface returns a `Promise` that resolves with a [USBIsochronousInTransferResult] when time sensitive information has been transmitted to (received by) the USB device.",
+ "isochronoustransferout": "\n\nThe **`isochronousTransferOut()`** method of the\n[USBDevice] interface returns a `Promise` that resolves with a [USBIsochronousOutTransferResult] when time sensitive information has been transmitted from the USB device.",
+ "manufacturername": "\n\nThe **`manufacturerName`** read only property of the\n[USBDevice] interface the of the organization that manufactured the USB\ndevice.",
+ "open": "\n\nThe **`open()`** method of the [USBDevice]\ninterface returns a `promise` that resolves when a device session has\nstarted.",
+ "opened": "\n\nThe **`opened`** read only property of the\n[USBDevice] interface indicates whether a session has been started with a\npaired USB device. A device must be opened before it can be controlled by a web page.",
+ "productid": "\n\nThe **`productId`** read only property of the\n[USBDevice] interface the manufacturer-defined code that identifies a USB\ndevice.",
+ "productname": "\n\nThe **`productName`** read only property of the\n[USBDevice] interface the manufacturer-defined name that identifies a USB\ndevice.",
+ "releaseinterface": "\n\nThe **`releaseInterface()`** method of the\n[USBDevice] interface returns a `promise` that resolves when a\nclaimed interface is released from exclusive access.",
+ "reset": "\n\nThe **`reset()`** method of the [USBDevice]\ninterface returns a `promise` that resolves when the device is reset and all\napp operations canceled and their promises rejected.",
+ "selectalternateinterface": "\n\nThe **`selectAlternateInterface()`** method of the\n[USBDevice] interface returns a `promise` that resolves when\nthe specified alternative endpoint is selected.",
+ "selectconfiguration": "\n\nThe **`selectConfiguration()`** method of the\n[USBDevice] interface returns a `promise` that resolves when\nthe specified configuration is selected.",
+ "serialnumber": "\n\nThe **`serialNumber`** read only property of the\n[USBDevice] interface is the manufacturer-defined serial number for the\nspecific USB device.",
+ "transferin": "\n\nThe **`transferIn()`** method of the [USBDevice]\ninterface returns a `promise` that resolves with a\n[USBInTransferResult] when bulk or interrupt data is received from the USB\ndevice.",
+ "transferout": "\n\nThe **`transferOut()`** method of the [USBDevice]\ninterface returns a `promise` that resolves with a\n[USBOutTransferResult] when bulk or interrupt data is sent to the USB\ndevice.",
+ "usbversionmajor": "\n\nThe **`usbVersionMajor`** read only property of the\n[USBDevice] interface is one of three properties that declare the USB\nprotocol version supported by the device. The other two properties\nare USBDevice.usbVersionMinor and USBDevice.usbVersionSubminor.",
+ "usbversionminor": "\n\nThe **`usbVersionMinor`** read only property of the\n[USBDevice] interface is one of three properties that declare the USB\nprotocol version supported by the device. The other two properties\nare USBDevice.usbVersionMajor and USBDevice.usbVersionSubminor.",
+ "usbversionsubminor": "\n\nThe **`usbVersionSubminor`** read only property of the\n[USBDevice] interface is one of three properties that declare the USB\nprotocol version supported by the device. The other two properties\nare USBDevice.usbVersionMajor and USBDevice.usbVersionMinor.",
+ "vendorid": "\n\nThe **`vendorId`** read only property of the\n[USBDevice] interface is the official usb.org-assigned vendor ID."
+ }
+ },
+ "usbendpoint": {
+ "docs": "\n\nThe `USBEndpoint` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides information about an endpoint provided by the USB device. An endpoint represents a unidirectional data stream into or out of a device."
+ },
+ "usbinterface": {
+ "docs": "\n\nThe `USBInterface` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides information about an interface provided by the USB device. An interface represents a feature of the device which implements a particular protocol and may contain endpoints for bidirectional communication."
+ },
+ "usbintransferresult": {
+ "docs": "\n\nThe `USBInTransferResult` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides the result from a call to the `transferIn()` and `controlTransferIn()` methods of the `USBDevice` interface. It represents the result from requesting a transfer of data from the USB device to the USB host."
+ },
+ "usbisochronousintransferpacket": {
+ "docs": "\n\nThe `USBIsochronousInTransferPacket` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) is part of the response from a call to the `isochronousTransferIn()` method of the `USBDevice` interface. It represents the status of an individual packet from a request to transfer data from the USB device to the USB host over an isochronous endpoint."
+ },
+ "usbisochronousintransferresult": {
+ "docs": "\n\nThe `USBIsochronousInTransferResult` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides the result from a call to the `isochronousTransferIn()` method of the `USBDevice` interface. It represents the result from requesting a transfer of data from the USB device to the USB host."
+ },
+ "usbisochronousouttransferpacket": {
+ "docs": "\n\nThe `USBIsochronousOutTransferPacket` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) is part of the response from a call to the `isochronousTransferOut()` method of the `USBDevice` interface. It represents the status of an individual packet from a request to transfer data from the USB host to the USB device over an isochronous endpoint."
+ },
+ "usbisochronousouttransferresult": {
+ "docs": "\n\nThe `USBIsochronousOutTransferResult` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides the result from a call to the `isochronousTransferOut()` method of the `USBDevice` interface. It represents the result from requesting a transfer of data from the USB host to the USB device."
+ },
+ "usbouttransferresult": {
+ "docs": "\n\nThe `USBOutTransferResult` interface of the [WebUSB API](/en-US/docs/Web/API/WebUSB_API) provides the result from a call to the `transferOut()` and `controlTransferOut()` methods of the `USBDevice` interface. It represents the result from requesting a transfer of data from the USB host to the USB device."
+ },
+ "useractivation": {
+ "docs": "\n\nThe **`UserActivation`** interface provides information about whether a user is currently interacting with the page, or has completed an interaction since page load.\n\nThis API is only available in the window context and not exposed to workers.",
+ "properties": {
+ "hasbeenactive": "\n\nThe read-only **`hasBeenActive`** property of the [UserActivation] interface indicates whether the current window has .",
+ "isactive": "\n\nThe read-only **`isActive`** property of the [UserActivation] interface indicates whether the current window has ."
+ }
+ },
+ "validitystate": {
+ "docs": "\n\nThe **`ValidityState`** interface represents the _validity states_ that an element can be in, with respect to constraint validation. Together, they help explain why an element's value fails to validate, if it's not valid.",
+ "properties": {
+ "badinput": "\n\nThe read-only **`badInput`** property of a [ValidityState](/en-US/docs/Web/API/ValidityState) object indicates if the user has provided input that the browser is unable to convert. For example, if you have a number input element whose content is a string.",
+ "patternmismatch": "\n\nThe read-only **`patternMismatch`** property of a **[`ValidityState`](/en-US/docs/Web/API/ValidityState)** object indicates if the value of an `input`, after having been edited by the user, does not conform to the constraints set by the element's [`pattern`](/en-US/docs/Web/HTML/Attributes/pattern) attribute.\n\nThe `patternMismatch` property will be true if and only if the following conditions are all true:\n\n- the field supports the [`pattern`](/en-US/docs/Web/HTML/Attributes/pattern) attribute — which means the `input` is of `type` `text`, `tel`, `email`, `url`, `password`, or `search`\n- the [`pattern`](/en-US/docs/Web/HTML/Attributes/pattern) attribute contains a valid regular expression\n- the `input` value doesn't conform to the constraints set by the [`pattern`](/en-US/docs/Web/HTML/Attributes/pattern) value.",
+ "rangeoverflow": "\n\nThe read-only **`rangeOverflow`** property of a **[`ValidityState`](/en-US/docs/Web/API/ValidityState)** object indicates if the value of an `input`, after having been edited by the user, does not conform to the constraints set by the element's [`max`](/en-US/docs/Web/HTML/Attributes/max) attribute.\n\nIf the field is numeric in nature, including the `date`, `month`, `week`, `time`, , `number` and `range` types and a `max` value is set, if the value doesn't conform to the constraints set by the [`max`](/en-US/docs/Web/HTML/Attributes/step) value, the `rangeOverflow` property will be true.\n\nGiven the following:\n\n```html\n<input type=\"number\" min=\"20\" max=\"40\" step=\"2\" />\n```\n\nif `value > 40`, `rangeOverflow` will be true. When `true`, the element matches the and CSS pseudo-classes.",
+ "rangeunderflow": "\n\nThe read-only **`rangeUnderflow`** property of a **[`ValidityState`](/en-US/docs/Web/API/ValidityState)** object indicates if the value of an `input`, after having been edited by the user, does not conform to the constraints set by the element's [`min`](/en-US/docs/Web/HTML/Attributes/min) attribute.\n\nIf the field is numeric in nature, including the `date`, `month`, `week`, `time`, , `number` and `range` types and a `min` value is set, if the value doesn't conform to the constraints set by the [`min`](/en-US/docs/Web/HTML/Attributes/step) value, the `rangeUnderflow` property will be true.\n\nGiven the following:\n\n```html\n<input type=\"number\" min=\"20\" max=\"40\" step=\"2\" />\n```\n\nif `value < 20`, `rangeUnderflow` will be true. When `true`, the element matches the and CSS pseudo-classes.",
+ "stepmismatch": "\n\nThe read-only **`stepMismatch`** property of a **[`ValidityState`](/en-US/docs/Web/API/ValidityState)** object indicates if the value of an `input`, after having been edited by the user, does not conform to the constraints set by the element's `step` attribute.\n\nIf the field is numeric in nature, including the `date`, `month`, `week`, `time`, , `number` and `range` types and the step value is not `any`, if the value don't doesn't conform to the constraints set by the [`step`](/en-US/docs/Web/HTML/Attributes/step) and [`min`](/en-US/docs/Web/HTML/Attributes/min) values, then `stepMismatch` will be true. If the remainder of the form control's value less the [`min`](/en-US/docs/Web/HTML/Attributes/min) value, divided by the [`step`](/en-US/docs/Web/HTML/Attributes/step) value (which defaults to 1 if omitted) is not zero, there is a mismatch.\n\nGiven the following:\n\n```html\n<input type=\"number\" min=\"20\" max=\"40\" step=\"2\" />\n```\n\nif `(value - min) % 2 !== 0`, `stepMismatch` will be true.\n\nIf true, the element matches the and CSS pseudo-classes.",
+ "toolong": "\n\nThe read-only **`tooLong`** property of a **[`ValidityState`](/en-US/docs/Web/API/ValidityState)** object indicates if the value of an `input` or `textarea`, after having been edited by the user, exceeds the maximum code-unit length established by the element's [`maxlength`](/en-US/docs/Web/HTML/Attributes/maxlength) attribute.",
+ "tooshort": "\n\nThe read-only **`tooShort`** property of a **[`ValidityState`](/en-US/docs/Web/API/ValidityState)** object indicates if the value of an `input`, `button`, `select`, `output`, `fieldset` or `textarea`, after having been edited by the user, is less than the minimum code-unit length established by the element's `minlength` attribute.",
+ "typemismatch": "\n\nThe read-only **`typeMismatch`** property of a **[`ValidityState`](/en-US/docs/Web/API/ValidityState)** object indicates if the value of an `input`, after having been edited by the user, does not conform to the constraints set by the element's [`type`](/en-US/docs/Web/HTML/Element/input#input_types) attribute.\n\nIf the `type` attribute expects specific strings, such as the `email` and `url` types and the value doesn't conform to the constraints set by the type, the `typeMismatch` property will be true.\n\nThe `email` input type expects one or more valid email addresses, depending on whether the [`multiple`](/en-US/docs/Web/HTML/Attributes/multiple) attribute is present. A valid email address includes an email prefix and a domain, with or without a top level domain. If the value of the email input is not an empty string, a single valid email address, or one or more comma separated email address if the [`multiple`](/en-US/docs/Web/HTML/Attributes/multiple) attribute is present, there is a `typeMismatch`.\n\nThe `url` input type expects one or more valid URLs, depending on whether the [`multiple`](/en-US/docs/Web/HTML/Attributes/multiple) attribute is present. A valid URL includes a protocol, optionally with an IP address, or an optional subdomain, domain, and top level domain combination. If the value of the URL input is not an empty string, a single valid URL, or one or more comma separated URLS if the [`multiple`](/en-US/docs/Web/HTML/Attributes/multiple) attribute is present, there is a `typeMismatch`.\n\n| Input type | Value | Expected value |\n| --------------------------------------- | ----------------- | -------------------------------------------------------------- |\n| `email` | `x@y` or `x@y.z` | email address, with or without [TLD](/en-US/docs/Glossary/TLD) |\n| `url` | `x:` or `x://y.z` | protocol or full URL with protocol |",
+ "valuemissing": "\n\nThe read-only **`valueMissing`** property of a **[`ValidityState`](/en-US/docs/Web/API/ValidityState)** object indicates if a [`required`](/en-US/docs/Web/HTML/Attributes/required) control, such as an `input`, `select`, or `textarea`, has an empty value.\n\nIf the `required` attribute is set, and no `option` is selected or a `<textarea>` or user-editable `<input>` is empty, the `valueMissing` property will be `true`. The property is only `true` if the field is required and has no value; if the field is not required, or if the field is required and has a value, the value is `false`."
+ }
+ },
+ "videocolorspace": {
+ "docs": "\n\nThe **`VideoColorSpace`** interface of the [WebCodecs API] represents the color space of a video.",
+ "properties": {
+ "fullrange": "`WebCodecs API`\n\nThe **`fullRange`** read-only property of the [VideoColorSpace] interface returns `true` if full-range color values are used.",
+ "matrix": "`WebCodecs API`\n\nThe **`matrix`** read-only property of the [VideoColorSpace] interface returns the matrix coefficient of the video. Matrix coefficients describe the relationship between sample component values and color coordinates.",
+ "primaries": "`WebCodecs API`\n\nThe **`primaries`** read-only property of the [VideoColorSpace] interface returns the color of the video.",
+ "tojson": "`WebCodecs API`\n\nThe **`toJSON()`** method of the [VideoColorSpace] interface is a _serializer_ that returns a JSON representation of the `VideoColorSpace` object.",
+ "transfer": "`WebCodecs API`\n\nThe **`transfer`** read-only property of the [VideoColorSpace] interface returns the opto-electronic transfer characteristics of the video."
+ }
+ },
+ "videodecoder": {
+ "docs": "\n\nThe **`VideoDecoder`** interface of the [WebCodecs API] decodes chunks of video.\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [VideoDecoder] interface ends all pending work and releases system resources.",
+ "configure": "\n\nThe **`configure()`** method of the [VideoDecoder] interface enqueues a control message to configure the video decoder for decoding chunks.",
+ "decode": "\n\nThe **`decode()`** method of the [VideoDecoder] interface enqueues a control message to decode a given chunk of video.",
+ "decodequeuesize": "\n\nThe **`decodeQueueSize`** read-only property of the [VideoDecoder] interface returns the number of pending decode requests in the queue.",
+ "dequeue_event": "\n\nThe **`dequeue`** event of the [VideoDecoder] interface fires to signal a decrease in [VideoDecoder.decodeQueueSize].\n\nThis eliminates the need for developers to use a [setTimeout] poll to determine when the queue has decreased, and more work should be queued up.",
+ "flush": "\n\nThe **`flush()`** method of the [VideoDecoder] interface returns a Promise that resolves once all pending messages in the queue have been completed.",
+ "isconfigsupported_static": "\n\nThe **`isConfigSupported()`** static method of the [VideoDecoder] interface checks if the given config is supported (that is, if [VideoDecoder] objects can be successfully configured with the given config).",
+ "reset": "\n\nThe **`reset()`** method of the [VideoDecoder] interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.",
+ "state": "\n\nThe **`state`** property of the [VideoDecoder] interface returns the current state of the underlying codec."
+ }
+ },
+ "videoencoder": {
+ "docs": "\n\nThe **`VideoEncoder`** interface of the [WebCodecs API] encodes [VideoFrame] objects into [EncodedVideoChunk]s.\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [VideoEncoder] interface ends all pending work and releases system resources.",
+ "configure": "\n\nThe **`configure()`** method of the [VideoEncoder] interface changes the [VideoEncoder.state] of the encoder to \"configured\" and asynchronously prepares the encoder to accept [VideoEncoder]s 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\nIf the [VideoEncoder] has been previously configured, the new configuration will not be applied until all previous tasks have completed.",
+ "dequeue_event": "\n\nThe **`dequeue`** event of the [VideoEncoder] interface fires to signal a decrease in [VideoEncoder.encodeQueueSize].\n\nThis eliminates the need for developers to use a [setTimeout] poll to determine when the queue has decreased, and more work should be queued up.",
+ "encode": "\n\nThe **`encode()`** method of the [VideoEncoder] interface asynchronously encodes a [VideoFrame].\nEncoded data ([EncodedVideoChunk]) or an error will eventually be returned via the callbacks provided to the [VideoEncoder] constructor.",
+ "encodequeuesize": "\n\nThe **`encodeQueueSize`** read-only property of the [VideoEncoder] interface returns the number of pending encode requests in the queue.",
+ "flush": "\n\nThe **`flush()`** method of the [VideoEncoder] interface forces all pending encodes to complete.",
+ "isconfigsupported_static": "\n\nThe **`isConfigSupported()`** static method of the [VideoEncoder] interface checks if [VideoEncoder] can be successfully configured with the given config.",
+ "reset": "\n\nThe **`reset()`** method of the [VideoEncoder] interface synchronously cancels all pending encodes and callbacks, frees all underlying resources and sets the [VideoEncoder.state] to \"unconfigured\".\nAfter calling [VideoEncoder.reset], [VideoEncoder.configure] must be called before resuming [VideoEncoder.encode] calls.\n\n> **Note:** To avoid discarding frames queued via [VideoEncoder.encode], [VideoEncoder.flush] should be called and completed before calling [VideoEncoder.reset].",
+ "state": "\n\nThe **`state`** read-only property of the [VideoEncoder] interface returns the current state of the underlying codec."
+ }
+ },
+ "videoframe": {
+ "docs": "\n\nThe **`VideoFrame`** interface of the [Web Codecs API](/en-US/docs/Web/API/WebCodecs_API) represents a frame of a video.\n\n`VideoFrame` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).",
+ "properties": {
+ "allocationsize": "\n\nThe **`allocationSize()`** method of the [VideoFrame] interface returns the number of bytes required to hold the video as filtered by options passed into the method.",
+ "clone": "\n\nThe **`clone()`** method of the [VideoFrame] interface creates a new `VideoFrame` object referencing the same media resource as the original.",
+ "close": "\n\nThe **`close()`** method of the [VideoFrame] interface clears all states and releases the reference to the media resource.",
+ "codedheight": "\n\nThe **`codedHeight`** property of the [VideoFrame] interface returns the height of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.",
+ "codedrect": "\n\nThe **`codedRect`** property of the [VideoFrame] interface returns a [DOMRectReadOnly] with the width and height matching [VideoFrame.codedWidth] and [VideoFrame.codedHeight].",
+ "codedwidth": "\n\nThe **`codedWidth`** property of the [VideoFrame] interface returns the width of the `VideoFrame` in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.",
+ "colorspace": "\n\nThe **`colorSpace`** property of the [VideoFrame] interface returns a [VideoColorSpace] object representing the color space of the video.",
+ "copyto": "\n\nThe **`copyTo()`** method of the [VideoFrame] interface copies the contents of the `VideoFrame` to an `ArrayBuffer`.",
+ "displayheight": "\n\nThe **`displayHeight`** property of the [VideoFrame] interface returns the height of the `VideoFrame` after applying aspect ratio adjustments.",
+ "displaywidth": "\n\nThe **`displayWidth`** property of the [VideoFrame] interface returns the width of the `VideoFrame` after applying aspect ratio adjustments.",
+ "duration": "\n\nThe **`duration`** property of the [VideoFrame] interface returns an integer indicating the duration of the video in microseconds.",
+ "format": "\n\nThe **`format`** property of the [VideoFrame] interface returns the pixel format of the `VideoFrame`.",
+ "timestamp": "\n\nThe **`timestamp`** property of the [VideoFrame] interface returns an integer indicating the timestamp of the video in microseconds.",
+ "visiblerect": "\n\nThe **`visibleRect`** property of the [VideoFrame] interface returns a [DOMRectReadOnly] describing the visible rectangle of pixels for this `VideoFrame`."
+ }
+ },
+ "videoplaybackquality": {
+ "docs": "\n\nA **`VideoPlaybackQuality`** object is returned by the [HTMLVideoElement.getVideoPlaybackQuality] method and contains metrics that can be used to determine the playback quality of a video.",
+ "properties": {
+ "corruptedvideoframes": "\n\nThe [VideoPlaybackQuality] interface's read-only\n**`corruptedVideoFrames`** property the number of corrupted\nvideo frames that have been received since the `video` element was\nlast loaded or reloaded.",
+ "creationtime": "\n\nThe read-only **`creationTime`** property on the\n[VideoPlaybackQuality] interface reports the number of milliseconds since\nthe browsing context was created this quality sample was recorded.",
+ "droppedvideoframes": "\n\nThe read-only **`droppedVideoFrames`**\nproperty of the [VideoPlaybackQuality] interface returns the number of\nvideo frames which have been dropped rather than being displayed since the last time\nthe media was loaded into the [HTMLVideoElement].",
+ "totalframedelay": "\n\nThe **`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.",
+ "totalvideoframes": "\n\nThe [VideoPlaybackQuality] interface's\n**`totalVideoFrames`** read-only property returns the total\nnumber of video frames that have been displayed or dropped since the media was\nloaded."
+ }
+ },
+ "videotrack": {
+ "docs": "\n\nThe [VideoTrack] interface represents a single video track from a `video` element.\n\nThe most common use for accessing a `VideoTrack` object is to toggle its [VideoTrack.selected] property in order to make it the active video track for its `video` element.",
+ "properties": {
+ "id": "\n\nThe **`id`** property contains a\nstring which uniquely identifies the track represented by the\n**[VideoTrack]**.\n\nThis ID can be used with the\n[VideoTrackList.getTrackById] method to locate a specific track within\nthe media associated with a media element.\n\nThe track ID can also be used as the fragment of a URL that loads the specific track\n(if the media supports media fragments).",
+ "kind": "\n\nThe **`kind`** property contains a\nstring indicating the category of video contained in the\n**[VideoTrack]**.\n\nThe `kind` can be used\nto determine the scenarios in which specific tracks should be enabled or disabled. See\n[Video track kind strings](#video_track_kind_strings) for a list of the kinds available for video tracks.",
+ "label": "\n\nThe read-only **[VideoTrack]**\nproperty **`label`** returns a string specifying the video\ntrack's human-readable label, if one is available; otherwise, it returns an empty\nstring.",
+ "language": "\n\nThe read-only **[VideoTrack]**\nproperty **`language`** returns a string identifying the\nlanguage used in the video track.\n\nFor tracks that include multiple languages\n(such as a movie in English in which a few lines are spoken in other languages), this\nshould be the video's primary language.",
+ "selected": "\n\nThe **[VideoTrack]** property\n**`selected`** controls whether or not a particular video\ntrack is active.",
+ "sourcebuffer": "\n\nThe read-only **[VideoTrack]**\nproperty **`sourceBuffer`** returns the\n[SourceBuffer] that created the track, or null if the track was not\ncreated by a [SourceBuffer] or the [SourceBuffer] has been\nremoved from the [MediaSource.sourceBuffers] attribute of its parent\nmedia source."
+ }
+ },
+ "videotracklist": {
+ "docs": "\n\nThe **`VideoTrackList`** interface is used to represent a list of the video tracks contained within a `video` element, with each track represented by a separate [VideoTrack] object in the list.\n\nRetrieve an instance of this object with [HTMLMediaElement.videoTracks]. The individual tracks can be accessed using array syntax or functions such as `forEach()` for example.\n\n",
+ "properties": {
+ "addtrack_event": "\n\nThe `addtrack` event is fired when a video track is added to a [`VideoTrackList`](/en-US/docs/Web/API/VideoTrackList).",
+ "change_event": "\n\nThe `change` event is fired when a video track is made active or inactive, for example by changing the track's [`selected`](/en-US/docs/Web/API/VideoTrack/selected) property.",
+ "gettrackbyid": "\n\nThe **[VideoTrackList]** method\n**`getTrackById()`** returns the first\n[VideoTrack] object from the track list whose [VideoTrack.id] matches the specified string.\n\nThis lets you find a specified track if\nyou know its ID string.",
+ "length": "\n\nThe read-only **[VideoTrackList]**\nproperty **`length`** returns the number of entries in the\n`VideoTrackList`, each of which is a [VideoTrack] representing\none video track in the media element.\n\nA value of 0 indicates that there are no\nvideo tracks in the media.",
+ "removetrack_event": "\n\nThe `removetrack` event is fired when a video track is removed from a [`VideoTrackList`](/en-US/docs/Web/API/VideoTrackList).",
+ "selectedindex": "\n\nThe read-only **[VideoTrackList]**\nproperty **`selectedIndex`** returns the index of the\ncurrently selected track, if any, or `-1` otherwise."
+ }
+ },
+ "viewtimeline": {
+ "docs": "\n\nThe **`ViewTimeline`** interface of the [Web Animations API] represents a view progress timeline (see [CSS scroll-driven animations](/en-US/docs/Web/CSS/CSS_scroll-driven_animations) for more details).\n\nPass a `ViewTimeline` instance to the [Animation.Animation] constructor or the [Element.animate] method to specify it as the timeline that will control the progress of the animation.\n\n",
+ "properties": {
+ "endoffset": "\n\nThe **`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.",
+ "startoffset": "\n\nThe **`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.",
+ "subject": "\n\nThe **`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."
+ }
+ },
+ "viewtransition": {
+ "docs": "\n\nThe **`ViewTransition`** interface of the [View Transitions API] represents a view transition, and provides functionality to react to the transition reaching different states (e.g. ready to run the animation, or animation finished) or skip the transition altogether.\n\nThis object type is returned by the [Document.startViewTransition] method. When `startViewTransition()` is invoked, a sequence of steps is followed as explained in [The view transition process](/en-US/docs/Web/API/View_Transitions_API#the_view_transition_process). This also explains when the different promises fulfill.\n\n",
+ "properties": {
+ "finished": "\n\nThe **`finished`** read-only property of the\n[ViewTransition] interface is a `Promise` that fulfills once the transition animation is finished, and the new page view is visible and interactive to the user.\n\n`finished` only rejects if the callback passed to [Document.startViewTransition]throws or returns a promise that rejects, which indicates that the new state of the page wasn't created.\n\nIf a transition animation fails to start, or is skipped during the animation using [ViewTransition.skipTransition], the end state is still reached therefore `finished` still fulfills.",
+ "ready": "\n\nThe **`ready`** read-only property of the\n[ViewTransition] interface is a `Promise` that fulfills once the pseudo-element tree is created and the transition animation is about to start.\n\n`ready` will reject if the transition cannot begin. This can be due to misconfiguration, for example duplicate s, or if the callback passed to [Document.startViewTransition] throws or returns a promise that rejects.",
+ "skiptransition": "\n\nThe **`skipTransition()`** method of the\n[ViewTransition] interface skips the animation part of the view transition, but doesn't skip running the [Document.startViewTransition] callback that updates the DOM.",
+ "updatecallbackdone": "\n\nThe **`updateCallbackDone`** read-only property of the\n[ViewTransition] interface is a `Promise` that fulfills when the promise returned by the [Document.startViewTransition]'s callback fulfills, or rejects when it rejects.\n\n`updateCallbackDone` is useful when you don't care about the success/failure of the transition animation, and just want to know if and when the DOM is updated."
+ }
+ },
+ "virtualkeyboard": {
+ "docs": "\n\nThe **`VirtualKeyboard`** interface of the [VirtualKeyboard API](/en-US/docs/Web/API/VirtualKeyboard_API) is useful on devices that have on-screen virtual keyboards, such as tablets, mobile phones, or other devices where a hardware keyboard may not be available.\n\nThe `VirtualKeyboard` interface makes it possible to opt out of the automatic way browsers handle on-screen virtual keyboards by reducing the height of the viewport to make room for the virtual keyboard. You can prevent the browser from changing the size of the viewport, detect the position and size of the virtual keyboard — adapting the layout of your web page as a follow-up — and programmatically show or hide the virtual keyboard.\n\nYou access the `VirtualKeyboard` interface by using [navigator.virtualKeyboard].\n\n",
+ "properties": {
+ "boundingrect": "\n\nThe **`boundingRect`** property of the [VirtualKeyboard] interface contains a [DOMRect] indicating the position and size of the on-screen virtual keyboard that overlays the web page.\n\nThe on-screen virtual keyboard will overlay the viewport when the [VirtualKeyboard_API] is used to prevent the browser from resizing the viewport automatically. This is done by setting the [VirtualKeyboard.overlaysContent] property to `true`.",
+ "geometrychange_event": "\n\nThe **`geometrychange`** event of the [VirtualKeyboard]\ninterface fires when the on-screen virtual keyboard is toggled between shown and hidden states.\n\nThe `geometrychange` event is useful to detect when the virtual keyboard appears and disappears, so you can adjust the layout as appropriate. This is necessary when using the [VirtualKeyboard_API] to disable the browser's default automatic resizing of the viewport when the virtual keyboard is shown and hidden.",
+ "hide": "\n\nThe **`hide()`** method of the [VirtualKeyboard] interface programmatically hides the on-screen virtual keyboard. This is useful when the page needs to implement its own virtual keyboard logic by using the [VirtualKeyboard_API].\n\nThis method only works if the currently-focused element's [`virtualKeyboardPolicy`](/en-US/docs/Web/HTML/Global_attributes/virtualkeyboardpolicy) attribute is set to `manual` and [`inputmode`](/en-US/docs/Web/HTML/Global_attributes/inputmode) isn't set to `none`.\n\nThe `hide()` method always returns `undefined` and triggers a [VirtualKeyboard.geometrychange_event] event.",
+ "overlayscontent": "\n\nThe **`overlaysContent`** property of the VirtualKeyboard interface can be used to opt out of the automatic way in which browsers handle on-screen virtual keyboards by reducing the size of the viewport to make space for them.\n\nIf the `overlaysContent` property is set to `true`, the browser no longer resizes the viewport when the virtual keyboard appears. The virtual keyboard instead overlays the content of the web page, and you can adapt the page layout as appropriate using the [VirtualKeyboard_API] and your own custom CSS and JavaScript.",
+ "show": "\n\nThe **`show()`** method of the [VirtualKeyboard] interface programmatically shows the on-screen virtual keyboard. This is useful when the page needs to implement its own virtual keyboard logic, especially when using the `virtualkeyboardpolicy` attribute on `contenteditable` elements as explained in [Control the virtual keyboard on `contenteditable` elements](/en-US/docs/Web/API/VirtualKeyboard_API#control_the_virtual_keyboard_on_contenteditable_elements).\n\nThis method only works if the currently-focused element is a form control — such as an `input` or `textarea` element — or if the focused element is [`contenteditable`](/en-US/docs/Web/HTML/Global_attributes/contenteditable), and the currently-focused element's [`virtualKeyboardPolicy`](/en-US/docs/Web/HTML/Global_attributes/virtualkeyboardpolicy) attribute is set to `manual` and [`inputmode`](/en-US/docs/Web/HTML/Global_attributes/inputmode) isn't set to `none`.\n\nThe `show()` method always returns `undefined` and triggers a [VirtualKeyboard.geometrychange_event] event."
+ }
+ },
+ "visibilitystateentry": {
+ "docs": "\n\nThe **`VisibilityStateEntry`** interface provides timings of page visibility state changes, i.e., when a tab changes from the foreground to the background or vice versa.\n\nThis can be used to pinpoint visibility changes on the performance timeline, and cross-reference them against other performance entries such as \"first-contentful-paint\" (see [PerformancePaintTiming]).\n\nThere are two key visibility state change times that this API reports on:\n\n- `visible`: The time when the page becomes visible (i.e. when its tab moves into the foreground).\n- `hidden`: The time when the pages become hidden (i.e. when its tab moves into the background).\n\nThe performance timeline will always have a \"`visibility-state`\" entry with a `startTime` of `0` and a `name` representing the initial page visibility state.\n\n> **Note:** Like other Performance APIs, this API extends [PerformanceEntry].\n\n"
+ },
+ "visualviewport": {
+ "docs": "\n\nThe **`VisualViewport`** interface of the [Visual Viewport API](/en-US/docs/Web/API/Visual_Viewport_API) represents the visual viewport for a given window. For a page containing iframes, each iframe, as well as the containing page, will have a unique window object. Each window on a page will have a unique `VisualViewport` representing the properties associated with that window.\n\nYou can get a window's visual viewport using [Window.visualViewport].\n\n> **Note:** Only the top-level window has a visual viewport that's distinct from the layout viewport. Therefore, it's generally only the `VisualViewport` object of the top-level window that's useful. For an `iframe`, visual viewport metrics like [VisualViewport.width] always correspond to layout viewport metrics like [Element.clientWidth].\n\n",
+ "properties": {
+ "height": "\n\nThe **`height`** read-only property of the\n[VisualViewport] interface returns the height of the visual viewport, in\nCSS pixels.",
+ "offsetleft": "\n\nThe **`offsetLeft`** read-only property of the\n[VisualViewport] interface returns the offset of the left edge of the\nvisual viewport from the left edge of the layout viewport in CSS pixels.",
+ "offsettop": "\n\nThe **`offsetTop`** read-only property of the\n[VisualViewport] interface returns the offset of the top edge of the visual\nviewport from the top edge of the layout viewport in CSS pixels.",
+ "pageleft": "\n\nThe **`pageLeft`** read-only property of the\n[VisualViewport] interface returns the x coordinate of the left edge of the\nvisual viewport relative to the initial containing block origin, in CSS pixels.",
+ "pagetop": "\n\nThe **`pageTop`** read-only property of the\n[VisualViewport] interface returns the y coordinate of the top edge of the\nvisual viewport relative to the initial containing block origin, in CSS pixels.",
+ "resize_event": "\n\nThe **`resize`** event of the [`VisualViewport`](/en-US/docs/Web/API/VisualViewport) interface is fired when the visual viewport is resized.",
+ "scale": "\n\nThe **`scale`** read-only property of the\n[VisualViewport] interface returns the pinch-zoom scaling factor applied\nto the visual viewport.",
+ "scroll_event": "\n\nThe **`scroll`** event of the [`VisualViewport`](/en-US/docs/Web/API/VisualViewport) interface is fired when the visual viewport is scrolled.",
+ "width": "\n\nThe **`width`** read-only property of the\n[VisualViewport] interface returns the width of the visual viewport, in CSS\npixels."
+ }
+ },
+ "vrdisplay": {
+ "docs": "\n\nThe **`VRDisplay`** interface of the [WebVR API](/en-US/docs/Web/API/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:** This interface was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nAn array of all connected VR Devices can be returned by invoking the [Navigator.getVRDisplays] method.",
+ "properties": {
+ "cancelanimationframe": "\n\nThe **`cancelAnimationFrame()`** method of the [VRDisplay] interface is a special implementation of [Window.cancelAnimationFrame] that unregisters callbacks registered with [VRDisplay.requestAnimationFrame].\n\n> **Note:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "capabilities": "\n\nThe **`capabilities`** read-only property of the [VRDisplay] interface returns a [VRDisplayCapabilities] object that indicates the various capabilities of the `VRDisplay`.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "depthfar": "\n\nThe **`depthFar`** property of the [VRDisplay] interface gets and sets the z-depth defining the far plane of the [eye view frustum](https://en.wikipedia.org/wiki/Viewing_frustum), i.e. the furthest viewable boundary of the scene.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nGenerally you should leave the value as is, but you might want to reduce it if you are trying to improve performance on slower computers.",
+ "depthnear": "\n\nThe **`depthNear`** property of the [VRDisplay] interface gets and sets the z-depth defining the near plane of the [eye view frustum](https://en.wikipedia.org/wiki/Viewing_frustum), i.e. the nearest viewable boundary of the scene.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nGenerally 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.",
+ "displayid": "\n\nThe **`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](/en-US/docs/Web/API/Gamepad_API) (see [Gamepad.displayId]).\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "displayname": "\n\nThe **`displayName`** read-only property of the [VRDisplay] interface returns a human-readable name to identify the `VRDisplay`.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis will generally be something like \"Oculus VR HMD (HMD)\" or \"Oculus VR HMD (Sensor)\".",
+ "exitpresent": "\n\nThe **`exitPresent()`** method of the [VRDisplay] interface stops the `VRDisplay` presenting a scene.\n\n> **Note:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "geteyeparameters": "\n\nThe **`getEyeParameters()`** method of the [VRDisplay] interface returns the [VREyeParameters] object containing the eye parameters for the specified eye.\n\n> **Note:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "getframedata": "\n\nThe **`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:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis includes the [VRPose] and view and projection matrices for the current frame.",
+ "getimmediatepose": "\n\nThe **`getImmediatePose()`** method of the [VRDisplay] interface returns a [VRPose] object defining the current pose of the `VRDisplay`, with no prediction applied.\n\n> **Note:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "getlayers": "\n\nThe **`getLayers()`** method of the [VRDisplay] interface returns the layers currently being presented by the `VRDisplay`.\n\n> **Note:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "getpose": "\n\nThe **`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:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n>\n> It was even deprecated there — instead, you should use [VRDisplay.getFrameData], which also provides a [VRPose] object.",
+ "isconnected": "\n\nThe **`isConnected`** read-only property of the [VRDisplay] interface returns a boolean value indicating whether the `VRDisplay` is connected to the computer.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "ispresenting": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "requestanimationframe": "\n\nThe **`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:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\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.",
+ "requestpresent": "\n\nThe **`requestPresent()`** method of the [VRDisplay] interface starts the `VRDisplay` presenting a scene.\n\n> **Note:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "resetpose": "\n\nThe **`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:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nAfter `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\nThe 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.",
+ "stageparameters": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "submitframe": "\n\nThe **`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:** This method was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThe frame should subsequently be rendered using the [VRPose] and matrices provided by the last call to [VRDisplay.getFrameData]."
+ }
+ },
+ "vrdisplaycapabilities": {
+ "docs": "\n\nThe **`VRDisplayCapabilities`** interface of the [WebVR API](/en-US/docs/Web/API/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:** This interface was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis interface is accessible through the [VRDisplay.capabilities] property.",
+ "properties": {
+ "canpresent": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis 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`.",
+ "hasexternaldisplay": "\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThe **`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:** If 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.",
+ "hasorientation": "\n\nThe **`hasOrientation`** read-only property of the [VRDisplayCapabilities] interface returns `true` if the VR display can track and return orientation information.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "hasposition": "\n\nThe **`hasPosition`** read-only property of the [VRDisplayCapabilities] interface returns `true` if the VR display can track and return position information.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "maxlayers": "\n\nThe **`maxLayers`** read-only property of the [VRDisplayCapabilities] interface returns a number indicating the maximum number of [VRLayerInit]s that the VR display can present at once (e.g. the maximum length of the array that [VRDisplay.requestPresent] can accept.)\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/)."
+ }
+ },
+ "vrdisplayevent": {
+ "docs": "\n\nThe **`VRDisplayEvent`** interface of the [WebVR API](/en-US/docs/Web/API/WebVR_API) represents the event object of WebVR-related events (see the [list of WebVR window extensions](/en-US/docs/Web/API/WebVR_API#window)).\n\n> **Note:** This interface was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "properties": {
+ "display": "\n\nThe **`display`** read-only property of the [VRDisplayEvent] interface returns the [VRDisplay] associated with this event.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "reason": "\n\nThe **`reason`** read-only property of the [VRDisplayEvent] interface returns a human-readable reason why the event was fired.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/)."
+ }
+ },
+ "vreyeparameters": {
+ "docs": "\n\nThe **`VREyeParameters`** interface of the [WebVR API](/en-US/docs/Web/API/WebVR_API) represents all the information required to correctly render a scene for a given eye, including field of view information.\n\n> **Note:** This interface was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis interface is accessible through the [VRDisplay.getEyeParameters] method.\n\n> **Warning:** The 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].",
+ "properties": {
+ "fieldofview": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "maximumfieldofview": "\n\nThe **`maximumFieldOfView`** read-only property of the [VREyeParameters] interface describes the maximum supported field of view for the current eye.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "minimumfieldofview": "\n\nThe **`minimumFieldOfView`** read-only property of the [VREyeParameters] interface describes the minimum supported field of view for the current eye.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "offset": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis 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.",
+ "renderheight": "\n\nThe **`renderHeight`** read-only property of the [VREyeParameters] interface describes the recommended render target height of each eye viewport, in pixels.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis is already in device pixel units, so there's no need to multiply by [Window.devicePixelRatio](/en-US/docs/Web/API/Window/devicePixelRatio) before setting to [HTMLCanvasElement.height.](/en-US/docs/Web/API/HTMLCanvasElement/height)",
+ "renderwidth": "\n\nThe **`renderWidth`** read-only property of the [VREyeParameters] interface describes the recommended render target width of each eye viewport, in pixels.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis is already in device pixel units, so there's no need to multiply by [Window.devicePixelRatio](/en-US/docs/Web/API/Window/devicePixelRatio) before setting to [HTMLCanvasElement.width.](/en-US/docs/Web/API/HTMLCanvasElement/width)"
+ }
+ },
+ "vrfieldofview": {
+ "docs": "\n\nThe **`VRFieldOfView`** interface of the [WebVR API](/en-US/docs/Web/API/WebVR_API) represents a field of view defined by 4 different degree values describing the view from a center point.\n\n> **Note:** This interface was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "properties": {
+ "downdegrees": "\n\nThe **`downDegrees`** read-only property of the [VRFieldOfView] interface returns the number of degrees downwards that the field of view extends in.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "leftdegrees": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "rightdegrees": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "updegrees": "\n\nThe **`upDegrees`** read-only property of the [VRFieldOfView] interface returns the number of degrees upwards that the field of view extends in.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/)."
+ }
+ },
+ "vrframedata": {
+ "docs": "\n\nThe **`VRFrameData`** interface of the [WebVR API](/en-US/docs/Web/API/WebVR_API) represents all the information needed to render a single frame of a VR scene; constructed by [VRDisplay.getFrameData].\n\n> **Note:** This interface was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "properties": {
+ "leftprojectionmatrix": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis value may be passed directly to WebGL's [WebGLRenderingContext.uniformMatrix] function.\n\n> **Warning:** It 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.",
+ "leftviewmatrix": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis value may be passed directly to WebGL's [WebGLRenderingContext.uniformMatrix] function.\n\n> **Warning:** It is highly recommended that applications use this matrix when rendering.",
+ "pose": "\n\nThe **`pose`** read-only property of the [VRFrameData] interface returns the [VRPose] of the [VRDisplay] at the current [VRFrameData.timestamp].\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "rightprojectionmatrix": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis value may be passed directly to WebGL's [WebGLRenderingContext.uniformMatrix] function.\n\n> **Warning:** It 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.",
+ "rightviewmatrix": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis value may be passed directly to WebGL's [WebGLRenderingContext.uniformMatrix] function.\n\n> **Warning:** It is highly recommended that applications use this matrix when rendering.",
+ "timestamp": "\n\nThe **`timestamp`** read-only property of the [VRFrameData] interface returns a constantly increasing timestamp value representing the time a frame update occurred.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nTimestamps 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\nThe timestamp starts at 0 the first time [VRDisplay.getFrameData] is invoked for a given [VRDisplay]."
+ }
+ },
+ "vrlayerinit": {
+ "docs": "\n\nThe **`VRLayerInit`** dictionary of the [WebVR API](/en-US/docs/Web/API/WebVR_API) represents a content layer (an [HTMLCanvasElement] or [OffscreenCanvas]) that you want to present in a VR display.\n\n> **Note:** This dictionary was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nYou can retrieve `VRLayerInit` objects using [VRDisplay.getLayers], and present them using the [VRDisplay.requestPresent] method.",
+ "properties": {
+ "leftbounds": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "rightbounds": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).",
+ "source": "\n\nThe **`source`** property of the [VRLayerInit] interface (dictionary) defines the canvas whose contents will be presented by the [VRDisplay].\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/)."
+ }
+ },
+ "vrpose": {
+ "docs": "\n\nThe **`VRPose`** interface of the [WebVR API](/en-US/docs/Web/API/WebVR_API) represents the state of a VR sensor at a given timestamp (which includes orientation, position, velocity, and acceleration information).\n\n> **Note:** This interface was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis interface is accessible through the [VRDisplay.getPose] and [VRDisplay.getFrameData] methods. [VRDisplay.getPose] is deprecated.",
+ "properties": {
+ "angularacceleration": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nIn other words, the current acceleration of the sensor's rotation around the `x`, `y`, and `z` axes.",
+ "angularvelocity": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nIn other words, the current velocity at which the sensor is rotating around the `x`, `y`, and `z` axes.",
+ "linearacceleration": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nIn other words, the current acceleration of the sensor, along the `x`, `y`, and `z` axes.",
+ "linearvelocity": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nIn other words, the current velocity at which the sensor is moving along the `x`, `y`, and `z` axes.",
+ "orientation": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThe 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\nThe 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.",
+ "position": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThe 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\nPositions 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:** By 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."
+ }
+ },
+ "vrstageparameters": {
+ "docs": "\n\nThe **`VRStageParameters`** interface of the [WebVR API](/en-US/docs/Web/API/WebVR_API) represents the values describing the stage area for devices that support room-scale experiences.\n\n> **Note:** This interface was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis interface is accessible through the [VRDisplay.stageParameters] property.",
+ "properties": {
+ "sittingtostandingtransform": "\n\nThe **`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:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nBasically, this can be passed into your WebGL code to transform the rendered view from a sitting to standing view.",
+ "sizex": "\n\nThe **`sizeX`** read-only property of the [VRStageParameters] interface _returns the width_ of the play-area bounds in meters.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThe 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.",
+ "sizey": "\n\nThe **`sizeY`** read-only property of the [VRStageParameters] interface _returns the depth_ of the play-area bounds in meters.\n\n> **Note:** This property was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThe 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": {
+ "docs": "\n\nThe `VTTCue` interface—part of the API for handling WebVTT (text tracks on media presentations)—describes and controls the text track associated with a particular `track` element.\n\n",
+ "properties": {
+ "align": "\n\nThe **`align`** property of the [VTTCue] interface represents the alignment of all of the lines of text in the text box.",
+ "getcueashtml": "\n\nThe **`getCueAsHTML()`** method of the [VTTCue] interface returns a [DocumentFragment] containing the cue content.",
+ "line": "``\n\nThe **`line`** property of the [VTTCue] interface represents the cue line of this WebVTT cue.",
+ "linealign": "\n\nThe **`lineAlign`** property of the [VTTCue] interface represents the alignment of this VTT cue.",
+ "position": "\n\nThe **`position`** property of the [VTTCue] interface represents the indentation of the cue within the line.",
+ "positionalign": "\n\nThe **`positionAlign`** property of the [VTTCue] interface is used to determine what [VTTCue.position] is anchored to.",
+ "region": "\n\nThe **`region`** property of the [VTTCue] interface returns and sets the [VTTRegion] that this cue belongs to.",
+ "size": "\n\nThe **`size`** property of the [VTTCue] interface represents the size of the cue as a percentage of the video size.",
+ "snaptolines": "\n\nThe **`snapToLines`** property of the [VTTCue] interface is a `Boolean` indicating if the [VTTCue.line] property is an integer number of lines, or a percentage of the video size.",
+ "text": "\n\nThe **`text`** property of the [VTTCue] interface represents the text contents of the cue.",
+ "vertical": "\n\nThe **`vertical`** property of the [VTTCue] interface is a string representing the cue's writing direction."
+ }
+ },
+ "vttregion": {
+ "docs": "\n\nThe `VTTRegion` interface—part of the API for handling WebVTT (text tracks on media presentations)—describes a portion of the video to render a [VTTCue] onto."
+ },
+ "wakelock": {
+ "docs": "\n\nThe **`WakeLock`** interface of the [Screen Wake Lock API] prevents device screens from dimming or locking when an application needs to keep running.\n\nThe system wake lock is exposed through the [Navigator.wakeLock] property.",
+ "properties": {
+ "request": "\n\nThe **`request()`** method of the\n[WakeLock] interface returns a `Promise` that resolves with a\n[WakeLockSentinel] object, which allows control over screen dimming and locking."
+ }
+ },
+ "wakelocksentinel": {
+ "docs": "\n\nThe **`WakeLockSentinel`** interface of the [Screen Wake Lock API] provides a handle to the underlying platform wake lock and can be manually released and reacquired. An `Object` representing the wake lock is returned via the [WakeLock.request] method.\n\nAn acquired `WakeLockSentinel` can be released manually via the [WakeLockSentinel.release] method, or automatically via the platform wake lock. This can happen if the document becomes inactive or looses visibility, if the device is low on power or the user turns on a power save mode. Releasing all `WakeLockSentinel` instances of a given wake lock type will cause the underlying platform wake lock to be released.\n\n",
+ "properties": {
+ "release": "\n\nThe **`release()`** method of the\n[WakeLockSentinel] interface releases the\n[WakeLockSentinel], returning a `Promise` that is resolved\nonce the sentinel has been successfully released.",
+ "release_event": "\n\nThe **`release`** event of the [WakeLockSentinel] interface is fired when the sentinel object's handle has been released.\n\nA [WakeLockSentinel] can be released manually via the `release()` method, or\nautomatically via the platform wake lock. This can happen if the document becomes\ninactive or looses visibility, if the device is low on power or the user turns on a\npower save mode.",
+ "released": "\n\nThe **`released`** read-only property of the\n[WakeLockSentinel] interface returns a boolean that indicates whether\na [WakeLockSentinel] has been released yet.",
+ "type": "\n\nThe **`type`** read-only property of the\n[WakeLockSentinel] interface returns a string\nrepresentation of the currently acquired [WakeLockSentinel] type."
+ }
+ },
+ "waveshapernode": {
+ "docs": "\n\nThe **`WaveShaperNode`** interface represents a non-linear distorter.\n\nIt is an [AudioNode] that uses a curve to apply a wave shaping distortion to the signal. Beside obvious distortion effects, it is often used to add a warm feeling to the signal.\n\nA `WaveShaperNode` always has exactly one input and one output.\n\n<table class=\"properties\">\n <tbody>\n <tr>\n <th scope=\"row\">Number of inputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Number of outputs</th>\n <td><code>1</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count mode</th>\n <td><code>\"max\"</code></td>\n </tr>\n <tr>\n <th scope=\"row\">Channel count</th>\n <td><code>2</code> (not used in the default count mode)</td>\n </tr>\n <tr>\n <th scope=\"row\">Channel interpretation</th>\n <td><code>\"speakers\"</code></td>\n </tr>\n </tbody>\n</table>",
+ "properties": {
+ "curve": "\n\nThe `curve` property of the [WaveShaperNode] interface is a `Float32Array` of numbers describing the distortion to apply.\n\nThe mid-element of the array is applied to any signal value of `0`, the first one to signal values of `-1`, and the last to signal values of `1`; values lower than `-1` or greater than `1` are treated like `-1` or `1` respectively.\n\nIf necessary, intermediate values of the distortion curve are linearly interpolated.\n\n> **Note:** The array can be a `null` value: in that case, no distortion is applied to the input signal.",
+ "oversample": "\n\nThe `oversample` property of the [WaveShaperNode] interface is an enumerated value indicating if oversampling must be used. Oversampling is a technique for creating more samples (up-sampling) before applying a distortion effect to the audio signal.\n\nOnce applied, the number of samples is reduced to its initial numbers. This leads to better results by avoiding some aliasing, but comes at the expense of a lower precision shaping curve.\n\nThe possible `oversample` values are:\n\n| Value | Effect |\n| -------- | ---------------------------------------------------------------------- |\n| `'none'` | Do not perform any oversampling. |\n| `'2x'` | Double the amount of samples before applying the shaping curve. |\n| `'4x'` | Multiply by 4 the amount of samples before applying the shaping curve. |"
+ }
+ },
+ "webgl2renderingcontext": {
+ "docs": "\n\nThe **WebGL2RenderingContext** interface provides the OpenGL ES 3.0 rendering context for the drawing surface of an HTML `canvas` element.\n\nTo get an object of this interface, call [HTMLCanvasElement.getContext] on a `<canvas>` element, supplying \"webgl2\" as the argument:\n\n```js\nconst canvas = document.getElementById(\"myCanvas\");\nconst gl = canvas.getContext(\"webgl2\");\n```\n\n> **Note:** WebGL 2 is an extension to WebGL 1. The `WebGL2RenderingContext` interface implements all members of the [WebGLRenderingContext] interface. Some methods of the WebGL 1 context can accept additional values when used in a WebGL 2 context. You will find this info noted on the WebGL 1 reference pages.\n\nThe [WebGL tutorial](/en-US/docs/Web/API/WebGL_API/Tutorial) has more information, examples, and resources on how to get started with WebGL.",
+ "properties": {
+ "beginquery": "\n\nThe **`WebGL2RenderingContext.beginQuery()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) starts an asynchronous query. The\n`target` parameter indicates which kind of query to begin.",
+ "begintransformfeedback": "\n\nThe **`WebGL2RenderingContext.beginTransformFeedback()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) starts a transform\nfeedback operation.",
+ "bindbufferbase": "\n\nThe **`WebGL2RenderingContext.bindBufferBase()`** method of the\n[WebGL 2 API](/en-US/docs/Web/API/WebGL_API) binds a given\n[WebGLBuffer] to a given binding point (`target`) at a given\n`index`.",
+ "bindbufferrange": "\n\nThe **`WebGL2RenderingContext.bindBufferRange()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) binds a range of a given\n[WebGLBuffer] to a given binding point (`target`) at a given\n`index`.",
+ "bindsampler": "\n\nThe **`WebGL2RenderingContext.bindSampler()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) binds a\npassed [WebGLSampler] object to the texture unit at the passed index.",
+ "bindtransformfeedback": "\n\nThe **`WebGL2RenderingContext.bindTransformFeedback()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) binds a\npassed [WebGLTransformFeedback] object to the current GL state.",
+ "bindvertexarray": "\n\nThe **`WebGL2RenderingContext.bindVertexArray()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) binds a\npassed [WebGLVertexArrayObject] object to the buffer.",
+ "blitframebuffer": "\n\nThe **`WebGL2RenderingContext.blitFramebuffer()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) transfers a block of pixels\nfrom the read framebuffer to the draw framebuffer. Read and draw framebuffers are bound\nusing [WebGLRenderingContext.bindFramebuffer].",
+ "clearbuffer": "\n\nThe **`WebGL2RenderingContext.clearBuffer[fiuv]()`** methods of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) clear buffers from the\ncurrently bound framebuffer.",
+ "clientwaitsync": "\n\nThe **`WebGL2RenderingContext.clientWaitSync()`** method of the\n[WebGL 2 API](/en-US/docs/Web/API/WebGL_API) blocks and waits for a\n[WebGLSync] object to become signaled or a given timeout to be passed.",
+ "compressedtexsubimage3d": "\n\nThe **`WebGL2RenderingContext.compressedTexSubImage3D()`**\nmethod of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies a\nthree-dimensional sub-rectangle for a texture image in a compressed format.",
+ "copybuffersubdata": "\n\nThe **`WebGL2RenderingContext.copyBufferSubData()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) copies part of the data of a\nbuffer to another buffer.",
+ "copytexsubimage3d": "\n\nThe **`WebGL2RenderingContext.copyTexSubImage3D()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) copies pixels from the current\n[WebGLFramebuffer] into an existing 3D texture sub-image.",
+ "createquery": "\n\nThe **`WebGL2RenderingContext.createQuery()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) creates and initializes\n[WebGLQuery] objects, which provide ways to asynchronously query for\ninformation.",
+ "createsampler": "\n\nThe **`WebGL2RenderingContext.createSampler()`** method of the\n[WebGL 2 API](/en-US/docs/Web/API/WebGL_API) creates and initializes\n[WebGLSampler] objects.",
+ "createtransformfeedback": "\n\nThe **`WebGL2RenderingContext.createTransformFeedback()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) creates and\ninitializes [WebGLTransformFeedback] objects.",
+ "createvertexarray": "\n\nThe **`WebGL2RenderingContext.createVertexArray()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) creates and initializes a\n[WebGLVertexArrayObject] object that represents a vertex array object (VAO)\npointing to vertex array data and which provides names for different sets of vertex\ndata.",
+ "deletequery": "\n\nThe **`WebGL2RenderingContext.deleteQuery()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLQuery] object.",
+ "deletesampler": "\n\nThe **`WebGL2RenderingContext.deleteSampler()`** method of the\n[WebGL 2 API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLSampler] object.",
+ "deletesync": "\n\nThe **`WebGL2RenderingContext.deleteSync()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLSync] object.",
+ "deletetransformfeedback": "\n\nThe **`WebGL2RenderingContext.deleteTransformFeedback()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLTransformFeedback] object.",
+ "deletevertexarray": "\n\nThe **`WebGL2RenderingContext.deleteVertexArray()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLVertexArrayObject] object.",
+ "drawarraysinstanced": "\n\nThe **`WebGL2RenderingContext.drawArraysInstanced()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) renders primitives from\narray data like the [WebGLRenderingContext.drawArrays]\nmethod. In addition, it can execute multiple instances of the range of elements.\n\n> **Note:** When using [WebGLRenderingContext],\n> the [ANGLE_instanced_arrays] extension can provide this method,\n> too.",
+ "drawbuffers": "\n\nThe **`WebGL2RenderingContext.drawBuffers()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) defines draw buffers to which\nfragment colors are written into. The draw buffer settings are part of the state of the\ncurrently bound framebuffer or the drawingbuffer if no framebuffer is bound.",
+ "drawelementsinstanced": "\n\nThe **`WebGL2RenderingContext.drawElementsInstanced()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) renders primitives from\narray data like the [WebGLRenderingContext.drawElements] method. In addition, it can execute multiple instances of a set\nof elements.\n\n> **Note:** When using [WebGLRenderingContext], the [ANGLE_instanced_arrays] extension can provide this method,\n> too.",
+ "drawrangeelements": "\n\nThe **`WebGL2RenderingContext.drawRangeElements()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) renders primitives from array\ndata in a given range.",
+ "endquery": "\n\nThe **`WebGL2RenderingContext.endQuery()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) marks the end of a given query\ntarget.",
+ "endtransformfeedback": "\n\nThe **`WebGL2RenderingContext.endTransformFeedback()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) ends a transform feedback\noperation.",
+ "fencesync": "\n\nThe **`WebGL2RenderingContext.fenceSync()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) creates a new\n[WebGLSync] object and inserts it into the GL command stream.",
+ "framebuffertexturelayer": "\n\nThe **`WebGL2RenderingContext.framebufferTextureLayer()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) attaches a single\nlayer of a texture to a framebuffer.\n\nThis method is similar to [WebGLRenderingContext.framebufferTexture2D],\nbut only a given single layer of the texture level is attached to the attachment point.",
+ "getactiveuniformblockname": "\n\nThe **`WebGL2RenderingContext.getActiveUniformBlockName()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) retrieves the name\nof the active uniform block at a given index within a [WebGLProgram].",
+ "getactiveuniformblockparameter": "\n\nThe\n**`WebGL2RenderingContext.getActiveUniformBlockParameter()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) retrieves\ninformation about an active uniform block within a [WebGLProgram].",
+ "getactiveuniforms": "\n\nThe **`WebGL2RenderingContext.getActiveUniforms()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) retrieves information about\nactive uniforms within a [WebGLProgram].",
+ "getbuffersubdata": "\n\nThe **`WebGL2RenderingContext.getBufferSubData()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) reads data from a buffer\nbinding point and writes them to an `ArrayBuffer` or\n`SharedArrayBuffer`.",
+ "getfragdatalocation": "\n\nThe **`WebGL2RenderingContext.getFragDataLocation()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns the binding of\ncolor numbers to user-defined varying out variables.",
+ "getindexedparameter": "\n\nThe **`WebGL2RenderingContext.getIndexedParameter()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns indexed\ninformation about a given `target`.",
+ "getinternalformatparameter": "\n\nThe **`WebGL2RenderingContext.getInternalformatParameter()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns\ninformation about implementation-dependent support for internal formats.",
+ "getquery": "\n\nThe **`WebGL2RenderingContext.getQuery()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns the currently active\n[WebGLQuery] for the `target`, or [`null`](/en-US/docs/Web/JavaScript/Reference/Operators/null).",
+ "getqueryparameter": "\n\nThe **`WebGL2RenderingContext.getQueryParameter()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns parameter\ninformation of a [WebGLQuery] object.",
+ "getsamplerparameter": "\n\nThe **`WebGL2RenderingContext.getSamplerParameter()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns parameter\ninformation of a [WebGLSampler] object.",
+ "getsyncparameter": "\n\nThe **`WebGL2RenderingContext.getSyncParameter()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns parameter\ninformation of a [WebGLSync] object.",
+ "gettransformfeedbackvarying": "\n\nThe **`WebGL2RenderingContext.getTransformFeedbackVarying()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns\ninformation about varying variables from [WebGLTransformFeedback] buffers.",
+ "getuniformblockindex": "\n\nThe **`WebGL2RenderingContext.getUniformBlockIndex()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) retrieves the index of\na uniform block within a [WebGLProgram].",
+ "getuniformindices": "\n\nThe **`WebGL2RenderingContext.getUniformIndices()`** method of\nthe [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) retrieves the indices of a\nnumber of uniforms within a [WebGLProgram].",
+ "invalidateframebuffer": "\n\nThe **`WebGL2RenderingContext.invalidateFramebuffer()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) invalidates the contents\nof attachments in a framebuffer.",
+ "invalidatesubframebuffer": "\n\nThe **`WebGL2RenderingContext.invalidateSubFramebuffer()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) invalidates\nportions of the contents of attachments in a framebuffer.",
+ "isquery": "\n\nThe **`WebGL2RenderingContext.isQuery()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed object is a valid [WebGLQuery] object.",
+ "issampler": "\n\nThe **`WebGL2RenderingContext.isSampler()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed object is a valid [WebGLSampler] object.",
+ "issync": "\n\nThe **`WebGL2RenderingContext.isSync()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed object is a valid [WebGLSync] object.",
+ "istransformfeedback": "\n\nThe **`WebGL2RenderingContext.isTransformFeedback()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns `true`\nif the passed object is a valid [WebGLTransformFeedback] object.",
+ "isvertexarray": "\n\nThe **`WebGL2RenderingContext.isVertexArray()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed object is a valid [WebGLVertexArrayObject] object.",
+ "pausetransformfeedback": "\n\nThe **`WebGL2RenderingContext.pauseTransformFeedback()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) pauses a transform\nfeedback operation.",
+ "readbuffer": "\n\nThe **`WebGL2RenderingContext.readBuffer()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) selects a color buffer as the\nsource for pixels for subsequent calls to\n[WebGLRenderingContext.copyTexImage2D],\n[WebGLRenderingContext.copyTexSubImage2D],\n[WebGL2RenderingContext.copyTexSubImage3D] or\n[WebGLRenderingContext.readPixels].",
+ "renderbufferstoragemultisample": "\n\nThe\n**`WebGL2RenderingContext.renderbufferStorageMultisample()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns creates\nand initializes a renderbuffer object's data store and allows specifying a number of\nsamples to be used.",
+ "resumetransformfeedback": "\n\nThe **`WebGL2RenderingContext.resumeTransformFeedback()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) resumes a\ntransform feedback operation.",
+ "samplerparameter": "\n\nThe **`WebGL2RenderingContext.samplerParameter[if]()`** methods\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) set\n[WebGLSampler] parameters.",
+ "teximage3d": "\n\nThe **`WebGLRenderingContext.texImage3D()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies a three-dimensional\ntexture image.",
+ "texstorage2d": "\n\nThe **`WebGL2RenderingContext.texStorage2D()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) specifies all levels of\ntwo-dimensional texture storage.",
+ "texstorage3d": "\n\nThe **`WebGL2RenderingContext.texStorage3D()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) specifies all levels of a\nthree-dimensional texture or two-dimensional array texture.",
+ "texsubimage3d": "\n\nThe **`WebGL2RenderingContext.texSubImage3D()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) specifies a sub-rectangle of the\ncurrent texture.",
+ "transformfeedbackvaryings": "\n\nThe **`WebGL2RenderingContext.transformFeedbackVaryings()`**\nmethod of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) specifies values\nto record in [WebGLTransformFeedback] buffers.",
+ "uniform": "\n\nThe **`WebGL2RenderingContext.uniform[1234][uif][v]()`**\nmethods of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specify values of\nuniform variables.\n\n> **Note:** `ui` stands for _unsigned integer_, `i` for _integer_, `f` for _float_, and `v` for _vector_.\n> Not all combinations are valid: `u` cannot be combined with `f`.\n> See the syntax table below. Equivalent Regex: `uniform[1234](u?i|f)v?`",
+ "uniformblockbinding": "\n\nThe **`WebGL2RenderingContext.uniformBlockBinding()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) assigns binding points\nfor active uniform blocks.",
+ "uniformmatrix": "\n\nThe **`WebGL2RenderingContext.uniformMatrix[234]x[234]fv()`**\nmethods of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) specify matrix\nvalues for uniform variables.\n\n> **Note:** There are no `2x2`, `3x3`, and `4x4` versions of\n> this method. They are abbreviated in `2`, `3`, and\n> `4`, respectively. See the syntax below.",
+ "vertexattribdivisor": "\n\nThe **`WebGL2RenderingContext.vertexAttribDivisor()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) modifies the rate at\nwhich generic vertex attributes advance when rendering multiple instances of primitives\nwith [WebGL2RenderingContext.drawArraysInstanced] and\n[WebGL2RenderingContext.drawElementsInstanced].\n\n> **Note:** When using [WebGLRenderingContext], the [ANGLE_instanced_arrays] extension can provide this method,\n> too.",
+ "vertexattribi": "\n\nThe **`WebGL2RenderingContext.vertexAttribI4[u]i[v]()`**\nmethods of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) specify integer\nvalues for generic vertex attributes.",
+ "vertexattribipointer": "\n\nThe **`WebGL2RenderingContext.vertexAttribIPointer()`** method\nof the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) specifies integer data\nformats and locations of vertex attributes in a vertex attributes array.",
+ "waitsync": "\n\nThe **`WebGL2RenderingContext.waitSync()`** method of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API) returns immediately, but waits on\nthe GL server until the given [WebGLSync] object is signaled.\n\nThe method is a no-op in the absence of the possibility of synchronizing between\nmultiple GL contexts."
+ }
+ },
+ "webglactiveinfo": {
+ "docs": "\n\nThe **WebGLActiveInfo** interface is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and represents the information returned by calling the [WebGLRenderingContext.getActiveAttrib] and [WebGLRenderingContext.getActiveUniform] methods.",
+ "properties": {
+ "name": "\n\nThe read-only **`WebGLActiveInfo.name`** property represents the name of the requested data returned by calling the [WebGLRenderingContext.getActiveAttrib] or [WebGLRenderingContext.getActiveUniform] methods.",
+ "size": "\n\nThe read-only **`WebGLActiveInfo.size`** property is a `Number` representing the size of the requested data returned by calling the [WebGLRenderingContext.getActiveAttrib] or [WebGLRenderingContext.getActiveUniform] methods.",
+ "type": "\n\nThe read-only **`WebGLActiveInfo.type`** property represents the type of the requested data returned by calling the [WebGLRenderingContext.getActiveAttrib] or [WebGLRenderingContext.getActiveUniform] methods."
+ }
+ },
+ "webglbuffer": {
+ "docs": "\n\nThe **WebGLBuffer** interface is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and represents an opaque buffer object storing data such as vertices or colors.\n\n"
+ },
+ "webglcontextevent": {
+ "docs": "\n\nThe **WebContextEvent** interface is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and is an interface for an event that is generated in response to a status change to the WebGL rendering context.\n\n",
+ "properties": {
+ "statusmessage": "\n\nThe read-only **`WebGLContextEvent.statusMessage`** property contains additional event status information, or is an empty string if no additional information is available."
+ }
+ },
+ "webglframebuffer": {
+ "docs": "\n\nThe **WebGLFramebuffer** interface is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and represents a collection of buffers that serve as a rendering destination.\n\n"
+ },
+ "webglobject": {
+ "docs": "\n\nThe **`WebGLObject`** is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and is the parent interface for all WebGL objects.\n\nThis object has no public properties or methods on its own.\n\nIf the WebGL context is lost, the internal _invalidated_ flag of all `WebGLObject` instances is set to `true`."
+ },
+ "webglprogram": {
+ "docs": "\n\nThe **`WebGLProgram`** is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and is a combination of two compiled [WebGLShader]s consisting of a vertex shader and a fragment shader (both written in GLSL).\n\nTo create a `WebGLProgram`, call the GL context's [WebGLRenderingContext.createProgram] function. After attaching the shader programs using [WebGLRenderingContext.attachShader], you link them into a usable program. This is shown in the code below.\n\n```js\nconst program = gl.createProgram();\n\n// Attach pre-existing shaders\ngl.attachShader(program, vertexShader);\ngl.attachShader(program, fragmentShader);\n\ngl.linkProgram(program);\n\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\nSee [WebGLShader] for information on creating the `vertexShader` and `fragmentShader` in the above example."
+ },
+ "webglquery": {
+ "docs": "\n\nThe **`WebGLQuery`** interface is part of the [WebGL 2](/en-US/docs/Web/API/WebGL_API) API and provides ways to asynchronously query for information. By default, occlusion queries and primitive queries are available.\n\nAnother kind of queries are disjoint timer queries, which allow you to measure performance and profiling of your GPU. Disjoint timer queries are available with the [EXT_disjoint_timer_query] extension only.\n\nWhen working with `WebGLQuery` objects, the following methods of the [WebGL2RenderingContext] are useful:\n\n- [WebGL2RenderingContext.createQuery]\n- [WebGL2RenderingContext.deleteQuery]\n- [WebGL2RenderingContext.isQuery]\n- [WebGL2RenderingContext.beginQuery]\n- [WebGL2RenderingContext.endQuery]\n- [WebGL2RenderingContext.getQuery]\n- [WebGL2RenderingContext.getQueryParameter]"
+ },
+ "webglrenderbuffer": {
+ "docs": "\n\nThe **WebGLRenderbuffer** interface is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and represents a buffer that can contain an image, or that can be a source or target of a rendering operation.\n\n"
+ },
+ "webglrenderingcontext": {
+ "docs": "\n\nThe **`WebGLRenderingContext`** interface provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML `canvas` element.\n\nTo get an access to a WebGL context for 2D and/or 3D graphics rendering, call [HTMLCanvasElement.getContext] on a `<canvas>` element, supplying \"webgl\" as the argument:\n\n```js\nconst canvas = document.getElementById(\"myCanvas\");\nconst gl = canvas.getContext(\"webgl\");\n```\n\nOnce you have the WebGL rendering context for a canvas, you can render within it. The [WebGL tutorial](/en-US/docs/Web/API/WebGL_API/Tutorial) has more information, examples, and resources on how to get started with WebGL.\n\nIf you require a WebGL 2.0 context, see [WebGL2RenderingContext]; this supplies access to an implementation of OpenGL ES 3.0 graphics.",
+ "properties": {
+ "activetexture": "\n\nThe **`WebGLRenderingContext.activeTexture()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) specifies which texture unit to\nmake active.",
+ "attachshader": "\n\nThe **WebGLRenderingContext.attachShader()** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) attaches either a fragment or\nvertex [WebGLShader] to a [WebGLProgram].",
+ "bindattriblocation": "\n\nThe **`WebGLRenderingContext.bindAttribLocation()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) binds a generic vertex index\nto an attribute variable.",
+ "bindbuffer": "\n\nThe **`WebGLRenderingContext.bindBuffer()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) binds a given\n[WebGLBuffer] to a target.",
+ "bindframebuffer": "\n\nThe **`WebGLRenderingContext.bindFramebuffer()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) binds to the specified target the provided [WebGLFramebuffer], or, if the `framebuffer` argument is null, the default [WebGLFramebuffer], which is associated with the canvas rendering context.",
+ "bindrenderbuffer": "\n\nThe **`WebGLRenderingContext.bindRenderbuffer()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) binds a given\n[WebGLRenderbuffer] to a target, which must be\n`gl.RENDERBUFFER`.",
+ "bindtexture": "\n\nThe **`WebGLRenderingContext.bindTexture()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) binds a given\n[WebGLTexture] to a target (binding point).",
+ "blendcolor": "\n\nThe **`WebGLRenderingContext.blendColor()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) is used to set the source and\ndestination blending factors.",
+ "blendequation": "\n\nThe **`WebGLRenderingContext.blendEquation()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) is used to set both the RGB blend\nequation and alpha blend equation to a single equation.\n\nThe blend equation determines how a new pixel is combined with a pixel already in the\n[WebGLFramebuffer].",
+ "blendequationseparate": "\n\nThe **`WebGLRenderingContext.blendEquationSeparate()`** method\nof the [WebGL API](/en-US/docs/Web/API/WebGL_API) is used to set the RGB\nblend equation and alpha blend equation separately.\n\nThe blend equation determines how a new pixel is combined with a pixel already in the\n[WebGLFramebuffer].",
+ "blendfunc": "\n\nThe **`WebGLRenderingContext.blendFunc()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) defines which function is used for\nblending pixel arithmetic.",
+ "blendfuncseparate": "\n\nThe **`WebGLRenderingContext.blendFuncSeparate()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) defines which function is used\nfor blending pixel arithmetic for RGB and alpha components separately.",
+ "bufferdata": "\n\nThe **`WebGLRenderingContext.bufferData()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) initializes and creates the\nbuffer object's data store.",
+ "buffersubdata": "\n\nThe **`WebGLRenderingContext.bufferSubData()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) updates a subset of a buffer\nobject's data store.",
+ "canvas": "\n\nThe **`WebGLRenderingContext.canvas`** property is a read-only\nreference to the [HTMLCanvasElement] or [OffscreenCanvas]\nobject that is associated with the context. It might be [`null`](/en-US/docs/Web/JavaScript/Reference/Operators/null) if it is not\nassociated with a `canvas` element or an [OffscreenCanvas]\nobject.",
+ "checkframebufferstatus": "\n\nThe **`WebGLRenderingContext.checkFramebufferStatus()`** method\nof the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns the completeness\nstatus of the [WebGLFramebuffer] object.",
+ "clear": "\n\nThe **`WebGLRenderingContext.clear()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) clears buffers to preset values.\n\nThe preset values can be set by [WebGLRenderingContext.clearColor], [WebGLRenderingContext.clearDepth] or\n[WebGLRenderingContext.clearStencil].\n\nThe scissor box, dithering, and buffer writemasks can affect the `clear()`\nmethod.",
+ "clearcolor": "\n\nThe **`WebGLRenderingContext.clearColor()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies the color values used\nwhen clearing color buffers.\n\nThis specifies what color values to use when calling the\n[WebGLRenderingContext.clear] method. The values are clamped\nbetween 0 and 1.",
+ "cleardepth": "\n\nThe **`WebGLRenderingContext.clearDepth()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies the clear value for the\ndepth buffer.\n\nThis specifies what depth value to use when calling the\n[WebGLRenderingContext.clear] method. The value is clamped\nbetween 0 and 1.",
+ "clearstencil": "\n\nThe **`WebGLRenderingContext.clearStencil()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies the clear value for the\nstencil buffer.\n\nThis specifies what stencil value to use when calling the\n[WebGLRenderingContext.clear] method.",
+ "colormask": "\n\nThe **`WebGLRenderingContext.colorMask()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) sets which color components to\nenable or to disable when drawing or rendering to a [WebGLFramebuffer].",
+ "compileshader": "\n\nThe **WebGLRenderingContext.compileShader()** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) compiles a GLSL shader into binary\ndata so that it can be used by a [WebGLProgram].",
+ "compressedteximage2d": "\n\nThe **`WebGLRenderingContext.compressedTexImage2D()`**\nand **`WebGL2RenderingContext.compressedTexImage3D()`** methods\nof the [WebGL API](/en-US/docs/Web/API/WebGL_API) specify a two- or\nthree-dimensional texture image in a compressed format.\n\nCompressed image formats must be enabled by [WebGL extensions](/en-US/docs/Web/API/WebGL_API/Using_Extensions) before\nusing these methods.",
+ "compressedtexsubimage2d": "\n\nThe **`WebGLRenderingContext.compressedTexSubImage2D()`**\nmethod of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies a\ntwo-dimensional sub-rectangle for a texture image in a compressed format.\n\nCompressed image formats must be enabled by [WebGL extensions](/en-US/docs/Web/API/WebGL_API/Using_Extensions) before\nusing this method or a [WebGL2RenderingContext] must be used.",
+ "copyteximage2d": "\n\nThe **`WebGLRenderingContext.copyTexImage2D()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) copies pixels from the current\n[WebGLFramebuffer] into a 2D texture image.",
+ "copytexsubimage2d": "\n\nThe **`WebGLRenderingContext.copyTexSubImage2D()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) copies pixels from the current\n[WebGLFramebuffer] into an existing 2D texture sub-image.",
+ "createbuffer": "\n\nThe **`WebGLRenderingContext.createBuffer()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) creates and initializes a\n[WebGLBuffer] storing data such as vertices or colors.",
+ "createframebuffer": "\n\nThe **`WebGLRenderingContext.createFramebuffer()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) creates and initializes a\n[WebGLFramebuffer] object.",
+ "createprogram": "\n\nThe **`WebGLRenderingContext.createProgram()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) creates and initializes a\n[WebGLProgram] object.",
+ "createrenderbuffer": "\n\nThe **`WebGLRenderingContext.createRenderbuffer()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) creates and initializes a\n[WebGLRenderbuffer] object.",
+ "createshader": "\n\nThe [WebGLRenderingContext]\nmethod **`createShader()`** of the [WebGL API](/en-US/docs/Web/API/WebGL_API) creates a\n[WebGLShader] that can then be configured further using\n[WebGLRenderingContext.shaderSource] and\n[WebGLRenderingContext.compileShader].",
+ "createtexture": "\n\nThe **`WebGLRenderingContext.createTexture()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) creates and initializes a\n[WebGLTexture] object.",
+ "cullface": "\n\nThe **`WebGLRenderingContext.cullFace()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies whether or not front-\nand/or back-facing polygons can be culled.",
+ "deletebuffer": "\n\nThe **`WebGLRenderingContext.deleteBuffer()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLBuffer]. This method has no effect if the buffer has already been\ndeleted. Normally you don't need to call this method yourself, when the buffer object is dereferenced it will be marked as free.",
+ "deleteframebuffer": "\n\nThe **`WebGLRenderingContext.deleteFramebuffer()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLFramebuffer] object. This method has no effect if the frame buffer\nhas already been deleted.",
+ "deleteprogram": "\n\nThe **`WebGLRenderingContext.deleteProgram()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLProgram] object. This method has no effect if the program has already\nbeen deleted.",
+ "deleterenderbuffer": "\n\nThe **`WebGLRenderingContext.deleteRenderbuffer()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLRenderbuffer] object. This method has no effect if the render buffer\nhas already been deleted.",
+ "deleteshader": "\n\nThe **`WebGLRenderingContext.deleteShader()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) marks a given\n[WebGLShader] object for deletion. It will then be deleted whenever the\nshader is no longer in use. This method has no effect if the shader has already been\ndeleted, and the [WebGLShader] is automatically marked for deletion when it\nis destroyed by the garbage collector.",
+ "deletetexture": "\n\nThe **`WebGLRenderingContext.deleteTexture()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) deletes a given\n[WebGLTexture] object. This method has no effect if the texture has already\nbeen deleted.",
+ "depthfunc": "\n\nThe **`WebGLRenderingContext.depthFunc()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies a function that compares\nincoming pixel depth to the current depth buffer value.",
+ "depthmask": "\n\nThe **`WebGLRenderingContext.depthMask()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) sets whether writing into the depth\nbuffer is enabled or disabled.",
+ "depthrange": "\n\nThe **`WebGLRenderingContext.depthRange()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies the depth range mapping\nfrom normalized device coordinates to window or viewport coordinates.",
+ "detachshader": "\n\nThe **WebGLRenderingContext.detachShader()** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) detaches a previously\nattached [WebGLShader] from a [WebGLProgram].",
+ "disable": "\n\nThe **`WebGLRenderingContext.disable()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) disables specific WebGL\ncapabilities for this context.",
+ "disablevertexattribarray": "\n\nThe **`WebGLRenderingContext.disableVertexAttribArray()`**\nmethod of the [WebGL API](/en-US/docs/Web/API/WebGL_API) turns the generic\nvertex attribute array off at a given index position.",
+ "drawarrays": "\n\nThe **`WebGLRenderingContext.drawArrays()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) renders primitives from array data.",
+ "drawelements": "\n\nThe **`WebGLRenderingContext.drawElements()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) renders primitives from array data.",
+ "drawingbuffercolorspace": "\n\nThe **`WebGLRenderingContext.drawingBufferColorSpace`** property specifies the color space of the WebGL drawing buffer. Along with the default (`srgb`), the `display-p3` color space can be used.\n\nSee [`WebGLRenderingContext.unpackColorSpace`](/en-US/docs/Web/API/WebGLRenderingContext/unpackColorSpace) for specifying the color space for textures.",
+ "drawingbufferheight": "\n\nThe read-only **`WebGLRenderingContext.drawingBufferHeight`**\nproperty represents the actual height of the current drawing buffer. It should match the\n`height` attribute of the `canvas` element associated with\nthis context, but might differ if the implementation is not able to provide the\nrequested height.",
+ "drawingbufferwidth": "\n\nThe read-only **`WebGLRenderingContext.drawingBufferWidth`**\nproperty represents the actual width of the current drawing buffer. It should match the\n`width` attribute of the `canvas` element associated with\nthis context, but might differ if the implementation is not able to provide the\nrequested width.",
+ "enable": "\n\nThe **`WebGLRenderingContext.enable()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) enables specific WebGL capabilities\nfor this context.",
+ "enablevertexattribarray": "\n\nThe [WebGLRenderingContext] method\n**`enableVertexAttribArray()`**, part of the [WebGL API](/en-US/docs/Web/API/WebGL_API), turns on the generic vertex\nattribute array at the specified index into the list of attribute arrays.\n\n> **Note:** You can disable the attribute array by calling\n> [WebGLRenderingContext.disableVertexAttribArray].\n\nIn WebGL, values that apply to a specific vertex are stored in [attributes](/en-US/docs/Web/API/WebGL_API/Data#attributes). These are only\navailable to the JavaScript code and the vertex shader. Attributes are referenced by an\nindex number into the list of attributes maintained by the GPU. Some vertex attribute\nindices may have predefined purposes, depending on the platform and/or the GPU. Others\nare assigned by the WebGL layer when you create the attributes.\n\nEither way, since attributes cannot be used unless enabled, and are disabled by\ndefault, you need to call `enableVertexAttribArray()` to enable individual\nattributes so that they can be used. Once that's been done, other methods can be used to\naccess the attribute, including [WebGLRenderingContext.vertexAttribPointer], [WebGLRenderingContext.vertexAttrib], and [WebGLRenderingContext.getVertexAttrib].",
+ "finish": "\n\nThe **`WebGLRenderingContext.finish()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) blocks execution until all\npreviously called commands are finished.",
+ "flush": "\n\nThe **`WebGLRenderingContext.flush()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) empties different buffer commands,\ncausing all commands to be executed as quickly as possible.",
+ "framebufferrenderbuffer": "\n\nThe **`WebGLRenderingContext.framebufferRenderbuffer()`**\nmethod of the [WebGL API](/en-US/docs/Web/API/WebGL_API) attaches a\n[WebGLRenderbuffer] object to a [WebGLFramebuffer] object.",
+ "framebuffertexture2d": "\n\nThe **`WebGLRenderingContext.framebufferTexture2D()`** method\nof the [WebGL API](/en-US/docs/Web/API/WebGL_API) attaches a texture to a\n[WebGLFramebuffer].",
+ "frontface": "\n\nThe **`WebGLRenderingContext.frontFace()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies whether polygons are\nfront- or back-facing by setting a winding orientation.",
+ "generatemipmap": "\n\nThe **`WebGLRenderingContext.generateMipmap()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) generates a set of mipmaps for a\n[WebGLTexture] object.\n\nMipmaps are used to create distance with objects. A higher-resolution mipmap is used\nfor objects that are closer, and a lower-resolution mipmap is used for objects that are\nfarther away. It starts with the resolution of the texture image and halves the\nresolution until a 1x1 dimension texture image is created.",
+ "getactiveattrib": "\n\nThe **`WebGLRenderingContext.getActiveAttrib()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) returns a\n[WebGLActiveInfo] object containing size, type, and name of a vertex\nattribute. It is generally used when querying unknown attributes either for debugging or\ngeneric library creation.",
+ "getactiveuniform": "\n\nThe **`WebGLRenderingContext.getActiveUniform()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) returns a\n[WebGLActiveInfo] object containing size, type, and name of a uniform\nattribute. It is generally used when querying unknown uniforms either for debugging or\ngeneric library creation.",
+ "getattachedshaders": "\n\nThe **`WebGLRenderingContext.getAttachedShaders()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) returns a list of\n[WebGLShader] objects attached to a [WebGLProgram].",
+ "getattriblocation": "\n\nThe **`WebGLRenderingContext.getAttribLocation()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) returns the location of an\nattribute variable in a given [WebGLProgram].",
+ "getbufferparameter": "\n\nThe **`WebGLRenderingContext.getBufferParameter()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) returns information about the\nbuffer.",
+ "getcontextattributes": "\n\nThe **`WebGLRenderingContext.getContextAttributes()`** method\nreturns a `WebGLContextAttributes` object that contains the actual context\nparameters. Might return [`null`](/en-US/docs/Web/JavaScript/Reference/Operators/null), if the context is lost.",
+ "geterror": "\n\nThe **`WebGLRenderingContext.getError()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns error information.",
+ "getextension": "\n\nThe **`WebGLRenderingContext.getExtension()`** method enables a\n[WebGL](/en-US/docs/Web/API/WebGL_API) extension.",
+ "getframebufferattachmentparameter": "\n\nThe\n**`WebGLRenderingContext.getFramebufferAttachmentParameter()`**\nmethod of the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns information\nabout a framebuffer's attachment.",
+ "getparameter": "\n\nThe **`WebGLRenderingContext.getParameter()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns a value for the passed\nparameter name.",
+ "getprograminfolog": "\n\nThe **WebGLRenderingContext.getProgramInfoLog** returns the information\nlog for the specified [WebGLProgram] object. It contains errors that\noccurred during failed linking or validation of `WebGLProgram` objects.",
+ "getprogramparameter": "\n\nThe **`WebGLRenderingContext.getProgramParameter()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) returns information about the\ngiven program.",
+ "getrenderbufferparameter": "\n\nThe **`WebGLRenderingContext.getRenderbufferParameter()`**\nmethod of the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns information\nabout the renderbuffer.",
+ "getshaderinfolog": "\n\nThe **WebGLRenderingContext.getShaderInfoLog** returns the information log\nfor the specified [WebGLShader] object. It contains warnings, debugging and\ncompile information.",
+ "getshaderparameter": "\n\nThe **`WebGLRenderingContext.getShaderParameter()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) returns information about the\ngiven shader.",
+ "getshaderprecisionformat": "\n\nThe\n**`WebGLRenderingContext.getShaderPrecisionFormat()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) returns a new\n[WebGLShaderPrecisionFormat] object describing the range and precision for\nthe specified shader numeric format.",
+ "getshadersource": "\n\nThe **`WebGLRenderingContext.getShaderSource()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) returns the source code of a\n[WebGLShader] as a string.",
+ "getsupportedextensions": "\n\nThe **`WebGLRenderingContext.getSupportedExtensions()`** method\nreturns a list of all the supported [WebGL](/en-US/docs/Web/API/WebGL_API)\nextensions.",
+ "gettexparameter": "\n\nThe **`WebGLRenderingContext.getTexParameter()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) returns information about the\ngiven texture.",
+ "getuniform": "\n\nThe **`WebGLRenderingContext.getUniform()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns the value of a uniform\nvariable at a given location.",
+ "getuniformlocation": "\n\nPart of the [WebGL API](/en-US/docs/Web/API/WebGL_API), the [WebGLRenderingContext] method\n**`getUniformLocation()`** returns the location of a\nspecific **uniform** variable which is part of a given\n[WebGLProgram].\n\nThe uniform variable is returned as a\n[WebGLUniformLocation] object, which is an opaque identifier used to\nspecify where in the GPU's memory that uniform variable is located.\n\nOnce you have the uniform's location, you can access the uniform itself using one of\nthe other uniform access methods, passing in the uniform location as one of the\ninputs:\n\n- [WebGLRenderingContext.getUniform]\n - : Returns the value of the uniform at the given location.\n <!-- markdownlint-disable MD052 -- text in code block is misidentified as image -->\n- [`WebGLRenderingContext.uniform[1234][fi][v]()`](/en-US/docs/Web/API/WebGLRenderingContext/uniform)\n - : Sets the uniform's value to the specified value, which may be a single floating\n point or integer number, or a 2-4 component vector specified either as a list of\n values or as a `Float32Array` or `Int32Array`.\n <!-- markdownlint-disable MD052 — text in code block is misidentified as image -->\n- [`WebGLRenderingContext.uniformMatrix[234][fv]()`](/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix)\n - : Sets the uniform's value to the specified matrix, possibly with transposition. The\n value is represented as a sequence of `GLfloat` values or as a\n `Float32Array`.\n\nThe uniform itself is declared in the shader program using GLSL.",
+ "getvertexattrib": "\n\nThe **`WebGLRenderingContext.getVertexAttrib()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) returns information about a vertex\nattribute at a given position.",
+ "getvertexattriboffset": "\n\nThe **`WebGLRenderingContext.getVertexAttribOffset()`** method\nof the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns the address of a\nspecified vertex attribute.",
+ "hint": "\n\nThe **`WebGLRenderingContext.hint()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies hints for certain\nbehaviors. The interpretation of these hints depend on the implementation.",
+ "isbuffer": "\n\nThe **`WebGLRenderingContext.isBuffer()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed [WebGLBuffer] is valid and `false` otherwise.",
+ "iscontextlost": "\n\nThe\n**`WebGLRenderingContext.isContextLost()`** method returns a\nboolean value indicating whether or not the WebGL context has been lost and\nmust be re-established before rendering can resume.",
+ "isenabled": "\n\nThe **`WebGLRenderingContext.isEnabled()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) tests whether a specific WebGL\ncapability is enabled or not for this context.\n\nBy default, all capabilities except `gl.DITHER` are\n**disabled**.",
+ "isframebuffer": "\n\nThe **`WebGLRenderingContext.isFramebuffer()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed [WebGLFramebuffer] is valid and `false` otherwise.",
+ "isprogram": "\n\nThe **`WebGLRenderingContext.isProgram()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed [WebGLProgram] is valid, `false` otherwise.",
+ "isrenderbuffer": "\n\nThe **`WebGLRenderingContext.isRenderbuffer()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed [WebGLRenderbuffer] is valid and `false` otherwise.",
+ "isshader": "\n\nThe **`WebGLRenderingContext.isShader()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed [WebGLShader] is valid, `false` otherwise.",
+ "istexture": "\n\nThe **`WebGLRenderingContext.isTexture()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) returns `true` if the\npassed [WebGLTexture] is valid and `false` otherwise.",
+ "linewidth": "\n\nThe **`WebGLRenderingContext.lineWidth()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) sets the line width of rasterized\nlines.\n\n> **Warning:** The webgl spec, based on the OpenGL ES 2.0/3.0 specs points out that the minimum and\n> maximum width for a line is implementation defined. The maximum minimum width is\n> allowed to be 1.0. The minimum maximum width is also allowed to be 1.0. Because of\n> these implementation defined limits it is not recommended to use line widths other\n> than 1.0 since there is no guarantee any user's browser will display any other width.\n>\n> As of January 2017 most implementations of WebGL only support a minimum of 1 and a\n> maximum of 1 as the technology they are based on has these same limits.",
+ "linkprogram": "\n\nThe [WebGLRenderingContext] interface's\n**`linkProgram()`** method links a given\n[WebGLProgram], completing the process of preparing the GPU code for the\nprogram's fragment and vertex shaders.",
+ "makexrcompatible": "\n\nThe [WebGLRenderingContext] method\n**`makeXRCompatible()`** ensures that the rendering context\ndescribed by the `WebGLRenderingContext` is ready to render the scene for the\nimmersive [WebXR](/en-US/docs/Web/API/WebXR_Device_API) device on which it\nwill be displayed. If necessary, the [WebGL](/en-US/docs/Web/API/WebGL_API)\nlayer may reconfigure the context to be ready to render to a different device than it\noriginally was.\n\nThis is useful if you have an application which can start out being presented on a\nstandard 2D display but can then be transitioned to a 3D immersion system.",
+ "pixelstorei": "\n\nThe **`WebGLRenderingContext.pixelStorei()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies the pixel storage modes.",
+ "polygonoffset": "\n\nThe **`WebGLRenderingContext.polygonOffset()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) specifies the scale factors and\nunits to calculate depth values.\n\nThe offset is added before the depth test is performed and before the value is written\ninto the depth buffer.",
+ "readpixels": "\n\nThe **`WebGLRenderingContext.readPixels()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) reads a block of pixels from a\nspecified rectangle of the current color framebuffer into a `TypedArray` or a `DataView` object.",
+ "renderbufferstorage": "\n\nThe **`WebGLRenderingContext.renderbufferStorage()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) creates and initializes a\nrenderbuffer object's data store.",
+ "samplecoverage": "\n\nThe **`WebGLRenderingContext.sampleCoverage()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) specifies multi-sample coverage\nparameters for anti-aliasing effects.",
+ "scissor": "\n\nThe **`WebGLRenderingContext.scissor()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) sets a scissor box, which limits\nthe drawing to a specified rectangle.",
+ "shadersource": "\n\nThe **`WebGLRenderingContext.shaderSource()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) sets the source code of a\n[WebGLShader].",
+ "stencilfunc": "\n\nThe **`WebGLRenderingContext.stencilFunc()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) sets the front and back function\nand reference value for stencil testing.\n\nStenciling enables and disables drawing on a per-pixel basis. It is typically used in\nmultipass rendering to achieve special effects.",
+ "stencilfuncseparate": "\n\nThe **`WebGLRenderingContext.stencilFuncSeparate()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) sets the front and/or back\nfunction and reference value for stencil testing.\n\nStencilling enables and disables drawing on a per-pixel basis. It is typically used in\nmultipass rendering to achieve special effects.",
+ "stencilmask": "\n\nThe **`WebGLRenderingContext.stencilMask()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) controls enabling and disabling of\nboth the front and back writing of individual bits in the stencil planes.\n\nThe [WebGLRenderingContext.stencilMaskSeparate] method can set front and\nback stencil writemasks to different values.",
+ "stencilmaskseparate": "\n\nThe **`WebGLRenderingContext.stencilMaskSeparate()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) controls enabling and\ndisabling of front and/or back writing of individual bits in the stencil planes.\n\nThe [WebGLRenderingContext.stencilMask] method can set both, the front\nand back stencil writemasks to one value at the same time.",
+ "stencilop": "\n\nThe **`WebGLRenderingContext.stencilOp()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) sets both the front and back-facing\nstencil test actions.",
+ "stencilopseparate": "\n\nThe **`WebGLRenderingContext.stencilOpSeparate()`** method of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) sets the front and/or\nback-facing stencil test actions.",
+ "teximage2d": "\n\nThe **`WebGLRenderingContext.texImage2D()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specifies a two-dimensional texture\nimage.",
+ "texparameter": "\n\nThe **`WebGLRenderingContext.texParameter[fi]()`** methods of\nthe [WebGL API](/en-US/docs/Web/API/WebGL_API) set texture parameters.",
+ "texsubimage2d": "\n\nThe **`WebGLRenderingContext.texSubImage2D()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) specifies a sub-rectangle of the\ncurrent texture.",
+ "uniform": "\n\nThe **`WebGLRenderingContext.uniform[1234][fi][v]()`** methods\nof the [WebGL API](/en-US/docs/Web/API/WebGL_API) specify values of uniform\nvariables. All active uniform variables defined in a program object are initialized to 0\nwhen the program object is linked successfully. They retain the values assigned to them\nby a call to this method until the next successful link operation occurs on the program\nobject, when they are once again initialized to 0.\n\n> **Note:** Many of the functions described here have expanded WebGL 2 interfaces, which can be\n> found under\n> [`WebGL2RenderingContext.uniform[1234][uif][v]()`](/en-US/docs/Web/API/WebGL2RenderingContext/uniform).",
+ "uniformmatrix": "\n\nThe **`WebGLRenderingContext.uniformMatrix[234]fv()`** methods\nof the [WebGL API](/en-US/docs/Web/API/WebGL_API) specify matrix values for\nuniform variables.\n\nThe three versions of this method (`uniformMatrix2fv()`,\n`uniformMatrix3fv()`, and `uniformMatrix4fv()`) take as the input\nvalue 2-component, 3-component, and 4-component square matrices, respectively. They are\nexpected to have 4, 9 or 16 floats.",
+ "unpackcolorspace": "\n\nThe **`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\nTexture image sources can be the following:\n\n- [`ImageBitmap`](/en-US/docs/Web/API/ImageBitmap)\n- [`ImageData`](/en-US/docs/Web/API/ImageData)\n- [`HTMLImageElement`](/en-US/docs/Web/API/HTMLImageElement)\n- [`HTMLCanvasElement`](/en-US/docs/Web/API/HTMLCanvasElement)\n- [`HTMLVideoElement`](/en-US/docs/Web/API/HTMLVideoElement)\n- [`OffscreenCanvas`](/en-US/docs/Web/API/OffscreenCanvas)\n- [`VideoFrame`](/en-US/docs/Web/API/VideoFrame)\n\nTextures are imported using the [`WebGLRenderingContext.texImage2D()`](/en-US/docs/Web/API/WebGLRenderingContext/texImage2D) and [`WebGLRenderingContext.texSubImage2D()`](/en-US/docs/Web/API/WebGLRenderingContext/texSubImage2D) methods and conversion to the specified `unpackColorSpace` color space happens during import.\n\nNote that this doesn't apply to [`HTMLImageElement`](/en-US/docs/Web/API/HTMLImageElement) when the `UNPACK_COLORSPACE_CONVERSION_WEBGL` pixel storage parameter is set to `NONE`.",
+ "useprogram": "\n\nThe **`WebGLRenderingContext.useProgram()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) sets the specified\n[WebGLProgram] as part of the current rendering state.",
+ "validateprogram": "\n\nThe **`WebGLRenderingContext.validateProgram()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) validates a\n[WebGLProgram]. It checks if it is successfully linked and if it can be\nused in the current WebGL state.",
+ "vertexattrib": "\n\nThe **`WebGLRenderingContext.vertexAttrib[1234]f[v]()`**\nmethods of the [WebGL API](/en-US/docs/Web/API/WebGL_API) specify constant\nvalues for generic vertex attributes.",
+ "vertexattribpointer": "\n\nThe\n**`WebGLRenderingContext.vertexAttribPointer()`** method of the\n[WebGL API](/en-US/docs/Web/API/WebGL_API) binds the buffer currently bound\nto `gl.ARRAY_BUFFER` to a generic vertex attribute of the current vertex\nbuffer object and specifies its layout.",
+ "viewport": "\n\nThe **`WebGLRenderingContext.viewport()`** method of the [WebGL API](/en-US/docs/Web/API/WebGL_API) sets the viewport, which specifies\nthe affine transformation of x and y from normalized device coordinates to window\ncoordinates."
+ }
+ },
+ "webglsampler": {
+ "docs": "\n\nThe **`WebGLSampler`** interface is part of the [WebGL 2](/en-US/docs/Web/API/WebGL_API) API and stores sampling parameters for [WebGLTexture] access inside of a shader.\n\nWhen working with `WebGLSampler` objects, the following methods of the [WebGL2RenderingContext] are useful:\n\n- [WebGL2RenderingContext.createSampler]\n- [WebGL2RenderingContext.deleteSampler]\n- [WebGL2RenderingContext.isSampler]\n- [WebGL2RenderingContext.bindSampler]\n- [WebGL2RenderingContext.getSamplerParameter]"
+ },
+ "webglshader": {
+ "docs": "\n\nThe **WebGLShader** is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and can either be a vertex or a fragment shader. A [WebGLProgram] requires both types of shaders.\n\n"
+ },
+ "webglshaderprecisionformat": {
+ "docs": "\n\nThe **WebGLShaderPrecisionFormat** interface is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and represents the information returned by calling the [WebGLRenderingContext.getShaderPrecisionFormat] method.",
+ "properties": {
+ "precision": "\n\nThe read-only **`WebGLShaderPrecisionFormat.precision`** property returns the number of bits of precision that can be represented.\n\nFor integer formats this value is always 0.",
+ "rangemax": "\n\nThe read-only **`WebGLShaderPrecisionFormat.rangeMax`** property returns the base 2 log of the absolute value of the maximum value that can be represented.",
+ "rangemin": "\n\nThe read-only **`WebGLShaderPrecisionFormat.rangeMin`** property returns the base 2 log of the absolute value of the minimum value that can be represented."
+ }
+ },
+ "webglsync": {
+ "docs": "\n\nThe **`WebGLSync`** interface is part of the [WebGL 2](/en-US/docs/Web/API/WebGL_API) API and is used to synchronize activities between the GPU and the application.\n\nWhen working with `WebGLSync` objects, the following methods of the [WebGL2RenderingContext] are useful:\n\n- [WebGL2RenderingContext.fenceSync]\n- [WebGL2RenderingContext.deleteSync]\n- [WebGL2RenderingContext.isSync]\n- [WebGL2RenderingContext.clientWaitSync]\n- [WebGL2RenderingContext.waitSync]\n- [WebGL2RenderingContext.getSyncParameter]"
+ },
+ "webgltexture": {
+ "docs": "\n\nThe **WebGLTexture** interface is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and represents an opaque texture object providing storage and state for texturing operations.\n\n"
+ },
+ "webgltransformfeedback": {
+ "docs": "\n\nThe **`WebGLTransformFeedback`** interface is part of the [WebGL 2](/en-US/docs/Web/API/WebGL_API) API and enables transform feedback, which is the process of capturing primitives generated by vertex processing. It allows to preserve the post-transform rendering state of an object and resubmit this data multiple times.\n\nWhen working with `WebGLTransformFeedback` objects, the following methods of the [WebGL2RenderingContext] are useful:\n\n- [WebGL2RenderingContext.createTransformFeedback]\n- [WebGL2RenderingContext.deleteTransformFeedback]\n- [WebGL2RenderingContext.isTransformFeedback]\n- [WebGL2RenderingContext.bindTransformFeedback]\n- [WebGL2RenderingContext.beginTransformFeedback]\n- [WebGL2RenderingContext.endTransformFeedback]\n- [WebGL2RenderingContext.pauseTransformFeedback]\n- [WebGL2RenderingContext.resumeTransformFeedback]\n- [WebGL2RenderingContext.transformFeedbackVaryings]\n- [WebGL2RenderingContext.getTransformFeedbackVarying]"
+ },
+ "webgluniformlocation": {
+ "docs": "\n\nThe **WebGLUniformLocation** interface is part of the [WebGL API](/en-US/docs/Web/API/WebGL_API) and represents the location of a uniform variable in a shader program."
+ },
+ "webglvertexarrayobject": {
+ "docs": "\n\nThe **`WebGLVertexArrayObject`** interface is part of the [WebGL 2 API](/en-US/docs/Web/API/WebGL_API), represents vertex array objects (VAOs) pointing to vertex array data, and provides names for different sets of vertex data.\n\nWhen working with `WebGLVertexArrayObject` objects, the following methods are useful:\n\n- [WebGL2RenderingContext.createVertexArray]\n- [WebGL2RenderingContext.deleteVertexArray]\n- [WebGL2RenderingContext.isVertexArray]\n- [WebGL2RenderingContext.bindVertexArray]\n\n> **Note:** The [OES_vertex_array_object] extension allows you to use vertex array objects in a WebGL 1 context."
+ },
+ "webkitpoint": {
+ "docs": "\n\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:** Although it is not directly related to this defunct interface, you are probably looking for [DOMPoint]."
+ },
+ "websocket": {
+ "docs": "\n\nThe `WebSocket` object provides the API for creating and managing a [WebSocket](/en-US/docs/Web/API/WebSockets_API) connection to a server, as well as for sending and receiving data on the connection.\n\nTo construct a `WebSocket`, use the [`WebSocket()`](/en-US/docs/Web/API/WebSocket/WebSocket) constructor.\n\n",
+ "properties": {
+ "binarytype": "\n\nThe **`WebSocket.binaryType`** property controls the type of\nbinary data being received over the WebSocket connection.",
+ "bufferedamount": "\n\nThe **`WebSocket.bufferedAmount`** read-only property returns\nthe number of bytes of data that have been queued using calls to [`send()`](/en-US/docs/Web/API/WebSocket/send) but\nnot yet transmitted to the network. This value resets to zero once all queued data has\nbeen sent. This value does not reset to zero when the connection is closed; if you keep\ncalling [`send()`](/en-US/docs/Web/API/WebSocket/send), this will continue to climb.",
+ "close": "\n\nThe **`WebSocket.close()`** method closes the\n[WebSocket] connection or connection attempt, if any. If the connection is\nalready `CLOSED`, this method does nothing.\n\n> **Note:** The process of closing the connection begins with a [closing handshake](https://www.rfc-editor.org/rfc/rfc6455.html#section-1.4), and the `close()` method does not discard previously-sent messages before starting that closing handshake; even if the user agent is still busy sending those messages, the handshake will only start after the messages are sent.",
+ "close_event": "\n\nThe `close` event is fired when a connection with a `WebSocket` is closed.",
+ "error_event": "\n\nThe `error` event is fired when a connection with a `WebSocket` has been closed due to an error (some data couldn't be sent for example).",
+ "extensions": "\n\nThe **`WebSocket.extensions`** read-only property returns the\nextensions selected by the server. This is currently only the empty string or a list of\nextensions as negotiated by the connection.",
+ "message_event": "\n\nThe `message` event is fired when data is received through a `WebSocket`.",
+ "open_event": "\n\nThe `open` event is fired when a connection with a `WebSocket` is opened.",
+ "protocol": "\n\nThe **`WebSocket.protocol`** read-only property returns the\nname of the sub-protocol the server selected; this will be one of the strings specified\nin the `protocols` parameter when creating the [WebSocket]\nobject, or the empty string if no connection is established.",
+ "readystate": "\n\nThe **`WebSocket.readyState`** read-only property returns the\ncurrent state of the [WebSocket] connection.",
+ "send": "\n\nThe **`WebSocket.send()`** method enqueues the specified data\nto be transmitted to the server over the WebSocket connection, increasing the value of\n`bufferedAmount` by the number of bytes needed to contain the data. If the\ndata can't be sent (for example, because it needs to be buffered but the buffer is\nfull), the socket is closed automatically.\nThe browser will throw an exception if you call `send()` when the connection is in the `CONNECTING` state. If you call `send()` when the connection is in the `CLOSING` or `CLOSED` states, the browser will silently discard the data.",
+ "url": "\n\nThe **`WebSocket.url`** read-only property returns the absolute\nURL of the [WebSocket] as resolved by the constructor."
+ }
+ },
+ "webtransport": {
+ "docs": "\n\nThe **`WebTransport`** interface of the [WebTransport API] provides functionality to enable a user agent to connect to an HTTP/3 server, initiate reliable and unreliable transport in either or both directions, and close the connection once it is no longer needed.\n\n",
+ "properties": {
+ "close": "\n\nThe **`close()`** method of the [WebTransport] interface closes an ongoing WebTransport session.\n\n",
+ "closed": "\n\nThe **`closed`** read-only property of the [WebTransport] interface returns a promise that resolves when the transport is closed.\n\n",
+ "congestioncontrol": "\n\nThe **`congestionControl`** read-only property of the [WebTransport] interface indicates the application's preference for either high throughput or low-latency when sending data.\n\nThe value is set in the [`WebTransport()` constructor options](/en-US/docs/Web/API/WebTransport/WebTransport#congestioncontrol).\n\n",
+ "createbidirectionalstream": "\n\nThe **`createBidirectionalStream()`** method of the [WebTransport] interface asynchronously opens and returns a bidirectional stream.\n\nThe method returns a `Promise` that resolves to a [WebTransportBidirectionalStream] object, which has `readable` and `writable` properties that can be used to reliably read from and write to the server.\n\"Reliable\" means that transmission and order of data are guaranteed.\nThis provides slower delivery (albeit faster than with WebSockets) than [WebTransport.datagrams], but is needed in situations where reliability and ordering are important, like chat applications.\n\nThe relative order in which queued bytes are emptied from created streams can be specified using the `sendOrder` option.\nIf set, queued bytes in streams with a higher send order are guaranteed to be sent before queued bytes for streams with a lower send order.\nIf the order number is not set then the order in which bytes are sent is implementation dependent.\nNote however that even though bytes from higher send-order streams are sent first, they may not arrive first.\n\n",
+ "createunidirectionalstream": "\n\nThe **`createUnidirectionalStream()`** method of the [WebTransport] interface asynchronously opens a unidirectional stream.\n\nThe method returns a `Promise` that resolves to a [WritableStream] object, which can be used to reliably write data to the server.\n\n<!-- Note, returns a `WebTransportSendStream` according to spec, but not yet implemented -->\n\n\"Reliable\" means that transmission and order of data are guaranteed. This provides slower delivery (albeit faster than with WebSockets) than [WebTransport.datagrams], but is needed in situations where reliability and ordering are important, like chat applications.\n\nThe relative order in which queued bytes are emptied from created streams can be specified using the `sendOrder` option.\nIf set, queued bytes in streams with a higher send order are guaranteed to be sent before queued bytes for streams with a lower send order.\nIf the order number is not set then the order in which bytes are sent is implementation dependent.\nNote however that even though bytes from higher send-order streams are sent first, they may not arrive first.\n\n",
+ "datagrams": "\n\nThe **`datagrams`** read-only property of the [WebTransport] interface returns a [WebTransportDatagramDuplexStream] instance that can be used to send and receive datagrams — unreliable data transmission.\n\n\"Unreliable\" 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.\n\n",
+ "getstats": "\n\nThe **`getStats()`** method of the [WebTransport] interface asynchronously returns an object containing HTTP/3 connection statistics.\n\n",
+ "incomingbidirectionalstreams": "\n\nThe **`incomingBidirectionalStreams`** read-only property of the [WebTransport] interface represents one or more bidirectional streams opened by the server. Returns a [ReadableStream] of [WebTransportBidirectionalStream] objects. Each one can be used to reliably read data from the server and write data back to it.\n\n\"Reliable\" means that transmission and order of data are guaranteed. This provides slower delivery (albeit faster than with WebSockets) than [WebTransport.datagrams], but is needed in situations where reliability and ordering are important, like chat applications.\n\n",
+ "incomingunidirectionalstreams": "\n\nThe **`incomingUnidirectionalStreams`** read-only property of the [WebTransport] interface represents one or more unidirectional streams opened by the server. Returns a [ReadableStream] of [WebTransportReceiveStream] objects. Each one can be used to reliably read data from the server.\n\n\"Reliable\" means that transmission and order of data are guaranteed. This provides slower delivery (albeit faster than with WebSockets) than [WebTransport.datagrams], but is needed in situations where reliability and ordering are important, like chat applications.\n\n",
+ "ready": "\n\nThe **`ready`** read-only property of the [WebTransport] interface returns a promise that resolves when the transport is ready to use.\n\n",
+ "reliability": "\n\nThe **`reliability`** read-only property of the [WebTransport] interface indicates whether the connection supports reliable transports only, or whether it also supports unreliable transports (such as UDP).\n\n"
+ }
+ },
+ "webtransportbidirectionalstream": {
+ "docs": "\n\nThe **`WebTransportBidirectionalStream`** interface of the [WebTransport API] represents a bidirectional stream created by a server or a client that can be used for reliable transport. Provides access to a [WebTransportReceiveStream] for reading incoming data, and a [WebTransportSendStream] for writing outgoing data.\n\n",
+ "properties": {
+ "readable": "\n\nThe **`readable`** read-only property of the [WebTransportBidirectionalStream] interface returns a [WebTransportReceiveStream] instance that can be used to reliably read incoming data.\n\n",
+ "writable": "\n\nThe **`writable`** read-only property of the [WebTransportBidirectionalStream] interface returns a [WebTransportSendStream] instance that can be used to write outgoing data.\n\n"
+ }
+ },
+ "webtransportdatagramduplexstream": {
+ "docs": "\n\nThe **`WebTransportDatagramDuplexStream`** interface of the [WebTransport API] represents a duplex stream that can be used for unreliable transport of datagrams between client and server. Provides access to a [ReadableStream] for reading incoming datagrams, a [WritableStream] for writing outgoing datagrams, and various settings and statistics related to the stream.\n\nThis is accessed via the [WebTransport.datagrams] property.\n\n\"Unreliable\" 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.\n\n",
+ "properties": {
+ "incominghighwatermark": "\n\nThe **`incomingHighWaterMark`** property of the [WebTransportDatagramDuplexStream] interface gets or sets the high water mark for incoming chunks of data — this is the maximum size, in chunks, that the incoming [ReadableStream]'s internal queue can reach before it is considered full. See [Internal queues and queuing strategies](/en-US/docs/Web/API/Streams_API/Concepts#internal_queues_and_queuing_strategies) for more information.\n\n",
+ "incomingmaxage": "\n\nThe **`incomingMaxAge`** property of the [WebTransportDatagramDuplexStream] interface gets or sets the maximum age for incoming datagrams, in milliseconds.\n\n",
+ "maxdatagramsize": "\n\nThe **`maxDatagramSize`** read-only property of the [WebTransportDatagramDuplexStream] interface returns the maximum allowable size of outgoing datagrams, in bytes, that can be written to [WebTransportDatagramDuplexStream.writable].\n\n",
+ "outgoinghighwatermark": "\n\nThe **`outgoingHighWaterMark`** property of the [WebTransportDatagramDuplexStream] interface gets or sets the high water mark for outgoing chunks of data — this is the maximum size, in chunks, that the outgoing [WritableStream]'s internal queue can reach before it is considered full. See [Internal queues and queuing strategies](/en-US/docs/Web/API/Streams_API/Concepts#internal_queues_and_queuing_strategies) for more information.\n\n",
+ "outgoingmaxage": "\n\nThe **`outgoingMaxAge`** property of the [WebTransportDatagramDuplexStream] interface gets or sets the maximum age for outgoing datagrams, in milliseconds.\n\n",
+ "readable": "\n\nThe **`readable`** read-only property of the [WebTransportDatagramDuplexStream] interface returns a [ReadableStream] instance that can be used to unreliably read incoming datagrams from the stream.\n\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.\n\n",
+ "writable": "\n\nThe **`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\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.\n\n"
+ }
+ },
+ "webtransporterror": {
+ "docs": "\n\nThe **`WebTransportError`** interface of the [WebTransport API] represents an error related to the API, which can arise from server errors, network connection problems, or client-initiated abort operations (for example, arising from a [WritableStream.abort] call).\n\n",
+ "properties": {
+ "source": "\n\nThe **`source`** read-only property of the [WebTransportError] interface returns an enumerated value indicating the source of the error.\n\n",
+ "streamerrorcode": "\n\nThe **`streamErrorCode`** read-only property of the [WebTransportError] interface returns a number in the range 0-255 indicating the application protocol error code for this error, or `null` if one is not available.\n\n"
+ }
+ },
+ "webtransportreceivestream": {
+ "docs": "\n\nThe `WebTransportReceiveStream` interface of the [WebTransport API] is a [ReadableStream] that can be used to read from an incoming unidirectional or bidirectional [WebTransport] stream.\n\nThe stream is a [readable byte stream](/en-US/docs/Web/API/Streams_API/Using_readable_byte_streams) of [`Uint8Array`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), and can be consumed using either a BYOB reader ([`ReadableStreamBYOBReader`](/en-US/docs/Web/API/ReadableStreamBYOBReader)) or the default reader ([`ReadableStreamDefaultReader`](/en-US/docs/Web/API/ReadableStreamDefaultReader)).\n\nObjects of this type are not constructed directly.\nInstead they are obtained using the [`WebTransport.incomingUnidirectionalStream`](/en-US/docs/Web/API/WebTransport/incomingUnidirectionalStreams) property.\n\n`WebTransportReceiveStream` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).\n\n",
+ "properties": {
+ "getstats": "\n\nThe **`getStats()`** method of the [WebTransportReceiveStream] interface asynchronously returns an object containing statistics for the current stream.\n\nThe statistics include the total number of ordered bytes that have arrived on this stream (ignoring network overhead, up until the first missing byte) and the total number that have been read by the application.\nIt therefore provides a measure of how quickly the application is consuming bytes from the server on this particular stream.\n\n"
+ }
+ },
+ "webtransportsendstream": {
+ "docs": "\n\nThe `WebTransportSendStream` interface of the [WebTransport API] is a specialized [WritableStream] that is used to send outbound data in both unidirectional or bidirectional [WebTransport] streams.\n\nThe send stream is a [writable stream](/en-US/docs/Web/API/Streams_API/Using_writable_streams) of [`Uint8Array`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), that can be written to in order to send data to a server.\nIt additionally provides streaming features such as setting the send order, and getting stream statistics.\n\nObjects of this type are not constructed directly.\nWhen creating a unidirectional stream the [WebTransport.createUnidirectionalStream] returns an object of this type for sending data.\nWhen creating a bidirectional stream using [WebTransport.createBidirectionalStream], the method returns a [WebTransportBidirectionalStream], and the send stream object can be obtained from its [WebTransportBidirectionalStream.writable] property.\nWhen a bidirectional stream is initiated by the remote end, an object of this type can similarly be obtained using [WebTransport.incomingBidirectionalStreams].\n\n`WebTransportSendStream` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).\n\n",
+ "properties": {
+ "getstats": "\n\nThe **`getStats()`** method of the [WebTransportSendStream] interface asynchronously returns an object containing statistics for the current stream.\n\nThe statistics include the total number of bytes written to the stream, the number that have been sent (ignoring packet overhead), and the number of bytes that have been set at least once, and the number that have been acknowledged (up until the first sequentially-ordered non-acknowledged byte).\nIt therefore provides a measure of how quickly the application is sending bytes to the server on this particular stream.\n\n",
+ "sendorder": "\n\nThe **`sendOrder`** property of the [WebTransportSendStream] interface indicates the send priority of this stream relative to other streams for which the value has been set.\n\nQueued bytes are sent first for streams that have a higher value.\nIf not set, the send order depends on the implementation.\n\n"
+ }
+ },
+ "wgsllanguagefeatures": {
+ "docs": "\n\nThe **`WGSLLanguageFeatures`** interface of the [WebGPU API] is a [setlike](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) object that reports the [WGSL language extensions](https://gpuweb.github.io/gpuweb/wgsl/#language-extension) supported by the WebGPU implementation.\n\nThe `WGSLLanguageFeatures` object is accessed via the [GPU.wgslLanguageFeatures] property.\n\n> **Note:** Not 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\n"
+ },
+ "wheelevent": {
+ "docs": "\n\nThe **`WheelEvent`** interface represents events that occur due to the user moving a mouse wheel or similar input device.\n\n> **Note:** This is the standard wheel event interface to use. Old versions of browsers implemented the non-standard and non-cross-browser-compatible `MouseWheelEvent` and [MouseScrollEvent] interfaces. Use this interface and avoid the non-standard ones.\n\n> **Note:** Do not confuse the [Element/wheel_event] event with the [Element/scroll_event] event. The default action of a `wheel` event is implementation-defined. Thus, a `wheel` event doesn't necessarily dispatch a `scroll` event. Even when it does, that doesn't mean that the `delta*` values in the `wheel` event necessarily reflect the content's scrolling direction. Therefore, do not rely on `delta*` properties to get the content's scrolling direction. Instead, detect value changes to [Element.scrollLeft] and [Element.scrollTop] of the target in the `scroll` event.\n\n",
+ "properties": {
+ "deltamode": "\n\nThe **`WheelEvent.deltaMode`** read-only property returns an\n`unsigned long` representing the unit of the delta values scroll amount.\nPermitted values are:\n\n| Constant | Value | Description |\n| ----------------- | ------ | ----------------------------------------- |\n| `DOM_DELTA_PIXEL` | `0x00` | The delta values are specified in pixels. |\n| `DOM_DELTA_LINE` | `0x01` | The delta values are specified in lines. |\n| `DOM_DELTA_PAGE` | `0x02` | The delta values are specified in pages. |",
+ "deltax": "\n\nThe **`WheelEvent.deltaX`** read-only property is a\n`double` representing the horizontal scroll amount in the\n[WheelEvent.deltaMode] unit.",
+ "deltay": "\n\nThe **`WheelEvent.deltaY`** read-only property is a\n`double` representing the vertical scroll amount in the\n[WheelEvent.deltaMode] unit.",
+ "deltaz": "\n\nThe **`WheelEvent.deltaZ`** read-only property is a\n`double` representing the scroll amount along the z-axis, in the\n[WheelEvent.deltaMode] unit."
+ }
+ },
+ "window": {
+ "docs": "\n\nThe **`Window`** interface represents a window containing a document; the `document` property points to the [DOM document](/en-US/docs/Web/API/Document) loaded in that window.\n\nA window for a given document can be obtained using the [document.defaultView] property.\n\nA global variable, `window`, representing the window in which the script is running, is exposed to JavaScript code.\n\nThe `Window` interface is home to a variety of functions, namespaces, objects, and constructors which are not necessarily directly associated with the concept of a user interface window. However, the `Window` interface is a suitable place to include these items that need to be globally available. Many of these are documented in the [JavaScript Reference](/en-US/docs/Web/JavaScript/Reference) and the [DOM Reference](/en-US/docs/Web/API/Document_Object_Model).\n\nIn a tabbed browser, each tab is represented by its own `Window` object; the global `window` seen by JavaScript code running within a given tab always represents the tab in which the code is running. That said, even in a tabbed browser, some properties and methods still apply to the overall window that contains the tab, such as [Window.resizeTo] and [Window.innerHeight]. Generally, anything that can't reasonably pertain to a tab pertains to the window instead.\n\n",
+ "properties": {
+ "afterprint_event": "\n\nThe **`afterprint`** event is fired after the associated document has started printing or the print preview has been closed.\n\nThe [Window.beforeprint_event] and `afterprint` events allow pages to change their content before printing starts (perhaps to remove a banner, for example) and then revert those changes after printing has completed. In general, you should prefer the use of a [`@media print`](/en-US/docs/Web/CSS/CSS_media_queries/Using_media_queries#targeting_media_types) CSS at-rule, but it may be necessary to use these events in some cases.",
+ "alert": "\n\n`window.alert()` instructs the browser to display a dialog with an optional message, and to wait until the user dismisses the dialog.\n\nUnder some conditions — for example, when the user switches tabs — the browser may not actually display a dialog, or may not wait for the user to dismiss the dialog.",
+ "appinstalled_event": "\n\nThe **`appinstalled`** event of the [Web Manifest API](/en-US/docs/Web/Manifest) is fired when the browser has successfully installed a page as an application.\n\nThis event is not cancelable and does not bubble.",
+ "back": "\n\nThe obsolete and non-standard method `back()` on the [window]\ninterface returns the window to the previous item in the history. This was a\nFirefox-specific method and was removed in Firefox 31.\n\n> **Note:** Use the standard [history.back] method instead.",
+ "beforeinstallprompt_event": "\n\nThe **`beforeinstallprompt`** event fires when the browser has detected that a website can be [installed as a Progressive Web App](/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable).\n\nThere's no guaranteed time this event is fired, but it usually happens on page load.\n\nThe typical use for this event is when a web app wants to provide its own in-app UI inviting the user to install the app, rather than the generic one provided by the browser. This enables the app to provide more context about the app, explaining to the user why they might want to install it.\n\nIn this scenario, the handler for this event will:\n\n- Keep a reference to the [BeforeInstallPromptEvent] object that's passed into it\n- Reveal its in-app installation UI (this should be hidden by default, because not all browsers will support installation).\n\nWhen the user uses the in-app installation UI to install the app, the in-app installation UI calls the [BeforeInstallPromptEvent.prompt] method of the retained `BeforeInstallPromptEvent` object to show the installation prompt.",
+ "beforeprint_event": "\n\nThe **`beforeprint`** event is fired when the associated document is about to be printed or previewed for printing.\n\nThe [Window.afterprint_event] and `beforeprint` events allow pages to change their content before printing starts (perhaps to remove a banner, for example) and then revert those changes after printing has completed. In general, you should prefer the use of a [`@media print`](/en-US/docs/Web/CSS/CSS_media_queries/Using_media_queries#targeting_media_types) CSS at-rule, but it may be necessary to use these events in some cases.",
+ "beforeunload_event": "\n\nThe **`beforeunload`** event is fired when the current window, contained document, and associated resources are about to be unloaded. The document is still visible and the event is still cancelable at this point.\n\nThe main use case for this event is to trigger a browser-generated confirmation dialog that asks 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\nThe dialog can be triggered in the following ways:\n\n- Calling the event object's [Event.preventDefault] method.\n- Setting the event object's [BeforeUnloadEvent.returnValue] property to a non-empty string value or any other [truthy](/en-US/docs/Glossary/Truthy) value.\n- Returning any truthy value from the event handler function, e.g. `return \"string\"`. Note that this only works when the function is attached via the `onbeforeunload` property, not the [EventTarget.addEventListener] method. This behavior is consistent across modern versions of Firefox, Safari, and Chrome.\n\nThe last two mechanisms are legacy features; best practice is to trigger the dialog by invoking `preventDefault()` on the event object, while also setting `returnValue` to support legacy cases.",
+ "blur": "\n\nShifts focus away from the window.",
+ "blur_event": "\n\nThe **`blur`** event fires when an element has lost focus.\n\nThe opposite of `blur` is [Window/focus_event].\n\nThis event is not cancelable and does not bubble.",
+ "cancelanimationframe": "\n\nThe **`window.cancelAnimationFrame()`** method cancels an\nanimation frame request previously scheduled through a call to\n[window.requestAnimationFrame].",
+ "cancelidlecallback": "\n\nThe **`window.cancelIdleCallback()`** method cancels a callback\npreviously scheduled with [window.requestIdleCallback].",
+ "captureevents": " \n\nThe **`Window.captureEvents()`** method does nothing.\n\n> **Note:** This is an method long removed from the specification. It is kept in browsers to prevent code breakage but does nothing.",
+ "clearimmediate": " \n\nThis method clears the action specified by [window.setImmediate].",
+ "close": "\n\nThe **`Window.close()`** method closes the current window, or\nthe window on which it was called.\n\nThis method can only be called on windows that were opened by a script using the\n[Window.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:\n`Scripts may not close windows that were not opened by script.`\n\nNote also that `close()` has no effect when called on [Window]\nobjects returned by\n[`HTMLIFrameElement.contentWindow`](/en-US/docs/Web/API/HTMLIFrameElement/contentWindow).",
+ "closed": "\n\nThe **`Window.closed`** read-only property indicates whether\nthe referenced window is closed or not.",
+ "confirm": "\n\n`window.confirm()` instructs the browser to display a dialog with an optional message, and to wait until the user either confirms or cancels the dialog.\n\nUnder some conditions — for example, when the user switches tabs — the browser may not actually display a dialog, or may not wait for the user to confirm or cancel the dialog.",
+ "console": "\n\nThe **`Window.console`** property returns a reference to the [console] object, which provides methods for logging information to the browser's console. These methods are intended for debugging purposes only and should not be relied on for presenting information to end users.",
+ "copy_event": "\n\nThe **`copy`** event fires when the user initiates a copy action through the browser's user interface.\n\nThe original target for this event is the [Element] that was the intended target of the copy action. You can listen for this event on the [Window] interface to handle it in the capture or bubbling phases. For full details on this event please see the page on the [Element: copy event](/en-US/docs/Web/API/Element/copy_event).",
+ "credentialless": "\n\nThe **`window.credentialless`** read-only property returns a boolean that indicates whether the current document was loaded inside a credentialless `iframe`, meaning that it is loaded in a new, ephemeral context.\n\nThis context doesn't have access to the network, cookies, and storage data associated with its origin. It uses a new context local to the top-level document lifetime. In return, the (COEP) embedding rules can be lifted, so documents with COEP set can embed third-party documents that do not.\n\nSee [IFrame credentialless](/en-US/docs/Web/Security/IFrame_credentialless) for a deeper explanation.",
+ "customelements": "\n\nThe **`customElements`** read-only property of the [Window] interface returns a reference to the [CustomElementRegistry] object, which can be used to register new [custom elements](/en-US/docs/Web/API/Web_components/Using_custom_elements) and get information about previously registered custom elements.",
+ "cut_event": "\n\nThe **`cut`** event is fired when the user has initiated a \"cut\" action through the browser's user interface.\n\nThe original target for this event is the [Element] that was the intended target of the cut action. You can listen for this event on the [Window] interface to handle it in the capture or bubbling phases. For full details on this event please see the page on the [Element: cut event](/en-US/docs/Web/API/Element/cut_event).",
+ "devicemotion_event": "\n\nThe **`devicemotion`** event is fired at a regular interval and indicates the amount of physical force of acceleration the device is receiving at that time. It also provides information about the rate of rotation, if available.\n\nThis event is not cancelable and does not bubble.",
+ "deviceorientation_event": "\n\nThe **`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.\n\nSee [Orientation and motion data explained](/en-US/docs/Web/API/Device_orientation_events/Orientation_and_motion_data_explained) for details.\n\nThis event is not cancelable and does not bubble.",
+ "deviceorientationabsolute_event": "\n\nThe **`deviceorientationabsolute`** event is fired when absolute device orientation changes.\n\nThis event is not cancelable and does not bubble.",
+ "devicepixelratio": "\n\nThe **`devicePixelRatio`** of\n[Window] interface returns the ratio of the resolution in _physical\npixels_ to the resolution in _CSS pixels_ for the current display\ndevice.\n\nThis value could also be interpreted as the ratio of pixel sizes: the\nsize of one _CSS pixel_ to the size of one _physical pixel_. In simpler\nterms, this tells the browser how many of the screen's actual pixels should be used to\ndraw a single CSS pixel.\n\nThis is useful when dealing with the difference between rendering on a standard display\nversus a HiDPI or Retina display, which use more screen pixels to draw the same objects,\nresulting in a sharper image.\n\nYou can use [Window.matchMedia] to check if the\nvalue of `devicePixelRatio` changes (which can happen, for example, if the\nuser drags the window to a display with a different pixel density). See\n[the example below](#monitoring_screen_resolution_or_zoom_level_changes).",
+ "document": "\n\n**`window.document`** returns a reference to the [document](/en-US/docs/Web/API/Document) contained in the window.",
+ "documentpictureinpicture": "\n\nThe **`documentPictureInPicture`** read-only property of the\n[Window] interface returns a reference to the [DocumentPictureInPicture] object for the current document context.",
+ "dump": " \n\nThe **`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\nOutput from `dump()` is _not_ sent to the browser's developer tools console. To log to the developer tools console, use [`console.log()`](/en-US/docs/Web/API/console/log_static).",
+ "error_event": "\n\nThe `error` event is fired on a [Window] object when a resource failed to load or couldn't be used — for example if a script has an execution error.",
+ "event": "\n\nThe read-only [Window] property **`event`** returns the [Event] which is currently being handled by the site's code. Outside the context of an event handler, the value is always `undefined`.\n\nYou _should_ avoid using this property in new code, and should instead use the [Event] passed into the event handler function. This property is not universally supported and even when supported introduces potential fragility to your code.\n\n> **Note:** This property can be fragile, in that there may be situations in which the returned `Event` is not the expected value. In addition, `Window.event` is not accurate for events dispatched within .",
+ "external": " \n\nThe `external` property of the [Window] API returns an instance of the `External` interface, which was intended to contain functions related to adding external search providers to the browser. However, this is now deprecated, and the contained methods are now dummy functions that do nothing as per spec.",
+ "find": "\n\n> **Note:** Support for `Window.find()` might change in future\n> versions of Gecko. See [Firefox bug 672395](https://bugzil.la/672395).\n\nThe **`Window.find()`** method finds a string in a window sequentially.",
+ "focus": "\n\nMakes a request to bring the window to the front. It may fail due to user settings and the window isn't guaranteed to be frontmost before this method returns.",
+ "focus_event": "\n\nThe **`focus`** event fires when an element has received focus.\n\nThe opposite of `focus` is [Window/blur_event].\n\nThis event is not cancelable and does not bubble.",
+ "forward": " \n\nMoves the window one document forward in history. This was a Firefox-specific method and was removed in Firefox 31.\n\n> **Note:** Use the standard [History.forward] method instead.",
+ "frameelement": "\n\nThe **`Window.frameElement`** property\nreturns the element (such as `iframe` or `object`)\nin which the window is embedded.\n\n> **Note:** Despite this property's name, it works for documents embedded\n> within any embedding point, including `object`,\n> `iframe`, or `embed`.",
+ "frames": "\n\nReturns the window itself, which is an array-like object, listing the direct sub-frames\nof the current window.",
+ "fullscreen": "\n\nThe **`fullScreen`** property of the `Window`\ninterface indicates whether the window is displayed in full screen mode or not.",
+ "gamepadconnected_event": "\n\nThe `gamepadconnected` event is fired when the browser detects that a gamepad has been connected or the first time a button/axis of the gamepad is used.\n\nThe event will not fire if disallowed by the document's [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).\n\nThis event is not cancelable and does not bubble.",
+ "gamepaddisconnected_event": "\n\nThe `gamepaddisconnected` event is fired when the browser detects that a gamepad has been disconnected.\n\nThe event will not fire if disallowed by the document's [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).\n\nThis event is not cancelable and does not bubble.",
+ "getcomputedstyle": "\n\nThe\n**`Window.getComputedStyle()`** method returns an object\ncontaining the values of all CSS properties of an element, after applying active\nstylesheets and resolving any basic computation those values may contain.\n\nIndividual CSS property values are accessed through APIs provided by the object, or by\nindexing with CSS property names.",
+ "getdefaultcomputedstyle": "\n\nThe **`getDefaultComputedStyle()`** method gives the default [computed values](/en-US/docs/Web/CSS/computed_value) of all the CSS\nproperties of an element, ignoring author styling. That is, only user-agent and user\nstyles are taken into account.",
+ "getscreendetails": "\n\nThe **`getScreenDetails()`** method of the\n[Window] interface returns a `Promise` that fulfills with a [ScreenDetails] object instance representing the details of all the screens available to the user's device.",
+ "getselection": "\n\nThe **`Window.getSelection()`** method returns a\n[Selection] object representing the range of text selected by the user or\nthe current position of the caret.",
+ "hashchange_event": "\n\nThe **`hashchange`** event is fired when the fragment identifier of the URL has changed (the part of the URL beginning with and following the `#` symbol).",
+ "history": "\n\nThe `Window.history` read-only property returns a reference to the [History] object, which provides an interface for manipulating the browser _session history_ (pages visited in the tab or frame that the current page is loaded in).\n\nSee [Manipulating the browser history](/en-US/docs/Web/API/History_API) for examples and details. In particular, that article explains security features of the [History.pushState] and [History.replaceState] methods that you should be aware of before using them.",
+ "innerheight": "\n\nThe read-only **`innerHeight`** property of the\n[Window] interface returns the interior height of the window in pixels,\nincluding the height of the horizontal scroll bar, if present.\n\nThe value of `innerHeight` is taken from the height of the window's\n. The width can be obtained using the\n[Window.innerWidth] property.",
+ "innerwidth": "\n\nThe read-only [Window] property **`innerWidth`** returns the interior width of the window in pixels (that is, the width of the window's ). That includes the width of the vertical scroll bar, if one is present.\n\nSimilarly, the interior height of the window (that is, the height of the layout viewport) can be obtained using the [Window.innerHeight] property. That measurement also accounts for the height of the horizontal scroll bar, if it is visible.",
+ "languagechange_event": "\n\nThe **`languagechange`** event is fired at the global scope object when the user's preferred language changes.",
+ "launchqueue": "\n\nThe `launchQueue` read-only property of the [Window] interface provides access to the [LaunchQueue] class, which allows custom launch navigation handling to be implemented in a [progressive web app](/en-US/docs/Web/Progressive_web_apps) (PWA), with the handling context signified by the [`launch_handler`](/en-US/docs/Web/Manifest/launch_handler) manifest field `client_mode` value.\n\nThe custom launch navigation handling functionality is controlled by the properties of the [LaunchParams] object passed into the [LaunchQueue.setConsumer] callback function.",
+ "length": "\n\nReturns the number of frames (either `frame` or\n`iframe` elements) in the window.",
+ "load_event": "\n\nThe **`load`** event is fired when the whole page has loaded, including all dependent resources such as stylesheets, scripts, iframes, and images.\nThis is in contrast to [Document/DOMContentLoaded_event], which is fired as soon as the page DOM has been loaded, without waiting for resources to finish loading.\n\nThis event is not cancelable and does not bubble.\n\n> **Note:** _All events named `load` will not propagate to `Window`_, even with `bubbles` initialized to `true`. To catch `load` events on the `window`, that `load` event must be dispatched directly to the `window`.\n\n> **Note:** The `load` event that is dispatched when the main document has loaded _is_ dispatched on the `window`, but has two mutated properties: `target` is `document`, and `path` is `undefined`. These two properties are mutated due to legacy conformance.",
+ "localstorage": "\n\nThe **`localStorage`** read-only property of the [window] interface allows you to access a [Storage] object for the [Document]'s ; the stored data is saved across browser sessions.\n\n`localStorage` is similar to [Window.sessionStorage], except that while `localStorage` data has no expiration time, `sessionStorage` data gets cleared when the page session ends — that is, when the page is closed. (`localStorage` data for a document loaded in a \"private browsing\" or \"incognito\" session is cleared when the last \"private\" tab is closed.)",
+ "location": "\n\nThe **`Window.location`** read-only property returns a [Location] object with information about the current location of the document.\n\nThough `Window.location` is a _read-only_ `Location` object, you can also assign a string to it.\nThis means that you can work with `location` as if it were a string in most cases:\n`location = 'http://www.example.com'` is a synonym of `location.href = 'http://www.example.com'`.\n\nSee [Location] for all available properties.",
+ "locationbar": "\n\nReturns the `locationbar` object.\n\nThis is one of a group of `Window` properties that contain a boolean `visible` property, that used to represent whether or not a particular part of a web browser's user interface was visible.\n\nFor privacy and interoperability reasons, the value of the `visible` property is now `false` if this `Window` is a popup, and `true` otherwise.",
+ "matchmedia": "\n\nThe [Window] interface's **`matchMedia()`** method\nreturns a new [MediaQueryList] object that can then be used to determine if\nthe [document] matches the [media query](/en-US/docs/Web/CSS/CSS_media_queries/Using_media_queries) string,\nas well as to monitor the document to detect when it matches (or stops matching) that\nmedia query.",
+ "menubar": "\n\nReturns the `menubar` object.\n\nThis is one of a group of `Window` properties that contain a boolean `visible` property, that used to represent whether or not a particular part of a web browser's user interface was visible.\n\nFor privacy and interoperability reasons, the value of the `visible` property is now `false` if this `Window` is a popup, and `true` otherwise.",
+ "message_event": "\n\nThe `message` event is fired on a [Window] object when the window receives a message, for example from a call to [`Window.postMessage()`](/en-US/docs/Web/API/Window/postMessage) from another browsing context.\n\nThis event is not cancellable and does not bubble.",
+ "messageerror_event": "\n\nThe `messageerror` event is fired on a [Window] object when it receives a message that can't be deserialized.\n\nThis event is not cancellable and does not bubble.",
+ "moveby": "\n\nThe **`moveBy()`** method of the [Window]\ninterface moves the current window by a specified amount.\n\n> **Note:** This function moves the window relative to its current\n> location. In contrast, [window.moveTo] moves the window to an absolute\n> location.",
+ "moveto": "\n\nThe **`moveTo()`** method of the [Window]\ninterface moves the current window to the specified coordinates.\n\n> **Note:** This function moves the window to an absolute location. In\n> contrast, [window.moveBy] moves the window relative to its current\n> location.",
+ "mozinnerscreenx": "\n\nGets the X coordinate of the top-left corner of the window's viewport, in screen\ncoordinates.\n\n> **Note:** This 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.",
+ "mozinnerscreeny": "\n\nThe `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:** This coordinate is reported in CSS pixels, not in hardware pixels.",
+ "name": "\n\nThe `Window.name` property\ngets/sets the name of the window's browsing context.",
+ "navigation": "\n\nThe **`navigation`** read-only property of the [Window] interface returns the current `window`'s associated [Navigation] object.\n\nThis is the entry point for the [Navigation API].",
+ "navigator": "\n\nThe **`Window.navigator`** read-only property returns a\nreference to the [Navigator] object, which has methods and properties about\nthe application running the script.",
+ "offline_event": "\n\nThe **`offline`** event of the [Window] interface is fired when the browser has lost access to the network and the value of [Navigator.onLine] switches to `false`.",
+ "online_event": "\n\nThe **`online`** event of the [Window] interface is fired when the browser has gained access to the network and the value of [Navigator.onLine] switches to `true`.\n\n> **Note:** This event shouldn't be used to determine the availability of a particular website. Network problems or firewalls might still prevent the website from being reached.",
+ "open": "\n\nThe **`open()`** method of the [`Window`](/en-US/docs/Web/API/Window) interface loads a specified resource into a new or existing browsing context (that is, a tab, a window, or an [iframe](/en-US/docs/Web/HTML/Element/iframe)) under a specified name.",
+ "opener": "\n\nThe [Window] interface's\n**`opener`** property returns a reference to the window that\nopened the window, either with [Window.open], or by navigating\na link with a [`target`](/en-US/docs/Web/HTML/Element/a#target) attribute.\n\nIn other words, if window `A` opens window `B`,\n`B.opener` returns `A`.",
+ "orientation": "\n\nReturns the orientation in degrees (in 90-degree increments) of the viewport relative to the device's natural orientation.\n\nIts only possible values are `-90`, `0`, `90`, and `180`. Positive values are counterclockwise; negative values are clockwise.\n\nThis property is deprecated. Use the [Screen.orientation] property instead, available on the [window.screen] property.",
+ "orientationchange_event": "\n\nThe `orientationchange` event is fired when the orientation of the device has changed.\n\nThis event is not cancelable and does not bubble.\n\nThis event is deprecated. Listen for the [ScreenOrientation.change_event] event of the [ScreenOrientation] interface instead.",
+ "originagentcluster": "\n\nThe **`originAgentCluster`** read-only property of the [Window] interface returns `true` if this window belongs to an _origin-keyed [agent cluster](https://tc39.es/ecma262/#sec-agent-clusters)_: this means that the operating system has provided dedicated resources (for example an operating system process) to this window's origin that are not shared with windows from other origins.\n\nOtherwise this property returns `false`.\n\nWindows that are part of an origin-keyed agent cluster are subjects to some additional restrictions, compared with windows that are not. In particular, they cannot:\n\n- Set [Document.domain], which is a legacy feature that normally allows same-site cross-origin pages to synchronously access each other's DOM.\n- Send [`WebAssembly.Module`](/en-US/docs/WebAssembly/JavaScript_interface/Module) objects to other same-site cross-origin pages via [Window.postMessage].\n- Send `SharedArrayBuffer` or [`WebAssembly.Memory`](/en-US/docs/WebAssembly/JavaScript_interface/Memory) objects to other same-site cross-origin pages.\n\nTo request that the browser assign this window to an origin-keyed agent cluster, the server must send the response header.\n\nNote that the origin-keyed agent cluster feature is only supported in . If a site is not a secure context, the `window.originAgentCluster` will always return `false`.",
+ "outerheight": "\n\nThe **`Window.outerHeight`** read-only property returns the height in pixels of the whole browser window, including any sidebar, window chrome, and window-resizing borders/handles.",
+ "outerwidth": "\n\n**`Window.outerWidth`** read-only property returns the width of the outside of the browser window. It represents the width of the whole browser window including sidebar (if expanded), window chrome and window resizing borders/handles.",
+ "pagehide_event": "\n\nThe **`pagehide`** event is sent to a [Window] when the browser hides the current page in the process of presenting a different page from the session's history.\n\nFor example, when the user clicks the browser's Back button, the current page receives a `pagehide` event before the previous page is shown.",
+ "pageshow_event": "\n\nThe **`pageshow`** event is sent to a [Window] when the browser displays the window's document due to navigation.\n\nThis includes:\n\n- Initially loading the page\n- Navigating to the page from another page in the same window or tab\n- Restoring a frozen page on mobile OSes\n- Returning to the page using the browser's forward or back buttons\n\n> **Note:** During the initial page load, the `pageshow` event fires _after_ the [Window/load_event] event.",
+ "parent": "\n\nThe **`Window.parent`** property is a reference to the parent\nof the current window or subframe.\n\nIf a window does not have a parent, its `parent` property is a reference to\nitself.\n\nWhen a window is loaded in an `iframe`, `object`, or\n`frame`, its parent is the window with the element embedding the\nwindow.",
+ "paste_event": "\n\nThe **`paste`** event is fired when the user has initiated a \"paste\" action through the browser's user interface.\n\nThe original target for this event is the [Element] that was the intended target of the paste action. You can listen for this event on the [Window] interface to handle it in the capture or bubbling phases. For full details on this event please see the page on the [Element: paste event](/en-US/docs/Web/API/Element/paste_event).",
+ "personalbar": "\n\nReturns the `personalbar` object.\n\nThis is one of a group of `Window` properties that contain a boolean `visible` property, that used to represent whether or not a particular part of a web browser's user interface was visible.\n\nFor privacy and interoperability reasons, the value of the `visible` property is now `false` if this `Window` is a popup, and `true` otherwise.",
+ "popstate_event": "\n\nThe **`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.",
+ "postmessage": "\n\nThe **`window.postMessage()`** method safely enables\ncross-origin communication between [Window] objects; _e.g.,_ between\na page and a pop-up that it spawned, or between a page and an iframe embedded within it.\n\nNormally, scripts on different pages are allowed to access each other if and only if\nthe pages they originate from share the same protocol, port number, and host (also known\nas the \"[same-origin policy](/en-US/docs/Web/Security/Same-origin_policy)\").\n`window.postMessage()` provides a controlled mechanism to securely circumvent this restriction (if used properly).\n\nBroadly, one window may obtain a reference to another (_e.g.,_ via\n`targetWindow = window.opener`), and then dispatch a\n[MessageEvent] on it with `targetWindow.postMessage()`. The\nreceiving window is then free to [handle this event](/en-US/docs/Web/Events/Event_handlers) as needed. The arguments passed to `window.postMessage()`\n(_i.e.,_ the \"message\") are [exposed to the receiving window through the event object](#the_dispatched_event).",
+ "print": "\n\nOpens the print dialog to print the current document.\n\nIf the document is still loading when this function is called, then the document will finish loading before opening the print dialog.\n\nThis method will block while the print dialog is open.",
+ "prompt": "\n\n`window.prompt()` instructs the browser to display a dialog with an optional message prompting the user to input some text, and to wait until the user either submits the text or cancels the dialog.\n\nUnder some conditions — for example, when the user switches tabs — the browser may not actually display a dialog, or may not wait for the user to submit text or to cancel the dialog.",
+ "querylocalfonts": "\n\nThe **`window.queryLocalFonts()`** method returns a `Promise` that fulfills with an array of [FontData] objects representing the font faces available locally.\n\nTo use this method, the user must grant permission to access `local-fonts` (permission status can be queried via the [Permissions API]). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.",
+ "rejectionhandled_event": "\n\nThe **`rejectionhandled`** event is sent to the script's global scope (usually [window] but also [Worker]) whenever a rejected JavaScript `Promise` is handled late, i.e. when a handler is attached to the promise after its rejection had caused an [Window.unhandledrejection_event] event.\n\nThis can be used in debugging and for general application resiliency, in tandem with the `unhandledrejection` event, which is sent when a promise is rejected but there is no handler for the rejection at the time.",
+ "releaseevents": "\n\nReleases the window from trapping events of a specific type.",
+ "requestanimationframe": "\n\nThe **`window.requestAnimationFrame()`** method tells the\nbrowser you wish to perform an animation. It requests the browser to call a\nuser-supplied callback function before the next repaint.\n\nThe frequency of calls to the callback function will generally match the display\nrefresh rate. The most common refresh rate is 60hz,\n(60 cycles/frames per second), though 75hz, 120hz, and 144hz are also widely used.\n`requestAnimationFrame()` calls are paused in most browsers when running in\nbackground tabs or hidden `iframe`s, in order to improve\nperformance and battery life.\n\n> **Note:** Your callback function must call `requestAnimationFrame()` again if\n> you want to animate another frame. `requestAnimationFrame()` is one-shot.\n\n> **Warning:** Be sure always to use the first argument (or some other method for\n> getting the current time) to calculate how much the animation will progress in\n> a frame — **otherwise, the animation will run faster on high refresh-rate screens**.\n> For ways to do that, see the examples below.",
+ "requestfilesystem": "\n\nThe non-standard [Window] method\n**`requestFileSystem()`** 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](/en-US/docs/Web/API/File_and_Directory_Entries_API).\n\n> **Note:** This method is prefixed with `webkit` in all browsers that implement it.",
+ "requestidlecallback": "\n\nThe **`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\nYou 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:** A `timeout` option is strongly recommended for required work,\n> as otherwise it's possible multiple seconds will elapse before the callback is fired.",
+ "resize_event": "\n\nThe **`resize`** event fires when the document view (window) has been resized.\n\nThis event is not cancelable and does not bubble.\n\nIn some earlier browsers it was possible to register `resize` event handlers on any HTML element. It is still possible to set `onresize` attributes or use [EventTarget.addEventListener] to set a handler on any element. However, `resize` events are only fired on the [Window] object (i.e. returned by [document.defaultView]). Only handlers registered on the `window` object will receive `resize` events.\n\nWhile the `resize` event fires only for the window nowadays, you can get resize notifications for other elements using the [ResizeObserver](/en-US/docs/Web/API/ResizeObserver) API.\n\nIf the resize event is triggered too many times for your application, see [Optimizing window.onresize](https://web.archive.org/web/20220714020647/https://bencentra.com/code/2015/02/27/optimizing-window-resize.html) to control the time after which the event fires.",
+ "resizeby": "\n\nThe **`Window.resizeBy()`** method resizes the current window\nby a specified amount.",
+ "resizeto": "\n\nThe **`Window.resizeTo()`** method dynamically resizes the\nwindow.",
+ "screen": "\n\nThe [Window] property **`screen`** returns a\nreference to the screen object associated with the window. The `screen`\nobject, implementing the [Screen] interface, is a special object for\ninspecting properties of the screen on which the current window is being rendered.",
+ "screenleft": "\n\nThe **`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\n> [Window.screenX] property. `screenLeft` was originally\n> supported only in IE but was introduced everywhere due to popularity.",
+ "screentop": "\n\nThe **`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\n> [Window.screenY] property. `screenTop` was originally\n> supported only in IE but was introduced everywhere due to popularity.",
+ "screenx": "\n\nThe **`Window.screenX`** read-only property returns the\nhorizontal distance, in CSS pixels, of the left border of the user's browser viewport to\nthe left side of the screen.\n\n> **Note:** An alias of `screenX` was implemented across modern\n> browsers in more recent times — [Window.screenLeft]. This was originally\n> supported only in IE but was introduced everywhere due to popularity.",
+ "screeny": "\n\nThe **`Window.screenY`** read-only property returns the vertical distance, in CSS pixels, of the top border of the user's browser viewport to the top edge of the screen.\n\n> **Note:** An alias of `screenY` was implemented across modern browsers in more recent times — [Window.screenTop]. This was originally supported only in IE but was introduced everywhere due to popularity.",
+ "scroll": "\n\nThe **`Window.scroll()`** method scrolls the window to a\nparticular place in the document.",
+ "scrollbars": "\n\nReturns the `scrollbars` object.\n\nThis is one of a group of `Window` properties that contain a boolean `visible` property, that used to represent whether or not a particular part of a web browser's user interface was visible.\n\nFor privacy and interoperability reasons, the value of the `visible` property is now `false` if this `Window` is a popup, and `true` otherwise.",
+ "scrollby": "\n\nThe **`Window.scrollBy()`** method scrolls the document in the\nwindow by the given amount.",
+ "scrollbylines": " \n\nThe **`Window.scrollByLines()`** method scrolls the document by\nthe specified number of lines.",
+ "scrollbypages": " \n\nThe **`Window.scrollByPages()`** method scrolls the current\ndocument by the specified number of pages.",
+ "scrollmaxx": " \n\nThe **`Window.scrollMaxX`** read-only property returns the\nmaximum number of pixels that the document can be scrolled horizontally.",
+ "scrollmaxy": " \n\nThe **`Window.scrollMaxY`** read-only property returns the\nmaximum number of pixels that the document can be scrolled vertically.",
+ "scrollto": "\n\n**`Window.scrollTo()`** scrolls to a particular set of\ncoordinates in the document.",
+ "scrollx": "\n\nThe read-only **`scrollX`** property of the\n[Window] interface returns the number of pixels that the document is\ncurrently scrolled horizontally. This value is subpixel precise in modern browsers,\nmeaning that it isn't necessarily a whole number. You can get the number of pixels the\ndocument is scrolled vertically from the [Window.scrollY]\nproperty.",
+ "scrolly": "\n\nThe read-only **`scrollY`** property\nof the [Window] interface returns the number of pixels that the document\nis currently scrolled vertically.\n\nThis value is subpixel precise in modern\nbrowsers, meaning that it isn't necessarily a whole number. You can get the number of\npixels the document is scrolled horizontally from the [Window.scrollX] property.",
+ "self": "\n\nThe **`Window.self`** read-only property returns the window itself, as a . It can be used with dot notation on a `window` object (that is, `window.self`) or standalone (`self`). The advantage of the standalone notation is that a similar notation exists for non-window contexts, such as in [Worker]. By using `self`, you can refer to the global scope in a way that will work not only in a window context (`self` will resolve to `window.self`) but also in a worker context (`self` will then resolve to [WorkerGlobalScope.self]).",
+ "sessionstorage": "\n\nThe read-only **`sessionStorage`**\nproperty accesses a session [Storage] object for the current\n. `sessionStorage` is similar to\n[Window.localStorage]; the difference is that while data\nin `localStorage` doesn't expire, data in `sessionStorage` is\ncleared when the _page session_ ends.\n\n- Whenever a document is loaded in a particular tab in the browser, a unique page\n session gets created and assigned to that particular tab. That page session is valid\n only for that particular tab.\n- A page session lasts as long as the tab or the browser is open, and survives over\n page reloads and restores.\n- **Opening a page in a new tab or window creates a new session with the value\n of the top-level browsing context, which differs from how session cookies\n work.**\n- Opening multiple tabs/windows with the same URL creates `sessionStorage`\n for each tab/window.\n- Duplicating a tab copies the tab's `sessionStorage` into the new\n tab.\n- Closing a tab/window ends the session and clears objects in\n `sessionStorage`.\n\nData stored in `sessionStorage` **is specific to the protocol of the\npage**. In particular, data stored by a script on a site accessed with HTTP\n(e.g., [http://example.com](https://example.com)) is\nput in a different `sessionStorage` object from the same site accessed with\nHTTPS (e.g., <https://example.com>).\n\nThe keys and the values are _always_ in the UTF-16 string\nformat, which uses two bytes per character. As with objects, integer keys are\nautomatically converted to strings.",
+ "setimmediate": " \n\nThis 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.",
+ "setresizable": " \n\nThis method does nothing; it is a no-op. It is solely kept for compatibility with Netscape 4.x.",
+ "sharedstorage": "\n\nThe 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](/en-US/docs/Web/API/Shared_Storage_API).\n\n> **Note:** `sharedStorage` is not available inside workers. It is implemented by [`Window`](/en-US/docs/Web/API/Window#scheduler) and is also available in shared storage worklets (see [SharedStorageWorkletGlobalScope.sharedStorage], which returns [WorkletSharedStorage]).",
+ "showdirectorypicker": "\n\nThe **`showDirectoryPicker()`** method of the\n[Window] interface displays a directory picker which allows the user to\nselect a directory.",
+ "showmodaldialog": "\n\n> **Warning:** This feature has been removed. Please fix your websites and applications.\n>\n> This method was removed in Chrome 43 and Firefox 56.\n\nThe **`Window.showModalDialog()`**\ncreated and displayed a modal dialog box containing a specified HTML document.",
+ "showopenfilepicker": "\n\nThe **`showOpenFilePicker()`** method of the\n[Window] interface shows a file picker that allows a user to select a file\nor multiple files and returns a handle for the file(s).",
+ "showsavefilepicker": "\n\nThe **`showSaveFilePicker()`** method of the\n[Window] interface shows a file picker that allows a user to save a file.\nEither by selecting an existing file, or entering a name for a new file.",
+ "sidebar": " \n\n> **Warning:** This non-standard Firefox-only alias of the [`window.external`](/en-US/docs/Web/API/Window/external) property [has been removed](#browser_compatibility).\n\nReturns a sidebar object which contains several methods for registering add-ons with the browser.",
+ "sizetocontent": "\n\nThe **`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 [Document/DOMContentLoaded_event] event has\nbeen thrown.\n\nSince Firefox 20, the minimal size of the window is clamped to prevent the window from\nbeing too small for the user to interact with.",
+ "speechsynthesis": "\n\nThe `speechSynthesis` read-only property of the Window object returns a [SpeechSynthesis] object, which is the entry point into using [Web Speech API](/en-US/docs/Web/API/Web_Speech_API) speech synthesis functionality.",
+ "status": "\n\nThe **`status`** property of the\n[Window] interface was originally intended to set the text in the status\nbar at the bottom of the browser window. However, the HTML standard now requires\nsetting `window.status` to have no effect on the text displayed in the\nstatus bar.",
+ "statusbar": "\n\nReturns the `statusbar` object.\n\nThis is one of a group of `Window` properties that contain a boolean `visible` property, that used to represent whether or not a particular part of a web browser's user interface was visible.\n\nFor privacy and interoperability reasons, the value of the `visible` property is now `false` if this `Window` is a popup, and `true` otherwise.",
+ "stop": "\n\nThe **`window.stop()`** stops further resource loading in the current\nbrowsing context, equivalent to the stop button in the browser.\n\nBecause of how scripts are executed, this method cannot interrupt its parent\ndocument's loading, but it will stop its images, new windows, and other still-loading\nobjects.",
+ "storage_event": "\n\nThe **`storage`** event of the [Window] interface fires when a storage area (`localStorage` or `sessionStorage`) has been modified in the context of another document.\n\nThis event is not cancelable and does not bubble.\n\n> **Note:** This won't work on the same page that is making the changes — it is really a way for other pages on the domain using the storage to sync any changes that are made. Pages on other domains can't access the same storage objects.",
+ "toolbar": "\n\nReturns the `toolbar` object.\n\nThis is one of a group of `Window` properties that contain a boolean `visible` property, that used to represent whether or not a particular part of a web browser's user interface was visible.\n\nFor privacy and interoperability reasons, the value of the `visible` property is now `false` if this `Window` is a popup, and `true` otherwise.",
+ "top": "\n\nReturns a reference to the topmost window in the window hierarchy.",
+ "unhandledrejection_event": "\n\nThe **`unhandledrejection`** event is sent to the global scope of a script when a JavaScript `Promise` that has no rejection handler is rejected; typically, this is the [window], but may also be a [Worker].\n\nThis is useful for debugging and for providing fallback error handling for unexpected situations.",
+ "unload_event": "\n\n> **Warning:** Developers should avoid using this event. See \"Usage notes\" below.\n\nThe **`unload`** event is fired when the document or a child resource is being unloaded.\n\nIt is fired after:\n\n- [Window/beforeunload_event] (cancelable event)\n- [Window/pagehide_event]\n\nThe document is in the following state:\n\n- All the resources still exist (img, iframe etc.)\n- Nothing is visible anymore to the end user\n- UI interactions are ineffective ([window.open], [window.alert], [window.confirm], etc.)\n- An error won't stop the unloading workflow\n\nPlease note that the unload event also follows the document tree: parent frame unload will happen **before** child frame `unload` (see example below).",
+ "updatecommands": "\n\nUpdates the state of commands of the current chrome window (UI).",
+ "visualviewport": "\n\nThe **`visualViewport`** read-only property of the\n[Window] interface returns a [VisualViewport] object\nrepresenting the visual viewport for a given window.",
+ "vrdisplayactivate_event": "\n\nThe **`vrdisplayactivate`** event of the [WebVR API](/en-US/docs/Web/API/WebVR_API) is fired when a VR display is able to be presented to, for example if an HMD has been moved to bring it out of standby, or woken up by being put on.\n\n> **Note:** This event was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis event is not cancelable and does not bubble.",
+ "vrdisplayconnect_event": "\n\nThe **`vrdisplayconnect`** event of the [WebVR API](/en-US/docs/Web/API/WebVR_API) is fired when a compatible VR display is connected to the computer.\n\n> **Note:** This event was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis event is not cancelable and does not bubble.",
+ "vrdisplaydeactivate_event": "\n\nThe **`vrdisplaydeactivate`** event of the [WebVR API](/en-US/docs/Web/API/WebVR_API) is fired when a VR display can no longer be presented to, for example if an HMD has gone into standby or sleep mode due to a period of inactivity.\n\n> **Note:** This event was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis event is not cancelable and does not bubble.",
+ "vrdisplaydisconnect_event": "\n\nThe **`vrdisplaydisconnect`** event of the [WebVR API](/en-US/docs/Web/API/WebVR_API) is fired when a compatible VR display is disconnected from the computer.\n\nThis event is not cancelable and does not bubble.",
+ "vrdisplaypresentchange_event": "\n\nThe **`vrdisplaypresentchange`** event of the [WebVR API](/en-US/docs/Web/API/WebVR_API) is fired when the presenting state of a VR display changes — i.e. goes from presenting to not presenting, or vice versa.\n\n> **Note:** This event was part of the old [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/). It has been superseded by the [WebXR Device API](https://immersive-web.github.io/webxr/).\n\nThis event is not cancelable and does not bubble.",
+ "webkitconvertpointfromnodetopage": "\n\nGiven 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:** Please review the [Browser compatibility](#browser_compatibility) section before using this method, as it's not widely supported (nor is the [WebKitPoint] object it uses).",
+ "webkitconvertpointfrompagetonode": "\n\nGiven a [WebKitPoint] specified in the page's coordinate system, the\n[Window] method **`webkitConvertPointFromPageToNode()`**\nreturns a `Point` object specifying the same location in the coordinate\nsystem of the specified DOM [Node].\n\n> **Warning:** Please review the [Browser compatibility](#browser_compatibility) section before using this method,\n> as it's not widely supported (nor is the [WebKitPoint] object it uses)."
+ }
+ },
+ "windowclient": {
+ "docs": "\n\nThe `WindowClient` interface of the [ServiceWorker API](/en-US/docs/Web/API/Service_Worker_API) represents the scope of a service worker client that is a document in a browsing context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources.\n\n",
+ "properties": {
+ "ancestororigins": "\n\nThe **`ancestorOrigins`** read-only property of the [WindowClient] interface is an array of strings listing the origins of all ancestors of the browsing context represented by this `WindowClient` in reverse order.\n\nThe first element in the array is the origin of this window's parent, and the last element is the origin of the top-level browsing context. If this window is itself a top-level browsing context, then `ancestorOrigins` is an empty array.",
+ "focus": "\n\nThe **`focus()`** method of the [WindowClient]\ninterface gives user input focus to the current client and returns a\n`Promise` that resolves to the existing\n[WindowClient].",
+ "focused": "\n\nThe **`focused`** read-only property of the\n[WindowClient] interface is a boolean value that indicates whether\nthe current client has focus.",
+ "navigate": "\n\nThe **`navigate()`** method of the [WindowClient]\ninterface loads a specified URL into a controlled client page then returns a\n`Promise` that resolves to the existing [WindowClient].",
+ "visibilitystate": "\n\nThe **`visibilityState`** read-only property of the\n[WindowClient] interface indicates the visibility of the current client.\nThis value can be one of `\"hidden\"`, `\"visible\"`, or\n`\"prerender\"`."
+ }
+ },
+ "windowcontrolsoverlay": {
+ "docs": "\n\nThe **`WindowControlsOverlay`** interface of the [Window Controls Overlay API](/en-US/docs/Web/API/Window_Controls_Overlay_API) exposes information about the geometry\nof the title bar area in desktop Progressive Web Apps, and an event to know whenever it changes. This interface is accessible from [Navigator.windowControlsOverlay].\n\n",
+ "properties": {
+ "geometrychange_event": "\n\nThe `geometrychange` event is fired when the position, size, or visibility of a Progressive Web App's title bar area changes.\n\nThis only applies to Progressive Web Apps installed on desktop operating systems and use the [Window Controls Overlay API](/en-US/docs/Web/API/Window_Controls_Overlay_API).",
+ "gettitlebararearect": "\n\nThe **`getTitlebarAreaRect()`** method of the [WindowControlsOverlay] interface queries the current geometry of the title bar area of the Progressive Web App window.\n\nThis only applies to Progressive Web Apps installed on desktop operating systems and which use the [Window Controls Overlay API](/en-US/docs/Web/API/Window_Controls_Overlay_API).",
+ "visible": "\n\nThe **`visible`** read-only property of the [WindowControlsOverlay] interface returns a that indicates whether the window controls overlay is visible or not.\n\nThe window controls overlay is not be visible if:\n\n- The Web App Manifest's [`display_override`](/en-US/docs/Web/Manifest/display_override) member is not set to `window-controls-overlay`.\n- Or, if the user has opted-out of the feature."
+ }
+ },
+ "windowcontrolsoverlaygeometrychangeevent": {
+ "docs": "\n\nThe **`WindowControlsOverlayGeometryChangeEvent`** interface of the [Window Controls Overlay API](/en-US/docs/Web/API/Window_Controls_Overlay_API) is passed to [WindowControlsOverlay/geometrychange_event] when the size or visibility of a desktop Progress Web App's title bar region changes.\n\n",
+ "properties": {
+ "titlebararearect": "\n\nThe **`titlebarAreaRect`** read-only property of the [WindowControlsOverlayGeometryChangeEvent] interface is a [DOMRect] representing the position and size of the area occupied by the title bar in a desktop-installed Progressive Web App.",
+ "visible": "\n\nThe **`visible`** read-only property of the [WindowControlsOverlayGeometryChangeEvent] interface is a boolean flag that indicates whether the window controls overlay is visible or not in a desktop-installed Progressive Web App.\n\nIf the user opts-out of the [Window Controls Overlay](/en-US/docs/Web/API/Window_Controls_Overlay_API) feature, the default title bar appears and the window controls buttons do not appear as an overlay, in which case the `visible` flag is false."
+ }
+ },
+ "windowsharedstorage": {
+ "docs": "\n\nThe **`WindowSharedStorage`** interface of the [Shared Storage API] represents the shared storage for a particular origin within a standard browsing context.\n\n`WindowSharedStorage` is accessed via [Window.sharedStorage].\n\n",
+ "properties": {
+ "run": "\n\nThe **`run()`** method of the\n[WindowSharedStorage] interface executes a [run operation](/en-US/docs/Web/API/SharedStorageRunOperation) that is registered in a module added to the current origin's [SharedStorageWorklet].\n\n> **Note:** The [Run output gate](/en-US/docs/Web/API/Shared_Storage_API#run) is intended as a generic way to process some shared storage data.",
+ "selecturl": "\n\nThe **`selectURL()`** method of the\n[WindowSharedStorage] interface executes a [URL Selection operation](/en-US/docs/Web/API/SharedStorageSelectURLOperation) that is registered in a module added to the current origin's [SharedStorageWorklet].\n\n> **Note:** The [URL Selection output gate](/en-US/docs/Web/API/Shared_Storage_API#url_selection) is used to select a URL from a provided list to display to the user, based on shared storage data.",
+ "worklet": "\n\nThe **`worklet`** read-only property of the\n[WindowSharedStorage] interface contains the [SharedStorageWorklet] instance representing the shared storage worklet for the current origin.\n\n`SharedStorageWorklet` contains the [Worklet.addModule] method, which is used to add a module to the shared storage worklet."
+ }
+ },
+ "worker": {
+ "docs": "\n\nThe **`Worker`** interface of the [Web Workers API](/en-US/docs/Web/API/Web_Workers_API) represents a background task that can be created via script, which can send messages back to its creator.\n\nCreating a worker is done by calling the `Worker(\"path/to/worker/script\")` constructor.\n\nWorkers may themselves spawn new workers, as long as those workers are hosted at the same [origin](/en-US/docs/Web/Security/Same-origin_policy) as the parent page.\n\nNote that not all interfaces and functions are available to web workers. See [Functions and classes available to Web Workers](/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers) for details.\n\n",
+ "properties": {
+ "error_event": "\n\nThe **`error`** event of the [Worker] interface fires when an error occurs in the worker.",
+ "message_event": "\n\nThe `message` event is fired on a [Worker] object when the worker's parent receives a message from its worker (i.e. when the worker sends a message using [`DedicatedWorkerGlobalScope.postMessage()`](/en-US/docs/Web/API/DedicatedWorkerGlobalScope/postMessage)).\n\nThis event is not cancellable and does not bubble.",
+ "messageerror_event": "\n\nThe `messageerror` event is fired on a [Worker] object when it receives a message that can't be deserialized.\n\nThis event is not cancellable and does not bubble.",
+ "postmessage": "\n\nThe **`postMessage()`** method of the [Worker] 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 that can be handled by the [structured clone algorithm](/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm).\n\nThe [Worker] `postMessage()` method delegates to the [MessagePort] [MessagePort.postMessage] method, which adds a task on the event loop corresponding to the receiving [MessagePort].\n\nThe `Worker` can send back information to the thread that spawned it using the [DedicatedWorkerGlobalScope.postMessage] method.",
+ "terminate": "\n\nThe **`terminate()`** method of the [Worker] interface immediately terminates the [Worker]. This does not offer the worker an opportunity to finish its operations; it is stopped at once."
+ }
+ },
+ "workerglobalscope": {
+ "docs": "\n\nThe **`WorkerGlobalScope`** interface of the [Web Workers API](/en-US/docs/Web/API/Web_Workers_API) is an interface representing the scope of any worker. Workers have no browsing context; this scope contains the information usually conveyed by [Window] objects — in this case event handlers, the console or the associated [WorkerNavigator] object. Each `WorkerGlobalScope` has its own event loop.\n\nThis interface is usually specialized by each worker type: [DedicatedWorkerGlobalScope] for dedicated workers, [SharedWorkerGlobalScope] for shared workers, and [ServiceWorkerGlobalScope] for [ServiceWorker](/en-US/docs/Web/API/Service_Worker_API). The `self` property returns the specialized scope for each context.\n\n",
+ "properties": {
+ "dump": "\n\nThe **`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\nOutput from `dump()` is _not_ sent to the browser's developer tools console. To log to the developer tools console, use [`console.log()`](/en-US/docs/Web/API/console/log_static).",
+ "error_event": "\n\nThe **`error`** event of the [WorkerGlobalScope] interface fires when an error occurs in the worker.",
+ "fonts": "\n\nThe **`fonts`** property of the [WorkerGlobalScope] interface returns the [FontFaceSet] interface of the worker.\n\nThis property is part of the [CSS Font Loading API](/en-US/docs/Web/API/CSS_Font_Loading_API).",
+ "importscripts": "\n\nThe **`importScripts()`** method of the [WorkerGlobalScope] interface synchronously imports one or more scripts into the worker's scope.",
+ "languagechange_event": "\n\nThe **`languagechange`** event is fired at the global scope object when the user's preferred language changes.\n\nThis event is not cancelable and does not bubble.",
+ "location": "\n\nThe **`location`** read-only property of the [WorkerGlobalScope] interface returns the [WorkerLocation] associated with the worker. It is a specific location object, mostly a subset of the [Location] for browsing scopes, but adapted to workers.",
+ "navigator": "\n\nThe **`navigator`** read-only property of the [WorkerGlobalScope] interface returns the [WorkerNavigator] associated with the worker. It is a specific navigator object, mostly a subset of the [Navigator] for browsing scopes, but adapted to workers.",
+ "offline_event": "\n\nThe **`offline`** event of the [WorkerGlobalScope] fires when the device loses connection to the internet.",
+ "online_event": "\n\nThe **`online`** event of the [WorkerGlobalScope] fires when the device reconnects to the internet.",
+ "rejectionhandled_event": "\n\nThe **`rejectionhandled`** event is sent to the script's global scope (typically [WorkerGlobalScope]) whenever a rejected `Promise` is handled late, i.e., when a handler is attached to the promise after its rejection had caused an [WorkerGlobalScope.unhandledrejection_event] event.\n\nThis can be used in debugging and for general application resiliency, in tandem with the `unhandledrejection` event, which is sent when a promise is rejected but there is no handler for the rejection at the time.",
+ "securitypolicyviolation_event": "\n\nThe **`securitypolicyviolation`** event is fired when a [Content Security Policy](/en-US/docs/Web/HTTP/CSP) is violated in a worker.\n\nThe handler can be assigned using the `onsecuritypolicyviolation` event handler property or using [EventTarget.addEventListener].",
+ "self": "\n\nThe **`self`** read-only property of the [WorkerGlobalScope] interface returns a reference to the `WorkerGlobalScope` itself. Most of the time it is a specific scope like [DedicatedWorkerGlobalScope], [SharedWorkerGlobalScope], or [ServiceWorkerGlobalScope].",
+ "unhandledrejection_event": "\n\nThe **`unhandledrejection`** event is sent to the global scope (typically [WorkerGlobalScope]) of a script when a `Promise` that has no rejection handler is rejected.\n\nThis is useful for debugging and for providing fallback error handling for unexpected situations."
+ }
+ },
+ "workerlocation": {
+ "docs": "\n\nThe **`WorkerLocation`** interface defines the absolute location of the script executed by the [Worker]. Such an object is initialized for each worker and is available via the [WorkerGlobalScope.location] property obtained by calling `self.location`.\n\nThis interface is only visible from inside a JavaScript script executed in the context of a Web worker.",
+ "properties": {
+ "hash": "\n\nThe **`hash`** property of a [WorkerLocation] object returns the [URL.hash] part of the worker's location.",
+ "host": "\n\nThe **`host`** property of a [WorkerLocation] object returns the [URL.host] part of the worker's location.",
+ "hostname": "\n\nThe **`hostname`** property of a [WorkerLocation] object returns the [URL.hostname] part of the worker's location.",
+ "href": "\n\nThe **`href`** property of a [WorkerLocation] object returns a string containing the serialized [URL] for the worker's location.",
+ "origin": "\n\nThe **`origin`** property of a [WorkerLocation] object returns the worker's [URL.origin].",
+ "pathname": "\n\nThe **`pathname`** property of a [WorkerLocation] object returns the [URL.pathname] part of the worker's location.",
+ "port": "\n\nThe **`port`** property of a [WorkerLocation] object returns the [URL.port] part of the worker's location.",
+ "protocol": "\n\nThe **`protocol`** property of a [WorkerLocation] object returns the [URL.protocol] part of the worker's location.",
+ "search": "\n\nThe **`search`** property of a [WorkerLocation] object returns the [URL.search] part of the worker's location.",
+ "tostring": "\n\nThe **`toString()`** method of a [WorkerLocation] object returns a string containing the serialized [URL] for the worker's location. It is a synonym for [WorkerLocation.href]."
+ }
+ },
+ "workernavigator": {
+ "docs": "\n\nThe **`WorkerNavigator`** interface represents a subset of the [Navigator] interface allowed to be accessed from a [Worker]. Such an object is initialized for each worker and is available via the [WorkerGlobalScope.navigator] property.",
+ "properties": {
+ "appcodename": " \n\nThe value of the **`WorkerNavigator.appCodeName`** property is\nalways \"`Mozilla`\", in any browser. This property is kept only for\ncompatibility purposes.\n\n> **Note:** Do not rely on this property to return a real\n> product name. All browsers return \"`Mozilla`\" as the value of this property.",
+ "appname": " \n\nThe value of the **`WorkerNavigator.appName`** property is always\n\"`Netscape`\", in any browser. This property is kept only for compatibility\npurposes.\n\n> **Note:** Do not rely on this property to return a real browser name. All browsers return \"`Netscape`\" as the value of this property.",
+ "appversion": " \n\nReturns either \"`4.0`\" or a string representing version information about\nthe browser.\n\n> **Note:** Do not rely on this property to return the correct browser version.",
+ "clearappbadge": "\n\nThe **`clearAppBadge()`** method of the [WorkerNavigator] interface clears a badge on the current app's icon by setting it to `nothing`. The value `nothing` indicates that no badge is currently set, and the status of the badge is _cleared_.",
+ "connection": "\n\nThe **`WorkerNavigator.connection`** read-only property returns\na [NetworkInformation] object containing information about the system's\nconnection, such as the current bandwidth of the user's device or whether the connection\nis metered. This could be used to select high definition content or low definition\ncontent based on the user's connection.",
+ "devicememory": "\n\nThe **`deviceMemory`** read-only\nproperty of the [WorkerNavigator] interface returns the approximate amount of\ndevice memory in gigabytes.\n\nThe reported value is imprecise to curtail . It's approximated by\nrounding down to the nearest power of 2, then dividing that number by 1024. It is then\nclamped within lower and upper bounds to protect the privacy of owners of very low-memory or\nhigh-memory devices.",
+ "globalprivacycontrol": "\n\nThe **`WorkerNavigator.globalPrivacyControl`** read-only property returns the user's Global Privacy Control setting for the current website.\nThis setting indicates whether the user consents to the website or service selling or sharing their personal information with third parties.\n\nThe value of the property reflects that of the HTTP header.",
+ "gpu": "\n\nThe **`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].",
+ "hardwareconcurrency": "\n\nThe **`navigator.hardwareConcurrency`** read-only property\nreturns the number of logical processors available to run threads on the user's\ncomputer.",
+ "language": "\n\nThe **`WorkerNavigator.language`** read-only property returns\na string representing the preferred language of the user, usually the language of the\nbrowser UI.",
+ "languages": "\n\nThe **`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\n`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\nThe value of [WorkerNavigator.language] is the\nfirst element of the returned array.\n\nWhen its value changes, as the user's preferred languages are changed a\n[Window.languagechange_event] event is fired on the [WorkerGlobalScope] object.\n\nThe `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`).",
+ "locks": "\n\nThe **`locks`** read-only property of\nthe [WorkerNavigator] interface returns a [LockManager]\nobject which provides methods for requesting a new [Lock] object and\nquerying for an existing `Lock` object.",
+ "mediacapabilities": "\n\nThe read-only **`WorkerNavigator.mediaCapabilities`** property\nreturns a [MediaCapabilities] object that can expose information about the\ndecoding and encoding capabilities for a given format and output capabilities as defined\nby the [Media Capabilities API](/en-US/docs/Web/API/Media_Capabilities_API).",
+ "online": "\n\nReturns the online status of the browser. The property returns a boolean value, with `true` meaning online and `false` meaning offline. The property sends updates whenever the browser's ability to connect to the network changes. The update occurs when the user follows links or when a script requests a remote page.\n\nFor example, the property should return `false` when users click links soon after they lose internet connection.\n\nBrowsers implement this property differently.\n\nIn Chrome and Safari, if the browser is not able to connect to a local area network (LAN) or a router, it is offline; all other conditions return `true`. So while you can assume that the browser is offline when it returns a `false` value, you cannot assume that a true value necessarily means that the browser can access the internet. You could be getting false positives, such as in cases where the computer is running a virtualization software that has virtual ethernet adapters that are always\n\"connected.\" Therefore, if you really want to determine the online status of the browser, you should develop additional means for checking. To learn more, see the 2011 article, [Working Off the Grid](https://developer.chrome.com/docs/workbox/service-worker-overview/).\n\nIn Firefox, switching the browser to offline mode sends a `false` value.",
+ "permissions": "\n\nThe **`WorkerNavigator.permissions`** read-only property\nreturns a [Permissions] object that can be used to query and update\npermission status of APIs covered by the [Permissions API](/en-US/docs/Web/API/Permissions_API).",
+ "platform": " \n\nReturns a string representing the platform of the browser. The specification allows\nbrowsers to always return the empty string, so don't rely on this property to get a\nreliable answer.",
+ "product": " \n\nThe value of the **`WorkerNavigator.product`** property is always\n\"`Gecko`\", in any browser. This property is kept only for compatibility\npurposes.\n\n> **Note:** Do not rely on this property to return a real product name. All browsers return \"`Gecko`\" as the value of this property.",
+ "serial": "\n\nThe **`serial`** read-only property of the [WorkerNavigator] interface returns a [Serial] object which represents the entry point into the [Web Serial API].\n\nWhen getting, the same instance of the [Serial] object will always be returned.",
+ "serviceworker": "\n\nThe **`serviceWorker`** read-only property of the [WorkerNavigator] interface returns the [ServiceWorkerContainer] object for the [associated document](https://html.spec.whatwg.org/multipage/browsers.html#concept-document-window), which provides access to registration, removal, upgrade, and communication with the [ServiceWorker].\n\nThe feature may not be available in private mode.",
+ "setappbadge": "\n\nThe **`setAppBadge()`** method of the [WorkerNavigator] interface sets a badge on the icon associated with this app. If a value is passed to the method, this will be set as the value of the badge. Otherwise the badge will display as a dot, or other indicator as defined by the platform.",
+ "storage": "\n\nThe **`storage`** read-only property of the [WorkerNavigator] interface\nreturns the singleton [StorageManager] object used to\naccess the overall storage capabilities of the browser for the current site or app.\nThe returned object lets you examine and configure persistence of data stores and\nlearn approximately how much more space your browser has available for local storage\nuse.",
+ "usb": "\n\nThe **`usb`** read-only property of the [WorkerNavigator] interface returns a [USB] object for the current document, providing access to [WebUSB API](/en-US/docs/Web/API/WebUSB_API) functionality.",
+ "useragent": "\n\nThe **`WorkerNavigator.userAgent`** read-only property returns the\nuser agent string for the current browser.\n\n> **Note:** The specification asks browsers to provide as little information via this field as\n> possible. Never assume that the value of this property will stay the same in future\n> versions of the same browser. Try not to use it at all, or only for current and past\n> versions of a browser. New browsers may start using the same UA, or part of it, as an\n> older browser: you really have no guarantee that the browser agent is indeed the one\n> advertised by this property.\n>\n> Also keep in mind that users of a browser can change the value of this field if they\n> want (UA spoofing).\n\nBrowser identification based on detecting the user agent string is\n**unreliable** and **is not recommended**, as the user agent\nstring is user configurable. For example:\n\n- In Firefox, you can change the preference `general.useragent.override` in\n `about:config`. Some Firefox extensions do that; however, this only changes\n the HTTP header that gets sent, and doesn't affect browser detection performed by\n JavaScript code.\n- Opera 6+ allows users to set the browser identification string via a menu.",
+ "useragentdata": "\n\nThe **`userAgentData`** read-only property of the [WorkerNavigator] interface returns an [NavigatorUAData] object\nwhich can be used to access the ."
+ }
+ },
+ "worklet": {
+ "docs": "\n\nThe **`Worklet`** interface is a lightweight version of [Worker] and gives developers access to low-level parts of the rendering pipeline.\n\nWith Worklets, you can run JavaScript and [WebAssembly](/en-US/docs/WebAssembly) code to do graphics rendering or audio processing where high performance is required.\n\nWorklets allow static import of [ECMAScript modules](/en-US/docs/Web/JavaScript/Guide/Modules), if supported, using [`import`](/en-US/docs/Web/JavaScript/Reference/Statements/import).\nDynamic import is disallowed by the specification — calling [`import()`](/en-US/docs/Web/JavaScript/Reference/Operators/import) will throw.",
+ "properties": {
+ "addmodule": "\n\nThe **`addModule()`** method of the\n[Worklet] interface loads the module in the given JavaScript file and\nadds it to the current `Worklet`."
+ }
+ },
+ "workletglobalscope": {
+ "docs": "\n\nThe **`WorkletGlobalScope`** interface is an abstract class that specific worklet scope classes inherit from. Each `WorkletGlobalScope` defines a new global environment.\n\n> **Note:** You don't normally need to interact with this interface. It is a base interface intended to be subclassed. You will encounter the subclasses [AudioWorkletGlobalScope] inside [AudioWorklet] objects, or [PaintWorkletGlobalScope] inside CSS paint [Worklet] objects."
+ },
+ "workletsharedstorage": {
+ "docs": "\n\nThe **`WorkletSharedStorage`** interface of the [Shared Storage API] represents the shared storage for a particular origin within a worklet context.\n\n`WorkletSharedStorage` is accessed via [SharedStorageWorkletGlobalScope.sharedStorage].\n\n",
+ "properties": {
+ "context": "\n\nThe **`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.",
+ "entries": "\n\nThe **`entries()`** method of the\n[WorkletSharedStorage] interface returns an [async iterator](/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncIterator). The iterator provides an array of `[key, value]` pairs corresponding to the enumerable properties of a `WorkletSharedStorage` instance. The order of these pairs is similar to that in a [`for...in`](/en-US/docs/Web/JavaScript/Reference/Statements/for...in) loop, though a `for...in` loop also enumerates properties from the prototype chain.",
+ "get": "\n\nThe **`get()`** method of the\n[WorkletSharedStorage] interface retrieves a value from shared storage.",
+ "keys": "\n\nThe **`keys()`** method of the\n[WorkletSharedStorage] interface returns an [async iterator](/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncIterator), which contains the keys for each item in a `WorkletSharedStorage` instance.",
+ "length": "\n\nThe **`length()`** method of the\n[WorkletSharedStorage] interface returns the number of entries currently stored in shared storage for the current origin.",
+ "remainingbudget": "\n\nThe **`remainingBudget()`** method of the\n[WorkletSharedStorage] interface returns the remaining navigation budget for the current origin.\n\nThe navigation budget is the number of entropy bits permitted inside a `fencedframe` due to the [WindowSharedStorage.selectURL] calls per origin every 24 hours. This is not the same as the number of navigations; rather, it is based on the number of potential navigations in each call. Each time a `selectURL()` navigation occurs, the corresponding origin's budget decreases by the logarithm (base 2) of the number of URL choices.\n\nNavigation budget is a mechanism designed to limit the rate of leakage of cross-site data to the destination pages navigated to in [fenced frames](/en-US/docs/Web/API/Fenced_Frame_API)."
+ }
+ },
+ "writablestream": {
+ "docs": "\n\nThe **`WritableStream`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) provides a standard abstraction for writing streaming data to a destination, known as a sink.\nThis object comes with built-in backpressure and queuing.\n\n`WritableStream` is a [transferable object](/en-US/docs/Web/API/Web_Workers_API/Transferable_objects).",
+ "properties": {
+ "abort": "\n\nThe **`abort()`** method of the [WritableStream] interface aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be immediately moved to an error state, with any queued writes discarded.",
+ "close": "\n\nThe **`close()`** method of the [WritableStream] interface closes the associated stream. All chunks written before this method is called are sent before the returned promise is fulfilled.\n\nThis is equivalent to getting a [WritableStreamDefaultWriter] with [WritableStream.getWriter], calling [WritableStreamDefaultWriter.close] on it.",
+ "getwriter": "\n\nThe **`getWriter()`** method of the [WritableStream] interface returns a new instance of [WritableStreamDefaultWriter] and locks the stream to that instance.\nWhile the stream is locked, no other writer can be acquired until this one is released.",
+ "locked": "\n\nThe **`locked`** read-only property of the [WritableStream] interface returns a boolean indicating whether the `WritableStream` is locked to a writer."
+ }
+ },
+ "writablestreamdefaultcontroller": {
+ "docs": "\n\nThe **`WritableStreamDefaultController`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) represents a controller allowing control of a [WritableStream]'s state. When constructing a `WritableStream`, the underlying sink is given a corresponding `WritableStreamDefaultController` instance to manipulate.",
+ "properties": {
+ "error": "\n\nThe **`error()`** method of the\n[WritableStreamDefaultController] interface causes any future interactions\nwith the associated stream to error.\n\nThis method is rarely used, since usually it suffices to return a rejected promise from\none of the underlying sink's methods. However, it can be useful for suddenly shutting\ndown a stream in response to an event outside the normal lifecycle of interactions with\nthe underlying sink.",
+ "signal": "\n\nThe read-only **`signal`** property of the [WritableStreamDefaultController] interface returns the [AbortSignal] associated with the controller."
+ }
+ },
+ "writablestreamdefaultwriter": {
+ "docs": "\n\nThe **`WritableStreamDefaultWriter`** interface of the [Streams API](/en-US/docs/Web/API/Streams_API) is the object returned by [WritableStream.getWriter] and once created locks the writer to the `WritableStream` ensuring that no other streams can write to the underlying sink.",
+ "properties": {
+ "abort": "\n\nThe **`abort()`** method of the\n[WritableStreamDefaultWriter] interface aborts the stream, signaling that\nthe producer can no longer successfully write to the stream and it is to be immediately\nmoved to an error state, with any queued writes discarded.\n\nIf the writer is active, the `abort()` method behaves the same as that for\nthe associated stream ([WritableStream.abort]). If not, it returns a\nrejected promise.",
+ "close": "\n\nThe **`close()`** method of the\n[WritableStreamDefaultWriter] interface closes the associated writable\nstream.\n\nThe underlying sink will finish processing any previously-written chunks, before\ninvoking the close behavior. During this time any further attempts to write will fail\n(without erroring the stream).",
+ "closed": "\n\nThe **`closed`** read-only property of the\n[WritableStreamDefaultWriter] interface returns a\n`Promise` that fulfills if the stream becomes closed, or rejects if\nthe stream errors or the writer's lock is released.",
+ "desiredsize": "\n\nThe **`desiredSize`** read-only property of the\n[WritableStreamDefaultWriter] interface returns the desired size required\nto fill the stream's internal queue.",
+ "ready": "\n\nThe **`ready`** read-only property of the\n[WritableStreamDefaultWriter] interface returns a `Promise`\nthat resolves when the desired size of the stream's internal queue transitions from\nnon-positive to positive, signaling that it is no longer applying backpressure.",
+ "releaselock": "\n\nThe **`releaseLock()`** method of the\n[WritableStreamDefaultWriter] interface releases the writer's lock on the\ncorresponding stream. After the lock is released, the writer is no longer active. If the\nassociated stream is errored when the lock is released, the writer will appear errored\nin the same way from now on; otherwise, the writer will appear closed.",
+ "write": "\n\nThe **`write()`** method of the\n[WritableStreamDefaultWriter] interface writes a passed chunk of data to a\n[WritableStream] and its underlying sink, then returns a\n`Promise` that resolves to indicate the success or failure of the write\noperation.\n\nNote that what \"success\" means is up to the underlying sink; it might indicate that the\nchunk has been accepted, and not necessarily that it is safely saved to its ultimate\ndestination."
+ }
+ },
+ "xmldocument": {
+ "docs": "\n\nThe **XMLDocument** interface represents an XML document. It inherits from the generic [Document] and does not add any specific methods or properties to it: nevertheless, several algorithms behave differently with the two types of documents.\n\n"
+ },
+ "xmlhttprequest": {
+ "docs": "\n\n`XMLHttpRequest` (XHR) objects are used to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing.\n\nDespite its name, `XMLHttpRequest` can be used to retrieve any type of data, not just XML.\n\nIf your communication needs to involve receiving event data or message data from a server, consider using [server-sent events](/en-US/docs/Web/API/Server-sent_events) through the [EventSource] interface. For full-duplex communication, [WebSockets](/en-US/docs/Web/API/WebSockets_API) may be a better choice.\n\n`notservice`",
+ "properties": {
+ "abort": "\n\nThe **`XMLHttpRequest.abort()`** method aborts the request if\nit has already been sent. When a request is aborted, its\n[XMLHttpRequest.readyState] is changed to\n`XMLHttpRequest.UNSENT` (0) and the request's\n[XMLHttpRequest.status] code is set to 0.",
+ "abort_event": "\n\nThe `abort` event is fired when a request has been aborted, for example because the program called [XMLHttpRequest.abort].",
+ "channel": "\n\nXMLHttpRequest.channel is an `nsIChannel` that used by the object when performing the request. This is `null` if the channel hasn't been created yet. In the case of a multi-part request, this is the initial channel, not the different parts in the multi-part request. **Requires elevated privileges to access.**",
+ "error_event": "\n\nThe `error` event is fired when the request encountered an error.",
+ "getallresponseheaders": "\n\nThe [XMLHttpRequest] method\n**`getAllResponseHeaders()`** returns all the response\nheaders, separated by , as a string, or returns `null`\nif no response has been received.\n\nIf a network error happened, an empty string\nis returned.\n\n> **Note:** For multipart requests, this returns the headers from the\n> _current_ part of the request, not from the original channel.",
+ "getresponseheader": "\n\nThe [XMLHttpRequest] method\n**`getResponseHeader()`** returns the string containing the\ntext of a particular header's value.\n\nIf there are multiple response headers\nwith the same name, then their values are returned as a single concatenated string,\nwhere each value is separated from the previous one by a pair of comma and space. The\n`getResponseHeader()` method returns the value as a UTF byte sequence.\n\n> **Note:** The search for the header name is case-insensitive.\n\nIf you need to get the raw string of all of the headers, use the\n[XMLHttpRequest.getAllResponseHeaders] method,\nwhich returns the entire raw header string.",
+ "load_event": "\n\nThe `load` event is fired when an [XMLHttpRequest] transaction completes successfully.",
+ "loadend_event": "\n\nThe **`loadend`** event is fired when a request has completed, whether successfully (after [XMLHttpRequest/load_event]) or unsuccessfully (after [XMLHttpRequest/abort_event] or [XMLHttpRequest/error_event]).",
+ "loadstart_event": "\n\nThe **`loadstart`** event is fired when a request has started to load data.",
+ "mozanon": "\n\n**`XMLHttpRequest.mozAnon`** is a boolean. If true, the request will be sent without cookies or authentication headers.",
+ "mozbackgroundrequest": "\n\n> **Note:** This method is not available from Web content. It requires elevated privileges to access.\n\n**`XMLHttpRequest.mozBackgroundRequest`** is a Boolean, indicating if the object represents a background service request. If `true`, no load group is associated with the request, with security dialogs prevented from being shown to the user.\n\nIn cases in where a security dialog (such as authentication or a bad certificate notification) would normally be shown, this request fails instead.\n\n> **Note:** This property must be set before calling `open()`.",
+ "mozsystem": "\n\n**`mozSystem`** is a boolean. If true, the same origin policy is not enforced on the request.",
+ "open": "\n\nThe [XMLHttpRequest] method **`open()`**\ninitializes a newly-created request, or re-initializes an existing one.\n\n> **Note:** Calling this method for an already active request\n> (one for which `open()` has already been called) is the equivalent of calling\n> [XMLHttpRequest.abort].",
+ "overridemimetype": "\n\nThe [XMLHttpRequest] method\n**`overrideMimeType()`** specifies a MIME type other than the\none provided by the server to be used instead when interpreting the data being\ntransferred in a request.\n\nThis may be used, for example, to force a stream to\nbe treated and parsed as `\"text/xml\"`, even if the server does not report it\nas such. This method must be called before calling [XMLHttpRequest.send].",
+ "progress_event": "\n\nThe **`progress`** event is fired periodically when a request receives more data.",
+ "readystate": "\n\nThe **XMLHttpRequest.readyState** property returns the state an XMLHttpRequest client is in. An XHR client exists in one of the following states:\n\n| Value | State | Description |\n| ----- | ------------------ | --------------------------------------------------------------- |\n| `0` | `UNSENT` | Client has been created. `open()` not called yet. |\n| `1` | `OPENED` | `open()` has been called. |\n| `2` | `HEADERS_RECEIVED` | `send()` has been called, and headers and status are available. |\n| `3` | `LOADING` | Downloading; `responseText` holds partial data. |\n| `4` | `DONE` | The operation is complete. |\n\n- UNSENT\n - : The XMLHttpRequest client has been created, but the open() method hasn't been called yet.\n- OPENED\n - : open() method has been invoked. During this state, the request headers can be set using the [setRequestHeader()](/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader) method and the [send()](/en-US/docs/Web/API/XMLHttpRequest/send) method can be called which will initiate the fetch.\n- HEADERS_RECEIVED\n - : send() has been called, all redirects (if any) have been followed and the response headers have been received.\n- LOADING\n - : Response's body is being received. If [`responseType`](/en-US/docs/Web/API/XMLHttpRequest/responseType) is \"text\" or empty string, [`responseText`](/en-US/docs/Web/API/XMLHttpRequest/responseText) will have the partial text response as it loads.\n- DONE\n - : The fetch operation is complete. This could mean that either the data transfer has been completed successfully or failed.",
+ "readystatechange_event": "\n\nThe `readystatechange` event is fired whenever the [XMLHttpRequest.readyState] property of the [XMLHttpRequest] changes.\n\n> **Warning:** This should not be used with synchronous requests and must\n> not be used from native code.",
+ "response": "\n\nThe [XMLHttpRequest]\n**`response`** property returns the response's body content as\nan `ArrayBuffer`, a [Blob], a [Document],\na JavaScript `Object`, or a string, depending on the value\nof the request's [XMLHttpRequest.responseType]\nproperty.",
+ "responsetext": "\n\nThe read-only [XMLHttpRequest] property\n**`responseText`** returns the text received from a server\nfollowing a request being sent.",
+ "responsetype": "\n\nThe [XMLHttpRequest] property\n**`responseType`** is an enumerated string value specifying\nthe type of data contained in the response.\n\nIt also lets the author change the\nresponse type. If an empty string is set as the value of `responseType`, the\ndefault value of `text` is used.",
+ "responseurl": "\n\nThe read-only **`XMLHttpRequest.responseURL`** property returns the serialized URL of the response or the empty string if the URL is `null`. If the URL is returned, any URL fragment present in the URL will be stripped away. The value of `responseURL` will be the final URL obtained after any redirects.",
+ "responsexml": "\n\nThe **`XMLHttpRequest.responseXML`** read-only property returns\na [Document] containing the HTML or XML retrieved by the request; or\n`null` if the request was unsuccessful, has not yet been sent, or if the data\ncan't be parsed as XML or HTML.\n\n> **Note:** The name `responseXML` is an artifact of this\n> property's history; it works for both HTML and XML.\n\nUsually, the response is parsed as \"`text/xml`\". If the\n[XMLHttpRequest.responseType] is set to\n\"`document`\" and the request was made asynchronously, instead the response is\nparsed as \"`text/html`\". `responseXML` is `null` for\nany other types of data, as well as for [`data:` URLs](/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URLs).\n\nIf the server doesn't specify the as\n\"`text/xml`\" or \"`application/xml`\", you can use\n[XMLHttpRequest.overrideMimeType] to parse it as XML anyway.\n\nThis property isn't available to workers.",
+ "send": "\n\nThe [XMLHttpRequest] method\n**`send()`** sends the request to the server.\n\nIf the\nrequest is asynchronous (which is the default), this method returns as soon as the\nrequest is sent and the result is delivered using events. If the request is synchronous,\nthis method doesn't return until the response has arrived.\n\n`send()` accepts an optional parameter which lets you specify the request's\nbody; this is primarily used for requests such as `PUT`. If the request\nmethod is `GET` or `HEAD`, the `body`\nparameter is ignored and the request body is set to `null`.\n\nIf no `Accept` header has been set using the\n[XMLHttpRequest.setRequestHeader], an\n`Accept` header with the type `\"*/*\"` (any type) is sent.",
+ "setrequestheader": "\n\nThe [XMLHttpRequest] method **`setRequestHeader()`** sets the value of an HTTP request header.\nWhen using `setRequestHeader()`, you must call it after calling [XMLHttpRequest.open], but before calling [XMLHttpRequest.send].\nIf this method is called several times with the same header, the values are merged into one single request header.\n\nEach time you call `setRequestHeader()` after the first time you call it, the specified text is appended to the end of the existing header's content.\n\nIf no `Accept` header has been set using this, an `Accept` header with the type `\"*/*\"` is sent with the request when [XMLHttpRequest.send] is called.\n\nFor security reasons, there are several whose values are controlled by the user agent. Any attempt to set a value for one of those headers from frontend JavaScript code will be ignored without warning or error.\n\nIn addition, the [`Authorization`](/en-US/docs/Web/HTTP/Headers/Authorization) HTTP header may be added to a request, but will be removed if the request is redirected cross-origin.\n\n> **Note:** For your custom fields, you may encounter a \"**not allowed by Access-Control-Allow-Headers in preflight response**\" exception when you send requests across domains.\n> In this situation, you need to set up the in your response header at server side.",
+ "status": "\n\nThe read-only **`XMLHttpRequest.status`** property returns the numerical HTTP [status code](/en-US/docs/Web/HTTP/Status) of the `XMLHttpRequest`'s response.\n\nBefore the request completes, the value of `status` is 0. Browsers also report a status of 0 in case of `XMLHttpRequest` errors.",
+ "statustext": "\n\nThe read-only **`XMLHttpRequest.statusText`** property returns a string containing the response's status message as returned by the HTTP server. Unlike [`XMLHTTPRequest.status`](/en-US/docs/Web/API/XMLHttpRequest/status) which indicates a numerical status code, this property contains the _text_ of the response status, such as \"OK\" or \"Not Found\". If the request's [`readyState`](/en-US/docs/Web/API/XMLHttpRequest/readyState) is in `UNSENT` or `OPENED` state, the value of `statusText` will be an empty string.\n\nIf the server response doesn't explicitly specify a status text, `statusText` will assume the default value \"OK\".\n\n> **Note:** Responses over an HTTP/2 connection will always have an empty string as status message as HTTP/2 does not support them.",
+ "timeout": "\n\nThe **`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 or it will throw an `InvalidAccessError` exception. When a timeout happens, a [timeout](/en-US/docs/Web/API/XMLHttpRequest/timeout_event) event is fired.\n\n> **Note:** You may not use a timeout for synchronous requests with an owning window.\n\n[Using a timeout with an asynchronous request](/en-US/docs/Web/API/XMLHttpRequest_API/Synchronous_and_Asynchronous_Requests#example_using_a_timeout).",
+ "timeout_event": "\n\nThe **`timeout`** event is fired when progression is terminated due to preset time expiring.",
+ "upload": "\n\nThe [XMLHttpRequest] `upload` property returns an [XMLHttpRequestUpload] object that can be observed to monitor an upload's progress.\n\nIt is an opaque object, but because it's also an [XMLHttpRequestEventTarget], event listeners can be attached to track its process.\n\n> **Note:** Attaching 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](/en-US/docs/Web/HTTP/CORS). Because of this, event listeners need to be registered before calling [XMLHttpRequest.send] or upload events won't be dispatched.\n\n> **Note:** The spec also seems to indicate that event listeners should be attached after [XMLHttpRequest.open]. However, browsers are buggy on this matter, and often need the listeners to be registered _before_ [XMLHttpRequest.open] to work.\n\nThe following events can be triggered on an upload object and used to monitor the upload:\n\n<table class=\"no-markdown\">\n <thead>\n <tr>\n <th>Event</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>[XMLHttpRequestUpload/loadstart_event]</td>\n <td>The upload has begun.</td>\n </tr>\n <tr>\n <td>[XMLHttpRequestUpload/progress_event]</td>\n <td>\n Periodically delivered to indicate the amount of progress made so far.\n </td>\n </tr>\n <tr>\n <td>[XMLHttpRequestUpload/abort_event]</td>\n <td>The upload operation was aborted.</td>\n </tr>\n <tr>\n <td>[XMLHttpRequestUpload/error_event]</td>\n <td>The upload failed due to an error.</td>\n </tr>\n <tr>\n <td>[XMLHttpRequestUpload/load_event]</td>\n <td>The upload completed successfully.</td>\n </tr>\n <tr>\n <td>[XMLHttpRequestUpload/timeout_event]</td>\n <td>\n The upload timed out because a reply did not arrive within the time\n interval specified by the\n [XMLHttpRequest.timeout].\n </td>\n </tr>\n <tr>\n <td>[XMLHttpRequestUpload/loadend_event]</td>\n <td>\n The upload finished. This event does not differentiate between success\n or failure, and is sent at the end of the upload regardless of the\n outcome. Prior to this event, one of <code>load</code>,\n <code>error</code>, <code>abort</code>, or <code>timeout</code> will\n already have been delivered to indicate why the upload ended.\n </td>\n </tr>\n </tbody>\n</table>",
+ "withcredentials": "\n\nThe **`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, authorization headers or TLS client certificates. Setting `withCredentials` has no effect on same-origin requests.\n\nIn 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](/en-US/docs/Web/API/Document/cookie) or from response headers.\n\n> **Note:** This never affects same-origin requests.\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."
+ }
+ },
+ "xmlhttprequesteventtarget": {
+ "docs": "\n\n`XMLHttpRequestEventTarget` is the interface that describes the event handlers shared on [XMLHttpRequest] and [XMLHttpRequestUpload].\n\nYou don't use `XMLHttpRequestEventTarget` directly; instead you interact with the sub classes."
+ },
+ "xmlhttprequestupload": {
+ "docs": "\n\nThe **`XMLHttpRequestUpload`** interface represents the upload process for a specific [XMLHttpRequest]. It is an _opaque_ object that represents the underlying, browser-dependent, upload process. It is an [XMLHttpRequestEventTarget] and can be obtained by calling [XMLHttpRequest.upload].\n\n`notservice`\n\n",
+ "properties": {
+ "abort_event": "\n\nThe `abort` event is fired at [XMLHttpRequestUpload] when a request has been aborted, for example because the program called [XMLHttpRequest.abort].",
+ "error_event": "\n\nThe `error` event is fired when the request encountered an error.",
+ "load_event": "\n\nThe `load` event is fired when an [XMLHttpRequestUpload] transaction completes successfully.",
+ "loadend_event": "\n\nThe **`loadend`** event is fired when a request has completed, whether successfully (after [XMLHttpRequestUpload/load_event]) or unsuccessfully (after [XMLHttpRequestUpload/abort_event] or [XMLHttpRequestUpload/error_event]).\n\nThe `loadend` event is also sent when the request has been interrupted (by a [XMLHttpRequestUpload/timeout_event], an [XMLHttpRequestUpload/abort_event], or an [XMLHttpRequestUpload/error_event]). In such cases, both the `loaded` and `total` value of the event will be 0.",
+ "loadstart_event": "\n\nThe **`loadstart`** event is fired when a request has started to load data.",
+ "progress_event": "\n\nThe **`progress`** event is fired periodically when a request receives more data.",
+ "timeout_event": "\n\nThe **`timeout`** event is fired when progression is terminated due to preset time expiring."
+ }
+ },
+ "xmlserializer": {
+ "docs": "\n\nThe `XMLSerializer` interface provides the [XMLSerializer.serializeToString] method to construct an XML string representing a tree.",
+ "properties": {
+ "serializetostring": "\n\nThe [XMLSerializer] method\n**`serializeToString()`** constructs a string representing the\nspecified tree in form."
+ }
+ },
+ "xpathevaluator": {
+ "docs": "\n\nThe `XPathEvaluator` interface allows to compile and evaluate expressions.",
+ "properties": {
+ "createexpression": "\n\nThis method compiles an [XPathExpression] which can then be used for\n(repeated) evaluations of the expression.",
+ "creatensresolver": "\n\nThis method adapts any DOM node to resolve namespaces so that an XPath expression can\nbe easily evaluated relative to the context of the node where it appeared within the\ndocument.\n\nThis adapter works like the DOM Level 3 method [Node.lookupNamespaceURI] in resolving the namespace URI from a given prefix using\nthe current information available in the node's hierarchy at the time the method is\ncalled, also correctly resolving the implicit `xml` prefix.",
+ "evaluate": "\n\nThe `evaluate()` method of the [XPathEvaluator] interface\nexecutes an XPath expression on the given node or document and returns an\n[XPathResult]."
+ }
+ },
+ "xpathexception": {
+ "docs": "\n\nIn the [DOM XPath API](/en-US/docs/Web/XPath) the **`XPathException`** interface represents exception conditions that can be encountered while performing XPath operations.",
+ "properties": {
+ "code": "\n\nThe **`code`** read-only property of the\n[XPathException] interface returns a `short` that contains one\nof the [error code constants](/en-US/docs/Web/API/XPathException#constants)."
+ }
+ },
+ "xpathexpression": {
+ "docs": "\n\nThis interface is a compiled XPath expression that can be evaluated on a document or specific node to return information from its tree.\n\nThis is useful when an expression will be reused in an application, because it is just compiled once and all namespace prefixes which occur within the expression are preresolved.\n\nObjects of this type are created by calling [XPathEvaluator.createExpression].",
+ "properties": {
+ "evaluate": "\n\nThe **`evaluate()`** method of the\n[XPathExpression] interface executes an [XPath](/en-US/docs/Web/XPath) expression on the given node or document and\nreturns an [XPathResult]."
+ }
+ },
+ "xpathnsresolver": {
+ "docs": "\n\nThe `XPathNSResolver` interface permits prefix strings in an expression to be properly bound to namespace URI strings.\n\nThe [XPathEvaluator] interface can construct an implementation of `XPathNSResolver` from a node, or the interface may be implemented by any application.",
+ "properties": {
+ "lookupnamespaceuri": "\n\nThe `lookupNamespaceURI` method looks up the namespace URI associated to the\ngiven namespace prefix within an expression evaluated by the\n[XPathEvaluator] interface."
+ }
+ },
+ "xpathresult": {
+ "docs": "\n\nThe **`XPathResult`** interface represents the results generated by evaluating an XPath expression within the context of a given node.\n\nSince XPath expressions can result in a variety of result types, this interface makes it possible to determine and handle the type and value of the result.",
+ "properties": {
+ "booleanvalue": "\n\nThe read-only **`booleanValue`** property of the\n[XPathResult] interface returns the boolean value of a result with\n[XPathResult.resultType] being `BOOLEAN_TYPE`.\n\n",
+ "invaliditeratorstate": "\n\nThe read-only **`invalidIteratorState`** property of the\n[XPathResult] interface signifies that the iterator has become invalid. It\nis `true` if [XPathResult.resultType] is\n`UNORDERED_NODE_ITERATOR_TYPE` or `ORDERED_NODE_ITERATOR_TYPE` and\nthe document has been modified since this result was returned.\n\n",
+ "iteratenext": "\n\nThe **`iterateNext()`** method of the\n[XPathResult] interface iterates over a node set result and returns the\nnext node from it or `null` if there are no more nodes.",
+ "numbervalue": "\n\nThe read-only **`numberValue`** property of the\n[XPathResult] interface returns the numeric value of a result with\n[XPathResult.resultType] being `NUMBER_TYPE`.\n\n",
+ "resulttype": "\n\nThe read-only **`resultType`** property of the\n[XPathResult] interface represents the type of the result, as defined by\nthe type constants.\n\n",
+ "singlenodevalue": "\n\nThe read-only **`singleNodeValue`** property of the\n[XPathResult] interface returns a [Node] value or\n`null` in case no node was matched of a result with\n[XPathResult.resultType] being `ANY_UNORDERED_NODE_TYPE` or\n`FIRST_ORDERED_NODE_TYPE`.",
+ "snapshotitem": "\n\nThe **`snapshotItem()`** method of the\n[XPathResult] interface returns an item of the snapshot collection or\n`null` in case the index is not within the range of nodes. Unlike the\niterator result, the snapshot does not become invalid, but may not correspond to the\ncurrent document if it is mutated.",
+ "snapshotlength": "\n\nThe read-only **`snapshotLength`** property of the\n[XPathResult] interface represents the number of nodes in the result\nsnapshot.\n\n",
+ "stringvalue": "\n\nThe read-only **`stringValue`** property of the\n[XPathResult] interface returns the string value of a result with\n[XPathResult.resultType] being `STRING_TYPE`.\n\n"
+ }
+ },
+ "xranchor": {
+ "docs": "\n\nThe **`XRAnchor`** interface creates anchors which keep track of the pose that is fixed relative to the real world. With anchors, you can specify poses in the world that need to be updated to correctly reflect the evolving understanding of the world, such that the poses remain aligned with the same place in the physical world. That helps to build an illusion that the placed objects are really present in the user's environment.",
+ "properties": {
+ "anchorspace": "\n\nThe read-only **`anchorSpace`** property of the [XRAnchor] interface returns an [XRSpace] object to locate the anchor relative to other `XRSpace` objects. It can be passed to [XRFrame.getPose] subsequently.",
+ "delete": "\n\nThe **`delete()`** method of the [XRAnchor] interface removes an anchor. This can be useful when an application is no longer interested in receiving updates to an anchor."
+ }
+ },
+ "xranchorset": {
+ "docs": "\n\nThe **`XRAnchorSet`** interface exposes a collection of anchors. Its instances are returned by [XRFrame.trackedAnchors] and are [`Set`-like objects](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set#set-like_browser_apis)."
+ },
+ "xrboundedreferencespace": {
+ "docs": "\n\nThe [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API)'s **`XRBoundedReferenceSpace`** interface describes a virtual world [reference space](/en-US/docs/Web/API/WebXR_Device_API/Geometry) which has preset boundaries. This extends [XRReferenceSpace], which describes an essentially unrestricted space around the viewer's position. These bounds are defined using an array of points, each of which defines a vertex in a polygon inside which the user is allowed to move.\n\nThis is typically used when the XR system is capable of tracking the user's physical movement within a limited distance of their starting position. The specified bounds may, in fact, describe the shape and size of the room the user is located in, in order to let the WebXR site or application prevent the user from colliding with the walls or other obstacles in the real world. At a minimum, the boundaries indicate the area in which the XR device is capable of tracking the user's movement. See the article [Using bounded reference spaces](/en-US/docs/Web/API/WebXR_Device_API/Bounded_reference_spaces) for details on how bounded spaces work and why they're useful.\n\n",
+ "properties": {
+ "boundsgeometry": "\n\nThe read-only [XRBoundedReferenceSpace]\nproperty **`boundsGeometry`** is an array of\n[DOMPointReadOnly] objects which specifies the points making up a polygon\ninside which the viewer is allowed to move. Each point is treated as a\ntwo-dimensional point, and must be located at ground level (that is,\nits `y` coordinate must be 0).\n\nThis boundary is typically configured by the user, using the software that controls\ntheir XR hardware. This may be done by walking the border of the space they wish to use,\nor by drawing the shape of their room using their XR input device. Theoretically, a more\nadvanced system might use sensors or other detection methods to determine the bounds of\na dedicated XR room (notice how we carefully don't call it a holodeck?)."
+ }
+ },
+ "xrcompositionlayer": {
+ "docs": "\n\nThe **`XRCompositionLayer`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is a base class that defines a set of common properties and behaviors for WebXR layer types. It is not constructable on its own.\n\nSeveral layer types inherit from `XRCompositionLayer`:\n\n- [XREquirectLayer]\n- [XRCubeLayer]\n- [XRCylinderLayer]\n- [XRProjectionLayer]\n- [XRQuadLayer]\n\n`XRCompositionLayer` itself inherits from the general [XRLayer] class (which inherits from [EventTarget]).\n\n",
+ "properties": {
+ "blendtexturesourcealpha": "\n\nThe **`blendTextureSourceAlpha`** property of the [XRCompositionLayer] interface is a boolean enabling the layer's texture .",
+ "destroy": "\n\nThe **`destroy()`** method of the [XRCompositionLayer] interface deletes the references to the underlying graphics library for the layer. It also sets the color textures and depth stencil texture arrays to an empty array.",
+ "layout": "\n\nThe read-only **`layout`** property of the [XRCompositionLayer] interface is the layout type of the layer.\n\nTo specify the layout type of a layer, use one of the layer creation methods and their `layout` option:\n\n- [XRWebGLBinding.createQuadLayer]\n- [XRWebGLBinding.createCylinderLayer]\n- [XRWebGLBinding.createEquirectLayer]\n- [XRWebGLBinding.createCubeLayer]",
+ "miplevels": "\n\nThe read-only **`mipLevels`** property of the [XRCompositionLayer] interface is a layer's number of mip levels in the color and texture data. See also [Mipmap](https://en.wikipedia.org/wiki/Mipmap) on Wikipedia.\n\nThe desired number of mip levels can be specified when creating layers. However, if the user agent can't create the requested number, it can create less. Use `mipLevels` to determine the actual number of mip levels for a layer.\n\nThe `viewPixelWidth` and `viewPixelHeight` need to be powers of two as they get successively halved at each mip level.",
+ "needsredraw": "\n\nThe read-only **`needsRedraw`** property of the [XRCompositionLayer] interface is a boolean signaling that the layer should be re-rendered in the next frame.\n\nThe need for redrawing can occur when the underlying resources of a layer are lost due to textures that might have been freed by the compositor under the hood. This might happen when the device falls asleep or when the browser switches context (to an operating system dialog or similar) and then comes back.\n\nRedrawing is not a problem for layers which are updated with every frame. However, for layers updated infrequently, or for static layers (where you can only draw once after creation or after a `redraw` event), the layer's content might be lost and need to be redrawn. If the layer's resources are lost, the `needsRedraw` property will be `true` and a `redraw` event is fired on the layer."
+ }
+ },
+ "xrcpudepthinformation": {
+ "docs": " \n\nThe **`XRCPUDepthInformation`** interface contains depth information from the CPU (returned by [XRFrame.getDepthInformation]).\n\nThis interface inherits properties from its parent, [XRDepthInformation].",
+ "properties": {
+ "data": "\n\nThe _read-only_ **`data`** property of the [XRCPUDepthInformation] interface is an `ArrayBuffer` containing depth-buffer information in raw format.\n\nThe data is stored in row-major format, without padding, with each entry corresponding to distance from the view's near plane to the users' environment, in unspecified units. The size of each data entry and the type is determined by [XRSession.depthDataFormat]. The values can be converted from unspecified units to meters by multiplying them by [XRDepthInformation.rawValueToMeters]. The [XRDepthInformation.normDepthBufferFromNormView] property can be used to transform from normalized view coordinates (an origin in the top left corner of the view, with X axis growing to the right, and Y axis growing downward) into the depth buffer's coordinate system.",
+ "getdepthinmeters": "\n\nThe **`getDepthInMeters()`** method of the [XRCPUDepthInformation] interface returns the depth in meters at (x, y) in normalized view coordinates (origin in the top left corner)."
+ }
+ },
+ "xrcubelayer": {
+ "docs": "\n\nThe **`XRCubeLayer`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is a layer that renders directly from a [cubemap](https://en.wikipedia.org/wiki/Cube_mapping) and projects it onto the inside faces of a cube.\n\n`XRCubeLayer` requires the `layers` feature to be enabled for the [XRSession]. You can request it in [XRSystem.requestSession].\n\nTo create a new `XRCubeLayer`, call [XRWebGLBinding.createCubeLayer].\n\nTo present layers to the XR device, add them to the `layers` render state using [XRSession.updateRenderState].\n\n",
+ "properties": {
+ "orientation": "\n\nThe **`orientation`** property of the [XRCubeLayer] interface represents the orientation relative to the `space` property.",
+ "redraw_event": "\n\nThe `redraw` event is sent to the `XRCubeLayer` object when the underlying resources of the layer are lost or when the XR Compositor can no longer reproject the layer. If this event is sent, authors should redraw the content of the layer in the next XR animation frame.\n\nSee also the [XRCompositionLayer.needsRedraw] property which is also available to `XRCubeLayer` objects through inheritance from [XRCompositionLayer].",
+ "space": "\n\nThe **`space`** property of the [XRCubeLayer] interface represents the layer's spatial relationship with the user's physical environment."
+ }
+ },
+ "xrcylinderlayer": {
+ "docs": "\n\nThe **`XRCylinderLayer`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is a layer that takes up a curved rectangular space in the virtual environment. Only the front of the layer is visible.\n\n`XRCylinderLayer` requires the `layers` feature to be enabled for the [XRSession]. You can request it in [XRSystem.requestSession].\n\nTo create a new `XRCylinderLayer`, call either:\n\n- [XRWebGLBinding.createCylinderLayer] for a WebGL opaque texture layer, or\n- [XRMediaBinding.createCylinderLayer] for an HTML `video` playback layer.\n\nTo present layers to the XR device, add them to the `layers` render state using [XRSession.updateRenderState].\n\n",
+ "properties": {
+ "aspectratio": "\n\nThe **`aspectRatio`** property of the [XRCylinderLayer] interface represents the ratio of the visible cylinder section. It is the ratio of the width of the visible section of the cylinder divided by its height. The width is calculated by multiplying the [XRCylinderLayer.radius] with the [XRCylinderLayer.centralAngle].",
+ "centralangle": "\n\nThe **`centralAngle`** property of the [XRCylinderLayer] interface represents the angle in radians of the visible section of the cylinder.",
+ "radius": "\n\nThe **`radius`** property of the [XRCylinderLayer] interface represents the radius of the cylinder.",
+ "redraw_event": "\n\nThe `redraw` event is sent to the `XRCylinderLayer` object when the underlying resources of the layer are lost or when the XR Compositor can no longer reproject the layer. If this event is sent, authors should redraw the content of the layer in the next XR animation frame.\n\nSee also the [XRCompositionLayer.needsRedraw] property which is also available to `XRCylinderLayer` objects through inheritance from [XRCompositionLayer].",
+ "space": "\n\nThe **`space`** property of the [XRCylinderLayer] interface represents the layer's spatial relationship with the user's physical environment.",
+ "transform": "\n\nThe **`transform`** property of the [XRCylinderLayer] interface represents the offset and orientation relative to the layer's [XRCylinderLayer.space]."
+ }
+ },
+ "xrdepthinformation": {
+ "docs": " \n\nThe **`XRDepthInformation`** interface contains information about the distance from the user's device to the real-world geometry in the user's environment.\n\nThis interface is the parent of:\n\n- [XRCPUDepthInformation]\n - : Depth information from the CPU (returned by [XRFrame.getDepthInformation]).\n- [XRWebGLDepthInformation]\n - : Depth information from WebGL (returned by [XRWebGLBinding.getDepthInformation]).\n\nYou will usually interact with these child interfaces. However, `XRDepthInformation` provides some useful properties that are inherited:",
+ "properties": {
+ "height": "\n\nThe _read-only_ **`height`** property of the [XRDepthInformation] interface contains the height of the depth buffer (number of rows).",
+ "normdepthbufferfromnormview": "\n\nThe _read-only_ **`normDepthBufferFromNormView`** property of the [XRDepthInformation] interface contains the 3D geometric transform that needs to be applied when indexing into the depth buffer.",
+ "rawvaluetometers": "\n\nThe _read-only_ **`rawValueToMeters`** property of the [XRDepthInformation] interface contains the scale factor by which the raw depth values must be multiplied in order to get the depths in meters.\n\nFor CPU depth information, see also the [XRCPUDepthInformation.getDepthInMeters] method.",
+ "width": "\n\nThe _read-only_ **`width`** property of the [XRDepthInformation] interface contains the width of the depth buffer (number of columns)."
+ }
+ },
+ "xrequirectlayer": {
+ "docs": "\n\nThe **`XREquirectLayer`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is a layer that maps [equirectangular](https://en.wikipedia.org/wiki/Equirectangular_projection) coded data onto the inside of a sphere.\n\n`XREquirectLayer` requires the `layers` feature to be enabled for the [XRSession]. You can request it in [XRSystem.requestSession].\n\nTo create a new `XREquirectLayer`, call either:\n\n- [XRWebGLBinding.createEquirectLayer] for a WebGL opaque texture layer, or\n- [XRMediaBinding.createEquirectLayer] for an HTML `video` playback layer.\n\nTo present layers to the XR device, add them to the `layers` render state using [XRSession.updateRenderState].\n\n",
+ "properties": {
+ "centralhorizontalangle": "\n\nThe **`centralHorizontalAngle`** property of the [XREquirectLayer] interface represents the central horizontal angle in radians for the sphere.",
+ "lowerverticalangle": "\n\nThe **`lowerVerticalAngle`** property of the [XREquirectLayer] interface represents the lower vertical angle in radians for the sphere.",
+ "radius": "\n\nThe **`radius`** property of the [XREquirectLayer] interface represents the radius of the sphere.",
+ "redraw_event": "\n\nThe `redraw` event is sent to the `XREquirectLayer` object when the underlying resources of the layer are lost or when the XR Compositor can no longer reproject the layer. If this event is sent, authors should redraw the content of the layer in the next XR animation frame.\n\nSee also the [XRCompositionLayer.needsRedraw] property which is also available to `XREquirectLayer` objects through inheritance from [XRCompositionLayer].",
+ "space": "\n\nThe **`space`** property of the [XREquirectLayer] interface represents the layer's spatial relationship with the user's physical environment.",
+ "transform": "\n\nThe **`transform`** property of the [XREquirectLayer] interface represents the offset and orientation relative to the layer's [XREquirectLayer.space].",
+ "upperverticalangle": "\n\nThe **`upperVerticalAngle`** property of the [XREquirectLayer] interface represents the upper vertical angle in radians for the sphere."
+ }
+ },
+ "xrframe": {
+ "docs": "\n\nA [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) **`XRFrame`** object is passed into the [XRSession.requestAnimationFrame] callback function and provides access to the information needed in order to render a single frame of animation for an [XRSession] describing a VR or AR scene. Events which communicate the tracking state of objects also provide an `XRFrame` reference as part of their structure.\n\nIn addition to providing a reference to the [XRSession] for which this frame is to be rendered, the [XRFrame.getViewerPose] method is provided to obtain the [XRViewerPose] describing the viewer's position and orientation in space, and [XRFrame.getPose] can be used to create an [XRPose] describing the relative position of one [XRSpace] relative to another.",
+ "properties": {
+ "createanchor": "\n\nThe **`createAnchor()`** method of the [XRFrame] interface creates a free-floating [XRAnchor] which will be fixed relative to the real world.\n\nSee [XRHitTestResult.createAnchor] for creating an anchor from a hit test result that is attached to a real-world object.",
+ "filljointradii": "\n\nThe **`fillJointRadii()`** method of the [XRFrame] interface populates a `Float32Array` with radii for a list of hand joint spaces and returns `true` if successful for all spaces.",
+ "fillposes": "\n\nThe **`fillPoses()`** method of the [XRFrame] interface populates a `Float32Array` with the matrices of the poses relative to a given base space and returns `true` if successful for all spaces.",
+ "getdepthinformation": "\n\nThe **`getDepthInformation()`** method of the [XRFrame] interface returns an [XRCPUDepthInformation] object containing CPU depth information for the active and animated frame.",
+ "gethittestresults": "\n\nThe **`getHitTestResults()`** method of the [XRFrame] interface returns an array of [XRHitTestResult] objects containing hit test results for a given [XRHitTestSource].",
+ "gethittestresultsfortransientinput": "\n\nThe **`getHitTestResultsForTransientInput()`** method of the [XRFrame] interface returns an array of [XRTransientInputHitTestResult] objects containing transient input hit test results for a given [XRTransientInputHitTestSource].",
+ "getjointpose": "\n\nThe **`getJointPose()`** method of the [XRFrame] interface returns an [XRJointPose] object providing the pose of a hand joint (see [XRHand]) relative to a given base space.",
+ "getlightestimate": "\n\nThe **`getLightEstimate()`** method of the [XRFrame] interface returns an [XRLightEstimate] object containing estimated lighting values for a given [XRLightProbe].",
+ "getpose": "\n\nThe [XRFrame] method **`getPose()`** returns the relative position and\norientation—the pose—of one [XRSpace] to that of another space. With this, you can observe the motion of objects relative to each other and to fixed locations throughout the scene.\n\nFor example, to get the position of a controller relative to the viewer's head, you would compare the controller's [XRInputSource.gripSpace] to the [XRReferenceSpace] of type `viewer`.",
+ "getviewerpose": "\n\nThe **`getViewerPose()`** method, a member of the [XRFrame] interface, returns a [XRViewerPose] object which describes the viewer's pose (position and orientation) relative to the specified reference space.\n\nSee the [XRFrame.getPose] method for a way to calculate a pose that represents the difference between two spaces.",
+ "session": "\n\nAn `XRFrame` object's _read-only_ **`session`** property returns the [XRSession] object that generated the frame.",
+ "trackedanchors": "\n\nThe read-only **`trackedAnchor`** property of the [XRFrame] interface returns an [XRAnchorSet] object containing all anchors still tracked in the frame."
+ }
+ },
+ "xrhand": {
+ "docs": "\n\nThe **`XRHand`** interface is pair iterator (an ordered map) with the key being the hand joints and the value being an [XRJointSpace].\n\n`XRHand` is returned by [XRInputSource.hand]."
+ },
+ "xrhittestresult": {
+ "docs": "\n\nThe **`XRHitTestResult`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) contains a single result of a hit test. You can get an array of `XRHitTestResult` objects for a frame by calling [XRFrame.getHitTestResults].",
+ "properties": {
+ "createanchor": "\n\nThe **`createAnchor()`** method of the [XRHitTestResult] interface creates an [XRAnchor] from a hit test result that is attached to a real-world object.",
+ "getpose": "\n\nThe **`getPose()`** method of the [XRHitTestResult] interface returns the [XRPose] of the hit test result relative to the given base space."
+ }
+ },
+ "xrhittestsource": {
+ "docs": "\n\nThe **`XRHitTestSource`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) handles hit test subscriptions. You can get an `XRHitTestSource` object by using the [XRSession.requestHitTestSource] method.\n\nThis object doesn't itself contain hit test results, but it is used to compute hit tests for each [XRFrame] by calling [XRFrame.getHitTestResults], which returns [XRHitTestResult] objects.",
+ "properties": {
+ "cancel": "\n\nThe **`cancel()`** method of the [XRHitTestSource] interface unsubscribes a hit test."
+ }
+ },
+ "xrinputsource": {
+ "docs": "\n\nThe [WebXR Device API's](/en-US/docs/Web/API/WebXR_Device_API) **`XRInputSource`** interface describes a single source of control input which is part of the user's WebXR-compatible virtual or augmented reality system. The device is specific to the platform being used, but provides the direction in which it is being aimed and optionally may generate events if the user triggers performs actions using the device.",
+ "properties": {
+ "gamepad": "\n\nThe read-only [XRInputSource] property **`gamepad`** returns a [Gamepad] object describing the state of the buttons and axes on the XR input source, if it is a gamepad or comparable device. If the device isn't a gamepad-like device, this property's value is `null`.\n\nThe [Gamepad] instance returned behaves as described by the [Gamepad API](/en-US/docs/Web/API/Gamepad_API). However, there are a few things to note:\n\n- `Gamepad` instances belonging to `XRInputSource` are not included in the array returned by [navigator.getGamepads]. Gamepads are strictly associated with the WebXR hardware and are not general-purpose gaming devices.\n- [Gamepad.id] is an empty string (`\"\"`)\n- [Gamepad.index] is `-1`\n- [Gamepad.connected] is `true` until the `XRInputSource` is removed from the list of active XR input sources or the [XRSession] is ended.\n- If an axis reported by [Gamepad.axes] represents an axis of a touchpad, the value is 0 when the associated [GamepadButton.touched] property is `false`.\n- [Gamepad.mapping] returns \"xr-standard\".",
+ "gripspace": "\n\nThe read-only [XRInputSource] property **`gripSpace`** returns an [XRSpace] whose native origin tracks the pose used to render virtual objects so they appear to be held in (or part of) the user's hand. For example, if a user were holding a virtual straight rod, the native origin of this `XRSpace` would be located at the approximate center of mass of the user's fist.",
+ "hand": "\n\nThe read-only **`hand`** property of the [XRInputSource] interface is a [XRHand] object providing access to a hand-tracking device.",
+ "handedness": "\n\nThe read-only [XRInputSource] property\n**`handedness`** indicates which of the user's hands the WebXR\ninput source is associated with, or if it's not associated with a hand at all.",
+ "profiles": "\n\nThe read-only [XRInputSource] property **`profiles`** returns an array of strings, each describing a configuration profile for the input source. The profile strings are listed in order of specificity, with the most specific profile listed first.\n\n> **Note:** The `profiles` list is always empty when the WebXR\n> session is in inline mode.",
+ "targetraymode": "\n\nThe read-only [XRInputSource]\nproperty **`targetRayMode`** indicates the method by which the\ntarget ray for the input source should be generated and how it should be presented to\nthe user.\n\nTypically a target ray is drawn from the source of the targeting system along the target ray in the direction in which the user is looking or pointing. The style of the ray is generally up to you, as is the method for indicating the endpoint of the ray. The targeted point or object might be indicated by drawing a shape or highlighting the targeted surface or object.\n\nA target ray emitted by a hand controller:\n\n\n\nThe target ray can be anything from a simple line (ideally fading over distance) to an animated effect, such as the science-fiction \"phaser\" style shown in the screenshot above.",
+ "targetrayspace": "\n\nThe read-only [XRInputSource] property\n**`targetRaySpace`** returns an [XRSpace]\n(typically an [XRReferenceSpace]) representing the position and\norientation of the target ray in the virtual space. Its native origin tracks\nthe position of the origin point of the target ray, and its orientation indicates the\norientation of the controller device itself. These values, interpreted in the context of\nthe input source's [XRInputSource.targetRayMode], can be\nused both to fully interpret the device as an input source.\n\nTo obtain an `XRSpace` representing the input controller's position and\norientation in virtual space, use the [XRInputSource.gripSpace] property."
+ }
+ },
+ "xrinputsourcearray": {
+ "docs": "\n\nThe interface **`XRInputSourceArray`** represents a _live_ list of WebXR input sources, and is used as the return value of the [XRSession] property [XRSession.inputSources]. Each entry is an [XRInputSource] representing one input device connected to the WebXR system.\n\nIn addition to being able to access the input sources in the list using standard array notation (that is, with index numbers inside square brackets), methods are available to allow the use of iterators and the [XRInputSourceArray.forEach] method is also available.",
+ "properties": {
+ "entries": "\n\nThe [XRInputSourceArray] interface's\n**`entries()`** method returns a JavaScript\n[`iterator`](/en-US/docs/Web/JavaScript/Reference/Iteration_protocols)\nwhich can then be used to iterate over the key/value pairs in the input source\narray. Each item in the array is an [XRInputSource] object.\n\nMost frequently, you will use this in tandem with statements such as\n[`for...of`](/en-US/docs/Web/JavaScript/Reference/Statements/for...of).",
+ "foreach": "\n\nThe [XRInputSourceArray]\nmethod **`forEach()`** executes the specified callback once for\neach input source in the array, starting at index 0 and progressing until the end of the\nlist.",
+ "keys": "\n\nThe **`keys()`** method in the\n[XRInputSourceArray] interface returns a \n[`iterator`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator)\nwhich can then be used to iterate over the keys used to reference each item in the array\nof input sources.",
+ "length": "\n\nThe read-only **`length`** property returns an integer value\nindicating the number of items in the input source list represented by\nthe [XRInputSourceArray] object.",
+ "values": "\n\nThe [XRInputSourceArray]\nmethod **`values()`** returns a \n[`iterator`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Iterator)\nthat can walk over the list of [XRInputSource] objects contained in the\narray, from first to last."
+ }
+ },
+ "xrinputsourceevent": {
+ "docs": " \n\nThe [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API)'s **`XRInputSourceEvent`** interface describes an event which has occurred on a WebXR user input device such as a hand controller, gaze tracking system, or motion tracking system. More specifically, they represent a change in the state of an [XRInputSource].\n\nTo learn more about handling inputs in a WebXR project, see the article [Inputs and input sources](/en-US/docs/Web/API/WebXR_Device_API/Inputs).\n\n",
+ "properties": {
+ "frame": "\n\nThe read-only [XRInputSourceEvent] property\n**`frame`** specifies an [XRFrame] object\nrepresenting the event frame during which a [WebXR](/en-US/docs/Web/API/WebXR_Device_API) user input occurred.\nThis may thus be an event which occurred in the past rather than a current or impending\nevent.",
+ "inputsource": "\n\nThe [XRInputSourceEvent] interface's read-only\n**`inputSource`** property specifies the\n[XRInputSource] which generated the input event. This information\nlets you handle the event appropriately given the particulars of the user input device\nbeing manipulated."
+ }
+ },
+ "xrinputsourceschangeevent": {
+ "docs": " \n\nThe WebXR Device API interface **`XRInputSourcesChangeEvent`** is used to represent the [XRSession.inputsourceschange_event] event sent to an [XRSession] when the set of available WebXR input controllers changes.\n\n",
+ "properties": {
+ "added": "\n\nThe read-only [XRInputSourcesChangeEvent]\nproperty [XRInputSourcesChangeEvent.added] is a list of zero or\nmore input sources, each identified using an [XRInputSource] object,\nwhich have been newly made available for use.",
+ "removed": "\n\nThe read-only [XRInputSourcesChangeEvent] property [XRInputSourcesChangeEvent.removed] is an array of\nzero or more [XRInputSource] objects representing the input sources that have been removed from the [XRSession].",
+ "session": "\n\nThe [XRInputSourcesChangeEvent] property\n[XRInputSourcesChangeEvent.session] specifies the\n[XRSession] to which the input source list change event applies."
+ }
+ },
+ "xrjointpose": {
+ "docs": "\n\nThe **`XRJointPose`** interface is an [XRPose] with additional information about the size of the skeleton joint it represents.\n\n",
+ "properties": {
+ "radius": "\n\nThe read-only **`radius`** property of the [XRJointPose] interface indicates the radius (distance from skin) for a joint."
+ }
+ },
+ "xrjointspace": {
+ "docs": "\n\nThe **`XRJointSpace`** interface is an [XRSpace] and represents the position and orientation of an [XRHand] joint.\n\n",
+ "properties": {
+ "jointname": "\n\nThe read-only **`jointName`** property of the [XRJointSpace] interface contains the name of the joint it tracks."
+ }
+ },
+ "xrlayer": {
+ "docs": "\n\nThe **`XRLayer`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is the base class for WebXR layer types. It inherits methods from [EventTarget].\n\n"
+ },
+ "xrlayerevent": {
+ "docs": " \n\nThe **`XRLayerEvent`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is the event type for events related to a change of state of an [XRLayer] object. These events occur, for example, when the layer needs to be redrawn.\n\n",
+ "properties": {
+ "layer": "\n\nThe **`layer`** property of the [XRLayerEvent] interface is a reference to the [XRLayer] which generated the event."
+ }
+ },
+ "xrlightestimate": {
+ "docs": " \n\nThe **`XRLightEstimate`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) provides the estimated lighting values for an [XRLightProbe] at the time represented by an [XRFrame].\n\nTo get an `XRLightEstimate` object, call the [XRFrame.getLightEstimate] method.",
+ "properties": {
+ "primarylightdirection": "\n\nThe _read-only_ **`primaryLightDirection`** property of the [XRLightEstimate] interface returns a [DOMPointReadOnly] representing the direction to the primary light source from the `probeSpace` of an [XRLightProbe].",
+ "primarylightintensity": "\n\nThe _read-only_ **`primaryLightIntensity`** property of the [XRLightEstimate] interface returns a [DOMPointReadOnly] representing the intensity of the primary light source from the `probeSpace` of an [XRLightProbe].",
+ "sphericalharmonicscoefficients": "\n\nThe _read-only_ **`sphericalHarmonicsCoefficients`** property of the [XRLightEstimate] interface returns a `Float32Array` containing 9 spherical harmonics coefficients.\n\nSpherical harmonic lighting is a technique that uses spherical functions instead of standard lighting equations. See [Wikipedia](https://en.wikipedia.org/wiki/Spherical_harmonic_lighting) for more information."
+ }
+ },
+ "xrlightprobe": {
+ "docs": " \n\nThe **`XRLightProbe`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) contains lighting information at a given point in the user's environment. You can get an `XRLighting` object using the [XRSession.requestLightProbe] method.\n\nThis object doesn't itself contain lighting values, but it is used to collect lighting states for each [XRFrame]. See [XRLightEstimate] for the estimated lighting values for an `XRLightProbe`.\n\n",
+ "properties": {
+ "probespace": "\n\nThe _read-only_ **`probeSpace`** property of the [XRLightProbe] interface returns an [XRSpace] tracking the position and orientation that the lighting estimations are relative to.",
+ "reflectionchange_event": "\n\nThe WebXR **`reflectionchange`** event fires each time the estimated reflection cube map changes. This happens in response to use movements through different lighting conditions or to direct changes to lighting itself. This event is not cancelable."
+ }
+ },
+ "xrmediabinding": {
+ "docs": " \n\nThe **`XRMediaBinding`** interface is used to create layers that display the content of an [HTMLVideoElement].\n\n> **Note:**\n> Only the video frames will be displayed in the layer. Video controls need to be implemented separately and must be drawn in another layer.",
+ "properties": {
+ "createcylinderlayer": "\n\nThe **`createCylinderLayer()`** method of the [XRMediaBinding] interface returns an [XRCylinderLayer] object which is a layer that takes up a curved rectangular space in the virtual environment.",
+ "createequirectlayer": "\n\nThe **`createEquirectLayer()`** method of the [XRMediaBinding] interface returns an [XREquirectLayer] object which is a layer that maps an equirectangular coded data onto the inside of a sphere.",
+ "createquadlayer": "\n\nThe **`createQuadLayer()`** method of the [XRMediaBinding] interface returns an [XRQuadLayer] object which is a layer that takes up a flat rectangular space in the virtual environment."
+ }
+ },
+ "xrpose": {
+ "docs": "\n\n`XRPose` is a [WebXR API](/en-US/docs/Web/API/WebXR_Device_API) interface representing a position and orientation in the 3D space, relative to the [XRSpace] within which it resides. The `XRSpace`—which is either an [XRReferenceSpace] or an [XRBoundedReferenceSpace]—defines the coordinate system used for the pose and, in the case of an [XRViewerPose], its underlying views.\n\nTo obtain the `XRPose` for the `XRSpace` used as the local coordinate system of an object, call [XRFrame.getPose], specifying that local `XRSpace` and the space to which you wish to convert:\n\n```js\nthePose = xrFrame.getPose(localSpace, baseSpace);\n```\n\nThe pose for a viewer (or camera) is represented by the [XRViewerPose] subclass of `XRPose`. This is obtained using [XRFrame.getViewerPose] instead of `getPose()`, specifying a reference space which has been adjusted to position and orient the node to provide the desired viewing position and angle:\n\n```js\nviewerPose = xrFrame.getViewerPose(adjReferenceSpace);\n```\n\nHere, `adjReferenceSpace` is a reference space which has been updated using the base frame of reference for the frame and any adjustments needed to position the viewer based on movement or rotation which is being supplied from a source other than the XR device, such as keyboard or mouse inputs.\n\nSee the article [Movement, orientation, and motion](/en-US/docs/Web/API/WebXR_Device_API/Movement_and_motion) for further details and an example with thorough explanations of what's going on.",
+ "properties": {
+ "angularvelocity": "\n\nThe `angularVelocity` read-only property of the\n[XRPose] interface is a [DOMPointReadOnly] describing\nthe angular velocity in radians per second relative to the base\n[XRSpace].",
+ "emulatedposition": "\n\nThe `emulatedPosition` read-only attribute of the\n[XRPose] interface is a Boolean value indicating whether or not both the\n[XRRigidTransform.position] component of the pose's\n[XRPose.transform] is directly taken from the XR device, or\nit's simulated or computed based on other sources.",
+ "linearvelocity": "\n\nThe `linearVelocity` read-only property of the\n[XRPose] interface is a [DOMPointReadOnly] describing\nthe linear velocity in meters per second relative to the base\n[XRSpace].",
+ "transform": "\n\nThe `transform` read-only attribute of the\n[XRPose] interface is a [XRRigidTransform] object providing\nthe position and orientation of the pose relative to the base [XRSpace]\nas specified when the pose was obtained by calling\n[XRFrame.getPose]."
+ }
+ },
+ "xrprojectionlayer": {
+ "docs": "\n\nThe **`XRProjectionLayer`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is a layer that fills the entire view of the observer and is refreshed close to the device's native frame rate.\n\n`XRProjectionLayer` is supported by all [XRSession] objects (no `layers` feature descriptor is needed).\n\nTo create a new `XRProjectionLayer`, call [XRWebGLBinding.createProjectionLayer].\nTo present layers to the XR device, add them to the `layers` render state using [XRSession.updateRenderState].\n\n`XRProjectionLayer` objects don't have an associated [XRSpace], because they render to the full frame.\n\n",
+ "properties": {
+ "fixedfoveation": "\n\nThe **`fixedFoveation`** property of the [XRProjectionLayer] interface is a number indicating the amount of foveation used by the XR compositor for the layer. Fixed Foveated Rendering (FFR) renders the edges of the eye textures at a lower resolution than the center and reduces the GPU load.\n\nIt is most useful for low-contrast textures such as background images, but less for high-contrast ones such as text or detailed images. Authors can adjust the level on a per-frame basis to achieve the best tradeoff between performance and visual quality.",
+ "ignoredepthvalues": "\n\nThe read-only **`ignoreDepthValues`** property of the [XRProjectionLayer] interface is a boolean indicating if the XR compositor is not making use of depth buffer values when rendering the layer.",
+ "texturearraylength": "\n\nThe read-only **`textureArrayLength`** property of the [XRProjectionLayer] interface indicates layer's layer count for array textures when using `texture-array` as the `textureType`.\n\nThe projection layer's layer count for array textures is determined by the user agent or the device. It is reported in the [XRSubImage], which can only be accessed inside the frame loop. If you want to manage your own depth buffers and don't want to wait for first frame after layer creation to determine the required dimensions for those buffers, the `textureArrayLength` property allows access to layer count for array textures outside the frame loop. Allocation of these buffers can happen directly after layer creation.",
+ "textureheight": "\n\nThe read-only **`textureHeight`** property of the [XRProjectionLayer] interface indicates the height in pixels of the color textures of this layer.\n\nThe projection layer's texture height is determined by the user agent or the device. It is reported in the [XRSubImage], which can only be accessed inside the frame loop. If you want to manage your own depth buffers and don't want to wait for first frame after layer creation to determine the required dimensions for those buffers, the `textureHeight` property allows access to layer texture height outside the frame loop. Allocation of these buffers can happen directly after layer creation.",
+ "texturewidth": "\n\nThe read-only **`textureWidth`** property of the [XRProjectionLayer] interface indicates the width in pixels of the color textures of this layer.\n\nThe projection layer's texture width is determined by the user agent or the device. It is reported in the [XRSubImage], which can only be accessed inside the frame loop. If you want to manage your own depth buffers and don't want to wait for first frame after layer creation to determine the required dimensions for those buffers, the `textureWidth` property allows access to layer texture width outside the frame loop. Allocation of these buffers can happen directly after layer creation."
+ }
+ },
+ "xrquadlayer": {
+ "docs": "\n\nThe **`XRQuadLayer`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is a layer that takes up a flat rectangular space in the virtual environment. An `XRQuadLayer` has no thickness. It is a two-dimensional object positioned and oriented in 3D space. The position of a quad refers to the center of the quad. Only the front of the layer is visible.\n\n`XRQuadLayer` requires the `layers` feature to be enabled for the [XRSession]. You can request it in [XRSystem.requestSession].\n\nTo create a new `XRQuadLayer`, call either:\n\n- [XRWebGLBinding.createQuadLayer] for a WebGL opaque texture quad layer, or\n- [XRMediaBinding.createQuadLayer] for an HTML `video` playback quad layer.\n\nTo present layers to the XR device, add them to the `layers` render state using [XRSession.updateRenderState].\n\n",
+ "properties": {
+ "height": "\n\nThe **`height`** property of the [XRQuadLayer] interface represents the height of the layer in meters.",
+ "redraw_event": "\n\nThe `redraw` event is sent to the `XRQuadLayer` object when the underlying resources of the layer are lost or when the XR Compositor can no longer reproject the layer. If this event is sent, authors should redraw the content of the layer in the next XR animation frame.\n\nSee also the [XRCompositionLayer.needsRedraw] property which is also available to `XRQuadLayer` objects through inheritance from [XRCompositionLayer].",
+ "space": "\n\nThe **`space`** property of the [XRQuadLayer] interface represents the layer's spatial relationship with the user's physical environment.",
+ "transform": "\n\nThe **`transform`** property of the [XRQuadLayer] interface represents the offset and orientation relative to the layer's [XRQuadLayer.space].",
+ "width": "\n\nThe **`width`** property of the [XRQuadLayer] interface represents the width of the layer in meters."
+ }
+ },
+ "xrray": {
+ "docs": " \n\nThe **`XRRay`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is a geometric ray described by an origin point and a direction vector.\n\n`XRRay` objects can be passed to [XRSession.requestHitTestSource] or [XRSession.requestHitTestSourceForTransientInput] to perform hit testing.",
+ "properties": {
+ "direction": "\n\nThe _read-only_ **`direction`** property of the [XRRay] interface is a [DOMPointReadOnly] representing the ray's 3-dimensional directional vector, normalized to a [unit vector](https://en.wikipedia.org/wiki/Unit_vector) with a length of 1.0.",
+ "matrix": "\n\nThe _read-only_ **`matrix`** property of the [XRRay] interface is a transform that can be used to position objects along the `XRRay`. This is a 4 by 4 matrix given as a 16 element `Float32Array` in column major order.\n\nThe transform from a ray originates at [0, 0, 0] and extends down the negative z-axis to the ray described by the `XRRay`'s `origin` and `direction`.",
+ "origin": "\n\nThe _read-only_ **`origin`** property of the [XRRay] interface is a [DOMPointReadOnly] representing the 3-dimensional point in space that the ray originates from, in meters."
+ }
+ },
+ "xrreferencespace": {
+ "docs": "\n\nThe WebXR Device API's **`XRReferenceSpace`** interface describes the coordinate system for a specific tracked entity or object within the virtual world using a specified tracking behavior. The tracking behavior is defined by the selected [reference space type](#reference_space_types). It expands upon the base class, [XRSpace], by adding support for several different tracking behaviors as well as to request a new reference space which describes the offset transform between the tracked object and another location in the world.\n\nAll reference spaces—with the sole exception being bounded reference spaces—are described using the `XRReferenceSpace` type. Bounded spaces are implemented as [XRBoundedReferenceSpace] objects. These are special spaces which let you establish a perimeter within which it's \"safe\" for the viewer to move. For XR systems that allow the user to physically move around, such as those that track movement with a real-world camera, this boundary establishes the edges of the area the user is able to move around in, whether due to physical obstacles or due to limitations of the XR hardware. See the article [Using bounded reference spaces to protect the viewer](/en-US/docs/Web/API/WebXR_Device_API/Bounded_reference_spaces) for more on using boundaries to keep the user from colliding with obstacles both physical and virtual.\n\n",
+ "properties": {
+ "getoffsetreferencespace": "\n\nThe [XRReferenceSpace]\ninterface's **`getOffsetReferenceSpace()`** method returns a\nnew reference space object which describes the relative difference in position between\nthe object on which the method is called and a given point in 3D space. The\nobject returned by `getOffsetReferenceSpace()` is an\n[XRReferenceSpace] if called on an `XRReferenceSpace`, or an\n[XRBoundedReferenceSpace] if called on an object of that type.\n\nIn other words, when you have an object in 3D space and need to position another object\nrelative to that one, you can call `getOffsetReferenceSpace()`, passing into\nit the position and orientation you want the second object to have\n_relative to the position and orientation of the object on which you call `getOffsetReferenceSpace()`_.\n\nThen, when drawing the scene, you can use the offset reference space to not only\nposition objects relative to one another, but to apply the needed transforms to render\nobjects properly based upon the viewer's position. This is demonstrated in the example\n[Implementing rotation based on non-XR inputs](#implementing_rotation_based_on_non-xr_inputs), which demonstrates a way to\nuse this method to let the user use their mouse to pitch and yaw their viewing angle.",
+ "reset_event": "\n\nThe **`reset`** event is sent to an [XRReferenceSpace] object when a discontinuity is detected in either the native origin or the effective origin, causing a jump in the position or orientation of objects oriented using the reference space. This is common when the user calibrates or recalibrates an XR device, or if the device automatically changes its origin after losing tracking of the user, then re-gaining it.\n\nIn the case of [XRBoundedReferenceSpace] objects, the `reset` event can also be fired when the [XRBoundedReferenceSpace.boundsGeometry] changes.\n\nIn either case, the event is sent before any WebXR animation frames which make use of the new origin are executed.\n\nThis event is not cancelable."
+ }
+ },
+ "xrreferencespaceevent": {
+ "docs": "\n\nThe [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) interface **`XRReferenceSpaceEvent`** represents an event sent to an [XRReferenceSpace]. Currently, the only event that uses this type is the [XRReferenceSpace.reset_event] event.\n\n",
+ "properties": {
+ "referencespace": "\n\nThe read-only [XRReferenceSpaceEvent] property\n**`referenceSpace`** specifies the reference space which is the\noriginator of the event.",
+ "transform": "\n\nThe read-only [XRReferenceSpaceEvent] property\n**`transform`** indicates the position and orientation of the\naffected [XRReferenceSpaceEvent.referenceSpace]'s\nnative origin after the changes the event represents are applied. The\n`transform` is defined using the old coordinate system, which allows it to be\nused to convert coordinates from the pre-event coordinate system to the post-event\ncoordinate system."
+ }
+ },
+ "xrrenderstate": {
+ "docs": "\n\nThe **`XRRenderState`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) contains configurable values which affect how the imagery generated by an [XRSession] gets composited. These properties include the range of distances from the viewer within which content should be rendered, the vertical field of view (for inline presentations), and a reference to the [XRWebGLLayer] being used as the target for rendering the scene prior to it being presented on the XR device's display or displays.\n\nWhen you apply changes using the `XRSession` method [XRSession.updateRenderState], the specified changes take effect after the current animation frame has completed, but before the next one begins.",
+ "properties": {
+ "baselayer": "\n\nThe read-only **`baseLayer`** property of the\n[XRRenderState] interface returns the [XRWebGLLayer] instance\nthat is the source of bitmap images and a description of how the image is to be rendered\nin the device.\n\nThis property is read-only; however, you can indirectly change its\nvalue using [XRSession.updateRenderState].",
+ "depthfar": "\n\nThe **`depthFar`** read-only property of the\n[XRRenderState] interface returns the distance in meters of the far clip\nplane from the viewer.",
+ "depthnear": "\n\nThe **`depthNear`** read-only property of the\n[XRRenderState] interface returns the distance in meters of the near clip\nplane from the viewer.",
+ "inlineverticalfieldofview": "\n\nThe read-only **`inlineVerticalFieldOfView`**\nproperty of the [XRRenderState] interface returns the default vertical\nfield of view for `\"inline\"` sessions and `null` for all immersive\nsessions.",
+ "layers": "\n\nThe read-only **`layers`** property of the [XRRenderState] interface is an ordered array containing [XRLayer] objects that are displayed by the XR compositor."
+ }
+ },
+ "xrrigidtransform": {
+ "docs": "\n\nThe **`XRRigidTransform`** is a [WebXR API](/en-US/docs/Web/API/WebXR_Device_API) interface that represents the 3D geometric transform described by a position and orientation.\n\n`XRRigidTransform` is used to specify transforms throughout the WebXR APIs, including:\n\n- The offset and orientation relative to the parent reference space to use when creating a new reference space with [XRReferenceSpace.getOffsetReferenceSpace].\n- The [XRView.transform] of an [XRView].\n- The [XRPose.transform] of an [XRPose].\n- The [XRReferenceSpaceEvent] event's [XRReferenceSpaceEvent.transform] property, as found in the [XRReferenceSpace.reset_event] event received by an [XRReferenceSpace].\n\nUsing `XRRigidTransform` in these places rather than bare arrays that provide the matrix data has an advantage. It automatically computes the inverse of the transform and even caches it making subsequent requests significantly faster.",
+ "properties": {
+ "inverse": "\n\nThe read-only **`inverse`** property\nof the [XRRigidTransform] interface returns another\n[XRRigidTransform] object which is the inverse of its owning\ntransform. That is, you can always get the inverse of any\n`XRRigidTransform` using its `inverse` property, instead of having\nto explicitly generate it.",
+ "matrix": "\n\nThe read-only [XRRigidTransform] property\n**`matrix`** returns the transform\nmatrix represented by the object. The returned matrix can then be premultiplied with a\ncolumn vector to rotate the\nvector by the 3D rotation specified by the [XRRigidTransform.orientation], then translate\nit by the [XRRigidTransform.position].",
+ "orientation": "\n\nThe read-only [XRRigidTransform] property\n**`orientation`** is a [DOMPointReadOnly]\ncontaining a normalized (also called a **unit\nquaternion** or **[versor](https://en.wikipedia.org/wiki/Versor)**)\nspecifying the rotational component of the transform represented by the object.\nIf you specify a quaternion whose length is not exactly 1.0 meters, it will be\nnormalized for you.",
+ "position": "\n\nThe read-only [XRRigidTransform] property\n**`position`** is a [DOMPointReadOnly] object which\nprovides the 3D point, specified in meters, describing the translation component of the\ntransform."
+ }
+ },
+ "xrsession": {
+ "docs": "\n\nThe [WebXR Device API]'s **`XRSession`** interface represents an ongoing XR session, providing methods and properties used to interact with and control the session. To open a WebXR session, use the [XRSystem] interface's [XRSystem.requestSession] method.\n\nWith `XRSession` methods, you can poll the viewer's position and orientation (the [XRViewerPose]), gather information about the user's environment, and present imagery to the user. `XRSession` supports both inline and immersive virtual and augmented reality modes.\n\n",
+ "properties": {
+ "cancelanimationframe": "\n\nThe **`cancelAnimationFrame()`** method of\nthe [XRSession] interface cancels an animation frame which was previously\nrequested by calling [XRSession.requestAnimationFrame].",
+ "depthdataformat": "\n\nThe _read-only_ **`depthDataFormat`** property of an `immersive-ar`\n[XRSession] describes which depth sensing data format is used.",
+ "depthusage": "\n\nThe _read-only_ **`depthUsage`** property of an `immersive-ar`\n[XRSession] describes which depth-sensing usage is used.",
+ "domoverlaystate": "\n\nThe _read-only_ **`domOverlayState`** property of an `immersive-ar`\n[XRSession] provides information about the DOM overlay, if the feature is enabled.",
+ "end": "\n\nThe **`end()`** method shuts down the\n[XRSession] on which it's called, returning a promise which resolves once\nthe session has fully shut down.",
+ "end_event": "\n\nAn `end` event is fired at an [XRSession] object when the WebXR session has ended, either because the web application has chosen to stop the session, or because the terminated the session.",
+ "environmentblendmode": "\n\nThe [XRSession] interface's _read-only_ **`environmentBlendMode`**\nproperty identifies if, and to what degree, the computer-generated imagery is overlaid atop the real world.\n\nThis is used to differentiate between fully-immersive VR sessions and AR sessions which render\nover a pass-through image of the real world, possibly partially transparently.",
+ "inputsources": "\n\nThe read-only **`inputSources`** property of the\n[XRSession] interface returns an [XRInputSourceArray] object\nwhich lists all controllers and input devices which are expressly associated with the\nXR device and are currently available. These controllers may include handheld\ncontrollers, XR-equipped gloves, optically tracked hands, and gaze-based input methods.\nKeyboards, gamepads, and mice are _not_ considered WebXR input sources.\n\n> **Note:** Traditional gamepad controllers are supported using the [Gamepad API](/en-US/docs/Web/API/Gamepad_API).",
+ "inputsourceschange_event": "\n\nThe **`inputsourceschange`** event is sent to an [XRSession] when the set of available WebXR input devices changes.",
+ "interactionmode": "\n\nThe [XRSession] interface's _read-only_ **`interactionMode`** property\ndescribes the best space (according to the user agent) for the application to draw an interactive UI for the current session.",
+ "preferredreflectionformat": "\n\nThe _read-only_ **`preferredReflectionFormat`** property of the [XRSession] interface returns this session's preferred reflection format used for lighting estimation texture data.",
+ "renderstate": "\n\nThe\n_read-only_ **`renderState`** property of an\n[XRSession] object indicates the returns a [XRRenderState]\nobject describing how the user's environment which should be rendered. The\ninformation provided covers the minimum and maximum distance at which to render objects,\nthe vertical field of view to use when rendering the in the `inline` session\nmode, and the [XRWebGLLayer] to render into for inline composition.\n\nWhile this property is read only, you can call the [XRSession] method\n[XRSession.updateRenderState] to make changes.",
+ "requestanimationframe": "\n\nThe [XRSession]\nmethod **`requestAnimationFrame()`**, much like the\n[Window] method of the same name, schedules a callback to be executed the\nnext time the browser is ready to paint the session's virtual environment to the XR\ndisplay. The specified callback is executed once before the next repaint; if\nyou wish for it to be executed for the following repaint, you must\ncall `requestAnimationFrame()` again. This can be done from within the\ncallback itself.\n\nThe callback takes two parameters as inputs: an [XRFrame] describing the\nstate of all tracked objects for the session, and a timestamp you can use to compute\nany animation updates needed.\n\nYou can cancel a previously scheduled animation by calling\n[XRSession.cancelAnimationFrame].\n\n> **Note:** Despite the obvious similarities between these methods and the\n> global [Window.requestAnimationFrame] function\n> provided by the `Window` interface, you _must not_ treat these as\n> interchangeable. There is _no_ guarantee that the latter will work at all while\n> an immersive XR session is underway.",
+ "requesthittestsource": "\n\nThe **`requestHitTestSource()`** method of the\n[XRSession] interface returns a `Promise` that resolves with an [XRHitTestSource] object that can be passed to [XRFrame.getHitTestResults].",
+ "requesthittestsourcefortransientinput": "\n\nThe **`requestHitTestSourceForTransientInput()`** method of the\n[XRSession] interface returns a `Promise` that resolves with an [XRTransientInputHitTestSource] object that can be passed to [XRFrame.getHitTestResultsForTransientInput].",
+ "requestlightprobe": "\n\nThe **`requestLightProbe()`** method of the\n[XRSession] interface returns a `Promise` that resolves with an [XRLightProbe] object that estimates lighting information at a given point in the user's environment.",
+ "requestreferencespace": "\n\nThe **`requestReferenceSpace()`** method of the\n[XRSession] interface returns a `promise` that resolves with\nan instance of either [XRReferenceSpace]\nor [XRBoundedReferenceSpace] as appropriate given the type of reference\nspace requested.",
+ "select_event": "\n\nThe WebXR **`select`** event is sent to an [XRSession] when one of the session's input sources has completed a [primary action](/en-US/docs/Web/API/WebXR_Device_API/Inputs#primary_action).\n\nThe [Element.beforexrselect_event] is fired before this event and can prevent this event from being raised.",
+ "selectend_event": "\n\nThe WebXR event **`selectend`** is sent to an [XRSession] when one of its input sources ends its [primary action](/en-US/docs/Web/API/WebXR_Device_API/Inputs#primary_actions) or when an input source that's in the process of handling an ongoing primary action is disconnected without successfully completing the action.\n\nThe [Element.beforexrselect_event] is fired before this event and can prevent this event from being raised.",
+ "selectstart_event": "\n\nThe [WebXR](/en-US/docs/Web/API/WebXR_Device_API) **`selectstart`** event is sent to an [XRSession] when the user begins a [primary action](/en-US/docs/Web/API/WebXR_Device_API/Inputs#primary_action) on one of its input sources.\n\nThe [Element.beforexrselect_event] is fired before this event and can prevent this event from being raised.",
+ "squeeze_event": "\n\nThe WebXR **`squeeze`** event is sent to an [XRSession] when one of the session's input sources has completed a [primary squeeze action](/en-US/docs/Web/API/WebXR_Device_API/Inputs#primary_squeeze_actions). Examples of common kinds of primary action are users pressing triggers or buttons, tapping a touchpad, speaking a command, or performing a recognizable gesture when using a video tracking system or handheld controller with an accelerometer.\n\nFor details on how the [XRSession.squeezestart_event], `squeeze`, and [XRSession.squeezeend_event] events work, and how you should react to them, see [Inputs and input sources](/en-US/docs/Web/API/WebXR_Device_API/Inputs#input_sources).",
+ "squeezeend_event": "\n\nThe WebXR event **`squeezeend`** is sent to an [XRSession] when one of its input sources ends its [primary action](/en-US/docs/Web/API/WebXR_Device_API/Inputs#primary_squeeze_actions) or when an input source that's in the process of handling an ongoing primary action is disconnected without successfully completing the action.\n\nPrimary squeeze actions include things like users pressing triggers or buttons, tapping a touchpad, speaking a command, or performing a recognizable gesture when using a video tracking system or handheld controller with an accelerometer.",
+ "squeezestart_event": "\n\nThe [WebXR](/en-US/docs/Web/API/WebXR_Device_API) event **`squeezestart`** is sent to an [XRSession] when the user begins a [primary squeeze action](/en-US/docs/Web/API/WebXR_Device_API/Inputs#primary_squeeze_actions) on one of its input sources.\n\nPrimary squeeze actions are actions which are meant to represent gripping or squeezing using your hands, and may be simulated using triggers on hand controllers.",
+ "updaterenderstate": "\n\nThe `updateRenderState()` method of the [XRSession] interface of the [WebXR API](/en-US/docs/Web/API/WebXR_Device_API) schedules changes to be applied to the active render state ([XRRenderState]) prior to rendering of the next frame.",
+ "visibilitychange_event": "\n\nThe **`visibilitychange`** event is sent to an [XRSession] to inform it when it becomes visible or hidden, or when it becomes visible but not currently focused. Upon receiving the event, you can check the value of the session's [XRSession.visibilityState] property to determine the new visibility state.",
+ "visibilitystate": "\n\nThe _read-only_ **`visibilityState`** property of the\n[XRSession] interface is a string indicating whether the WebXR content is\ncurrently visible to the user, and if it is, whether it's the primary focus.\n\nEvery time the visibility state changes, a\n[XRSession.visibilitychange_event] event is fired on the\n[XRSession] object."
+ }
+ },
+ "xrsessionevent": {
+ "docs": "\n\nThe [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API)'s **`XRSessionEvent`** interface describes an event which indicates the change of the state of an [XRSession]. These events occur, for example, when the session ends or the visibility of its context changes.\n\n",
+ "properties": {
+ "session": "\n\nThe read-only [XRSessionEvent] interface's\n**`session`** property indicates which\n[XRSession] the event is about."
+ }
+ },
+ "xrspace": {
+ "docs": "\n\nThe **`XRSpace`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) is an abstract interface providing a common basis for every class which represents a virtual coordinate system within the virtual world, in which its origin corresponds to a physical location. Spatial data in WebXR is always expressed relative to an object based upon one of the descendant interfaces of `XRSpace`, at the time at which a given [XRFrame] takes place.\n\nNumeric values such as pose positions are thus coordinates in the corresponding `XRSpace`, relative to that space's origin.\n\n> **Note:** The `XRSpace` interface is never used directly; instead, all spaces are created using one of the interfaces based on `XRSpace`. At this time, those are [XRReferenceSpace], [XRBoundedReferenceSpace], and [XRJointSpace].\n\n"
+ },
+ "xrsubimage": {
+ "docs": " \n\nThe **`XRSubImage`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) represents what viewport of the GPU texture to use for rendering.",
+ "properties": {
+ "viewport": "\n\nThe read-only **`viewport`** property of the [XRSubImage] interface represents the [XRViewport] that is used when rendering the sub image."
+ }
+ },
+ "xrsystem": {
+ "docs": "\n\nThe [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) interface **`XRSystem`** provides methods which let you get access to an [XRSession] object representing a WebXR session. With that `XRSession` in hand, you can use it to interact with the Augmented Reality (AR) or Virtual Reality (VR) device.\n\n",
+ "properties": {
+ "devicechange_event": "\n\nA **`devicechange`** event is fired on an [XRSystem] object whenever the availability of immersive XR devices has changed; for example, a VR headset or AR goggles have been connected or disconnected. It's a generic [Event] with no added properties.\n\n> **Note:** Not to be confused with the [MediaDevices] [MediaDevices.devicechange_event] event.",
+ "issessionsupported": "\n\nThe [XRSystem] method\n**`isSessionSupported()`** returns a promise which resolves to\n`true` if the specified WebXR session mode is supported by the user's WebXR\ndevice. Otherwise, the promise resolves with `false`.\n\nIf no devices are available or the browser doesn't have permission\nto use the XR device, the promise is rejected with an appropriate\n[DOMException].",
+ "requestsession": "\n\nThe **[XRSystem]** interface's\n**`requestSession()`** method returns a `promise`\nwhich resolves to an [XRSession] object through which you can manage the\nrequested type of WebXR session.\n\nWhile only one immersive VR session can be active at a time, multiple\ninline sessions can be in progress at once."
+ }
+ },
+ "xrtransientinputhittestresult": {
+ "docs": " \n\nThe **`XRTransientInputHitTestResult`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) contains an array of results of a hit test for transient input, grouped by input source.\n\nYou can get an array of `XRHitTestResult` objects for a frame by calling [XRFrame.getHitTestResultsForTransientInput].",
+ "properties": {
+ "inputsource": "\n\nThe _read-only_ **`inputSource`** property of the [XRTransientInputHitTestResult] interface represents an [XRInputSource] object that was used to compute the [XRTransientInputHitTestResult.results] array.",
+ "results": "\n\nThe _read-only_ **`results`** property of the [XRTransientInputHitTestResult] interface represents an array of [XRHitTestResult] objects containing the hit test results for the input source, ordered by the distance along the ray used to perform the hit test, with the closest result at position 0."
+ }
+ },
+ "xrtransientinputhittestsource": {
+ "docs": " \n\nThe **`XRTransientInputHitTestSource`** interface of the [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API) handles transient input hit test subscriptions. You can get an `XRTransientInputHitTestSource` object by calling the [XRSession.requestHitTestSourceForTransientInput].\n\nThis object doesn't itself contain transient input hit test results, but it is used to compute hit tests for each [XRFrame] by calling [XRFrame.getHitTestResultsForTransientInput], which returns [XRTransientInputHitTestResult] objects.",
+ "properties": {
+ "cancel": "\n\nThe **`cancel()`** method of the [XRTransientInputHitTestSource] interface unsubscribes a transient input hit test."
+ }
+ },
+ "xrview": {
+ "docs": "\n\nThe [WebXR Device API](/en-US/docs/Web/API/WebXR_Device_API)'s **`XRView`** interface describes a single view into the XR scene for a specific frame, providing orientation and position information for the viewpoint. You can think of it as a description of a specific eye or camera and how it views the world. A 3D frame will involve two views, one for each eye, separated by an appropriate distance which approximates the distance between the viewer's eyes. This allows the two views, when projected in isolation into the appropriate eyes, to simulate a 3D world.",
+ "properties": {
+ "eye": "\n\nThe [XRView] interface's read-only **`eye`**\nproperty is a string indicating which eye's viewpoint the `XRView` represents: `left` or\n`right`. For views which represent neither eye, such as monoscopic views,\nthis property's value is `none`.",
+ "isfirstpersonobserver": "\n\nThe [XRView] interface's read-only **`isFirstPersonObserver`** property is a boolean indicating if the `XRView` is a first-person observer view.\n\nTo create video recordings of AR device cameras, you can't simply use one of the rendered eyes, as there often will be a physical offset. Some devices expose a secondary view, the first-person observer view, which has an `eye` of `none`.\n\nTo receive a first-person observer view, you need to enable the \"secondary-views\" feature descriptor explicitly (typically as an optional feature). See [XRSystem.requestSession] for details.\n\nThe `isFirstPersonObserver` property then allows you to check which secondary view is a first-person observer view.",
+ "projectionmatrix": "\n\nThe [XRView] interface's read-only\n**`projectionMatrix`** property specifies the projection matrix\nto apply to the underlying view. This should be used to integrate perspective to\neverything in the scene, in order to ensure the result is consistent with what the eye\nexpects to see.\n\n> **Note:** Failure to apply proper perspective, or inconsistencies\n> in perspective, may result in possibly serious user discomfort or distress.",
+ "recommendedviewportscale": "\n\nThe read-only **`recommendedViewportScale`** property of the [XRView] interface is the recommended viewport scale value that you can use for [XRView.requestViewportScale] if the user agent has such a recommendation; [`null`](/en-US/docs/Web/JavaScript/Reference/Operators/null) otherwise.",
+ "requestviewportscale": "\n\nThe **`requestViewportScale()`** method of the [XRView] interface requests that the user agent sets the requested viewport scale for this viewport to the given value. This is used for dynamic viewport scaling which allows rendering to a subset of the WebXR viewport using a scale factor that can be changed every animation frame.",
+ "transform": "\n\nThe read-only **`transform`** property of the\n[XRView] interface is an [XRRigidTransform] object which\nprovides the position and orientation of the viewpoint relative to the\n[XRReferenceSpace] specified when the\n[XRFrame.getViewerPose] method was called to obtain the view object.\n\nWith the `transform`, you can then position the view as a camera within the\n3D scene. If you instead need the more traditional view matrix, you can get using\n`view.transform.inverse.matrix`; this gets the underlying\n[XRRigidTransform.matrix] of the transform's\n[XRRigidTransform.inverse]."
+ }
+ },
+ "xrviewerpose": {
+ "docs": "\n\nThe WebXR Device API interface **`XRViewerPose`** represents the pose (the position and orientation) of a viewer's point of view on the scene. Each `XRViewerPose` can have multiple views to represent, for example, the slight separation between the left and right eye.\n\nThis view can represent anything from the point-of-view of a user's XR headset to the viewpoint represented by a player's movement of an avatar using mouse and keyboard, presented on the screen, to a virtual camera capturing the scene for a spectator.\n\n",
+ "properties": {
+ "views": "\n\nThe read-only [XRViewerPose] property **`views`**\nreturns an array which contains every [XRView] which must be rendered in\norder to fully represent the scene from the viewpoint defined by the viewer pose. For\nmonoscopic devices, this array contains a single view.\n\n> **Warning:** There is no guarantee that the number of views will\n> remain constant over the lifetime of an [XRSession]. For each frame, you\n> should always use the current length of this array rather than caching the value.\n\nStereo views require two views to render properly, with the left eye's view having its\n[XRView.eye] set to the string `left` and the right eye's\nview a value of `right`."
+ }
+ },
+ "xrviewport": {
+ "docs": "\n\nThe WebXR Device API's **`XRViewport`** interface provides properties used to describe the size and position of the current viewport within the [XRWebGLLayer] being used to render the 3D scene.",
+ "properties": {
+ "height": "\n\nThe read-only [XRViewport] property\n**`height`** specifies the height, in pixels, of the viewport\nonto the drawing surface within which the WebXR view is to be rendered. Along\nwith [XRViewport.width] and the origin point given by\n[XRViewport.x] and [XRViewport.y], this defines the\narea within which rendered content will be drawn.",
+ "width": "\n\nThe read-only [XRViewport] property\n**`width`** specifies the width of the viewport, in pixels,\nonto the drawing surface the 3D scene is to be rendered into. This is defined\nusing this property along with the viewport's [XRViewport.height]\nand its origin given by its properties [XRViewport.x] and\n[XRViewport.y].",
+ "x": "\n\nThe read-only [XRViewport] interface's\n**`x`** property indicates the offset from the left edge of\nthe destination surface (typically a [XRWebGLLayer] to the left edge of\nthe viewport within the surface into which WebXR content is to be rendered. The\nviewport's [XRViewport.y] property identifies the `y`\ncomponent of the origin, and its is given by the [XRViewPort.width] and [XRViewport.height] properties.",
+ "y": "\n\nThe read-only [XRViewport] interface's\n**`y`** property indicates the offset from the bottom edge of\nthe destination surface (typically a [XRWebGLLayer] to the bottom edge of\nthe viewport within the surface into which WebXR content is to be rendered. The\nviewport's [XRViewport.x] property identifies the `x`\ncomponent of the origin, and its is given by the [XRViewPort.width] and [XRViewport.height] properties."
+ }
+ },
+ "xrwebglbinding": {
+ "docs": " \n\nThe **`XRWebGLBinding`** interface is used to create layers that have a GPU backend.",
+ "properties": {
+ "createcubelayer": "\n\nThe **`createCubeLayer()`** method of the [XRWebGLBinding] interface returns an [XRCubeLayer] object, which is a layer that renders directly from a [cubemap](https://en.wikipedia.org/wiki/Cube_mapping), and projects it onto the inside faces of a cube.",
+ "createcylinderlayer": "\n\nThe **`createCylinderLayer()`** method of the [XRWebGLBinding] interface returns an [XRCylinderLayer] object, which is a layer that takes up a curved rectangular space in the virtual environment.",
+ "createequirectlayer": "\n\nThe **`createEquirectLayer()`** method of the [XRWebGLBinding] interface returns an [XREquirectLayer] object, which is a layer that maps [equirectangular](https://en.wikipedia.org/wiki/Equirectangular_projection) coded data onto the inside of a sphere.",
+ "createprojectionlayer": "\n\nThe **`createProjectionLayer()`** method of the [XRWebGLBinding] interface returns an [XRProjectionLayer] object which is a layer that fills the entire view of the observer and is refreshed close to the device's native frame rate.",
+ "createquadlayer": "\n\nThe **`createQuadLayer()`** method of the [XRWebGLBinding] interface returns an [XRQuadLayer] object which is a layer that takes up a flat rectangular space in the virtual environment.",
+ "getdepthinformation": "\n\nThe **`getDepthInformation()`** method of the [XRWebGLBinding] interface returns an [XRWebGLDepthInformation] object containing WebGL depth information.",
+ "getreflectioncubemap": "\n\nThe **`getReflectionCubeMap()`** method of the [XRWebGLBinding] interface returns a [WebGLTexture] object containing a reflection cube map texture.\n\nThe texture format is specified by the session's `reflectionFormat`. See the `options` parameter on [XRSession.requestLightProbe] and [XRSession.preferredReflectionFormat] for more details. By default, the `srgba8` format is used. When using a `rgba16f` format, you need to be within a WebGL 2.0 context or enable the [OES_texture_half_float] extension within WebGL 1.0 contexts.",
+ "getsubimage": "\n\nThe **`getSubImage()`** method of the [XRWebGLBinding] interface returns a [XRWebGLSubImage] object representing the WebGL texture to render.",
+ "getviewsubimage": "\n\nThe **`getViewSubImage()`** method of the [XRWebGLBinding] interface returns a [XRWebGLSubImage] object representing the WebGL texture to render for a view.",
+ "nativeprojectionscalefactor": "\n\nThe read-only **`nativeProjectionScaleFactor`** property of the [XRWebGLBinding] interface represents the scaling factor by which the projection layer's resolution is multiplied by to get the native resolution of the WebXR device's frame buffer.\n\nFor more details, see [XRWebGLLayer.getNativeFramebufferScaleFactor_static]."
+ }
+ },
+ "xrwebgldepthinformation": {
+ "docs": " \n\nThe **`XRWebGLDepthInformation`** interface contains depth information from the GPU/WebGL (returned by [XRWebGLBinding.getDepthInformation]).\n\nThis interface inherits properties from its parent, [XRDepthInformation].",
+ "properties": {
+ "texture": "\n\nThe _read-only_ **`texture`** property of the [XRWebGLDepthInformation] interface is a [WebGLTexture] containing depth buffer information as an opaque texture."
+ }
+ },
+ "xrwebgllayer": {
+ "docs": "\n\nThe **`XRWebGLLayer`** interface of the WebXR Device API provides a linkage between the WebXR device (or simulated XR device, in the case of an inline session) and a WebGL context used to render the scene for display on the device. In particular, it provides access to the WebGL framebuffer and viewport to ease access to the context.\n\nAlthough `XRWebGLLayer` is currently the only type of framebuffer layer supported by [WebGL](/en-US/docs/Web/API/WebGL_API), it's entirely possible that future updates to the WebXR specification may allow for other layer types and corresponding image sources.\n\n",
+ "properties": {
+ "antialias": "\n\nThe read-only [XRWebGLLayer] property\n**`antialias`** is a Boolean value which is `true`\nif the rendering layer's frame buffer supports anti-aliasing. Otherwise, this\nproperty's value is `false`. The specific anti-aliasing technique used is left\nto the discretion and cannot be specified by\nthe website or web app.",
+ "fixedfoveation": "\n\nThe **`fixedFoveation`** property of the [XRWebGLLayer] interface is a number indicating the amount of foveation used by the XR compositor. Fixed Foveated Rendering (FFR) renders the edges of the eye textures at a lower resolution than the center and reduces the GPU load.\n\nIt is most useful for low contrast textures, such as background images but less for high contrast ones such as text or detailed images. Authors can adjust the level on a per frame basis to achieve the best tradeoff between performance and visual quality.",
+ "framebuffer": "\n\nThe read-only [XRWebGLLayer] property\n**`framebuffer`** is an opaque [WebGLFramebuffer]\nwhich is used to buffer the rendered image if the [XR compositor](/en-US/docs/Web/API/WebXR_Device_API/Fundamentals#the_webxr_compositor) is being used. Otherwise, this property's value is\n`null`. The opaque framebuffer is functionally nearly the same as a\nstandard WebGL framebuffer, except for the differences covered in the section\n[How opaque framebuffers are special](#how_opaque_framebuffers_are_special) below.",
+ "framebufferheight": "\n\nThe read-only [XRWebGLLayer] property\n**`framebufferHeight`** indicates the height of the\nframebuffer, in pixels.\n\nYou can get the width of the framebuffer using the\n[XRWebGLLayer.framebufferWidth] property.",
+ "framebufferwidth": "\n\nThe read-only [XRWebGLLayer] property\n**`framebufferWidth`** specifies the width of the framebuffer,\nin pixels.\n\nYou can get the height of the framebuffer using the\n[XRWebGLLayer.framebufferHeight] property.",
+ "getnativeframebufferscalefactor_static": "\n\nThe static method\n**`XRWebGLLayer.getNativeFramebufferScaleFactor()`** returns a\nfloating-point scaling factor by which one can multiply the specified\n[XRSession]'s resolution to get the native resolution of the WebXR\ndevice's frame buffer.\n\nThis information can be used when creating a new `XRWebGLLayer` to configure\nthe `framebufferScaleFactor` in the `layerInit` configuration object\nspecified when calling the `XRWebGLLayer()` constructor. See the\n[Usage notes](#usage_notes) and [Examples](#examples) for details.\n\nIf the scaling factor is 1.0, then the frame buffer pixels and the native display\npixels are the same size. If the scaling factor is greater than zero, then the frame\nbuffer is smaller than the display's native dimensions, resulting in the output being\nup-scaled for display to the screen after rendering into the frame buffer. If the\nscaling factor is less than zero, the frame buffer is _larger_ than the native\nresolution of the display, resulting in the frame buffer's contents being scaled down\nfor display to the XR device. This can happen for display environments which use\nsuperscaling or anti-aliasing techniques to improve perceived image quality.",
+ "getviewport": "\n\nThe [XRWebGLLayer] interface's\n**`getViewport()`** method returns the\n[XRViewport] that should be used to render the specified\n[XRView] into the WebGL layer. For WebXR devices which use a\nsingle framebuffer for both the left and right eyes, the returned viewport represents\nthe region of the framebuffer into which the scene should be rendered for the eye\nrepresented by the view.",
+ "ignoredepthvalues": "\n\nThe read-only [XRWebGLLayer] property\n**`ignoreDepthValues`** is a Boolean value which is\n`true` if the session has been configured to ignore the values in the depth\nbuffer while rendering the scene. If the depth buffer is being used to determine the\nposition of vertices, this property is `false`.\n\nThe value of `ignoreDepthValues` can only be set when the\n[XRWebGLLayer] is instantiated, by setting the corresponding value in the [constructor's](/en-US/docs/Web/API/XRWebGLLayer/XRWebGLLayer) `options` parameter."
+ }
+ },
+ "xrwebglsubimage": {
+ "docs": " \n\nThe **`XRWebGLSubImage`** interface is used during rendering of WebGL layers.\n\n",
+ "properties": {
+ "colortexture": "\n\nThe read-only **`colorTexture`** property of the [XRWebGLSubImage] interface represents the color [WebGLTexture] object for the [XRCompositionLayer] to render.",
+ "colortextureheight": "\n\nThe read-only **`colorTextureHeight`** property of the [XRWebGLSubImage] interface is a number representing the height in pixels of the GL attachment.",
+ "colortexturewidth": "\n\nThe read-only **`colorTextureWidth`** property of the [XRWebGLSubImage] interface is a number representing the width in pixels of the GL attachment.",
+ "depthstenciltexture": "\n\nThe read-only **`depthStencilTexture`** property of the [XRWebGLSubImage] interface represents the depth/stencil [WebGLTexture] object for the [XRCompositionLayer] to render.",
+ "imageindex": "\n\nThe read-only **`imageIndex`** property of the [XRWebGLSubImage] interface is a number representing the offset into the texture array if the layer was requested with `texture-array`; [`null`](/en-US/docs/Web/JavaScript/Reference/Operators/null) otherwise."
+ }
+ },
+ "xsltprocessor": {
+ "docs": "\n\nAn **`XSLTProcessor`** applies an [XSLT](/en-US/docs/Web/XSLT) stylesheet transformation to an XML document to\nproduce a new XML document as output. It has methods to load the XSLT stylesheet, to\nmanipulate `<xsl:param>` parameter values, and to apply the\ntransformation to documents.",
+ "properties": {
+ "basic_example": "\n\nThis first example demonstrates the basics of setting up an XSLT transformation in a browser.\nThe example takes an XML document that contains information about an article (title, list of authors and body text) and presents it in a human-readable form.\n\nThe XML document (**example.xml**) is shown below.\n\n```xml\n<?xml version=\"1.0\"?>\n<?xml-stylesheet type=\"text/xsl\" href=\"example.xsl\"?>\n<Article>\n <Title>My Article</Title>\n <Authors>\n <Author>Mr. Foo</Author>\n <Author>Mr. Bar</Author>\n </Authors>\n <Body>This is my article text.</Body>\n</Article>\n```\n\nThe `?xml-stylesheet` processing instruction in the XML file specifies the XSLT stylesheet to apply in its `href` attribute.\n\nThis XSL stylesheet file (**example.xsl**) is shown below:\n\n```xml\n<?xml version=\"1.0\"?>\n<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n\n <xsl:output method=\"text\"/>\n\n <xsl:template match=\"/\">\n Article - <xsl:value-of select=\"/Article/Title\"/>\n Authors: <xsl:apply-templates select=\"/Article/Authors/Author\"/>\n </xsl:template>\n\n <xsl:template match=\"Author\">\n - <xsl:value-of select=\".\" />\n </xsl:template>\n\n</xsl:stylesheet>\n```\n\nAn XSLT stylesheet starts with the `xsl:stylesheet` element, which contains all the _templates_ used to create the final output.\nThe example above has two templates - one that matches the root node and one that matches `Author` nodes.\nThe template that matches the root node outputs the article's title and then says to process all templates (via `apply-templates`) that match `Author` nodes which are children of the `Authors` node.\n\nTo try out the example:\n\n1. Create a directory in your file system and inside it create the files `example.xml` and `example.xsl` listed above\n2. [Start a local server](/en-US/docs/Learn/Common_questions/Tools_and_setup/set_up_a_local_testing_server#running_a_simple_local_http_server) in the directory containing the files.\n This allows you to browse the files in the directory as though they were hosted on the internet.\n\n > **Warning:** Opening the XML file directly from the file system will not work, because loading the stylesheet from the file system is a [cross-origin request](/en-US/docs/Web/HTTP/CORS), and will be disallowed by default.\n > Hosting the XML and stylesheet on the same local server ensures that they have the same origin.\n\n3. Open **example.xml** from the browser.\n4. The browser output is then as shown below:\n\n ```plain\n Browser Output :\n\n Article - My Article\n Authors:\n - Mr. Foo\n - Mr. Bar\n ```",
+ "clearparameters": "\n\nThe `clearParameters()` method of the [XSLTProcessor] interface removes all parameters (`<xsl:param>`) and their values from the stylesheet imported in the processor. The `XSLTProcessor` will then use the default values specified in the XSLT stylesheet.",
+ "generating_html": "\n\nOne common application of XSLT in the browser is transforming XML into HTML on the client. This example will transform the input document (example2.xml), which contains information about an article, into an HTML document.\n\nThe `<body>` element of the article now contains HTML elements (a `<b>` and `<u>` tag). The XML document contains both HTML elements and XML elements, but only one namespace is needed, namely for the XML elements. Since there is no HTML namespace, and using the XHTML namespace would force the XSL to create an XML document that would not behave like an HTML document, the `xsl:output` in the XSL Stylesheet will make sure the resulting document will be handled as HTML. For the XML elements, our own namespace is needed, `http://devedge.netscape.com/2002/de`, and it is given the prefix myNS `(xmlns:myNS=\"http://devedge.netscape.com/2002/de\")`.",
+ "getparameter": "\n\nThe `getParameter()` method of the [XSLTProcessor] interface returns the value of a parameter (`<xsl:param>`) from the stylesheet imported in the processor.",
+ "importstylesheet": "\n\nThe `importStylesheet()` method of the [XSLTProcessor] interface imports an XSLT stylesheet for the processor.",
+ "introduction": "\n\nOne noticeable trend in W3C standards has been the effort to separate content from style. This would allow the same style to be reused for multiple content, as well as simplify maintenance and allow a quick (only modify one file) way to change the look of content.\n\nCSS (Cascade Style Sheets) was one of the first ways proposed by the W3C. CSS is a simple way to apply style rules to a web document. These style rules define how the document (the content) should be laid out. However, it has several limitations, such as lack of programming structures and ability to create complex layout models. CSS also has limited support for changing the position of an element.\n\nXSL (Extensible Stylesheet Language) Transformations are composed of two parts: XSL elements, which allow the transformation of an XML tree into another markup tree and XPath, a selection language for trees. XSLT takes an XML document (the content) and creates a brand new document based on the rules in the XSL stylesheet. This allows XSLT to add, remove and reorganize elements from the original XML document and thus allows more fine-grain control of the resulting document's structure.\n\nTransformations in XSLT are based on rules that consist of templates. Each template matches (using XPath) a certain fragment of the input XML document and then applies the substitution part on that fragment to create the new resulting document.",
+ "removeparameter": "\n\nThe `removeParameter()` method of the [XSLTProcessor] interface removes the parameter (`<xsl:param>`) and its value from the stylesheet imported in the processor.",
+ "reset": "\n\nThe `reset()` method of the [XSLTProcessor] interface removes all parameters (`<xsl:param>`) and the XSLT stylesheet from the processor. The `XSLTProcessor` will then be in its original state when it was created.",
+ "setparameter": "\n\nThe `setParameter()` method of the [XSLTProcessor] interface sets the value of a parameter (`<xsl:param>`) in the stylesheet imported in the processor.",
+ "transformtodocument": "\n\nThe `transformToDocument()` method of the [XSLTProcessor] interface transforms the provided [Node] source to a [Document] using the XSLT stylesheet associated with `XSLTProcessor`.",
+ "transformtofragment": "\n\nThe `transformToFragment()` method of the [XSLTProcessor] interface transforms a provided [Node] source to a [DocumentFragment] using the XSLT stylesheet associated with the `XSLTProcessor`."
+ }
+ }
+}
diff --git a/tool/scrape_mdn.dart b/tool/scrape_mdn.dart
new file mode 100644
index 0000000..aa677f2
--- /dev/null
+++ b/tool/scrape_mdn.dart
@@ -0,0 +1,227 @@
+// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:convert';
+import 'dart:io';
+
+import 'package:path/path.dart' as p;
+
+const mdnUrl = 'https://developer.mozilla.org/en-US/docs/Web';
+const gitUrl = 'https://github.com/mdn/content.git';
+
+Future<void> main(List<String> args) async {
+ // clone the repo
+ final repoDir = Directory(p.join('.dart_tool', 'mdn_content'));
+ if (!repoDir.existsSync()) {
+ await _run(
+ 'git',
+ [
+ 'clone',
+ '--depth=1',
+ gitUrl,
+ p.basename(repoDir.path),
+ ],
+ cwd: repoDir.parent,
+ );
+ } else {
+ await _run('git', ['pull'], cwd: repoDir);
+ }
+
+ print('');
+
+ final interfaces = <InterfaceInfo>[];
+
+ final apiDir =
+ Directory(p.join(repoDir.path, 'files', 'en-us', 'web', 'api'));
+ for (final dir in apiDir.listSync().whereType<Directory>()) {
+ final interfaceIndex = File(p.join(dir.path, 'index.md'));
+ if (!interfaceIndex.existsSync()) continue;
+
+ final docs = interfaceIndex.readAsStringSync();
+ if (!docs.contains('page-type: web-api-interface')) {
+ continue;
+ }
+
+ final info = InterfaceInfo(name: p.basename(dir.path));
+ info.docs = convertMdnToMarkdown(interfaceIndex.readAsStringSync());
+ interfaces.add(info);
+
+ for (final child in dir.listSync().whereType<Directory>()) {
+ final propertyIndex = File(p.join(child.path, 'index.md'));
+ if (!propertyIndex.existsSync()) continue;
+
+ final property = Property(name: p.basename(child.path));
+ if (property.name != info.name) {
+ property.docs = convertMdnToMarkdown(propertyIndex.readAsStringSync());
+ info.properties.add(property);
+ }
+ }
+
+ info.properties.sort();
+ }
+
+ interfaces.sort();
+
+ print('${interfaces.length} items read from $gitUrl.');
+
+ const encoder = JsonEncoder.withIndent(' ');
+
+ final file = File('tool/mdn.json');
+ final json = {
+ '__meta__': {
+ 'source': '[MDN Web Docs]($mdnUrl)',
+ 'license':
+ '[CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/)',
+ },
+ for (var i in interfaces) i.name: i.asJson,
+ };
+ file.writeAsStringSync('${encoder.convert(json)}\n');
+
+ print('');
+ print('Wrote ${file.lengthSync()} bytes to ${file.path}.');
+}
+
+class InterfaceInfo implements Comparable<InterfaceInfo> {
+ final String name;
+ late final String docs;
+
+ final List<Property> properties = [];
+
+ InterfaceInfo({required this.name});
+
+ Map<String, dynamic> get asJson => {
+ 'docs': docs,
+ if (properties.isNotEmpty)
+ 'properties': {for (var p in properties) p.name: p.docs},
+ };
+
+ @override
+ int compareTo(InterfaceInfo other) => name.compareTo(other.name);
+}
+
+class Property implements Comparable<Property> {
+ final String name;
+ late final String docs;
+
+ Property({required this.name});
+
+ @override
+ int compareTo(Property other) => name.compareTo(other.name);
+}
+
+final RegExp _xrefRegex =
+ RegExp(r'''{{\s*(\w+)\(([\w\., \n/\*"'\(\)]+)\)\s*}}''');
+final RegExp _mustacheRegex = RegExp(r'''{{\s*([\S ]+?)\s*}}''');
+
+String convertMdnToMarkdown(String content) {
+ var lines = content.split('\n');
+
+ // remove the front matter
+ if (lines.first.startsWith('---')) {
+ lines.removeUntil((line) => line == '---');
+ lines.removeUntil((line) => line == '---');
+ }
+
+ // remove everything after the first section
+ // TODO: handle cases where the first line is a section header
+ final index = lines.indexWhere((line) => line.startsWith('## '));
+ if (index != -1) {
+ lines = lines.sublist(0, index);
+ }
+
+ // remove leading and trailing blank lines
+ lines.removeWhile((line) => line.isEmpty);
+ while (lines.isNotEmpty && lines.last.isEmpty) {
+ lines.removeLast();
+ }
+
+ var text = lines.join('\n');
+
+ // Convert {{jsxref("Promise")}} to code references and
+ // {{domxref("BluetoothRemote")}} to symbol references.
+ text = text.replaceAllMapped(_xrefRegex, (match) {
+ final type = match.group(1)!.toLowerCase();
+ if (type == 'apiref' || type == 'glossary' || type == 'svgelement') {
+ return '';
+ }
+
+ var content = match.group(2)!;
+ if (type == 'jsxref' ||
+ type == 'htmlelement' ||
+ type == 'svgattr' ||
+ type == 'cssxref') {
+ content = _stripQuotes(content.split(',').last);
+ return '`$content`';
+ } else if (type == 'domxref') {
+ content = content.split(',').first.trim();
+ content = _stripQuotes(content);
+ if (content.endsWith('()')) {
+ content = content.substring(0, content.length - 2);
+ }
+ return '[$content]';
+ } else {
+ content = _stripQuotes(content);
+ return '`$content`';
+ }
+ });
+
+ // Remove additional mustache-like directives ({{InheritanceDiagram}}, ...).
+ text = text.replaceAllMapped(_mustacheRegex, (match) => '');
+
+ // Replace multiple blank lines by 2 blank lines.
+ text = text.replaceAll(RegExp('\n\n\n+'), '\n\n');
+
+ return text;
+}
+
+String _stripQuotes(String value) {
+ value = value.trim();
+ if (value.startsWith("'") && value.endsWith("'")) {
+ return value.substring(1, value.length - 1);
+ } else if (value.startsWith('"') && value.endsWith('"')) {
+ return value.substring(1, value.length - 1);
+ }
+ return value;
+}
+
+extension ListExtension on List<String> {
+ void removeUntil(bool Function(String) fn) {
+ while (true) {
+ if (fn(first)) {
+ removeAt(0);
+ return;
+ } else {
+ removeAt(0);
+ }
+ }
+ }
+
+ void removeWhile(bool Function(String) fn) {
+ if (isEmpty) return;
+
+ while (!isEmpty && fn(first)) {
+ removeAt(0);
+ }
+ }
+}
+
+Future<void> _run(
+ String command,
+ List<String> args, {
+ required Directory cwd,
+}) async {
+ print('$command ${args.join(' ')} [${cwd.path}]');
+
+ final result = await Process.start(
+ command,
+ args,
+ workingDirectory: cwd.path,
+ mode: ProcessStartMode.inheritStdio,
+ );
+
+ final code = await result.exitCode;
+ if (code != 0) {
+ throw Exception('process exited with code $code');
+ }
+}