I've started using HTML5, starting from the HTML5 Boilerplate. This includes modernizr, which includes a shiv to enable HTML5 elements like <header>
, <footer>
etc. IE6-8 will ignore these elements without the shiv, and the shiv is JavaScript, so without JavaScript IE6-8 will look like a sack of crap.
I'm worried about a client looking at the site in IE6-8 without JavaScript. I'm wondering whether I can justify using <header>
over <div id="header">
, "because it's more semantic". How do you guys feel about this? Do we have to wait for IE6 to die, or is it OK to rely on Java开发者_运维知识库Script in this limited case?
Edited to acknowledge the fact that this problem affects IE6-8, not just IE6.
Depends entirely on each site’s existing and desired users. If they all run IE 6 with JavaScript turned off, you’re in trouble.
Unfortunately, I don’t know of any web analytics packages that tell you how many of your users don’t have JavaScript turned on, as the analytics packages tend to rely on JavaScript themselves.
If you can figure out a way to ask your users yourself, then you’ll have some real data to work with, as opposed to guesses.
<!--[if lt IE 7 ]>
<noscript>
<h1>You don't deserve to be here.</h1>
</noscript>
<![endif]-->
:)
Well have you told your clients that you'll support IE6, or not? Some web people I know now (rightly) consider it a legacy browser and will only support it at an extra charge. Nobody takes them up on that. Also, how many people that still run IE6 know how to disable JavaScript?
I've seen estimates of the number of people with JavaScript switched off at around 5% - 10%. I'd imagine in this Ajax/HTML5 powered age it's around the 5% mark and declining. The number of IE6 users is also declining and around the 10% mark (though that does depend a great deal on your target audience).
So to get the number of people effected, you'd have to extrapolate 5% of 10% which is 0.5%, though disabling JavaScript on IE6 is quite difficult so it's probably something like 2% of 10% = 0.2%.
At this point I should also point out that IE7 and 8 also require the JavaScript Shiv, as they don't support HTML5 elements either.
According to this site global share of all version of IE is around 50% http://gs.statcounter.com/#browser-ww-monthly-201009-201009-bar So the stats become 5% of 50% which is 2.5%.
You have to ask yourself whether 2.5% is really that important, considering you'd possibly be giving up some compelling HTML5 features that may improve the experience for the other 97.5%, or improve your SEO, prep your site for the future etc.
That decision is up to you.
As long as you back yourself up with sufficient technical documentation and your client agrees this wouldn't be a problem, for example:
With javascript disabled the look and feel of the site will be reduced, however core functionality will work, such as links and form entry. The following known issues are deemed acceptable by <company name> as they do not hinder or break sites that match our minimum requirements:
Png transparency in ie6 with javascript turned off
<company name> use javascript for PNG transparencies in IE6. This enables more control over images that css hacks do not allow, such as background positioning, animation and clickable elements. This means that site designs do not have to be limited by legacy browsers whilst users of IE6 will be able to use the site to the best of the browsers ability. The minority of IE6 users with javascript turned off will still be able to use the site but with the limitations disabling this brings.
HTML5 in older browsers
<comapny name> promote the use of the latest technologies and techniques available, which includes the use of HTML5 and CSS3. To allow for the use of these features in older browsers additional scripts are required mimic newer browsers. The minority of users with JavaScript disabled in Internet Explorer 6, 7 and 8 will still be able to use the site but without the additional functionality these new features bring.
Instead of a JavaScript shiv to convert the new elements to <div> could a server-side script be used? e.g. PHP object buffering with a callback?
精彩评论