Jump to content
xisto Community
Sign in to follow this  
Mordent

Progressive Enhancement Vs. Graceful Degradation Thoughts on these ideas, anyone?

Recommended Posts

Hi all! I've stumbled across two little issues while attempting to design my website which I thought I'd get some opinions on.

Firstly, the main discussion of this thread, the idea of progressive enhancement compared to graceful degradation (in the context of web design). In short, the former relies on building a website for the most basic system/browser/etc., with additional features added for those with more advanced versions, and the latter train of thought is that a website should be designed for the most advanced user first and foremost, with older versions having more limited functionality and the like.

Essentially, both ideas achieve the same thing, but what line of thought do you follow (if any) when designing a website? Have you always designed sites that way because you weren't aware of the other options, or was it a conscious choice?

My second issue is closely tied with the above notions, namely that of unobtrusive JavaScript. I'm curious as to how to implement this ideal when attempting to use JavaScript as the main means of navigation for my site (combined with AJAX) - i.e. the links clicked on on the navigation bar at the top of the pages use JavaScript as standard to load the pages. Is it worth coding a site that works out whether you've got a JavaScript and AJAX compatible (and enabled) browser and produces the pages differently, or would it make more sense to essentially create two seperate sites, one for older browsers (or those with JavaScript disabled) and one for newer ones?

Any comments, thoughts and suggestions are more than welcome, cheers!

Share this post


Link to post
Share on other sites

Firstly, the main discussion of this thread, the idea of progressive enhancement compared to graceful degradation (in the context of web design). In short, the former relies on building a website for the most basic system/browser/etc., with additional features added for those with more advanced versions, and the latter train of thought is that a website should be designed for the most advanced user first and foremost, with older versions having more limited functionality and the like.
Essentially, both ideas achieve the same thing, but what line of thought do you follow (if any) when designing a website? Have you always designed sites that way because you weren't aware of the other options, or was it a conscious choice?

With my personal websites (and my scripts) i use the "graceful degradation" path. I don't pick this choice because i'm ignorant of other design methods, but because i choose not to be limited with my designs. If i can do it with the current technology, then i'll do it, even if some browsers don't have the support yet. Normally the only browser that doesn't have support for the things i do is Internet Explorer (but of course). However, Opera still doesn't have any way of displaying box-radius (though i hope they at least implement an -o-border-radius or something soon). But if i were to get paid for the things i make or work on, then i'd consider "progressive enhancement." Plus, using new technologies helps me learn new things; basically you are future-proofing yourself.

My second issue is closely tied with the above notions, namely that of unobtrusive JavaScript. I'm curious as to how to implement this ideal when attempting to use JavaScript as the main means of navigation for my site (combined with AJAX) - i.e. the links clicked on on the navigation bar at the top of the pages use JavaScript as standard to load the pages. Is it worth coding a site that works out whether you've got a JavaScript and AJAX compatible (and enabled) browser and produces the pages differently, or would it make more sense to essentially create two seperate sites, one for older browsers (or those with JavaScript disabled) and one for newer ones?

I always make sure my site works without JavaScript even if it uses AJAX to load and replace the main content of the site. That normally involves separating the script that grabs the content from the template system and have the template system include the content script. I don't really consider browsers like Internet Explorer 5, and in perhaps a couple of years i won't be considering Internet Explorer 6, so building two sites, in my case at least, would be unnecessary.

Share this post


Link to post
Share on other sites

Like true fusion I tend to build my sites using as many advanced features as possible. How ever when a user is using an unsupported browser I simply use the method of redirecting them to a notice where they are told they are required to upgrade browsers before being able to view the site. This is bad practice as you lose potential viewers who refuse to upgrade or have no means to but I have no learned a method or tried building sites that degrade gracefully and still offers the view to the site. Unlike truefusion I don't even consider Internet Explorer 6 as there are too many bugs I need to fix for my layout to work correctly.About the requirement of JavaScript, I have always assumed my viewers will have it and create my sites that rely on it. I use Ajax a lot so nothing will work properly without it. For me if my users don't even have JavaScript enabled then its their lose. I do not know anyone who is paranoid enough to disable JavaScript while surfing the web.

Share this post


Link to post
Share on other sites

With my personal websites (and my scripts) i use the "graceful degradation" path. I don't pick this choice because i'm ignorant of other design methods, but because i choose not to be limited with my designs. If i can do it with the current technology, then i'll do it, even if some browsers don't have the support yet. Normally the only browser that doesn't have support for the things i do is Internet Explorer (but of course). However, Opera still doesn't have any way of displaying box-radius (though i hope they at least implement an -o-border-radius or something soon). But if i were to get paid for the things i make or work on, then i'd consider "progressive enhancement." Plus, using new technologies helps me learn new things; basically you are future-proofing yourself.

Your last statement there is certainly true, as by using the progressive enhancement method it would be complicated to ensure that you could fully exploit the latest techniques available to you due to having to cater for the simplest of machines first and foremost. In the worst case, this would mean that as time goes on you have even more work to do as new technology comes out to add on top of your current list of techniques.

I always make sure my site works without JavaScript even if it uses AJAX to load and replace the main content of the site. That normally involves separating the script that grabs the content from the template system and have the template system include the content script. I don't really consider browsers like Internet Explorer 5, and in perhaps a couple of years i won't be considering Internet Explorer 6, so building two sites, in my case at least, would be unnecessary.

I agree with your views on JavaScript/AJAX pretty much completely, though I have to say that I tend to ignore IE6 as well simply because I've no real way of testing with it excluding some websites that offer such a service.

Like true fusion I tend to build my sites using as many advanced features as possible. How ever when a user is using an unsupported browser I simply use the method of redirecting them to a notice where they are told they are required to upgrade browsers before being able to view the site. This is bad practice as you lose potential viewers who refuse to upgrade or have no means to but I have no learned a method or tried building sites that degrade gracefully and still offers the view to the site. Unlike truefusion I don't even consider Internet Explorer 6 as there are too many bugs I need to fix for my layout to work correctly.

Interesting viewpoint there, and I have to admit it's also the one that I'm currently following. In my case, though, it's more because I haven't really considered the other options available to me, or learned the techniques required to execute them.

About the requirement of JavaScript, I have always assumed my viewers will have it and create my sites that rely on it. I use Ajax a lot so nothing will work properly without it. For me if my users don't even have JavaScript enabled then its their lose. I do not know anyone who is paranoid enough to disable JavaScript while surfing the web.

From what I can gather, the only real times that JavaScript is going to be disabled by the user is if they have no choice (for instance, if a company's policy is to have JavaScript disabled on its computers and the user is browsing from work) or if the device they're using is something like a mobile phone (which may not support JavaScript). While I expect the actual number of users who this affects would be pretty minimal, it still does cut down on the number of people who can access your site if you exclude them completely.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.