Re: [csswg-drafts] [selectors] Should :not(foo) match the host of the shadow tree? (#10179)

Whoops, sorry for missing this!

For the general behavior, @lilles got it exactly right - the point of featurless-ness is to make it so that authors don't have to think about the host elements most of the time and will still get the likely intended behavior, so `:not(.foo)` should *not* match a host element, for the same reason `*` doesn't.

(In other words, Lea's request that `X, :not(X)` be equivalent to `*` is still preserved, since in *both* cases the host element isn't matched so long as X isn't `:host`.)

For the more complex cases, I hadn't actually thought thru those cases when writing up the feature, but I think @Loirooriol's breakdown works well.

For the more complex :not() cases, I think we might want to add the following:

* Compound selectors are allowed to match the host only if all the contained simple selectors are allowed to match the host.
* Complex selectors are allowed to match the host only if the subject compound selector is allowed to match the host. (So in `:host > .foo`, the first compound selector is allowed to match the host (and does), but the complex selector as a whole isn't allowed to match the host.)

This would make both of the complex :not() cases "not allowed to match the host".

-- 
GitHub Notification of comment by tabatkins
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/10179#issuecomment-2093869789 using your GitHub account


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

Received on Friday, 3 May 2024 23:05:55 UTC