Tuesday, July 27, 2021

Safari Frustrations

Perry Sun (via Hacker News):

With IE now out of the way, the distinction of ‘most-hated browser’ goes to Apple’s Safari – which all along had been a close second to IE.

In a similar vein, Safari has consistently lagged behind competing browsers in supporting modern web APIs and features, presenting considerable challenges for developers wanting to create products that work consistently across all the major browsers (Chrome, Edge, Firefox, and Safari).

However, the annoyance with Safari gets deeper and more nuanced, which I’ll explain further below.

I guess it was about time for another one of these posts to gain traction. I don’t think the Internet Explorer analogy is entirely fair, but the frustrations for developers and users are real.

Not being a Web developer, I don’t have much of an opinion about which specific APIs or Web standards Safari should be supporting better. But my experience as a user is that its compatibility continues to decline. In the last month, I encountered problems using the American Express, Discover, and Subway sites. The same actions worked fine in both Chrome and Firefox. I’m also still seeing GPU-related crashes each day, though I’m told this may be fixed in Monterey. Apple is busy trying to reinvent tabs and toolbars, but I just want a browser that works.

Apple dragged their feet in adding support for PWAs in Safari, and when they finally did, limited the capabilities of a PWA so that native-like app functionality wouldn’t be possible, like notifications or a home screen icon shortcut – to name just a few of the many restrictions imposed by Apple.

I think iOS has supported home screen icons for Web pages since day one, so I guess this is referring to customizing the menu that you get when you long-press on an app icon.

The reason for Apple’s self-imposed limitations on PWA-related web APIs? They’ll tell you they’re for user privacy reasons, which may be valid in certain cases.

But most of us know the dominant reason is because fully-capable PWAs would compete against the iOS App Store – robbing Apple of 30% cut in revenue it rakes in when an app is purchased, or an in-app purchase is executed.

It’s not clear to me that the stuff that doesn’t work is primarily related to privacy. But, either way, I would like users to be able to opt into running fully-capable PWAs, especially since that’s the only release valve for all the apps that Apple won’t allow in the App Store.

Previously:

Update (2021-07-28): Jen Simmons:

If you make websites, what do you need browser engineers to add to WebKit (Safari’s rendering engine)? What HTML, CSS, JS, Web APIs are missing — impacting your ability to get your job done. What do we most need to add / change / fix / invent to help you?

Dave Rupert:

When I think about Safari, it has a reputation as a little bit of a prima donna to the Pixar characters in my brain. From the humble -webkit-appearance: none to make buttons not look like trash on iOS to even more sophisticated tricks polyfilling scroll-behavior: smooth, every project has “one-offs” written inside it to appease Safari. It adds up to a non-zero amount of cognitive load that I maintain as a developer to support Safari.

Tim Perry (via Hacker News):

Most features that Safari hasn’t implemented have no hint of security, privacy or performance concerns, and they’ve been implemented in every other browser already.

[…]

The “they’re only ignoring bad features” argument is made weaker by Safari’s previous behaviour with such missing features, where many have eventually been implemented without objection, but years behind other browsers. If there was a good argument against these features, they should clearly never have been implemented.

[…]

These APIs are already part of the fabric of the web.

[…]

So, outright ignoring popular features will not stop them happening, and risks either giving all market share to Google, or all browsers being forced to follow Google’s standards. What the hell do we do instead?

Safari, Firefox and others need to make better proposals for these use cases.

Update (2021-07-30): See also: Hacker News.

Update (2021-08-04): Matt Birchler:

If you hate that Chrome has such a large market share and want Safari to do better, I really think you should be in the camp that urges Safari to adopt web standards faster than they do today. Normal people don’t care about web standards, but they do care if their websites don’t load correctly (why my wife ditched Safari, for what it’s worth) and developers do care how easy it is to work with your browser.

Update (2021-09-16): John Gruber:

I need to write about #2 (disallowing third party browser engines) one of these days. I’m with Apple on this, don’t think it’s about holding web apps back vs. native.

Michaela Merz:

Apple is monopolizing the web on #ios. They don’t even support all W3C standards. We are developing #pwa and believe me, they ARE holding a lot of rich web features back.

Chris Lacy:

With Web3, we’re at the onset of a new era of computing. Current App Store guidelines are prohibiting actions like NFT trading or accruing Brave’s BAT. This effectively blocks iOS apps from the next generation of computing. I don’t see how this helps iOS customers.

15 Comments RSS · Twitter

In what world does Perry imagine that Apple would allow the kind of access that PWAs give? I mean, come on.

>I think iOS has supported home screen icons for Web pages since day one,

What he meant is something like Clicking a Link to install it on your Home Screen like a App Install rather than clicking a shortcut menu on Safari, Add to Home Screen > Enter the Name of The Home Button etc.

I suspect much of the compatibility issues on those sites you mentioned are actually from Safari actually blocking tracking attempts. Most developers seem to assume that external tracking libraries will always be available and so their websites do not handle them being blocked gracefully.

In some ways it’s Google Chrome being IE, pushing their idea of the web like Microsoft pushed theirs (including ActiveX) and counted on developers to follow as their browser was the winning one, the difference being that Google also has the position to push their idea as “standard”. They have crushed most of the competition and in effect controls two of the remaining three browser engines. One directly and the other one as it’s single most important sponsor (likely only to avoid looking like the monopoly they are). The real standards body has given up and the replacement is effectively a far to fast moving target with Google dictating the rules and Apple the only opponent and Google will implement their ideas any way. Some of the opposition Apple gives is probably for protecting their profit, but they are also the only ones with leverage enough to protecting the users privacy. There is a big reason Google has pushed so hard to control the web and it’s in protecting *their* profits. And you know that tracking users is key in that business.

Developers follow Google, standard or not, and blames Apple for any discrepancies. Sometimes they are right, sometimes they are not. Most sites are built Chrome first, and when the quirks of the two engines differs Safari is left behind. (Increasingly that is also true for Firefox.) This cements Safari as a second class browser and fuels more of the same attitude, reinforcing it further.

I think Apple should focus more on fixing the cases where Safari is out right buggy, but following Chrome into making the browser the operating system is neither in their or in the users interest. Opening up iOS for alternative web engines would be giving Google the keys to the whole web as they would no longer have any opposition with leverage and could use their monopoly to build the ActiveX-like-web Microsoft only dreamt of ...

"In what world does Perry imagine that Apple would allow the kind of access that PWAs give? I mean, come on."

This is such an odd thing to say, since it sounds like you're defending Apple, but what you're really doing is pointing out that their behavior has become so consistently user-hostile and self-serving that it is irrational to expect better of them.

"following Chrome into making the browser the operating system is neither in their or in the users interest"

How is it not in the user's interest to have an app ecosystem that is independent of operating systems, based on an open standard, and thus removes platform lock-in?

@Brad Yes, I suspect you’re right. Turning ITP off sometimes helps, though I don’t recall for these specific sites. I wish there were a way to set that per-site. I do have PasswordWallet set to open certain sites in Firefox if they are known not to work in Safari.

@Daniel I can understand that argument, but as a user it feels like we are pawns being sacrificed to a corporate agenda.

@Plume As I understand it, the positive case for what Apple is doing is that by forbidding the open ecosystem they are forcing development of apps that follow their guidelines and raising the bar (for the ones that they do let through). But it’s quite speculative whether this will actually work as desired over the longer term, and even then I don’t think the ends justify the means.

When Apple only sold hardware with an OS, interests with it's customers where mostly aligned. Now that the service business is such a vital part of the growth story I expect more on more places where Apple will put the bottom line first, and the user experience second.

The case of Safari, the way Apple has been treating "PWAs" (I'm still not comfortable with this Google branding), etc. is far more nuanced than this article lets on, IMHO.

The "Safari is the new IE" analogy is also tired and flawed — yeah, Safari is conservative about adding features much in the way IE was around 2001-2006, but you could equally make the case that Chrome is the one unilaterally deciding the future of web development (to the point where they even own the domain "web.dev", which, cute, but the writing on that blog often has a weird taste of pretending other engines don't even exist), much in the way Microsoft did around 2000.

I'll also question the assertion that "IE was the browser hated by most web developers". In the era where this was a concern, i.e. the early 2000s, IE was arguably the browser _targeted_ by most web developers. A select few developers who liked standards and choices were rightfully annoyed by IE's many proprietary features, but most didn't care about Microsoft's antics, nor about Mozilla, Opera and others having a hard time competing. They just wanted to make a website.

I don't know if Apple is deliberately blocking features like Web USB in iOS Safari _in order to_ drive App Store revenue. That's a plausible enough conspiracy theory, but the innocent explanation that they culturally believe this to be an inappropriate use of web apps kind of rings equally true to me, if not moreso.

Finally, if Apple does collect royalties for HEVC (it is my understanding that they pay more into the patent pool than they collect from it), then why did they implement VP9? The more innocent explanation for not implementing AV1 yet is: they're waiting, just as they did with HEVC in the first place, until they have a critical mass of devices shipped that support decoding AV1 with hardware acceleration, in a battery-efficient manner. And then they flip it on.

This is a case where both Apple's capriciousness, and Apple's refusal to explain its decisions, lead to all kinds of speculation, which they could nip in the bud but won't. But this post's narrative rings too simplistic to me (and gets some of the history of the browser wars quite wrong).

Kevin Schumacher

@Sören I question your questioning of developers hating IE and your artificial timeline of when it mattered.

It was not necessarily the most hated browser by devs in the very early 2000s (although PC World did name it the 8th worst tech product of all time as early as 2005). But as things stagnated over time, and its market share only very slowly dropped, it became a huge issue for many developers, not just "a select few" who cared about standards, because things that worked in e.g. Firefox had to be intentionally broken to work in IE6 or add polyfills, etc.--either way, significant additional time to make it work. And when you get to 2008, and something like 40% of general users are still on it, and 55% of businesses, and it was even the most-used browser altogether in certain months that year due to upgrade patterns to IE7 and IE8, you can't just ignore a browser with that market share, but neither can you ignore a competing browser with a large amount of users, either.

Even into 2010, market share worldwide for IE6 specifically was up to 20%, with places like China still having a majority of users on IE. Microsoft itself had to launch a campaign in 2011 (5 years after the release of IE7) to get its own users to upgrade.

>It was not necessarily the most hated browser by devs in the very early 2000s (although PC World did name it the 8th worst tech product of all time as early as 2005).

Sure, but 2005, it had stagnated.

(However, the reasons for that are also a bit more complex. They involved, among other things, Longhorn's massive delays.)

> But as things stagnated over time, and its market share only very slowly dropped, it became a huge issue for many developers, not just "a select few" who cared about standards, because things that worked in e.g. Firefox had to be intentionally broken to work in IE6 or add polyfills, etc.

By 2005, yes. Even before that, it was frustrating that IE 6 didn't support alpha channels. Or XHTML (via application/xhtml+xml).

> And when you get to 2008, and something like 40% of general users are still on it, and 55% of businesses, and it was even the most-used browser altogether in certain months that year due to upgrade patterns to IE7 and IE8

But IE 7 and 8 fixed most of those issues.

At this point, I'm confused what era people who compare Safari with IE are referring to. There was an era where IE pioneered technology like AJAX, a second era where it was stuck at version 6, and then a final era of 7 through 11.

>Even into 2010, market share worldwide for IE6 specifically was up to 20%, with places like China still having a majority of users on IE. Microsoft itself had to launch a campaign in 2011 (5 years after the release of IE7) to get its own users to upgrade.

Yes, I'm well aware. I'm not sure what the criticism is there, though. Clearly, that wasn't an outcome Microsoft wanted.

Kevin Schumacher

> But IE 7 and 8 fixed most of those issues.

Did IE7 and IE8 also cause IE6 market share to drop to 0 overnight, or even within five years (an absolute eternity in tech time)? No. So what's your point? It does not change the fact that web developers grew to hate IE6 when it lingered far past its sell-by date and caused major hassles for them.

> At this point, I'm confused what era people who compare Safari with IE are referring to.

IE6 from (my own rough estimate) 2004 or 2005 to whenever it actually dropped low enough in market share to stop mattering, so like post-2011.

> Yes, I'm well aware. I'm not sure what the criticism is there, though. Clearly, that wasn't an outcome Microsoft wanted.

Maybe not at that point, but initially they sure did want to dominate the market completely and did everything they could to dissuade users from switching to a different browser. And the criticism isn't about Microsoft or the campaign. It's a statement of fact that in 2011, there were enough IE6 users that its maker had to try to get them to stop using it. And if there were enough users for that, there were enough to cause headaches for web developers, which again goes against your original statement that it was only a select few developers who hated it in the "era where this was a concern" (mostly because the era where this was a concern is not the early 2000s like you said).

>Did IE7 and IE8 also cause IE6 market share to drop to 0 overnight, or even within five years (an absolute eternity in tech time)? No. So what's your point?

I hope your hostility is proving to be cathartic.

> Maybe not at that point, but initially they sure did want to dominate the market completely and did everything they could to dissuade users from switching to a different browser.

Sure. I mean, if I were a company and made a browser, I'd kind of want that, too?

I don't think Apple is under the illusion that Safari will one day dominate the market, though. Instead, we seem to be stuck in this duopoly, not counting Firefox. It ain't great, but pointing the blame squarely at Apple is facile.

Kevin Schumacher

> I hope your hostility is proving to be cathartic.

It's not hostility so much as not understanding why you're even bringing up IE7 and IE8 after I pointed out that the specific problem was IE6's extraordinarily long period of usage, notwithstanding IE7 and IE8 being released.

Even IE 7 was a pain to develop for. But nowhere near the roadblock that Safari had become.

PWAs offer a viable option for most day to day apps like ride hailing, banking, e-scooter rental, parcel tracking etc.

But Apples feet dragging on notifications, notification badges, quick menus etc makes it a non starter

>It's not hostility so much as not understanding why you're even bringing up IE7 and IE8 after I pointed out that the specific problem was IE6's extraordinarily long period of usage, notwithstanding IE7 and IE8 being released.

Because, as I said, I'm not even sure people are referring to the same thing when comparing Safari with IE. They might be referring to the IE-Netscape rivalry of the 1990s, to the period where IE wasn't updated for half a decade, or to the one where newer versions existed but IE 6 was, for complicated reasons, still widespread. None of those are really a great equivalent to Safari. It's a tired and flawed metaphor.

Leave a Comment