[csswg-drafts] [selectors-4] Clarify how to parse `S` in `<:nth-child()>` (#7398)

cdoublev has just created a new issue for https://github.com/w3c/csswg-drafts:

== [selectors-4] Clarify how to parse `S` in `<:nth-child()>` ==
The value definitions of [`<:nth-child()>`](https://drafts.csswg.org/selectors-4/#the-nth-child-pseudo) and [`<:nth-last-child()>`](https://drafts.csswg.org/selectors-4/#the-nth-last-child-pseudo) includes `S` defined as *a `<compound-selector-list>` [parsed as a forgiving selector list](https://drafts.csswg.org/selectors-4/#parse-as-a-forgiving-selector-list)*. But the first step of *parsing as a forgiving selector list* is:

> 1. Parse a list of `<complex-selector>`s from `input`, and let `selector list` be the result.

I assume that `:nth-child(odd of ul > li)` should be invalid because `ul > li` is a `<complex-selector>`, but `:nth-child(odd of li.foo, li.bar)` is valid because `li.foo, li.bar` is a `<compound-selector-list>`.

I guess that this situation comes from the resolution and the commits mentionned in #1292 and #3760. 

I suggest to replace `S` by `<forgiving-compound-selector-list>` and to define it as *`<forgiving-compound-selector-list>` is identical to `<forgiving-selector-list>`, except it parses its components as <compound-selector> rather than `<complex-selector>`*. Selectors 5 can replace `<forgiving-compound-selector-list>` by `<forgiving-selector-list>` if `<complex-selector>`s become valid.

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7398 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 21 June 2022 18:46:34 UTC