From 2b806e6e71cd950d556beae8d0f8afcdb921e02a Mon Sep 17 00:00:00 2001 From: Kevin Moore Date: Tue, 25 Feb 2025 12:03:54 -0800 Subject: [PATCH] Update APIs and docs --- third_party/mdn/mdn.json | 4263 +++++++++------ web/lib/src/dom.dart | 9 +- web/lib/src/dom/angle_instanced_arrays.dart | 24 +- web/lib/src/dom/battery_status.dart | 8 +- web/lib/src/dom/clipboard_apis.dart | 35 +- web/lib/src/dom/console.dart | 8 +- web/lib/src/dom/cookie_store.dart | 31 +- web/lib/src/dom/credential_management.dart | 71 +- web/lib/src/dom/csp.dart | 289 +- web/lib/src/dom/css_animations.dart | 20 +- web/lib/src/dom/css_cascade.dart | 4 +- web/lib/src/dom/css_conditional.dart | 8 +- web/lib/src/dom/css_contain.dart | 8 +- web/lib/src/dom/css_counter_styles.dart | 2 +- web/lib/src/dom/css_font_loading.dart | 15 +- web/lib/src/dom/css_fonts.dart | 23 +- web/lib/src/dom/css_fonts_5.dart | 33 + web/lib/src/dom/css_masking.dart | 35 +- web/lib/src/dom/css_nesting.dart | 42 + web/lib/src/dom/css_paint_api.dart | 36 + web/lib/src/dom/css_typed_om.dart | 17 +- web/lib/src/dom/css_view_transitions.dart | 13 +- web/lib/src/dom/css_view_transitions_2.dart | 13 +- web/lib/src/dom/cssom.dart | 216 +- web/lib/src/dom/cssom_view.dart | 35 +- ...entities.dart => digital_credentials.dart} | 16 +- web/lib/src/dom/dom.dart | 819 +-- web/lib/src/dom/dom_parsing.dart | 3 + web/lib/src/dom/encrypted_media.dart | 40 +- web/lib/src/dom/entries_api.dart | 15 +- web/lib/src/dom/ext_disjoint_timer_query.dart | 2 +- web/lib/src/dom/fedcm.dart | 22 + web/lib/src/dom/fetch.dart | 133 +- web/lib/src/dom/fileapi.dart | 65 +- web/lib/src/dom/filter_effects.dart | 1528 ++++++ web/lib/src/dom/fs.dart | 37 +- web/lib/src/dom/gamepad.dart | 52 +- web/lib/src/dom/geolocation.dart | 27 +- web/lib/src/dom/geometry.dart | 307 +- web/lib/src/dom/hr_time.dart | 40 +- web/lib/src/dom/html.dart | 4685 +++++++++++++---- web/lib/src/dom/image_capture.dart | 77 + web/lib/src/dom/indexeddb.dart | 46 +- web/lib/src/dom/intersection_observer.dart | 12 +- web/lib/src/dom/mathml_core.dart | 5 +- web/lib/src/dom/media_capabilities.dart | 46 +- web/lib/src/dom/media_source.dart | 61 + web/lib/src/dom/mediacapture_streams.dart | 44 +- web/lib/src/dom/mediacapture_transform.dart | 5 +- web/lib/src/dom/mediasession.dart | 34 +- web/lib/src/dom/mediastream_recording.dart | 12 +- web/lib/src/dom/navigation_timing.dart | 90 +- web/lib/src/dom/notifications.dart | 20 +- web/lib/src/dom/oes_draw_buffers_indexed.dart | 4 +- web/lib/src/dom/oes_vertex_array_object.dart | 2 +- web/lib/src/dom/orientation_event.dart | 17 +- web/lib/src/dom/payment_request.dart | 156 +- web/lib/src/dom/performance_timeline.dart | 10 +- web/lib/src/dom/permissions.dart | 31 +- web/lib/src/dom/picture_in_picture.dart | 4 +- web/lib/src/dom/pointerevents.dart | 78 +- web/lib/src/dom/push_api.dart | 34 +- web/lib/src/dom/resize_observer.dart | 33 +- web/lib/src/dom/resource_timing.dart | 22 +- web/lib/src/dom/saa_non_cookie_storage.dart | 20 +- web/lib/src/dom/sanitizer_api.dart | 104 - web/lib/src/dom/scheduling_apis.dart | 9 +- web/lib/src/dom/screen_orientation.dart | 4 +- web/lib/src/dom/screen_wake_lock.dart | 4 +- web/lib/src/dom/scroll_to_text_fragment.dart | 28 + web/lib/src/dom/selection_api.dart | 45 +- web/lib/src/dom/service_workers.dart | 161 +- web/lib/src/dom/speech_api.dart | 25 +- web/lib/src/dom/storage.dart | 3 +- web/lib/src/dom/streams.dart | 46 +- web/lib/src/dom/svg.dart | 1514 +++++- web/lib/src/dom/svg_animations.dart | 79 +- web/lib/src/dom/touch_events.dart | 28 +- web/lib/src/dom/trusted_types.dart | 28 +- web/lib/src/dom/uievents.dart | 179 +- web/lib/src/dom/url.dart | 195 +- web/lib/src/dom/user_timing.dart | 4 +- web/lib/src/dom/web_animations.dart | 53 +- web/lib/src/dom/web_bluetooth.dart | 6 +- web/lib/src/dom/webaudio.dart | 239 +- web/lib/src/dom/webauthn.dart | 258 +- web/lib/src/dom/webcodecs.dart | 639 ++- .../dom/webcodecs_aac_codec_registration.dart | 24 + .../webcodecs_flac_codec_registration.dart | 28 + .../webcodecs_opus_codec_registration.dart | 49 + web/lib/src/dom/webcryptoapi.dart | 99 +- web/lib/src/dom/webgl1.dart | 67 +- web/lib/src/dom/webgl2.dart | 96 +- web/lib/src/dom/webidl.dart | 7 +- web/lib/src/dom/webmidi.dart | 13 +- web/lib/src/dom/webrtc.dart | 125 +- web/lib/src/dom/webrtc_encoded_transform.dart | 14 +- web/lib/src/dom/websockets.dart | 25 +- web/lib/src/dom/webtransport.dart | 3 + web/lib/src/dom/webvtt.dart | 17 +- web/lib/src/dom/webxr.dart | 34 +- web/lib/src/dom/xhr.dart | 69 +- web_generator/README.md | 6 +- web_generator/lib/src/package-lock.json | 54 +- 104 files changed, 13666 insertions(+), 4627 deletions(-) create mode 100644 web/lib/src/dom/css_fonts_5.dart create mode 100644 web/lib/src/dom/css_nesting.dart rename web/lib/src/dom/{digital_identities.dart => digital_credentials.dart} (67%) delete mode 100644 web/lib/src/dom/sanitizer_api.dart create mode 100644 web/lib/src/dom/scroll_to_text_fragment.dart create mode 100644 web/lib/src/dom/webcodecs_aac_codec_registration.dart create mode 100644 web/lib/src/dom/webcodecs_flac_codec_registration.dart create mode 100644 web/lib/src/dom/webcodecs_opus_codec_registration.dart diff --git a/third_party/mdn/mdn.json b/third_party/mdn/mdn.json index 33d64c7a..b9ec5eb4 100644 --- a/third_party/mdn/mdn.json +++ b/third_party/mdn/mdn.json @@ -4,17 +4,17 @@ "license": "[CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/)" }, "ANGLE_instanced_arrays": { - "docs": "The **`ANGLE_instanced_arrays`** extension is part of the [WebGL API](https://developer.mozilla.org/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](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Using_Extensions) in the [WebGL tutorial](https://developer.mozilla.org/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.", + "docs": "The **`ANGLE_instanced_arrays`** extension is part of the [WebGL API](https://developer.mozilla.org/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](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Using_Extensions) in the [WebGL tutorial](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Tutorial).\n\n> [!NOTE]\n> 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": "The **`ANGLE_instanced_arrays.drawArraysInstancedANGLE()`** method of the [WebGL API](https://developer.mozilla.org/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": "The **`ANGLE_instanced_arrays.drawElementsInstancedANGLE()`** method of the [WebGL API](https://developer.mozilla.org/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": "The **ANGLE_instanced_arrays.vertexAttribDivisorANGLE()** method of the [WebGL API](https://developer.mozilla.org/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." + "drawarraysinstancedangle": "The **`ANGLE_instanced_arrays.drawArraysInstancedANGLE()`** method of the [WebGL API](https://developer.mozilla.org/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]\n> When using [WebGL2RenderingContext], this method is available as [WebGL2RenderingContext.drawArraysInstanced] by default.", + "drawelementsinstancedangle": "The **`ANGLE_instanced_arrays.drawElementsInstancedANGLE()`** method of the [WebGL API](https://developer.mozilla.org/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]\n> When using [WebGL2RenderingContext], this method is available as [WebGL2RenderingContext.drawElementsInstanced] by default.", + "vertexattribdivisorangle": "The **ANGLE_instanced_arrays.vertexAttribDivisorANGLE()** method of the [WebGL API](https://developer.mozilla.org/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]\n> When using [WebGL2RenderingContext], this method is available as [WebGL2RenderingContext.vertexAttribDivisor] by default." } }, "AbortController": { "docs": "The **`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 an asynchronous operation is done using an [AbortSignal] object.", "properties": { - "abort": "The **`abort()`** method of the [AbortController] interface aborts an asynchronous operation before it has completed.\nThis is able to abort [fetch requests](https://developer.mozilla.org/en-US/docs/Web/API/fetch), the consumption of any response bodies, or streams.", + "abort": "The **`abort()`** method of the [AbortController] interface aborts an asynchronous operation before it has completed.\nThis is able to abort [fetch requests](https://developer.mozilla.org/en-US/docs/Web/API/Window/fetch), the consumption of any response bodies, or streams.", "abortcontroller": "The **`AbortController()`** constructor creates a new [AbortController] object instance.", "signal": "The **`signal`** read-only property of the [AbortController] interface returns an [AbortSignal] object instance, which can be used to communicate with/abort an asynchronous operation as desired." } @@ -23,12 +23,12 @@ "docs": "The **`AbortSignal`** interface represents a signal object that allows you to communicate with an asynchronous operation (such as a fetch request) and abort it if required via an [AbortController] object.", "properties": { "abort_event": "The **`abort`** event of the [AbortSignal] is fired when the associated request is aborted, i.e. using [AbortController.abort].", - "abort_static": "The **`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`.", + "abort_static": "The **`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]\n> The method is similar in purpose to `Promise.reject`.", "aborted": "The **`aborted`** read-only property returns a value that indicates whether the asynchronous operations the signal is communicating with are aborted (`true`) or not (`false`).", "any_static": "The **`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 given abort signals are already aborted then so will be the returned [AbortSignal].", "reason": "The **`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": "The **`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`](https://developer.mozilla.org/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": "The **`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]." + "timeout_static": "The **`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.\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": { @@ -38,7 +38,7 @@ } }, "AbstractRange": { - "docs": "The **`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.", + "docs": "The **`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]\n> 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.", "properties": { "collapsed": "The read-only **`collapsed`** property of the [AbstractRange] interface returns `true` if the range's start position and end position are the same.", "endcontainer": "The read-only **`endContainer`** property of the [AbstractRange] interface returns the [Node] in which the end of the range is located.", @@ -60,7 +60,7 @@ "docs": "The **`AesCbcParams`** dictionary of the [Web Crypto API](https://developer.mozilla.org/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": "The **`AesCtrParams`** dictionary of the [Web Crypto API](https://developer.mozilla.org/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." + "docs": "The **`AesCtrParams`** dictionary of the [Web Crypto API](https://developer.mozilla.org/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]\n> 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": "The **`AesGcmParams`** dictionary of the [Web Crypto API](https://developer.mozilla.org/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." @@ -83,7 +83,7 @@ "frequencybincount": "The **`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": "The **`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": "The **`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": "The **`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`.", + "getfloatfrequencydata": "The **`getFloatFrequencyData()`** method of the [AnalyserNode] Interface copies the current frequency data into a `Float32Array` array passed into it.\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": "The **`getFloatTimeDomainData()`** method of the [AnalyserNode] Interface copies the current waveform, or time-domain, data into a `Float32Array` array passed into it. Each array value is a _sample_, the magnitude of the signal at a particular time.", "maxdecibels": "The **`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": "The **`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()`.", @@ -94,22 +94,23 @@ "docs": "The **`Animation`** interface of the [Web Animations API](https://developer.mozilla.org/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.", "properties": { "animation": "The **`Animation()`** constructor of the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API) returns a new `Animation` object instance.", - "cancel": "The 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": "The **`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": "The `commitStyles()` method of the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API)'s [Animation] interface writes the [computed values](https://developer.mozilla.org/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.", + "cancel": "The 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]\n> When an animation is cancelled, its [Animation.startTime] and [Animation.currentTime] are set to `null`.", + "cancel_event": "The **`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]\n> Creating a new animation that is initially idle does not trigger a `cancel` event on the new animation.", + "commitstyles": "The `commitStyles()` method of the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API)'s [Animation] interface writes the [computed values](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_cascade/computed_value) of the animation's current styles into its target element's [`style`](https://developer.mozilla.org/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/CSS_cascade/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`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/style) attribute, where they can be modified and replaced as normal.", "currenttime": "The **`Animation.currentTime`** property of the [Web Animations API](https://developer.mozilla.org/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": "The **`Animation.effect`** property of the [Web Animations API](https://developer.mozilla.org/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": "The **`finish()`** method of the [Web Animations API](https://developer.mozilla.org/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": "The **`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": "The **`Animation.finished`** read-only property of the [Web Animations API](https://developer.mozilla.org/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.", + "finish_event": "The **`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]\n> 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": "The **`Animation.finished`** read-only property of the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API) returns a `Promise` which resolves once the animation has finished playing.\n\n> [!NOTE]\n> 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": "The **`Animation.id`** property of the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API) returns or sets a string used to identify the animation.", + "overallprogress": "The **`overallProgress`** read-only property of the [Animation] interface returns a number between `0` and `1` indicating the animation's overall progress towards its finished state. This is the overall progress across all of the animation's iterations, not each individual iteration.\n\n`overallProgress` works consistently across all animations, regardless of the type of [AnimationTimeline].", "pause": "The **`pause()`** method of the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API)'s [Animation] interface suspends playback of the animation.", "pending": "The read-only **`Animation.pending`** property of the [Web Animations API](https://developer.mozilla.org/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": "The `persist()` method of the [Web Animations API](https://developer.mozilla.org/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": "The **`play()`** method of the [Web Animations API](https://developer.mozilla.org/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": "The **`Animation.playbackRate`** property of the [Web Animations API](https://developer.mozilla.org/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": "The read-only **`Animation.playState`** property of the [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API) returns an enumerated value describing the playback state of an animation.", - "ready": "The read-only **`Animation.ready`** property of the [Web Animations API](https://developer.mozilla.org/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](https://developer.mozilla.org/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.", + "ready": "The read-only **`Animation.ready`** property of the [Web Animations API](https://developer.mozilla.org/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](https://developer.mozilla.org/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]\n> 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": "The **`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": "The read-only **`Animation.replaceState`** property of the [Web Animations API](https://developer.mozilla.org/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": "The **`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.", @@ -121,8 +122,8 @@ "AnimationEffect": { "docs": "The `AnimationEffect` interface of the [Web Animations API](https://developer.mozilla.org/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](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animations) and [Transitions](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_transitions).", "properties": { - "getcomputedtiming": "The `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": "The `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.", + "getcomputedtiming": "The `getComputedTiming()` method of the [AnimationEffect] interface returns the calculated timing properties for this animation effect.\n\n> [!NOTE]\n> These values are comparable to the computed styles of an Element returned using `window.getComputedStyle(elem)`.", + "gettiming": "The `AnimationEffect.getTiming()` method of the [AnimationEffect] interface returns an object containing the timing properties for the Animation Effect.\n\n> [!NOTE]\n> 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": "The `updateTiming()` method of the [AnimationEffect] interface updates the specified timing properties for an animation effect." } }, @@ -150,19 +151,19 @@ } }, "Attr": { - "docs": "The **`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 some cases may require interacting with `Attr` instances (e.g., [Element.getAttributeNode]).\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.)", + "docs": "The **`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 some cases may require interacting with `Attr` instances (e.g., [Element.getAttributeNode]).\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]\n> 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": "The 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.", + "localname": "The 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]\n> 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": "The 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": "The 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.", + "namespaceuri": "The 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]\n> 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": "The read-only **`ownerElement`** property of the [Attr] interface returns the [Element] the attribute belongs to.", - "prefix": "The 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.", + "prefix": "The 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]\n> 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": "The read-only **`specified`** property of the [Attr] interface always returns `true`.", "value": "The **`value`** property of the [Attr] interface contains the value of the attribute." } }, "AudioBuffer": { - "docs": "The **`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.", + "docs": "The **`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": { "audiobuffer": "The **`AudioBuffer`** constructor of\nthe [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API) creates a new\n[AudioBuffer] object.", "copyfromchannel": "The\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`.", @@ -191,7 +192,7 @@ "docs": "The `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.", "properties": { "audiocontext": "The **`AudioContext()`** constructor\ncreates a new [AudioContext] object which represents an audio-processing\ngraph, built from audio modules linked together, each represented by an\n[AudioNode].", - "baselatency": "The **`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.", + "baselatency": "The **`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]\n> You can request a certain latency during\n> [AudioContext.AudioContext] with the\n> `latencyHint` option, but the browser may ignore the option.", "close": "The `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": "The `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": "The `createMediaStreamDestination()` method of the [AudioContext] Interface is used to create a new [MediaStreamAudioDestinationNode] object associated with a [WebRTC](https://developer.mozilla.org/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.", @@ -219,7 +220,7 @@ "numberofchannels": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`numberOfChannels`** read-only property of the [AudioData] interface returns the number of channels in the `AudioData` object.", "numberofframes": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`numberOfFrames`** read-only property of the [AudioData] interface returns the number of frames in the `AudioData` object.", "samplerate": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`sampleRate`** read-only property of the [AudioData] interface returns the sample rate in Hz.", - "timestamp": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`duration`** read-only property of the [AudioData] interface returns the timestamp of this `AudioData` object." + "timestamp": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`timestamp`** read-only property of the [AudioData] interface returns the timestamp of this `AudioData` object." } }, "AudioDecoder": { @@ -230,7 +231,7 @@ "configure": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`configure()`** method of the [AudioDecoder] interface enqueues a control message to configure the audio decoder for decoding chunks.", "decode": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`decode()`** method of the [AudioDecoder] interface enqueues a control message to decode a given chunk of audio.", "decodequeuesize": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`decodeQueueSize`** read-only property of the [AudioDecoder] interface returns the number of pending decode requests in the queue.", - "dequeue_event": "@AvailableInWorkers(\"window_and_dedicated\")\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.", + "dequeue_event": "@AvailableInWorkers(\"window_and_dedicated\")\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 [Window.setTimeout] poll to determine when the queue has decreased, and more work should be queued up.", "flush": "@AvailableInWorkers(\"window_and_dedicated\")\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": "@AvailableInWorkers(\"window_and_dedicated\")\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": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`reset()`** method of the [AudioDecoder] interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.", @@ -240,7 +241,7 @@ "AudioDestinationNode": { "docs": "The `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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Number of inputs1
Number of outputs0
Channel count mode\"explicit\"
Channel count2
Channel interpretation\"speakers\"
", "properties": { - "maxchannelcount": "The `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." + "maxchannelcount": "The `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": { @@ -249,7 +250,7 @@ "audioencoder": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`AudioEncoder()`** constructor creates a new [AudioEncoder] object with the provided `init.output` callback assigned as the output callback, the provided `init.error` callback as the error callback, and the [AudioEncoder.state] set to `\"unconfigured\"`.", "close": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`close()`** method of the [AudioEncoder] interface ends all pending work and releases system resources.", "configure": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`configure()`** method of the [AudioEncoder] interface enqueues a control message to configure the audio encoder for encoding chunks.", - "dequeue_event": "@AvailableInWorkers(\"window_and_dedicated\")\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.", + "dequeue_event": "@AvailableInWorkers(\"window_and_dedicated\")\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 [Window.setTimeout] poll to determine when the queue has decreased, and more work should be queued up.", "encode": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`encode()`** method of the [AudioEncoder] interface enqueues a control message to encode a given [AudioData] object.", "encodequeuesize": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`encodeQueueSize`** read-only property of the [AudioEncoder] interface returns the number of pending encode requests in the queue.", "flush": "@AvailableInWorkers(\"window_and_dedicated\")\n\nThe **`flush()`** method of the [AudioEncoder] interface returns a Promise that resolves once all pending messages in the queue have been completed.", @@ -261,21 +262,21 @@ "AudioListener": { "docs": "The `AudioListener` interface represents the position and orientation of the unique person listening to the audio scene, and is used in [audio spatialization](https://developer.mozilla.org/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![We see the position, up and front vectors of an AudioListener, with the up and front vectors at 90° from the other.](webaudiolistenerreduced.png)", "properties": { - "forwardx": "The `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": "The `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": "The `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": "The `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_](/en-US/docs/Web/API/AudioParam#a-rate) when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or [_k-rate_](/en-US/docs/Web/API/AudioParam#k-rate) otherwise.", - "positiony": "The `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_](/en-US/docs/Web/API/AudioParam#a-rate) when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or [_k-rate_](/en-US/docs/Web/API/AudioParam#k-rate) otherwise.", - "positionz": "The `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_](/en-US/docs/Web/API/AudioParam#a-rate) when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or [_k-rate_](/en-US/docs/Web/API/AudioParam#k-rate) otherwise.", + "forwardx": "The `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]\n> The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.", + "forwardy": "The `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]\n> The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.", + "forwardz": "The `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]\n> The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.", + "positionx": "The `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]\n> The parameter is [_a-rate_](/en-US/docs/Web/API/AudioParam#a-rate) when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or [_k-rate_](/en-US/docs/Web/API/AudioParam#k-rate) otherwise.", + "positiony": "The `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]\n> The parameter is [_a-rate_](/en-US/docs/Web/API/AudioParam#a-rate) when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or [_k-rate_](/en-US/docs/Web/API/AudioParam#k-rate) otherwise.", + "positionz": "The `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]\n> The parameter is [_a-rate_](/en-US/docs/Web/API/AudioParam#a-rate) when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or [_k-rate_](/en-US/docs/Web/API/AudioParam#k-rate) otherwise.", "setorientation": "The `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": "The `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": "The `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": "The `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": "The `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." + "setposition": "The `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]\n> As this method is deprecated, use the three [AudioListener.positionX], [AudioListener.positionY], and [AudioListener.positionZ] properties instead.", + "upx": "The `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]\n> The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.", + "upy": "The `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]\n> The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise.", + "upz": "The `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]\n> The parameter is _a-rate_ when used with a [PannerNode] whose [PannerNode.panningModel] is set to equalpower, or _k-rate_ otherwise." } }, "AudioNode": { - "docs": "The **`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.", + "docs": "The **`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]\n> An `AudioNode` can be target of events, therefore it implements the [EventTarget] interface.", "properties": { "channelcount": "The **`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": "The `channelCountMode` property of the [AudioNode] interface represents an enumerated value describing the way channels must be matched between the node's inputs and outputs.", @@ -293,14 +294,14 @@ "cancelandholdattime": "The **`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": "The `cancelScheduledValues()` method of the [AudioParam]\nInterface cancels all scheduled future changes to the `AudioParam`.", "defaultvalue": "The **`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": "The **`exponentialRampToValueAtTime()`** method of the [AudioParam] Interface schedules a gradual exponential change in the value of the [AudioParam].\nThe change starts at the time specified for the _previous_ event, follows an exponential ramp to the new value given in the `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.", + "exponentialramptovalueattime": "The **`exponentialRampToValueAtTime()`** method of the [AudioParam] Interface schedules a gradual exponential change in the value of the [AudioParam].\nThe change starts at the time specified for the _previous_ event, follows an exponential ramp to the new value given in the `value` parameter, and reaches the new value at the time given in the\n`endTime` parameter.\n\n> [!NOTE]\n> 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": "The `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": "The **`maxValue`**\nread-only property of the [AudioParam] interface represents the maximum\npossible value for the parameter's nominal (effective) range.", "minvalue": "The **`minValue`**\nread-only property of the [AudioParam] interface represents the minimum\npossible value for the parameter's nominal (effective) range.", "settargetattime": "The `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": "The `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": "The\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": "The [Web Audio API's](https://developer.mozilla.org/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." + "value": "The **`value`** property of the [AudioParam] interface gets or sets the value of this `AudioParam` at the current time.\nInitially, the value is set to [AudioParam.defaultValue].\n\nSetting `value` has the same effect as calling [AudioParam.setValueAtTime] with the time returned by the `AudioContext`'s [BaseAudioContext.currentTime] property." } }, "AudioParamDescriptor": { @@ -310,20 +311,20 @@ "docs": "The **`AudioParamMap`** interface of the [Web Audio API](https://developer.mozilla.org/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": "The `AudioProcessingEvent` interface of the [Web Audio API](https://developer.mozilla.org/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`](https://developer.mozilla.org/en-US/docs/Web/API/AudioWorklet).", + "docs": "The `AudioProcessingEvent` interface of the [Web Audio API](https://developer.mozilla.org/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]\n> This feature has been deprecated and should be replaced by an [`AudioWorklet`](https://developer.mozilla.org/en-US/docs/Web/API/AudioWorklet).", "properties": { - "audioprocessingevent": "The **`AudioProcessingEvent()`** constructor creates a new [AudioProcessingEvent] object.\n\n> **Note:** Usually, this constructor is not directly called by your code, as the browser creates these objects itself and provides them to the event handler.", + "audioprocessingevent": "The **`AudioProcessingEvent()`** constructor creates a new [AudioProcessingEvent] object.\n\n> [!NOTE]\n> Usually, this constructor is not directly called by your code, as the browser creates these objects itself and provides them to the event handler.", "inputbuffer": "The **`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": "The **`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": "The **`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": "The `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).", + "docs": "The `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]\n> 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).", "properties": { "ended_event": "The `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": "The `start()` method on [AudioScheduledSourceNode] schedules a sound to begin playback at the specified time.\nIf no time is specified, then the sound begins playing immediately.", - "stop": "The `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." + "stop": "The `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]\n> If a scheduled stop time occurs before the node's scheduled\n> start time, the node never starts to play." } }, "AudioSinkInfo": { @@ -366,11 +367,11 @@ } }, "AudioWorkletNode": { - "docs": "> **Note:** Although the interface is available outside [secure contexts](https://developer.mozilla.org/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](https://developer.mozilla.org/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.", + "docs": "> [!NOTE]\n> Although the interface is available outside [secure contexts](https://developer.mozilla.org/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](https://developer.mozilla.org/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.", "properties": { "audioworkletnode": "The **`AudioWorkletNode()`**\nconstructor creates a new [AudioWorkletNode] object, which represents an\n[AudioNode] that uses a JavaScript function to perform custom audio\nprocessing.", "parameters": "The 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": "The 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.", + "port": "The 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]\n> The port at the other end of the channel is\n> available under the [AudioWorkletProcessor.port] property of the\n> processor.", "processorerror_event": "The `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." } }, @@ -379,12 +380,12 @@ "properties": { "audioworkletprocessor": "The **`AudioWorkletProcessor()`**\nconstructor creates a new [AudioWorkletProcessor] object, which\nrepresents an underlying audio processing mechanism of an\n[AudioWorkletNode].", "parameterdescriptors": "The 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": "The 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": "The **`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." + "port": "The 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]\n> The port at the other end of the channel is\n> available under the [AudioWorkletNode.port] property of the node.", + "process": "The **`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]\n> 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": "The **`AuthenticatorAssertionResponse`** interface of the [Web Authentication API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API) contains a [digital signature](https://developer.mozilla.org/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.", + "docs": "The **`AuthenticatorAssertionResponse`** interface of the [Web Authentication API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API) contains a [digital signature](https://developer.mozilla.org/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]\n> This interface is restricted to top-level contexts. Use from within an `iframe` element will not have any effect.", "properties": { "authenticatordata": "The **`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": "The **`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.", @@ -392,9 +393,9 @@ } }, "AuthenticatorAttestationResponse": { - "docs": "The **`AuthenticatorAttestationResponse`** interface of the [Web Authentication API](https://developer.mozilla.org/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.", + "docs": "The **`AuthenticatorAttestationResponse`** interface of the [Web Authentication API](https://developer.mozilla.org/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]\n> This interface is restricted to top-level contexts. Use of its features from within an `iframe` element will not have any effect.", "properties": { - "attestationobject": "The **`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).", + "attestationobject": "The **`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 key pair as well as an `attestationObject` for that key pair. 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": "The **`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": "The **`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": "The **`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]).", @@ -404,7 +405,7 @@ "AuthenticatorResponse": { "docs": "The **`AuthenticatorResponse`** interface of the [Web Authentication API](https://developer.mozilla.org/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": "The **`clientDataJSON`** property of the [AuthenticatorResponse] interface stores a [JSON](https://developer.mozilla.org/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]." + "clientdatajson": "The **`clientDataJSON`** property of the [AuthenticatorResponse] interface stores a [JSON](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/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": { @@ -454,7 +455,7 @@ } }, "BarProp": { - "docs": "The **`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.", + "docs": "The **`BarProp`** interface of the [Document Object Model](https://developer.mozilla.org/en-US/docs/Web/API/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": "The **`visible`** read-only property of the [BarProp] interface returns `true` if the user interface element it represents is visible." } @@ -471,26 +472,26 @@ "docs": "The `BaseAudioContext` interface of the [Web Audio API](https://developer.mozilla.org/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.", "properties": { "audioworklet": "The `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": "The `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": "The `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": "The `createBuffer()` method of the [BaseAudioContext]\nInterface is used to create a new, empty [AudioBuffer] object, which\ncan then be populated by data, and played via an [AudioBufferSourceNode].\n\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": "The `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.\n[AudioBuffer]s are created using [BaseAudioContext.createBuffer] or returned by [BaseAudioContext.decodeAudioData] when it successfully decodes an audio track.\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": "The `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": "The `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": "The **`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": "The `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": "The `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": "The `createDynamicsCompressor()` method of the [BaseAudioContext] Interface is used to create a [DynamicsCompressorNode], which can be used to apply compression to an audio 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": "The `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": "The **`createIIRFilter()`** method of the [BaseAudioContext] interface creates an [IIRFilterNode], which 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 of 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": "The `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": "The `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": "The `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": "The `createScriptProcessor()` method of the [BaseAudioContext] interface\ncreates a [ScriptProcessorNode] used for direct audio processing.\n\n> **Note:** This feature was replaced by [AudioWorklets](https://developer.mozilla.org/en-US/docs/Web/API/AudioWorklet) and the [AudioWorkletNode] interface.", - "createstereopanner": "The `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": "The `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).", + "createanalyser": "The `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]\n> 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]\n> For more on using this node, see the\n> [AnalyserNode] page.", + "createbiquadfilter": "The `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]\n> 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": "The `createBuffer()` method of the [BaseAudioContext]\nInterface is used to create a new, empty [AudioBuffer] object, which\ncan then be populated by data, and played via an [AudioBufferSourceNode].\n\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.\n\nFor an in-depth explanation of how audio buffers work, including what the parameters do, read [Audio buffers: frames, samples and channels](/en-US/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#audio_buffers_frames_samples_and_channels) from our Basic concepts guide.", + "createbuffersource": "The `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.\n[AudioBuffer]s are created using [BaseAudioContext.createBuffer] or returned by [BaseAudioContext.decodeAudioData] when it successfully decodes an audio track.\n\n> [!NOTE]\n> 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": "The `createChannelMerger()` method of the [BaseAudioContext] interface creates a [ChannelMergerNode],\nwhich combines channels from multiple audio streams into a single audio stream.\n\n> [!NOTE]\n> 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": "The `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]\n> 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": "The **`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]\n> 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": "The `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]\n> 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": "The `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]\n> 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": "The `createDynamicsCompressor()` method of the [BaseAudioContext] Interface is used to create a [DynamicsCompressorNode], which can be used to apply compression to an audio 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]\n> 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": "The `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]\n> 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": "The **`createIIRFilter()`** method of the [BaseAudioContext] interface creates an [IIRFilterNode], which 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 of filter.\n\n> [!NOTE]\n> 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": "The `createOscillator()` method of the [BaseAudioContext]\ninterface creates an [OscillatorNode], a source representing a periodic\nwaveform. It basically generates a constant tone.\n\n> [!NOTE]\n> 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": "The `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]\n> 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": "The `createPeriodicWave()` method of the [BaseAudioContext] interface is used to create a [PeriodicWave]. This wave is used to define a periodic waveform that can be used to shape the output of an [OscillatorNode].", + "createscriptprocessor": "The `createScriptProcessor()` method of the [BaseAudioContext] interface\ncreates a [ScriptProcessorNode] used for direct audio processing.\n\n> [!NOTE]\n> This feature was replaced by [AudioWorklets](https://developer.mozilla.org/en-US/docs/Web/API/AudioWorklet) and the [AudioWorkletNode] interface.", + "createstereopanner": "The `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]\n> 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": "The `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]\n> 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": "The `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": "The `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.", + "decodeaudiodata": "The `decodeAudioData()` method of the [BaseAudioContext]\nInterface is used to asynchronously decode audio file data contained in an\n`ArrayBuffer` that is loaded from [Window.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": "The `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": "The `listener` property of the [BaseAudioContext] interface\nreturns an [AudioListener] object that can then be used for\nimplementing 3D audio spatialization.", "samplerate": "The `sampleRate` property of the [BaseAudioContext] interface returns a floating point number representing the sample rate, in samples per second, used by all nodes in this audio context.\nThis limitation means that sample-rate converters are not supported.", @@ -503,9 +504,9 @@ "properties": { "charging": "The **`charging`** read-only property of the [BatteryManager] interface 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": "The **`chargingchange`** event of the [BatteryManager] interface is fired when the battery [BatteryManager.charging] property is updated.", - "chargingtime": "The **`chargingTime`** read-only property of the [BatteryManager] interface 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.", + "chargingtime": "The **`chargingTime`** read-only property of the [BatteryManager] interface 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]\n> 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": "The **`chargingtimechange`** event of the [BatteryManager] interface is fired when the battery [BatteryManager.chargingTime] property is updated.", - "dischargingtime": "The **`dischargingTime`** read-only property of the [BatteryManager] interface 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.", + "dischargingtime": "The **`dischargingTime`** read-only property of the [BatteryManager] interface 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]\n> 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": "The **`dischargingtimechange`** event of the [BatteryManager] interface is fired when the battery [BatteryManager.dischargingTime] property is updated.", "level": "The **`level`** read-only property of the [BatteryManager] interface 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": "The **`levelchange`** event of the [BatteryManager] interface is fired when the battery [BatteryManager.level] property is updated." @@ -534,7 +535,7 @@ "frequency": "The `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": "The `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": "The `getFrequencyResponse()` method of the [BiquadFilterNode] interface takes the current filtering algorithm's settings and calculates the frequency 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": "The `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`.", + "q": "The `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_.", "type": "The `type` property of the [BiquadFilterNode] interface is a string (enum) value defining the kind of filtering algorithm the node is implementing." } }, @@ -548,7 +549,7 @@ "slice": "The **`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": "The **`stream()`** method of the [Blob] interface returns a [ReadableStream] which upon reading returns the data contained within the `Blob`.", "text": "The **`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": "The **`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.**" + "type": "The **`type`** read-only property of the [Blob] interface returns the of the file.\n\n> [!NOTE]\n> 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": { @@ -601,9 +602,9 @@ "stopnotifications": "The **`BluetoothRemoteGATTCharacteristic.stopNotifications()`** method\nreturns a `Promise` to the BluetoothRemoteGATTCharacteristic instance when\nthere is no longer an active notification on it.", "uuid": "The **`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": "The **`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": "Use [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": "The **`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": "The **`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`." + "writevalue": "Use [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`, [writes the characteristic value with optional response](https://webbluetoothcg.github.io/web-bluetooth/#writecharacteristicvalue), and returns the resulting `Promise`.", + "writevaluewithoutresponse": "The **`BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse()`** method sets a [BluetoothRemoteGATTCharacteristic] object's `value` property to the bytes contained in a given `ArrayBuffer`, [writes the characteristic value without response](https://webbluetoothcg.github.io/web-bluetooth/#writecharacteristicvalue), and returns the resulting `Promise`.", + "writevaluewithresponse": "The **`BluetoothRemoteGATTCharacteristic.writeValueWithResponse()`** method sets a [BluetoothRemoteGATTCharacteristic] object's `value` property to the bytes contained in a given `ArrayBuffer`, [writes the characteristic value with required response](https://webbluetoothcg.github.io/web-bluetooth/#writecharacteristicvalue), and returns the resulting `Promise`." } }, "BluetoothRemoteGATTDescriptor": { @@ -611,7 +612,7 @@ "properties": { "characteristic": "The **`BluetoothRemoteGATTDescriptor.characteristic`**\nread-only property returns the [BluetoothRemoteGATTCharacteristic] this\ndescriptor belongs to.", "readvalue": "The\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": "The **`BluetoothRemoteGATTDescriptor.uuid`** read-only property returns the of the characteristic descriptor.\nFor example '`00002902-0000-1000-8000-00805f9b34fb`' for theClient Characteristic Configuration descriptor.", + "uuid": "The **`BluetoothRemoteGATTDescriptor.uuid`** read-only property returns the of the characteristic descriptor.\nFor example `\"00002902-0000-1000-8000-00805f9b34fb\"` for the Client Characteristic Configuration descriptor.", "value": "The **`BluetoothRemoteGATTDescriptor.value`**\nread-only property returns an `ArrayBuffer` containing the currently cached\ndescriptor value. This value gets updated when the value of the descriptor is read.", "writevalue": "The **`BluetoothRemoteGATTDescriptor.writeValue()`**\nmethod sets the value property to the bytes contained in\nan `ArrayBuffer` and returns a `Promise`." } @@ -638,7 +639,7 @@ } }, "BluetoothUUID": { - "docs": "The **`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.", + "docs": "The **`BluetoothUUID`** interface of the [Web Bluetooth API](https://developer.mozilla.org/en-US/docs/Web/API/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": "The **`canonicalUUID()`** static method of the [BluetoothUUID] interface returns the 128-bit UUID when passed a 16- or 32-bit UUID alias.", "getcharacteristic_static": "The **`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.", @@ -657,19 +658,41 @@ "postmessage": "The **`postMessage()`** method of the [BroadcastChannel] interface 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 [BroadcastChannel.message_event] event\ntargeted at each [BroadcastChannel] bound to the channel." } }, + "BrowserCaptureMediaStreamTrack": { + "docs": "The **`BrowserCaptureMediaStreamTrack`** interface of the [Screen Capture API] represents a single video track. It extends the [MediaStreamTrack] class with methods to limit the part of a self-capture stream (for example, a user's screen or window) that is captured.", + "properties": { + "clone": "The **`clone()`** method of the [BrowserCaptureMediaStreamTrack] interface returns a clone of the original `BrowserCaptureMediaStreamTrack`.\n\nThis method is functionally identical to [MediaStreamTrack.clone], except that it handles cases where cropping or restriction have been applied to the track. The returned clone is identical to the original `BrowserCaptureMediaStreamTrack`, but with any cropping or restriction removed.\n\n> [!NOTE]\n> In Chromium, if a track has clones, its [BrowserCaptureMediaStreamTrack.cropTo] and [BrowserCaptureMediaStreamTrack.restrictTo] methods will reject (see [Chrome issue 41482026](https://issues.chromium.org/issues/41482026)).", + "cropto": "The **`cropTo()`** method of the [BrowserCaptureMediaStreamTrack] interface crops a self-capture stream to the area in which a specified DOM element is rendered.", + "restrictto": "The **`restrictTo()`** method of the [BrowserCaptureMediaStreamTrack] interface restricts a self-capture stream to a specific DOM element (and its descendants)." + } + }, "ByteLengthQueuingStrategy": { "docs": "The **`ByteLengthQueuingStrategy`** interface of the [Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) provides a built-in byte length queuing strategy that can be used when constructing streams.", "properties": { "bytelengthqueuingstrategy": "The **`ByteLengthQueuingStrategy()`**\nconstructor creates and returns a `ByteLengthQueuingStrategy` object\ninstance.", - "highwatermark": "The 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()`](https://developer.mozilla.org/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.", + "highwatermark": "The 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]\n> Unlike [`CountQueuingStrategy()`](https://developer.mozilla.org/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": "The **`size()`** method of the\n[ByteLengthQueuingStrategy] interface returns the given chunk's\n`byteLength` property." } }, "CDATASection": { - "docs": "The **`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\n```\n\nFor example:\n\n```xml\n\n Here is a CDATA section: & ]]> with all kinds of unescaped text.\n\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." + "docs": "The **`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\n```\n\nFor example:\n\n```xml\n\n Here is a CDATA section: & ]]> with all kinds of unescaped text.\n\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]\n> CDATA sections should not be used within HTML. They are considered comments and are not displayed." }, "CSPViolationReportBody": { - "docs": "The `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`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri) or [`report-to`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to) policy directive of the header." + "docs": "The `CSPViolationReportBody` interface is an extension of the [Reporting API](https://developer.mozilla.org/en-US/docs/Web/API/Reporting_API) that represents the body of a Content Security Policy (CSP) violation report.\n\nCSP violations are thrown when the webpage attempts to load a resource that violates the policy set by the HTTP header.\n\nCSP violation reports are returned in the [reports](/en-US/docs/Web/API/ReportingObserver/ReportingObserver#reports) parameter of [ReportingObserver] callbacks that have a `type` of `\"csp-violation\"`.\nThe `body` property of those reports is an instance of `CSPViolationReportBody`.\n\nCSP violation reports may also be sent as JSON objects to the endpoint specified in the [`report-to`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to) policy directive of the header.\nThese reports similarly have a `type` of `\"csp-violation\"`, and a `body` property containing a serialization of an instance of this interface.\n\n> [!NOTE]\n> CSP violation reports sent by the Reporting API, when an endpoint is specified using the CSP [`report-to`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to) directive, are similar (but not identical) to the \"CSP report\" [JSON objects](/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri#violation_report_syntax) sent when endpoints are specified using the [`report-uri`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri) directive.\n> The Reporting API and `report-to` directive are intended to replace the older report format and the `report-uri` directive.", + "properties": { + "blockedurl": "The **`blockedURL`** read-only property of the [CSPViolationReportBody] interface is a string value that represents the resource that was blocked because it violates a [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP).", + "columnnumber": "The **`columnNumber`** read-only property of the [CSPViolationReportBody] interface indicates the column number in the source file that triggered the [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) violation.\n\nNote that the browser extracts the value from _the global object_ of the file that triggered the violation.\nIf the resource that triggers the CSP violation is not loaded, the value will be `null`.\nSee [CSPViolationReportBody.sourceFile] for more information.\n\nThis property is most useful alongside [CSPViolationReportBody.sourceFile] and [CSPViolationReportBody.lineNumber], as it provides the location of the column in that file and line that resulted in a violation.", + "disposition": "The **`disposition`** read-only property of the [CSPViolationReportBody] interface indicates whether the user agent is configured to enforce [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) violations or only report them.", + "documenturl": "The **`documentURL`** read-only property of the [CSPViolationReportBody] interface is a string that represents the URL of the document or worker that violated the [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP).", + "effectivedirective": "The **`effectiveDirective`** read-only property of the [CSPViolationReportBody] interface is a string that represents the effective [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) directive that was violated.\n\nNote that this contains the specific directive that was effectively violated, such as [`script-src-elem`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src-elem) for violations related to script elements, and not the policy that was specified, which may have been the (more general) [`default-src`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src).", + "linenumber": "The **`lineNumber`** read-only property of the [CSPViolationReportBody] interface indicates the line number in the source file that triggered the [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) violation.\n\nNote that the browser extracts the value from _the global object_ of the file that triggered the violation.\nIf the resource that triggers the CSP violation is not loaded, the value will be `null`.\nSee [CSPViolationReportBody.sourceFile] for more information.\n\nThis property is most useful alongside [CSPViolationReportBody.sourceFile] and [CSPViolationReportBody.columnNumber], as it provides the location of the line in that file and the column that resulted in a violation.", + "originalpolicy": "The **`originalPolicy`** read-only property of the [CSPViolationReportBody] interface is a string that represents the [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) whose enforcement uncovered the violation.\n\nThis is the string in the HTTP response header that contains the list of [directives](/en-US/docs/Web/HTTP/Headers/Content-Security-Policy#directives) and their values that make the CSP policy.\nNote that differs from the [CSPViolationReportBody.effectiveDirective], which is the specific directive that is effectively being violated (and which might not be explicitly listed in the policy if `default-src` is used).", + "referrer": "The **`referrer`** read-only property of the [CSPViolationReportBody] interface is a string that represents the URL of the referring page of the resource who's [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) was violated.\n\nThe referrer is the page that caused the page with the CSP violation to be loaded. For example, if we followed a link to a page with a CSP violation, the `referrer` is the page that we navigated from.", + "sample": "The **`sample`** read-only property of the [CSPViolationReportBody] interface is a string that contains a part of the resource that violated the [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP).\n\nThis sample is usually the first 40 characters of the inline script, event handler, or style that violated a CSP restriction.\nIf not populated it is the empty string `\"\"`.\n\nNote that this is only populated when attempting to load _inline_ scripts, event handlers, or styles that violate CSP [`script-src*`](/en-US/docs/Web/HTTP/Headers/Content-Security-Policy#script-src) and [`style-src*`](/en-US/docs/Web/HTTP/Headers/Content-Security-Policy#style-src) rules — external resources that violate the CSP will not generate a sample.\nIn addition, a sample is only included if the `Content-Security-Policy` directive that was violated also contains the [`'report-sample'`](/en-US/docs/Web/HTTP/Headers/Content-Security-Policy#report-sample) keyword.\n\n> [!NOTE] Violation reports should be considered attacker-controlled data.\n> The content of this field _in particular_ should be sanitized before storing or rendering.", + "sourcefile": "The **`sourceFile`** read-only property of the [CSPViolationReportBody] interface indicates the URL of the source file that violated the [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP).\n\nFor a violation triggered by the use of an inline script, `sourceFile` is the URL of the current document.\nSimilarly, if a document successfully loads a script that then violates the document CSP, the `sourceFile` is the URL of the script.\n\nNote however that if a document with a CSP that blocks external resources attempts to load an external resource, `sourceFile` will be `null`.\nThis is because the browser extracts the value from _the global object_ of the file that triggered the violation.\nBecause of the CSP restriction the external resource is never loaded, and therefore has no corresponding global object.\n\nThis property is most useful alongside [CSPViolationReportBody.lineNumber] and [CSPViolationReportBody.columnNumber], which provide the location within the file that resulted in a violation.", + "statuscode": "The **`statusCode`** read-only property of the [CSPViolationReportBody] interface is a number representing the [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) of the response to the request that triggered a [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) violation (when loading a window or worker).", + "tojson": "The **`toJSON()`** method of the [CSPViolationReportBody] interface is a _serializer_, which returns a JSON representation of the `CSPViolationReportBody` object.\n\nThe existence of a `toJSON()` method allows `CSPViolationReportBody` objects to be converted to a string using the `JSON.stringify()` method.\n\nThis is used by the reporting API when creating a serialized version of a violation report to send to a reporting endpoint." + } }, "CSS": { "docs": "The **`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.", @@ -678,7 +701,7 @@ "factory_functions_static": "The **CSS numeric factory\nfunctions**, such as `CSS.em()` and\n`CSS.turn()` are methods that return [CSSUnitValues](https://developer.mozilla.org/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": "The static, read-only **`highlights`** property of the [CSS] interface provides access to the `HighlightRegistry` used to style arbitrary text ranges using the [css_custom_highlight_api].", "paintworklet_static": "The static, read-only **`paintWorklet`** property of the [CSS] interface provides access to the\npaint [worklet](https://developer.mozilla.org/en-US/docs/Web/API/Worklet), which programmatically generates an image where a CSS\nproperty expects a file.", - "registerproperty_static": "The **`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.", + "registerproperty_static": "The **`CSS.registerProperty()`** static method registers\n[custom properties](/en-US/docs/Web/CSS/--*), 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": "The **`CSS.supports()`** static method returns a boolean value\nindicating if the browser supports a given CSS feature, or not." } }, @@ -689,7 +712,7 @@ } }, "CSSConditionRule": { - "docs": "An object implementing the **`CSSConditionRule`** interface represents a single condition CSS [at-rule](https://developer.mozilla.org/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].", + "docs": "An object implementing the **`CSSConditionRule`** interface represents a single condition CSS [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule), which consists of a condition and a statement block.\n\nThree objects derive from `CSSConditionRule`: [CSSMediaRule], [CSSContainerRule] and [CSSSupportsRule].", "properties": { "conditiontext": "The read-only **`conditionText`** property of\nthe [CSSConditionRule] interface returns or sets the text of the CSS\nrule." } @@ -702,7 +725,7 @@ } }, "CSSCounterStyleRule": { - "docs": "The **`CSSCounterStyleRule`** interface represents an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule).", + "docs": "The **`CSSCounterStyleRule`** interface represents an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).", "properties": { "additivesymbols": "The **`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": "The **`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.", @@ -718,19 +741,19 @@ } }, "CSSFontFaceRule": { - "docs": "The **`CSSFontFaceRule`** interface represents an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule).", + "docs": "The **`CSSFontFaceRule`** interface represents an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).", "properties": { - "style": "The read-only **`style`** property of the [CSSFontFaceRule] interface returns the style information from the [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule). This will be in the form of a [CSSStyleDeclaration] object." + "style": "The read-only **`style`** property of the [CSSFontFaceRule] interface returns the style information from the [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule). This will be in the form of a [CSSStyleDeclaration] object." } }, "CSSFontFeatureValuesRule": { - "docs": "The **`CSSFontFeatureValuesRule`** interface represents an [at-rule](https://developer.mozilla.org/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 .", + "docs": "The **`CSSFontFeatureValuesRule`** interface represents an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule), letting developers assign for each font face a common name to specify features indices to be used in .", "properties": { "fontfamily": "The **`fontFamily`** property of the [CSSConditionRule] interface represents the name of the font family it applies to." } }, "CSSFontPaletteValuesRule": { - "docs": "The **`CSSFontPaletteValuesRule`** interface represents an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule).", + "docs": "The **`CSSFontPaletteValuesRule`** interface represents an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).", "properties": { "basepalette": "The read-only **`basePalette`** property of the [CSSFontPaletteValuesRule] interface indicates the base palette associated with the rule.", "fontfamily": "The read-only **`fontFamily`** property of the [CSSFontPaletteValuesRule] interface lists the font families the rule can be applied to. The font families must be _named_ families; _generic_ families like `courier` are not valid.", @@ -739,7 +762,7 @@ } }, "CSSGroupingRule": { - "docs": "The **`CSSGroupingRule`** interface of the [CSS Object Model](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model) represents any CSS [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule) that contains other rules nested within it.", + "docs": "The **`CSSGroupingRule`** interface of the [CSS Object Model](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model) represents any CSS [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule) that contains other rules nested within it.", "properties": { "cssrules": "The **`cssRules`** property of the\n[CSSGroupingRule] interface returns a [CSSRuleList] containing\na collection of [CSSRule] objects.", "deleterule": "The **`deleteRule()`** method of the\n[CSSGroupingRule] interface removes a CSS rule from a list of child CSS\nrules.", @@ -747,32 +770,33 @@ } }, "CSSImageValue": { - "docs": "The **`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 [``](https://developer.mozilla.org/en-US/docs/Web/CSS/image) that involves a URL, such as [`url()`](https://developer.mozilla.org/en-US/docs/Web/CSS/url) or [`image()`](https://developer.mozilla.org/en-US/docs/Web/CSS/image), but not [`linear-gradient()`](https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/linear-gradient) or [`element()`](https://developer.mozilla.org/en-US/docs/Web/CSS/element)." + "docs": "The **`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 [``](https://developer.mozilla.org/en-US/docs/Web/CSS/image) that involves a URL, such as [`url()`](https://developer.mozilla.org/en-US/docs/Web/CSS/url_function) or [`image()`](https://developer.mozilla.org/en-US/docs/Web/CSS/image), but not [`linear-gradient()`](https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/linear-gradient) or [`element()`](https://developer.mozilla.org/en-US/docs/Web/CSS/element)." }, "CSSImportRule": { - "docs": "The **`CSSImportRule`** interface represents an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule).", + "docs": "The **`CSSImportRule`** interface represents an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).", "properties": { - "href": "The read-only **`href`** property of the\n[CSSImportRule] interface returns the URL specified by the\n [at-rule](https://developer.mozilla.org/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": "The read-only **`layerName`** property of the [CSSImportRule] interface returns the name of the cascade layer created by the [at-rule](https://developer.mozilla.org/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.", + "href": "The read-only **`href`** property of the\n[CSSImportRule] interface returns the URL specified by the\n [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).\n\nThe resolved URL will be the [`href`](/en-US/docs/Web/HTML/Element/link#href) attribute of the\nassociated stylesheet.", + "layername": "The read-only **`layerName`** property of the [CSSImportRule] interface returns the name of the cascade layer created by the [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/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": "The 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": "The read-only **`styleSheet`** property of the\n[CSSImportRule] interface returns the CSS Stylesheet specified by the\n [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule). This will be\nin the form of a [CSSStyleSheet] object.\n\nAn [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule) always has\nan associated stylesheet.", - "supportstext": "The read-only **`supportsText`** property of the [CSSImportRule] interface returns the supports condition specified by the [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule)." + "stylesheet": "The read-only **`styleSheet`** property of the\n[CSSImportRule] interface returns the CSS Stylesheet specified by the\n [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule). This will be\nin the form of a [CSSStyleSheet] object.\n\nAn [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule) always has\nan associated stylesheet.", + "supportstext": "The read-only **`supportsText`** property of the [CSSImportRule] interface returns the supports condition specified by the [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule)." } }, "CSSKeyframeRule": { - "docs": "The **`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](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule).", + "docs": "The **`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](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).", "properties": { "keytext": "The **`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": "The 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]." + "style": "The read-only **`CSSKeyframeRule.style`** property is the [CSSStyleDeclaration] interface for the declaration block of the [CSSKeyframeRule]." } }, "CSSKeyframesRule": { - "docs": "The **`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](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule).", + "docs": "The **`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](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).", "properties": { "appendrule": "The **`appendRule()`** method of the [CSSKeyframeRule] interface appends a [CSSKeyFrameRule] to the end of the rules.", - "cssrules": "The read-only **`cssRules`** property of the [CSSKeyframeRule] interface returns a [CSSRuleList] containing the rules in the keyframes [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule).", + "cssrules": "The read-only **`cssRules`** property of the [CSSKeyframeRule] interface returns a [CSSRuleList] containing the rules in the keyframes [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).\n\n> [!NOTE]\n> The `CSSKeyframeRule` itself is indexable like an array, and functions similarly to its `cssRules` property.", "deleterule": "The **`deleteRule()`** method of the [CSSKeyframeRule] interface deletes the [CSSKeyFrameRule] that matches the specified keyframe selector.", "findrule": "The **`findRule()`** method of the [CSSKeyframeRule] interface finds the [CSSKeyFrameRule] that matches the specified keyframe selector.", + "length": "The read-only **`length`** property of the [CSSKeyframeRule] interface returns the number of [CSSKeyframeRule] objects in its list. You can then access each keyframe rule by its index directly on the `CSSKeyframeRule` object.", "name": "The **`name`** property of the [CSSKeyframeRule] interface gets and sets the name of the animation as used by the property." } }, @@ -784,7 +808,7 @@ } }, "CSSLayerBlockRule": { - "docs": "The **`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_.", + "docs": "The **`CSSLayerBlockRule`** represents a block rule.", "properties": { "name": "The read-only **`name`** property of the [CSSLayerBlockRule] interface represents the name of the associated cascade layer." } @@ -853,16 +877,22 @@ "CSSMediaRule": { "docs": "The **`CSSMediaRule`** interface represents a single CSS rule.", "properties": { - "media": "The read-only **`media`** property of the\n[CSSMediaRule] interface [MediaList] represents the intended\ndestination medium for style information." + "media": "The read-only **`media`** property of the\n[CSSMediaRule] interface returns a [MediaList] representing the intended\ndestination medium for style information." } }, "CSSNamespaceRule": { - "docs": "The **`CSSNamespaceRule`** interface describes an object representing a single CSS [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule).", + "docs": "The **`CSSNamespaceRule`** interface describes an object representing a single CSS [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).", "properties": { "namespaceuri": "The read-only **`namespaceURI`** property of the [CSSNamespaceRule] returns a string containing the text of the URI of the given namespace.", "prefix": "The 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." } }, + "CSSNestedDeclarations": { + "docs": "The **`CSSNestedDeclarations`** interface of the [CSS Rule API](https://developer.mozilla.org/en-US/docs/Web/API/CSSRule) is used to group nested [CSSRule]s.\n\nThe interface allows the [CSS Object Model (CSSOM](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model) to mirror the structure of CSS documents with nested CSS rules, and ensure that rules are parsed and evaluated in the order that they are declared.\n\n> [!NOTE] > [Browser versions](#browser_compatibility) with implementations that do not support this interface may parse nested rules in the wrong order.", + "properties": { + "style": "The read-only **`style`** property of the [CSSNestedDeclarations] interface represents the styles associated with the nested rules." + } + }, "CSSNumericArray": { "docs": "The **`CSSNumericArray`** interface of the [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model) contains a list of [CSSNumericValue] objects.", "properties": { @@ -885,11 +915,14 @@ "type": "The **`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`." } }, + "CSSPageDescriptors": { + "docs": "The **`CSSPageDescriptors`** interface represents a CSS declaration block for an [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).\n\nThe interface exposes style information and various style-related methods and properties for the page.\nEach multi-word property has versions in camel- and snake-case.\nThis means, for example, that you can access the `margin-top` CSS property using the syntax `style[\"margin-top\"]` or `style.marginTop` (where `style` is a `CSSPageDescriptor`).\n\nA `CSSPageDescriptors` object is accessed through the [CSSPageRule.style] property of the `CSSPageRule` interface, which can in turn be found using the [CSSStyleSheet] API." + }, "CSSPageRule": { "docs": "**`CSSPageRule`** represents a single CSS rule.", "properties": { "selectortext": "The **`selectorText`** property of the [CSSPageRule] interface gets and sets the selectors associated with the `CSSPageRule`.", - "style": "The **`style`** read-only property of the [CSSPageRule] interface returns a [CSSStyleDeclaration] object. This represents an object that is a [CSS declaration block](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/CSS_Declaration_Block), and exposes style information and various style-related methods and properties." + "style": "The **`style`** read-only property of the [CSSPageRule] interface returns a [CSSPageDescriptors] object.\nThis represents a [CSS declaration block](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/CSS_Declaration_Block) for a CSS [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule), and exposes style information and various style-related methods and properties for the page." } }, "CSSPerspective": { @@ -899,6 +932,16 @@ "length": "The **`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." } }, + "CSSPositionTryDescriptors": { + "docs": "The **`CSSPositionTryDescriptors`** interface defines properties that represent the list of CSS descriptors that can be set in the body of a [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).\n\nEach descriptor in the body of the corresponding at-rule can be accessed using either its property name in [bracket notation](/en-US/docs/Learn_web_development/Core/Scripting/Object_basics#bracket_notation) or the camel-case version of the property name \"propertyName\" in [dot notation](/en-US/docs/Learn_web_development/Core/Scripting/Object_basics#dot_notation).\nFor example, you can access the CSS property \"property-name\" as `style[\"property-name\"]` or `style.propertyName`, where `style` is a `CSSPositionTryDescriptors` instance.\nA property with a single-word name like `height` can be accessed using either notation: `style[\"height\"]` or `style.height`.\n\n> [!NOTE]\n> The [CSSPositionTryRule] interface represents a at-rule, and the [CSSPositionTryRule.style] property is an instance of this object." + }, + "CSSPositionTryRule": { + "docs": "The **`CSSPositionTryRule`** interface describes an object representing a [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule).", + "properties": { + "name": "The **`name`** read-only property of the [CSSPositionTryRule] interface represents the name of the position try fallback option specified by the `@position-try` at-rule's .", + "style": "The **`style`** read-only property of the [CSSPositionTryRule] interface returns a [CSSPositionTryDescriptors] object representing the declarations set in the body of the `@position-try` at-rule." + } + }, "CSSPositionValue": { "docs": "The **`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": { @@ -908,16 +951,16 @@ } }, "CSSPrimitiveValue": { - "docs": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/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).", + "docs": "The **`CSSPrimitiveValue`** interface derives from the [CSSValue] interface and represents the current computed value of a CSS property.\n\n> [!NOTE]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/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).", "properties": { - "getcountervalue": "The **`getCounterValue()`** method of the\n[CSSPrimitiveValue] interface is used to get the [counter](https://developer.mozilla.org/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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", - "getfloatvalue": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", - "getrectvalue": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", - "getrgbcolorvalue": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", - "getstringvalue": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", - "primitivetype": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", - "setfloatvalue": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", - "setstringvalue": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental." + "getcountervalue": "The **`getCounterValue()`** method of the\n[CSSPrimitiveValue] interface is used to get the [counter](https://developer.mozilla.org/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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "getfloatvalue": "The **`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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "getrectvalue": "The **`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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "getrgbcolorvalue": "The **`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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "getstringvalue": "The **`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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "primitivetype": "The **`primitiveType`** read-only property of the\n[CSSPrimitiveValue] interface represents the type of a CSS value.\n\n> [!NOTE]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "setfloatvalue": "The **`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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "setstringvalue": "The **`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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental." } }, "CSSPropertyRule": { @@ -933,7 +976,7 @@ "docs": "The **`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].", "properties": { "element": "The **`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": "The **`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)." + "type": "The **`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_pseudo-elements#selectors)." } }, "CSSRotate": { @@ -947,9 +990,9 @@ } }, "CSSRule": { - "docs": "The **`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]", + "docs": "The **`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]\n- [CSSNestedDeclarations]", "properties": { - "csstext": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Using_dynamic_styling_information) for details.", + "csstext": "The **`cssText`** property of the [CSSRule]\ninterface returns the actual text of a [CSSStyleSheet] style-rule.\n\n> [!NOTE]\n> 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 emit a warning or error.\nFurthermore, it has no settable sub-properties. Therefore, to modify it, use the\nstylesheet's properties\n[CSSStyleRule.selectorText] and\n[CSSStyleRule.style] (or its sub-properties). See [Using dynamic styling information](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Using_dynamic_styling_information) for details.", "parentrule": "The **`parentRule`** property of the [CSSRule]\ninterface returns the containing rule of the current rule if this exists, or otherwise\nreturns null.", "parentstylesheet": "The **`parentStyleSheet`** property of the\n[CSSRule] interface returns the [StyleSheet] object in which\nthe current rule is defined.", "type": "The 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`](https://developer.mozilla.org/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```" @@ -1008,9 +1051,9 @@ "properties": { "cssfloat": "The **`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": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Using_dynamic_styling_information).\n\nNot to be confused with stylesheet style-rule [CSSRule.cssText].", - "getpropertycssvalue": "The **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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - [Element.computedStyleMap] of the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "getpropertycssvalue": "The **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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - [Element.computedStyleMap] of the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", "getpropertypriority": "The **CSSStyleDeclaration.getPropertyPriority()** method interface returns\na string that provides all explicitly set priorities on the CSS\nproperty.", - "getpropertyvalue": "The **CSSStyleDeclaration.getPropertyValue()** method interface returns a\nstring containing the value of a specified CSS property.", + "getpropertyvalue": "The **CSSStyleDeclaration.getPropertyValue()** method interface returns a string containing the value of a specified CSS property.", "item": "The `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": "The read-only property returns an integer that represents the\nnumber of style declarations in this CSS declaration block.", "parentrule": "The **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.", @@ -1022,7 +1065,7 @@ "docs": "The **`CSSStyleRule`** interface represents a single CSS style rule.", "properties": { "selectortext": "The **`selectorText`** property of the [CSSStyleRule] interface gets and sets the selectors associated with the `CSSStyleRule`.", - "style": "The 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].", + "style": "The read-only **`style`** property is the [CSSStyleDeclaration] interface for the declaration block of the [CSSStyleRule].", "stylemap": "The **`styleMap`** read-only property of the\n[CSSStyleRule] interface returns a [StylePropertyMap] object\nwhich provides access to the rule's property-value pairs." } }, @@ -1033,12 +1076,12 @@ "cssrules": "The 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.", "cssstylesheet": "The **`CSSStyleSheet()`** constructor creates a new [CSSStyleSheet] object which represents a single [Stylesheet](https://developer.mozilla.org/en-US/docs/Glossary/Stylesheet).\n\nAfter constructing a stylesheet the [CSSStyleSheet.replace], [CSSStyleSheet.replaceSync], [CSSStyleSheet.insertRule], and [CSSStyleSheet.deleteRule] methods can be used to modify the rules of the new stylesheet.\n\nA stylesheet created using this method is referred to as a \"constructed stylesheet\".\nA constructed stylesheet can be shared between a document and its shadow DOM subtrees using [ShadowRoot.adoptedStyleSheets] and [Document.adoptedStyleSheets].", "deleterule": "The [CSSStyleSheet] method\n**`deleteRule()`** removes a rule from the stylesheet\nobject.", - "insertrule": "The **`CSSStyleSheet.insertRule()`**\nmethod inserts a new [CSS rule](https://developer.mozilla.org/en-US/docs/Web/API/CSSRule) into the [current style sheet](https://developer.mozilla.org/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].", + "insertrule": "The **`CSSStyleSheet.insertRule()`**\nmethod inserts a new [CSS rule](https://developer.mozilla.org/en-US/docs/Web/API/CSSRule) into the [current style sheet](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet).\n\n> [!NOTE]\n> Although `insertRule()` is exclusively a method of\n> [CSSStyleSheet], it actually inserts the rule into\n> `[CSSStyleSheet].cssRules` — its internal\n> [CSSRuleList].", "ownerrule": "The 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": "The 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.", + "removerule": "The 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]\n> This is a _legacy method_ which has been replaced by\n> the standard method [CSSStyleSheet.deleteRule]. You\n> should use that instead.", "replace": "The **`replace()`** method of the [CSSStyleSheet] interface asynchronously replaces the content of the stylesheet with the content passed into it. The method returns a promise that resolves with the `CSSStyleSheet` object.\n\nThe `replace()` and [CSSStyleSheet.replaceSync] methods can only be used on a stylesheet created with the [CSSStyleSheet.CSSStyleSheet] constructor.", "replacesync": "The **`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": "**`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." + "rules": "**`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]\n> 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": { @@ -1049,13 +1092,13 @@ } }, "CSSSupportsRule": { - "docs": "The **`CSSSupportsRule`** interface represents a single CSS [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/At-rule)." + "docs": "The **`CSSSupportsRule`** interface represents a single CSS [at-rule](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_syntax/At-rule)." }, "CSSTransformComponent": { "docs": "The **`CSSTransformComponent`** interface of the [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model) is part of the [CSSTransformValue] interface.", "properties": { "is2d": "The **`is2D`** read-only property of the [CSSTransformComponent] interface indicates where the transform is 2D or 3D.", - "tomatrix": "The **`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](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_transforms/Using_CSS_transforms).", + "tomatrix": "The **`toMatrix()`** method of the\n[CSSTransformComponent] interface returns a [DOMMatrix]\nobject.\n\nAll transform functions can be represented mathematically as a 4x4 transformation matrix.\n\n> [!NOTE]\n> 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](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_transforms/Using_CSS_transforms).", "tostring": "The **`toString()`** method of the [CSSTransformComponent] interface is a returning a [CSS Transforms](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_transforms) function." } }, @@ -1107,51 +1150,51 @@ } }, "CSSValue": { - "docs": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "docs": "The **`CSSValue`** interface represents the current computed value of a CSS property.\n\n> [!NOTE]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", "properties": { - "csstext": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", - "cssvaluetype": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental." + "csstext": "The **`cssText`** property of the [CSSValue]\ninterface represents the current computed CSS property value.\n\n> [!NOTE]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "cssvaluetype": "The **`cssValueType`** read-only property of the\n[CSSValue] interface represents the type of the current computed CSS\nproperty value.\n\n> [!NOTE]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental." } }, "CSSValueList": { - "docs": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/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.", + "docs": "The **`CSSValueList`** interface derives from the [CSSValue] interface and provides the abstraction of an ordered collection of CSS values.\n\n> [!NOTE]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/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.", "properties": { - "item": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", - "length": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental." + "item": "The **`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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental.", + "length": "The **`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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model), widely supported, or\n> - the modern [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Typed_OM_API), less supported and considered experimental." } }, "CSSVariableReferenceValue": { "docs": "The **`CSSVariableReferenceValue`** interface of the [CSS Typed Object Model API](https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model) 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": { "cssvariablereferencevalue": "Creates a new [CSSVariableReferenceValue].", - "fallback": "The **`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].", + "fallback": "The **`fallback`** read-only property of the\n[CSSVariableReferenceValue] interface returns the [custom property fallback value](/en-US/docs/Web/CSS/CSS_cascading_variables/Using_CSS_custom_properties#custom_property_fallback_values) of the [CSSVariableReferenceValue].", "variable": "The **`variable`** property of the\n[CSSVariableReferenceValue] interface returns the [custom property name](/en-US/docs/Web/CSS/--*) of the\n[CSSVariableReferenceValue]." } }, "Cache": { - "docs": "The **`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.", + "docs": "The **`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]\n> 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]\n> The caching API doesn't honor HTTP caching headers.", "properties": { "add": "The **`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.put(url, response);\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": "The **`addAll()`** method of the [Cache] interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache. The request objects created during retrieval become keys to the stored response operations.\n\n> **Note:** `addAll()` will overwrite any key/value pairs\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": "The **`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": "The **`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.", + "keys": "The **`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]\n> Requests with duplicate URLs but different headers can be\n> returned if their responses have the `VARY` header set on them.", "match": "The **`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": "The **`matchAll()`** method of the [Cache]\ninterface returns a `Promise` that resolves to an array of all matching\nresponses in the [Cache] object.", - "put": "The **`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." + "put": "The **`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 [Window.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": "The **`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 [Window.caches] property in windows or through the [WorkerGlobalScope.caches] property in workers.\n\n> **Note:** `CacheStorage` always rejects with a `SecurityError` on untrusted origins (i.e. those that aren't using HTTPS, although this definition will likely become more complex in the future.) When testing on Firefox, you can get around this by checking the **Enable Service Workers over HTTP (when toolbox is open)** option in the Firefox Devtools options/gear menu. Furthermore, because `CacheStorage` requires file-system access, it may be unavailable in private mode in Firefox.\n\n> **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].", + "docs": "The **`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 [Window.caches] property in windows or through the [WorkerGlobalScope.caches] property in workers.\n\n> **Note:** `CacheStorage` always rejects with a `SecurityError` on untrusted origins (i.e. those that aren't using HTTPS, although this definition will likely become more complex in the future.) When testing on Firefox, you can get around this by checking the **Enable Service Workers over HTTP (when toolbox is open)** option in the Firefox DevTools options/gear menu. Furthermore, because `CacheStorage` requires file-system access, it may be unavailable in private mode in Firefox.\n\n> **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].", "properties": { "delete": "The **`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 [Window.caches] property in windows or through the [WorkerGlobalScope.caches] property in workers.", "has": "The **`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 [Window.caches] property in windows or through the [WorkerGlobalScope.caches] property in workers.", "keys": "The **`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 [Window.caches] property in windows or through the [WorkerGlobalScope.caches] property in workers.", - "match": "The **`match()`** method of the [CacheStorage] interface checks if a given [Request] or URL string is a key for a stored [Response].\nThis method returns a `Promise` for a [Response], or a `Promise` which resolves to `undefined` if no match is found.\n\nYou can access `CacheStorage` through the [Window.caches] property in windows or through the [WorkerGlobalScope.caches] property in workers.\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": "The **`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 [Window.caches] property in windows or through the [WorkerGlobalScope.caches] property in workers.\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." + "match": "The **`match()`** method of the [CacheStorage] interface checks if a given [Request] or URL string is a key for a stored [Response].\nThis method returns a `Promise` for a [Response], or a `Promise` which resolves to `undefined` if no match is found.\n\nYou can access `CacheStorage` through the [Window.caches] property in windows or through the [WorkerGlobalScope.caches] property in workers.\n\n`Cache` objects are searched in creation order.\n\n> **Note:** `caches.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": "The **`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 [Window.caches] property in windows or through the [WorkerGlobalScope.caches] property in workers.\n\n> [!NOTE]\n> 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": "@AvailableInWorkers(\"service\")\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].", + "docs": "@AvailableInWorkers(\"service\")\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 the [PaymentRequest.PaymentRequest] constructor.", "properties": { "canmakepaymentevent": "@AvailableInWorkers(\"service\")\n\nThe **`CanMakePaymentEvent()`** constructor creates a new [CanMakePaymentEvent] object instance.", "respondwith": "@AvailableInWorkers(\"service\")\n\nThe **`respondWith()`** method of the [CanMakePaymentEvent] interface enables the service worker to respond appropriately to signal whether it is ready to handle payments." @@ -1180,76 +1223,75 @@ "docs": "The **`CanvasRenderingContext2D`** interface, part of the [Canvas API](https://developer.mozilla.org/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](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial) has more explanation, examples, and resources, as well.\n\nFor [`OffscreenCanvas`](https://developer.mozilla.org/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": "The\n**`CanvasRenderingContext2D.arc()`**\nmethod of the [Canvas 2D API](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D) adds a circular arc to the current sub-path.", - "arcto": "The **`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": "The\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].", + "arcto": "The **`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]\n> 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": "The\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]\n> To create a new sub-path, i.e., one matching the current\n> canvas state, you can use [CanvasRenderingContext2D.moveTo].", "beziercurveto": "The\n**`CanvasRenderingContext2D.bezierCurveTo()`**\nmethod of the Canvas 2D API adds a cubic [Bézier curve](https://developer.mozilla.org/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": "The **`CanvasRenderingContext2D.canvas`** property, part of the\n[Canvas API](https://developer.mozilla.org/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`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/null) if there is no associated `canvas` element.", - "clearrect": "The\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": "The\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![Star-shaped clipping region](canvas_clipping_path.png)\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].", + "clearrect": "The\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]\n> 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": "The\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![Star-shaped clipping region](canvas_clipping_path.png)\n\n> [!NOTE]\n> 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]\n> 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": "The\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": "The **`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.", + "createconicgradient": "The **`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]\n> 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": "The **`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": "The\n**`CanvasRenderingContext2D.createLinearGradient()`**\nmethod of the Canvas 2D API creates a gradient along the line connecting two given\ncoordinates.\n\n![The gradient transitions colors along the gradient line, starting at point x0, y0 and going to x1, y1, even if those points extend the gradient line beyond the edges of the element on which the gradient is drawn.](mdn-canvas-lineargradient.png)\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.", + "createlineargradient": "The\n**`CanvasRenderingContext2D.createLinearGradient()`**\nmethod of the Canvas 2D API creates a gradient along the line connecting two given\ncoordinates.\n\n![The gradient transitions colors along the gradient line, starting at point x0, y0 and going to x1, y1, even if those points extend the gradient line beyond the edges of the element on which the gradient is drawn.](mdn-canvas-lineargradient.png)\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]\n> 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": "The **`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": "The\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] 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.", + "createradialgradient": "The\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] properties.\n\n> [!NOTE]\n> 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": "The\n**`CanvasRenderingContext2D.direction`**\nproperty of the Canvas 2D API specifies the current text direction used to draw text.", "drawfocusifneeded": "The\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": "The **`CanvasRenderingContext2D.drawImage()`** method of the\nCanvas 2D API provides different ways to draw an image onto the canvas.", "ellipse": "The\n**`CanvasRenderingContext2D.ellipse()`**\nmethod of the Canvas 2D API adds an elliptical arc to the current sub-path.", "fill": "The\n**`CanvasRenderingContext2D.fill()`**\nmethod of the Canvas 2D API fills the current or given path with the current\n[CanvasRenderingContext2D.fillStyle].", "fillrect": "The\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": "The\n**`CanvasRenderingContext2D.fillStyle`**\nproperty of the [Canvas 2D API](https://developer.mozilla.org/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](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial).", - "filltext": "The [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.", + "fillstyle": "The\n**`CanvasRenderingContext2D.fillStyle`**\nproperty of the [Canvas 2D API](https://developer.mozilla.org/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]\n> For more examples of fill and stroke styles, see [Applying styles and color](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial).", + "filltext": "The [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]\n> To draw the outlines of the characters in a string, call the context's\n> [CanvasRenderingContext2D.strokeText] method.", "filter": "The\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": "The **`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](https://developer.mozilla.org/en-US/docs/Web/CSS/font) specifier.", "fontkerning": "The **`CanvasRenderingContext2D.fontKerning`** property of the [Canvas API](https://developer.mozilla.org/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`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-kerning) CSS property.", "fontstretch": "The **`CanvasRenderingContext2D.fontStretch`** property of the [Canvas API](https://developer.mozilla.org/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`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-stretch) CSS property when used with keywords (percentage values are not supported).", "fontvariantcaps": "The **`CanvasRenderingContext2D.fontVariantCaps`** property of the [Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API) specifies an alternative capitalization of the rendered text.\n\nThis corresponds to the CSS [`font-variant-caps`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant-caps) property.", "getcontextattributes": "The **`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()`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext), but the attributes that are actually supported and used may differ.", - "getimagedata": "The [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](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas).", + "getimagedata": "The [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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas).", "getlinedash": "The **`getLineDash()`** method of the Canvas 2D API's\n[CanvasRenderingContext2D] interface gets the current line dash pattern.", "gettransform": "The **`CanvasRenderingContext2D.getTransform()`** method of the Canvas 2D API retrieves the current transformation matrix being applied to the context.", - "globalalpha": "The\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](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas Tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial).", + "globalalpha": "The\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]\n> See also the chapter [Applying styles and color](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas Tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial).", "globalcompositeoperation": "The\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](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Compositing) in the [Canvas Tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial).", - "imagesmoothingenabled": "The **`imageSmoothingEnabled`** property of the\n[CanvasRenderingContext2D] interface, part of the [Canvas API](https://developer.mozilla.org/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": "The **`imageSmoothingQuality`** property of the\n[CanvasRenderingContext2D] interface, part of the [Canvas API](https://developer.mozilla.org/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`.", + "imagesmoothingenabled": "The **`imageSmoothingEnabled`** property of the\n[CanvasRenderingContext2D] interface, part of the [Canvas API](https://developer.mozilla.org/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]\n> You can adjust the smoothing quality with the\n> [CanvasRenderingContext2D.imageSmoothingQuality]\n> property.", + "imagesmoothingquality": "The **`imageSmoothingQuality`** property of the\n[CanvasRenderingContext2D] interface, part of the [Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API), lets you set the quality of\nimage smoothing.\n\n> [!NOTE]\n> For this property to have an effect,\n> [CanvasRenderingContext2D.imageSmoothingEnabled]\n> must be `true`.", "iscontextlost": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/contextlost_event) at the associated [`HTMLCanvasElement`](https://developer.mozilla.org/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](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/contextrestored_event), indicating that the context is ready to reinitialize and redraw.", "ispointinpath": "The\n**`CanvasRenderingContext2D.isPointInPath()`**\nmethod of the Canvas 2D API reports whether or not the specified point is contained in\nthe current path.", "ispointinstroke": "The\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": "The **`CanvasRenderingContext2D.letterSpacing`** property of the [Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API) specifies the spacing between letters when drawing text.\n\nThis corresponds to the CSS [`letter-spacing`](https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing) property.", - "linecap": "The\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": "The\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": "The\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.", + "linecap": "The\n**`CanvasRenderingContext2D.lineCap`**\nproperty of the Canvas 2D API determines the shape used to draw the end points of lines.\n\n> [!NOTE]\n> Lines can be drawn with the\n> [CanvasRenderingContext2D.stroke], [CanvasRenderingContext2D.strokeRect],\n> and [CanvasRenderingContext2D.strokeText] methods.", + "linedashoffset": "The\n**`CanvasRenderingContext2D.lineDashOffset`**\nproperty of the Canvas 2D API sets the line dash offset, or \"phase.\"\n\n> [!NOTE]\n> Lines are drawn by calling the\n> [CanvasRenderingContext2D.stroke] method.", + "linejoin": "The\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]\n> Lines can be drawn with the\n> [CanvasRenderingContext2D.stroke],\n> [CanvasRenderingContext2D.strokeRect],\n> and [CanvasRenderingContext2D.strokeText] methods.", "lineto": "The [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": "The\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.", + "linewidth": "The\n**`CanvasRenderingContext2D.lineWidth`**\nproperty of the Canvas 2D API sets the thickness of lines.\n\n> [!NOTE]\n> Lines can be drawn with the\n> [CanvasRenderingContext2D.stroke],\n> [CanvasRenderingContext2D.strokeRect],\n> and [CanvasRenderingContext2D.strokeText] methods.", "measuretext": "The\n`CanvasRenderingContext2D.measureText()`\nmethod returns a [TextMetrics] object that contains information about the\nmeasured text (such as its width, for example).", - "miterlimit": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial).", + "miterlimit": "The **`CanvasRenderingContext2D.miterLimit`** property of the\nCanvas 2D API sets the miter limit ratio.\n\n> [!NOTE]\n> For more info about miters, see [Applying styles and color](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial).", "moveto": "The\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": "The **`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](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas).", + "putimagedata": "The **`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]\n> 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](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas).", "quadraticcurveto": "The\n**`CanvasRenderingContext2D.quadraticCurveTo()`**\nmethod of the Canvas 2D API adds a quadratic [Bézier curve](https://developer.mozilla.org/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": "The\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.", + "rect": "The\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]\n> To both create and render a rectangle in one step, use the\n> [CanvasRenderingContext2D.fillRect] or\n> [CanvasRenderingContext2D.strokeRect] methods.", "reset": "The **`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": "The\n**`CanvasRenderingContext2D.resetTransform()`**\nmethod of the Canvas 2D API resets the current transform to the identity matrix.", - "restore": "The\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].", + "restore": "The\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#the_drawing_state), see [CanvasRenderingContext2D.save].", "rotate": "The\n**`CanvasRenderingContext2D.rotate()`**\nmethod of the Canvas 2D API adds a rotation to the transformation matrix.", "roundrect": "The **`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`](https://developer.mozilla.org/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": "The\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],\n [CanvasRenderingContext2D.font],\n [CanvasRenderingContext2D.textAlign],\n [CanvasRenderingContext2D.textBaseline],\n [CanvasRenderingContext2D.direction],\n [CanvasRenderingContext2D.imageSmoothingEnabled].", + "save": "The\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.direction]\n - [CanvasRenderingContext2D.fillStyle]\n - [CanvasRenderingContext2D.filter]\n - [CanvasRenderingContext2D.font]\n - [CanvasRenderingContext2D.fontKerning]\n - [CanvasRenderingContext2D.fontStretch]\n - [CanvasRenderingContext2D.fontVariantCaps]\n - [CanvasRenderingContext2D.globalAlpha]\n - [CanvasRenderingContext2D.globalCompositeOperation]\n - [CanvasRenderingContext2D.imageSmoothingEnabled]\n - [CanvasRenderingContext2D.imageSmoothingQuality]\n - [CanvasRenderingContext2D.letterSpacing]\n - [CanvasRenderingContext2D.lineCap]\n - [CanvasRenderingContext2D.lineDashOffset]\n - [CanvasRenderingContext2D.lineJoin]\n - [CanvasRenderingContext2D.lineWidth]\n - [CanvasRenderingContext2D.miterLimit]\n - [CanvasRenderingContext2D.shadowBlur]\n - [CanvasRenderingContext2D.shadowColor]\n - [CanvasRenderingContext2D.shadowOffsetX]\n - [CanvasRenderingContext2D.shadowOffsetY]\n - [CanvasRenderingContext2D.strokeStyle]\n - [CanvasRenderingContext2D.textAlign]\n - [CanvasRenderingContext2D.textBaseline]\n - [CanvasRenderingContext2D.textRendering]\n - [CanvasRenderingContext2D.wordSpacing]", "scale": "The\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": "The\n**`CanvasRenderingContext2D.scrollPathIntoView()`**\nmethod of the Canvas 2D API scrolls the current or given path into view. It is similar\nto [Element.scrollIntoView].", - "setlinedash": "The **`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": "The\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": "The\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": "The\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": "The\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": "The\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.", + "setlinedash": "The **`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]\n> To return to using solid lines, set the line dash list to an\n> empty array.", + "settransform": "The **`CanvasRenderingContext2D.setTransform()`** method of the Canvas 2D API resets (overrides) the current transformation to the identity matrix, and then invokes a transformation described by the arguments of this method. This lets you scale, rotate, translate (move), and skew the context.\n\n> [!NOTE]\n> See also the [CanvasRenderingContext2D.transform] method; instead of overriding the current transform matrix, it\n> multiplies it with a given one.", + "shadowblur": "The\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]\n> 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": "The\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]\n> 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": "The\n**`CanvasRenderingContext2D.shadowOffsetX`**\nproperty of the Canvas 2D API specifies the distance that shadows will be offset\nhorizontally.\n\n> [!NOTE]\n> 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": "The\n**`CanvasRenderingContext2D.shadowOffsetY`**\nproperty of the Canvas 2D API specifies the distance that shadows will be offset\nvertically.\n\n> [!NOTE]\n> 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": "The\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": "The\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": "The **`CanvasRenderingContext2D.strokeStyle`** property of the\nCanvas 2D API specifies the color, gradient, or pattern to use for the strokes\n(outlines) around shapes. The default is `#000` (black).\n\n> **Note:** For more examples of stroke and fill styles, see [Applying styles and color](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial).", - "stroketext": "The [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.", + "strokestyle": "The **`CanvasRenderingContext2D.strokeStyle`** property of the\nCanvas 2D API specifies the color, gradient, or pattern to use for the strokes\n(outlines) around shapes. The default is `#000` (black).\n\n> [!NOTE]\n> For more examples of stroke and fill styles, see [Applying styles and color](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors) in the [Canvas tutorial](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial).", + "stroketext": "The [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]\n> Use the [CanvasRenderingContext2D.fillText] method to\n> fill the text characters rather than having just their outlines drawn.", "textalign": "The\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": "The\n**`CanvasRenderingContext2D.textBaseline`**\nproperty of the Canvas 2D API specifies the current text baseline used when drawing\ntext.", "textrendering": "The **`CanvasRenderingContext2D.textRendering`** property of the [Canvas API](https://developer.mozilla.org/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`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/text-rendering) attribute (and CSS [`text-rendering`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-rendering) property).", - "transform": "The\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()`.", + "transform": "The\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]\n> See also the\n> [CanvasRenderingContext2D.setTransform] method, which\n> resets the current transform to the identity matrix and then invokes\n> `transform()`.", "translate": "The\n**`CanvasRenderingContext2D.translate()`**\nmethod of the Canvas 2D API adds a translation transformation to the current matrix.", "wordspacing": "The **`CanvasRenderingContext2D.wordSpacing`** property of the [Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API) specifies the spacing between words when drawing text.\n\nThis corresponds to the CSS [`word-spacing`](https://developer.mozilla.org/en-US/docs/Web/CSS/word-spacing) property." } @@ -1262,22 +1304,30 @@ } }, "CaretPosition": { - "docs": "The `CaretPosition` interface represents the caret position, an indicator for the text insertion point. You can get a `CaretPosition` using the [Document.caretPositionFromPoint] method." + "docs": "The `CaretPosition` interface represents the caret position, an indicator for the text insertion point.\nYou can get a `CaretPosition` using the [Document.caretPositionFromPoint] method." }, "ChannelMergerNode": { - "docs": "The `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![Default channel merger node with six mono inputs combining to form a single output.](webaudiomerger.png)\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Number of inputsvariable; default to 6.
Number of outputs1
Channel count mode\"explicit\"
Channel count2 (not used in the default count mode)
Channel interpretation\"speakers\"
", + "docs": "The `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![Default channel merger node with six mono inputs combining to form a single output.](webaudiomerger.png)\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Number of inputsvariable; default to 6.
Number of outputs1
Channel count mode\"explicit\"
Channel count2 (not used in the default count mode)
Channel interpretation\"speakers\"
", "properties": { "channelmergernode": "The **`ChannelMergerNode()`** constructor creates a new [ChannelMergerNode] object instance." } }, "ChannelSplitterNode": { - "docs": "The `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![Default channel splitter node with a single input splitting to form 6 mono outputs.](webaudiosplitter.png)\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Number of inputs1
Number of outputsvariable; default to 6.
Channel count mode\n \"explicit\" Older implementations, as per earlier versions\n of the spec use \"max\".\n
Channel count\n Fixed to the number of outputs. Older implementations, as per earlier\n versions of the spec use 2 (not used in the default count\n mode).\n
Channel interpretation\"discrete\"
", + "docs": "The `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![Default channel splitter node with a single input splitting to form 6 mono outputs.](webaudiosplitter.png)\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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Number of inputs1
Number of outputsvariable; default to 6.
Channel count mode\n \"explicit\" Older implementations, as per earlier versions\n of the spec use \"max\".\n
Channel count\n Fixed to the number of outputs. Older implementations, as per earlier\n versions of the spec use 2 (not used in the default count\n mode).\n
Channel interpretation\"discrete\"
", "properties": { "channelsplitternode": "The **`ChannelSplitterNode()`** constructor of the [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API) creates a new [ChannelSplitterNode] object instance, representing a node that splits the input into a separate output for each of the source node's audio channels." } }, + "ChapterInformation": { + "docs": "The **`ChapterInformation`** interface of the [Media Session API] represents the metadata for an individual chapter of a media resource (i.e. a video or audio file).\n\nThe chapter information for a given media resource is set when it is first created, via the `chapterInfo` property of the [MediaMetadata.MediaMetadata] constructor's initialization object. The property takes an array of `ChapterInformation` objects as its value.\n\nYou can access the chapter information for an existing [MediaMetadata] object via its [MediaMetadata.chapterInfo] property. This returns an array of `ChapterInformation` objects.", + "properties": { + "artwork": "The **`artwork`** read-only property of the\n[ChapterInformation] interface returns an `Array` of objects representing images associated with the chapter.", + "starttime": "The **`startTime`** read-only property of the\n[ChapterInformation] interface returns a number representing the start time of the chapter in seconds.", + "title": "The **`title`** read-only property of the\n[ChapterInformation] interface returns a string representing the title of the chapter." + } + }, "CharacterBoundsUpdateEvent": { - "docs": "The **`CharacterBoundsUpdateEvent`** interface is a [Event] that represents a request from the operating system to know the bounds of certain characters within an editable region that's attached to an [EditContext] instance.\n\nThis interface inherits properties from [Event].", + "docs": "The **`CharacterBoundsUpdateEvent`** interface is a [DOM event](https://developer.mozilla.org/en-US/docs/Web/API/Event) that represents a request from the operating system to know the bounds of certain characters within an editable region that's attached to an [EditContext] instance.\n\nThis interface inherits properties from [Event].", "properties": { "characterboundsupdateevent": "The **`CharacterBoundsUpdateEvent()`** constructor returns a new [CharacterBoundsUpdateEvent] object.", "rangeend": "The **`CharacterBoundsUpdateEvent.rangeEnd`** read-only property represents the offset of the last character within the editable text region for which the operating system needs the bounds.", @@ -1307,7 +1357,7 @@ "properties": { "frametype": "@AvailableInWorkers(\"service\")\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": "@AvailableInWorkers(\"service\")\n\nThe **`id`** read-only property of the [Client] interface returns the universally unique identifier of the [Client] object.", - "postmessage": "@AvailableInWorkers(\"service\")\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].", + "postmessage": "@AvailableInWorkers(\"service\")\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": "@AvailableInWorkers(\"service\")\n\nThe **`type`** read-only property of the [Client]\ninterface indicates the type of client the service worker is controlling.", "url": "@AvailableInWorkers(\"service\")\n\nThe **`url`** read-only property of the [Client]\ninterface returns the URL of the current service worker client." } @@ -1315,7 +1365,7 @@ "Clients": { "docs": "@AvailableInWorkers(\"service\")\n\nThe `Clients` interface provides access to [Client] objects. Access it via `[ServiceWorkerGlobalScope].clients` within a [service worker](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API).", "properties": { - "claim": "@AvailableInWorkers(\"service\")\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.", + "claim": "@AvailableInWorkers(\"service\")\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": "@AvailableInWorkers(\"service\")\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": "@AvailableInWorkers(\"service\")\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": "@AvailableInWorkers(\"service\")\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](https://developer.mozilla.org/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." @@ -1324,9 +1374,9 @@ "Clipboard": { "docs": "The **`Clipboard`** interface of the [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API) provides read and write access to the contents of the system clipboard.\nThis allows a web application to implement cut, copy, and paste features.\n\nThe system clipboard is exposed through the global [Navigator.clipboard] property.\n\nAll of the Clipboard API methods operate asynchronously; they return a `Promise` which is resolved once the clipboard access has been completed.\nThe promise is rejected if clipboard access is denied.\n\nAll the methods require a [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\nAdditional requirements for using the API are discussed in the [Security consideration](/en-US/docs/Web/API/Clipboard_API#security_considerations) section of the API overview topic.", "properties": { - "read": "The **`read()`** method of the [Clipboard] interface requests a copy of the clipboard's contents, fulfilling the returned `Promise` with the data.\n\nThe method can in theory return arbitrary data (unlike [Clipboard.readText], which can only return text).\nBrowsers commonly support reading text, HTML, and PNG image data — see [browser compatibility](#browser_compatibility) for more information.", - "readtext": "The **`readText()`** method of the [Clipboard] interface returns a `Promise` which fulfils with a copy of the textual contents of the system clipboard.\n\n> **Note:** To read non-text contents from the clipboard, use the [Clipboard.read] method instead.\n> You can write text to the clipboard using [Clipboard.writeText].", - "write": "The **`write()`** method of the [Clipboard] interface writes arbitrary data to the clipboard, such as images, fulfilling the returned `Promise` on completion.\nThis can be used to implement cut and copy functionality.\n\nThe method can in theory write arbitrary data (unlike [Clipboard.writeText], which can only write text).\nBrowsers commonly support writing text, HTML, and PNG image data — see [browser compatibility](#browser_compatibility) for more information.", + "read": "The **`read()`** method of the [Clipboard] interface requests a copy of the clipboard's contents, fulfilling the returned `Promise` with the data.\n\nThe method can in theory return arbitrary data (unlike [Clipboard.readText], which can only return text).\nBrowsers commonly support reading text, HTML, and PNG image data.", + "readtext": "The **`readText()`** method of the [Clipboard] interface returns a `Promise` which fulfills with a copy of the textual contents of the system clipboard.\n\n> [!NOTE]\n> To read non-text contents from the clipboard, use the [Clipboard.read] method instead.\n> You can write text to the clipboard using [Clipboard.writeText].", + "write": "The **`write()`** method of the [Clipboard] interface writes arbitrary [ClipboardItem] data such as images and text to the clipboard, fulfilling the returned `Promise` on completion.\nThis can be used to implement cut and copy functionality.\n\nThe method can in theory write arbitrary data (unlike [Clipboard.writeText], which can only write text).\nBrowsers commonly support writing text, HTML, and PNG image data.", "writetext": "The **`writeText()`** method of the [Clipboard] interface writes the specified text to the system clipboard, returning a `Promise` that is resolved once the system clipboard has been updated." } }, @@ -1338,26 +1388,45 @@ } }, "ClipboardItem": { - "docs": "The **`ClipboardItem`** interface of the [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API) represents a single item format, used when reading or writing clipboard data using [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.\n\n> **Note:** To work with text see the [Clipboard.readText] and [Clipboard.writeText] methods of the [Clipboard] interface.", + "docs": "The **`ClipboardItem`** interface of the [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API) represents a single item format, used when reading or writing clipboard data using [Clipboard.read] and [Clipboard.write] respectively.\n\nThe **`ClipboardItem`** interface enables developers to use a single type to represent a range of different data formats.\n\n> [!NOTE]\n> The `read()` and `write()` methods can be used to work with text strings and arbitrary data items represented by [Blob] instances. However, if you are solely working with text, it is more convenient to use the [Clipboard.readText] and [Clipboard.writeText] methods.", "properties": { - "clipboarditem": "The **`ClipboardItem()`** constructor creates a new [ClipboardItem] object, which represents data to be stored or retrieved via the [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API) [clipboard.write] and [clipboard.read] methods, respectively.\n\n> **Note:** Image format support varies by browser. See the browser compatibility table for the [Clipboard] interface.", + "clipboarditem": "The **`ClipboardItem()`** constructor creates a new [ClipboardItem] object, which represents data to be stored or retrieved via the [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API) [clipboard.write] and [clipboard.read] methods, respectively.\n\n> [!NOTE]\n> The `read()` and `write()` methods can be used to work with text strings and arbitrary data items represented by [Blob] instances. However, if you are solely working with text, it is more convenient to use the [Clipboard.readText] and [Clipboard.writeText] methods.\n\n> [!NOTE]\n> Image format support varies by browser. See the [browser compatibility table](/en-US/docs/Web/API/Clipboard#browser_compatibility) for the `Clipboard` interface.", "gettype": "The **`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": "The read-only **`presentationStyle`** property of the [ClipboardItem] interface returns a string indicating how an item should be presented.\n\nFor example, in some contexts an image might be displayed inline, while in others it might be represented as an attachment.", - "supports_static": "The **`supports()`** static method of the [ClipboardItem] interface returns `true` if the given is supported by the clipboard, and `false` otherwise.\n\nNote that the [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API) mandates support for plain text, HTML and PNG files.\nThe `supports()` method will always return `true` for these MIME types, so testing them is unnecessary .", - "types": "The read-only **`types`** property of the [ClipboardItem] interface returns an `Array` of available within the [ClipboardItem]" + "supports_static": "The **`supports()`** static method of the [ClipboardItem] interface returns `true` if the given is supported by the clipboard, and `false` otherwise.\n\nNote that the [Clipboard API](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API) mandates support for plain text, HTML and PNG files.\nThe `supports()` method will always return `true` for these MIME types, so testing them is unnecessary.", + "types": "The read-only **`types`** property of the [ClipboardItem] interface returns an `Array` of available within the [ClipboardItem]." } }, "CloseEvent": { "docs": "A `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.", "properties": { "closeevent": "The **`CloseEvent()`** constructor creates a new [CloseEvent] object.", - "code": "The **`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.", + "code": "The **`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 connection was closed.", "reason": "The **`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": "The **`wasClean`** read-only property of the [CloseEvent] interface returns `true` if the connection closed cleanly." } }, + "CloseWatcher": { + "docs": "The `CloseWatcher` interface allows a custom UI component with open and close semantics to respond to device-specific close actions in the same way as a built-in component.\n\nThe `CloseWatcher` interface inherits from [EventTarget].", + "properties": { + "cancel_event": "A `cancel` event is fired at a [CloseWatcher] object before the `close` event, so that `close` can be prevented from firing, if necessary. It is triggered by all close signals (e.g. the Esc key) as well as [CloseWatcher.requestClose].", + "close": "The **`close()`** method of the [CloseWatcher] interface lets you skip any logic in the `cancel` event handler and immediately fire the `close` event. It then deactivates the close watcher as if `destroy()` was called.", + "close_event": "A `close` event is fired at a [CloseWatcher] object when a close request was received and only fired if the [CloseWatcher.cancel_event] event that preceded the `close` one was not canceled.\n\nThe `close` event handler is where the code to close the UI component should be called: this ensures that the component will be closed properly either from the platform-specific close signal or from a call to [CloseWatcher.requestClose].", + "closewatcher": "The **`CloseWatcher()`** constructor creates a new [CloseWatcher] object.\n\nYou can create `CloseWatcher` instances without [user activation](https://developer.mozilla.org/en-US/docs/Web/Security/User_activation), and this can be useful to implement cases like session inactivity timeout dialogs. However, if you create more than one `CloseWatcher` without user activation, then the newly-created one will be grouped together with the last one, so a single close request will close them both. This means that it is important to call [CloseWatcher.destroy], [CloseWatcher.close], and [CloseWatcher.requestClose] properly.", + "destroy": "The **`destroy()`** method of the [CloseWatcher] interface deactivates the close watcher. This is intended to be called if the relevant UI element is torn down in some other way than being closed.\n\nAfter being deactivated, this `CloseWatcher` will no longer receive `cancel` or `close` events, and it will be possible to create new independent `CloseWatcher` instances.", + "requestclose": "The **`requestClose()`** method of the [CloseWatcher] interface fires a `cancel` event and if that event is not canceled with [Event.preventDefault], proceeds to fire a `close` event, and then finally deactivates the close watcher as if `destroy()` was called." + } + }, + "CommandEvent": { + "docs": "The **`CommandEvent`** interface represents an event notifying the user when a [HTMLButtonElement] element with valid [HTMLButtonElement.commandForElement] and [HTMLButtonElement.command] attributes is about to invoke an interactive element.\n\nThis is the event object for the `HTMLElement` [HTMLElement.command_event] event, which represents an action from an Invoker Control when it is invoked (for example when it is clicked or pressed).", + "properties": { + "command": "The **`command`** read-only property of the [CommandEvent] interface returns a string containing the value of the [HTMLButtonElement.command] property at the time the event was dispatched.", + "commandevent": "The **`CommandEvent()`** constructor creates a new [CommandEvent] object.", + "source": "The **`source`** read-only property of the [CommandEvent] interface returns an [EventTarget] representing the control that invoked the given command." + } + }, "Comment": { - "docs": "The **`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 '``'. In XML, like inside SVG or MathML markup, the character sequence '`--`' cannot be used within a comment.", + "docs": "The **`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 ``. In XML, like inside SVG or MathML markup, the character sequence `--` cannot be used within a comment.", "properties": { "comment": "The **`Comment()`** constructor returns a newly created\n[Comment] object with the optional string given in\nparameter as its textual content." } @@ -1367,8 +1436,8 @@ "properties": { "compositionevent": "The **`CompositionEvent()`** constructor creates a new [CompositionEvent] object.", "data": "The **`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": "The **`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": "The **`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 ).\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." + "initcompositionevent": "The **`initCompositionEvent()`**\nmethod of the [CompositionEvent] interface initializes the attributes of a\n`CompositionEvent` object instance.\n\n> [!NOTE]\n> The correct way of creating a [CompositionEvent] is to use\n> the constructor [CompositionEvent.CompositionEvent].", + "locale": "The **`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 an ).\n\n> [!WARNING]\n> 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": { @@ -1383,7 +1452,7 @@ "docs": "The `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](https://developer.mozilla.org/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\n \n \n \n \n \n \n \n \n \n \n
Number of inputs0
Number of outputs1
", "properties": { "constantsourcenode": "The **`ConstantSourceNode()`** constructor creates a new\n[ConstantSourceNode] object instance, representing an audio source which\nconstantly outputs samples whose values are always the same.", - "offset": "The 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> ```" + "offset": "The 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]\n> 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": { @@ -1403,7 +1472,7 @@ } }, "ContactsManager": { - "docs": "The **`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.", + "docs": "The **`ContactsManager`** interface of the [Contact Picker API](https://developer.mozilla.org/en-US/docs/Web/API/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": "The **`getProperties()`** method of the\n[ContactsManager] interface returns a `Promise` which resolves\nwith an `Array` of `strings` indicating which contact\nproperties are available.", "select": "The **`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." @@ -1413,7 +1482,7 @@ "docs": "The **`ContentIndex`** interface of the [Content Index API](https://developer.mozilla.org/en-US/docs/Web/API/Content_Index_API) allows developers to register their offline enabled content with the browser.", "properties": { "add": "The **`add()`** method of the\n[ContentIndex] interface registers an item with the [content index](https://developer.mozilla.org/en-US/docs/Web/API/Content_Index_API).", - "delete": "The **`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].", + "delete": "The **`delete()`** method of the\n[ContentIndex] interface unregisters an item from the currently indexed\ncontent.\n\n> [!NOTE]\n> Calling `delete()` only affects the index. It does not delete anything\n> from the [Cache].", "getall": "The **`getAll()`** method of the\n[ContentIndex] interface returns a `Promise` that resolves with\nan iterable list of content index entries." } }, @@ -1425,14 +1494,14 @@ } }, "ContentVisibilityAutoStateChangeEvent": { - "docs": "The **`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.", + "docs": "The **`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/Using_CSS_containment#relevant_to_the_user) and [skipping its contents](/en-US/docs/Web/CSS/CSS_containment/Using_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.", "properties": { "contentvisibilityautostatechangeevent": "The **`ContentVisibilityAutoStateChangeEvent()`** constructor creates a new [ContentVisibilityAutoStateChangeEvent] object instance.", - "skipped": "The `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." + "skipped": "The `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/Using_CSS_containment#skips_its_contents), or `false` otherwise." } }, "ConvolverNode": { - "docs": "The `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\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Number of inputs1
Number of outputs1
Channel count mode\"clamped-max\"
Channel count1, 2, or 4
Channel interpretation\"speakers\"
", + "docs": "The `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]\n> For more information on the theory behind Linear Convolution, see the [Convolution article on Wikipedia](https://en.wikipedia.org/wiki/Convolution).\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Number of inputs1
Number of outputs1
Channel count mode\"clamped-max\"
Channel count1, 2, or 4
Channel interpretation\"speakers\"
", "properties": { "buffer": "The **`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`.", "convolvernode": "The **`ConvolverNode()`** constructor of the [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API) creates a new\n[ConvolverNode] object instance.", @@ -1440,11 +1509,11 @@ } }, "CookieChangeEvent": { - "docs": "The **`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.", + "docs": "The **`CookieChangeEvent`** interface of the [Cookie Store API] is the event type of the [CookieStore.change_event] event fired at a [CookieStore] when any cookies are created or deleted.\n\n> [!NOTE]\n> 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.", "properties": { - "changed": "The **`changed`** read-only property of the [CookieChangeEvent] interface returns an array of the cookies that have been changed.", - "cookiechangeevent": "The **`CookieChangeEvent()`** constructor creates a new [CookieChangeEvent] object\nwhich is the event type of the [CookieStore.change_event] event fired at a [CookieStore] when any cookie changes occur.\nThis constructor is called by the browser when a change event occurs.\n\n> **Note:** This event constructor is generally not needed for production websites. It's primary use is for tests that require an instance of this event.", - "deleted": "The **`deleted`** read-only property of the [CookieChangeEvent] interface returns an array of the cookies that have been deleted by the given `CookieChangeEvent` instance." + "changed": "The **`changed`** read-only property of the [CookieChangeEvent] interface returns an array of the cookies that have been changed.\n\nNote that this will exclude cookies which were created with an expiry date in the past, as these cookies are immediately deleted.", + "cookiechangeevent": "The **`CookieChangeEvent()`** constructor creates a new [CookieChangeEvent] object\nwhich is the event type of the [CookieStore.change_event] event fired at a [CookieStore] when any cookie changes occur.\nThis constructor is called by the browser when a change event occurs.\n\n> [!NOTE]\n> This event constructor is generally not needed for production websites. It's primary use is for tests that require an instance of this event.", + "deleted": "The **`deleted`** read-only property of the [CookieChangeEvent] interface returns an array of the cookies that have been deleted by the given `CookieChangeEvent` instance.\n\nNote that this will include cookies which were created with an expiry date in the past, as these cookies are immediately deleted." } }, "CookieStore": { @@ -1483,14 +1552,20 @@ "CredentialsContainer": { "docs": "The **`CredentialsContainer`** interface of the [Credential Management API](https://developer.mozilla.org/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": "The **`create()`** method of the [CredentialsContainer] interface creates a new , which can then be stored and later used to authenticate users via [CredentialsContainer.get].\n\nThis method supports three different types of credential:\n\n- A password credential, which enables a user to sign in using a password.\n- A federated credential, which enables a user to sign in using a federated identity provider.\n- A public key credential, which enables a user to sign in with an authenticator such as a biometric reader built into the platform or a removable hardware token.\n\nNote that the [Federated Credential Management API (FedCM)](https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API) supersedes the federated credential type.", - "get": "The **`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](https://developer.mozilla.org/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](https://developer.mozilla.org/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](https://developer.mozilla.org/en-US/docs/Web/API/FedCM_API) uses `get()` to authenticate with federated identity providers (IdPs).\n- The [WebOTP API](https://developer.mozilla.org/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": "The **`preventSilentAccess()`** method of the [CredentialsContainer] interface sets a flag that specifies whether automatic log in is allowed for future visits to the current origin, then returns a `Promise` that resolves to `undefined`.\nFor example, you might call this, after a user signs out of a website to ensure that they aren't automatically signed in on the next site visit.\nMediation varies by origin, and is an added check point of browser stored credentials, informing a user of an account login status. This method is typically called after a user signs out of a website, ensuring this user's login information is not automatically passed on the next site visit.\n\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": "The **`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> `