<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web Devout tidings &#187; Web design theory</title>
	<atom:link href="http://www.webdevout.net/tidings/category/web-design-theory/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webdevout.net/tidings</link>
	<description>Updates on the march of progress. A weblog about web design, standards, web browsers, and the overall health of the Web.</description>
	<lastBuildDate>Fri, 28 Jun 2013 13:38:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Another CSS vs. tables debate</title>
		<link>http://www.webdevout.net/tidings/2009/02/04/another-css-vs-tables-debate/</link>
		<comments>http://www.webdevout.net/tidings/2009/02/04/another-css-vs-tables-debate/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 18:22:36 +0000</pubDate>
		<dc:creator>David Hammond</dc:creator>
				<category><![CDATA[Web design theory]]></category>

		<guid isPermaLink="false">http://www.webdevout.net/tidings/2009/02/04/another-css-vs-tables-debate/</guid>
		<description><![CDATA[I can&#8217;t believe these debates are still happening. A number of blogs have been spreading around this rant about why CSS is bad at layout, and the old debate of CSS vs. table layouts has been reignited.
The one big thing people seem to be forgetting is that CSS can do table layouts without table elements! [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t believe these debates are still happening. A number of blogs have been spreading around this <a href="http://www.flownet.com/ron/css-rant.html">rant about why <abbr title="Cascading Style Sheets">CSS</abbr> is bad at layout</a>, and the old debate of CSS vs. table layouts has been reignited.</p>
<p>The one big thing people seem to be forgetting is that <strong>CSS can do table layouts without table elements!</strong> So the main benefits of table layouts are possible in pure CSS layouts using divs or other elements. The main problem with CSS table layouts is that Internet Explorer 7 and below didn&#8217;t support those parts of the CSS specification (while all other browsers have supported them for a long time now). But that&#8217;s a shortcoming of Internet Explorer, not CSS, and Internet Explorer 8 will have support for CSS table layouts.</p>
<p>I&#8217;m not saying that CSS table layouts are perfect. There are two other significant shortcomings of CSS table layouts:</p>
<p>First, CSS 2.1 doesn&#8217;t provide for a way to specify that a cell should span multiple rows or columns (as <abbr title="HyperText Markup Language">HTML</abbr>&#8217;s <code>rowspan</code> and <code>colspan</code> attributes allow). In most cases, this limitation can be worked around by mixing the CSS table layouts with other CSS layout methods.</p>
<p>Second, CSS table layouts usually require lots of nested divs. It doesn&#8217;t require any more elements than HTML table layouts require, but it&#8217;s still quite bulky compared to other CSS layouts, and it demonstrates how dependent CSS still is on the underlying markup. CSS 3&#8217;s pseudo-element model will help mitigate this issue somewhat.</p>
<p>However, if the argument is that CSS doesn&#8217;t support the kinds of flexible grid layouts that HTML tables support, that argument is simply incorrect. Sure, CSS isn&#8217;t as markup-agnostic as it could or probably should be, but the use of HTML tables for layout is not a better solution.</p>]]></content:encoded>
			<wfw:commentRss>http://www.webdevout.net/tidings/2009/02/04/another-css-vs-tables-debate/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>IE 8 and vendor prefixes</title>
		<link>http://www.webdevout.net/tidings/2008/09/09/ie-8-and-vendor-prefixes/</link>
		<comments>http://www.webdevout.net/tidings/2008/09/09/ie-8-and-vendor-prefixes/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 15:35:51 +0000</pubDate>
		<dc:creator>David Hammond</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Web design theory]]></category>

		<guid isPermaLink="false">http://www.webdevout.net/tidings/2008/09/09/ie-8-and-vendor-prefixes/</guid>
		<description><![CDATA[I haven&#8217;t been posting much lately, since I&#8217;ve been focusing on actually getting things done, but I wanted to point out what I think is a very good decision from Microsoft that seems to show they&#8217;re really serious about standards.
Historically, CSS property vendor prefixes (-moz-, -o-, -khtml-, -ms-, &#8230;) have generally been used for properties [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t been posting much lately, since I&#8217;ve been focusing on actually getting things done, but I wanted to point out what I think is a very good decision from Microsoft that seems to show they&#8217;re really serious about standards.</p>
<p>Historically, <abbr title="Cascading Style Sheets">CSS</abbr> property vendor prefixes (<code>-moz-</code>, <code>-o-</code>, <code>-khtml-</code>, <code>-ms-</code>, &#8230;) have generally been used for properties that either aren&#8217;t part of a current CSS standard or are part of a current standard but only have experimental support by the browser. But most browsers have made exceptions to these rules depending on how common the non-prefixed versions are on the Web.</p>
<p>Microsoft has announced that they are taking a clear-cut approach to this topic and <a href="http://blogs.msdn.com/ie/archive/2008/09/08/microsoft-css-vendor-extensions.aspx">will always follow these convention rules</a>. In Internet Explorer 8, webpages invoking the best standards mode (default) will be required to add an <code>-ms-</code> prefix to vendor-specific properties like <code>filter</code>, <code>scrollbar-base-color</code>, and <code>zoom</code>, as well as non-finalized CSS 3 features like <code>background-position-x</code>, <code>overflow-x</code>, and <code>word-wrap</code>.</p>
<p>Microsoft claims that every CSS 2.1 property will be considered supported, so no CSS 2.1 property will require a vendor prefix.</p>
<p>Now, here&#8217;s why I think this decision is so significant: Asking a browser to always follow the vendor prefix conventions is a picky request. An unreasonable request, some might say. I&#8217;ve argued about this subject a number of times in the past, and I&#8217;m usually dismissed as a silly idealist for wanting browsers to deliberately break support for current websites just to follow a convention with fairly hard-to-see benefits.</p>
<p>Most people don&#8217;t know or care that breaking the convention introduces possible complications for the development of future standards. They just want to see the &#8220;Passed Validation!&#8221; message in CSS 3 mode. They&#8217;re more concerned with the short term issues of getting all the lights to turn green than the long term issues of the growth and stability of sound web standards.</p>
<p>Microsoft&#8217;s decision makes some short-term sacrifices for the interest of the long term health of the Web, and it&#8217;s on an issue that even many standards advocates would consider picky. Well, I for one am thrilled to see Microsoft getting &#8220;picky&#8221; about the quality of their standards support.</p>
<p><ins datetime="2008-09-09T15:42:09+00:00" title="September 9th, 2008 at 15:42 UTC">Update 2008-09-09:</ins> I should clarify that the non-prefixed properties that were supported in <abbr title="Internet Explorer">IE</abbr> 7 will continue to be supported in IE 8, with or without the prefix. But Microsoft considers the non-prefixed versions deprecated, and they may be removed in a future version.</p>
<p>The exception is the <code>filter</code> property, which will not work in IE 8 standards mode without the prefix. This is because the original <code>filter</code> syntax didn&#8217;t comply with CSS&#8217;s grammar rules and will thus be ignored in IE 8&#8217;s improved CSS parser. If you have to continue using the <code>filter</code> property, you need to include the prefix and put quotes around the property value. For compatibility with older versions of IE, you&#8217;ll need to write the filter both ways.</p>]]></content:encoded>
			<wfw:commentRss>http://www.webdevout.net/tidings/2008/09/09/ie-8-and-vendor-prefixes/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t believe everything the Validator tells you</title>
		<link>http://www.webdevout.net/tidings/2008/06/22/dont-believe-everything-the-validator-tells-you/</link>
		<comments>http://www.webdevout.net/tidings/2008/06/22/dont-believe-everything-the-validator-tells-you/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 17:37:24 +0000</pubDate>
		<dc:creator>David Hammond</dc:creator>
				<category><![CDATA[Web Devout]]></category>
		<category><![CDATA[Web design theory]]></category>

		<guid isPermaLink="false">http://www.webdevout.net/tidings/2008/06/22/dont-believe-everything-the-validator-tells-you/</guid>
		<description><![CDATA[The W3C Markup Validator is an excellent tool. If you&#8217;re a serious web developer, using the Validator is probably a routine by now. It&#8217;s also very reliable when it says you have an error. However, there are plenty of cases where the Validator will say a page is valid even though it doesn&#8217;t actually comply [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://validator.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr> Markup Validator</a> is an excellent tool. If you&#8217;re a serious web developer, using the Validator is probably a routine by now. It&#8217;s also very reliable when it says you have an error. However, there are plenty of cases where the Validator will say a page is valid even though it doesn&#8217;t actually comply with the <abbr title="HyperText Markup Language">HTML</abbr> or <abbr title="eXtensible HyperText Markup Language">XHTML</abbr> standard.</p>
<p>The Validator pretty much assesses two levels of compliance: it makes sure that your document is parseable using either an <abbr title="Standard Generalized Markup Language">SGML</abbr> parser (for HTML) or an <abbr title="eXtensible Markup Language">XML</abbr> parser (for XHTML), and then it checks your document&#8217;s compliance with the <abbr title="Document Type Definition">DTD</abbr> specified by the doctype declaration.</p>
<p>However, the HTML and XHTML specifications demand additional restrictions that aren&#8217;t part of the DTD. For example, many values are specified as &#8220;number&#8221; values, even though in the DTD they are ultimately just CDATA, which can contain text. XHTML further limits the Validator due to the fact that XML DTDs aren&#8217;t as expressive as other DTDs and are unable to tell the Validator that, for example, form elements cannot be descendants of other form elements.</p>
<p>Here are a few test cases having fun with non-compliant but &#8220;valid&#8221; markup:</p>
<ul>
<li><a href="http://www.webdevout.net/testcases/valid-but-wrong/html.php">HTML version</a></li>
<li><a href="http://www.webdevout.net/testcases/valid-but-wrong/xhtml.php">XHTML version</a></li>
<li><a href="http://www.webdevout.net/testcases/valid-but-wrong/html-div.php">HTML div version</a></li>
<li><a href="http://www.webdevout.net/testcases/valid-but-wrong/xhtml-div.php">XHTML div version</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.webdevout.net/tidings/2008/06/22/dont-believe-everything-the-validator-tells-you/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Preparing your site for IE.next</title>
		<link>http://www.webdevout.net/tidings/2007/05/29/preparing-your-site-for-ienext/</link>
		<comments>http://www.webdevout.net/tidings/2007/05/29/preparing-your-site-for-ienext/#comments</comments>
		<pubDate>Tue, 29 May 2007 00:24:38 +0000</pubDate>
		<dc:creator>David Hammond</dc:creator>
				<category><![CDATA[Web design theory]]></category>

		<guid isPermaLink="false">http://www.webdevout.net/tidings/2007/05/29/preparing-your-site-for-ienext/</guid>
		<description><![CDATA[Internet Explorer 7.0 came out October 2006, and web developers around the world panicked. Many sites had relied on CSS hacks to make Internet Explorer 6 fall into line, but with Internet Explorer 7&#8217;s not-quite-exhaustive fixes for some of the bugs which made the hacks possible and some of the bugs the hacks were used [...]]]></description>
			<content:encoded><![CDATA[<p>Internet Explorer 7.0 came out October 2006, and web developers around the world panicked. Many sites had relied on <abbr title="Cascading Style Sheets">CSS</abbr> hacks to make Internet Explorer 6 fall into line, but with Internet Explorer 7&#8217;s not-quite-exhaustive fixes for some of the bugs which made the hacks possible and some of the bugs the hacks were used to fix, many of those sites ended up breaking in the new version. Web developers had to scramble to get the sites patched up, and it was a frustrating experience for many.</p>
<p>Fortunately, the Internet Explorer development team at Microsoft has learned from this experience. Starting with the next version, currently codenamed <abbr title="Internet Explorer">IE</abbr>.next, it should be up to the web developers to opt into the new improved standards support which is responsible for breaking previous hacks. For websites which haven&#8217;t opted in, IE.next will (for the most part, at least) try to display the site just like IE 7 did. Microsoft hasn&#8217;t yet finalized the details on exactly how web developers would opt in (probably through some kind of special <abbr title="HyperText Markup Language">HTML</abbr> comment), but that isn&#8217;t what this article is about. This article is about preparing your current site to minimize the chances of breaking when the next version of Internet Explorer is released.</p>
<p>There is really only one big issue to cover. By default, IE.next should treat your webpage exactly as IE 7 does now: current CSS bugs will still exist, current CSS hacks will still work, etc. The only difference might be Internet Explorer&#8217;s version number. But that&#8217;s exactly where trouble might occur. If you use version-specific conditional comments like many people do, then pay attention.</p>
<p>Let&#8217;s say your site currently requires some CSS hacks for IE 7, and you include a special stylesheet using a conditional comment with the <code>[if IE 7]</code> condition. IE.next (which might end up being IE 8) wouldn&#8217;t get the IE 7 stylesheet, would it? The IE development team might end up deciding to make some special exceptions for this, but for the moment we&#8217;ll have to assume that this could cause some problems. Since IE.next would have the same bugs as IE 7, it would require the same CSS hacks IE 7 does. But if you use the <code>[if IE 7]</code> or <code>[if lte IE 7]</code> condition, IE.next wouldn&#8217;t receive those hacks and would make casserole out of your site.</p>
<p>The solution is easy: For any conditional comment that specifically selects IE 7, you should also include all future versions. Here are the changes you&#8217;ll need to make:</p>
<ul>
<li><code>[if IE 7]</code> &rarr; <code>[if gte IE 7]</code></li>
<li><code>[if lte IE 7]</code> &rarr; <code>[if IE]</code></li>
<li><code>[if lt IE 8]</code> &rarr; <code>[if IE]</code></li>
<li><code>[if gt IE 7]</code> &rarr; Unless you&#8217;re already aware of the IE.next changes and are opting in for the new standards support, you should never use this condition. Just get rid of the conditional comment and its contents.</li>
</ul>
<p>Keep in mind that if you deliberately opt in for the new standards support, then you may very well want to separate IE 7 from future versions. The above conversions are just for sites that are already made or will be made before we can reasonably consider opting in.</p>
<p>There&#8217;s a possibility that future versions of IE will pretend to be IE 7 for the conditional comments when you haven&#8217;t opted in, but the above conversions are still safe to make in that case.</p>
<p>If you do this, and if Microsoft implements the opt-in system into IE.next as they have described, then your site has a very good chance of working in future versions of Internet Explorer without requiring any additional changes. There are, however, no guarantees, and it&#8217;s still important to check the site in the new version of IE once it&#8217;s released, which will probably be in late 2008 or early 2009.</p>]]></content:encoded>
			<wfw:commentRss>http://www.webdevout.net/tidings/2007/05/29/preparing-your-site-for-ienext/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Re: 55 reasons to design in XHTML/CSS</title>
		<link>http://www.webdevout.net/tidings/2007/05/08/re-55-reasons-to-design-in-xhtmlcss/</link>
		<comments>http://www.webdevout.net/tidings/2007/05/08/re-55-reasons-to-design-in-xhtmlcss/#comments</comments>
		<pubDate>Tue, 08 May 2007 22:26:51 +0000</pubDate>
		<dc:creator>David Hammond</dc:creator>
				<category><![CDATA[Web design theory]]></category>

		<guid isPermaLink="false">http://www.webdevout.net/tidings/2007/05/08/re-55-reasons-to-design-in-xhtmlcss/</guid>
		<description><![CDATA[Someone pointed me to an article entitled &#8220;55 reasons to design in XHTML/CSS&#8220;, which attempts to explain some of the benefits of certain types of webpage design over others. I&#8217;m not going to argue against the points which favor semantic markup over presentational markup (because semantic markup is indeed a good thing), but there are [...]]]></description>
			<content:encoded><![CDATA[<p>Someone pointed me to an article entitled &#8220;<a href="http://www.khmerang.com/index.php?p=106" rel="vote-against">55 reasons to design in <abbr title="eXtensible HyperText Markup Language">XHTML</abbr>/<abbr title="Cascading Style Sheets">CSS</abbr></a>&#8220;, which attempts to explain some of the benefits of certain types of webpage design over others. I&#8217;m not going to argue against the points which favor semantic markup over presentational markup (because semantic markup is indeed a good thing), but there are lots of false or plain pointless claims about XHTML in there, so I want to address the points one-by-one. Open the above link in another tab so you can see the original points along with my responses.</p>
<p>1a. The CSS Zen Garden is about separation of content and presentation, not XHTML versus <abbr title="HyperText Markup Language">HTML</abbr>. They happen to use XHTML (incorrectly, I might add, since most of the designs fall apart when you force a browser to parse it as <abbr title="eXtensible Markup Language">XML</abbr> instead of HTML like they&#8217;re currently doing), but this site doesn&#8217;t demonstrate any benefits of XHTML over HTML. If anything, it demonstrates problems with XHTML, for the reason described in the previous sentence.</p>
<p>1b. Stylegala accepts either XHTML or HTML content, as long as it&#8217;s valid. Like the Zen Garden, this is a separation of content and presentation issue, not an XHTML vs. HTML issue.</p>
<p>1c. CSS Import is the same deal. It&#8217;s about separation of content and presentation, not XHTML vs. HTML.</p>
<p>1d. CSS Beauty is the same deal again.</p>
<p>2. This point is ridiculous. I work exclusively with HTML, but I don&#8217;t have to spend any extra time thinking about whether or not to quote attribute values. I always quote attribute values. I always use lower-case tag names and attribute names. I always include end tags for non-empty elements. I always escape my ampersands and less-than signs with entities (as well as double quotes and greater-than signs, if only for consistency, although that isn&#8217;t a difference between HTML and XHTML). These are just good practice markup rules, and anyone who does web design regularly has their own styles (hopefully subtle variants of already established best practices) which they do without thinking. If you&#8217;re sitting at your computer contemplating whether or not you should write &#8220;input&#8221; or &#8220;INPUT&#8221;, you must not have much experience.</p>
<p>3. How is this any different from XHTML following the legacy compatibility guidelines (which are required for Internet Explorer support)? If you&#8217;re serving XHTML as <code>text/html</code>, you simply cannot write <code>&lt;div /&gt;</code> and expect browsers to consider that closed. Likewise, you simply cannot write <code>&lt;br&gt;&lt;/br&gt;</code> and expect all browsers to consider that a single element. Several major browsers actually consider that last example to be <em>two</em> <code>br</code> elements! In XHTML, not only do you have to think about which elements require which style of closing, but you also have to think about new compatibility issues between typical HTML parsing of XHTML (which is currently the most common way XHTML is parsed) and proper XML parsing of XHTML (which, sadly, is often overlooked, even though this should be the single correct way of parsing).</p>
<p>4. That&#8217;s a semantic markup issue, not HTML vs. XHTML.</p>
<p>5. Another semantic markup issue.</p>
<p>6. This isn&#8217;t really true. XHTML 2.0 is, by design, completely incompatible with XHTML 1.x. They&#8217;re both supposedly parseable as XML, but so what? You can do an <abbr title="eXtensible Stylesheet Language">XSL</abbr> transformation? The semantics and document structure in the current proposed drafts of XHTML 2.0 have some fundamental differences from XHTML 1.x, and you can&#8217;t just perform an XSL transformation on any XHTML 1.x document and expect it to result in XHTML 2.0 with all of the proper semantics. In order for XHTML 2.0 to be used correctly, you&#8217;ll have to do the markup from scratch. That is, unless you don&#8217;t mind the Web being polluted with a bunch of XHTML 2.0 documents containing improper semantics.</p>
<p>7. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>8. Semantic markup / separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>9. Semantic markup issue, not HTML vs. XHTML.</p>
<p>10. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>11. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>12. (X)HTML vs. Flash issue, not HTML vs. XHTML.</p>
<p>13. (X)HTML vs. Flash issue, not HTML vs. XHTML.</p>
<p>14. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>15. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>16. I&#8217;m not even sure what this point is trying to say. CMSs basically exist so that you don&#8217;t have to write a whole site backend yourself. What does clean markup have to do with whether or not you need an elaborate site backend?</p>
<p>17. I completely agree with this point, but it has nothing to do with HTML vs. XHTML. Check out the source at <a href="http://www.webdevout.net/"><abbr title="HyperText Transfer Protocol">http</abbr>://www.webdevout.net/</a>. How is this any less &#8220;clean&#8221; than the XHTML equivalent at <a href="http://www.webdevout.net/?output=xhtml">http://www.webdevout.net/?output=xhtml</a> (aside from the removal of the comments, which were just done to simplify the on-demand conversion)? If anything, XHTML has more junk thrown in. You may personally prefer seeing &#8220;/&#8221; characters in anything that ends an element, but you must be pretty darn new to web design if you don&#8217;t realize that <code>link</code> elements always end immediately after starting. And if you&#8217;re that new, you probably can&#8217;t read the XHTML version any easier than the HTML version. In any case, I have seen XHTML markup far, far uglier than my HTML markup. Following best practices, typical HTML and typical XHTML do not have significant differences in &#8220;cleanliness&#8221; compared to other issues like indentation and semantic markup.</p>
<p>18. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>19. Semantic markup / separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>20. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>21. Semantic markup / separation of content and presentation issue, not HTML vs. XHTML. And I probably wouldn&#8217;t use the word &#8220;automatically&#8221; here.</p>
<p>22. This is more a CSS issue than a markup issue at this time, and I don&#8217;t think it&#8217;s quite as true as a lot of people seem to believe. In regard to XHTML, the pace of browser development isn&#8217;t likely to be swayed to any significant degree by a few more websites adopting &#8220;real&#8221; (<abbr title="Internet Explorer">IE</abbr>-incompatible) XHTML. The Internet Explorer development team has already said that they plan to add real XHTML support in an upcoming version, but they just want to make sure they support it correctly before they roll it out. It would suck for IE to launch it early and have bugs in well-formedness detection (some well-formed pages might not display at all, or malformed pages might accidentally be seen as well-formed, which means the web developer might not catch the error and other browsers might not be able to display the page) or the kinds of CSS and <acronym title="Document Object Model">DOM</acronym> bugs that Opera currently has with XHTML parsed as XML.</p>
<p>23. In HTML, all elements <em>are</em> closed. An empty element with an omittable end tag is automatically closed right after the start tag in HTML (and any other <abbr title="Standard Generalized Markup Language">SGML</abbr>-based language that allows omittable end tags). I assume he meant it looks cleaner with end tags (or null end tags, the <code>/&gt;</code> things). That&#8217;s a matter of personal preference. As far as the markup itself, I think XML generally looks <em>less</em> clean with the extra <code>/</code> characters everywhere and/or end tags immediately after start tags. Sure, you could say that the document structure in XML is more <em>obvious</em> without having to know any of the <abbr title="Document Type Definition">DTD</abbr> rules, but hey, the navigation structure at <a href="http://www.craigslist.org/">craigslist</a> is obvious, but I wouldn&#8217;t call it &#8220;clean&#8221;.</p>
<p>24. This is absolutely wrong. Since XHTML sent with the typical <code>text/html</code> content type isn&#8217;t even parsed as XML by any major browser, well-formedness is a non-issue when it comes to how those browsers parse the document. Take a well-formed XHTML page, change every instance of <code>/&gt;</code> to just <code>&gt;</code>, send it along as <code>text/html</code>, and see what browsers do with it. No difference. You have a horribly malformed XML document, and there isn&#8217;t a single major browser that even notices. Now go back to your original well-formed XHTML document and add a few <code>&lt;div /&gt;</code> things here and there. It&#8217;s still well-formed, and those few empty divs shouldn&#8217;t make much of a difference, right? Wrong. Most major browsers suddenly make a complete mess of your page because they think everything after each of the <code>&lt;div /&gt;</code> things is <em>inside the <code>div</code></em>! Now take an XHTML document with an XML declaration, and insert a blank line above the XML declaration. Go ahead and validate that with the <a href="http://validator.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr> Validator</a>. It says it&#8217;s valid? Great, except guess what? It isn&#8217;t well-formed. The current W3C Validator doesn&#8217;t check for well-formedness, only validity with an SGML parser in XML mode, so when parsed with a real XML parser (any major non-IE browser if the document is sent as <code>application/xhtml+xml</code>), this lovely XHTML page to which the W3C Validator gave the green light <em>completely fails to load</em>! Try the new <a href="http://validator-test.w3.org/">W3C Validator beta</a> which uses a real XML parser. The new one says it failed validation, while the old one said it passed. Looks like well-formedness is a much more slippery issue than the writer of this article would have you believe.</p>
<p>25. Huh? You really think any major browser today is spending any significant amount of time on the HTML parser error handling anymore? Are we still living in the &#8217;90s? That job is pretty much done. Instead, the author is suggesting that browsers like IE spend more time adding support for proper XHTML rather than things like CSS? Seems a bit self-contradictory to me.</p>
<p>26. Almost every page on the Web is currently sent with the <code>text/html</code> content type. This means all major browsers use an HTML parser on them. Because no major web browsers are enforcing well-formedness, the vast majority of XHTML content on the web is malformed and can only be parsed using a typical HTML parser. Nearly the entire Web currently <em>requires</em> an HTML parser. Future web browsers will have to support this content. This is why HTML 5 is going to define exactly what browsers are <em>currently</em> doing with HTML (rather than referencing the SGML specification which browsers were <em>supposed</em> to be following). If you use HTML, it <em>will</em> work in future web browsers, or else nearly the entire Web will be broken in them. No browser developers who want people to use their product for general web browsing will let all of that content just break. In the real world, HTML is very future-compatible.</p>
<p>27. It&#8217;s true that there are still some mobile browsers which use XML parsers exclusively, but these will die out in time. It&#8217;s already possible for a full HTML-parsing browser to run on a mobile device without a significant difference in energy consumption compared to an XML-only one. As technology improves, it will be trivial to put something like Opera or KHTML (Konqueror&#8217;s free and lightweight engine, from which forked Safari&#8217;s engine) on any mobile device with no significant energy or performance impact. The XML-only mobile browsers today are seldom intended for regular web browsing, since well-formed and valid XHTML is nearly nonexistent on the Web, relatively speaking, and that isn&#8217;t likely to change any time in the near future. Market forces are simply going to require HTML parsing on those devices if they are intended for general web browsing. Again, let&#8217;s be realistic. HTML isn&#8217;t going away.</p>
<p>28. Again, no major browser treats typical XHTML as XML, so you aren&#8217;t really dealing with XML in the first place. You&#8217;re dealing with bad HTML that has adopted some aspects of XML, but is still treated as just HTML. Learning XML by using XHTML is like learning web design by going to an <abbr title="Microsoft">MS</abbr> FrontPage class: you may acquire some superficial exposure to it, but you&#8217;ll probably learn a bunch of crap in the process.</p>
<p>29. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>30. What exactly would I be converting XHTML to? I&#8217;ve never come across a situation where such a thing would be useful with HTML/XHTML. If I want to provide an <abbr title="Really Simple Syndication">RSS</abbr> or Atom feed, I probably already have the data in an <abbr title="Structured Query Language">SQL</abbr> database to begin with. Doing an XSL transformation in this case would cause unnecessary overhead. And then, if I really want to, it&#8217;s not exactly difficult to convert typical HTML to XHTML. Remember the <code>?output=xhtml</code> thing I mentioned above? I wrote that converter in under an hour as an afterthought. If you have a specific document you&#8217;re working with in a specific format, it&#8217;s even easier to toss around a couple regular expressions and get the data you want. I always hear people referring to XSL as an advantage of XHTML, but I wonder how many of those people have even used XSL. I&#8217;ve never needed to.</p>
<p>31. Semantic markup issue, not HTML vs. XHTML.</p>
<p>32. Semantic markup issue, not HTML vs. XHTML.</p>
<p>33. Ha. Well, thankfully, I don&#8217;t have to use XHTML in order to put it on my resume.</p>
<p>34. This isn&#8217;t really an issue of HTML vs. XHTML, but it&#8217;s worth pointing out that Firefox 2.0 and below actually typically render XHTML content parsed as XML <em>more slowly</em> than HTML. Whether it&#8217;s HTML or XML, parsing speed is usually faster than download speed, so it has usually parsed the entire document by the time it finishes downloading. When using the HTML parser, it begins to display the webpage while it&#8217;s being parsed (and thus, while it&#8217;s still downloading). However, when it&#8217;s using the XML parser, it won&#8217;t display anything until it has checked for well-formedness throughout the entire document. That means nothing gets displayed to the user until the entire XHTML page has downloaded. So under both HTML and XML modes, the document usually finishes rendering at about the same time, but the HTML parser starts rendering much sooner. Firefox 3 will support incremental rendering of XML content, so the two will be about the same speed on typical Internet connection speeds.</p>
<p>35. But what is &#8220;the right way&#8221; exactly?</p>
<p>36. They aren&#8217;t: <a href="http://www.456bereastreet.com/">Roger Johansson</a>, <a href="http://annevankesteren.nl/">Anne van Kesteren</a>, <a href="http://www.snook.ca/jonathan/">Jonathan Snook</a>, <a href="http://meyerweb.com/">Eric Meyer</a>, <a href="http://webkit.org/">the Safari team</a>&#8230;</p>
<p>The links in the following sub-points go to a page which simply sends the webpage contents with the <code>application/xhtml+xml</code> content-type which triggers XML parsing in web browsers. This is exactly how you would see the respective websites if they sent the correct XHTML content type.</p>
<p>36a. Not only does <a href="http://www.webdevout.net/test?http%3A%2F%2Fwww.simplebits.com%2F&amp;raw&amp;html_type=application/xhtml%2Bxml">SimpleBits </a>not validate, it isn&#8217;t even well-formed, so an XML parser would <em>completely</em> fail to load it.</p>
<p>36b. Shame the &#8220;Job Board&#8221; section on <a href="http://www.webdevout.net/test?http%3A%2F%2Fwww.zeldman.com%2F&amp;raw&amp;html_type=application/xhtml%2Bxml">Jeffrey Zeldman&#8217;s site</a> doesn&#8217;t work when the page is parsed as XML. <code>document.write</code> and <code>document.writeln</code> don&#8217;t exist in XML documents. Being a supposed standards expert, you&#8217;d think he&#8217;d know that.</p>
<p>36c. Wow, the stylesheet really falls apart when <a href="http://www.webdevout.net/test?http%3A%2F%2Fwww.jasonsantamaria.com%2F&amp;raw&amp;html_type=application/xhtml%2Bxml">Jason Santa Maria&#8217;s page</a> is parsed as XML. Perhaps he doesn&#8217;t realize that CSS isn&#8217;t supposed to follow the legacy HTML rules when the page is parsed as XML, and when you set the background on the <code>body</code> element, it really goes on the <code>body</code> element, not the <code>html</code> element. Too bad.</p>
<p>36d. <a href="http://www.webdevout.net/test?http%3A%2F%2Fwww.shauninman.com%2F&amp;raw&amp;html_type=application/xhtml%2Bxml">Shaun Inman</a> should fix those weird spacing issues that happen when the page is parsed as XML. The search box looks out of shape.</p>
<p>36e. <a href="http://www.webdevout.net/test?http%3A%2F%2Fwww.cameronmoll.com%2F&amp;raw&amp;html_type=application/xhtml%2Bxml">Cameron Moll&#8217;s site</a> has a whole slew of validation errors, plus well-formedness errors. The page doesn&#8217;t display at all when parsed as XML.</p>
<p>36f. On <a href="http://www.webdevout.net/test?http%3A%2F%2Fwww.stopdesign.com%2F&amp;raw&amp;html_type=application/xhtml%2Bxml">StopDesign</a>, the &#8220;Latest links&#8221; don&#8217;t appear when the page is parsed as XML. Once again, <code>document.write</code> doesn&#8217;t work in XML.</p>
<p>36g. <a href="http://www.webdevout.net/test?http%3A%2F%2Fwww.mezzoblue.com%2F&amp;raw&amp;html_type=application/xhtml%2Bxml">Dave Shea&#8217;s mezzoblue</a> has a bunch of validation and well-formedness errors. The page doesn&#8217;t display at all when parsed as XML.</p>
<p>For those keeping count, <em>every single example</em> the article gave of web standards experts using XHTML had problems when parsed as XML. Three of them (that&#8217;s 43%) couldn&#8217;t even be parsed as XML. XHTML was designed specifically to be an XML version of HTML. If these sites don&#8217;t work correctly when treated as XML, why are they XHTML? If they <em>depend</em> on browsers treating them like HTML and don&#8217;t make use of any benefit XHTML is supposed to offer, why weren&#8217;t they just written in HTML?</p>
<p>37. You&#8217;re part of the masses who use XHTML without really understanding it. I consider myself part of a movement to educate people about the problems using XHTML this way. To each his own.</p>
<p>38. This isn&#8217;t really specific to the HTML vs. XHTML issue.</p>
<p>39. Hooray! Although I wish the same fate about some other elements which are still lingering in drafts of future specifications.</p>
<p>40. Which is why I write my HTML to strict guidelines.</p>
<p>41. Thankfully, I can write books about XHTML without using it.</p>
<p>42. Yes, it&#8217;s always good to know the technologies. I know XHTML very well. Of course, it doesn&#8217;t mean I use it when HTML is the better option.</p>
<p>43. For someone who doesn&#8217;t seem to understand that browsers handle most XHTML content on the Web as regular old HTML, I&#8217;m not sure this author is one to speak.</p>
<p>44. Sounds like a CSS issue.</p>
<p>45. You should be caring about this stuff if you&#8217;re using HTML, too.</p>
<p>46. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>47. &#8220;XHTML has a cooler name than HTML&#8221;. This doesn&#8217;t warrant a response.</p>
<p>48. Yeah, and I&#8217;ve definitely seen a lot of disadvantages to using XHTML. Unfortunately, there is a lot of people who get religious about it and refuse to listen to anything bad about XHTML. But for those among you who are open-minded, I hope you read my articles on the subject.</p>
<p>49. Separation of content and presentation issue, not HTML vs. XHTML.</p>
<p>50. Or free tools, like Bluefish on Linux.</p>
<p>51. 1,060,000 columbus discovered the world was round &gt; 826,000 columbus didn&#8217;t discover the world was round. The myth that Columbus had any connection with a debate over whether or not the world was round originated entirely from a fictional work published in 1828. If you read the actual history of Christopher Columbus, it was not a debate over whether or not the world was round (it was already well-known and proven that the world was round, and it was contested by very few among the masses and even fewer from more educated backgrounds), it was actually a debate over the circumference of the Earth. Columbus had some errors in his calculation (including confusing two different &#8220;mile&#8221; units from different measurement systems) and thought the world was much smaller than it turned out to be. In every respect, Columbus was wrong about his predictions as he set sail, and had absolutely no part in proving that the world was round. Yet, according to Google search results, the popular belief is that which was derived from the 1828 work of fiction. Just because something is popular on Google doesn&#8217;t mean it&#8217;s true.</p>
<p>52. Oh yes, just like those sites I covered in number 36. All I did for my initial check was use the Force Content-Type extension in Firefox, which just causes the browser to treat the site as if it had the <code>application/xhtml+xml</code> content type (also known as a MIME type). Every single one had problems. All of them. I sure hope everyone who&#8217;s writing XHTML content takes a moment to check how an XML parser would see the page, because there&#8217;s a very high occurrence of things in the markup, stylesheets, and scripts breaking, often to a major degree. If you&#8217;ve only been testing the page when it&#8217;s sent as <code>text/html</code>, you&#8217;ll probably have a lot more work to do than just switching the content type.</p>
<p>53. As mentioned before, Microsoft is already working on it. Making pages that break in IE and thus get very few visitors isn&#8217;t going to put any significant pressure on Microsoft to put more people on the job or work faster. All it means is that a lot of visitors will think your site is broken. Let Microsoft take their time and release a good XHTML engine. There&#8217;s no rush. Really, XHTML isn&#8217;t that immediately important.</p>
<p>54. That&#8217;s just valid markup, whether it&#8217;s HTML or XHTML.</p>
<p>55. Just 16 of the points above were about HTML vs. XHTML. The rest were about other issues like semantic markup. Among those 16, most of them were plainly false, and the rest were pretty much false or irrelevant. Check out my <a href="http://www.webdevout.net/articles/beware-of-xhtml">Beware of XHTML</a> article, which explains a lot more reasons why you should probably use HTML rather than XHTML.</p>
<p>By the way, the article entitled &#8220;55 reasons to design in XHTML/CSS&#8221; contains invalid and malformed XHTML, and a browser attempting to parse it as XML completely fails to load the page. Here&#8217;s the <a href="http://www.webdevout.net/test?http%3A%2F%2Fwww.khmerang.com%2Findex.php%3Fp%3D106&amp;raw&amp;html_type=application/xhtml%2Bxml">parsed-as-XML version</a>. The only reason a browser is able to display the original article at all is because all major browsers normally treat his XHTML as regular old HTML. I suggest learning the technology before spreading myths about it.</p>]]></content:encoded>
			<wfw:commentRss>http://www.webdevout.net/tidings/2007/05/08/re-55-reasons-to-design-in-xhtmlcss/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
