DEV Community

Cover image for iOS404 - The missing web features of iOS.
Shalanah Dawson
Shalanah Dawson

Posted on • Updated on

iOS404 - The missing web features of iOS.

In 2018, I was working in the pre-pandemic world. All the devs (iOS + web) sat in the same section.

I loved being inspired by the apps my fellow programmers were creating with Swift.

In one such app, a colleague showed me a feature that allowed the user to swipe to change options along with some haptics to accompany the movement. This additional layer of feedback significantly enhanced the user's experience.

I started focusing more on mobile for my web apps too.

While I was adding haptics to a site with Vibration API - I started checking iPhones and iPads too (I use a Pixel). Too frequently, the tech I wanted to use to make sites as rich as native apps, was noticeably absent from only iOS. Compounding this frustration, I couldn't nudge users on iPhones or iPads to other browsers since it was all WebKit.

Fast foward to 2024.

I've embarked on a period of "fun-employment," during which I'm immersing myself in learning new skills such as R3F, Blender, and nextjs. Although learning is energizing, to really learn the concepts you've got to make things.

My theme for March was "Advocacy" --- and that's how iOS404 came to be.

I wanted it to be plain-as-day what iOS is lacking in web features even compared to its flagship Desktop Safari.

iOS404 uses caniuse data. Other sources like MDN are more exhaustive and have even more missing iOS features. I'm hoping iOS404 data is a great start and can aid you as you plan and build your websites.

Happy coding, and across all mediums and languages.

-Shalanah Dawson

Top comments (8)

Collapse
 
dmitriid profile image
Dmitrii 'Mamut' Dimandt • Edited

The problem is, this deliberately misrepresents what is actually happening.

How many of those "non-supported standards" are in fact "not on any standards track" because they are Chrome-only non-standards? Why do some link lead not to actual specs, but to Microsoft blogs? etc.

Your site is anything but "advocacy". It's misinformation

Collapse
 
shalanahfaith profile image
Shalanah Dawson • Edited

Hey Dmitrii. You can also filter out by less standard features by spec or compare with Firefox instead of Chrome. You can even see where iOSWebKit differs from Safari Desktop. Ultimately this info is to help you understand the differences since iOSWebKit is the only available engine on iOS it is important to see what it limits. Hope that helps!

Collapse
 
dmitriid profile image
Dmitrii 'Mamut' Dimandt • Edited

Indeed. When we remove other/unofficial and add Firefox into the mix, the "missing features" go from 62 to 23. And even then it will say that a feature is missing even if there's partial support for the feature.

So, the defaults for the site are:

  • include all features even if they are unofficial
  • include all Chrome-only non-standard and pretend they are standard and missing from Safari
  • call a feature missing even if it's not (but partially implemented). Even for features that Google themselves require from manufacturers at pain of removing Youtube support like hardware-accelerated AV1 decoding.

What does this amount to? Willing misinformation to pursue a specific agenda.

And this is the issue with literally every single of these anti-iOS/anti-Safari crusades: dishonesty.

Thread Thread
 
shalanahfaith profile image
Shalanah Dawson

I believe in giving all the info and letting the user select how strict to be.

You can filter by docs or browser and I pick the most sensible comparison browser. Firefox's share of Android is very very very low unfortunately. You may think some of the features shouldn't be supported on iOS and that's totally fine and good that you are making judgements.

I'm working on another branch that will be more clear about the partial features visually and not just text.

I could also probably add a ? next to the missing feature number to describe more fully what missing means and how you can filter more clearly.

I have to let you know MDN paints an even bleaker picture. It's dataset is way more exhaustive than caniuse. So if you're not happy with the number now, you're not going to like the even fuller MDN dataset.

I do take your feedback seriously.

Thread Thread
 
dmitriid profile image
Dmitrii 'Mamut' Dimandt • Edited

I believe in giving all the info and letting the user select how strict to be.

No. You're literally saying "Safari is missing all these things" when at least half of "all these things" are Chrome-only non-standards and deliberate misrepresentations

I could also probably add a ? next to the missing feature number to describe more fully what missing means and how you can filter more clearly.

No. You could start with removing all the features that are only implemented in Chrome, and then going through the remaining features and removing/updating features that are either OS-specific (e.g. volume controls are very restricted on iOS) or have literally the same requirements as, for example, Chrome (AV1 hardware decoding)

I have to let you know MDN paints an even bleaker picture.

It doesn't. That "bleaker picture" is painted by literal experimental features that are not on any standards track, Chrome-only non-standards that Chrome vomits out in the hundreds and pretends they are standards etc.

Thread Thread
 
shalanahfaith profile image
Shalanah Dawson • Edited

There is a point to be made that all unofficial could be defaulted to off, and I give you the option to turn it off.

That number isn't set in stone either - it could grow or shrink based on datasets and filters on those datasets. Currently it's just caniuse data. It doesn't paint the whole picture. I've looked at the MDN data with filters --- and it still paints a bleak picture.

We are of different minds, I am interested in the Chrome-only and the Safari Desktop-only and the FF Android-only differences and where iOS lags.

Thread Thread
 
dmitriid profile image
Dmitrii 'Mamut' Dimandt • Edited

The title of the submission is "The missing web features of iOS"

  • a feature only implemented in one browser is not a web feature (because, at the very least, to be a web feature it needs to have two independent implementations)
  • a feature not on any standards track is not a web feature
  • Chrome is not the web. However, gullibly and dishonest web devs assume it is

And yet, by default your web site literally shows Chrome-only non-standards implementations and pretends they are web features. It's not "we're of different minds". It's dishonesty and outright lies vs. facts.

And no, MDN doesn't paint a bleak picture. It only paints a bleak feature because you've already decided that you don't care about being honest. Your only goal is to paint Safari in the bleak light. I mean, you stoop so low as to mark certain features as missing even if they are the exact same as, for example, in Chrome for Android. And you're absolutely 100% aware of this. You just don't care

Now. I've already spent too much time discussing this. Like literally every other similar resource out there this one has a very specific agenda in mind, and if reality doesn't agree with that agenda, to hell with reality.

I'm not interested in continuing this discussion, as it will lead nowhere.

Adieu.

Thread Thread
 
shalanahfaith profile image
Shalanah Dawson • Edited

Thank you for sharing your feedback.

I appreciate your passion for web standards and the points you’ve raised. When I return to working on this side project, I will definitely consider your concerns.

Much luck with everything!