From de011c19c03989375f5a751d2b03602498cc52e5 Mon Sep 17 00:00:00 2001 From: ther12k Date: Mon, 22 Jun 2026 03:32:02 +0000 Subject: [PATCH] fix: render defaultValue/defaultChecked in SSR (#18446) defaultValue/defaultChecked are DOM properties, not HTML attributes, so they were being dropped from the SSR output for and Non-input elements still drop the property (no HTML equivalent). The spread path already handled this at runtime via `$.attributes()`; this keeps the non-spread form symmetric. Adds an SSR regression test covering both static and bound values across text/checkbox/radio inputs and textareas. --- .../fix-ssr-defaultvalue-defaultchecked.md | 5 +++ .../server/visitors/shared/element.js | 31 +++++++++++++++++-- .../samples/input-default-value/_config.js | 3 ++ .../input-default-value/_expected.html | 7 +++++ .../samples/input-default-value/main.svelte | 11 +++++++ 5 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 .changeset/fix-ssr-defaultvalue-defaultchecked.md create mode 100644 packages/svelte/tests/server-side-rendering/samples/input-default-value/_config.js create mode 100644 packages/svelte/tests/server-side-rendering/samples/input-default-value/_expected.html create mode 100644 packages/svelte/tests/server-side-rendering/samples/input-default-value/main.svelte diff --git a/.changeset/fix-ssr-defaultvalue-defaultchecked.md b/.changeset/fix-ssr-defaultvalue-defaultchecked.md new file mode 100644 index 0000000000..5458999e58 --- /dev/null +++ b/.changeset/fix-ssr-defaultvalue-defaultchecked.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: render `defaultValue`/`defaultChecked` as SSR-visible `value`/`checked` on ``, and `defaultValue` as text content on ` + diff --git a/packages/svelte/tests/server-side-rendering/samples/input-default-value/main.svelte b/packages/svelte/tests/server-side-rendering/samples/input-default-value/main.svelte new file mode 100644 index 0000000000..049c0ededb --- /dev/null +++ b/packages/svelte/tests/server-side-rendering/samples/input-default-value/main.svelte @@ -0,0 +1,11 @@ + + + + + + + + +