I myself am still on Firefox 3.x because I like the deprecated plugins and am waiting for them to catch up. That’s the Real World. Please, where are the polyfills for us? I’ll happily throw in whatever code is needed for the older browsers, but what is it?
I too have 3.6x for the same reason. Lots of HTML5 stuff doesn’t work, nor should it: Mozilla didn’t even implement the HTML5 parser until FF4 (as something you had to turn on because it was experimental) and (not sure) default on with FF5.
But the point of HTML5 is supposed to be:
-backwards compatibility (this isn’t everywhere but they tried where they could)
-pave the cowpaths (use what vendors and authors are already doing where applicable)
The point of most of the new stuff is, IF the browser supports it, then great, fancy schmancy new crap. If the browser doesn’t, fine: you get old-fashioned normal websites.
Example, your video element:
You should have done something like Video For Everyone:
<video attributes blah blah…>
<source this one for safari and apple crap>
<source this one for webm>
<source ogg if you want (FF3.5 to FF4… FF4 can do webM)>
NOW HERE, listen:
video can haz stuff inside it, including <object> tags. What did you do to place a video on web pages before fancy video tags? That’s right, you were restricted to Flash and stuff. This is your fallback; there is no way you will make old browsers play videos without Flash, that doesn’t even make sense. New stuff for new browsers, period.
<object blah blah data=“your flash film” blah blah>
<param blah blah>
Not everyone has flash, fine…
<p><a href=“download”>Download the video here if your browser cannot play</a></p>
You said the Flash stuff didn’t work. Use whatever Flash code has always worked for you (but I would recommend a Satay-style code without the MS attributes since you don’t really need them). And, of course, a download link for the rest of us. I don’t even let Flash run in my browser. So let me copy the file and play in my preferred program.
(this is basically from Video for Everybody since I saw it before it vanished… site is temporarily gone but should come back at some point)
That’s what you do. No polyfill BS, just drop down to whatever’s needed for older browsers (which, as you say, most users are still on… only nerd and web devs and maybe Opera users are binging on the bleeding edge stuff anyway) using graceful degradation.
All I need is audio, so I’m also a little concerned that the book only really covers video.
Hm, likely because video is like audio but with more junk in it. The rules are the same, you can still degrade to flash in an <object> tag, and pretty much everything else is the same… instead of 2 codecs (video and audio) you just have one. They probably thought they were hitting two birds with one rock or something.
If the book shows all these “look it works but only on webkit nightlies and that’s fine because we can load 300k of JS to “fix” everyone else” then it’s a fail, but an understandable one because that’s what you’re hearing all over the web.
And for many web developers, what they build and who they build it for is fine with this. Many web developers only want to build for bleeding-edge, and don’t mind that scripting is necessary to make some (very popular) user agents understand HTML markup. It goes against the Tim Berners-Lee hippy “teh internets is for all regardless of (dis)ability, hardware or software” idealism, yes, but enough web developers (the majority?) don’t subscribe to it in the first place, so a book like this makes them drool.
I suggest you look way deeper into HTML5 (try Mark Pilgrim’s diveintohtml5.org or if you like books, he has a book with the same info but different title at O’Reilly, and yes I can say it is worth it and mostly accurate (only not where it’s outdated), and html5doctor.com for advice), and find out for yourself what you can indeed safely use without a lot of extra BS, and what you’ll have to just realise won’t work in older browsers at all, or will only work with a bunch of scripts. You can totally determine how much you want relying on scripts and how much you don’t, as well: it’s not either a bazillion lines of code or none. You can choose for example to use Modernizr-type scripts who just check if some new property or method exists in the browser, and then decide if you’ll do something with that knowledge or not (it’s usually really simple easy JS, just some if statements usually; don’t need some Modernizr library to do it for you).
At this point, I’m getting no better results than I did with plain old XHTML.
For example, I recently updated some forms I have. I didn’t change the doctypes (the pages are still the old HTML4.01 and XHTML1.0… I haven’t found a browser yet who cares) but added type=“email” and type=“tel” for some form inputs. Old browsers are fine with this (they know these are really just updated type=“text” and they’ll continue to treat them as type=“text”). New browsers know these are different (update your CSS if you’re targeting input[type=text] tho). Mostly, newer mobiles with touch screens can display different, easier-to-use keyboards. Someone with an iWhatever or an Android-something or a crackberry can now more easily fill in a form. This is great, and really doesn’t have a downside. This is what is nice about HTML5: it’s not one thing. It’s a bunch of little things, and you can pick and choose what you want to use so long as you know how stable it is, how supported (or not) it is, and whether it’s actually valuable to your visitors or just bloated hype.