I think this was the initial attraction to most developers with the new HTML5 tags: we felt we were coding for the future.
Well that, and we were promised more semantics. We were promised many things, and they were shiny and attractive. I don’t blame anyone for salivating even a little over some of these tags. <hgroup>, not so much. Thank the gods they’re taking that one out (again. maybe).
Thing is, whenever a site gets renewed for any reason, the markup usually gets rewritten anyway. Usually because either someone is introducing or changing frameworks/CMSes/etc and of course the content. The sites where the markup doesn’t get changed later on are generally those ones who haven’t had an update from the authors in a long while.
I blame CSS Zen Garden for this idea. It made us think we’d just leave the markup and change the whole site design with CSS. We didn’t, though. And our CSS wasn’t really all that future-proof either: every time we look at those vendor-prefixes for border-radius, we itch to just remove them and leave the cleaner-looking original “border-radius” declaration. And when we stopped supporting IE6, all those * html hacks could go. And when we stopped supporting IE7, all those *+html ones too.
How’s that for semantics? Scripting is for behavior.
Except hyperlinks and forms. But even then, we’ve blurred it more with modern code: Paul Irish is even recommending people rely on CSS transforms, transitions and animations instead of Javascript for moving stuff around, because making those fat lazy GPUs finally do some of the work is more appealing. It will get more appealing to more devs as support grows.
Besides, if scripting were for behaviour instead of for semantics or styling, then why are we using it to make browsers be able to read HTML? (answer: because we can, and because nobody found any better ways)
That, and using Javascript for both creating HTML and for styling pages is a long, proud tradition in web development. DynamicDrive, my inner nostalgia wears your t-shirt.
I just wish that Facebook and Twitter would do the same thing so I could have a follow button or like box on my page without loading an extra 50kb.
It’s probably more likely those 4th-party calls than anything else. The amount of tracking and advertising and data-gathering code attached to a single Like button can be amazing. Like watching a wasp eaten alive by newly-hatched little parasites. Narrated by David Attenborough. “Extraordinary!” he’d exclaim.
I’m just saying it shouldn’t have to look pretty.
I think if you are building your site’s main blocks out of new elements, it goes a bit beyond whether it looks pretty or not.
When I was testing my createElement() code, I checked in IE7 with the inspector.
When I wrote this:
<aside role=“complementary”>
<div><h3>a heading</h3>
<p> text text text…</p>
</div>
…rinse, lather, repeat…
</aside>
What IE (7, 8) got (until I figured how to properly write the JS) was
<aside role="complementary/> (unknown tags get ignored)
<div><h3>a heading</h3>
<p> text text text…</p>
</div>
…rinse, lather, repeat…
</aside> (treated like a whitespace text node)
The content inside the tags were still on the page, but since I had a
<main>
floated left and an <aside> floated right and both cleared by a <footer>, this really lead to a jumble. That’s a bit further than I’d go for “pretty” vs “usable”. Except with my current job, where I just don’t care what they do anyway. They use placeholders for labels there, so, meh.
My point is this: the people who are using outdated browsers with javascript disabled make up a very small minority.
I have very particular views on minorities, I admit. In fact, I would even say that I have rather obvious biases, regarding minorities and minority groups.
Whether developers support the users of older browsers, is up to each developer and (hopefully) based on actual user stats, and what the site is created to do anyway.