3 ms·
It's already in Chrome Beta meaning "has" will be shipping in Chrome within 1-4 weeks. It's not like Safari are leading with this feature and others are catchin
by gernb 4y ago
It's already in Chrome Beta meaning "has" will be shipping in Chrome within 1-4 weeks. It's not like Safari are leading with this feature and others are catching up.
Leading is when you implement something and no one else as started. Example, Firefox and Chrome shipped WebGL2 and Safari did nothing for 4 years.
When multiple browsers are implementing the same standard at the same time and one ships a couple of weeks earlier that's not leading. Leading implies followers. Maybe in this case Firefox will follow both Chrome and Safari since Firefox has (no "has" support in Firefox Nightly)
- samwillis 4y agoI didn’t use the word “leading” or imply they were… I’m happy that Safari, who have been at times been criticised for not keeping up, are on this occasion helping to push web standards forward. That has nothing to do with who was “first”, but in this case they happen to have been. If they were two weeks behind I would have made the same comment on a thread about a blog post on their own blog.
- bobwaycott 4y ago> It's not like Safari are leading with this feature and others are catching up. You seem to be reacting with some anti-WebKit bias here, didn’t read the article about the history of this feature, or are taking a very odd view of “leading” to avoid giving credit to the WebKit team. The article gives the history, and links you to it: - eyeo approached Igalia to sponsor work on has:() in early 2021 (Igalia blogged about it May 2021, after having been working on it for a little while) - Igalia worked on early prototypes to collect data and write tests to drive the conversation around :has() forward - the WebKit team at Apple picked it up and started doing the hard work of a real and powerful implementation - they shipped :has() in Safari Technology Preview 137 in December 2021 - they shipped :has() in Safari 15.4 on March 14, 2022 - Igalia did the engineering work to implement :has() in Chromium, which will ship in Chrome 105 on August 30, 2022 - the Chrome issue for :has(), which was created in May, you’ll see it openly references using WebKit’s work and approach - other browsers built on Chromium won’t be far behind - Mozilla is currently working on the Firefox implementation > It's not like Safari are leading with this feature and others are catching up. Leading is when you implement something and no one else as started. I think, given the timeline and everyone who is actively involved referencing WebKit with the real-world proven and shipped implementation, it’s exactly like that. > When multiple browsers are implementing the same standard at the same time and one ships a couple of weeks earlier that's not leading. Leading implies followers. This isn’t a couple-week lag. WebKit has (and continues to) lag in areas—but :has() isn’t one of them, as WebKit is literally the reference implementation here, was in Tech Preview 8 months ago, and has been released in Safari for 5 months. I think it’s fair and accurate to acknowledge that WebKit :has(followers).
- capitainenemo 4y agoWell, it's there in firefox, it's just off by default, just like it was in chrome until this release.. about:config layout.css.has-selector.enabled The off by default is presumably due to fact that spec was not exactly settled yet, at least judging by discussion here: https://bugzilla.mozilla.org/show_bug.cgi?id=418039#c44 https://bugzilla.mozilla.org/show_bug.cgi?id=418039#c44
- clairity 4y agothanks! i was just last week looking for what the config might be to turn this on for firefox and didn't find it (didn't try very hard tho). i tried using firefox's experimental :has() on my personal css framework that's using all the latest features css features like :has(). on first glance, it looks like there are some bugs with firefox, but i'm excited that they're working on it. the simple parent selector case seems to work, but complex layout seems to confuse the layout engine. :has() is easily my most anticipated css feature since grid at least (wish safari would support subgrid!).
- capitainenemo 4y agoOne interesting thing about that Firefox bug is that they support pseudo inside :has() which sounds really useful, but that the currently in-flux spec has just banned that, so they'll have to turn it off.
- alwillis 4y agoIt's not like Safari are leading with this feature and others are catching up. With this particular feature, that's exactly what's happening. It's not the first time Apple shipped a new web platform feature before Google and Mozilla; it's the fact that it's been the most highly anticipated CSS feature in the recent history of the web platform. Leading implies followers. Apple shipped :has() December 2021 in Safari Technology Preview 137; it's been shipping in production since March 14, 2022 with Safari 15.4. That's a big gap in web time before Chrome ships in production.