6 ms·
Speaking from personal experience as a developer (although YMMV) - this is totally true. And I'm not even talking about some newfangled APIs like WebUSB and su
by kouteiheika 5y ago
Speaking from personal experience as a developer (although YMMV) - this is totally true.
And I'm not even talking about some newfangled APIs like WebUSB and such (I don't really care about those personally). Safari's handling of regular HTML + CSS is regularly broken compared to other browsers. (At least in my experience.)
Open the site in Chromium. Yep it works. Open the site in Firefox. Yep it works. Open the site in Safari. Ugh... it's broken.
That's something that I encounter on a regular basis.
It's really inexcusable that Apple, being the richest company in the world, has a web browser that's this bad. But they don't really have any incentive to do better. Thanks to their walled garden the only available web browser on iOS is Safari, and since no developer can afford to ignore iOS as a platform they have no choice but to deal with it.
- teruakohatu 5y agoHistory is just repeating itself. If you capture enough browser market share, there is no incentive improve handling of web content that does not materially help the bottom line. IE gave us wonderful features (XMLHTTPRequest) but as soon as MSFT found they had a monopoly, development stalled and the world got stuck with IE6, which lacked even basic features like PNG image alpha transparency. When/if a court orders Apple to allow alternative web engines on iOS, and they start losing market share to Firefox, Chrome or Edge because they are including features that Safari does not, Apple will finally put some effort into Safari.
- halostatue 5y agoApple _does_ put effort into Safari. It’s just not on the parts that you and other developers want it to be on. It’s definitely on the parts that I (as a user) want it to be on (security, privacy, and battery life in roughly that order). It is unlikely that a court will be able to force Apple to expose OS APIs that would allow for the insecurity of WebUSB or WebMIDI on iOS, even if they do force other engines. And that’s a good thing.
- afavour 5y agoYou’re talking as if it’s an either/or situation. For a company the size of Apple it definitely isn’t. They could fix long-standing bugs, implement web standards others have had for years and improve security, privacy and battery life. They just don’t.
- halostatue 5y agoNot necessarily. There are “web standards” pushed by Google that are inherently inimical to increased privacy and cannot be implemented with sufficient security for a billion devices. I have to use Chrome and Chromium-based browsers for a lot of what I do, and the very first thing I do when I have to set it up or configure a new profile is _disable_ crap like: - Web USB - Web MIDI - Web HID - Web Push - Web Motion Sensors - Site protocol handlers - Web Serial Ports - Web local file editing - Payment handlers - VR - Attention That is, I make it so that sites aren’t even allowed to ASK me for those permissions. I know that a regular did a Web MIDI site recently that is sort of neat, but the protocol is essentially impossible to secure. Each and every single one of those things provides additional security risk, fingerprinting opportunities, and privacy leaks BY DESIGN, and I can’t ever see turning them on.
- afavour 5y agoI feel like Web USB and Web MIDI always come up in conversations like these and I don’t think I’ve ever met anyone that cares too deeply about either. Don’t get me wrong, I know there’s a market for them, but in the context of this conversation they just feel like diversions. When I talk about Apple dedicating resources to Safari I mean that IndexedDB was broken for years. And was broken again just last month: https://www.theregister.com/2021/06/16/apple_safari_indexeddb_bug/ https://www.theregister.com/2021/06/16/apple_safari_indexedd... This isn’t engineering that priotisises battery life. This is flat out neglect. Aren’t there unit tests for these kind of things pre-release? I don’t want to be able to interface with a MIDI keyboard on my site, I just want to be able to store data reliably.
- 5y ago
- skhr0680 5y agoHey, IE6 had PNG alpha, as long as you did some black magic to your PNG files to make the alpha work, which is really the story of IE6.
- kickscondor 5y agoThis has been my experience over the past several years as well. My particular issues have been with the Canvas element and with SVG support (which is insanely buggy - even the dev tools are bugged) but there are also occasional layout issues. I definitely feel like comparisons to IE are apt.
- BigJono 5y ago> and with SVG support (which is insanely buggy - even the dev tools are bugged) I ran into this on a project a year ago, where our app was completely and critically fucked on Safari with no obvious path to fixing it, short of tearing out a ton of custom data visualisation stuff based on SVG and rewriting it from scratch to use a whole different approach like canvas. It's one thing to have a rendering bug like Chrome had with flex box a while back where it would stretch elements vertically in certain situations against the spec, there's enough ways to do things in CSS that that can be worked around with a bit of tinkering. But when you've got a rendering bug and the dev tools doesn't accurately represent what's being rendered, it leaves the developer in a terrible situation where they're stuck with a black box with a broken interface so they can't even tell what the true result is, let alone see the inner workings. I was lucky we only had 5-10 people trying to use it on Safari and I could just say sorry and recommend Chrome. But I can't imagine how frustrating a similar situation would be with a large number of users.
- jw14 5y agoBroken HTML+CSS in Safari? Examples? I started using Safari as my daily driver because I use all apple devices and I like extending my battery life. Before deciding that, I did stints with Firefox and Brave, both of whom had poor sync'ing. I can't remember the last time a site had broken HTML/CSS with Safari. My impression is the desire to have good mobile support keeps Safari support alive. I think I encountered more broken CSS when I was using Firefox.
- kouteiheika 5y ago> Broken HTML+CSS in Safari? Examples? I didn't mean that as "broken in the wild". I meant as "broken when I'm actually developing a website". > I can't remember the last time a site had broken HTML/CSS with Safari. My impression is the desire to have good mobile support keeps Safari support alive. I think I encountered more broken CSS when I was using Firefox. You're not seeing broken websites on Safari because everyone's forced to test (and fix!) their websites for Safari due to its market share. On the other hand Firefox's market share is relatively low, and dwindling day-by-day, so there's less incentive for everyone to actually test and fix Firefox-only issues. That said, I use Firefox as my main web browser, and personally I find it very rare for something to be broken under it, even when it's not officially supported. It probably highly depends on which exact sites you visit though.
- dylan604 5y agoI have <div> elements with background-image assigned via CSS. Those divs require different CSS settings to get the height to layout correctly that FF/Chrome do not need. Those same divs have border-radius applied, and are nested in another div with overflow:hidden. In FF/Chrome, the image scales as one would expect. In desktop Safari, during the CSS transition, the border radius of the overflowing element goes away and the element with the scale suddenly has square corners outside of the overflow. Once the transition ends, the corners disappear again. This is on the Safari Technology Preview version
- wbobeirne 5y agoI'm constantly having to add `translateZ(0)` to elements to get them to handle z-indexing or overflow: hidden correctly in Safari.
- alwillis 5y agoOpen the site in Chromium. Yep it works. Open the site in Firefox. Yep it works. Open the site in Safari. Ugh... it's broken. This is unacceptable from professional developers. Progressive enhancement is a thing. Apple announced at last year’s WWDC (https://developer.apple.com/wwdc20/10663 https://developer.apple.com/wwdc20/10663) the areas where they improved interoperability with other browsers and that Safari passed 140,000 interoperability tests: We made a really big effort this year to improve Safari's interoperability with other browsers. One way to measure that is web platform tests. It's a set of tests used by browser makers to ensure interoperability, so your web content operates the way you expect across browsers. So I'm pleased to announce improved interoperability for service workers, XHR + Fetch, pointer events, CSS, SVG, web assembly, and many more areas. Safari passes a hundred and forty thousand new interoperability test cases this year. And you can look forward to continued progress in this area.
- whostolemyhat 5y agoOur site broke in Safari because Safari handles dates (as in the built-in Date object) differently than all other browsers, so it's not just styling or visual things that can be different.
- rikroots 5y ago> Thanks to their walled garden the only available web browser on iOS is Safari, and since no developer can afford to ignore iOS as a platform they have no choice but to deal with it. As the sole developer and maintainer of a Javascript library for working with the <canvas> element, most of the problems I encounter when working on the code are to do with things which work fine in every other browser, but die in flames on Safari. I'm getting to the stage where dropping support of the Safari browser (and thus all iOS browsers) is something I consider on an ever-more serious basis. One of these days I'm gonna add a big banner message to the library's website stating: "If you need your canvas to work on Safari/iOS, try coding it using [list of competing canvas libraries, with links]."
- adevx 5y agoIf enough developers start removing features for Safari this could actually have an impact. I would consider this even if it would harm the bottom line of my business. Simply because it removes stress and frustration in the development process.