Recently however, I've been wrestling as to whether this is the correct approach, it isn't easy and can be costly in development time and effort. Am I just being old fashioned by sticking with the progressive enhancement approach? Possibly.
What should you be considering when deciding whether to support users without JS? I think there's two important questions/areas to cover...
- What's the volume of users hitting your site and what are the percentage of your users that don't have a JS enabled browser?
- If you don't have this data, it's simple to get by placing images loaded in different ways on your most popular page and reviewing your web server logs (using something like log parser) to compare:
- An image (a blank gif) loaded using a standard img tag in the body of the HTML page
- An image loaded using JS
- Think about it, 1% is a big number if you've got 1 million users hitting your site every month!
- Should your site need JS to function properly?
- Don't complicate your web apps unnecessarily by throwing JS in as a requirement. Progressive enhancement works great in a lot of scenarios!
- Does your ecommerce web app, really need JS enabled before someone can give you their money? Probably Not. Does your interactive messaging web app really need JS enabled to work properly? If you want to give your users a rich and interactive experience, yes.
You can always serve two different versions of your applications, this is what GMail does:
One more thing. If you do decide not to 'properly' support users without JS, you should let them know, rather than them just leaving them with a bad taste in their mouth over your "broken" web site.
Useful Links
- A nice article from AListApart that's explains Progressive Enhancement
- "How many people are missing out on JavaScript enhancement?" by the Government Digital Services Agency