Intent to Implement :matches()
Contact Emails
Spec
https://drafts.csswg.org/selectors-4/#matches
Design Doc
https://docs.google.com/document/d/1dfbT1mnIuwm9HTyUWDe5PS5FygZgMuQGsyw49oxBcXk/edit?usp=sharing
TAG Review
https://github.com/w3ctag/design-reviews/issues/219
Summary
CSS Selectors 4 will be introducing the matches-any pseudo-class :matches().
Motivation
The motivation for implementing :matches() is to eventually remove the need for the vendor-specific prefix to the :-webkit-any() selector, which is currently implemented in Chrome, and improve interoperability. Safari already implements :matches(), so implementing this in Chrome should further encourage Edge and Firefox to implement it also. Edge has not shipped any implementation of :matches() and Firefox, like Chrome, has a vendor-specific prefix to the selector (:-moz-any()).
Browsers Referenced
Browser | Version | Operating System |
Chrome | 62 | Debian Linux |
Firefox | 57 | Windows 10 |
Safari | 11 | macOS High Sierra |
Edge | 16 | Windows 10 |
Risks
Interoperability and Compatibility
There should be low interoperability risk as Safari has already shipped this feature. Chrome also implements similar functionality through the selector :-webkit-any(), however without the capability of processing complex selectors as arguments. Firefox and Edge would then be further influenced to implement :matches().
The removal of :-webkit-any() will not occur during the implementation of :matches(). Use-counters will be added to both selectors to aid in the decision of removing :-webkit-any() in the future. :-webkit-any() has already been deprecated by Webkit.
There should be low compatibility risk when adding this feature as it has most of the required functionality implemented already by :-webkit-any() and only requires the additional implementation of complex selector lists.
Comparison between browsers and their implementations of some of these features can be found here.
Ergonomics
N/A.
Activation
It should not be challenging for developers to use this feature once it is implemented.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes.
Feature dashboard link
https://www.chromestatus.com/feature/5445716612743168
Requesting approval to ship?
No.
--
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+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/9879fad2-46e0-45c0-a359-2416cf085173%40chromium.org.