Intent to Ship: CSSPseudoElement interface

62 views
Skip to first unread message

Daniil Sakhapov

unread,
7:38 AM (9 hours ago) 7:38 AM
to blink-dev
Contact emails
sakh...@chromium.org

Specification
https://www.w3.org/TR/css-pseudo-4/#CSSPseudoElement-interface

Summary
CSSPseudoElement interface is a way to represent a pseudo-element in JS.

CSSPseudoElement is returned from Element.pseudo(type), where `type` is currently: ::after, ::before, ::marker.
CSSPseudoElement is a proxy object that represents a pseudo-element, so, unlike a pseudo-element, CSSPseudoElement always exists.
CSSPseudoElement has the following attributes/methods: 
- The type attribute is a string representing the type of the pseudo-element.
- The element attribute is the ultimate originating element of the pseudo-element.
- The parent attribute is the originating element of the pseudo-element (Either Element of CSSPseudoElement for nested pseudo-elements).
- The pseudo(type) method to retrieve nested pseudo-elements.

Blink component
Blink>CSS

Risks
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
http://wpt.fyi/css/css-pseudo/events-on-pseudo-element.tentative.html http://wpt.fyi/css/css-pseudo/CSSPseudoElement-identity.html

Tracking bug
https://issues.chromium.org/issues/40639103

Estimated milestones
Shipping on desktop147
Shipping on Android147
Shipping on WebView147

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5194399398756352?gate=6320299305598976

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/686fbd23.2b0a0220.3a1521.1022.GAE%40google.com


This intent message was generated by Chrome Platform Status.

Mike Taylor

unread,
10:02 AM (7 hours ago) 10:02 AM
to Daniil Sakhapov, blink-dev


On 2/20/26 7:37 a.m., Daniil Sakhapov wrote:
https://www.w3.org/TR/css-pseudo-4/#issue-22d457b7 suggests the interface may evolve. How big is the risk of us shipping now, and having to chan 


Summary
CSSPseudoElement interface is a way to represent a pseudo-element in JS.

CSSPseudoElement is returned from Element.pseudo(type), where `type` is currently: ::after, ::before, ::marker.
CSSPseudoElement is a proxy object that represents a pseudo-element, so, unlike a pseudo-element, CSSPseudoElement always exists.
CSSPseudoElement has the following attributes/methods: 
- The type attribute is a string representing the type of the pseudo-element.
- The element attribute is the ultimate originating element of the pseudo-element.
- The parent attribute is the originating element of the pseudo-element (Either Element of CSSPseudoElement for nested pseudo-elements).
- The pseudo(type) method to retrieve nested pseudo-elements.

Blink component
Blink>CSS

Risks
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
http://wpt.fyi/css/css-pseudo/events-on-pseudo-element.tentative.html http://wpt.fyi/css/css-pseudo/CSSPseudoElement-identity.html

Can we expand testing a bit here? There's nothing covering ::after or ::marker (maybe redundant, but also trivial to add), or the case where we don't expect .element and .parent to be the same.

Tracking bug
https://issues.chromium.org/issues/40639103

Estimated milestones
Shipping on desktop 147
Shipping on Android 147
Shipping on WebView 147

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5194399398756352?gate=6320299305598976

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/686fbd23.2b0a0220.3a1521.1022.GAE%40google.com


This intent message was generated by Chrome Platform Status.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAH3Z92-59h%2BdTDdy_8gXQ9zsgsEr%3DPvUs_tCBPUH1MidH9UPcA%40mail.gmail.com.

Vladimir Levin

unread,
2:23 PM (2 hours ago) 2:23 PM
to Daniil Sakhapov, blink-dev
On Fri, Feb 20, 2026 at 7:37 AM Daniil Sakhapov <sakh...@chromium.org> wrote:
Contact emails
sakh...@chromium.org

Specification
https://www.w3.org/TR/css-pseudo-4/#CSSPseudoElement-interface

Summary
CSSPseudoElement interface is a way to represent a pseudo-element in JS.

CSSPseudoElement is returned from Element.pseudo(type), where `type` is currently: ::after, ::before, ::marker.
CSSPseudoElement is a proxy object that represents a pseudo-element, so, unlike a pseudo-element, CSSPseudoElement always exists.
CSSPseudoElement has the following attributes/methods: 
- The type attribute is a string representing the type of the pseudo-element.
- The element attribute is the ultimate originating element of the pseudo-element.
- The parent attribute is the originating element of the pseudo-element (Either Element of CSSPseudoElement for nested pseudo-elements).
- The pseudo(type) method to retrieve nested pseudo-elements.

Note for posterity: these are all readonly.
 


Blink component
Blink>CSS

Risks

Is there supporting evidence for this? I'm curious about real world use cases, given that the proposed interface seems fairly limited. Is it possible to put together a brief explainer that may capture the value of this feature? Or is the idea that this is the first step and presumably more useful functionality will be added? If it's the latter, is there a list of other functionality that may be planned in the future?

Thanks!
Vlad
 

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
http://wpt.fyi/css/css-pseudo/events-on-pseudo-element.tentative.html http://wpt.fyi/css/css-pseudo/CSSPseudoElement-identity.html

Tracking bug
https://issues.chromium.org/issues/40639103

Estimated milestones
Shipping on desktop147
Shipping on Android147
Shipping on WebView147

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5194399398756352?gate=6320299305598976

Links to previous Intent discussions
Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/686fbd23.2b0a0220.3a1521.1022.GAE%40google.com


This intent message was generated by Chrome Platform Status.

--
Reply all
Reply to author
Forward
0 new messages