diff --git a/.changeset/wicked-cheetahs-juggle.md b/.changeset/wicked-cheetahs-juggle.md
new file mode 100644
index 000000000000..58dca62bec61
--- /dev/null
+++ b/.changeset/wicked-cheetahs-juggle.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: allow self-closing tags within math namespace
diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js
index 03dfaebcb793..d5689e5d5592 100644
--- a/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js
+++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js
@@ -173,7 +173,8 @@ export function RegularElement(node, context) {
if (
context.state.analysis.source[node.end - 2] === '/' &&
!is_void(node_name) &&
- !is_svg(node_name)
+ !is_svg(node_name) &&
+ !is_mathml(node_name)
) {
w.element_invalid_self_closing_tag(node, node.name);
}
diff --git a/packages/svelte/tests/validator/samples/invalid-self-closing-tag/input.svelte b/packages/svelte/tests/validator/samples/invalid-self-closing-tag/input.svelte
index 376c9f79bd84..07582e834341 100644
--- a/packages/svelte/tests/validator/samples/invalid-self-closing-tag/input.svelte
+++ b/packages/svelte/tests/validator/samples/invalid-self-closing-tag/input.svelte
@@ -1,6 +1,7 @@
+