[csswg-drafts] [selectors-4] Allow more pseudo-classes following a pseudo-element (#7085)

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

== [selectors-4] Allow more pseudo-classes following a pseudo-element ==
There is already an issue mentioned in [3.6.3. Pseudo-classing Pseudo-elements](https://drafts.csswg.org/selectors/#pseudo-element-states) (I did not find the corresponding issue on GH):

> A [pseudo-element](https://drafts.csswg.org/selectors/#pseudo-element) may be immediately followed by any combination of the [user action pseudo-classes](https://drafts.csswg.org/selectors/#useraction-pseudos) [...]
>
> ISSUE 3 Clarify that [:not()](https://drafts.csswg.org/selectors/#negation-pseudo) and [:is()](https://drafts.csswg.org/selectors/#matches-pseudo) can be used when containing above-mentioned pseudos.

I think the issue can be completed with:

- `:where()`: only when containing user-action pseudo-classes as arguments
- `:has()` : only when following a pseudo-element with an internal structure
- `:defined`: I'm not sure about this one because it is defined as matching *elements that are fully defined, as dictated by the host language*, not as matching *pseudo-element*

But I wonder if I'm missing something because: 
- `::before:hover` does not work in Chrome/Firefox (not tested in other browsers)
- [MDN browser compat table](https://developer.mozilla.org/en-US/docs/Web/CSS/:hover) includes *Pseudo-element support* with support from early versions of all browsers: is it the support of `:hover` *followed by* a pseudo-element, or the other way around? The french version defines that *the `:hover` pseudo-class can follow any pseudo-element*, but not the english version. Non-english versions are often translations of the english text. 
- I could not find any related issues on Chromium Issues or Mozilla Firebug
- Chrome DevTools does not allow to simulate user-action pseudo-classes like `:hover` on a pseudo-element (cf. this [SO issue](https://stackoverflow.com/questions/35743860/how-do-you-set-hover-using-chrome-dev-tools-on-pseudo-elements?rq=1))
- Firefox DevTools allows to set `:hover` but it triggers this state on the originating element

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


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

Received on Thursday, 24 February 2022 08:49:24 UTC