[svgwg] Issue: Clarify SMIL animation behavior when path 'd' value is an empty string (#1102) marked as Agenda+

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