Incompetent Browsers Gateway
Back in 2021, I got approval to fully work through a problem that has been vexing the web forever: what do you do when a user comes to your site in a browser that can’t handle it? This is a series I wrote documenting the approach I settled on.
Browser Grading
The approach here is based on Browser Grading, as originally developed by the Yahoo UI team and adopted by the jQuery Mobile team. Sadly, all of the original resources for this are gone, so I go over the history of browser grading here.
Historical Browser Detection
There have been a bunch of approaches towards detecting what browser is coming to your site and sending it appropriate content. I cover the history of approaches that lead toward my solution.
Requirements and Loaders
I cover the requirements for what I want to have happen when a browser comes to the site, and the strategies for loading in JavaScript and CSS.
Detection and Fallback
I cover the approaches for detecting if the browser is good enough, and how to test the fallback experience.
The Complete Solution
This is the complete modern solution for handling older browsers. This is code I can recommend using.
Goldplating
If you need more flexibility, I add a series of JavaScript events that let you react to different stages of the loading process.
Dijon Mustard
I cover several approaches to determining if a browser is good enough, starting in 2021 and moving into the future.
Building the Fallback Experience
Browsers that are not good enough get a fallback experience. I cover a couple of ways to make that fallback experience nicer here.