Just wanted to pick your brains on what do you think how relevant is cross-browser testing. Do we really need to test our code on 50ish Chrome versions, 25is Firefox versions and so on.
Probably not, unless you're a really big outfit with a vast user base. But you should test on at least a recent Chrome version and a recent Firefox version, and probably Safari.
And unless your product is irrelevant to mobile users, on both iOS (Safari) and Android (Chrome, Firefox), with both phone and tablet form factors.
https://gs.statcounter.com/browser-market-share at ~3% of overall share / 7% desktop-only share it's hard to justify putting extra effort.
(Test IE11 as well, by all means, if it's relevant to your users; but it's much less relevant to the future of the web.)
(Disclosure: I am still very much a Firefox user, so this might be projection.)
2. Unless you're running a very low traffic site, it's not like 3% of users don't matter. 3% may mean millions of users.
Also please consider writing your apps in a way such that they don’t completely shit the bed if your 600th ad tracker script fails to load. I hate having to disable pihole so that Google can track me while I pay my utility bill.
Note to all fellow fe devs: don't fucking make your call to analytics a blocking process!
I can't see why anyone would still use it today when FireFox for Mac has become so good.
For daily use, it’s a pretty normal experience.
This direction worries me (we did this with MSIE and it took a decade+ to heal those wounds).
iOS Safari on the other hand, can't be updated on older phones since it's tied to iOS updates. This makes any Safari bug linger for a few years. It's also the only rendering engine available on iphone so some people are truly stuck using an old version.
So I'd say, test on Chrome because it's ubiquitous and test on iOS Safari like it's the new Internet Explorer.
I'm not sure about Firefox. I personally use it and test on it, I think it's the right thing to do for the web. And at least with that you've covered most rendering engines.
Chrome is only updated if the user lets it happen. I can't count the number of times I've watched some co-worker share their screen on a conference call and the Chrome update button is lit up, but apparently that's not a trigger to these people (I update pretty much as soon as I notice the indication since Google has done a remarkably good join of updating in place in a way that most SaaS things and web sites just reopen without trouble).
I'm sure the next time they restart/reboot it will get updated, but if there was some hideous Chrome-related bug which is from a release a month ago, you might want to think about that. It's also entirely possible to turn off updates if you or some misguided IT person is really so inclined.
So in my opinion, in order, I'd test on: - current Chrome - current Safari - older Safari - older Chrome & current Firefox
Not sure what comes next, IE 11 maybe? I guess at some point it's good to look into automating some testing.
And it's worth noting, as with most things, that "it depends", I don't expect the same browser support from something like Figma and from a government website for example.
https://support.mozilla.org/en-US/kb/firefox-esr-release-cyc...
I've also worked at places where our product was specified to work with Chrome, I would try to run it with Firefox and no dice and they would not accept any ticket to fix bugs in Firefox.
There's an assumption today that browsers get updated frequently. My work computer is a managed Windows machine that I had administrator access to, the one complaint I have is that the Firefox is a long-term support version which is often long as in "in the tooth". Bloomberg would complain about it incessantly until I got the new LTS version. Other than that I think browsers are usually up to date.
Personally Safari is the reason why some of my image-based sites still use JPG in parallel with WEBP. I think they fixed it just recently, but if you have an older mac (i do) Apple couldn't be bothered to include a WEBP codec with the OS. Firefox, Chrome and every other browser for mac supports WEBP but not Safari.
I think they resolved this in the last month, but I think for better or first Apple wants to roll out new SIMD instructions in their libraries much faster than Microsoft does. So at some point your CPU is too old. Of course the flip side to that in the Windows World is that people are stuck using a 10 year old instruction set. Intel doesn't seem to get it that by not supporting the latest AVX in their latest chips that people just "don't use AVX". If the latest SIMD instructions were widely supported you'd have a reason to buy a new computer, but when they aren't Intel has lackluster sales and wonders why.
Doesn't happen on Safari, nor Firefox.
A recent issue we found, was that Safari was responding different to some HTTP headers.
In the future our application will need to be able to run on mobile devices. Then I think I want to test it on a recent iPad, iPhone and Android device. We'll probably be using one of the tools you mentioned.
Any experienced software developer will have some experience testing against those. I don't think you need to go out of your way to test against specific builds of those browsers, with maybe the exception of Safari and Mobile Safari since I have noticed standards-compliant differences over time with older iOS devices.
That is to say, there isn't anything wrong with what Safari and Mobile Safari do, but the WHATWG living standards have changed over time just enough that older Apple devices may render web pages differently.
Try not to just limit yourself to Chrome though. And if you're using vendor extensions, don't rely on them, just use them to pretty up from your baseline designs.
I personally don't like or use any of the frameworks you presented. If I had to pick one I would choose Vue.
jQuery did a lot for inter-browser compatibility, so I don't understand the argument. On the contrary, it was much more difficult to manage diverging code without it.
99% of my web programming is displaying some data, a website to interface XY. I don't like modern websites at all. Probably more a design descision than a framework issue, but I try to minimize any browser scripts in the first place and just haven't felt the need for somthing like React or Angular.
Like you said you usually test with the latest version of Chrome/Firefox you are partly agreeing to the statement I made.
I am trying to find someone who's strongly in favour of testing their apps across browsers and multiple versions.
It is of course painful to test in so many variants, so a decent compromise is often to just test in the latest version of all browsers. There's enough coverage there to help you find any potential problems.
One line of thought could be if we have already invested in automation testing then why not run in 80 browsers too when we can. Its just additional hardware cost or cost of platforms like BrowserStack/Lambdatest.
However, there are other CSS frameworks (Bootstrap/Tailwind/etc) that do.
Even using those, I'd still give other browsers a look over to see if anything looks odd. One weird one we had was, on Chrome/Edge a React dropdown looked fine, but on Firefox it was somehow positioned like 80px too high. I don't remember exactly what the fix was, just that it was a CSS problem and the original developer was relying on a Chrome default they didn't realize was there and not in other browsers. Something akin to "position: relative; top: 20px;" just happened to look vertically centered, but only in Chrome-based browsers.
https://www.reddit.com/r/linuxquestions/comments/yfjaa1/disn...
I just ran into this bug myself like two days ago, when Disney+ just up and quit working. And even better, if you apply the UA string hack to work around that, it breaks Netflix! I had to, for the moment, install a browser extension that allows persistent site-specific UA string overriding. And sure, that works as such, but c'mon... this is bullshit. People, test your dang websites on more than Chrome on Windows for FSM's sake.
Times have changed in that you won't have layers and layers of branching logic to work around browsers that aggressively disagree with each other. But Chrome tends to fudge the web standards in some of their dark corners, Firefox tends to stick to the letter of the web standards rather than the spirit, and Safari tends to have random little gaps and quirks
Your UI will probably be usable without cross-browser testing (assuming you're not doing anything exotic), but it will probably have little things here and there that aren't quite right
However, some of our tools are used by the general public (I've found the user agent for a coupon app as well as some PlayStation browser in the logs; might have been spoofed, of course). Those are written to the lowest common HTML/CSS/JS standards, so we don't try fancy features, and Babel or similar can be helpful. IE11 is out of grace, but we still support years old versions of most browsers, because it costs money and goodwill when too many fail.
The latter is especially true when you're trying to make a PWA or 'web app', since Apple does not like letting websites have similar abilities to native apps on their devices...
You’ll probably find out that you don’t have too many browsers that actually matter.
https://jsfiddle.net/svandragt/236Lhkub/3/
So I’d say yes
The only time I've ever seen this intense level of testing was on a government project that was producing someone that everyone in the country would be required to use. So if that is what your situation is yes, you need to do that much testing because if it is mandated by law that citizens use it, it better be able to handle whatever combination of citizen and tech it encounters.
Otherwise I think you are probably being somewhat hyperbolic here.
Aside from that where accessibility is concerned there can be significant differences between various combinations of browsers and screen readers.
It was an e-commerce site which sold _very_ grey area products (most were banned from Amazon/eBay/FB Marketplace/etc.) and the ancient IE spec gives you an idea of the demographic they ~exploited~ sold products to ...
The market for selling questionable medicinal pills is much much larger than I could have ever imagined. Absolutely mind blowing!
My intuition says you'd get better value out of testing different browsers shallowly rather than 50 old versions of Chrome, though.
I don't QA for these things beforehand, but when they do occur, it helps to have a way to perform cross-browser testing to fix the bug.
So at least test on recent versions of the three major engines.
When writing CSS, I rely on caniuse.com when not certain.
We’ll probably see Gecko used in more embedded applications but Firefox is a joke at this point.
Real browsers like Chrome, Firefox and Edge generally "Just Work", Safari on the other end seems to be an endless tire fire that either implements things poorly or not at all. Doubly true for the iOS versions which generally tend to be older and worse than desktop Safari.