Re: [csswg-drafts] [css-view-transitions-1] Can we make the `::view-transition-old` and `::view-transition-new` pseudos “:has-allowed pseudo-element”s? (#12630)

The CSS Working Group just discussed ``[css-view-transitions-1] Can we make the `::view-transition-old` and `::view-transition-new` pseudos “:has-allowed pseudo-element”s?``.

<details><summary>The full IRC log of that discussion</summary>
&lt;TabAtkins> vmpstr: i'm a little outside of my depth for this issue<br>
&lt;TabAtkins> vmpstr: it's about allowing the vt-pseudos to be part of the ":has-allowed pseudo-element" category<br>
&lt;TabAtkins> vmpstr: bramus would like it<br>
&lt;TabAtkins> vmpstr: I think there's some structural issues<br>
&lt;TabAtkins> vmpstr: the VT pseudos are not direct pseudos of the root<br>
&lt;TabAtkins> vmpstr: we have some syntactic sugar where we flatten and you can select as if they were<br>
&lt;TabAtkins> vmpstr: so I think :has() gets confusing when you consider that<br>
&lt;TabAtkins> vmpstr: writing ::view-transition-group:has(::view-transition-old:only-child)... not how you'd parse that<br>
&lt;TabAtkins> vmpstr: need to write :root:has(::view-transition-old:only-child)::view-transition-group<br>
&lt;TabAtkins> vmpstr: dbaron commented this would be the first :has-allowed pseudo<br>
&lt;TabAtkins> dbaron: we defined this category but it's not especially useful until we invent a combinator people can actually use for it<br>
&lt;TabAtkins> dbaron: :has() doesn't have a way to say "does *this* element has this pseudo-element<br>
&lt;TabAtkins> dbaron: we have syntax for a *child* with this pseudo, but not with *this* element<br>
&lt;TabAtkins> the = combinator rides again<br>
&lt;emilio> +q<br>
&lt;TabAtkins> dbaron: maybe we make it the default<br>
&lt;TabAtkins> dbaron: but either way I don't think it's ready quite yet<br>
&lt;TabAtkins> ack emilio<br>
&lt;emilio> +1<br>
&lt;TabAtkins> astearns: is there a list of :has-allowed pseudos?<br>
&lt;TabAtkins> dbaron: we have a concept, zero elements there yet<br>
&lt;TabAtkins> astearns: are vt-pseudos the likeliest first for this?<br>
&lt;TabAtkins> emilio: I think the VT ones are fairly complicated<br>
&lt;TabAtkins> emilio: they're also... you're not asking if an element has a pseudo, you're asking if a pseudo has another pseudo in it<br>
&lt;TabAtkins> emilio: that raises issues about what you can put in :has()<br>
&lt;dbaron> https://github.com/w3c/csswg-drafts/issues/11856<br>
&lt;TabAtkins> dbaron: Luke opened an issue on ::file-selector-button being allowed, that's an easier one to start with<br>
&lt;TabAtkins> astearns: so I suggest we defer until we've come up with an acceptable solution for something easier<br>
&lt;TabAtkins> TabAtkins: +1<br>
&lt;TabAtkins> vmpstr: sounds fine<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12630#issuecomment-4179268775 using your GitHub account


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

Received on Thursday, 2 April 2026 17:13:56 UTC