Summary: Implement the legacy :-moz-any selector as an alias of :is().

This means that it'll be more powerful, and also simpler to maintain for us.

This has been enabled in 81 beta/nightly and for the whole 82 cycle with no regriessions so far, see bug 561154.

This means that it will accept more selectors (like :is() does), which I don't expect to be problematic.

It also means that specificity may change in some cases, because the specificity of :-moz-any doesn't account for the inner selectors. This was a long-standing issue that this change fixes (bug 561154), but that can technically change behavior (thus the pref, and having it enabled on Nightly / Early beta for a while).

This last bit is pretty hard to use-count, because the specificity change in most cases won't end up resulting in an actual behavior change. I expect this to not be problematic either, because of the limited usage that this prefixed pseudo-class has, and because behavior is closer to what authors expect. As a data point, this change required no changes to the browser UI at all, which extensively used the :-moz-any() pseudo-class.

Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1666086

Standard: N/A, this is a legacy, prefixed pseudo-class, which we'll build on top of the standard alternative that we've shipped for a while.

Platform coverage: All

Preference: layout.css.moz-any-is-is.enabled

DevTools bug: N/A, devtools will work the same as they work with :is().

Other browsers: N/A, this is a -moz- prefixed pseudo-class.

web-platform-tests: There are tons of tests for :is(), but I don't plan to test the :-moz- prefixed pseudo-class in WPT.

Cheers,

 -- Emilio
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to