Linked by snydeq on Tue 16th Aug 2011 16:46 UTC
Web 2.0 InfoWorld's Peter Wayner discusses the 11 hard truths Web developers must accept in making the most of HTML5 -- especially those who are looking to leverage HTML5 in hopes of unseating native apps. 'The truth is, despite its powerful capabilities, HTML5 isn't the solution for every problem. Its additional features are compelling and will help make Web apps formidable competitors for native apps, but security issues, limitations of local data storage, synchonization challenges, and politics should have us all scaling back our expectations for the spec.'
Thread beginning with comment 485407
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: HTML 5 == Pointless Bloat
by galvanash on Tue 16th Aug 2011 23:23 UTC in reply to "HTML 5 == Pointless Bloat"
galvanash
Member since:
2006-01-25

HTML 5 offers little if any improvement, and instead bloats out the markup for no good reason with it's new allegedly "semantic" tags


Counterpoint... What is the harm in them? There are what, like 10 or so new semantic tags? Yes, none of them are strictly necessary - but in order to convey semantic meaning (if you care about that) the standard has to have a way to attach that meaning in a concrete way. So you either have a nav tag or you have a div with some type of defined attribute to identify it semantically - seems to me to be the same thing either way. Alternately, if you don't care about the semantics you can just ignore most of the new tags, no harm done.

The scary part is, this means that ALL the progress of HTML 4 Strict and/or XHTML 1.0 Strict is being flushed right down the crapper.


What was lost exactly? Do you have a concrete example? I still write my code as if it was XML (self closing tags, no empty attributes, etc.) and that is perfectly acceptable in HTML5. If you want the equivalent to XHTML you just have to make sure you conform and set your mime type properly (aka XHTML5).

I see alot that was lost if you are comparing HTML5 to the proposed XHTML2 spec, but compared to XHTML 1? Where is the backslide?

Of course, you'll have the people going "what about audio and video" to which I reply "what the hell is wrong with object apart from browser makers dragging their heels?"


I can't argue with that one much... The point was to have default and required codec for both audio and video - we didn't get that so the whole thing is a bit of a circle jerk... However, both tags have a considerable amount of functionality relative to embed/object/whatever.

Then we have the elements that have NO LEGITIMATE REASON to EXIST as tags -- like CANVAS. Canvas is useless without javascript -- it only exists for javascript -- so why does it need a markup element again?


[canvas tag] == [img tag w/client-side procedural source].

It makes perfect sense to have it as a tag - like many other HTML5 tags it has important semantic meaning. If you see a canvas tag in the source of a document you know immediately that something is supposed to be drawn there (and that something can be described using a title attribute). A div tag would not convey that.

You figure in the bloat of the pointless allegedly semantic "header, nav" elements that seem to exist JUST to placate the people who slap extra DIV around tags for NOTHING... tags like FOOTER and SECTION that you'll end up slapping ID's on anyways just to resolve specificity...


Semantic tags are not bloat. IDs are great to make sense of things for the author - they do nothing to convey structural meaning to others. Again, you are not required to use them (they do not always make sense). But when they do make sense they are genuinely useful.

combined with most people STILL using tags for what they look like instead of what they mean -- and it's hardly a shock you see bloated slow inaccessible pages vomited up using hundreds of K of code to deliver less than 10k of content.


Can't argue with that at all. But I do not see how HTML5 makes this problem any worse than HTML4 did. Granted, it doesn't do much to improve it either... But I don't see why you are hating on it so much. XHTML2 was going to have quite a few new semantic tags too...

CSS3, the new scripting? Great stuff... you take those away from HTML 5, you have a empty pointless shell setting website coding practices back a decade or more... Or would be setting it back a decade if more than a handful of developers actually bothered to understand STRICT, the separation of presentation from content, accessibility, or even the entire POINT of HTML.


I do understand STRICT. I also like HTML5. HTML5 does nothing to set back coding practices. The only legitimate argument I can think of against it is it de-emphasizes XML, which I too agree is a bad thing overall. But other than that...

The way I read your comments you think HTML should be as rigid and efficient as possible to convey the authors intent to the browser. That is very important, but semantics matter if the thing on the other end is NOT a browser (and that is a valid use case for the web). On one hand you argue against new semantic tags (just use divs), but on the other you complain about authors nesting wrappers (which is what you end up with if you eliminate the semantic tags). There has to be a middle ground...

Reply Parent Score: 4

Brendan Member since:
2005-11-16

Hi,

"combined with most people STILL using tags for what they look like instead of what they mean -- and it's hardly a shock you see bloated slow inaccessible pages vomited up using hundreds of K of code to deliver less than 10k of content.


Can't argue with that at all.
"

Must be my turn then.

For HTML, the content itself is just data from "somewhere" (typically a database); and the job of a web developer is to design and control the presentation of that content. Idiotic crud like CSS and "semantic" tags (even old stuff, like the "em" tag) just make it harder for web developers to do their job well (as they can't really say how any specific browser might render it), and push developers towards using things like Flash as a way of controlling presentation.

One supposed advantage of semantics is that it's "important" for accessibility. This is misguided, as most accessibility stuff needs to be taken care of at the OS's level so that all applications (not just stuff displayed by a web browser) is usable; and if accessibility is taken care of at the OS's level (like it already is in most OSs) then HTML itself needn't care about most accessibility. Of course for blind people, you really don't want HTML at all - you want something designed for complete control over audio (both sound and speech synthesis), including timing, volume, position, etc; and you want web developers to design sites specifically for audio (including site navigation, etc) instead of trying to make something intended for visual content delivery (and primarily used for visual content delivery) work in a "half-assed, almost better than nothing" way.

Then there's thing like search engines, which are already capable of producing extremely good results from things that lack any semantics; like PDF files, MS word files, text files, etc. They have no need for semantic markup, and often the tags intended for search engines (like the "keywords" meta-tags) are deliberately ignored by search engines.

For anything more than that, if you want "raw content + semantics" then use XML (not HTML and not XHTML).

Basically, the only valid reason for any/all tags in HTML is to tell the browser how something should look. Rather than concentrating on doing the job it was intended for (and doing it well); since HTML4 they've been making it worse just to make HTML something it was never intended to be.

- Brendan

Reply Parent Score: 0

galvanash Member since:
2006-01-25

Idiotic crud like CSS and "semantic" tags (even old stuff, like the "em" tag) just make it harder for web developers to do their job well (as they can't really say how any specific browser might render it)


Hi! How are things back in 1992?

Seriously... So you want to go back to purely using tags to control presentation? Really?

I have been doing this since 1996 or so. You can not and have never been able to say how any specific browser might render things reliably. It has always been horseshoes and hand grenades until CSS became prevalent. It is still hit or miss to some extent, but much better than it ever was in the past. If you want to control presentation, that is what CSS is for - HTML is for describing document structure, linking, and embedding.

In hindsight I almost wish all browsers shipped with absolutely no presentation defaults at all and forced authors to implement complete CSS styling for their work. It would actually save me some trouble most of the time as the first step required when you want pixel perfect rendering across modern browsers is to reset all that crap anyway.

Realistically it isn't that way though because most of the time you really don't need pixel perfect rendering and the defaults generally behave similarly enough that if you keep things simple they work well. I have nothing against this approach to doing web pages - simple is often good... As long as you are not naive enough to thing that "good" means "identical" it is a perfectly valid way to do things.

One supposed advantage of semantics is that it's "important" for accessibility. This is misguided, as most accessibility stuff needs to be taken care of at the OS's level so that all applications (not just stuff displayed by a web browser) is usable;


It doesn't matter what is doing the accessibility. Please explain how the OS is supposed to do it without something telling it WTF it is looking at? You make it sound like semantic tags are a bad thing... You do realize most of those presentational tags from HTML 2.0 you seem fond of ARE semantic tags don't you? H1 doesn't mean "really big font", it means "Top Level Heading", it just also happens to render with a really big font in most browsers. There really are only a small handful of tags that were ever in HTML that can be considered purely presentational. The font tag for sure, i and b are really both - big, small, sub, sup - hell that is about it really, everything else is semantic.

The point is if you care how it looks you need to use CSS to control it - the tags purpose is to convey document structure. That is essentially what semantic means. If you want HTML without semantics... well you really don't have anything left. Hell, if you don't care about semantics just make a jpeg and use an img tag... Really, why not?

Then there's thing like search engines, which are already capable of producing extremely good results from things that lack any semantics; like PDF files, MS word files, text files, etc.


You do realize all of those things have semantics in them don't you? They may not always be explicit, but even text files have semantics (TITLE IN ALL CAPS). How do you think Google extracts information like the title form say a .doc file when the metadata is missing? It looks for the first heading in it. Same with pdfs. HTML just makes it more explicit and well defined. How is that a bad thing?

Basically, the only valid reason for any/all tags in HTML is to tell the browser how something should look.


You have a seriously misguided view of what HTML is, what it is for, and how it is actually used.

Edited 2011-08-17 04:26 UTC

Reply Parent Score: 4

lucas_maximus Member since:
2009-08-18

Of course for blind people, you really don't want HTML at all - you want something designed for complete control over audio (both sound and speech synthesis), including timing, volume, position, etc; and you want web developers to design sites specifically for audio (including site navigation, etc) instead of trying to make something intended for visual content delivery (and primarily used for visual content delivery) work in a "half-assed, almost better than nothing" way.


Somebody hasn't heard of Aural Stylesheets.

Reply Parent Score: 2

M.Onty Member since:
2009-10-23

Of course for blind people, you really don't want HTML at all - you want something designed for complete control over audio (both sound and speech synthesis), including timing, volume, position, etc; and you want web developers to design sites specifically for audio (including site navigation, etc) instead of trying to make something intended for visual content delivery (and primarily used for visual content delivery) work in a "half-assed, almost better than nothing" way.


Better standards support for screen-readers would be welcome, but tags like em and other 'crud' are very useful for rendering HTML in Braille or have it read by screen-readers. Compared to Word or PDF, HTML (when written with semantic tags) is far superior for the blind and visually impared.

Reply Parent Score: 1

deathshadow Member since:
2005-07-12

For HTML, the content itself is just data from "somewhere" (typically a database); and the job of a web developer is to design and control the presentation of that content. Idiotic crud like CSS and "semantic" tags (even old stuff, like the "em" tag) just make it harder for web developers to do their job well (as they can't really say how any specific browser might render it), and push developers towards using things like Flash as a way of controlling presentation.


WOW... that's the dumbest thing I've heard in a long time. Lemme guess, ASP developer?

Semantic markup and separation of presentation from content allows you to use less markup in your server side code -- it allows you to reskin the entire page without once touching whats making the markup -- it usually ends up less code overall.

How is that "making developers work harder" -- or are you one of those who's worshiping at the feet of the dipshit photoshop jockeys who think they know ANYTHING about accessibility, maintainability, or even what's practical to implement on a website in the first place?

Your entire post reeks of failing to understand the technologies you're running your mouth about! But then, I could say the same thing about the people who coded the latest iterations of Hotmail, Yahoo's entire site, or Google Search...

Type of statements I'd expect from someone white-space stripping to hide bad coding practices, still using tables for layout, failing to put a doctype on there so it has to hack around IE being in quirks mode, line-breaks instead of paragraphs, non-breaking spaces and line-breaks to do padding's job, tables for NOTHING (worse than for layout!) and inlining ALL their presentation so they can't even leverage caching models across pages.

Much less a lack of headings, lists or anything else to make things like search engines and screen readers treat a page as anything more than one giant run-on paragraph. Author meta after HEAD is closed, multiple instances of closing head and opening body, inlined style attributes, invalid inlined styles... Triple-nested BIG tag doing H1's job... You know, 2.5k doing 1.1k's job?

Edited 2011-08-17 23:22 UTC

Reply Parent Score: 2

HTML 5 === Pointless Bloat
by deathshadow on Wed 17th Aug 2011 22:57 in reply to "RE: HTML 5 == Pointless Bloat"
deathshadow Member since:
2005-07-12

Counterpoint... What is the harm in them? There are what, like 10 or so new semantic tags? Yes, none of them are strictly necessary

encourages people to add extra wrapping tags for NOTHING. See the dipshits who right now do nonsense like wrapping a div around a single UL just to give it an ID -- when the UL by itself is a perfectly good block level element for attaching styling to. 99% of the layouts where they were doing DIV#NAV and now use NAV that extra wrapper is POINTLESS.

... AND it's an extra element on the DOM, something search engines are FINALLY taking sites to task for with their speed analyzer... All for something that frankly, ARIA Roles make a hell of a lot more sense for.

but in order to convey semantic meaning (if you care about that) the standard has to have a way to attach that meaning in a concrete way.

You mean like the EXISTING tags of numbered headings and ul?

So you either have a nav tag or you have a div with some type of defined attribute to identify it semantically - seems to me to be the same thing either way.

Dom size... or the EXISTING semantic tags. I don't need HEADER, FOOTER or NAV, I know how to use H1/H2/H3/H4/H5/H6/UL/P/HR properly. (yes, HR -- end of topic/ section started by a heading!)... It is NOTHING more than bloat for the dips who wrap DIV around elements for NOTHING -- the only other reason for having div around something like a foooter is for PRESENTATION -- at which point you shouldn't be attaching more meaning to it in the first place!

But then, I've rarely seen anyone use HR for what it's for or put numbered headings in a sensible order for layout navigation on things like screen readers -- multiple H1's, skipping heading numbers, having low order (high numbered) headings before the H1... Mish-mash of idiocy.

What was lost exactly? Do you have a concrete example? I still write my code as if it was XML (self closing tags, no empty attributes, etc.) and that is perfectly acceptable in HTML5.

As is every other blasted type of formatting meaning there's no single consistent formatting rule -- just sleaze it together any old way... Yeah, that's progress. Thank you for providing your own example ;)

I see alot that was lost if you are comparing HTML5 to the proposed XHTML2 spec, but compared to XHTML 1? Where is the backslide?


Adopting tags like EMBED into the specification when it was originally rejected as redundant to OBJECT? Bringing back deprecated tags like MENU? Adding dozens of new tags when nobody can be bothered to use the ones we already have properly? (TH, THEAD, TBODY, CAPTION, LEGEND and LABEL for example!) 4 STRICT was not just about getting rid of presentational tags (FONT, CENTER, BASEFONT, U), but also redundancies (DIR, MENU, APPLET, S, STRIKE)... Now a whole slew of pointless redundant tags are being dumped in -- sounds like a backslide to me!

However, both tags have a considerable amount of functionality relative to embed/object/whatever.

Which could just as easily have been added to OBJECT.

[canvas tag] == [img tag w/client-side procedural source].

Which IMG was originally on the chopping block for OBJECT too, and could have been abandoned if Microsoft hadn't made such a broken OBJECT implementation... Still the best way to show jpeg2k though -- but of course we're going to be using .gif, .png and normal jpeg until we're old and gray as there's no way any better format could EVER come along...

It makes perfect sense to have it as a tag - like many other HTML5 tags it has important semantic meaning.

On something that isn't content and/or is strictly presentational when not present... Rule #1 of good javascript, enhance not supplant... and auto-attach insted of manually hooking in the markup. (Naturally the people who vomit up bloated jquery bull will never understand that)

If you see a canvas tag in the source of a document you know immediately that something is supposed to be drawn there (and that something can be described using a title attribute). A div tag would not convey that.

The only reason I can see it being useful is that it works like object for wrapping scripting off content... So I'll give you that. Still, it would be MUCH more useful if we could use it to draw extra stuff on existing elements... Something VML, SVG and Canvas are all pretty much useless for.

Hell, I'd love to see a vector language added to CSS so you could draw on the background bitmap -- much like the one created by linear-gradient. THAT would be useful.

Semantic tags are not bloat.

They are when the semantics are dubious and are used to WRAP OTHER SEMANTIC TAGS -- like H1... like UL... like P... Then you're just stacking semantics and making the document structure dozens of times more complicated than it needs to be. We have enough semantic tags as it sits, adding extra WRAPPING tags to go around wrapping tags? That's just STUPID... Especially when you take DOM size into consideration (Even more so with jquery and other scripttards going through the entire dom to attach their stuff with getElementsByClassName or getElementsByTagName)

IDs are great to make sense of things for the author

Only reason they exist is to target them via hash, scripting or CSS... Using semantic tags usually involves using less classes and ID's...


they do nothing to convey structural meaning to others. Again, you are not required to use them (they do not always make sense). But when they do make sense they are genuinely useful.

I dont' see them as useful -- at all. I see them as 100% bloat because if the tags inside them -- H1, P, A, HR -- already are conveying information, what purpose does adding any of that extra crap around them serve besides justifying the bloat of people who wrap extra DIV around things for nothing that couldn't be applied to the existing tags. I can understand DIV for grouping tags into sections, but I'm not changing or adding meaning by doing so -- Nor would I WANT TO.

combined with most people STILL using tags for what they look like instead of what they mean -- and it's hardly a shock you see bloated slow inaccessible pages vomited up using hundreds of K of code to deliver less than 10k of content.


Can't argue with that at all. But I do not see how HTML5 makes this problem any worse than HTML4 did. Granted, it doesn't do much to improve it either... But I don't see why you are hating on it so much. XHTML2 was going to have quite a few new semantic tags too...


... and XHTML 2 was a fat bloated train wreck of unneccssary crap too. Who'd have thought HTML 5 would end up being a retread of bad ideas, I suppose though you're right, it doesn't make it worse, it just adds tags to artificially justify the half-assed coding techniques of the people who still have their head permanently wedged up 1997's backside.

I do understand STRICT. I also like HTML5. HTML5 does nothing to set back coding practices.

Apart from the loosening of the rules, encouraging extra dom elements that serve no real purpose, adding back in tags that were deprecated for a reason, putting back in redundancies and adding even more new ones...

Gonna have to break this into two parts.

Reply Parent Score: 2

deathshadow Member since:
2005-07-12

The way I read your comments you think HTML should be as rigid and efficient as possible to convey the authors intent to the browser. That is very important, but semantics matter if the thing on the other end is NOT a browser (and that is a valid use case for the web).

I'm not seeing where you get that as I am in fact arguing in FAVOR of semantics -- and that's my problem with the new tags as they muddy the water by applying extra meanings we don't need. It's like the nimrods who go around slapping P around EVERYTHING just because it happens to be text or in flow. (P around IMG comes to mind)... A LABEL/INPUT pairing is not a paragraph or list item or table cell. Putting a P around it is pointlessly applying the wrong semantics... To me, putting NAV around a UL is that same type of idiocy... or DIV#header vs. HEADER when a numbered heading tag (H1,H2, etc), maybe with SMALL for de-emphasis and a couple span as styling hooks can typically handle that all by itself.

But then I always hated id="nav" or class="nav" -- so NAV as a tag is going to annoy me as being pointlessly vague. EVERY BLASTED ANCHOR ON A PAGE is "navigation" -- doesn't narrow it down a whole lot on meaning. Are we supposed to now wrap it around everything that has an anchor in it? I think not. Pointless bloated element that exists NOT for the accessibility bullshit they claim, but to justify the people who put that extra div around their UL for NOTHING. Probably why I use classes and ID's like "mainMenu", "userMenu", etc...

On one hand you argue against new semantic tags (just use divs), but on the other you complain about authors nesting wrappers (which is what you end up with if you eliminate the semantic tags). There has to be a middle ground...

NOT IF WHAT GOES INSIDE THEM ARE THE EXISTING SEMANTIC TAGS (H1, H2, P, UL, OL... even HR) -- at which point wrapping them with ANOTHER semantic meaning ... well, that's shellac on a pile. Covering a turd in bug excrement isn't the answer, no matter how shiny and new it looks.

I think that's what you're missing -- I don't see the point of these allegedly semantic new tags if they're just going around tags that already have meanings. That's called pointless bloat!

Reply Parent Score: 2