开发者

Is progressive enhancement a current issue anymore?

There are couple of things I hear in defense of progressive enhancement.

Javascript is off or not available. According to W3School's Javascript statistics, 95% had Javascript enabled January 2008 (2.5 years ago). The trend, based on those stats, seems to be that Javascript enabled browsers are on the rise. Heavy AJAX adoption has probably pushed users to enable even faster. To support text-only or accessibility doesn't make a lot of sense from the business perspective since they probably account for less than <1% of the traffic.

Mobile browsers won't work. I would either way create a mobile version of the site because of the limited screen size and a whole different browsing experience on the mobile devices. One could argue to use different CSS for screen readers/mobile devices, but you won't be able to crank up a开发者_JS百科s much information on a mobile device no matter how tidy you make it look.

The original statement isn't even true for the newer generation mobile devices, like the Android and iPhone, which have a total of >200,000 combined daily activation rate. Besides, most Javascript eye-candy (like jQuery UI) doesn't make much sense because the website experience on the mobile device is so different (no mouse hover, etc.). I consider mobile devices to be a platform of their own that needs a customized version of the website. Another trend has been creating a "native app" version of the website/service.

Spiders won't be able to crawl. This isn't true either. It's possible to use the DOM as a data container for the Javascript (populate div/input tags with your entities). Also, Google has made efforts to make AJAX websites crawlable.

Similar threads:

  • How important do you think Progressive Enhancement is?
  • JavaScript Detection / Browser Statistics

Interesting links:

  • Mobile compatibility tables
  • Making AJAX Applications Crawlable


Javascript is off or not available

And use of plugins such as NoScript is also on the rise (unsurprising since JS vulnerabilities have been a popular attack vector, and it doesn't need a vulnerability for a looping alert() bomb to spoil your afternoon)

Mobile browsers won't work.

And then we have browsers such as Opera Mini, which doesn't handle JS well but does handle large screen layouts well.

Spiders won't be able to crawl

So you can work around some dependency on JS in some search engines by spending time providing instructions on how to run the JS, and building it in a particular way in the first place. This is often higher maintenance then just building with progressive enhancement.


It depends on what you're building.

For web applications, PE often isn't ideal. The effort involved in PE for web apps without compromising the UI of any of the platforms is so big that building multiple front-ends is most of the time cheaper and more effective for your users. A well-designed mobile UI is often functionally different from its desktop cousin by necessity. Search engines usually don't matter much for web apps because the content itself shouldn't be indexed. As an example, look at gmail, which implements several different front-ends, and just redirects users to the appropriate one.

For web sites, things are very different. Content is more static, and it needs to be indexed. In that case, PE is almost a given.

So, you'll need to look at your specific projects and evaluate the pro's and con's for each one individually.


  • Google is trying, but good is it at it? Does it affect site rank? What about other crawlers?
  • Mobile devices are important and they are going to be even more. You can make a separate mobile site, but wouldn't it be easier to make one site instead of two?
  • Even if it is only 5%, can you afford to loose them?
  • What does it take to support browsers without javascript? Just make a link out of every interactive object and let the script handle it if it can. It may not be perfect, and you cannot do everything that way, but it can be made usable.


With WAI-ARIA attributes, you can build Ajax applications that are accessible. Sure... There are still some issues with drag and drop etc, but don't use statistics to prove that accessibility isn't worth while.


We recently had a project to create accessible UI widgets. We explored progressive enhancement and found little reason to use it (even after reading the Filament book). We used jQuery and WAI-ARIA. Progressive enhancement can be valuable if your product must absolutely work on any type of browser. However, most businesses don't need to support that wide of a range of devices/browsers.

Progressive enhancement essentially makes you more than double your effort because you must create the modern widget that works with AJAX and sophisticated styling. You also must make a bare-bones version that uses traditional forms posts. If you have a complex widget that does something like an in-page wizard or grid editing using AJAX, you must develop that plus you must make separate pages for every step to support browsers without AJAX capability. The overhead becomes enormous.

It's a great methodology for maximizing capabilities, however it isn't very practical on large-scale initiatives with time and budget constraints. This was the decision we came to for our project. We feel we made the right choice.


Is IE6 still around? Yes. So you still need workarounds. If PE is better than the others can be discussed.

As for JavaScript: The new big security hole can turn public opinion into believing "JS == Satan", so they will all switch it off and lynch those who argue pro it.

Finally, every little problem with your site will cost you customers. So what should it be? Do you want a site that is easy to create (but turns away most people, especially those with influence) or a site that tries hard to shine in any browser (and attracts more visits)?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜