[css-cascade][cssom] Issues with legacy name alias · Issue #4839 · w3c/csswg-drafts (original) (raw)
https://drafts.csswg.org/css-cascade-4/#legacy-name-alias
legacy name aliases
When the old property’s syntax is identical to or a subset of the value space of the new property’s syntax, the two names are aliased with an operation on par with case-mapping: at parse time, the old property is converted into the new property. This conversion also applies in the CSSOM, both for string arguments and property accessors: requests for the old property name transparently transfer to the new property name instead.
Which property, if any, uses a subset of the value space?
As far as I can tell, the only uses of the "legacy name alias" concept are -webkit-appearance
and word-wrap
, neither of which are specified as having a subset of the value space of the new property's syntax.
$ git grep "legacy name alias"
css-cascade-4/Overview.bs: <dt><dfn lt="legacy name alias">legacy name aliases</dfn>
css-cascade-4/Overview.bs: <css>old-name</css> is a <a>legacy name alias</a> for <css>new-name</css>,
css-text-3/Overview.bs: <p>For legacy reasons, UAs must treat 'word-wrap' as an [=legacy name alias=]
css-ui-4/Overview.bs:as a [=legacy name alias=] of 'appearance'.
https://compat.spec.whatwg.org/ doesn't reference this concept, but it probably should. -webkit-linear-gradient()
and friends aren't simple aliases, but also aren't subsets. How is this handled in serialization?
The definition of legacy name alias also monkey patches CSSOM. I think it should be defined in the relevant algorithms in CSSOM, like https://drafts.csswg.org/cssom-1/#dom-cssstyledeclaration-getpropertyvalue and https://drafts.csswg.org/cssom-1/#dom-cssstyledeclaration-setproperty