{"id":33238,"date":"2021-07-27T15:42:53","date_gmt":"2021-07-27T19:42:53","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=33238"},"modified":"2021-09-16T16:14:41","modified_gmt":"2021-09-16T20:14:41","slug":"safari-frustrations","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2021\/07\/27\/safari-frustrations\/","title":{"rendered":"Safari Frustrations"},"content":{"rendered":"<p><a href=\"https:\/\/blog.perrysun.com\/2021\/07\/15\/for-developers-safari-is-crap-and-outdated\/\">Perry Sun<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=27968394\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/blog.perrysun.com\/2021\/07\/15\/for-developers-safari-is-crap-and-outdated\/\">\n<p>With IE now out of the way, the distinction of &lsquo;most-hated browser&rsquo; goes to Apple&rsquo;s Safari &#x2013; which all along had been a close second to IE.<\/p>\n<p>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).<\/p>\n<p>However, the annoyance with Safari gets deeper and more nuanced, which I&rsquo;ll explain further below.<\/p>\n<\/blockquote>\n\n<p>I guess it was about time for another one of these posts to gain traction. I don&rsquo;t think the Internet Explorer analogy is entirely fair, but the frustrations for developers and users are real.<\/p>\n\n<p>Not being a Web developer, I don&rsquo;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&rsquo;m also <a href=\"https:\/\/mjtsai.com\/blog\/2021\/05\/24\/remaining-issues-in-big-sur\/\">still<\/a> seeing GPU-related crashes each day, though I&rsquo;m told this may be fixed in Monterey. <a href=\"https:\/\/mjtsai.com\/blog\/2021\/06\/17\/safari-15\/\">Apple<\/a> <a href=\"https:\/\/mjtsai.com\/blog\/2021\/07\/15\/safari-15-changes-in-beta-3\/\">is<\/a> <a href=\"https:\/\/mjtsai.com\/blog\/2021\/07\/27\/safari-15-changes-in-beta-4\/\">busy<\/a> trying to reinvent tabs and toolbars, but I just want a browser that works.<\/p>\n\n<blockquote cite=\"https:\/\/blog.perrysun.com\/2021\/07\/15\/for-developers-safari-is-crap-and-outdated\/\">\n<p>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&rsquo;t be possible, like notifications or a home screen icon shortcut &#x2013; to name just a few of the many restrictions imposed by Apple.<\/p>\n<\/blockquote>\n\n<p>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.<\/p>\n\n<blockquote cite=\"https:\/\/blog.perrysun.com\/2021\/07\/15\/for-developers-safari-is-crap-and-outdated\/\">\n<p>The reason for Apple&rsquo;s self-imposed limitations on PWA-related web APIs? They&rsquo;ll tell you <a href=\"https:\/\/www.zdnet.com\/article\/apple-declined-to-implement-16-web-apis-in-safari-due-to-privacy-concerns\/\">they&rsquo;re for user privacy reasons<\/a>, which may be valid in certain cases.<\/p>\n<p>But most of us know the dominant reason is because fully-capable PWAs would compete against the iOS App Store &#x2013; robbing Apple of 30% cut in revenue it rakes in when an app is purchased, or an in-app purchase is executed.<\/p>\n<\/blockquote>\n\n<p>It&rsquo;s not clear to me that the stuff that doesn&rsquo;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&rsquo;s the only release valve for all the apps that Apple won&rsquo;t allow in the App Store.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/07\/26\/apple-business-model-a-naive-nostalgic-look\/\">Apple Business Model: A Naive Nostalgic Look<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/06\/17\/safari-15\/\">Safari 15<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/06\/03\/web-apps-in-epic-v-apple\/\">Web Apps in Epic v. Apple<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/03\/27\/multiple-alternative-channels\/\">Multiple Alternative Channels<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/07\/08\/is-webkit-sabotaging-the-future-of-the-open-web\/\">Is WebKit Sabotaging the Future of the Open Web?<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/12\/11\/the-success-of-intelligent-tracking-prevention\/\">The Success of Intelligent Tracking Prevention<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/11\/18\/the-hotel-cupertino-clause\/\">The Hotel Cupertino Clause<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/03\/11\/skype-for-web-drops-support-for-safari\/\">Skype for Web Drops Support for Safari<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2015\/08\/01\/safari-vs-chrome-power-consumption\/\">Safari vs. Chrome: Power Consumption<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2015\/06\/30\/safari-is-the-new-ie\/\">Safari Is the New IE<\/a><\/li>\n<\/ul>\n\n<p id=\"safari-frustrations-update-2021-07-28\">Update (2021-07-28): <a href=\"https:\/\/twitter.com\/jensimmons\/status\/1418920407642656775\">Jen Simmons<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/jensimmons\/status\/1418920407642656775\">\n<p>If you make websites, what do you need browser engineers to add to WebKit (Safari&rsquo;s rendering engine)? What HTML, CSS, JS, Web APIs are missing &mdash; impacting your ability to get your job done. What do we most need to add \/ change \/ fix \/ invent to help you?<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/daverupert.com\/2021\/07\/safari-one-offs\/\">Dave Rupert<\/a>:<\/p>\n<blockquote cite=\"https:\/\/daverupert.com\/2021\/07\/safari-one-offs\/\"><p>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 <code>-webkit-appearance: none<\/code> to make buttons not look like trash on iOS to even more sophisticated tricks polyfilling <code>scroll-behavior: smooth<\/code>, every project has &ldquo;one-offs&rdquo; 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.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/httptoolkit.tech\/blog\/safari-is-killing-the-web\/\">Tim Perry<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=27985783\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/httptoolkit.tech\/blog\/safari-is-killing-the-web\/\"><p>Most features that Safari hasn&rsquo;t implemented have no hint of security, privacy or performance concerns, and they&rsquo;ve been implemented in every other browser already.<\/p><p>[&#8230;]<\/p><p>The &ldquo;<em>they&rsquo;re only ignoring bad features<\/em>&rdquo; argument is made weaker by Safari&rsquo;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.<\/p><p>[&#8230;]<\/p><p>These APIs are already part of the fabric of the web.<\/p><p>[&#8230;]<\/p><p>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&rsquo;s standards. What the hell do we do instead?<\/p><p>Safari, Firefox and others need to make <em>better<\/em> proposals for these use cases.<\/p><\/blockquote>\n\n<p id=\"safari-frustrations-update-2021-07-30\">Update (2021-07-30): See also: <a href=\"https:\/\/news.ycombinator.com\/item?id=27985783\">Hacker News<\/a>.<\/p>\n\n<p id=\"safari-frustrations-update-2021-08-04\">Update (2021-08-04): <a href=\"https:\/\/birchtree.me\/blog\/if-you-dislike-chrome-you-should-hope-for-a-more-aggressive-safari-team\/\">Matt Birchler<\/a>:<\/p>\n<blockquote cite=\"https:\/\/birchtree.me\/blog\/if-you-dislike-chrome-you-should-hope-for-a-more-aggressive-safari-team\/\">\n<p>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&rsquo;t care about web standards, but they do care if their websites don&rsquo;t load correctly (why my wife ditched Safari, for what it&rsquo;s worth) and developers do care how easy it is to work with your browser.<\/p>\n<\/blockquote>\n\n<p id=\"safari-frustrations-update-2021-09-16\">Update (2021-09-16): <a href=\"https:\/\/twitter.com\/gruber\/status\/1438159076534456324\">John Gruber<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/gruber\/status\/1438159076534456324\">\n<p>I need to write about #2 (disallowing third party browser engines) one of these days. I&rsquo;m with Apple on this, don&rsquo;t think it&rsquo;s about holding web apps back vs. native.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/mischmerz\/status\/1438204823027871747\">Michaela Merz<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/mischmerz\/status\/1438204823027871747\">\n<p>Apple is monopolizing the web on #ios. They don&rsquo;t even support all W3C standards. We are developing #pwa and believe me, they ARE holding a lot of rich web features back.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/chrismlacy\/status\/1438324693866479619\">Chris Lacy<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/chrismlacy\/status\/1438324693866479619\">\n<p>With Web3, we&rsquo;re at the onset of a new era of computing. Current App Store guidelines are prohibiting actions like NFT trading or accruing Brave&rsquo;s BAT. This effectively blocks iOS apps from the next generation of computing. I don&rsquo;t see how this helps iOS customers.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Perry Sun (via Hacker News): With IE now out of the way, the distinction of &lsquo;most-hated browser&rsquo; goes to Apple&rsquo;s Safari &#x2013; 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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2021-07-27T19:42:57Z","apple_news_api_id":"7af35be2-c7b7-45c0-acc5-f92dabc3c42e","apple_news_api_modified_at":"2021-09-16T20:14:45Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABw==","apple_news_api_share_url":"https:\/\/apple.news\/AevNb4se3RcCsxfktq8PELg","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[31,1837,30,1891,355,103,158,328],"class_list":["post-33238","post","type-post","status-publish","format-standard","hentry","category-technology","tag-ios","tag-ios-14","tag-mac","tag-macos-11-0","tag-privacy","tag-safari","tag-strategytax","tag-webkit"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/33238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=33238"}],"version-history":[{"count":9,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/33238\/revisions"}],"predecessor-version":[{"id":33665,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/33238\/revisions\/33665"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=33238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=33238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=33238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}