A Zing Too Far

Fred Blasdel said:

You’ll always draw ire for having stumbled into being the Chief of the cargo-cult side of Web Standards, with so-called ‘XHTML’ as the false idol. You did a lot of good, but not without ambiguating the nomenclature with a lot of feel-good bullshit.

You often find yourself as a mediator between designery folks (who you have a strong grasp over) and technical implementors (who will always hold a grudge against you for muddying the discourse). Asking people to wear blue toques does not particularly affect this balance.

“Cargo cult.” I love that phrase. But I’m not sure I agree with your assessment.

XHTML, with its clearer and stricter rules, came out just as many of us were rediscovering semantic markup and learning of its rich value in promoting content. It wasn’t a coincidence that we took this W3C specification seriously and helped promote it to our readers, colleagues, etc. The stricter, clearer rules of XHTML 1.0 helped enforce a new mindset among web designers and developers, who had previously viewed HTML as an “anything goes” medium (because browsers treated it that way, still do, and quite probably always will; indeed HTML5 codifies this, and that’s not necessarily a bad thing).

Future versions of XHTML became a dead-end not because there was no value in strict, semantic, structural markup, but because the people charged with moving XHTML forward lost touch with reality and with developers. This is why HTML5 was born.

That’s history and it’s human behavior. But those subsequent twists and turns in the story don’t mean that standardistas who supported XHTML 1.0 (or still do) and who used it as a teaching tool when explaining semantic markup to their colleagues were wrong or misguided to do so.

That some technical people in the standards community think we were wrong is known, but their belief does not make it so.

That a handful of those technical people express their belief loudly, rudely, and with belligerent and unconcealed schadenfreude does not make their point of view true or persuasive to the rest of us. It just makes them look like the close-minded, socially maladroit, too-early-toilet-trained, tiny-all-male-world-inhabiting pinheads they are.

Short URL: zeldman.com/?p=3108

97 thoughts on “A Zing Too Far”

  1. As I make the switch to HTML5 on many projects, I will continue to write markup with the strictness of XHTML. Why? Because, to me, it makes sense. Some people resist standards simply because they’re content and/or resistant to change. At some point, they’ll be left behind.

  2. HTML5 allows both XHTML-style syntax and HTML-style syntax, for HTML documents.

    XHTML-style syntax is stricter (all open tags must be opened and closed, for example), this is why I like it more… A matter of personal preference, I guess:)

    Even now, some prefer to use HTML 4.01 Strict, while others prefer XHTML 1.0 Transitional or Strict. There is no such thing as “better” or “more pure” kind of HTML standard. The fact that I prefer XHTML 1.0 doesn’t mean it is better or worse than HTML 4.01.

    I believe that it is the same with upcoming HTML5, which allows you to use XHTML or HTML style of coding.

  3. For me, learning to use semantic XHTML went hand-in-hand with learning to use CSS instead of tables for layout.

    I still use XHTML, not (directly) because anyone else does, but because I love the strictness and cleanliness of the standard and have long felt it to be the best tool for the job.

    I’m beginning to transition to HTML5, but I will still use this with XML principles that I learned by using XHTML, because I believe this helps deliver a high quality of markup and also because I just like to do it that way!

  4. Today I posted a video on Bike Hugger that was wrapped in an embed tag with all sorts of metrics attached to it. I tried to strip the embed, and it failed to load, and then decided the value of the content was greater than the value of an invalid page.

    I don’t think standards nazis validate pages anymore and “out” the publishers of them and good. We did ourselves harm during the “rise of standards” by taking a less practical and meaningful approach and impressing each other with the ability to find a uber-workaround for all browsers. I said it once during a talk that browsers should work like toasters — push the plunger down and in a few seconds out pops a miraculously-browned piece of bread.

    Today we type into a location bar and out pops a webpage that works because of standards and not because we chose to participate in a cause and were smarter than everyone else or knew some magic code documented somewhere in an IRC chat or newsgroup.

    We should detach the egos from the cause and make this stuff work in the background for the greater good. That’s why the Bike Hugger avatar has a blue beanie on it.

    When our readers noticed the nice, new Winter Avatar I replied, “that’s for Standards and cool you don’t have to think about that stuff much anymore because of lots of hard work.” I don’t want to think about much anymore either.

    I just want to make toast.

  5. and technical implementors (who will always hold a grudge against you for muddying the discourse)

    I, for one, am one of those “technical implementors”. My code has only gotten cleaner and better. I’d rather wade through someone else’s code that is cleaner and better and not the fouled up, muck that I have had the misfortune of wallowing through, for years. Especially, through the PHP3 years.

    There are coding standards other than HTML/CSS, I don’t know if Mr. Blasdel realized this. Like HTML, PHP doesn’t have a strict set of guidelines, but there are guidelines out there. See http://framework.zend.com/manual/en/coding-standard.html. Zend is one of them and a lot of PHP developers follow those guidelines.

    So, all these “technical implementors” Mr. Blasdel is speaking of, the demographic, he is so understanding of… what are they going to do (along with Mr. Blasdel) when HTML5 comes out?

    I despise the spattering of PHP in HTML & vice versa, in pages like a Jackson Pollack painting. It is the worst to have to go through & I know others that share the same sentiment. I know these developers, a.k.a. “technical implementers”, to share the same feeling that standards in HTML, have made them better front-end developers. Myself included. Which has trickled over to the usage of standards in PHP that we use.

    Seems like Mr. Blasdel, from the previous entry, just needed a public outlet to get his name out there and self-promote with his magnanimous-like tones. Maybe Mr. Blasdel should not only do a little more fact-finding before he spouts off at people about things like BBD09, technical implementers, & use Harris Polls or Gallup Org. to take surveys before he speaks for the rest of the general programming populace.

  6. Hmm the XHTML strictness you speak of – in the way it’s commonly used (text/html) – is simply optional, like strictness within HTML 4.01.

    Personally I don’t care which people use so long as the code is well written and accessible, but this is rarely the case even with “valid” XHTML.

  7. As far as I’m concerded, the XTHML’s strict rules and semantics are much easier to read and understand than HTML’s (pottentially) loose rules and markup. Even if I’m already using the HTML5’s Doctype, I keep writing XHTML markup and will continue to do so for a long time.

  8. Today’s Lesson: Don’t attempt to make the web a better place for all because you might have to come back 6 years later and respond to someone in a blog entry on Thanksgiving.

    Not going to lie, I’m a bit upset you got dibs on the Blue Beanie thing. Unless I attempt to start a “Giant Head, Little Body” day then I’m pretty much screwed.

  9. Oh hear we go again, people talking about XHTML’s better “semantics”… XHMTL is no more semantic than HTML 4.01.

    This is what that Fred guy is talking about, there’s so much bullshit out there about XHTML that really muddies the water and causes confusion amongst people who should know better.

  10. Will driving Electric cars in this lifetime make a difference? Probably not but it’s about progression and movement towards a larger picture.

  11. @Ryan:

    Oh hear we go again, people talking about XHTML’s better “semantics”… XHMTL is no more semantic than HTML 4.01.

    Here we go again not reading what people actually say.

    No one said XHTML had better semantics than HTML.

    Here is a relevant sentence fragment. Please reread it carefully until you understand it:

    The stricter, clearer rules of XHTML 1.0 helped enforce a new mindset among web designers and developers, who had previously viewed HTML as an “anything goes” medium

    Most of us back in the 1990s treated HTML the way browsers did, as an anything-goes tool to get the job done.

    Once standards support in browsers enabled us to start doing CSS layout for real, we took a second look at HTML and realized we could actually use it the way the W3C had always suggested we do: as a structural, semantic language.

    At that moment in time, XHTML 1.0 came out. It was HTML (and even got served as HTML) but with clearer, stricter rules about closing tags, etc.

    XHTML’s emphasis on rules coincided nicely with our rediscovery of the true purpose of HTML (a purpose we could not appreciate when we had to use tables to create layouts).

    No one says XHTML is more semantic than HTML.

    XHTML came out at the moment we were rediscovering semantics, and its clean rules-based approach appealed to those of us who were now taking markup more seriously.

    I’ll be glad to explain it again if you still don’t understand.

  12. Dear readers:

    This post is not about picking on Fred. Fred is expressing a point of view that is widely held in some quarters, and he is doing so with far more restraint and politeness than some who share that view.

    This is a post about respecting one another’s choices and not making false claims in order to vilify people who made different choices than you.

    For instance, when some standardistas switched back to HTML 4.01, I respected their choice. I didn’t switch back to HTML 4.01 myself because a few browsers at the time went into Quirks mode in the presence of an HTML 4.01 DOCTYPE (thus creating CSS layout problems), and because, although XHTML could be slightly unwieldy and pedantic, its consistency appealed to me and helped reinforce my desire to take HTML very seriously. I had years of bad web design habits to unlearn. The rules of XHTML helped me train myself out of those habits.

    Like developers who switched back to HTML 4.01, I was disturbed by where I saw XHTML going. But unlike those developers, it worked for me to stick with XHTML 1.0. I wasn’t wrong. They weren’t wrong. When XHTML 2.0 was put to sleep, it didn’t prove them right and me wrong. Pretending it did, and gloating about it, seems very small.

  13. @Jeffrey Zeldman

    I was referring to one of the commenters above me mentinoing XHTML being more semantic. Many people think and certainly do say XHTML is more semantic.

  14. I don’t know the origin of this debate, seems like it has sort of a past.. otherwise I would never take it seriously and publish it on my page.

    I don’t know who that our ‘friend’ Fred Blasdel was, and what side of this “mayhem” he was currently taking.. But from what I see, Fred Blasdel is a pretty young man, actually a lot younger than Mr. Zeldman – although “Jefferey” is young-at-heart young-in-his-coding, and perhaps young-in-among-many-other-things :)

    but NEVER YOUNG enough to receive such adolescently, disrespectfully, and factiously, and perhaps enviously spoken words at the end of everyday..

    If Mr. Zeldman agrees to keep doing GOODS but not WITH ambiguating the nomenclature with a lot of feel-WORSE bullshit, then I believe our friend will settle down..

    best regards..

  15. Oh and for what it’s worth I agree with pretty much everything you’re saying, I just think the whole “XHTML FTW” thing got way out of hand for some and still persists in a bad way.

  16. You’re continuing the false dichotomy of “semantic, structural” markup vs HTML.

    XHTML did not change semantics of HTML. It didn’t substantially change structure either (just relaxed rules of tbody and added few XMLish corner cases).

    One can write perfectly clean, semantic and structural HTML markup. In fact, all “XHTML” proponents do (+/- few slashes).

    So please, stop repeating this false dichotomy.

  17. I served up real XHTML on my site for years (with the correct MIME type) and it was a royal pain in the arse. I wanted the clean XHTML markup and I wanted to serve it correctly, as per the standard. But all it got me were yellow screens of death (due primarily to the randomness of using a CMS–WordPress) as well as a hypocricy when it came to compromizing MIME types for IE. I don’t like what’s going on with HTML5 and find that HTML4.01 Strivt does exactly what I need. If only we could all just get along, put the bickering aside and actually improve on the existing spec without the obvious need for adult supervision.

  18. I didn’t switch back to HTML 4.01 myself because a few browsers at the time went into Quirks mode in the presence of an HTML 4.01 DOCTYPE (thus creating CSS layout problems

    Interesing. I was not aware there was a browser going into quirks mode with HTML4.01 + URL DOCTYPE, which one was it? Or was it?

    I choose HTML4.01 because you can be as strict as with XHTML, I don’t need to come up with the reasons why I am not using proper MIME type, and I do not pollute my code with meaningless slashes, so browsers don’t attempt to parse them and then discard as invalid attributes.

  19. @Rimantas:

    Interesing. I was not aware there was a browser going into quirks mode with HTML4.01 + URL DOCTYPE, which one was it? Or was it?

    Chiefly Mozilla, back in the day. IE5/Mac may have done this as well, although I don’t remember for sure.

  20. @Ryan said:

    I was referring to one of the commenters above me mentinoing XHTML being more semantic. Many people think and certainly do say XHTML is more semantic.

    Gotcha this time. People who say that are certainly wrong! (Does anyone really say that?) Sorry for thinking your comment was directed at the post!

  21. @kL said:

    You’re continuing the false dichotomy of “semantic, structural” markup vs HTML.

    XHTML did not change semantics of HTML. It didn’t substantially change structure either (just relaxed rules of tbody and added few XMLish corner cases).

    One can write perfectly clean, semantic and structural HTML markup. In fact, all “XHTML” proponents do (+/- few slashes).

    So please, stop repeating this false dichotomy.

    Please read the earlier comment. No one here asserts that XHTML is more semantic than HTML. No one here ever made such an assertion. We said XHTML had tighter, more consistent rules than HTML.

  22. Let me repost my tweet from minutes ago:

    DHTML needed “DOM Scripting”. XMLHttpRequest needed “Ajax”. HTML needed “XHTML”. Tech stays the same, people improve. Jeffrey Zeldman knew this.

    And that is all.

  23. @kL said:

    XHTML as text/html *is* false prophet.

    No, Zabati Zevi was a false prophet. XHTML 1.0 is a markup language.

    XML parsing failed: syntax error (Line: 139, Character: 132)

    Aha. I forgot to self-close the IMG element on that post. Fixed. The page now validates. Thank you for catching my validation error. I hand-code much of my content and I sometimes forget to validate. That I sometimes make mistakes does not mean my work on behalf of web standards is misguided or useless, or that XHTML 1.0 is a poor choice of markup languages.

  24. Note to self, don’t go through the trouble of helping an industry find its legs, because once the real work is done, you’ll find yourself playing defense against a bunch of thankless ingrates whose sole contribution is… well, nothing.

  25. The whole point of XHTML was move to strict XML syntax. But since well-formedness error has slipped unnoticed to the live site, it means you haven’t used draconian XML parser, and you’ve missed the main point of XHTML (technically speaking, not marketingly-evangelically speaking).

    You’re advertising virtues of XHTML, but not eating your own dogfood and falling in HTML traps that XHTML was supposed to completely eliminate.

    That is a failure of technology. It didn’t work. It didn’t make your markup clean.

  26. Thanks for clarifying your stance on XHTML semantics. Re-reading your post carefully I see indeed that you keep it separate, but there’s a fine line there (sentences about semantics follow sentences that seem to set XHTML as the context).

  27. By the way..
    what is that to do with XHTML and HTML5?

    If I see a node opening somewhere, I need to know it is closing properly.. as proper as it is supposed to be..

    I recognize one thing: HTML

    no Xs, no 5s.. plain and simple, as how it was defined at Graham’s book.

    This is no a php interpreter that would define a variable on the fly for me.. it will be the client’s troubled computer who’d become more busy with speculations about bad, invalid and irresponsible code.

    And;
    what does that “using XHTML is good for better semantics” mean??

    It is the man, it is “US” people who can make it more semantic, or gibberish.

    The rest is just binary..

  28. I’ve got question: why do you use XHTML Transitional, and not Strict?

    This DTD itself says “This is the same as HTML 4 Transitional”, which says “Authors should use the Strict DTD when possible, but may use the Transitional DTD when support for presentation attribute and elements is required”

    Do you use presentational attributes/elements? Prefer lax validation?

  29. @kL:

    I’ve got question: why do you use XHTML Transitional, and not Strict?

    This DTD itself says “This is the same as HTML 4 Transitional”, which says “Authors should use the Strict DTD when possible, but may use the Transitional DTD when support for presentation attribute and elements is required”

    Do you use presentational attributes/elements? Prefer lax validation?

    People, aren’t you tired at finding faults with others?? :-)

    XHTML 1.0 Strict is better than Transitional, of course?

    HTML5 is better than XHTML 1.0?

    I think that XHTML 1.0 Transitional and Strict, HTML 4.01 Transitional and Strict, and HTML5 are all valid standards of today (well, HTML5 *will* be a valid standard soon, it is only a draft now…).

    I code often in XHTML 1.0 Transitional. I now plan to make a project in HTML5. I try to validate all my pages (sometimes an error creeps and they fail, though).

    Just take some rest, grab a beer and relax! :-)

    (This is what I plan to do after I’ve read all of the comments here.)

  30. There is no such thing called HTML5 (which is not really existing) – no XHTML no Transitional or something..

    they are merely Document type definitions – but we always had one HTML.. one mark-up language..

    It was us who used it clumsily, or wisely, neatly or messy, responsibly or irresponsibly.. This is what I’ve been doing since 93’s on a power mac. When I saw I could define an image by [IMG] I was wondering where its counterpart [/IMG] had been lost.. years later I found the answer in XML (since I had no knowledge in SGML)..

    “Coding in XHTML now switched to HTML” talks are nonsense. It’s always been HTML as the language, they have been the doc types was changing – doc types do change in time – they had to evolve in time – b/c doc’s change – computers and media types changed. Which one of you could have foreseen hand held babies blogging sending receiving videos while walking the dog.. 7-8 years ago?

    regards

  31. Re: HTML4.01 + URL DOCTYPE and IE5/Mac

    IE5/Mac treated documents with the HTML4.01 + URL DOCTYPE as strict (not quirks).

    Re: XHTML advocacy

    I do find it quite odd that so many have (seemingly, perhaps intentionally?) misinterpreted the call to use XHTML for better web development.

    Historically “technical implementors” (most backend scripting frameworks, most backend programmers, writers of books on backend programming languages) have screwed up their HTML – just look at the HTML produced by early versions of Rails, or HTML samples in Perl books even from 10 years ago.

    Most web programmers didn’t understand HTML or semantic markup, and treated HTML as a printing language, a display language, something like display postscript. Sad but easily demonstrated by the open source and books out there.

    You might be surprised how many still treat HTML that way, and yet somehow buy into the fiction that XML gives you semantics (beyond xml:lang ;). Amazing doublethink.

    The modern web design community call to “Use XHTML” was merely an abbreviation for “Use XHTML 1.0 Strict” (which called for a specific DOCTYPE, validation, and cleaning up a lot of historical presentational HTML) which in turn was a call to “Use valid and semantic (X)HTML and CSS for presentation.” “HTML” was unfortunately already too many messy things to too many people – despite the fact that yes, if you knew what you were doing, you could do just fine with HTML 4.01 strict.

    And now we have HTML5, which, even in draft form, is in many ways stricter, more semantic, and frankly less buggy than HTML4.01 and XHTML1.x.

    All of this has benefitted (continues to benefit) the web design community (efficiencies from errors never written due to better coding practices, errors caught by strict validation rather than odd browser displays or runtime DOM behaviors of broken trees etc., better organization/evolvability of markup and presentation (and eventually behavior) etc.).

    Nothing false about it, except the attitude of perhaps just a few remaining bitter curmudgeonly “technical implementors” who don’t want to admit that they’ve been wrong about (X)HTML for well over a decade now.

  32. Here here Jeffrey, valid points.

    I guess “Fred’s opinion is Fred’s opinion” might have sufficed as the entire post. But as someone who has had (God forbid I saw the person has commented here already) abusive emails in the past demanding to know why I use XHTML and serve it as text/html, well I have to agree with the link from Jeremy Keith’s comment on what Gareth said earlier.

    Because at the end of the day I don’t care how much the pedantic small minded techno-elitists yell in my ear about this HTML v XHTML rubbish – its mostly in their heads. The real world isn’t falling over because we deliver XHTML as text/html. In fact, the benefits of this approach outweigh any criticism I’ve heard to date. The louder they yell the less that I listen – and that’s basically a marketing problem they don’t get. You get further with a kind word and a gun than you get with just a gun, right?

    Enjoy your weekend everybody… especially Fred. He’s got valid opinions many of us disagree with. But such is life.

  33. If I recall correctly, at the time, the push to use XHTML was because it would somehow “future-proof” your web pages. That its syntax encourages stricter thinking about markup seems to me to be a retroactive justification.

    Still, if that’s the case, Zeldman and WaSP seem less blameworthy to me than the clowns on the XHTML 2 working group who made sure that their spec was a piece of fiction (and not very good fiction at that).

    Once it became clear that XHTML 2 was no longer the future, perhaps WaSP & Co. should have spoken up about it. But they probably thought (correctly) that there were more important things to worry about.

  34. This is a post about respecting one another’s choices

    It just makes them look like the close-minded, socially maladroit, too-early-toilet-trained, tiny-all-male-world-inhabiting pinheads they are.

    Am I the only one who thinks talking about respect and bandying about such pejoratives to be a bit incongruous? To be honest I’m a bit surprised that you rounded out this post in such a fashion.

  35. @Lanny:

    Once it became clear that XHTML 2 was no longer the future, perhaps WaSP & Co. should have spoken up about it.

    Some of us have publicly expressed strong doubts about XHTML 2 for quite some time (since January 2003). See these and the posts they link to:

    Why XHTML?

    XHTML 2.0 considered harmful

    Perhaps we should have spoken out more loudly and more frequently.

    And about future-proofing.

    Note that if you did follow XHTML advocacy advice, your XHTML as text/html documents will quite gracefully evolve/work in/as HTML5. Often all it may take to validate is to update to your DOCTYPE to:

    <!DOCTYPE html>

  36. Hear hear Jeffrey. I couldn’t agree more. We need knowledge and wizdom delivered in a calm and friendly fashion right now. Thanks for carrying this torch for us!

  37. That its syntax encourages stricter thinking about markup seems to me to be a retroactive justification.

    where were you back in the days? i remember quite clearly how a lot of “us” switched to xhtml 1.0, ran things through the validator, and then frantically tried to understand why we couldn’t use all those lovely loose presentational markup constructs like center and stuff anymore. yes, i could write non-presentational code in html 4.01, but when i mandated that all our 50+ federated authors on our large site needed to switch to xhtml 1.0 i had a very quick way of testing if they actually stayed within the prescribed “leave the presentational crap out, move it to css” boundaries i set.

  38. You often find yourself as a mediator between designery folks…

    Um, yeah…whatever. Designery folks? What the hell does that mean anyway?

    Anyone who has been in this business long enough begins to realize that the way these technologies are being used has changed dramatically since their inception. HTML started the race, XHTML took up the baton for a long stretch of the race — long enough to teach us the right way — and HTML5 is picking up where XHTML left off.

    It seems that Fred misses the point entirely; the Web is always moving whether you are on the train or not. The CSS code I write today is drastically different than code I wrote 2-4 years ago (heck maybe even last year for that matter). The markup that I chose to write when HTML4 was the current spec is much different than the HTML5 code that I have been using lately. It’s just how things are and you must respect those of us who simply want to move forward and use the best tools available.

    Thanks for sharing this, Jeffrey. Hope you had a wonderful holiday and glad to see that Emile is doing well. :)

  39. I’m with Joe Clark on this. Shoulda let it go. But sometimes it’s hard.
    “designery folks” versus “technical implementors”. Yeesh.
    Just what we need in the world. More division between people.
    And on Thanksgiving, too.

  40. …Which brings me to the reason why I use XHTML: The validator enforces my preferred coding standards for HTML – lowercase elements, quoted attributes and closed elements. That’s it. Not much really. I know it’s marketing XHTML rather than technical XHTML. I don’t care. Or rather I do care, I just make a conscious pragmatic decision based on a small personal advantage.

    What Gareth said

    I have to admit I do the same… :)

  41. @Zeldman

    Chiefly Mozilla, back in the day.

    The standards mode has been available to select HTML 4.01 doctypes (including a Transitional one) in the Mozilla codebase since before Netscape 6. However, if you used Transitional with the URL “http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd” (as opposed to “http://www.w3.org/TR/html4/loose.dtd”), you got the quirks mode until Mozilla 0.9.5.

  42. @Joe Clark said:

    I don’t think you should be settling scores this way.

    Not settling scores. Trying to set the record straight before a false narrative that has become a set of talking point calcifies into “fact.” As you know, once false assertions achieve the patina of fact, they further the divide between people and raise the wall of misunderstanding higher.

  43. @Richard Fink, thanks for your thoughts, and thanks for sharing John Resig’s brilliant study, .nodeName Case Sensitivity, which, with no inherent bias, makes the case (cough) that XHTML’s case rules simplify programming.

    Of course we can use XHTML’s rules in HTML5, if we choose, but if we make errors, they won’t be flagged. This doesn’t mean HTML5 is bad; it doesn’t mean we shouldn’t transition to it. It might mean there is an opportunity for someone to invent a LINT tool for web folk who wish to author HTML5 per XHTML’s rules.

  44. if you used Transitional with the URL “http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd” (as opposed to “http://www.w3.org/TR/html4/loose.dtd”), you got the quirks mode until Mozilla 0.9.5.

    @Henri, thanks!

    Back in the days when folk like Eric Meyer were creating charts showing which CSS properties were supported correctly, partially, or not at all in which micro-versions of which browsers, other folk wrote lists showing how various browsers responded to different DOCTYPEs. These lists were every bit as non-straightforward as the CSS charts. It wasn’t just A=quirks, B=standards mode. There were multiple standards modes: “Almost Standards” in Netscape and Mozilla behaved like “Standards” mode in IE6, and so on. (There are currently four modes in IE8, but that’s another story.)

    I remember studying these lists starting in 2000 and coming to the conclusion that XHTML 1.0 Transition and XHTML 1.0 Strict were the two DOCTYPEs that were safe to use if I wanted genuine Standards mode across all browsers that supported DOCTYPE switching.

    I shared this conclusion with others, not as a matter of XHTML advocacy, but simply as a practical design tip. If I advocated anything, it was proper CSS as opposed to IE6-focused CSS, and choosing a DOCTYPE that put all browsers into genuine Standards mode was simply part of that CSS layout advocacy and that desire to get CSS right.

  45. @Zeldman

    Back in the days when folk like Eric Meyer were creating charts showing which CSS properties were supported correctly, partially, or not at all in which micro-versions of which browsers, other folk wrote lists showing how various browsers responded to different DOCTYPEs. These lists were every bit as non-straightforward as the CSS charts. It wasn’t just A=quirks, B=standards mode.

    My document on the topic has always come with straight-forward pre-digested conclusions under the heading “Choosing a Doctype (Declaration)”.

    There were multiple standards modes: “Almost Standards” in Netscape and Mozilla behaved like “Standards” mode in IE6, and so on. (There are currently four modes in IE8, but that’s another story.)

    There still are. I should have said that ever since before Netscape 6 there has been a way to trigger a non-quirks mode in browsers built from the Mozilla codebase. (After the introduction of the almost standards mode, it hasn’t been possible to trigger the full standards mode with a Transitional doctype in browsers built from the Mozilla codebase.)

    I remember studying these lists starting in 2000 and coming to the conclusion that XHTML 1.0 Transition and XHTML 1.0 Strict were the two DOCTYPEs that were safe to use if I wanted genuine Standards mode across all browsers that supported DOCTYPE switching.

    <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”> and <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”> have been equally safe since at least October 2000 when I wrote the first version of my doctype article.

    I shared this conclusion with others, not as a matter of XHTML advocacy, but simply as a practical design tip. If I advocated anything, it was proper CSS as opposed to IE6-focused CSS, and choosing a DOCTYPE that put all browsers into genuine Standards mode was simply part of that CSS layout advocacy and that desire to get CSS right.

    I appreciate your efforts to make proper non-IE-focused CSS better known. My point was that even back in the day, switching to an XHTML doctype wasn’t the only way to get the non-quirky behavior. It’s unfortunate that the early Mozilla doctype sniffing code was sensitive to the exact URL in the case of the HTML 4.01 Transitional doctype, though, when there were examples with a different URL floating around. (The HTML 4.0 Transitional doctype triggering the quirks mode is a story in itself.)

  46. @Henri:

    Thanks for your clarity and your interest in the verifiable and true.

    Actually, looking back at my own article from 2002, I see that I came to pretty much the same conclusions you did:

    http://www.alistapart.com/articles/doctype/

    Funny that I remember thinking and advocating “use XHTML” when in fact my recommendation back then was more nuanced and included HTML 4.01.

    Possibly the issue with early Mozilla DOCTYPE sniffing came to light after I wrote this article and I simplified my view later.

    My point was that even back in the day, switching to an XHTML doctype wasn’t the only way to get the non-quirky behavior.

    You are correct, sir, and my memory was wrong.

  47. As the famous Calvin and Hobbes once said: “A little rudeness and disrespect can elevate a meaningless interaction into a battle of wills and add drama to an otherwise dull day.”

    I for one, wish to thank Fred Blasdel and especially my friend Jeffrey Zeldman for elevating the 3rd International Blue Beanie Day into a useful and educational dialogue.

  48. Jeffrey,

    Of course we can use XHTML’s rules in HTML5, if we choose, but if we make errors, they won’t be flagged. This doesn’t mean HTML5 is bad; it doesn’t mean we shouldn’t transition to it. It might mean there is an opportunity for someone to invent a LINT tool for web folk who wish to author HTML5 per XHTML’s rules.

    It appears that @Henri has added (at some point, not sure when) a “Polyglot: works both as HTML and as XML” option to validator.nu which as far as I can tell achieves the goal of testing HTML5 per XHTML’s rules.

    I have written a new “Validator.nu HTML5 validator” favelet that uses this option by default and am using it on all pages I develop.

    I encourage you to grab it and give it a try: http://favelets.com/

  49. @Tantek, @Zeldman:

    Maybe I am missing something, but I’ve tested the option “Polyglot: works both as HTML and as XML”, for HTML5 documents (served as html/text, of course):

    1) with valid XHTML-style syntax inside,
    2) and with valid, but “mixed” syntax (XHTML-style and HTML-style), so in the second case I (on purpose) have “forgotten” to close one P tag.

    The validator did not report an error in the second case?

    So it looks like it continues to check for what the HTML5 standard permits officially (and the standard allows an opened and not closed P tag, even if no one of us recommends this — I try to close all tags which are opened, usually).

    Maybe I set some other option wrong…? :)

  50. Dogmatic:
    1 : characterized by or given to the expression of opinions very strongly or positively as if they were facts. (e.g. a dogmatic critic)

    Yes, XHTML is more semantic. It should have never been treated as a way to implement better markup for people who have a mere understanding of HTML and were looking to be tidy. Those conventions that were sold as XHTML strong points are just XML semantics and yet give XHTML semantic strength with respect to information design. There has never been an understanding just what XHTML can do. You can thank MS for that.

    I bring all this up because while most designers were busy learning Photoshop and crafting beautiful things that I have a deep respect and admiration for I was busy learning what XML XSL PHP and other languages do below the surface. (Where is Norm Walsh when you need him)

    I do think what pisses information designers off is that as visual designers that use markup as a tool you have trivialized and glossed over the skill and craft of using and understanding markup and the years not hours it takes to master it. You dismiss anything but the surface jargon and use the word ‘semantic’ till I need a compozine.

    Have some respect and understanding for those around you. Please do not try to justify a dogmatic single ended argument about markup. In the end, a hat is just a hat.

    @ Jeffrey I enjoyed your post about what using fake text is not a good idea. Very educational on a couple of levels. Too bad it did not garner any more comments or conversation than it did. Why do posts like this ahh… never mind.

  51. “The whole history of computers is rampant with cheerleading at best and bigotry at worst.” — Larry Wall, 1997 (creator of Perl programming language)

  52. After all the posts I’ve read above I must say that I agreed with Billee D who had said;

    HTML started the race, XHTML took up the baton, now that the HTML5 is picking up

    Tantek had also done well by summerizing:

    And now we have HTML5, which, even in draft form, is in many ways stricter, more semantic, and frankly less buggy than HTML4.01 and XHTML1.x.

    For the rest of the part, the most part of what was written above apart with Zeldman’s posts, I’m not buying any of them.. First, the time is changing, and it’ll be 2011 or 2012 by the HTML5’s official recommendation.. after so many debates, arguments, derived solutions and agreed changes on syntax we’ll be in need of a new label to the renewed language… For all I know, this was chosen to become HTML5.

    Since the new definition will be covering much of our previous concerns with HTML, eliminating some of them – if not all of them, taking new steps to aceesible elements in rich media, the question is, shall we need another XHTML or sth? – THIS IS one different topic which, I believe, will not find enough supporters to argue and heat a debate.. In my opinion, and that of many people at the geeky quarters the answer is “NO.. we don’t need another document type, unless MSIE or some over-active brains in Google do not change their minds and start pissing with independent browsers and new protocols..

    Days back to ECMA’s early evolution, we had a similar fight and even I (though who the f I am) couldn’t have seen the outcome. I was wearing a genuine Netscape sweatshirt or a hat on a formal suit and it was painful that MSIE won two wars – for a very lil’ compromise, their browser became triumphant and MS became the power-horse spreading the internet usage and world-wide-web knowledge thought out the world.. yeah – I still carry the scars..

    With or without ‘so called’ designary folks or technical implementers, those unlucky majority who git stuck in between the two, have created so many beautiful web sites, informative web sites, Flash websites, movie websites, encyclopedic websites and as such coming to this day.. They have seldom involved in a stupid debate of “I am the butt you are the head WHICH one of us is more important?”

    Remember when your “elder brothers” or you had been struggling to find an empty spot to connect a BBS for only several hundred Kilobytes of information before the dawn time.. now the people have created all sorts of online presence “semantically” or not, by the help of only one language..

    We do not owe them to HTML – besides, which is not a language (for everybody – I’ll explain) – In my not-really humble opinion, that is the http that we owe all of this… A set of rules for communication! That’s it..

    And being designers, because we are humans, and humans are designers by nature, f the rest who don’t fit in, HTML is also the protocol of ours for establishing a connection between information and its presentation .. the way of, the rules of how to present it to the public..

    Only for the technical implementers, because most of us are savvy humans, and all savvy humans with little wisdom must have a hand-in-hand experience (by now) to learn how to become technical implementers; therefore, HTML becomes a protocol and a language to these people while their productions in any of the DOCUMENT formats – either f XHTML or HTML3-4-5, have been a lot more meaningful, structured better – semantically stronger and in the end, more insightful than the works of others (the adobe_people / what_you_hurt_is_what_you’ll_get people).

    In conclusion, HTML, in my understanding and interpretation over the years, is the rule we give part of the data a precedence (H1) over the others, or give them a correlation (LI), a validity(DEL), and of course, by all means, an APPEARANCE regardless of what DOCTYPE was being declared. HTML as a MARK-UP language, thus, *is* presentational from the viewpoint of information designers, but not because they had for us the elements like [B] or [I], but for gibing us an opportunity to control the flow of data and name them accordingly, so we start designing the flow of the information acceessibile and usable for humans and machines, before stylistically coloring them (and mis-labelling the structure as “now presentational”)..

    + By the way; Tantek you did a great job with the validator.nu – now I’m confidently relying on that as well.
    + Congrat’s to Zeldman for forging hosting such an educative discussion at his website :))

    best regards

  53. Zeldman,
    I appreciate you keeping us ‘designery folks’ (who are also ‘technical implementors’) in the know about different versions of html. I appreciate the advice of people who have been in the web design field for years and make decisions based upon what you, J Keith, D Shea and many others write about – and also what makes sense to me.

    The only people I consider you a mediator between is web professionals and non-web professionals like CEOs, Managers and business people in general by arming web professionals with the necessary talking points that help push web standards forward and really do make the web better for everyone.

    I still don’t understand where Fred was coming from, what he we was trying to say and why people are so in love with specific versions of html.

    Thank You J,
    Cargo Cult Torch/Pitch Fork Carrier

  54. …unless by ‘technical implementors’ he meant the web browser companies, I’m not one of those. But I still don’t see much mediation there. I find this quite confusing.

  55. Something I said in my blog:

    One of the reasons XHTML has been so enthusiastically adopted in the past is that it enforces a clean consistent markup style. Tag soup and font tags were awful, so the reaction in wanting to make the web strict XML was actually very beneficial; it has created an online community of designers and developers who appreciate and can author clean, maintainable and high quality markup.

    I like to use HTML5 for everything now, but I’m going to keep XHTMLs’ syntax rules. Why throw out the baby with the bathwater?

  56. The stricter, clearer rules of XHTML 1.0 helped enforce a new mindset among web designers and developers

    What a shame HTML5 promises successive generations of learners will be taught bad habits, encouraged by the “latest and greatest” standards lack of structure.
    Geocities may have died but I fear with HTML5 the web will sink back to the quality of the bitter tagsoup and invalid bastard websites of the 90’s, and when it was doing so well…
    Why couldn’t someone just put <video> in XHTML? Why does it need to be SGML? Or really, and not to rain of your parade, but really, why can’t <object type=”video/mp4″><param name=”src” value=”video.mp4″/></object> work in FireF***?

  57. I don’t like standards. I actually create all of my sites in MS Word and “Save as Web page”. And then I upload them to my Tripod site.

  58. Heh. I’ve actually met Jeffrey and Fred, talked to them both multiple times, in fact. They’d get along just fine in real life, I think.

    But I’m with DL. I’m tired of this stupid battle. It’s Wittgenstein’s Poker level of stupidity (or maybe HTML5 is the Poker itself). I just want to be able to redesign a site and have it just work. While the fact it doesn’t “just work” is what keeps me gainfully employed, I think, as I see 40 starting to approach in the coming years, I am starting to value my mental health a little more.

  59. Pingback: Ф@kazuhi.to
  60. XHTML is not “more semantic” but perhaps more “syntactic”?

    Sorry, could not resist. Don’t even know if that joke translates well to you native English speaking folks.

  61. @Lars Gunther

    Yeap, xhmtl is more syntactic. Its just harder to write plain nonsense there, but it seems that html5 will change the trend back to loose writing habits and crappy code ..

Comments are closed.