w3c / fxtf-drafts

Mirror of https://hg.fxtf.org/drafts

Home Page:https://drafts.fxtf.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[motion-1] `offset-path` should accept `<url>` instead of `<url()>`

cdoublev opened this issue · comments

I suspect the intended production is <url>, which also accepts <src()>.

https://drafts.fxtf.org/motion-1/#typedef-offset-path


Aside

<url()> and <src()> are never defined with their own production rules:

The <url> type, written with the url() and src() functions, represents a URL, which is a pointer to a resource.

The syntax of <url> is:

<url> = url( <string> <url-modifier>* ) |
        src( <string> <url-modifier>* )

For legacy reasons, a url() can be written without quotation marks around the URL itself, in which case it is specially-parsed as a <url-token>

https://drafts.csswg.org/css-values-4/#url-value

Therefore I considered <url-token> as a replacement of <url>, instead of increasing maintenance cost with a "custom" production rule.

Ideally:

<url> = <url()> | <src()>
<url()> = url( <string> <url-modifier>* ) | <url-token>
<src()> = src( <string> <url-modifier>* )

I suspect the intended production is , which also accepts <src()>.

Yup.

<url()> and <src()> are never defined with their own production rules:

Because it isn't necessary for our purposes. ^_^ But I can do that, I suppose.

Therefore I considered as a replacement of , instead of increasing maintenance cost with a "custom" production rule.

This is very much incorrect. All token productions are usually wrong for use as values directly, as they only correspond to particular literal syntaxes and don't allow for other ways of producing the same value.

But it's especially wrong for <url>, since url(foo) is a <url-token> but url("foo") is a <function-token> (followed by a string and a close-paren).

Thanks! 🆒