<?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>Thoughts From Eric &#187; (X)HTML</title>
	<atom:link href="http://meyerweb.com/eric/thoughts/category/tech/xhtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://meyerweb.com/eric/thoughts</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it&#039;s largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<lastBuildDate>Fri, 25 May 2012 13:41:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Element Customization</title>
		<link>http://meyerweb.com/eric/thoughts/2012/04/10/element-customization/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/04/10/element-customization/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 20:16:21 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1759</guid>
		<description><![CDATA[A couple of weeks back I wrote about <a href="http://meyerweb.com/eric/thoughts/2012/03/28/customizing-your-markup/">customizing your markup</a>, but I got an important bit wrong and while I’ve corrected the post, I wanted to clear up the error in detail.]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks back I wrote about <a href="http://meyerweb.com/eric/thoughts/2012/03/28/customizing-your-markup/">customizing your markup</a>, but I got an important bit wrong and while I’ve corrected the post, I wanted to clear up the error in detail.</p>

<p>I said that you wrap portions of your document (or the whole thing) in an <code>element</code> element and use the customized element inside.  <strong>This is incorrect</strong>, and actually a very bad idea.  In fact, you define your customized elements using an <code>element</code> element and then use the customized elements later in the document.  Something like this:</p>

<pre><code>&lt;element extends=&quot;h1&quot; name=&quot;x-superh1&quot;&gt;
&lt;/element&gt;

&lt;h1 is=&quot;superh1&quot;&gt;UltraMegaPower!!!&lt;/h1&gt;
&lt;h1&gt;Regular Old Power&lt;/h1&gt;
</code></pre>

<p>The line break inside the <code>element</code> element isn’t required—I just threw it in for clarity.</p>

<p>The <code>element</code> element can optionally contain template markup, but I honestly don’t understand that part of it yet.  I get the general idea, but I haven’t crawled through the specifics long enough to have really internalized all the fiddly bits.  And as we all know by know, the fiddly bits are where understanding lives and dies.  (Also where the Devil hangs out, or so I’ve been told.)</p>

<p>I still firmly believe that all this papers over a much bigger problem, which is the arbitrary barrier to devising and using actual custom elements (as opposed to customized existing elements).  HTML5 already allows you to make up your own bits of language: you can make up any attribute you want as long as your preface the name with <code>data-</code>.  Okay, so that’s a little bit clumsy naming-wise, but the capability is there.  You don’t have to register your attributes, or declare them in a list, or any of that other stuff.  You just make up <code>data-timing</code> or <code>data-proglang</code> or <code>data-sttngcharacter</code> on the spot and off you go.</p>

<p>This is not possible for elements.  You can’t even make up a prefixed element name, whether it’s <code>data-kern</code> or <code>x-kern</code> or even <code>xkern</code> (to avoid the limitation that hyphens aren’t allowed in element names).  You just can’t devise your own elements.  The best you can do is use the <code>element</code> element to sprinkle some semantic dust bunnies on top of elements that already exist.</p>

<aside><p>(Aside in an <code>aside</code>: I’m not sure I’m ever going to get tired of saying “the <code>element</code> element”, but I sure am going to grow weary of typing it.)</p></aside>

<p>Of course, all this “you can’t” and “not possible”&nbsp;applies to the specification.  Browsers will let you feed them any old element name and style it, script it, whatever.  Some say that’s more than enough.  If the browser lets you do it, why let the specification hold you back?  And of course, that’s how most people will approach the situation.</p>

<p>To someone like me, though, who spent years (<em>literal</em> years) explaining to web folk the world over that just because Internet Explorer for Windows let you write <code>width: 12 px</code>, actually writing it was still a bad idea—well, those habits die hard.  Just doing stuff because the browser let you do it is not always a good idea.  In fact, more often than not it’s a bad idea.</p>

<p>None of that really matters, as I say, because people are going to inject their own elements into their markup.  They’ll do it because it’s easier than thinking about the proper element to use, or they’ll do it because no appropriate element yet exists, or for some other reason.  That’s why the HTML5 specification ought to include the ability to do it, so that we have a paved path and defined best practices.  The capability is useful, as the <code>data-</code> attribute feature demonstrates.  If there’s a good, solid technical reason why extending that customization from attributes to elements is not desirable, I’d really like to know what it is.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/04/10/element-customization/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Customizing Your Markup</title>
		<link>http://meyerweb.com/eric/thoughts/2012/03/28/customizing-your-markup/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/03/28/customizing-your-markup/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 14:55:49 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Microformats]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1713</guid>
		<description><![CDATA[HTML5 allows you (at the moment) to create your own custom elements.  Only, not really.]]></description>
			<content:encoded><![CDATA[<p>So HTML5 allows you (at the moment) to create your own custom elements.  Only, not really.</p>

<p><em>(Ed. note: this post has been corrected since its publication, and <a href="http://meyerweb.com/eric/thoughts/2012/04/10/element-customization/">a followup clarification has been posted</a>.)</em></p>

<p>Suppose you’re creating a super-sweet JavaScript library to improve text presentation—like, say, <a href="http://typebutter.com/">TypeButter</a>—and you need to insert a bunch of elements that won’t accidentally pick up pre-existing CSS.  That rules <code>span</code> right out the door, and anything else would be either a bad semantic match, likely to pick up CSS by mistake, or both.</p>

<p>Assuming you don’t want to spend the hours and lines of code necessary to push ahead with <code>span</code> and a whole lot of dynamic CSS rewriting, the obvious solution is to invent a new element and drop that into place.  If you’re doing kerning, then a <code>kern</code> element makes a lot of sense, right?  Right.  And you can certainly do that in browsers today, as well as years back.  Stuff in a new element, hit it up with some CSS, and you’re done.</p>

<p>Now, how does this fit with the HTML5 specification?  Not at all well.  HTML5 does <em>not</em> allow you to invent new elements and stuff them into your document willy-nilly.  You can’t even do it with a prefix like <code>x-kern</code>, because hyphens aren’t valid characters for element names (unless I read <a href="http://www.w3.org/TR/html5/syntax.html#syntax-tag-name">the rules</a> incorrectly, which is always possible).</p>

<p>No, here’s what you do instead <ins datetime="2012-04-10T18:58:15+00:00">(corrected 10 Apr 12)</ins>:</p>

<ol>
<li><del datetime="2012-04-10T18:58:15+00:00">Wrap your document, or at least the portion of it where you plan to use your custom markup,</del><ins datetime="2012-04-10T18:58:15+00:00">Define the element customization you want</ins> with an <code>element</code> element.  That’s not a typo.</li>
<li>To your <code>element</code> element, add an <code>extends</code> attribute whose value is the HTML5 element you plan to extend.  We’ll use <code>span</code>, but you can extend any element.</li>
<li>Now add a <code>name</code> attribute that names your custom “element” name, like <code>x-kern</code>.</li>
<li>Okay, you’re ready!  Now anywhere you want to add a customized element, drop in the elements named by <code>extends</code> and then supply the <code>name</code> via an <code>is</code> attribute.</li>
</ol>

<p>Did you follow all that?  No?  Okay, maybe this will make it a bit less unclear.  <ins datetime="2012-04-10T18:58:15+00:00">(Note: the following code block was corrected 10 Apr 12.)</ins></p>

<pre><code>&lt;element extends="span" name="x-kern"&gt;&lt;/element&gt;
&lt;h1&gt;
&lt;span is="x-kern" style="…"&gt;A&lt;/span&gt;
&lt;span is="x-kern" style="…"&gt;u&lt;/span&gt;
&lt;span is="x-kern" style="…"&gt;t&lt;/span&gt;
&lt;span is="x-kern" style="…"&gt;u&lt;/span&gt;
mn
&lt;/h1&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
</code></pre>

<p>(Based on markup taken from the <a href="http://typebutter.com/demo/">TypeButter demo page</a>.  I simplified the inline <code>style</code> attributes that TypeButter generates for purposes of clarity.)</p>

<p>So that’s <a href="http://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html#custom-element-section">how you create “custom elements” in HTML5 as of now</a>.  Which is to say, you don’t.  All you’re doing is attaching a label to an existing element; you’re sort of customizing an existing element, not creating a customized element.  That’s not going to help prevent CSS from being mistakenly applied to those elements.</p>

<p>Personally, I find this a really, really, <em>really</em> clumsy approach—so clumsy that I don’t think I could recommend its use.  Given that browsers will accept, render, and style arbitrary elements, I’d pretty much say to just go ahead and do it.  Do try to name your elements so they won’t run into problems later, such as prefixing them with an “x” or your username or something, but since browsers support it, may as well capitalize on their capabilities.</p>

<p>I’m not in the habit of saying that sort of thing lightly, either.  While I’m not the wild-eyed standards-or-be-damned radical some people think I am, I have always striven to play within the rules when possible.  Yes, there are always situations where you work counter to general best practices or even the rules, but I rarely do so lightly.  As an example, my co-founders and I went to some effort to play nice when we created the principles for <a href="http://microformats.org/">Microformats</a>, segregating our semantics into attribute values—but only because <a href="http://tantek.com/" rel="friend colleague muse met">Tantek</a>, <a href="http://ma.tt/" rel="friend met">Matt</a>, and I cared a <em>lot</em> about long-term stability and validation.  We went as far as necessary to play nice, and not one millimeter further, and all the while we wished mightily for the ability to create custom attributes and elements.</p>

<p>Most people aren’t going to exert that much effort: they’re going to see that something works and never stop to question if what they’re doing is valid or has long-term stability.  “If the browser let me do it, it must be okay” is the background assumption that runs through our profession, and why wouldn’t it?  It’s an entirely understandable assumption to make.</p>

<p>We need something better.  My personal preference would be to expand the “<a href="http://www.w3.org/TR/html5/syntax.html#foreign-elements">foreign elements</a>” definition to encompass any unrecognized element, and let the parser deal with any structural problems like lack of well-formedness.  Perhaps also expand the rules about element names to permit hyphens, so that we could do things like <code>x-kern</code> or <code>emeyer-disambiguate</code> or whatever.  I could even see my way clear to defining an way to let an author list their customized elements.  Say, something like <code>&lt;meta name=&quot;custom-elements&quot; content=&quot;kern lead follow embiggen shrink&quot;/&gt;</code>.  I just made that up off the top of my head, so feel free to ignore the syntax if it’s too limiting. The general concept is what’s important.</p>

<p>The creation of customized elements isn’t a common use case, but it’s an incredibly valuable ability, and people are going to do it.  They’re <em>already</em> doing it, in fact.  It’s important to figure out how to make the process of doing so simpler and more elegant.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/03/28/customizing-your-markup/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Invented Elements</title>
		<link>http://meyerweb.com/eric/thoughts/2012/03/23/invented-elements/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/03/23/invented-elements/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 14:16:58 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1703</guid>
		<description><![CDATA[This morning I caught <a href="https://twitter.com/#!/fontdeck/status/183176353347153920">a pointer</a> to <a href="http://typebutter.com/">TypeButter</a>, and I’m very interested by how TypeButter accomplishes its kerning.]]></description>
			<content:encoded><![CDATA[<p>This morning I caught <a href="https://twitter.com/#!/fontdeck/status/183176353347153920">a pointer</a> to <a href="http://typebutter.com/">TypeButter</a>, which is a jQuery library that does “optical kerning” in an attempt to improve the appearance of type.  I’m not going to get into its design utility because I’m not qualified; I only notice kerning either when it’s set insanely wide or when it crosses over into <a href="http://www.ironicsans.com/2008/02/idea_a_new_typography_term.html">keming</a>.  I suppose I’ve been looking at web type for so many years, it looks normal to me now.  (Well, <em>almost</em> normal, but I’m not going to get into my personal typographic idiosyncrasies now.)</p>

<p>My reason to bring this up is that I’m very interested by how TypeButter accomplishes its kerning: it inserts <code>kern</code> elements with inline <code>style</code> attributes that bear <code>letter-spacing</code> values.  Not <code>span</code> elements, <code>kern</code> elements.  No, you didn’t miss an HTML5 news bite; there is no <code>kern</code> element, nor am I aware of a plan for one.  TypeButter basically invents a specific-purpose element.</p>

<p>I believe I understand the reasoning.  Had they used <code>span</code>, they would’ve likely tripped over existing author styles that apply to <code>span</code>.  Browsers these days don’t really have a problem accepting and styling arbitrary elements, and any that do would simply render type their usual way.  Because the markup is script-generated, markup validation services don’t throw conniption fits.  There might well be browser performance problems, particularly if you <a href="http://cdn.memegenerator.net/instances/400x/17134306.jpg">optically kern <strong>all</strong> the things</a>, but used in moderation (say, on headings) I wouldn’t expect too much of a hit.</p>

<p>The one potential drawback I can see, as <a href="https://twitter.com/#!/jaffathecake/status/183183488550318080">articulated by Jake Archibald</a>, is the possibility of a future <code>kern</code> element that might have different effects, or at least be styled by future author CSS and thus get picked up by TypeButter’s <code>kern</code>s.  The currently accepted way to avoid that sort of problem is to prefix with <code>x-</code>, as in <code>x-kern</code>.  Personally, I find it deeply unlikely that there will ever be an official <code>kern</code> element; it’s too presentationally focused.  But, of course, one never knows.</p>

<p>If TypeButter shifted to generating <code>x-kern</code> before reaching v1.0 final, I doubt it would degrade the TypeButter experience at all, and it would indeed be more future-proof.  It’s likely worth doing, if only to set a good example for libraries to follow, unless of course there’s downside I haven’t thought of yet.  It’s definitely worth discussing, because as more browser enhancements are written, this sort of issue will come up more and more.  Settling on some community best practices could save us some trouble down the road.</p>

<p><strong>Update 23 Mar 12:</strong> it turns out custom elements are not as simple as we might prefer; see <a href="http://meyerweb.com/eric/thoughts/2012/03/23/invented-elements/?#comment-653402">the comment below</a> for details.  That throws a fairly large wrench into the gears, and requires further contemplation.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/03/23/invented-elements/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>My Own Private HTML5 Survey</title>
		<link>http://meyerweb.com/eric/thoughts/2011/04/14/my-own-private-html5-survey/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/04/14/my-own-private-html5-survey/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 16:31:24 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1516</guid>
		<description><![CDATA[Here's a sampling of sites using HTML5, listed in no particular order, with a few notes.]]></description>
			<content:encoded><![CDATA[<p>Yesterday, <a href="http://petitepurls.com/">Brandy Fortune</a> asked me on Twitter if there are &#8220;<a href="http://twitter.com/#!/pixiepurls/status/58166180480942080">any major sites written in HTML 5 now</a>&#8220;.  I decided to <a href="http://twitter.com/#!/meyerweb/status/58270839484846080">throw the question to my Twitter gang</a>, and was of course immediately deluged in answers.  Also a small helping of standards politics, which  wasn&#8217;t really what I was after but probably should have known was inevitable.  <i>Le sigh.</i></p>

<p>Anyway, here&#8217;s a sampling of the sites most frequently mentioned and how they&#8217;re using HTML5, listed in no particular order.</p>

<h4>Using new-to-HTML5 markup (and DOCTYPE)</h4>

<ul>
<li><a href="http://mailchimp.com/">MailChimp</a></li>
<li><a href="http://slashdot.org/">slashdot</a></li>
<li><a href="http://barackobama.com/">Obama for America</a></li>
<li><a href="http://about.com/">About</a></li>
<li><a href="http://unilever.com/">Unilever</a></li>
<li><a href="http://myspace.com/">Myspace</a></li>
<li><a href="http://sencha.com/">Sencha</a></li>
<li><a href="http://nikebetterworld.com/">Nike Better World</a></li>
<li><a href="http://apple.com/">Apple</a></li>
<li><a href="http://www.thekillersmusic.com/">The Killers</a></li>
<li><a href="http://www.theglobeandmail.com/">The GLobe and Mail</a></li>
<li><a href="http://youtube.com/">YouTube</a> &#8211; Basically only the <code>video</code> element, and that only if you&#8217;ve <a href="http://youtube.com/html5/">enrolled in the HTML5 trial</a>.</li>
</ul>

<h4>Using HTML5 DOCTYPE but no apparent new-to-HTML5 markup</h4>

<ul>
<li><a href="http://google.com/">Google</a></li>
<li><a href="http://usa.gov/">USA.gov</a></li>
<li><a href="http://digg.com/">Digg</a></li>
<li><a href="http://yahoo.com/">Yahoo</a> &#8211; I&#8217;m told that Yahoo! Mail uses HTML5 features but I&#8217;m not a user so I can&#8217;t verify that.</li>
<li><a href="http://flickr.com/">Flickr</a></li>
<li><a href="http://netflix.com/">Netflix</a></li>
</ul>

<p>And then there&#8217;s <a href="http://facebook.com/">Facebook</a>.  Rumor has it they&#8217;re using HTML5 features like the History API while still bearing an XHTML DOCTYPE.  I was also told they use <code>video</code> but all the videos I saw were Flash-based.  It&#8217;s possible that more is going on—who knows, maybe Farmville is all HTML5 now—but I was only willing to put up with the user experience for so long.</p>

<p>Some notes: </p>

<ul>
<li>I didn&#8217;t run a spider script to verify which HTML5 elements, if any, were being used on a site.  Instead I surfed around using a user stylesheet that highlights HTML5 elements and looked for dashed red outlines.  If they were there, the site got &#8220;uses HTML5 markup&#8221;.  If I didn&#8217;t see any, then &#8220;no apparent HTML5 markup&#8221;.  This may mean I miscategorized a site or two, in which case sorry.  Even if not, these lists won&#8217;t stay current for more than a couple of weeks, so regard this as a single snapshot in time, not the whole movie.</li>
<li>In my limited and purely anecdotal peerings, far and away the most commonly-used HTML5 element was <code>section</code>.  <code>nav</code> appeared to run a distant second.</li>
<li>Any site that uses font replacement is using HTML5: <code>canvas</code>.  I didn&#8217;t list such sites, so bear that in mind.  (Sorry, <a href="http://beano.com/">Beano</a>.)  I just hope such sites change their DOCTYPEs to match.</li>
<li>I did not list any site that lacked a DOCTYPE.  I don&#8217;t care if the HTML5 DOCTYPE is optional, that doesn&#8217;t mean any DOCTYPE-less page is using HTML5.  Or, if it does, my next step is to write a MeyerHTML DTD with an optional DOCTYPE and then charge you all $1 per site for using invalid markup in violation of the terms of the DTD&#8217;s license.  And then I&#8217;m buying an island.  Oahu seems nice.</li>
</ul>

<p>Comments are switched off for once partly because I don&#8217;t really want another faceful of politics right now, and partly because attempts to post links to other HTML5 sites will end up in the spam trap and frustrate posters.  Feel free to go nuts on your own sites, of course.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/04/14/my-own-private-html5-survey/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Same As It Ever Was</title>
		<link>http://meyerweb.com/eric/thoughts/2011/03/07/same-as-it-ever-was/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/03/07/same-as-it-ever-was/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 19:09:34 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1488</guid>
		<description><![CDATA[I recently became re-acquainted with a ghost, and it looked very, very familiar.]]></description>
			<content:encoded><![CDATA[<p>
I recently became re-acquainted with a ghost, and it looked very, very familiar.  In the spring of 1995, just over a year into my first Web gig and still just over a year away from first encountering CSS, I wrote the following:
</p>

<blockquote>
<h4>Writing to the Norm</h4>
<p>
No, not the fat guy on &#8220;Cheers.&#8221;  Actually, it&#8217;s a fundamental issue every Web author needs to know about and appreciate.
</p>
<p>
Web browsers are written by different people.  Each person has their own idea about how Web documents should look.  Therefore, any given Web document will be displayed differently by different browsers.  In fact, it will be displayed differently by different copies of the <i>same</i> browser, if the two copies have different preferences set.
</p>
<p>
Therefore, you need to keep this principle foremost in your mind at all times: <i>you cannot guarantee that your document will appear to other people exactly as it does to you.</i>  In other words, <b>don&#8217;t</b> fall into the trap of obsessively re-writing a document just to get it to &#8220;fit on one screen,&#8221; or so a line of text is exactly &#8220;one screen wide.&#8221;   This is as pointless as trying to take a picture that will always be one foot wide, no matter how big the projection screen. Changes in font, font size, window size, and so on will all invalidate your attempts.
</p>
<p>
On the other hand, you want to write documents which look acceptable to most people.  How?  Well, it&#8217;s almost an art form in itself, but my recommendation is that you assume that most people will set their browser to display text in a common font such as Times at a point size of somewhere between 10 and 15 points.  While you shouldn&#8217;t spend your time trying to precisely engineer page arrangement, you also shouldn&#8217;t waste time worrying about how pages will look for someone whose display is set to 27-point Garamond.
</p>
</blockquote>

<p>That&#8217;s from &#8220;Chapter 1: Terms and Concepts&#8221; of <cite>Introduction to HTML</cite>, my first publication of note and the first of three tutorials dedicated to teaching HTML in a friendly, interactive manner.  The tutorials were taken down a couple of years ago by their host organization, which made me a bit sad even though I understood why they didn&#8217;t want to maintain the pages (and deal with the support e-mail) any longer.</p>

<p>However, thanks to a colleague&#8217;s help and generosity I recently came into possession of copies of all three.  I&#8217;m still pondering what to do about it.  To put them back on the web would require a bit more work than just tossing them onto a server, and to make the quizzes fully functional would take yet more work, and after all this time some of the material is obsolete or even potentially misleading.  Not to mention the page is laid out using a table (woo 1995!).  On the other hand, they&#8217;d make an interesting historical document of sorts, a way to let you young whippersnappers know what it was like in the old days.</p>

<p>Reading through them, now sixteen years later, has been an interesting little trip down memory lane.  What strikes me most, besides the fact that my younger self was a better writer than my current self, is how remarkably stable the Web&#8217;s fluidity has been over its lifetime.  Yes, the absence of assuredly-repeatable layout is a core design principle, but it&#8217;s also the kind of thing that tends to get engineered away, particularly when designers and the public both get involved.  Its persistence hints that it&#8217;s something valuable and even necessary.  If I had to nominate one thing about the Web for the title of &#8220;Most Under-appreciated&#8221;, I think this would be it.</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/03/07/same-as-it-ever-was/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Web 2.0 Talk: HTML5 vs. Flash</title>
		<link>http://meyerweb.com/eric/thoughts/2010/05/07/web-2-0-talk-html5-vs-flash/</link>
		<comments>http://meyerweb.com/eric/thoughts/2010/05/07/web-2-0-talk-html5-vs-flash/#comments</comments>
		<pubDate>Fri, 07 May 2010 17:04:18 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1339</guid>
		<description><![CDATA[Earlier this week I presented a talk at the <a href="http://www.web2expo.com/webexsf2010/">Web 2.0 Expo</a> titled "<a href="http://www.web2expo.com/webexsf2010/public/schedule/detail/14799">HTML5 vs. Flash: Webpocalypse Now?</a>" which seemed to be pretty well received.]]></description>
			<content:encoded><![CDATA[<p>
Earlier this week I presented a talk at the <a href="http://www.web2expo.com/webexsf2010/">Web 2.0 Expo</a> titled &#8220;<a href="http://www.web2expo.com/webexsf2010/public/schedule/detail/14799">HTML5 vs. Flash: Webpocalypse Now?</a>&#8221; which seemed to be pretty well received.  That might be because I did my best to be unbiased about the situation both now and into the future, and also that the audience was <em>very</em> heavily weighted toward web stack practitioners.  Seriously, out of 100-150 audience members, about six raised their hand when I asked who was developing with Flash.
</p>
<p>
Many people have asked if the slides will be available.  Indeed so:  head on over to <a href="http://www.web2expo.com/webexsf2010/">the session page</a>, which I encourage attendees of the talk to visit so that you can leave a rating or comment on the session.  The 5.4MB PDF of my Keynote slides is available there whether you attended or not.
</p>
<p>
While I was at the conference I was also interviewed by <a href="http://www.macslocum.com/" rel="met">Mac Slocum</a> on the topics of the HTML and Flash, and that&#8217;s been <a href="http://www.youtube.com/watch?v=klew_J6M2yg">put up on YouTube</a> along with interviews with Brady Forrest and Ge Wang (both of whom are <em>awesome</em>).  I haven&#8217;t watched it so I don&#8217;t know how dorky I come off but I&#8217;ll bet it&#8217;s pretty dorky.
</p>
<p>
I indulged in a little good-natured ribbing of Adobe at the front of the interview (I kid <em>because</em> I love!) but the rest of it is, as best I recall, a decent distillation of my views.  I&#8217;m hoping to get a few more detailed thoughts written and published here in the next week or two.
</p>
<p>
Many thanks to <a href="http://radar.oreilly.com/brady/" rel="met">Brady Forrest</a> and <a href="http://www.web2expo.com/webexsf2010/public/content/meet-the-team">the entire Web 2.0 crew</a> for having me on stage and getting me out to San Francisco.  It&#8217;s always a great place to visit.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2010/05/07/web-2-0-talk-html5-vs-flash/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>MIX Judging</title>
		<link>http://meyerweb.com/eric/thoughts/2010/01/22/mix-judging/</link>
		<comments>http://meyerweb.com/eric/thoughts/2010/01/22/mix-judging/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 20:50:25 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1242</guid>
		<description><![CDATA[MIX is having a 10K contest, HTML 5 is one of the allowed formats, and I'm a contest judge.]]></description>
			<content:encoded><![CDATA[<p>
I was recently honored to be asked to be a judge for the <a href="http://mix10k.visitmix.com/">MIX 10k Smart Coding Challenge</a>, running in conjunction with Microsoft&#8217;s <a href="http://visitmix.com/">MIX conference</a>.  The idea is to create a really great web application that totals no more than 10KB in its unzipped state.
</p>
<p>
Why did I agree to participate?  As much as I&#8217;d like to say &#8220;<a href="http://www.penny-arcade.com/comic/2000/10/23/">fat sacks of cash</a>&#8220;, that wasn&#8217;t it at all.  (Mostly due to the distinct lack of cash, sacked or otherwise.  Sad face.)  The <a href="http://mix10k.visitmix.com/Terms#4">contest&#8217;s entry requirements</a> actually say it for me.  In excerpted form:
</p>

<ul>
<li>The entry MUST use one or more of the following technologies: Silverlight, Gestalt or HTML5&#8230;</li>
<li>The entry MUST function in 3 or more of the following browsers: Internet Explorer, Firefox, Safari, Opera, or Chrome&#8230;</li>
<li>The entry MAY use any of the following additional technology components&#8230;
<ul>
<li>CSS</li>
<li>JavaScript</li>
<li>XAML/XML</li>
<li>Ruby</li>
<li>Python</li>
<li>Text, Zip and Image files (e.g. png, jpg or gif)</li>
</ul>
</li>
</ul>

<p>
Dig that:  not only is the contest open to HTML 5 submissions, but it has to be cross-browser compatible.  Okay, technically it only has to be three-out-of-five compatible, but still, that&#8217;s a great contest requirement.  Also note that while IE is one of the five, it is not a <em>required</em> one of the five.
</p>
<p>
I imagine there will be a fair number of Silverlight and Gestalt entries, and I might look at them, but I&#8217;m really there—was really asked—because of the HTML 5 entries.  By which I mean the open web entries, since any HTML 5 entry is also going to use CSS, JavaScript, and so on.
</p>
<p>
The downside here is that the contest ends in just one week, at 3pm U.S. Pacific time on 29 January.  I know that time is tight, but if you&#8217;ve got a cool HTML 5-based application running around in your head, this just might be the time to let it out.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2010/01/22/mix-judging/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>HTML5 And You</title>
		<link>http://meyerweb.com/eric/thoughts/2009/09/07/html5-and-you/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/09/07/html5-and-you/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 13:42:24 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1153</guid>
		<description><![CDATA[Here's the thing about the HTML5 specification that might not be obvious right away:  it's not for you.  It's for implementors.  And that's a good thing.
]]></description>
			<content:encoded><![CDATA[<p>
I mentioned in <a href="http://meyerweb.com/eric/thoughts/2009/09/02/nine-into-five/">my previous post</a> that I &#8220;had come away with my head reeling from the massive length and depth of the often-changing specification&#8221;, which is entirely true.  Printouts of the current draft of the HTML5 spec can reach, depending on your operating system and installed fonts, somewhere north of 900 pages.  Yes: <em>nine hundred</em>.  There are unabridged Stephen King novels that run shorter.
</p>
<p>
You might well say to yourself: &#8220;Self, is it just me, or are the people doing this completely off their everlovin&#8217; rockers?  Because the specification for something as fundamentally simple as HTML should reach maybe 200 pages, max.&#8221;  You might even despair that the entire enterprise is doomed to failure precisely because nobody sane will ever sit down to read that entire doorstop.
</p>
<p>
But there&#8217;s no real reason to panic, because here&#8217;s the thing about the HTML5 specification that might not be obvious right away:  <a href="http://www.penny-arcade.com/comic/2004/3/24/">it&#8217;s not <em>for</em> you</a>.  It&#8217;s for implementors.  And that&#8217;s a good thing.
</p>
<p>
If you do start reading the HTML5 draft, you&#8217;ll start running into really lengthy, excruciatingly detailed algorithms for, say, <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/infrastructure.html#parse-a-time-component">parsing a time component</a>.  Or <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#history-traversal">moving through the browser&#8217;s history</a>.  Or <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#form-submission-algorithm">submitting a form</a>.  There&#8217;s an entire (long) <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html">chapter on how to process the HTML syntax</a>.
</p>
<p>
Those are all good things, actually.  They greatly increase the chances of interoperability actually happening within our lifetimes.  There&#8217;s no guessing about, well, much of anything.  It&#8217;s all been exactingly defined, to the extent that one can exactingly define anything using a human language.  A browser team doesn&#8217;t have to wonder, or even guess, <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#the-end">what to do when the document has been completely parsed</a>.  It&#8217;s all spelled out.  And the people on those browser teams will, in the end, be the people who read that entire doorstop.  (Their sanity is another matter, and not discussed here.)
</p>
<p>
How is all that stuff relevant to you, the author?  In the sense that when browser teams follow the spec, their products will be interoperable, which is to say consistent.  (Just imagine that for a moment.)
</p>
<p>
Beyond that, though, the detailed implementation stuff <em>isn&#8217;t</em> relevant to you.  You are not expected to know all those algorithms in order to write HTML documents.  Pretty much all you need to know is the markup.  That&#8217;s the part that should be no more than 200 pages, yeah?
</p>
<p>
Turns out it is, and by a comfortable margin.  Michael(tm) Smith&#8217;s <a href="http://dev.w3.org/html5/markup/spec.html">HTML5: The Markup Language</a> is a version of the HTML5 draft with all of those eye-wateringly pedantic implementor sections stripped out, and when I generated a PDF it came in at 147 pages.  <em>That&#8217;s</em> what you really need in order to get up to speed on what&#8217;s in HTML5.  It&#8217;s <em>for</em> you.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/09/07/html5-and-you/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Nine Into Five</title>
		<link>http://meyerweb.com/eric/thoughts/2009/09/02/nine-into-five/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/09/02/nine-into-five/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 16:10:44 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[Commentary]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1149</guid>
		<description><![CDATA[Like so many others, I had tried to dig into the meat of HTML5 and figure out just what the heck was going on.  Like so many others, I had come away with my head reeling from the massive length and depth of the often-changing specification, unsure of the real meaning of much of what I had read.  And like so many others, I had gone to read the commentary surrounding HTML5 and come away deeply dispirited by the confusion, cross-claims, and rancor I found.  Then I received an invitation to join a small, in-person gathering of like-minded people, many of them just as confused and dispirited as I, to turn our collective focus to the situation and see what we found.  I already had plans for the meeting's scheduled dates.  I altered the plans.]]></description>
			<content:encoded><![CDATA[<p>
Like so many others, I had tried to dig into the meat of <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">HTML5</a> and figure out just what the heck was going on.  Like so many others, I had come away with my head reeling from the massive length and depth of the often-changing specification, unsure of the real meaning of much of what I had read.  And like so many others, I had gone to read the commentary surrounding HTML5 and come away deeply dispirited by the confusion, cross-claims, and rancor I found.
</p>
<p>
Then I received an invitation to join <a href="http://www.flickr.com/photos/zeldman/sets/72157622014232906/">a small, in-person gathering</a> of like-minded people, many of them just as confused and dispirited as I, to turn our collective focus to the situation and see what we found.  I already had plans for the meeting&#8217;s scheduled dates.  I altered the plans.
</p>
<p>
Over two long days, we poked and prodded and pounded on the HTML5 specification&#8212;doing our best to figure out what was meant by, and what would result from, this phrase or that example; trying to reconcile seemingly arbitrary design choices with what we knew of the web and its history and the stated goals of the HTML5 specification; puzzling over the implications of example code and detailed algorithms and non-normative notes.
</p>
<p>
In the end, we came away with a better understanding of what&#8217;s going on, and out of that arose <a href="http://www.zeldman.com/superfriends/guide/">some concerns and suggestions</a>.  But in the main, we felt much better about what&#8217;s going on in HTML5, and have now <a href="http://www.zeldman.com/superfriends/">said so publicly</a>.
</p>
<p>
Personally, there are two markup changes I&#8217;d like most to see:
</p>

<ol>
<li>
<p>
<strong>The content model of <code>footer</code> should match that of <code>header</code>.</strong>
As others have said, the English-language name of the <code>footer</code> element creates expectations about what it is and how it should work.  As the spec now stands, most of those expectations will be wrong.  To wit: if your page&#8217;s footer includes navigation links, and especially if you have an HTML5-structured &#8220;<a href="http://ui-patterns.com/pattern/FatFooter">fat footer</a>&#8220;, you can&#8217;t use <code>footer</code> to contain it.
</p>
<p>
If this feels a little familiar, it should: the same problem happened with <code>address</code>, which was specified to mean only the contact information for the author of a page.  It was quite explicitly specified to <em>not</em> accept mailing addresses.  Of course, tons of people did just that, because they had an address and there was an <code>address</code> element, so of course they went together!
</p>
<p>
A lot of us cringed every time this came up in the last ten years of conducting training, because it meant we&#8217;d have to spend a few minutes explaining that the meaning of the element&#8217;s name clashed with its technical design.  We saw a lot of furrowed brows, rolled eyes, and derisively shaken heads.  That will be magnified a millionfold with <code>footer</code> if things are allowed to stand as they are.
</p>
<p>
As I said, the fix is simple: just change the content model of <code>footer</code> to state:
</p>
<blockquote><p>Flow content, but with no header or footer element descendants.</p></blockquote>
<p>
That&#8217;s exactly the same content model as <code>header</code>, and for the same reasons.
</p>
</li>
<li>
<p>
<strong><code>time</code> needs to be less restrictive.</strong>  That&#8217;s not very precise, I know.  But as things stand now, you can only apply <code>time</code> to Gregorian datetimes, and you&#8217;re not supposed to use it for anything that couldn&#8217;t be easily represented in a calendaring program.  The HTML5 specification says:
</p>
<blockquote><p>The time element is not intended for encoding times for which a precise date or time cannot be established.</p></blockquote>
<p>
That makes me wonder, in a manner not at <em>all</em> like Robert Plant, how precise do we have to be?  The answer, I&#8217;m sorry to say, is too much.
</p>
<p>
To pick an example: I have what I think of as <a href="http://meyerweb.com/eric/browsers/timeline-structured.html">a great use case for the <code>time</code> element</a>, and while it uses the Gregorian calendar, it&#8217;s only accurate to whole months (as is <a href="http://en.wikipedia.org/wiki/Browser_timeline#1993.E2.80.932009">Wikipedia&#8217;s version</a>).  In some cases I could get the values down to specific days; but in others, maybe not.  So I can&#8217;t use the <code>datetime</code> attribute, which <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/infrastructure.html#valid-date-string">requires at least year-month-day</a>, if not actual hours and minutes.  I could omit the attribute, and just have this:
</p>
<pre>
&lt;time&gt;October 2007&lt;/time&gt;
</pre>
<p>
In that case, the content has to be a valid date string in content&#8212;which is to say, a valid date string with optional whitespace.  So that won&#8217;t work.
</p>
<p>
I&#8217;ve pondered how best to tackle this, as did the Super Friends.  Our suggestion is to allow bare year and month-day values as permitted in ISO8601.  In addition, I think we should allow a valid date string to only require a year, with month, day, and time optional.  That seems good enough as long as we&#8217;re going to go with the idea that the Gregorian calendar contains all the time we ever want to structure.
</p>
<p>
But what about other, older dates, some of which are fairly precisely known within their own calendars?  On that point, though the historian in me clamors for a fix, I&#8217;m uncertain as to what.  <a href="http://quirksmode.org/" rel="acquaintance colleague met">PPK</a>, on the other hand, has put a<em>lot</em> of thought into this and written <a href="http://www.quirksmode.org/blog/archives/2009/04/making_time_saf.html">a piece</a> that I have skimmed but never, perhaps ironically, found the time to read in its entirety.
</p>

</li></ol>

<p>
These are not my only concerns, but they&#8217;re the big ones.  For the rest, I concur with <a href="http://www.zeldman.com/superfriends/guide/">the hiccups guide</a>, though of course to varying degrees.  I&#8217;m still trying to decide how much I care (or don&#8217;t) about the subtle differences between <code>article</code> and <code>section</code>, for example, or the way <code>aside</code> fits (or doesn&#8217;t) with its cousin elements.  And <code>dialog</code> just bugs me, but I&#8217;m not sure I have a better proposal, so I&#8217;ll leave it be for the time being.
</p>
<p>
At the other end of the two days, I felt a good deal more calm and hopeful than I did going in.  As <a href="http://www.zeldman.com/2009/08/31/loving-html5/">Jeffrey said</a>, &#8220;the more I study the direction HTML5 is taking, the better I like it&#8221;.  While there are still rough edges to be smoothed, there is time to smooth them.  We&#8217;ve already seen responsiveness on some of the points we addressed in the hiccups guide, and discussions around others.  The specification itself is daunting, especially to those who might remember the compact simplicity of the HTML2 spec.  Fortunately, it has good internal cross-linking so that you can, with effort, track down exactly what&#8217;s meant by &#8220;<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/infrastructure.html#valid-date-string-with-optional-time">valid date string with optional time</a>&#8221; or &#8220;<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#flow-content">sectioning content</a>&#8221; or &#8220;<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#formatblock-candidate"><code>formatBlock</code> candidate</a>&#8220;.
</p>
<p>
With HTML5, the web is not ending, nor is it starting over.  It&#8217;s evolving, slowly and in full view of the public, with an opportunity for anyone to have their say (which is not, of course, the same as having one&#8217;s proposals accepted).  It&#8217;s the next step, and I feel quite a bit more confident that it&#8217;s a step onto solid ground.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/09/02/nine-into-five/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>London CSS/XHTML Workshop</title>
		<link>http://meyerweb.com/eric/thoughts/2009/01/29/london-cssxhtml-workshop/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/01/29/london-cssxhtml-workshop/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 10:59:00 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=1016</guid>
		<description><![CDATA[I'm going to be doing an all-new one-day workshop in London in early March, this time with a harder edge and a higher skill level.]]></description>
			<content:encoded><![CDATA[<p>
Hey all, and especially those of you in the EU: I&#8217;m going to be doing an all-new one-day workshop in London in early March via the offices of Carson Workshops, for whom I&#8217;ve done workshops in the past.  Previously I&#8217;ve done two-day gigs with a beginner-to-intermediate skill range, but this time we&#8217;re trying something different.  I&#8217;m going to get down and dirty with some tough topics, and really push hard at the limits of what CSS and semantic markup can do.
</p>
<p>
You can get <a href="http://carsonworkshops.com/2009/ericmeyer/">the details at the CW site</a>, and note the special price for the first quarter of the seats.  That&#8217;s right, this will be a small, intimate workshop, with plenty of chances for questions about and challenges to what I&#8217;m saying.  Previous workshops have featured some really great conversations among everyone there, and I expect the same this time around.
</p>
<p>
I had meant to blog this before life intervened and took me out of my wifi cloud (and more on that soon), so time is a little more of the essence than usual&#8212;if you know someone who you think might be interested, pass the word on, willya?  Thanks!
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/01/29/london-cssxhtml-workshop/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>An Event Apart and HTML 5</title>
		<link>http://meyerweb.com/eric/thoughts/2009/01/02/an-event-apart-and-html-5/</link>
		<comments>http://meyerweb.com/eric/thoughts/2009/01/02/an-event-apart-and-html-5/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 16:01:59 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[An Event Apart]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=982</guid>
		<description><![CDATA[A bit of commentary about the choice of markup language for the brand-new An Event Apart design.]]></description>
			<content:encoded><![CDATA[<p>
The new Gregorian year has brought a striking new <a href="http://zeldman.com/" rel="friend colleague co-worker met">Big Z</a> design to <a href="http://aneventapart.com/">An Event Apart</a>, along with the detailed schedule for our first show and the opening of <a href="https://store.aneventapart.com/">registration for all four shows</a> of the year.  Jeffrey has <a href="http://www.zeldman.com/2009/01/01/an-event-apart-redesigned/">written a bit</a> about the thinking that went into the design already, and I expect more to come.  If you want <em>all</em> the juicy details, he&#8217;ll be talking about it at AEA, as a glance at the top of <a href="http://aneventapart.com/2009/seattle/#schedule">the Seattle schedule</a> will tell you.  And right after that?  An hour of me talking about coding the design he created.
</p>
<p>
One of the things I&#8217;ll be talking about is the choice of markup language for the site, which ended up being <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">HTML 5</a>.  In the beginning, I chose HTML 5 because I wanted to do something like this:
</p>

<pre>
&lt;li&gt;
&lt;a href="/2009/seattle/"&gt;
&lt;h2&gt;&lt;img src="/i/09/city-seattle.jpg" alt="Seattle" /&gt;&lt;/h2&gt;
&lt;h3&gt;May 4&#8212;5, 2009&lt;/h3&gt;
&lt;p&gt;Bell Harbor International Conference Center&lt;/p&gt;
&lt;/a&gt;
&lt;/li&gt;
</pre>

<p>
Yes, <a href="http://dev.w3.org/html5/spec/Overview.html#the-a-element">that&#8217;s legal in HTML 5</a>, thanks to <a href="http://www.brucelawson.co.uk/2008/any-element-linking-in-html-5/">the work done</a> by <a href="http://www.brucelawson.co.uk/" rel="friend colleague met">Bruce Lawson</a> in response to my <a href="http://meyerweb.com/eric/thoughts/2008/07/23/any-element-linking-demo/">href-anywhere agitation</a>.  It isn&#8217;t what I&#8217;d consider ideal, structurally, but it&#8217;s close.  It sure beats having to make the content of every element its own hyperlink, each one pointing at the exact same destination:
</p>

<pre>
&lt;li&gt;
&lt;h2&gt;&lt;a href="/2009/seattle/"&gt;&lt;img src="/i/09/city-seattle.jpg" alt="Seattle" /&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3&gt;&lt;a href="/2009/seattle/"&gt;May 4&#8212;5, 2009&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="/2009/seattle/"&gt;Bell Harbor International Conference Center&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
</pre>

<p>
I mean, that&#8217;s just dumb.  Ideally, I could drop an <code>href</code> on the <code>li</code> instead of having to wrap an <code>a</code> element around the content, but baby steps.  Baby steps.
</p>
<p>
So as Bruce discovered, pretty much all browsers will already let you wrap <code>a</code> elements around other stuff, so it got added to HTML 5.  And when I tried it, it worked, clickably speaking.  That is, all the elements I wrapped became part of one big hyperlink, which is what I wanted.
</p>
<p>
What I didn&#8217;t want, though, was the randomized layout weirdness that resulted once I started styling the descendants of the link.  Sometimes everything would lay out properly, and other times the bits and pieces were all over the place.  I could (randomly) flip back and forth between the two just by repeatedly hitting reload.  I thought maybe it was the heading elements that were causing problems, so I converted them all to classed paragraphs.  Nope, same problems.  So I converted them all to classed <code>span</code>s and that solved the problem.  The layout became steady and stable.
</p>
<p>
I was happy to get the layout problems sorted out, obviously.  Only, at that point, I wasn&#8217;t doing anything that required HTML 5.  Wrapping classed <code>span</code>s in links in the place of other, more semantic elements?  Yeah, <em>that&#8217;s</em> original.  It&#8217;s just as original as the coding pattern of &#8220;slowly leaching away the document&#8217;s semantics in order to make it, at long last and after much swearing, consistently render as intended&#8221;.  I&#8217;m sure one or two of you know what that&#8217;s like.
</p>
<p>
As a result, I could have gone back to XHTML 1.1 or even HTML 4.01 without incident.  In fact, I almost did, but in the end I decided to stick with HTML 5.  There were two main reasons.
</p>

<ol>
<li>
<p>First, AEA is all about the current state and near future of web design and development.  HTML 5 is already here and in use, and its use will grow over time.  We try to have the site embody the conference itself as much as possible, so using HTML 5 made some sense.</p>
</li>
<li>
<p>
I wanted to try HTML 5 out for myself under field conditions, to get a sense of how similar or dissimilar it is to what&#8217;s gone before.  Turns out the answers are &#8220;very much so&#8221; to the former and &#8220;frustratingly so&#8221; to the latter, assuming you&#8217;re familiar with XHTML.  The major rules are pretty much all the same: mind your trailing slashes on empty elements, that kind of thing.  But you know what the funniest thing about HTML 5 is?  It&#8217;s the little differences.  Like not permitting a <code>value</code> attribute on an image <code>submit</code>.  That one came as a rather large surprise, and as a result our <a href="http://aneventapart.com/subscribe/">subscribe page</a> is XHTML 1.0 Transitional instead of HTML 5.  (Figuring out how to work around this in HTML 5 is on my post-launch list of things to do.)
</p>
<p>
Oh, and we&#8217;re back to being case-insensitive.  <code>&lt;P Class="note"&gt;</code> is just as valid as <code>&lt;p class="note"&gt;</code>.  Having already fought the Casing Wars once, this got a fractional shrug from me, but some people will probably be all excited that they can uppercase their element names again.  I know I would&#8217;ve been, oh, six or seven years ago.
</p>
<p>
Incidentally, I used <a href="http://validator.nu/">validator.nu</a> to check my work.  It seemed the most up to date, but there&#8217;s no guarantee it&#8217;s perfectly accurate.  Ged knows every other validator I&#8217;ve ever used has eventually been shown to be inaccurate in one or more ways.
</p>
</li>
</ol>

<p>
I get the distinct impression that use of HTML 5 is going to cause equal parts of comfort (for the familiar parts) and eye-watering rage (for the apparently idiotic differences).  Thus it would seem the HTML 5 Working Group is succeeding quite nicely at capturing the current state of browser behavior.  Yay, I guess?
</p>
<p>
And then there was the part where I got really grumpy about not being able to nest a hyperlink element inside another hyperlink element&#8230; but that, like so many things referenced in this post, is a story for another day.
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2009/01/02/an-event-apart-and-html-5/feed/</wfw:commentRss>
		<slash:comments>70</slash:comments>
		</item>
		<item>
		<title>JavaScript Will Save Us All</title>
		<link>http://meyerweb.com/eric/thoughts/2008/10/22/javascript-will-save-us-all/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/10/22/javascript-will-save-us-all/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 13:05:57 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=953</guid>
		<description><![CDATA[Most of the browser development work these days seems to be going into JavaScript performance.  That's a good thing for CSS3 and HTML5.]]></description>
			<content:encoded><![CDATA[<p>
A while back, I woke up one morning thinking, <i>John Resig&#8217;s got some great CSS3 support in <a href="http://jquery.com/">jQuery</a> but it&#8217;s all forced into JS statements.  I should ask him if he could set things up like <a href="http://dean.edwards.name/">Dean Edwards</a>&#8216; <a href="http://dean.edwards.name/ie7/">IE7 script</a> so that the JS scans the author&#8217;s CSS, finds the advanced selectors, does any necessary backend juggling, and makes CSS3 selector support Transparently Just Work.  And then he could put that back into jQuery.</i>
</p>
<p>
And then, after breakfast, I fired up my feed reader and saw <a href="http://simonwillison.net/" rel="acquaintance met">Simon Willison</a>&#8216;s <a href="http://simonwillison.net/2008/Aug/24/jeresigs/">link</a> to John Resig&#8217;s nascent <a href="http://github.com/jeresig/sizzle/tree/master">Sizzle</a> project.
</p>
<p>
I swear to Ged this is how it happened.
</p>
<p>
Personally, I can&#8217;t wait for Sizzle to be finished, because I&#8217;m absolutely going to use it and recommend its use far and wide.  As far as I&#8217;m concerned, though, it&#8217;s a first step into a larger world.
</p>
<p>
Think about it: most of the browser development work these days seems to be going into JavaScript performance.  Those engines are being overhauled and souped up and tuned and re-tuned to the point that performance is improving by orders of magnitude.  Scanning the DOM tree and doing things to it, which used to be slow and difficult, is becoming lightning-fast and easy.
</p>
<p>
So why not write JS to implement <a href="http://www.css3.info/preview/multiple-backgrounds/">multiple background-image</a> support in all browsers?  All that&#8217;s needed is to scan the CSS, find instances of multiple-image backgrounds, and then dynamically add <code>div</code>s, one per extra background image, to get the intended effect.
</p>
<p>
Just like that, you&#8217;ve used the browser&#8217;s JS to extend its CSS support.  This approach advances standards support in browsers from the ground up, instead of waiting for the browser teams to do it for us.
</p>
<p>
I suspect that not quite everything in CSS3 will be amenable to this approach, but you might be surprised.  Seems to me that you could do <a href="http://www.css3.info/preview/background-size/">background sizing</a> with some <code>div</code>-and-positioning tricks, and <code>text-shadow</code> could be supportable using a sIFR-like technique, though line breaks would be a bear to handle.  <a href="http://www.w3.org/TR/2003/CR-css3-color-20030514/#rgba-color">RGBa</a> and <a href="http://www.w3.org/TR/2003/CR-css3-color-20030514/#hsla-color">HSLa</a> colors could be simulated with creative element reworking and <code>opacity</code>, and HSL itself could be (mostly?) supported in IE with HSL-to-RGB calculations.  And so on.
</p>
<p>
There are two primary benefits here.  The first is obvious: we can stop waiting around for browser makers to give us what we want, thanks to their efforts on JS engines, and start using the advanced CSS we&#8217;ve been hearing about for years.  The second is that the process of finding out which parts of the spec work in the real world, and which fall down, will be greatly accelerated.  If it turns out nobody uses (say) <code>background-clip</code>, even given its availability via a CSS/JS library, then that&#8217;s worth knowing.
</p>
<p>
What I wonder is whether the W3C could be convinced that two JavaScript libraries supporting a given CSS module would constitute &#8220;interoperable implementations&#8221;, and thus allow the specification to move forward on the process track.  Or heck, what about considering a single library getting consistent support in two or more browsers as interoperable?  There&#8217;s a chance here to jump-start the entire process, front to back.
</p>
<p>
It is true that browsers without JavaScript will not get the advanced CSS effects, but older browsers don&#8217;t get our current CSS, and we use it anyway.  (Still older browsers don&#8217;t understand any CSS at all.)  It&#8217;s the same problem we&#8217;ve always faced, and everyone will face it differently.
</p>
<p>
We don&#8217;t have to restrict this to CSS, either.  As I showed with my <a href="http://meyerweb.com/eric/html-xhtml/html5-linking-demo.html"><code>href</code>-anywhere demo</a>, it&#8217;s possible to extend markup using JS.  (No, not without breaking validation: you&#8217;d need a custom DTD for that.  Hmmm.)  So it would be possible to use JS to, say, add <code>audio</code> and <code>video</code> support to currently-available browsers, and even older browsers.  All you&#8217;d have to do is convert the HTML5 element into HTML4 elements, dynamically writing out the needed attributes and so forth.  It might not be a perfect 1:1 translation, but it would likely be serviceable&#8212;and would tear down some of the highest barriers to adoption.
</p>
<p>
There&#8217;s more to consider, as well: the ability to create our very own &#8220;standards&#8221;.  Maybe you&#8217;ve always wanted a <code>text-shake</code> property, which jiggles the letters up and down randomly to look like the element got shaken up a bit.  Call it <code>-myCSS-text-shake</code> or something else with a proper &#8220;vendor&#8221; prefix&#8212;we&#8217;re <em>all</em> vendors now, baby!&#8212;and go to town.  Who knows?  If a property or markup element or attribute suddenly takes off like wildfire, it might well make it into a specification.  After all, the HTML 5 Working Group is now explicitly set up to prefer things which are implemented over things that are not.  Perhaps the CSS Working Group would move in a similar direction, given a world where we were all experimenting with our own ideas and seeing the best ideas gain widespread adoption.
</p>
<p>
In the end, <a href="http://www.flickr.com/photos/rohdesign/2951537617/">as I said in Chicago</a> last week, the triumph of standards (specifically, the DOM standard) will permit us to push standards support forward <em>now</em>, and save some standards that are currently dying on the vine.  All we have to do now is start pushing.  Sizzle is a start.  Who will take the next step, and the step after that?
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/10/22/javascript-will-save-us-all/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>Any-Element Linking Demo</title>
		<link>http://meyerweb.com/eric/thoughts/2008/07/23/any-element-linking-demo/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/07/23/any-element-linking-demo/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 18:11:00 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=918</guid>
		<description><![CDATA[In support of the still-to-be-finished proposal for allowing most HTML 5 elements to become hyperlinks, I've written a quick proof-of-concept demo for your perusal.]]></description>
			<content:encoded><![CDATA[<p>
In support of the <a href="http://meyerweb.com/eric/html-xhtml/html5-linking.html">still-to-be-finished proposal</a> for allowing most HTML 5 elements to become hyperlinks, I&#8217;ve written a <a href="http://meyerweb.com/eric/html-xhtml/html5-linking-demo.html">quick proof-of-concept demo</a> for your perusal.  Basically, it&#8217;s a page with some JavaScript that captures the whole document tree, looks for any elements with an <code>href</code> attribute, and then sprinkles some events on those elements in order to make them act like hyperlinks.  There&#8217;s also some CSS that applies old-school link presentation to said elements (blue and underlined, baby!).  I&#8217;m using <code>href</code> because it was the easiest thing to do.
</p>
<p>
I&#8217;m sure I could have written a more elegant script (and <em>yes</em>, I <em>know</em>, your favorite JS framework would done it in half the lines and seventeen times the page weight) and I suspect there are some things I&#8217;m missing.  I&#8217;ll be interested to hear what those may be.  Meanwhile, if you want to try out your own arbitrary-element linking, grab a copy of the demo and edit the markup to your heart&#8217;s content.  Or you could suck out the JS and apply it to your own test pages.  Your call.
</p>
<p>
The demo works fine in Firefox 2, Camino 1.5, Safari 2, and Opera 9.2.  I didn&#8217;t test it in anything else.  It may well fail spectacularly in every other browser known to man and dog.  That&#8217;s not really an issue, though.  The goal here is to have a working demonstration, not a universal solution.  (The latter may come later.)  It&#8217;s a handy way to show people how browsers should behave in an arbitrary-link world.
</p>
<p>
The one thing that didn&#8217;t go right is the status-bar URL handling when hovering over a linked element (other than an <code>a</code> element) that descends from another linked element.  For some reason the descendant&#8217;s URL never shows up in the status bar.  I&#8217;m sure there&#8217;s an easy fix.  I regard this as a minor issue.  <em>[<strong>Update 7/23:</strong> this has been fixed <a href="http://meyerweb.com/eric/thoughts/2008/07/23/any-element-linking-demo/#comment-395045">thanks to Allwyn Fernandez</a>.]</em>
</p>
<p>
The biggest thing that&#8217;s missing is simulating &#8220;visited&#8221; styles on non-<code>a</code> elements; in this case, turning them purple.  That would require mining the history and dynamically adding classes and, well, all kinds of stuff.  I&#8217;m sure it&#8217;s possible.  I&#8217;m also sure that I don&#8217;t have the time right now to figure out how to do it well.  Besides, ship early, ship often, right?
</p>
<p>
As I said before, I&#8217;m very interested to know what people think of the demonstrated behavior and how it might be improved.  And hey, if anyone wants to contribute improvements to the JS, I&#8217;ll do my best to keep up.
</p>
<p>
One more step toward a concrete proposal&#8230;
</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/07/23/any-element-linking-demo/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>Linking Up</title>
		<link>http://meyerweb.com/eric/thoughts/2008/06/12/linking-up/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/06/12/linking-up/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 19:37:10 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=914</guid>
		<description><![CDATA[The <a href="http://meyerweb.com/eric/html-xhtml/html5-linking.html">"<code>href</code> everywhere" document</a> (which is officially titled "HTML5: More Flexibile Linking") has been updated, so kindly give it another look and challenge my assertions, use cases (or lack thereof), and any weak points.]]></description>
			<content:encoded><![CDATA[<p>
The <a href="http://meyerweb.com/eric/html-xhtml/html5-linking.html">&#8220;<code>href</code> everywhere&#8221; document</a> (which is officially titled &#8220;HTML5: More Flexibile Linking&#8221;) has been updated, so kindly give it another look and challenge my assertions, use cases (or lack thereof), and any weak points.  Unless you consider the whole idea of extending linkability to be a weak point, in which case, never mind.  You may or may not be right, but attacking the whole premise isn&#8217;t going to get much traction.  I&#8217;m convinced the general idea is a good one.  Now it&#8217;s up to me to make the best case for it and convince implementors that I&#8217;m right.
</p>
<p>
Thanks to comments on <a href="http://meyerweb.com/eric/thoughts/2008/06/05/strengthening-links/">the previous post in the series</a>, a few elements were added to the list of those which have plausible use cases, and I added some documentation of the elements that either aren&#8217;t on the list or don&#8217;t need to be on it at the end.  Eventually, the &#8220;Possible Additions&#8221; section will disappear entirely, and at that point I&#8217;ll be ready to submit it for consideration to the Working Group.
</p>
<p>
There are a few outstanding questions raised by commenters on the previous post:
</p>

<ol>
<li>
<p>Is there a reasonable case for linking any of <code>ul</code>, <code>ol</code>, or <code>dl</code>?  In cases where they represent quotations of other documents, they&#8217;re be wrapped in a <code>blockquote</code> anyway, and I&#8217;ve already got a use case for that one.  Linking <code>li</code> makes sense, but the whole list?  There are also questions about <code>dd</code>&#8212;would it make sense to allow linking to the paired <code>dd</code>?&#8212;but I don&#8217;t see a use case for <code>dd</code>.  The whole point there is it&#8217;s supposed to be the definition, not a shortened reference to a longer definition.
</p>
</li>
<li>
<p>I was persuaded of the utility of linking <code>video</code>, my previous uncertainty having been based in a misunderstanding of how click-this-video worked now, but what about <code>audio</code>?  I haven&#8217;t noticed it being common to link embedded audio clips to other sources, but maybe I&#8217;m missing something.</p>
</li>
<li>
<p>Can a table have multiple <code>thead</code>, <code>tbody</code>, or <code>tfoot</code> elements?  If so, linking them starts to make more sense.  I only wish I could find the part of the HTML5 draft that answers this one way or the other. In a like vein, I can&#8217;t decide if it makes more sense to add linking to <code>caption</code> or <code>table</code>.  I&#8217;m kind of tending toward the former.  Anyone have good arguments either way?</p>
</li>
<li>
<p>Should <code>embed</code> and <code>object</code> have direct linking, or is that better handled with already-extant markup patterns?  (If so, using <code>param</code>, I would imagine.)</p>
</li>
<li>
<p>Is there a reason to link a whole <code>pre</code> to some other resource, <em>other than</em> linking part of a program to a codebase?  Because in those cases, I&#8217;d probably use the <code>&lt;pre&gt;&lt;code&gt;...&lt;/code&gt;&lt;/pre&gt;</code> pattern, and link the <code>code</code> element.  <code>pre</code> is a presentational element, really, and you&#8217;ll note that I haven&#8217;t proposed adding linking to just about any of the presentation elements, <code>sup</code> and <code>sub</code> being the exceptions.</p>
</li>
<li>
<p>There&#8217;s a list of &#8220;(Possibly) Unsuitable Elements&#8221; near the end of the document that might bear some review in case I&#8217;m missing some obvious use cases.  Obvious to someone other than me, I mean.</p>
</li>
</ol>

<p>
Let me know what you think!  I&#8217;m definitely moving forward with this, as I&#8217;ve received encouragement from a member of the HTML WG,  but I&#8217;d like the proposal to be as solid as possible before I do so.  Thanks for everyone&#8217;s help!
</p>

]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/06/12/linking-up/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Strengthening Links</title>
		<link>http://meyerweb.com/eric/thoughts/2008/06/05/strengthening-links/</link>
		<comments>http://meyerweb.com/eric/thoughts/2008/06/05/strengthening-links/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 16:50:17 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[(X)HTML]]></category>

		<guid isPermaLink="false">http://meyerweb.com/?p=908</guid>
		<description><![CDATA[As a follow-up to "<a href="http://meyerweb.com/eric/thoughts/2008/06/02/the-missing-link/">The Missing Link</a>", I've written <a href="http://meyerweb.com/eric/html-xhtml/html5-linking.html">a fairly lengthy document</a> that presents a number of alternatives for creating a more flexible and robust linking mechanism, and am looking for feedback and improvements.  (Updated 11 Jun 08.)]]></description>
			<content:encoded><![CDATA[<p>
As a follow-up to &#8220;<a href="http://meyerweb.com/eric/thoughts/2008/06/02/the-missing-link/">The Missing Link</a>&#8220;, I&#8217;ve written <a href="http://meyerweb.com/eric/html-xhtml/html5-linking.html">a fairly lengthy document</a> that presents a number of alternatives for creating a more flexible and robust linking mechanism.  The important core of the piece comes first, identifying a generic problem and covering some pros and cons of various ways to address the problem.
</p>
<p>
After that comes a much longer section which presents reasons to add linkability to various elements in the HTML5 specification.  I did <em>not</em> consider WebForms elements, but instead the list of 91 elements found in the primary list in Simon Pieters&#8217; excellent <a href="http://simon.html5.org/html5-elements">HTML5 Elements and Attributes</a> guide.
</p>
<p>
The important thing in that long list is not the exact mechanism I propose, but that I was able to find use cases for 30 HTML5 elements.  Each one is described briefly and accompanied by one or two markup examples.  Another 18 (listed at the end of the document) seemed initially to be good candidates, but I failed to find reasonable use cases for them.  The remaining 43 elements weren&#8217;t even considered, since they all seemed to be obviously poor choices.  One example is <code>video</code>, which would likely suffer if it were a hyperlink&#8211; resolving what to do when a user clicks on the video controls was completely unclear to me.
</p>
<p>
Now, as to why I&#8217;m blogging this instead of taking it to one or another of the relevant mailing lists: I&#8217;m looking for community input in order to strengthen <a href="http://meyerweb.com/eric/html-xhtml/html5-linking.html">the document</a>.  Did I miss any alternative solutions in that first section?  Are there more pros and cons for the various alternatives?  What use cases did I miss in that last list of 18; or, for that matter, what are some strong use cases for the list of 30 that I didn&#8217;t include?  Are there any elements among the 43 I omitted that do, in fact, have strong use cases for being linkable?
</p>
<p>
I&#8217;ll do my best to keep up with comments.  Have at it, folks!
</p>
<p>
<strong>Update 11 Jun 08:</strong> I&#8217;ve updated the document to incorporate ideas from commenters, and added a few extra bits of information at the end of the document.  It&#8217;s worth another look, especially since I&#8217;ve gotten some semi-official encouragement to submit the proposal to the HTML Working Group.
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2008/06/05/strengthening-links/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
