<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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/"
	>

<channel>
	<title>Thoughts From Eric &#187; Tech</title>
	<link>http://meyerweb.com</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it's largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<pubDate>Wed, 07 May 2008 14:51:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>line-height: abnormal</title>
		<link>http://meyerweb.com/eric/thoughts/2008/05/06/line-height-abnormal/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/05/06/line-height-abnormal/#comments</comments>
		<pubDate>Tue, 06 May 2008 15:13:56 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/05/06/line-height-abnormal/</guid>
		<description><![CDATA[I wrote the first edition of CSS:TDG back in 1999.  Almost a decade later, line layout and line heights continue to hurt me.]]></description>
			<content:encoded><![CDATA[<p>
When I first wrote <a href="http://meyerweb.com/eric/books/css-tdg/"><cite>Cascading Style Sheets: The Definitive Guide</cite></a>, the part that caused me the most difficulty and headaches was the line layout material.  Several times I was sure I had it all figured out and accurately described, only to find out I was wrong.  For two weeks I corresponded with <a href="http://hixie.ch/" rel="acquaintance colleague met">Ian Hickson</a> and <a href="http://dbaron.org/" rel="acquaintance colleague met">David Baron</a>, arguing for my understanding of things and having them show me, in merciless detail, how I was wrong.  I doubt that I will ever stop owing them for their dedication to getting me through the wilderness of my own misunderstandings.
</p>
<p>
Later on, I produced <a href="http://meyerweb.com/eric/css/inline-format.html">a terse description of line layout</a> which went through a protracted vetting process with the CSS Working Group and the members of <a href="http://lists.w3.org/Archives/Public/www-style/">www-style</a>.  At the time it was published, there was no more detailed and accurate description of line layout available.  Even at that, corrections trickled in over the years, which made me think of it as my own tiny little <a href="http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming"><cite>The Art of Computer Programming</cite></a>.  Only without the small monetary reward for finding errors.
</p>
<p>
The point here is that line layout is very difficult to truly understand&#8212;even given everything I just said, I&#8217;m still not convinced that I do&#8212;and that there are often surprises lurking for anyone who goes looking into the far corners of how it happens.  As I&#8217;ve said before, my knowledge of what goes into the layout of lines of text imparts a sense of astonishment that any page can be successfully displayed in less than the projected age of the universe.
</p>
<p>
Why bring all this up?  Because I went and poked <code>line-height: normal</code> with a stick, and found it to be both squamous and rugose.  As with all driven to such madness, I now seek, grinning wildly, to infect others.
</p>
<p>
Here&#8217;s the punchline: the effects of declaring <code>line-height: normal</code> not only vary from browser to browser, which I had expected&#8212;in fact, quantifying those differences was the whole point&#8212;<em>but they also vary from one font face to another, and can also vary within a given face</em>.
</p>
<p>
I did not expect that.  At least, not consciously.
</p>
<p>
My work, let me show it to you: <a href="http://meyerweb.com/eric/css/tests/line-height/inspect-multi.html">a JavaScript-driven test file</a> where you can pick from a list of fonts and see what happens at a variety of sizes.  (Yes, the JS is completely obtrusive; and yes, the JS is the square of amateur hour.  Let&#8217;s move on, please.  I&#8217;m perfectly happy to replace what&#8217;s there with unobtrusive and sharper JS, as long as the basic point of the page, which is testing <code>line-height: normal</code>, is not compromised.  Again, moving on.)
</p>
<p>
When you first go to the test, you should (I hope) see a bunch of rulered boxes containing text using the very common font face Webdings, set at a bunch of different font sizes.  The table shows you how tall the simple line boxes are at each size, and therefore the numeric equivalent for <code>line-height: normal</code> at those sizes.  So if a line box is using <code>font-size: 50px</code> and the line box is 55 pixels tall, the numeric equivalent for <code>line-height: normal</code> is 1.1 (55 divided by 50).
</p>
<p>
On my PowerBook, Webdings always yields a 1:1 ratio between the <code>font-size</code> and line box height.  The ten-pixel font size yields a ten-pixel-tall line box, and so on.
</p>
<p>
This is actually a little surprising by itself.  <a href="http://www.w3.org/TR/CSS21/visudet.html#propdef-line-height">The CSS 2.1 specification says</a>:
</p>

<blockquote cite="http://www.w3.org/TR/CSS21/visudet.html#propdef-line-height">
<dl>
<dt><strong>normal</strong></dt>
<dd>Tells user agents to set the used value to a &#8220;reasonable&#8221; value based on the font of the element. The value has the same meaning as <a name="x23" href="http://www.w3.org/TR/CSS21/syndata.html#value-def-number" class="noxref">&lt;number&gt;</a>. We recommend a used value for &#8216;normal&#8217; between 1.0 to 1.2. The <a href="http://www.w3.org/TR/CSS21/cascade.html#computed-value">computed value</a> is &#8216;normal&#8217;.
</dd>
</dl>
</blockquote>

<p>
This is basically what CSS has said since its first days (see the equivalent text <a href="http://www.w3.org/TR/CSS1#line-height">in CSS1</a> or <a href="http://www.w3.org/TR/CSS2/visudet.html#propdef-line-height">in CSS2</a> for confirmation) and there&#8217;s always been a widespread assumption that, since 1.0 is probably too crowded, something around 1.2 is much more likely.
</p>
<p>
So finding a value of 1 was a surprise.  It was an even bigger surprise to me that this held true in Camino 1.5.2, Firefox 2.0.0.14, and Safari 2.0.4, all on OS X.  Firefox 3b5 didn&#8217;t render Webdings at all, so I don&#8217;t know if it would do the same.  I actually suspect not, for reasons best left for another time (and, possibly, a final release of Firefox 3).
</p>
<p>
Various browsers doing the same thing in an under-specified area of the spec?  That can&#8217;t be right.  It&#8217;s pretty much an article of faith that given the chance to do <em>anything</em> differently, browsers will.  The sailing was so unexpectedly smooth that I immediately assumed was that a storm lurked just over the horizon.
</p>
<p>
Well, I was right.  All I had to do was start picking other font faces.
</p>
<p>
To start, I picked the next font on the list, Times New Roman, and the equivalent values for <code>normal</code> immediately changed.  In other words, <em>the numeric equivalents for Times New Roman are different than those for Webdings</em>.  The browsers weren&#8217;t maintaining a specific value for <code>normal</code>, but were altering it on a per-face basis.
</p>
<p>
Now, this is legal, given the way <code>normal</code> is under-specified.  There&#8217;s room to allow for this behavior.  It&#8217;s actually, once you think about it, a fairly good thing from a visual point of view: the best default line height for Times New Roman is probably not the best default line height for Courier New.  So while I was initially surprised, I got over it quickly.  The seemingly obvious conclusion was that browsers were actually respecting the fonts&#8217; built-in metrics.  This was reinforced when I found that the results were exactly the same from browser to browser.
</p>
<p>
Then I looked more closely at the numbers, and confusion set back in.  For Times New Roman, I was getting values of 1.1, 1.12, 1.16, 1.15, 1.149, and 1.1499.  If you were to round all of those numbers to two decimal points, you&#8217;d get 1.10, 1.12, 1.16, 1.15, 1.15, 1.15.  If you round them all to one decimal place, you&#8217;d get 1.1, 1.1, 1.2, 1.2, 1.1, 1.1.  They&#8217;re inconsistent.
</p>
<p>
But wait, I thought, I&#8217;m trying to compare numbers I derived by dividing pixels by pixels.  Let&#8217;s turn it around.  If I multiply the most precise measurement I&#8217;ve gotten by the various font sizes, I get&#8230; carry the two&#8230; 11.499, 28.7475, 57.495, 114.99, 1149.9, 11499.  As compared to the actual values I got, which were 11, 28, 58, 115, 1149, and 11499.
</p>
<p>
Which means the results were inappropriately rounded up in some cases and down in others.  28.7475 became 28 and 1149.9 became 1149, whereas 57.495 became 58.  Even though 11.499 became 11 and 114.99 became 115.
</p>
<p>
This was consistent across all the browsers I was testing.  So again, I was suspecting the fonts themselves.
</p>
<p>
And then I switched from Times New Roman to just plain old Times, and the storm was full upon me.  I&#8217;ll give you the results in a table.
</p>

<table class="chart">
<caption>Derived <code>normal</code> equivalents for Times in OS X browsers</caption>
<tr>
<th><code>font-size</code></th>
<th scope="col">Camino 1.5.2</th>
<th scope="col">Firefox 2.0.0.14</th>
<th scope="col">Safari 2.0.4</th>
</tr>
<tr>
<th scope="row">10
<td>1</td>
<td>1.2</td>
<td>1.3</td>
</th></tr>
<tr>
<th scope="row">25
<td>1</td>
<td>1</td>
<td>1.16</td>
</th></tr>
<tr>
<th scope="row">50
<td>1</td>
<td>1</td>
<td>1.18</td>
</th></tr>
<tr>
<th scope="row">100
<td>1</td>
<td>1</td>
<td>1.15</td>
</th></tr>
<tr>
<th scope="row">1000
<td>1</td>
<td>1</td>
<td>1.15</td>
</th></tr>
<tr>
<th scope="row">10000
<td>1</td>
<td>1</td>
<td>1.15</td>
</th></tr>
</table>

<p>
Much the same happened when comparing Courier New with plain old Courier: full consistency on Courier New between browsers, albeit with the same strange (non-)rounding effects as seen with Times New Roman; but inconsistency between browsers on plain Courier&#8212;with Camino yielding a flat 1 down the line, Firefox going from 1.2 to 1, and Safari having a range of values above the others&#8217; values.
</p>
<p>
Squamous!  Not to mention rugose!
</p>
<p>
Now it&#8217;s time for the stunning conclusion that derives from all this information, which is: not here.  Sorry.  So far all I have are observations.  I may turn all this into a summary page which shows the results for all the font faces across multiple browsers and platforms, but first I&#8217;ll need to get those numbers.
</p>
<p>
I do have a few speculations, though:
</p>

<ol>
<li>
<p>
Firefox&#8217;s inconsistency within font faces (see Times and Courier, above) may come from face substitution.  That&#8217;s when a browser doesn&#8217;t have a given character in a given face, so it looks for a substitute in another face.  If Firefox thinks it doesn&#8217;t have 10-pixel Times, it might substitute 10-pixel something else serif-ish, and that face has different line height characteristics than Times.  I don&#8217;t know what that other face might be, since it&#8217;s not Times New Roman or Georgia, but this is one possibility.  It is <strong>not</strong> the minimum font size setting in the preferences, as I&#8217;ve triple-checked to make sure I have that set to &#8220;None&#8221;.
</p>
</li>
<li>
<p>
Another possibility for Firefox&#8217;s line height weirdness is a shift from subpixel font rendering to pixelly font rendering.  10-pixel text in Firefox is distinctly pixelly compared to the other browsers I tested, while sizes above there are nice and smooth.  Why this would drive up the line height by two pixels (20%), though, is not clear to me.
</p>
</li>
<li>
<p>
Much of what I&#8217;ve observed will likely be laid to rest at the doorsteps of the font faces themselves.  I&#8217;d like to know how it is that the rounding behaviors are so (mathematically) messed up within faces, though.  Perhaps ideal line heights are described as an equation rather than a simple ratio?
</p>
</li>
</ol>

<p>
Again, this was all done in OS X; I&#8217;ll be very interested to find out what happens on Windows, Linux, and other operating systems.  Side note for the Mac Opera fans warming up their flamethrowers: I&#8217;ve left Opera 9.27 for OS X out of this because it seems to cap font sizes at a size well below 1000, although this limit varied from one face to another.  Webdings and Courier capped at 507 pixels, whereas Courier capped at 574 pixels and Comic Sans MS stopped at 707 pixels.  I have no explanation, though doubtless someone will, but the upshot is that direct comparisons between Opera and the other browsers are impossible.  For sizes up to 100 pixels, the results were exactly consistent with Camino, if that means anything.
</p>
<p>
The one tentative conclusion I did reach is this: <code>line-height: normal</code> is a jumbled terrain of inconsistent behaviors, and it&#8217;s best avoided in any sort of precision layout work.  I&#8217;d already had that feeling, but at least now there&#8217;s some evidence to back up the feeling.
</p>
<p>
In any case, I doubt this is the last I&#8217;ll have to say on this particular topic.
</p>
<p>
<strong>Update 7 May 08:</strong> I&#8217;ve updated <a href="http://meyerweb.com/eric/css/tests/line-height/inspect-multi.html">the test page</a> with <a href="http://meyerweb.com/eric/thoughts/2008/05/06/line-height-abnormal/#comment-372941">a fix</a> from <a href="http://blowery.org/">Ben Lowery</a> so that it works in IE.  Thanks, Ben!  Now all I need is to add a way to type in any arbitrary font-family&#8217;s name, and we&#8217;ll have something everyone can use.  (Or else a way to use JavaScript to suck up the names of all the fonts installed on a machine and put them into the dropdown.  That would be cool, too.)
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/05/06/line-height-abnormal/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Crafting Ourselves</title>
		<link>http://meyerweb.com/eric/thoughts/2008/04/17/crafting-ourselves/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/04/17/crafting-ourselves/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 16:47:41 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Commentary]]></category>

		<category><![CDATA[Culture]]></category>

		<category><![CDATA[Standards]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/04/17/crafting-ourselves/</guid>
		<description><![CDATA[In which I directly respond to the people who dislike my reset styles.]]></description>
			<content:encoded><![CDATA[<p>
My referrers lit up recently due to <a href="http://snook.ca/archives/html_and_css/no_css_reset/">Jonathan Snook&#8217;s article about CSS resets and how he doesn&#8217;t use them</a>.  To Jonathan and all the doubters and nay-sayers out there, I have only one thing to say:
</p>
<p>
<strong>Good for you.</strong>
</p>
<p>
Seriously; no sarcasm or passive-aggressiveness intended.  If I thought my reset styles, or really anything I&#8217;ve ever published or advocated, was a be-all end-all ultimate solution for every designer and design that&#8217;s ever been and could ever be, I&#8217;d be long past due for six rounds on the receiving end of a clue-by-four.
</p>
<p>
Reset styles clearly work for a lot of people, whether as-is or in a modified form.  As I say on <a href="http://meyerweb.com/eric/tools/css/reset/">the reset page</a>, those styles aren&#8217;t supposed to be left alone by anyone.  They&#8217;re a starting point.  If a thousand people took them and created a thousand different personalized style sheets, that would be right on the money.  But there&#8217;s also nothing wrong with taking them and writing your own overrides.  If that works for you, then awesome.
</p>
<p>
For others, reset styles are more of an impediment.  That&#8217;s only to be expected; we all work in different ways.  The key here, and the reason I made the approving comment above, is that you evaluate various tools by thinking about how they relate to the ways you do what you do&#8212;and then choose what tools to use, and how, and when.  That&#8217;s the mark of someone who thinks seriously about their craft and strives to do it better.
</p>
<p>
I&#8217;m not saying that craftsmen/craftswomen are those people who reject the use of common tools, of course.  I&#8217;m saying that they use the tools that fit them best and modify (or create) tools to best fit them, applying their skills and knowledge of their craft to make those decisions.  It&#8217;s much the same in the world of programming.  You can&#8217;t identify a code craftsman by whether or not they use this framework or that language.  You can identify them by how they decide which framework or language to use, or not use, in a given situation.
</p>
<p>
Craftsmanship is something I&#8217;ve been thinking about quite a bit recently, <a href="http://bokardo.com/archives/markup-style-society-talk/">as has Joshua Porter</a>.  I delivered a keynote address on that very topic just <a href="http://minnewebcon.umn.edu/">a few days ago in Minneapolis</a>, and my thinking infuses both of the talks I&#8217;m giving next week at <a href="http://aneventapart.com/events/2008/neworleans/">An Event Apart New Orleans</a>.  I&#8217;ve started looking harder for evidence of it, both in myself and in what I see online, and I believe striving toward being a craftsman/craftswoman is an important process for anyone who chooses to work in this field.
</p>
<p>
Because this isn&#8217;t a field of straightforward answers and universal solutions.  We are often faced with problems that have multiple solutions, none of them perfect.  To understand what makes each solution imperfect and to know which of them is the best choice in the situation&#8212;that&#8217;s knowing your craft.  That&#8217;s being a craftsman/craftswoman.  It&#8217;s a never-ending process that is all the more critical precisely because it is never-ending.
</p>
<p>
So it&#8217;s no surprise that we, as a community, keep building and sharing solutions to problems we encounter.  Discussions about the merits of those solutions in various situations are also no surprise.  Indeed, they&#8217;re exactly the opposite: the surest and, to me, most hopeful sign that web design/development continues to mature as a profession, a discipline, and a craft.  It&#8217;s evidence that we continue to challenge ourselves and each other to advance our skills, to keep learning better and better how better to do what we love so much.
</p>
<p>
I wouldn&#8217;t have it any other way.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/04/17/crafting-ourselves/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Full Disclosure</title>
		<link>http://meyerweb.com/eric/thoughts/2008/04/01/full-disclosure/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/04/01/full-disclosure/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 13:45:49 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Humor]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/04/01/full-disclosure/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<a href="http://www.flickr.com/groups/wasp-april-fools/pool/"><img src="/pix/2008/wasp-warn-alt.jpg" alt="WARNING: This person omits alt text from images (Happy April Fool's Day from The Web Standards Project.)" class="standalone border" /></a>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/04/01/full-disclosure/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Acid Redux</title>
		<link>http://meyerweb.com/eric/thoughts/2008/03/27/acid-redux/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/03/27/acid-redux/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 02:22:42 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/03/27/acid-redux/</guid>
		<description><![CDATA[
So the feeds I read have been buzzing the past few days with running commentary of the WebKit and Opera teams&#8217; race to be the first to hit 100/100 on Acid3, and then after that the effort to get a pixel-perfect match with the reference image.  Last I saw, Opera claimed to have gotten [...]]]></description>
			<content:encoded><![CDATA[<p>
So the feeds I read have been buzzing the past few days with running commentary of the WebKit and Opera teams&#8217; race to be the first to hit 100/100 on <a href="http://acid3.acidtests.org/">Acid3</a>, and then after that the effort to get a pixel-perfect match with the reference image.  Last I saw, <a href="http://my.opera.com/desktopteam/blog/2008/03/26/opera-and-the-acid3-test">Opera claimed to have gotten to 100 first</a> but <a href="http://webkit.org/blog/173/webkit-achieves-acid3-100100-in-public-build/">it looked like WebKit had gotten both with something publicly available</a>, but I haven&#8217;t verified any of this for myself.  Nor do I have any particular plans to do so.
</p>
<p>
Because as lovely as it is to see that you can, in fact, get one or more browser implementation teams to jump in a precisely defined sequence through a series of cunningly (one might say sadistically) placed hoops, half of which are on fire and the other half lined with razor wire, it doesn&#8217;t strike me as the best possible use of the teams&#8217; time and energy.
</p>
<p>
No, I don&#8217;t hate standards, though I may hate freedom (depends on who&#8217;s asking).  What I disagree with is the idea that if you cherry-pick enough obscure and difficult corners of a bunch of different specifications and mix them all together into a spicy meatball of difficulty, it constitutes a useful test of the specifications you cherry-picked.  Because the one does not automatically follow from the other.
</p>
<p>
For example, suppose I told you that WebKit had implemented just the bits of SMIL-related SVG needed to pass the test, and that in doing so they exposed a woefully incomplete SVG implementation, one that gets something like 2% pass rates on actual SMIL/SVG tests.  Laughable, right?  <a href="http://blog.codedread.com/archives/2008/03/26/webkit-nightly-not-smiling/">Yes, well</a>.
</p>
<p>
Of course, that&#8217;s in a nightly build and they might totally support SMIL by the time the corresponding final version is released and we&#8217;ll all look back on this and laugh the carefree laugh of children in springtime.  Maybe.  The real point here is that the Acid3 test isn&#8217;t a broad-spectrum standards-support test.  It&#8217;s a showpiece, and something of a Potemkin village at that.  Which is a shame, because what&#8217;s really needed right now is exhaustive test suites for specifications&#8211; XHTML, CSS, DOM, SVG, you name it.  We&#8217;ve been seeing more of these emerge recently, but they&#8217;re not enough.  I&#8217;d have been much more firmly in the cheering section had the effort that went into Acid3 had gone into, say, an obssessively thorough DOM test suite.
</p>
<p>
I&#8217;d had this post in mind for a while now, really ever since Acid3 was released.  Then the horse race started to develop, and I told myself I really needed to get around to writing that post&#8212;and I got overtaken.  Well, that&#8217;s being busy for you.  It&#8217;s just as well I waited, really, because much of what I was going to say got covered by <a href="http://shaver.off.net/">Mike Shaver</a> in his piece <a href="http://shaver.off.net/diary/2008/03/27/the-missed-opportunity-of-acid-3/">explaining why Firefox 3 isn&#8217;t going to hit 100% on Acid3</a>.  For example:
</p>

<blockquote cite="http://shaver.off.net/diary/2008/03/27/the-missed-opportunity-of-acid-3/">
<p>
Ian&#8217;s Acid3, unlike its predecessors, is not about establishing a baseline of useful web capabilities. It&#8217;s quite explicitly about making browser developers jump&#8230; the Acid tests shouldn&#8217;t be fair to browsers, they should be fair to the <em>web</em>; they should be based on how good the web will be as a platform if all browsers conform, not about how far any given browser has to stretch to get there.
</p>
</blockquote>

<p>
That&#8217;s no doubt more concisely and clearly stated than I would have managed, so it&#8217;s all for the best that he got to say it first.
</p>
<p>
By the by, I was quite intrigued by this part of Mike&#8217;s post:
</p>

<blockquote cite="http://shaver.off.net/diary/2008/03/27/the-missed-opportunity-of-acid-3/">
<p>
You might ask why Mozilla&#8217;s not racking up daily gains, especially if you&#8217;re following the relevant bugs and seeing that people have produced patches for some issues that are covered by Acid3.
</p>
<p>
The most obvious reason is Firefox 3. We&#8217;re in the end-game of building what I really do believe is the best browser the web has ever known, and we expect to be putting it in the hands of more than 170 million users in a pretty short period of time. We&#8217;re still taking fixes for important issues, but virtually none of the issues on <a href="http://spreadsheets.google.com/pub?key=pNgBCwWdyRTT2JeiZn4B2Yw">the Acid3 list</a> are important enough for us to take at this stage. We don&#8217;t want to be rushing fixes in, or rushing out a release, only to find that we&#8217;ve broken important sites or regressed previous standards support, or worse introduced a security problem. Every API that&#8217;s exposed to content needs to be tested for compliance and security and reliability&#8230; We think these remaining late-stage patches are worth the test burden, often because they help make the web platform much more powerful, and reflect real-web compatibility and capability issues. Acid3&#8217;s contents, sadly, are not as often of that nature.
</p>
</blockquote>

<p>
You know, it&#8217;s weird, but that seems really familiar, like I&#8217;ve heard or read something like that before.  Now if only I could remember&#8230;  Oh yeah!  It&#8217;s basically <a href="http://blogs.msdn.com/ie/archive/2005/07/29/445242.aspx">what the IE team said</a> about not passing <a href="http://acid2.acidtests.org/#top">Acid2</a> when the IE7 betas came out, for which they were promptly excoriated.
</p>
<p>
Huh.
</p>
<p>
Well, never mind that now.  Of course it was a <em>totally</em> different set of circumstances and core motivations, and I&#8217;m sure there&#8217;s absolutely no parallel to be drawn between the two situations.  At <em>all</em>.
</p>
<p>
Returning to the main point here:  I&#8217;m a little bit sad, to tell the truth.  The <a href="http://www.w3.org/Style/CSS/Test/CSS1/current/test5526c.htm">original acid test</a> was a prefect example of what I think makes for a good stress test.  Recall that the test&#8217;s original name, before it got shorthanded, was the &#8220;Box Model Acid Test&#8221;.  It was a test of CSS box model handling, including floats.  That&#8217;s all it was designed to do.  It did that fairly well for its time, considering it was part of <a href="http://www.w3.org/Style/CSS/Test/CSS1/">a CSS1 test suite</a>.  It didn&#8217;t try to combine box model testing with tests for PNG support, HTML parse error recovery, and DOM scripting.
</p>
<p>
To me, the ideal CSS test suite is one that has a bunch of basic property/value tests, like the ones I&#8217;ve been responsible for creating (<a href="http://www.w3.org/Style/CSS/Test/CSS1/">1</a>, <a href="http://meyerweb.com/eric/css/tests/css2/">2</a>), along with a bunch of acid tests for specific areas or concepts in that specification.  So an acidified CSS test suite would have individual acid tests for the box model, positioning, fonts, selectors, table layout, and so on.  It would <strong>not</strong> involve scripting or markup parsing (beyond what&#8217;s needed to handle selectors).  It would <strong>not</strong> use animated SVG icons.  Hell, it probably wouldn&#8217;t even use PNGs, except possibly alphaed PNGs when testing opacity and RGBA colors.  And maybe not even then.
</p>
<p>
So in a DOM test suite, you&#8217;d have one test page for each method or attribute, and then build some acid tests out of related bits (say, on an entire interface or set of closely related interfaces).  And maybe, at the end, you&#8217;d build an overarching acid test that rolled verything in the DOM spec into one fiendishly difficult test.  But it would be <em>just about the DOM</em> and whatever absolute minimum of other stuff you needed, like text rendering and maybe GIF support.  (Similarly, the CSS tests had to assume some basic HTML and CSS selector support, or else everything else fell down.)
</p>
<p>
And then, after all those test suites have been built up and a series of acid tests woven into them, with each one culminating in its own spec-spanning acid test, you might think about taking those end-point acid tests and slamming them all together into one super-ultra-hyper-mega acid test, something that even the xenomorphs from the <cite>Alien</cite> series would look at and say, &#8220;<em>That&#8217;s</em> gonna sting&#8221;.  That would be awesome.  But that&#8217;s not what we have.
</p>
<p>
I fully acknowledge that a whole lot of very clever thinking went into the construction of Acid3 (as was true of Acid2), and that a lot of very smart people have worked very hard to pass it.  Congratulations all around, really.  I just can&#8217;t help feeling like some broader and more important point has been missed.  To me, it&#8217;s kind of like meeting the general challenge of finding an economical way to loft broadband transceivers to an altitude of 25,000 feet (in order to get full coverage of large metropolitan areas while avoiding the jetstream) by daring a bunch of teams to plant a transceiver near the summit of Mount Everest&#8212;and then getting them to do it.  Progress toward the summit can be demonstrated and kudos bestowed afterward, but there&#8217;s a wider picture that seems to have been overlooked in the process.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/03/27/acid-redux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Notacon: Not to be Missed</title>
		<link>http://meyerweb.com/eric/thoughts/2008/03/24/notacon-not-to-be-missed/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/03/24/notacon-not-to-be-missed/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 19:49:49 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Cleveland]]></category>

		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/03/24/notacon-not-to-be-missed/</guid>
		<description><![CDATA[
In just under a couple of weeks, the fifth annual NOTACON will be held right here in beautiful Cleveland, Ohio.  You&#8217;re going, I know; you&#8217;re super-&#252;ber-cool like that, and you don&#8217;t need to be reminded of your coolness.  But I&#8217;d like to mention the show here for posterity, so that our descendants will [...]]]></description>
			<content:encoded><![CDATA[<p>
In just under a couple of weeks, the fifth annual <a href="http://notacon.org/">NOTACON</a> will be held right here in beautiful Cleveland, Ohio.  You&#8217;re going, I know; you&#8217;re super-&uuml;ber-cool like that, and you don&#8217;t need to be reminded of your coolness.  But I&#8217;d like to mention the show here for posterity, so that our descendants will know just how completely they missed out.
</p>
<p>
Notacon straddles, like a Colossus built entirely out of recycled motherboards, backtech chips, and loops of soldering wire, the middle ground between regular conferences and <a href="http://barcamp.org/">BarCamp</a>s (though Notacon predates BarCamp by a couple of years).  It&#8217;s not free to attend, but it is <a href="http://www.notacon.org/prereg.html">very inexpensive</a>.  What it lacks in slick advertising and corporate sponsors, it makes up ten times over in raw, unfiltered geekiness and fascinating material.  This is the kind of event where presenters will hold forth on the depths of digital security, the physics of wireless networking, homebrew chip architecture, the coolness of HyperCard, online society dynamics, and more.  There&#8217;s a running <a href="http://www.notacon.org/events.html#abe">contest called Anything but Ethernet</a>, where you get bonus points for having one of the links in your network architecture incorporate barbed wire.
</p>
<p>
Yeah.  It&#8217;s like <em>that</em>.
</p>
<p>
The <a href="http://notacon.org/speakers.html">speakers</a> will be as wildly diverse as the audience.  The lead engineer for the <a href="http://en.wikipedia.org/wiki/C64_Direct-to-TV">C64 Direct-to-TV</a> (a C64 in a joystick!); the man behind <a href="http://thedailywtf.com/">The Daily WTF</a>; some of the folks putting out <a href="http://2600.com/">2600 magazine</a>; the woman behind <a href="http://crochetme.com/">CrochetMe.com</a>; and many more.  I&#8217;ll be there as well, talking about the bleeding edge of CSS and web design, ripping apart some recent projects of mine at top speed while discussing where I think we&#8217;ll be in three years.  Plus Drew Curtis of <a href="http://fark.com/">FARK</a> fame will be back, as he always is, this year sponsoring a FARK party.  The mind fairly boggles.  Boggles!
</p>
<p>
As you&#8217;re no doubt gathering by now, it&#8217;s hard to describe Notacon in a quick, concise summary&#8212;and that&#8217;s a big part of what makes it so awesome.  For my contemporaries: see you there!  To you future historians: okay, you missed out, but drop everything right now to find out when the next one is and I&#8217;ll see you there!
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/03/24/notacon-not-to-be-missed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Drugs, Bugs, and IE8</title>
		<link>http://meyerweb.com/eric/thoughts/2008/03/23/drugs-bugs-and-ie8/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/03/23/drugs-bugs-and-ie8/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 22:04:04 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/03/23/drugs-bugs-and-ie8/</guid>
		<description><![CDATA[In which I muse on becoming a cyborg, the effects of narcotics, and the IE8 beta release.]]></description>
			<content:encoded><![CDATA[<p>
If there&#8217;s a downside to <a href="http://twitter.com/meyerweb/statuses/774695615">becoming a cyborg</a>, it&#8217;s the aftermath.  I&#8217;m not talking about the dystopian corporate-state shenanigans: those are fully expected.  No, it&#8217;s the painkillers that really suck.  They basically do their job, but at the cost of mental acuity.  That is not a trade I&#8217;m happy to make.  Granted, there were some interesting physical hallucinations that came along for the ride, but that&#8217;s nowhere near enough to balance the scales.
</p>
<p>
Here&#8217;s what I mean on that last part.  At one point yesterday, lying in bed as I had been all day, I decided it was about time to straighten out my legs, which were crossed at the ankles and starting to feel a little funny.  When I sent the relevant signals to my legs, nothing really happened.  Slowly I came to realize that nothing was happening because my legs weren&#8217;t actually crossed at all.  Furthermore, it gradually dawned on me that if the sensoria I&#8217;d been getting had been correct, it would have to mean that my legs were not only crossed at the ankles, but also attached to my body backwards.
</p>
<p>
So anyway, I thought I&#8217;d write up some of my observations (thus far) regarding <a href="http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/">IE8 beta 1</a>.  What?
</p>
<p>
I&#8217;m going to say basically <a href="http://meyerweb.com/eric/thoughts/2006/02/03/charting-ie7b2/">the same thing I said about the first betas of IE7</a>: <strong>test and report, but don&#8217;t fix</strong>.  That is to say, you should absolutely grab it and run it across all your own sites, and all your common destinations.  Find out what&#8217;s different, broken, or just plain strange.
</p>
<p>
But don&#8217;t start searching for workarounds.  Not yet.  <a href="http://go.microsoft.com/fwlink/?LinkId=110518">Submit bug reports</a>, yes.  Boil down the problems you hit to basic test cases and submit those, if you like.  (I do like, but I&#8217;ve got kind of a history with that sort of thing.)  Just don&#8217;t think that beta 1 represents what we&#8217;ll face in the final release.
</p>
<p>
No, I don&#8217;t have some sort of inside track; never have.  That conclusion simply seems obvious to me just by looking at how this beta acts.  For example, there&#8217;s no support at all for <code>:first-line</code> and <code>:first-letter</code>.  That&#8217;s not just a glitch.  That&#8217;s a lack of support for a CSS feature that&#8217;s been present for three major releases.  I just can&#8217;t see that omission persisting to final release.
</p>
<p>
Another problem I noticed is evident here on the home page of meyerweb.  In the sidebar, each list item has a left margin and negative text indentation, creating a classic &#8220;outdent&#8221;.  Like so:
</p>

<pre>
#extra .panel li {margin-left: 1em; text-indent: -1em;}
</pre>

<p>
In each of those list items is a link of some kind, usually text.  The fun part is this: the hanging outdent part of that text isn&#8217;t clickable.  So the first couple of letters of each sidebar link are inactive.  They&#8217;re colored properly, but do nothing if you try to click them.  If you click on the active part of a link, the focus outline only draws around the active part.  And, for bonus yay, scrolling the page will wipe away any outdents that are offscreen.  So as you scroll down the page, you end up with all the sidebar links having their first few letters chopped off.  Whoops.
</p>
<p>
Again, that&#8217;s something I just can&#8217;t see going unaddressed in the final release.
</p>
<p>
In both these cases, flipping IE8 back to IE7 mode makes the weirdness go away.
</p>
<p>
I&#8217;ve seen more serious problems on the wider web.  Google Maps is currently busted beyond any hope of usefulness in IE8, as many have reported.  Also, I came across a site where loading the home page just locked up IE8 completely.  I had to force-quit and relaunch.  Every time I hit that page, lockup.
</p>
<p>
Flipping to IE7 mode allowed me to browse the site without any trouble at all.
</p>
<p>
These things, taken together, have really driven something home for me: there really is a new rendering engine in there.  I don&#8217;t just mean in the sense of fixing and adding enough things that the behavior is different.  I mean that I believe there&#8217;s truly a whole new engine under the hood of IE8.  And if the Acid 2 results and public statements of the IE team are to be believed, there&#8217;s a whole new <em>standards-based</em> rendering engine under that hood.
</p>
<p>
That&#8217;s kind of a big deal in any event.  The last time I remember a browser with an extended release history replacing its old, creaky, grown-over-time, crap-piled-on-crap engine with (what the browser team felt was) a new, improved one was the transition from Netscape 4.5 to Netscape 6.0.  And remember how well <em>that</em> went?  Yee haw.
</p>
<p>
I really shouldn&#8217;t be surprised about this.  Chris Wilson, for example, used the exact words &#8220;our new layout engine&#8221; <a href="http://www.webstandards.org/2008/02/24/wasp-round-table-ie8s-default-version-targeting-behavior/">during the WaSP roundtable</a> (<a href="http://www.glendathegood.com/wasp/transcript.html">transcript</a>).  I guess I&#8217;d been assuming that was verbal shorthand for &#8220;our much-improved version of our old layout engine&#8221;.  I guess I was wrong.
</p>
<p>
So I would personally argue that this release was mislabelled.  This is not a beta release.  As far as I&#8217;m concerned, it&#8217;s an alpha, even under the kinds of old-school naming conventions I prefer.  I&#8217;m not going to go around calling it that, because that would just be unnecessarily confusing, but it&#8217;s how I&#8217;m going to think of it.
</p>
<p>
Now I&#8217;m wondering just how long it will be until final release, given the kinds of distances one usually sees between alpha and final.
</p>
<p>
Unfortunately, I just took the 6pm set of painkillers, so I&#8217;ll be wondering at about one-third speed.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/03/23/drugs-bugs-and-ie8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Expressive Sculptor</title>
		<link>http://meyerweb.com/eric/thoughts/2008/03/06/expressive-sculptor/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/03/06/expressive-sculptor/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 16:34:45 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/03/06/expressive-sculptor/</guid>
		<description><![CDATA[
For those of you using Microsoft Expression Web, a free pre-release trial version of CSS Sculptor for Expression Web was announced by the WebAssist folks on Wednesday at MIX08.  So now you don&#8217;t have to put up with those snooty Dreamweaver users throwing you the m&#235;t&#228;l h&#246;rns every chance they get&#8212;throw &#8216;em right back! [...]]]></description>
			<content:encoded><![CDATA[<p>
For those of you using <a href="http://www.microsoft.com/expression/products/overview.aspx?key=web">Microsoft Expression Web</a>, a <a href=http://www.webassist.com/professional/products/productdetails.asp?PID=150&#038;RID=930">free pre-release trial version of CSS Sculptor for Expression Web</a> was announced by the <a href="http://webassist.com/">WebAssist</a> folks on Wednesday at <a href="http://visitmix.com/2008/default.aspx">MIX08</a>.  So now you don&#8217;t have to put up with those snooty Dreamweaver users throwing you the m&euml;t&auml;l h&ouml;rns every chance they get&#8212;throw &#8216;em right back!  <em>R&oslash;ck!</em>
</p>
<p>
If you&#8217;re curious about CSS Sculptor, I <a href="http://meyerweb.com/eric/thoughts/2007/08/23/css-sculptor-released/">posted in some detail about it</a> when it was first released in August 2007, and there&#8217;s of course plenty of enthusiastic copy about it <a href="http://www.webassist.com/professional/products/productdetails.asp?PID=150&amp;RID=930">on the WebAssist site</a>.
</p>
<p>
One thing that&#8217;s different about the Expression version as compared to the Dreamweaver version is that it doesn&#8217;t have an &#8220;Apply&#8221; button to apply the input CSS ito the preview window.  Instead, changes are instantly reflected in the little preview.  It&#8217;ll be interesting to see how users react to that, since it could mean that the previewed design shatters as the CSS is updated, and then snaps back together upon further changes.  Is that good or bad tool usability?  Hard to say; it could scare people into undoing the shatter-change and never pushing forward, but it could also help users more quickly gain a deeper understanding of CSS by seeing how things come apart and then go back together.  I guess we&#8217;ll find out!
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/03/06/expressive-sculptor/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Principles and Legality</title>
		<link>http://meyerweb.com/eric/thoughts/2008/03/04/principles-and-legality/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/03/04/principles-and-legality/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 14:29:32 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/03/04/principles-and-legality/</guid>
		<description><![CDATA[A little bit of divination over the reasons behind the change in version targeting.]]></description>
			<content:encoded><![CDATA[<p>
I woke up this morning (duh DAAAH dah DUH) and yesterday&#8217;s announcement was the first thing on my mind.  No doubt it&#8217;ll be a recurrent topic, at least for a little while.
</p>
<p>
One of the takeaways is what this change demonstrates about the IE team:  standards is and was their preferred default.  If it weren&#8217;t, they just would have found a way to square the IE7-default behavior with the <a href="http://www.microsoft.com/presspass/presskits/interoperability/default.mspx">Interoperability Principles</a> announced late last month (slightly tricky but entirely possible).  That they initially chose otherwise speaks volumes about the pressures they face internally, and their willingness to publicly change direction speaks volumes about their commitment to supporting standards.  While I&#8217;m sure community feedback informed their decision, they pretty much knew what the reaction would be from the get-go.  If that was going to be the deciding factor, they would&#8217;ve chosen differently up front.
</p>
<p>
So what drove that change?  I keep coming back to two things, both of which were explicitly mentioned in yesterday&#8217;s announcement.
</p>
<p>
The first is, perhaps obviously, the previously mentioned <a href="http://www.microsoft.com/interop/principles/default.mspx">Interoperability Principles</a>.  Head on over there and read Principle II, &#8220;Support for Standards&#8221;.  If that isn&#8217;t a solid foundation on which to build an internal case for change, I don&#8217;t know what is.  I&#8217;m wryly amused by the idea that the IE team used the Interoperability Principles as a way to batter their way out of the grip of those internal pressures I mentioned.  The former aikido student in me finds that very satisfying.  True, the Principles came under fire for being just another set of empty words, but it would seem that they can be used for at least some concrete good.
</p>
<p>
As for the second, there&#8217;s a phrase repeated between the two announcements that I didn&#8217;t quote yesterday because I was still pondering its meaning.  I&#8217;m still not <em>certain</em> about it, but having had a chance to sleep on it, my initial reading hasn&#8217;t changed, so I&#8217;m going to quote and comment on it now.  First, from <a href="http://www.microsoft.com/presspass/press/2008/mar08/03-03WebStandards.mspx">the press release</a>:
</p>

<blockquote cite="http://www.microsoft.com/presspass/press/2008/mar08/03-03WebStandards.mspx">
<p>
&#8220;While we do not believe there are currently any legal requirements that would dictate which rendering mode must be chosen as the default for a given browser, this step clearly removes this question as a potential legal and regulatory issue,&#8221; said Brad Smith, Microsoft senior vice president and general counsel.
</p>
</blockquote>

<p>
And then in <a href="http://blogs.msdn.com/ie/archive/2008/03/03/microsoft-s-interoperability-principles-and-ie8.aspx">Dean&#8217;s IEblog post</a>:
</p>

<blockquote cite="http://blogs.msdn.com/ie/archive/2008/03/03/microsoft-s-interoperability-principles-and-ie8.aspx">
<p>
While we do not believe any current legal requirements would dictate which rendering mode a browser must use, this step clearly removes this question as a potential legal and regulatory issue.
</p>
</blockquote>

<p>
Okay, so they&#8217;re on message.  And the message seems to be this: that <a href="http://www.opera.com/pressreleases/en/2007/12/13/">Opera&#8217;s move to link IE development to the larger EU anti-trust investigation</a> bore fruit.  I was <a href="http://meyerweb.com/eric/thoughts/2007/12/13/bad-timing/">highly critical</a> of that move, and unless I&#8217;m seriously misreading what I see here, I was wrong.  I&#8217;m still no fan of the tone that was used in announcing the move, but that&#8217;s window dressing.  Results matter most.
</p>
<p>
Speaking of Opera, there&#8217;s another side to all this that I find quite interesting.  So far, the reaction to Microsoft&#8217;s announcement has been overwhelmingly positive.  The sense I&#8217;ve picked up is, &#8220;Hooray! IE will act like browsers always have, and the problem is solved!&#8221;.
</p>
<p>
But is it?  The primary objection raised by Opera and several members of the community was that version targeting is an anti-competitive move, one which will force browser makers like Opera and authors of JavaScript libraries to support an ever-increasing and complex web (sorry) of rendering-engine behaviors in the market leader.  So far as I can tell, the change in default behavior does next to nothing to address that objection.  The various versions will still be there and still invoke-able by any page author who so chooses.  Yes, the default will be better for authors, but I don&#8217;t see how things get any better for Opera, Firefox, Safari, jQuery, Prototype, et. al.
</p>
<p>
Perhaps I&#8217;ve missed something basic (&#8221;Again!&#8221; shouts the chorus).  If so, what?  If not, then why all the hosannas?
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/03/04/principles-and-legality/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Meta-change</title>
		<link>http://meyerweb.com/eric/thoughts/2008/03/03/meta-change/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/03/03/meta-change/#comments</comments>
		<pubDate>Mon, 03 Mar 2008 23:03:08 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/03/03/meta-change/</guid>
		<description><![CDATA[Now here's something I didn't expect to see when I woke up this morning.]]></description>
			<content:encoded><![CDATA[<p>
Now here&#8217;s something I didn&#8217;t expect to see when I woke up this morning:
</p>
<p>
<strong>&#8220;<a href="http://www.microsoft.com/presspass/press/2008/mar08/03-03WebStandards.mspx">Microsoft Expands Support for Web Standards</a>: Company outlines new approach to make standards-based rendering the default mode in Internet Explorer 8, will work with Web designers and content developers to help with standards behavior transition.&#8221;</strong>
</p>
<p>
Seriously, that&#8217;s the title and subhead of Microsoft&#8217;s latest press release.
</p>
About halfway through, there&#8217;s this from Ray Ozzie:


<blockquote cite="http://www.microsoft.com/presspass/press/2008/mar08/03-03WebStandards.mspx">
<p>
&#8230;we have decided to give top priority to support for these new Web standards. In keeping with the commitment we made in our Interoperability Principles of being even more transparent in how we support standards in our products, we will work with content publishers to ensure they fully understand the steps we are taking and will encourage them to use this beta period to update their sites to transition to the more current Web standards supported by IE8.
</p>
</blockquote>

<p>
See also the IEblog entry <a href="http://blogs.msdn.com/ie/archive/2008/03/03/microsoft-s-interoperability-principles-and-ie8.aspx">Microsoft&#8217;s Interoperability Principles and IE8</a>, where Dean Hachamovitch says:
</p>

<blockquote cite="http://blogs.msdn.com/ie/archive/2008/03/03/microsoft-s-interoperability-principles-and-ie8.aspx">
<p>
Microsoft recently published a set of <a href="http://www.microsoft.com/presspass/presskits/interoperability/default.mspx">Interoperability Principles</a>. Thinking about IE8’s behavior with these principles in mind, interpreting web content in&nbsp;the most standards compliant way possible is a better thing to do.
</p>
<p>We think that acting in accordance with principles is important, and IE8’s default is a demonstration of the interoperability principles in action.
</p>
</blockquote>

<p>
In other words, the IE team seems to have used <a href="http://www.microsoft.com/presspass/press/2008/feb08/02-21ExpandInteroperabilityPR.mspx">recent Microsoft PR efforts</a> to their, and our, advantage.
</p>
<p>
I&#8217;m relieved and glad on the one hand, and a little worried on the other.  It&#8217;s not like the issues I discussed, or <a href="http://alistapart.com/articles/minorthreat">Jeffrey wrote about</a>, have gone away.  It&#8217;s just that the way in which they&#8217;re handled by IE has shifted&#8212;which in some ways is a <em>huge</em> difference.
</p>
<p>
I think what worries me most is the possibility that when the public beta hits, there will be enough incompatibility problems that pushback from other constiuencies forces a change back to the original behavior.  I hope not.  I hope that what will happen is that any problems that come up will be addressed by spreading the news far and wide that there&#8217;s a simple one-line fix for those sites.
</p>
<p>
I&#8217;m glad that IE will act as browsers have always done, and default to the latest and greatest in the absence of any explicit direction to the contrary.  I&#8217;m doubly glad that the IE team is willing to do that, even knowing what they have to handle.  And I&#8217;m triply glad that the proposal was made in public ahead of time, with plenty of opportunity for debate, so that we could have a chance to weigh in and affect the browser&#8217;s behavior.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/03/03/meta-change/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Common Bonds</title>
		<link>http://meyerweb.com/eric/thoughts/2008/02/19/common-bonds/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/02/19/common-bonds/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 19:28:29 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/02/19/common-bonds/</guid>
		<description><![CDATA[
A List Apart #253 brings the issue of version targeting back into the limelight with opposing-view pieces by Jeremy Keith and Jeffrey Zeldman.  (And I love the &#8220;Editor&#8217;s Choice&#8221; on this issue, J. David Eisenberg&#8217;s &#8220;&#8216;Forgiving&#8217; Browsers Considered Harmful&#8220;.)


I&#8217;m not going to comment on the views presented; both gentlemen do a fine job.  [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://alistapart.com/issues/253">A List Apart #253</a> brings the issue of version targeting back into the limelight with opposing-view pieces by Jeremy Keith and Jeffrey Zeldman.  (And I <strong>love</strong> the &#8220;Editor&#8217;s Choice&#8221; on this issue, J. David Eisenberg&#8217;s &#8220;<a href="http://alistapart.com/articles/forgiving">&#8216;Forgiving&#8217; Browsers Considered Harmful</a>&#8220;.)
</p>
<p>
I&#8217;m not going to comment on the views presented; both gentlemen do a fine job.  What I do wish to add, or perhaps to restate, is an observation about everyone interested in, and thinking or arguing about, this topic:
</p>
<p>
<em>We all care about the same thing.</em>
</p>
<p>
We all want to advance web standards.  We all want browsers to improve their support.  We all want better and more advanced specifications.  We all want to reduce inconsistencies.  We all want a better web.
</p>
<p>
The disagreement is over how best to get there given the situation we face now, as well as how we perceive that current situation.  A recurrent metaphor for me is that we&#8217;re a large group of pioneers trying to chart the best course through an unknown country, and there is disagreement on which route entails the least risk to the whole group.  Cross the desert or the mountains?  Traverse a swampy delta or a hilly forest?  Move through this valley or that one?
</p>
<p>
Sometimes what binds us is strong enough that the few differences seem sharper by comparison.  That shouldn&#8217;t keep us from remembering what we have in common, and the importance of that commonality.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/02/19/common-bonds/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Manhattan Problem</title>
		<link>http://meyerweb.com/eric/thoughts/2008/02/14/manhattan-problem/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/02/14/manhattan-problem/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 17:09:52 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Rants]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/02/14/manhattan-problem/</guid>
		<description><![CDATA[
It&#8217;s not every day I uncover a case involving the botched theft of information about nuclear weapons.


Here&#8217;s how it went down: in the infosthetics feed was an entry about a video regarding nuclear stockpiles around the world and the effects of a nuclear explosion in New York City.  The video was produced by Chimp [...]]]></description>
			<content:encoded><![CDATA[<p>
It&#8217;s not every day I uncover a case involving the botched theft of information about nuclear weapons.
</p>
<p>
Here&#8217;s how it went down: in the <a href="http://infosthetics.com/">infosthetics</a> feed was <a href="http://infosthetics.com/archives/2008/02/who_has_nuclear_weapons_movie.html">an entry about a video regarding nuclear stockpiles around the world and the effects of a nuclear explosion in New York City</a>.  The video was produced by <a href="http://chimponachain.com/" rel="nofollow">Chimp on a Chain</a> for <a href="http://goodmagazine.com/" rel="nofollow">Good Magazine</a>.
</p>
<p>
That&#8217;s a long-standing area of interest for me, so I watched it.  When I got to the New York City portion, something started to bother me beyond the obvious horror of the scenario.  The point of detonation, the explosive yield, the elapsed-time intervals, the radius distances&#8212;all seemed very familiar, like I&#8217;d seen them somewhere before.  And I had.
</p>
<p>
They were nearly all taken verbatim from <a href="http://www.atomicarchive.com/Example/Example1.shtml">the New York City scenario</a> found at the <a href="http://www.atomicarchive.com/">Atomic Archive</a>.  I could find only two differences.  The first is that the total death toll given in the video is slightly higher than that in the Atomic Archive&#8217;s scenario.  Otherwise, all the numbers matched up.
</p>
<p>
The second difference is really a major error on the part of the video&#8217;s makers: they <strong>dramatically</strong> under-represent the areas of damage.  For example, the ten-second ring&#8217;s (found at 2:33 in the movie) radius is labeled with the correct distance (2.5 miles) but the circle placed on the map is much, much too small to be 2.5 miles in radius.  The circle doesn&#8217;t even cover the breadth of Manhattan Island, whereas an accurate plot would have it stretch across the Hudson River on both sides into New Jersey and Long Island.  You can see this in <a href="http://www.atomicarchive.com/Example/Example5.shtml">part 5 of the Atomic Archive&#8217;s scenario</a>, or on <a href="http://meyerweb.com/eric/tools/gmap/hydesim.html?ll=-73.98635387420654,40.748687497557995&amp;yd=150">a HYDEsim plot of the same scenario</a>.
</p>
<p>
The video <strong>seriously</strong> misrepresents the area of damage that would result from such an incident, making it appear much smaller than it would be, and I just can&#8217;t fathom how or why they would get that so wrong.  Even assuming they mixed up the meanings of &#8220;radius&#8221; and &#8220;diameter&#8221; doesn&#8217;t appear to explain it.  The ring distances shown correspond to a <em>three-kiloton</em> explosion at most, not to 150KT.
</p>
<p>
That&#8217;s the botched part.  So where&#8217;s the theft?  There is no credit whatsoever given in the video for the material&#8217;s source.  There is a reference to the Archive on the video&#8217;s page at Good in the &#8220;Resources&#8221; box, but the material in the video has been used without permission&#8212;I checked this with the custodian of the Archive&#8212;as required by <a href="http://www.atomicarchive.com/Company/Company.shtml">the site&#8217;s policy</a>.  Even if one could argue this is a case of not needing permission on non-profit grounds, attribution is still required.
</p>
<p>
It would almost be worth subscribing to Good so that 100% of my payment could go to the non-profit of my choice, as the site promises, except I&#8217;m limited to their choices of non-profits and none of them appear to be charged with educating magazine publishers or video artists about the niceties of copyright law, intellectual property rights, or even just plain common courtesy.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/02/14/manhattan-problem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CSS Tools: Reset and Diagnostics</title>
		<link>http://meyerweb.com/eric/thoughts/2008/02/12/css-tools-reset-and-diagnostics/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/02/12/css-tools-reset-and-diagnostics/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 18:53:56 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/02/12/css-tools-reset-and-diagnostics/</guid>
		<description><![CDATA[
I&#8217;ve hinted and teased and promised, and I&#8217;ve yet to make good on any of it.  I&#8217;m sorry.  Can I make it up to you?


Okay, then, here you go: a permanent home for my reset styles.  It takes up residence in a new &#8220;CSS&#8221; subsection of the Toolbox section of the site, [...]]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve hinted and teased and promised, and I&#8217;ve yet to make good on any of it.  I&#8217;m sorry.  Can I make it up to you?
</p>
<p>
Okay, then, here you go: <a href="http://meyerweb.com/eric/tools/css/reset/">a permanent home for my reset styles</a>.  It takes up residence in a new &#8220;CSS&#8221; subsection of the <a href="http://meyerweb.com/eric/tools/">Toolbox section</a> of the site, along with my efforts to create <a href="http://meyerweb.com/eric/tools/css/diagnostics/">a generic set of diagnostic styles</a>.  In the case of the resets, I&#8217;ll increment the version number and date whenever I make changes, and probably maintain an archive of previous versions.  Not that I expect that to happen with any frequency, but you never know.
</p>
<p>
The diagnostics are a lot more experimental and thus aren&#8217;t so formal as to have things like version numbers.  If I change anything of specific interest there, I&#8217;ll try to write a post about it.  I should get around to writing about the shown-in-page stylesheet one of these days, though I figure anyone can view source and work out the particulars without too much effort.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/02/12/css-tools-reset-and-diagnostics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Non-Quotidian Problems</title>
		<link>http://meyerweb.com/eric/thoughts/2008/02/08/non-quotidian-problems/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/02/08/non-quotidian-problems/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 14:05:14 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/02/08/non-quotidian-problems/</guid>
		<description><![CDATA[After I published the latest iteration of the reset styles, Paul Chaplin pointed out that my simplification of the quote-suppressing rules actually broke the intended effect in Safari, Gecko variants, and so on.]]></description>
			<content:encoded><![CDATA[<p>
After I published the latest iteration of the reset styles, <a href="http://www.paulchaplin.com/">Paul Chaplin</a> pointed out that my simplification of the quote-suppressing rules actually broke the intended effect in Safari 2<del datetime="2008-02-08T21:39:14+00:00">, Gecko variants , and so on</del>.  This happened because I assumed support for <code>quotes: none</code>, and it just isn&#8217;t there in most browsers.  Apparently, I was testing <em>IN THE FUTURE!</em> that day.
</p>
<p>
&#8220;Well, no problem,&#8221; I thought to myself, &#8220;I&#8217;ll use <code>content: none</code> instead&#8221;.  Nope.  Even in browsers that support generated content, support for the <code>content</code> value <code>none</code> appears to have fallen through the cracks.  Using it completely fails to suppress the generation of content, so far as <a href="http://meyerweb.com/eric/css/tests/quote-suppress.html">my testing</a> can determine.  Even more amusingly, <code>content: normal</code> prevents the insertion of quotation marks in Camino (and probably other Geckos), but not Safari.
</p>
<p>
So we&#8217;re back to explicitly forcing the assignment of empty content boxes in order to stop the insertion of quote marks: <code>content: '';</code>.  Oh, joy.  Paul had <a href="http://www.paulchaplin.com/blog/css-reset-and-quirky-quotes">come to the same conclusion</a>, and worked out a nice little fallback set that reminds me of <a href="http://developer.mozilla.org/en/docs/Giving_'cursor'_a_Hand">the <code>cursor</code> trick</a> that gets you a hand-pointing icon in both IE and the rest of the world, only his trick is completely valid.  So I&#8217;ll be adding that in, along with some thanks to Paul.
</p>
<p>
For my next magic trick, maybe I&#8217;ll base a reset rule on <code>:nth-child()</code> and see what people invent to simulate the intended effect.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/02/08/non-quotidian-problems/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cleveland Web Standards Association</title>
		<link>http://meyerweb.com/eric/thoughts/2008/01/29/cleveland-web-standards-association/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/01/29/cleveland-web-standards-association/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 14:31:24 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Cleveland]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/01/29/cleveland-web-standards-association/</guid>
		<description><![CDATA[
Ladies and gentlemen, the Cleveland Web Standards Association.  Specifically, its brand-new web site, courtesy a small band of association members who worked together to design and develop it.  It&#8217;s a lovely little semantic number, chock full of microformats and member content aggregators.


In case you hadn&#8217;t heard about the CWSA yet and are wondering [...]]]></description>
			<content:encoded><![CDATA[<p>
Ladies and gentlemen, the <a href="http://clevelandwebstandards.org/">Cleveland Web Standards Association</a>.  Specifically, its brand-new web site, courtesy a small band of association members who worked together to design and develop it.  It&#8217;s a lovely little semantic number, chock full of <a href="http://microformats.org/">microformats</a> and member content aggregators.
</p>
<p>
In case you hadn&#8217;t heard about the <acronym title="Cleveland Web Standards Association">CWSA</acronym> yet and are wondering what the group is like, allow me to quote the About page:
</p>
<blockquote cite="http://clevelandwebstandards.org/about.html">
<p>The <acronym title="Cleveland Web Standards Association">CWSA</acronym> is an organization grounded on the premise of sharing information in a relaxed atmosphere. We hold monthly gatherings that include presentations on best practices in web development. The gatherings are open to any person interested in web design/development, no matter what their current skill level is.</p>
</blockquote>
<p>
This isn&#8217;t just a social club, though.  We&#8217;re not just sharing our skills with each other, but are also working to use those skills in the service of helping others.  I don&#8217;t want to steal any thunder, so if you want to find out the details, you&#8217;ll just have to come find out for yourself.
</p>
<p>
We&#8217;ll be having <a href="http://webdesign.meetup.com/396/calendar/7124837/">our next meeting</a> in a week, 5 February 2008, in our usual space at <a href="http://tri-c.edu/">Tri-C</a> (and many thanks to the college for giving us a home!).  This is definitely a meeting to make, because the topic will be the current and future direction of the association, including deciding the topics on which we want to have presentations and figuring out how best to use the raw talent and enthusiasm of the group for maximal good.  If you&#8217;re in the area, you should absolutely come check things out.  If you know someone in the area, kindly pass the word on to them.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/01/29/cleveland-web-standards-association/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Almost Target</title>
		<link>http://meyerweb.com/eric/thoughts/2008/01/24/almost-target/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/01/24/almost-target/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 22:12:11 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
		
		<category><![CDATA[Browsers]]></category>

		<category><![CDATA[History]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/2008/01/24/almost-target/</guid>
		<description><![CDATA[
I&#8217;d like to tell you a little story, if I may, from way, way back in 2002.  (The exact date is lost to the mists of time, but the year is pretty solid.)  Like a lot of stories, it&#8217;s little bit long; but unlike some stories, it&#8217;s true.


As the engineering staff at Netscape [...]]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;d like to tell you a little story, if I may, from way, way back in 2002.  (The exact date is lost to the mists of time, but the year is pretty solid.)  Like a lot of stories, it&#8217;s little bit long; but unlike some stories, it&#8217;s true.
</p>
<p>
As the engineering staff at Netscape prepared a new release of Mozilla, the browser off which we branched Navigator, those of us in the Technology Evangelism/Developer Support (TEDS) team were testing it against high-ranked and partner sites.  On a few of those sites, we discovered that layouts were breaking apart.  In one case, it did so quite severely.
</p>
<p>
It didn&#8217;t take much to see that the problem was with sliced images in layout tables.  For some reason, on some sites they were getting pushed apart.  After a bit of digging, we realized the reason: the Gecko engine had updated its line-layout model to be more compliant with the CSS specification.  Now images always sat on the baseline (unless otherwise directed) and the descender space was always preserved.
</p>
<p>
This was pretty new in browserdom, because every other browser did what browsers had always done: shrink-wrapped table cells to an image if there was no other cell content.  The only problem was that behavior was wrong.  Fixing the flaws in the CSS implementation in Gecko had broken these sites&#8217; layouts.  That is, it broke them in standards mode.  In quirks mode, Gecko rolled its behavior back to the old days and did the shrink-wrap thing.
</p>
<p>
We got in touch with the web team at one of the affected sites, a very prominent social networking site (of a sort) of the day, and explained the situation.  We already knew they couldn&#8217;t change their DOCTYPE to trigger quirks mode, because that would break other things they were doing.  We couldn&#8217;t offer them a simple CSS fix like <code>td img {vertical-align: bottom;}</code>, because their whole layout was in tables and that would throw off the placement of all their images, not just the sliced ones.  All we could offer was an explanation of the problem and to recommend they <code>class</code> all of their sliced images and use CSS to bottom them out, with assurances that this would cause no change in other browsers.
</p>
<p>
Their response was, in effect:  &#8220;No.  This is your problem.  Every other browser gets this right, and we&#8217;re not mucking around in our templates and adding classes all over just because you broke something.&#8221;
</p>
<p>
The truth, of course, was that we were actually <em>fixing</em> something, and every other browser got this <em>wrong</em>.  The truth was not relevant to our problem.  It seemed we had a choice: we could back out the improvement to our handling of the CSS specification; or we could break the site and all the other sites like it, which at the time were many.  Neither was really palatable.  And word was we could not ship without fixing this problem, whether by getting the site updated or the browser changed.  Those were the options.
</p>
<p>
Let me reiterate the situation we faced.  We:
</p>

<ol>
<li>Had improved standards support in the browser, and then</li>
<li>Found sites whose layouts broke as a result</li>
<li>Whose developers point-blank refused to alter their sites</li>
<li>And we had to fix the problem</li>
</ol>

<p>
We couldn&#8217;t back out the improvement; it affected all text displayed in the browser and touched too many other things.  We couldn&#8217;t make the site&#8217;s web team change anything, no matter how many times we told them this was part of the advance of web standards and better browser behavior.  Two roads diverged in a yellow web, and we could choose neither.
</p>
<p>
So we found a third way: <a href="http://developer.mozilla.org/en/docs/Gecko%27s_Almost_Standards_Mode">&#8220;almost standards&#8221; mode</a>, a companion to the usual modes of quirks and standards.  Yes, this is the reason why &#8220;almost standards&#8221; mode exists.  If I remember the internal argument properly, its existence is largely my fault; so to everyone who&#8217;s had to implement an &#8220;almost standards&#8221; mode in a non-Gecko browser in order to mirror what we did, I&#8217;m sorry.
</p>
<p>
We made &#8220;almost standards&#8221; mode apply to the DOCTYPE found on the offending site&#8212;an XHTML DOCTYPE, I should point out.  While we were at it, we rolled in IBM&#8217;s custom DTD.  They were using it make their site validate while doing all kinds of HTML-invalid stuff, and they were experiencing the same layout problem.  And lo: a third layout mode was born.  All because some sites were badly done and would not update to accommodate our improvements.  We did it so as not to break a small (but popular) portion of the web while we advanced our standards support.
</p>
<p>
(By the way, it was this very same incident that gave birth to the article &#8220;<a href="http://developer.mozilla.org/en/docs/Images,_Tables,_and_Mysterious_Gaps">Images, Tables, and Mysterious Gaps</a>&#8220;.)
</p>
<p>
Now take that situation and multiply it by a few orders of magnitude, and you get an idea of what the IE team faces.  It&#8217;s right where we were at Netscape: caught between our past mistakes and a site&#8217;s refusal to accommodate our desire to improve support for open standards.
</p>
<p>
Some have said that Microsoft is in a unique position to take leadership and spread the news of improved standards and updating old sites to its customers.  That&#8217;s true.  But what happens when a multi-billion dollar partner corporation refuses to update and demands, under the terms of its very large service contract and its very steep penalty clauses, that a new version of IE not break (for whatever value of &#8220;break&#8221; you like) its corporate intranet, or its public e-commerce site?  It only takes one to create a pretty large roadblock.
</p>
<p>
For all we did in publishing great content to DevEdge, proactively helping sites to update their markup and CSS and JS to work with Gecko (while not breaking in other browsers), and helping guide the improvement of standards support in Gecko, we could not overcome this obstacle.  We had to work around it.
</p>
<p>
Looking back on it now, it&#8217;s likely this experience subconsciously predisposed me to eventually accept the version targeting proposal, because in a fairly substantial way, it&#8217;s what we did to Mozilla under similar conditions.  We just did it in a much more obscure and ultimately fragile manner, tying it to certain DOCTYPEs instead of some more reliable anchor.  If we could have given that site (all those sites) an easy way to say &#8220;render like Mozilla 0.9&#8243; (or whatever) at the top of every page, or in the server headers, they might have taken it.
</p>
<p>
But had we offered and they refused, putting us back to the choice of backing out the improvements or changing the browser, would we have set things up to default to the specific, known version of Mozilla instead of the latest and greatest?  The idealist in me likes to think not.  The pragmatist in me nods yes.  What else could we have done in that circumstance?  Shipped a browser that broke a top-ten site on the theory that once it was in the wild, they&#8217;d acquiesce?  Even knowing that this would noticeably and, in a few cases, seriously degrade the browsing experience for <em>our</em> users?  No.  We&#8217;d have shipped without the CSS improvement, or we&#8217;d have put in the targeting with the wrong default.  We didn&#8217;t have version targeting, but we still made the same choice, only we hinged it on the DOCTYPE.
</p>
<p>
A short-term fix for a short-term problem: yes.  Yet had we not done it, how long would Netscape/Mozilla&#8217;s standards support have suffered, waiting for the day that we could add that improvement back in without breaking too many sites that too many people would notice?  Years, possibly.  So we put in a badly implemented type of version targeting, which allowed us to improve our standards support more quickly than we otherwise would have, and it has been with us for the more than half a decade since.
</p>
<p>
So maybe I&#8217;m more sympathetic to the IE predicament and their proposed solution because I&#8217;ve been there and done it already.  Not to nearly the same degree, but the dilemma seemed no less daunting for all the difference in scale.  It&#8217;s something worth keeping in mind while evaluating what I&#8217;ve said on this topic, and whatever I will say in the future.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/01/24/almost-target/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
