For some reason, any app that only works with a certain browser truly grinds my gears. It is the antithesis of the free web and standards. It is the antithesis of what the web stands for. It is the antithesis of why we have to fight for more than one window into the internet. It just brings the whole game back to square one erasing years of progress.
Yes, but it is frustrating to limit yourselves and your users because Safari or Firefox does not support some Canvas features, some voice recognition ones, bluetooth or localhost interactions for example.
I really don't like the idea and the practice of helping a Google monopoly, and I am guilty of it at times. But on the other hand, using such features is a way to encourage Apple to upgrade their browser... which they have little incentive because they want apps.
The problem with the Web Speech Recognition API is that for now it more or less requires either:
- including proprietary code (open source browsers are reluctant to do that (widevine is usually the only exception and it's opt in on Firefox and some Chromium forks)) (Google does this for other parts of Chrome at least, idk if it's used for WebSpeech or just live captions)
- interfacing with OS-provided proprietary code (doesn't exist on all platforms)
- streaming everything to a cloud server (likely prohibitively expensive unless you're Google) (Google does/did this too)
Safari not allowing requests to localhost from HTTPS is weird and I'm not sure why it's like that but it works fine in Firefox. Same for OffscreenCanvas which is the only canvas feature I've missed, Firefox finally added it 2 months ago.
Anyway, just don't block specific browsers, feature detect and if possible use a polyfill or ponyfill.
You don't need to limit yourself, just provide usable fallbacks. Most of the time, these missing features aren't critical to your app, so just disable them when not supported. What browser you use isn't a good indicator anyways, as a features are added often and various settings/extensions/policies can disable or cripple features even in browsers that normally support them.
Arrogance? I mean, I agree that things should work in all browsers, but... Someone created this thing and put a ton of work into it, and you're saying that their failure to cater to every possible browser is arrogance? That's definitely not the word.
> their failure to cater to every possible browser
That ain't their arrogance. Their arrogance is declaring all browsers other than the single one they tested to be "unsupported" and not even worth attempting to use with the app. It's one thing to warn against untested browsers; it's another thing to outright prohibit them and kick you back out to the homepage (after collecting my email address with which to spam me, no less).
If it's really a matter of "polish" then the more reasonable approach would be to simply put up a warning while otherwise allowing full access to the application. If it's buggy, then it's buggy; oh well, at least we were warned.
If it's more a matter of some specific thing(s) that Chrome has implemented and other browsers haven't, then it'd be nice to be upfront about what that thing is so that those of us on non-Chrome browsers can bug e.g. Mozilla and Apple about it - and it would further be nice to actually test against the existence of that thing rather than gatekeeping the user agent string like it's 1999.
I mean, I can understand the challenge of making sure everything works well across browsers so that should mean that we use standard things and avoid non-standard APIs. Otherwise, we're just feeding the shiny Chrome monster more fodder to engulf this fucking planet.
May be we should just got back to native apps? Hell, native apps that do not connect to the internet. That'd be glorious actually. Problem with browser based apps is that you have zero control over versioning. Server serves, you get the fix. No option to request a particular version of the app. Don't like the new version? Tough luck. Server issues? Go outside.
You know there is something to be said about code/binaries residing on your computer. Call me old fashioned.
Making sure everything works on all platforms is often just as hard or harder than making sure it works on all browsers and due to basically non-existent security on desktop operating systems, downloading apps comes with a lot of risk.
What we need is a new app runtime with a unified permission-based API across platforms. All the OS-agnostic parts of that runtime would be a huge pain to develop, so all platforms would probably settle on a shared open source implementation and only implement OS-specific "adapters" for the native stuff.
What I've done there, is reinvented Electron...fuck....