svelte
svelte copied to clipboard
docs: note html structure breaking change
⚠️ No Changeset found
Latest commit: fc576bab0b4f37f5736c162a54b10ad49df61c7e
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
I still think we ought to consider this a bug. Fixing it is tricky but surely not impossible
The change is still breaking in other cases, we can switch the example if you want
Attempted to fix the tbody case statically previously, but more involved cases were very hard to fix. But I just thought of another idea: Special-Case runtime function for descending into tr elements, which checks if the node is a tbody and in that case descent once more. Maybe that could work?
I wouldn't consider this a bug, but given that Svelte 4 would patch mismatches from SSR HTML (such as the table case), and we no longer do that in Svelte 5, we need to just document this. We already capture most cases via SSR, but that doesn't take into account that Svelte 4 allowed the SSR to be different from the client. We only allow that in Svelte 5 in certain cases (like if blocks), so it will definitely be a migration note unless we want to support all types of mismatch like Svelte 4 did.
It's not just about hydration. It's about the fact that this works and this doesn't. It's an ugly breaking change and — since it's valid HTML — definitely a bug
Per https://github.com/sveltejs/svelte/pull/12628#issuecomment-2361774370, I've changed my view of this. I think the compiler errors/warnings could be more informative, but that's a separate chunk of work