Yet another huge update of features to Safari, building upon the great progress they made last year in:<p>- leading on the Interop 2022 dashboard results [1]<p>- posting the best Speedometer score on the Mac [1]<p>- changing their pace of innovation and releases to deliver newer API features in a quicker manner<p>[1] <a href="https://www.magiclasso.co/insights/triumph-of-safari/" rel="nofollow">https://www.magiclasso.co/insights/triumph-of-safari/</a>
I disagree with the Chrome comment, but how about decoupling Mobile Safari upgrades from OS upgrades?<p>It would be nice for all users to get access to these new APIs via a simple app update. This would allow developers to actually start using them within days/months rather than years.
Apple releasing support for web push was a big reason I decided to build an API for sending push notifications to PWAs.<p>Relatively easy to work with, though I hope their OS integration will add support for more native iOS notification features like actions.<p>If you wanna try out native push notifications it's pretty fast to try out: <a href="https://alerty.dev" rel="nofollow">https://alerty.dev</a>
Nice to see Apple giving some love to web apps. One feature (bug fix?) that I've been wanting for a long time is the ability to autofill from my password manager in Home Screen web apps on my phone. Autofill works in Safari, but once I turn a site into a Home Screen app it no longer appears. But only on my phone, iPad it still works.<p>Edit: Looks like someone may have already reported it 3 years ago: <a href="https://bugs.webkit.org/show_bug.cgi?id=210061" rel="nofollow">https://bugs.webkit.org/show_bug.cgi?id=210061</a><p>> The space for the saved accounts is there, yet the text is empty. There's nothing to select<p>Sure sounds like what I'm seeing, except instead of being intermittent it's <i>always</i> like that.
I've been waiting on that update to ElementInternals for years now - this was one of the main blockers to really allowing for accessible webcomponent form inputs.<p>Really excited to see some cool custom form inputs, and for those will inevitably say "use the native form elements, dont make your own!" I agree <i>when that's an option</i>, but often times you do want custom form inputs (i.e. a video uploader form element that allows you to define crops / cuts / etc). This will open up the options for things like that, and will result in some great custom experiences that are also accessible.
I'm a bit surprised no one has brought up the issue with App Library support (or rather, the lack thereof) yet.<p>When you "install" an PWA, you can only keep it on the Home Screen, while native apps can be removed from Home Screen (not uninstalled) and only shown in the library
> Safari 16.4 adds support for the video portion of Web Codecs API.<p>Interesting that they still don't support Media Source Extensions on iOS but are adding WebCodecs support. I keep hoping Safari will add MSE, as I'd like to support both live and historical content with one API on all browsers. WebRTC doesn't seem suitable for historical. Chrome and Firefox don't support HLS. Now WebCodecs seems the most likely option, by Firefox adding support. Fingers crossed that will happen... I haven't really played with WebCodecs but it seems nice in concept.
I find the dev tools/Web Inspector in Safari incredibly flakey. Just trying to autocomplete a selector in the CSS styles pane often mangles the string and doesn’t autocomplete properties correctly.
Hope that Web Inspector gets some significant improvements soon
Pretty big deal for PWA. Now we can send push notifications, and update app badges.<p>Now if we could get periodic background sync api, and vibration api, that would be perfect.
That is a bunch of features that solve problems I have margin-trim, lh and :user-valid will all allow me to improve code in my projects. Unfortunately they aren't supported anywhere yet (except for :user-valid on Firefox). I would love to see the other browsers roll out support.
Still no Fullscreen API and no Screen Orientation API(and also orientation in web manifest) on iPhone. Apple surely hate PWA right? Without these, you can't even make a simplest portrait pwa that didn't got rotate by user accidentally.<p>It's even funnier that they shipped fullscreen api to iPad and intentionally ignore iPhone without a reason.
What is the best way to maintain a session cookie when a web app is added to home screen?<p>Right now I take people to a secret URL with long generated token so the web app will also have it and be able to correlate the two. Yes I can have the user re-sign-in with credentials, or webauthn, but seems overkill.<p>Also can Apple add some sort of thing like Chrome has “beforeinstallprompt” to actually show an install promopt?
Looks like I might finally have a reason to upgrade my iPhone 7!<p>Web Push is fantastic for developing useful applications without paying the apple tax, which necessarily results in the garbage-tier free apps dominating the App Store today (Want to do anything at all? Watch an ad every minute. Want functionality that's not the absolute bare minimum? Pay $5/month forever.)
And with this, finally certain people can stop saying Safari is the new IE6 because it is lagging badly.<p>Because that title is reserved for a certain behemoth that enjoys the same popularity as IE6 once had and which IMO is probably more dangerous to the free web than IE6 was when EU reacted.
If anyone finds themselves wanting to build a static site with cron-interval push notifications using the Web Push API announced here. I wrote a simple service that lets you get notifications on a cron interval without needing to write any backend code / host anything:<p><a href="https://benkaiser.dev/time-trigger-web-push-notifications/" rel="nofollow">https://benkaiser.dev/time-trigger-web-push-notifications/</a>
Lazy loading iframe is finally supported! That will be a huge perf. improvement! Loading a YT embedded video requires 15 network requests and downloads ~1Mo.
Am excited about the support for the :has() selector for Safari Content Blockers. It will enable a lot of sophisticated blocking of page elements based upon characteristics of the child elements.<p>For example, in a feed of post where one post has a 'sponsored' text element, the :has() selector could be used to easily target the full sponsored post while leaving organic posts untouched.
There obviously is still a long way to go for Safari to become "good", but I think they are on the right way. For example I have one weird bug than only occurs on an M1 machine. For some reason getComputeStyle() returns wrong values for cx, cy and r of an SVG ellipse/circle. No idea what is going on and what must go wrong internally for this to happen, and I cannot even extract a test case, because the bug is not reproducible outside the app. Just hoping that it will be fixed eventually "by accident".
Every time a non-chromium browser pushes updates it's good news. That being said, if you care about open standards, privacy and a fair market, you should just delete whatever you have and install Firefox right now.
Here comes the web push notification spam avalanche going onto iOS.<p>The SaaS grifters will metastasize, multiply and deliver their snake oil as they did to Android now onto iOS users only to degrade the platform further.