> Chrome has plenty of problems but nobody cares because when Chrome doesn’t support something properly, no one uses it.
The difference between Chrome and Safari not supporting features is that Safari is developed by one company (Apple) whereas Chrome is developed by two (Directly by Google and indirectly by Microsoft). So Apple can have an incentive not to add a feature and end up harming the entire industry. But if Google has an incentive not to add something, Microsoft can still add that thing anyway (and vice versa), we only need one actor to act good for their not to be harm caused.
> 1. [...] A tiny number of developers who don’t already have access to an Apple device have to spend literally tens of dollars buying or inheriting 5+ year-old devices in order to test on a diversity of platforms.
This is flat out wrong.
One Safari is not equal to another.
You need to buy one of each device because Safari will change how it works across different devices.
Example 1: Safari adds depth touch to some devices which adds weird box overlays around parts of the website while the user is trying to use it, which blocks the content and interferes with which elements are supposed to be interactable unless you add special webkit-prefixed rules (e.g. -webkit-touch-callout, -webkit-tap-highlight-color, etc...) to different parts of your pages.
Example 2: Safari adds different buffer areas around their browser which you need to test with (using the env() css function) on each device with a different screen to make sure content isn't flowing off the screen or elements are being cut off at incorrect spots when they're supposed to flow past the edge.
And so on...
Apple keeps adding device specific ways of breaking websites.
Furthermore, each device can only run one version of Safari. Every time a new version comes out, you need to upgrade your OS to get the new version of Safari. And you also can't downgrade your OS to get the older version. And because some users can't upgrade and others won't, you need multiple of each device running each one on a different version of the OS to test correctly.
We have to spend 1000s of dollars each year on new devices just because Apple keeps inventing new ways of breaking things.
-----
Side question: But what about just buying a mac and running the iOS Simulator to test different versions of Safari on different devices?
It's no good, the iOS Simulator is a simulator, not an emulator. So the bugs that are on the device are not the same as the ones in the simulator.
-----
So out of your two options, what will happen is:
Some users will switch to Blink/Chromium and find that things start working better. That will start to build up a reputation of Chrome/Edge/etc... working better than Safari.
Meaning Apple will need to invest more money and effort into improving Safari.
Meaning Safari will be improved.
So either users start migrating to a better browser, or Safari improves to the point that it isn't a problem anymore.
I'm going to set aside your rather mid-tier developer criticisms of Safari, and I'll refrain from vomiting out verbiage of similar problems developing for Chrome, which nobody cares about because Chrome is what web developers think the web is. Chrome is seen as the standard whereas lazy minds desperately try to dismiss Safari as an inconvenience.
Your analysis is flawed at the core because you persist in making the same logical error which mid-tier web developers always make. Only web developers choose/change browsers because another one is "better". Ninety-nine percent of everyone else doesn't choose/change browsers, or if they do, it's because they were unwittingly exposed to an external influence, e.g.
1. Dark patterns (e.g. as employed by Microsoft in the 1990s, or Google in the 2020s);
2. Herd mentality ("my Son told me to use Chrome instead");
3. Because a website is broken (because the developer stubbornly refuses to believe that any web browser exists other than the bleeding edge release of Chromium)
And sorry but I just laughed when you said you need to spend "1000s of dollars each year on new devices". The only people who might need to do that are large corporations which already spend 1,000,000s of USD each year on developer salaries. A one-man team needs, at most, one desktop Mac made in the past 8 years ($200–1000 every 3–6 years) and one iOS device made in the past 5 years ($100–500 every 2–4 years). And that's assuming they don't already have either or both of these. And that's assuming that you're trying to do very complicated things. Most web developers shouldn't be doing anything that would break on a 10-year-old version of any major web browser (with the exception of TLS root certificates).
As an independent web developer with a Mac and iPhone, I begrudgingly buy and maintain a Windows computer and an Android phone, but you don't see me bitching and moaning about that, even though it's exactly the same thing.
No, it's not different because you're "forced" to acquire a new or used Apple product. As a developer, you are "forced" to acquire a reasonable spectrum of products based on what your audience is using. You are "forced" to test in Chrome. You are "forced" to pay taxes on income. You can wish the world was different, but wishes don't change practical realities.
The difference between Chrome and Safari not supporting features is that Safari is developed by one company (Apple) whereas Chrome is developed by two (Directly by Google and indirectly by Microsoft). So Apple can have an incentive not to add a feature and end up harming the entire industry. But if Google has an incentive not to add something, Microsoft can still add that thing anyway (and vice versa), we only need one actor to act good for their not to be harm caused.
> 1. [...] A tiny number of developers who don’t already have access to an Apple device have to spend literally tens of dollars buying or inheriting 5+ year-old devices in order to test on a diversity of platforms.
This is flat out wrong.
One Safari is not equal to another.
You need to buy one of each device because Safari will change how it works across different devices.
Example 1: Safari adds depth touch to some devices which adds weird box overlays around parts of the website while the user is trying to use it, which blocks the content and interferes with which elements are supposed to be interactable unless you add special webkit-prefixed rules (e.g. -webkit-touch-callout, -webkit-tap-highlight-color, etc...) to different parts of your pages.
Example 2: Safari adds different buffer areas around their browser which you need to test with (using the env() css function) on each device with a different screen to make sure content isn't flowing off the screen or elements are being cut off at incorrect spots when they're supposed to flow past the edge.
And so on...
Apple keeps adding device specific ways of breaking websites.
Furthermore, each device can only run one version of Safari. Every time a new version comes out, you need to upgrade your OS to get the new version of Safari. And you also can't downgrade your OS to get the older version. And because some users can't upgrade and others won't, you need multiple of each device running each one on a different version of the OS to test correctly.
We have to spend 1000s of dollars each year on new devices just because Apple keeps inventing new ways of breaking things.
-----
Side question: But what about just buying a mac and running the iOS Simulator to test different versions of Safari on different devices?
It's no good, the iOS Simulator is a simulator, not an emulator. So the bugs that are on the device are not the same as the ones in the simulator.
-----
So out of your two options, what will happen is:
Some users will switch to Blink/Chromium and find that things start working better. That will start to build up a reputation of Chrome/Edge/etc... working better than Safari.
Meaning Apple will need to invest more money and effort into improving Safari.
Meaning Safari will be improved.
So either users start migrating to a better browser, or Safari improves to the point that it isn't a problem anymore.