- From: viralipurbey via GitHub <noreply@w3.org>
- Date: Wed, 29 Apr 2026 22:21:04 +0000
- To: public-svg-issues@w3.org
viralipurbey has just labeled an issue for https://github.com/w3c/svgwg as "Agenda+": == Clarify SMIL animation behavior when path 'd' value is an empty string == ## Summary The SVG path data grammar clearly allows an empty string as a valid `d` value (zero path commands): `svg-path ::= wsp* moveto-drawto-command-groups? wsp* ` However, the spec does not define how SMIL animation should handle empty path values in `from`, `to`, or `by` attributes, specifically regarding interpolation and addition with non-empty paths. ## Questions 1. When an empty path and a non-empty path are animation endpoints (`from=""` `to="M0,0 L100,0"`), should the animation use **discrete** interpolation (since they are structurally incompatible)? 2. Should addition of an empty path with a non-empty path **fail** (e.g., `additive="sum"` where the animated empty result cannot be added to a non-empty base value)? 3. Is an empty path an **additive identity** (adding it to any path yields that path unchanged), or is it structurally incompatible with non-empty paths for addition purposes? ## Current browser behavior (Firefox) Firefox treats `d=""` as a valid value that is structurally incompatible with non-empty paths: | Scenario | Firefox behavior | |----------|-----------------| | `from=""` `to="M..."` | Discrete animation (snaps from empty to path at 50%) | | `from="M..."` `to=""` | Discrete animation (snaps from path to empty at 50%) | | `by=""` with non-empty base | No animation (addition fails) | | `additive="sum"` with empty + non-empty | No animation (addition fails) | | `from=""` `to=""` | No visible change (both empty) | ## Proposed clarification 1. An empty path and a non-empty path are **structurally incompatible**, they cannot be interpolated or added. 2. When `from` and `to` are structurally incompatible, **discrete animation** applies. 3. When addition is required but operands are incompatible (e.g., `by=""` with non-empty base, or `additive="sum"` where the animation result cannot be added to the base), the animation **fails** (base value is preserved). 4. An empty path is **not** an additive identity, it has zero segments and is incompatible with paths that have segments. See https://github.com/w3c/svgwg/issues/1102 -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Wednesday, 29 April 2026 22:21:05 UTC