<?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>HTML 5 &#187; Weekly Review</title>
	<atom:link href="http://www.htmlfive.net/category/weekly-review/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.htmlfive.net</link>
	<description>A central location for HTML5 news and updates</description>
	<lastBuildDate>Tue, 31 Aug 2010 10:55:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>This Week in HTML5 &#8211; Episode 38</title>
		<link>http://www.htmlfive.net/this-week-in-html5-episode-38/</link>
		<comments>http://www.htmlfive.net/this-week-in-html5-episode-38/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 19:03:22 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=1094</guid>
		<description><![CDATA[Topics this week include microdata, video and audio, and spec licensing.]]></description>
			<content:encoded><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>This week, there were some more refinements to microdata. <a href="http://html5.org/tools/web-apps-tracker?from=4138&#038;to=4139">r4139</a> changes the names of the <abbr>DOM</abbr> properties that reflect microdata markup. <a href="http://html5.org/tools/web-apps-tracker?from=4139&#038;to=4140">r4140</a> renames the <code>content</code> property to <code>itemValue</code> Since no browser has actually implemented this <abbr>API</abbr> yet, these changes shouldn't make any difference. Standards are like sex; one mistake, and you're stuck supporting it forever! <a href="http://html5.org/tools/web-apps-tracker?from=4140&#038;to=4141">r4141</a> and <a href="http://html5.org/tools/web-apps-tracker?from=4146&#038;to=4147">r4147</a> fix up some microdata examples, in particular <a href="http://gavin.carothers.name/2009/08/13/trying-to-understand-microdata-rdfa/">this example from Gavin Carothers</a> about marking up O'Reilly's book catalog. Hooray for real-world examples!</p>

<p>There were also some noteworthy changes to the <code>&lt;video></code> and <code>&lt;audio></code> <abbr>API</abbr>. <a href="http://html5.org/tools/web-apps-tracker?from=4130&#038;to=4131">r4131</a> says that setting the <code>src</code> attribute on one of those elements should call its <code>load()</code> method. <a href="http://html5.org/tools/web-apps-tracker?from=4131&#038;to=4132">r4132</a> removes the <code>load</code> event for multimedia elements, and <a href="http://html5.org/tools/web-apps-tracker?from=4132&#038;to=4133">r4133</a> removes the "in progress" events (<code>loadstart</code>, <code>loadend</code>, and <code>progress</code>) that used to be fired while the video/audio file was downloading.</p>

<p>Other noteworthy changes this week:</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4096&#038;to=4097">r4097</a> defines fallback content for the obsolete <code>&lt;applet></code> element.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4097&#038;to=4098">r4098</a> "dramatically simplifies <code>&lt;script defer></code> and <code>&lt;script async></code> handling." [Background: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7792">bug 7792</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4105&#038;to=4106">r4106</a> makes the <var>step</var> argument to the <code>&lt;input></code> element's <code>stepUp()</code> and <code>stepDown()</code> methods optional.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4110&#038;to=4111">r4111</a> removes <code>&lt;link rel=feed></code>. As <a href="http://blog.whatwg.org/the-road-to-html-5-link-relations#rel-feed">I documented earlier this year</a>, <code>rel=feed</code> was a reasonable idea that never took off. Only one browser ever implemented it, and in a survey of 3 billion pages I could only find a single page that used it.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4125&#038;to=4126">r4126</a> lists suggested default encodings for different locales. [Background: <a href="http://lists.w3.org/Archives/Public/public-html/2009Oct/thread.html#msg86">RE: HTML5 Issue 11 (encoding detection): I18N WG response...</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4137&#038;to=4138">r4138</a> drops support for non-UTF-8 encodings in <a href="http://www.whatwg.org/specs/web-workers/current-work/">Web Workers</a>. [Background: <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/thread.html#23197">[whatwg] Please always use utf-8 for Web Workers</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4098&#038;to=4099">r4099</a> marks the creation of <a href="http://www.whatwg.org/specs/web-apps/current-work/complete.html">Web Applications 1.0</a>, a super-spec that contains <a href="http://whatwg.org/specs/web-apps/current-work/">HTML5</a>, <a href="http://www.whatwg.org/specs/vocabs/current-work/">pre-defined microdata vocabularies</a>, <a href="http://www.whatwg.org/specs/web-workers/current-work/">Web Workers</a>, <a href="http://dev.w3.org/html5/webstorage">Web Storage</a>, <a href="http://dev.w3.org/html5/webdatabase/">Web Database</a>, <a href="http://dev.w3.org/html5/eventsource/">Server-sent Events</a>, and <a href="http://dev.w3.org/html5/websockets/">Web Sockets</a>. This marks the first time that some of those specs have been published by the WHATWG, rather than the W3C, and therefore the first time that said specs have been published under a Free-Software-compatible license. (<a href="http://lists.w3.org/Archives/Public/public-html/2009Oct/0002.html">The W3C is still deciding whether to use such a license</a>.)</li>
</ul>

<p>Around the web:</p>

<ul>
<li><a href="http://robertnyman.com/2009/10/14/an-introduction-to-html5/">An Introduction to HTML5</a> covers a lot of ground</li>
<li><a href="http://diveintohtml5.org/video.html">Video on the Web</a> is the latest chapter from <a href="http://www.amazon.com/HTML5-Up-Running-Mark-Pilgrim/dp/0596806027">my upcoming book on HTML5</a>.</li>
</ul>

<p>Tune in next week for another exciting edition of "This Week in HTML5."</p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html5-episode-38/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in HTML5 &#8211; Episode 37</title>
		<link>http://www.htmlfive.net/this-week-in-html5-episode-37/</link>
		<comments>http://www.htmlfive.net/this-week-in-html5-episode-37/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 19:59:09 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=1063</guid>
		<description><![CDATA[Topics this week include microdata, events, and document.head.]]></description>
			<content:encoded><![CDATA[<p>The big news this week is microdata. Google <a href="http://blog.whatwg.org/usability-testing-html5">sponsored a usability study on microdata syntax</a>, which resulted in significant changes to the spec [<a href="http://html5.org/tools/web-apps-tracker?from=4065&amp;to=4066">r4066</a>]. Also related: <a href="http://html5.org/tools/web-apps-tracker?from=4066&amp;to=4067">r4067</a> fixes a microdata example, <a href="http://html5.org/tools/web-apps-tracker?from=4067&amp;to=4068">r4068</a> updates the algorithm for extracting RDF triples from microdata, <a href="http://html5.org/tools/web-apps-tracker?from=4068&amp;to=4069">r4069</a> does some spec cleanup, and <a href="http://html5.org/tools/web-apps-tracker?from=4069&amp;to=4070">r4070</a> splits out the predefined microdata syntaxes into their own specs:</p>

<ul>
<li><a href="http://dev.w3.org/html5/mdvcard/">Microdata vocabularies: vCard</a></li>
<li><a href="http://dev.w3.org/html5/mdvevent/">Microdata vocabularies: vEvent</a></li>
<li><a href="http://dev.w3.org/html5/mdwork/">Microdata vocabularies: Licensing Works</a></li>
</ul>

<p>There was also work on events this week. <a href="http://html5.org/tools/web-apps-tracker?from=4031&amp;to=4032">r4032</a> defines what events are involved in copy and paste, closing <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7668">bug 7668</a>. <a href="http://html5.org/tools/web-apps-tracker?from=4036&amp;to=4037">r4037</a> defines when the <code>reset</code> event fires, closing <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7699">bug 7699</a>. <a href="http://html5.org/tools/web-apps-tracker?from=4038&amp;to=4039">r4039</a> defines when the <code>abort</code> event fires, closing <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7700">bug 7700</a>.</p>

<p>This week brings another milestone, one which went mostly unremarked in mailing lists, blogs, and IRC chatter. As with any large project, Ian Hickson has maintained an informal wishlist of things he would like to clarify, define, or otherwise include in HTML5. The list has grown and shrunk over the years. The list was stored in HTML comments, so it has never been visible unless you viewed the source of the HTML5 specification itself. And as with any large project, there comes a time when you realize you're not going to get to everything on your wishlist.</p>

<p>This week, the wishlist shrunk a lot, as Ian finally "punted" on several issues. Some of them may be tackled in HTML6. (Of course, if someone feels strongly enough, they can certainly argue that an issue still needs to be tackled in HTML5.) <a href="http://html5.org/tools/web-apps-tracker?from=4022&amp;to=4023">r4023</a> shows the deletions from the wishlist, including: "ability for a web app to save a file to the local disk," proposals for new attributes on the <code>&lt;title></code> element, partial form validation, multi-column select widgets, auto-formatting of number fields (like many spreadsheet programs do), relative dates, input controls for repeating dates (like anniversaries or other repeating events), and input controls for currency.</p>

<p>Other noteworthy changes this week:</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4010&amp;to=4011">r4011</a> syncs with the latest <a href="http://tools.ietf.org/html/draft-abarth-origin">Origin spec</a>, closing <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7599">bug 7599</a>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4030&amp;to=4031">r4031</a> allows user agents to explicitly disable <code>&lt;canvas></code> support.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4041&amp;to=4042">r4042</a> limits <code>PUT</code> and <code>DELETE</code> actions on web forms to the same origin as the page. This is similar to the restriction on <code>XMLHttpRequest</code>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4056&amp;to=4057">r4057</a> defines <code>&lt;applet></code>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4075&amp;to=4076">r4076</a> disallows the backtick (<code>`</code>) character in unquoted attribute values, because Internet Explorer will treat it as an attribute value delimiter.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4081&amp;to=4082">r4082</a> adds the <code>document.head</code> property, which <a href="http://blog.whatwg.org/this-week-in-html5-episode-36#interesting-discussions">makes me very happy</a>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4082&amp;to=4083">r4083</a> states that an <code>&lt;audio></code> element without controls should always be hidden. (You can still make a visible <code>&lt;audio></code> element; just give it a <code>controls</code> attribute.)</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4085&amp;to=4086">r4086</a> tries to clarify the ever-elusive <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-windowproxy-object"><code>WindowProxy</code> object</a>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4090&amp;to=4091">r4091</a> registers the various HTTP headers that are used in the new features of HTML5, including <a href="http://www.whatwg.org/specs/web-apps/current-work/#ping-from"><code>Ping-From</code></a> and <a href="http://www.whatwg.org/specs/web-apps/current-work/#ping-to"><code>Ping-To</code></a>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=4091&amp;to=4092">r4092</a> and <a href="http://html5.org/tools/web-apps-tracker?from=4093&amp;to=4094">r4094</a> add a non-normative <a href="http://www.whatwg.org/specs/web-apps/current-work/#index">index of HTML elements and attributes</a>. Think of it as an "HTML5 cheat sheet." Various third parties have attempted such a list, but none have been able to keep up with the maintenance required as HTML5 evolved.</li>
</ul>

<p>Around the web:</p>

<ul>
<li><a href="http://blog.whatwg.org/content-sniffing-still-sucks">Sniffing for RSS 1.0 feeds served as text/html</a>, my original research into how browsers treat mis-labeled RSS feeds. My proposal was accepted and incorporated into <a href="http://tools.ietf.org/html/draft-abarth-mime-sniff">the latest draft of the Content Sniffing spec</a>.</li>
<li><a href="http://code.google.com/p/mimesniff/">mimesniff</a>, my implementation of the Content Sniffing draft spec. Requires Python 3.1 or later.</li>
<li><a href="http://googlecode.blogspot.com/2009/10/svg-at-google-and-in-internet-explorer.html">SVG at Google and in Internet Explorer</a>, by my friend and colleague Brad Neuberg (the mastermind behind <a href="http://code.google.com/p/svgweb/">SVGWeb</a>).</li>
<li><a href="http://cs.helsinki.fi/u/ilmarihe/canvas_animation_demo/mozcampeu09.html">A cute animated cartoon about HTML5 and <code>&lt;canvas></code></a>, using HTML5 and <code>&lt;canvas></code>.</li>
<li>I will be speaking on HTML5 at two upcoming Google Developer Days. The first is in <a href="http://code.google.com/intl/cs/events/developerday/2009/home.html">Prague on November 6</a>; the second is in <a href="http://code.google.com/intl/ru/events/developerday/2009/home.html">Moscow on November 10</a>.</li>
</ul>

<p>Tune in next week for another exciting edition of "This Week in HTML5."</p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html5-episode-37/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in HTML5 &#8211; Episode 36</title>
		<link>http://www.htmlfive.net/this-week-in-html5-episode-36/</link>
		<comments>http://www.htmlfive.net/this-week-in-html5-episode-36/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 21:06:08 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=1019</guid>
		<description><![CDATA[Topics this week include parsing, accessibility, security, semantics, video, and web forms.]]></description>
			<content:encoded><![CDATA[<p>Since I started publishing these weekly summaries <a href="http://blog.whatwg.org/this-week-in-html5-episode-1">over a year ago</a>, I've watched the HTML5 specification grow up. In episode 1, the big news of the week was the birth of an entirely new specification (<a href="http://www.whatwg.org/specs/web-workers/current-work/">Web Workers</a>). Slowly, steadily, and sometimes painstakingly, the HTML5 specification has matured to the point where <a href="http://blog.whatwg.org/this-week-in-html5-episode-35">the hottest topic last week</a> was the removal of a little-used element (<code>&lt;dialog></code>) and the struggle to find a suitable replacement for <a href="http://microformats.org/wiki/chat-examples">marking up conversations</a>.</p>

<p>This week's changes are mundane, and I expect (and hope!) that future summaries will be even more mundane. That's a <em>good</em> thing; it tells me that, as implementors continue implementing and authors continue authoring, there are no show-stoppers and fewer and fewer "gotchas" to trip them up. Thus, the overarching theme this week -- and I use the term "theme" very loosely -- is "the never-ending struggle to get the details right."</p>

<h3 id="parsing">Parsing</h3>

<p>HTML5 is full of algorithms. Most of them are small parts of one mega-algorithm, called <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#parsing">Parsing HTML Documents</a>. Contrary to popular belief, the HTML parsing algorithm is <em>deterministic</em>: for any sequence of bytes, there is one (and only one) "correct" way to interpret it as HTML. Notice I said "any sequence of bytes," not just "any sequence of bytes that conforms to a specific DTD or schema." This is intentional; HTML5 not only defines what constitutes "valid" HTML markup (for the benefit of <a href="http://validator.nu/">conformance checkers</a>), it also defines how to parse "invalid" markup (for the benefit of browsers and <a href="http://pipes.yahoo.com/pipes/">other</a> HTML <a href="http://www.princexml.com/">consumers</a> that take existing web content as input). And sweet honey on a stick, there sure is a lot of invalid markup out there.</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3895&#038;to=3896">r3896</a> tells parsers to ignore almost any end tags before the <code>&lt;html></code> tags. There are a few special end tags which cause the parser to start constructing a new document: <code>&lt;/html></code>, <code>&lt;/head></code>, <code>&lt;/body></code>, and oddly enough, <code>&lt;/br></code>. [Related: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7672">Bug 7672</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3908&#038;to=3909">r3909</a> clarifies how user agents should parse the <code>type</code> attribute of a <code>&lt;script></code> tag. The <code>type</code> attribute is optional; authors can simply omit it if they're embedding JavaScript.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3922&#038;to=3923">r3923</a> tweaks the algorithm for parsing the <code>DOCTYPE</code> declaration. This affects <a href="http://hsivonen.iki.fi/doctype/"><code>DOCTYPE</code> sniffing</a>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3966&#038;to=3967">r3967</a> clarifies the algorithm for ignoring the first newline or carriage return character at the beginning of a <code>&lt;pre></code> block. [Background: <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/thread.html#22864">[whatwg] Initial carriage return in <code>&lt;pre></code> and <code>&lt;textarea></code></a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3967&#038;to=3968">r3968</a> explains why the <code>&lt;embed></code> element can have an infinite number of attributes. (Answer: because they are passed directly to the third-party plugin that handles the embedded content, and there are no restrictions on what kind of plugins you can have or what attributes they can take as input.)</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3990&#038;to=3991">r3991</a> adds to the already-long list of legacy, non-conforming attributes that user agents may encounter in existing web content.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3870&#038;to=3871">r3871</a> and <a href="http://html5.org/tools/web-apps-tracker?from=3981&#038;to=3982">r3982</a> tweak the handling of Unicode surrogates. [Background: <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/thread.html#22788">[whatwg] Surrogate pairs and character references</a>]</li>
</ul>

<h3 id="accessibility">Accessibility</h3>

<p>As with so many things in the accessibility world, all of this week's changes revolve around the thorny problem of <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#focus">focus</a>. I previously explained why focus is so important in <a href="http://blog.whatwg.org/this-week-day-in-html-5-episode-24">episode 24</a>.</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3886&#038;to=3887">r3887</a> specifies that each <code>&lt;area></code> in a client-side image map should be focusable.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3918&#038;to=3919">r3919</a> encourages browser vendors to expose tooltips to keyboard-only users. For example, in Firefox 3.5, if you hover your cursor over a hyperlink that defines a <code>title</code> attribute, you will see the <code>title</code> attribute as a tooltip. But if you tab to the same link with the keyboard, no tooltip appears. Now imagine that you're physically unable to use a mouse, and you begin to see the problem. [Background: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7362">Bug 7362</a> and <a href="http://www.w3.org/html/wg/tracker/issues/80">Issue 80</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3927&#038;to=3928">r3928</a> defines an intriguing proposal about canvas accessibility, which probably deserves its own article. Here's the short version: you can already define "fallback content" within a <code>&lt;canvas></code> element that is shown to browsers that don't support the canvas <abbr>API</abbr>. This change dictates that the "fallback content" <em>should remain keyboard-focusable</em> even in browsers that do support the canvas <abbr>API</abbr>. To quote the spec: "This allows authors to make an interactive canvas keyboard-focusable: authors should have a one-to-one mapping of interactive regions to focusable elements in the fallback content." This is a draft proposal; as far as I know, no browser actually supports it yet, and it may get reverted in the future. [Background: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7404">Bug 7404</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3968&#038;to=3969">r3969</a> clarifies that browsers must do nothing when the user activates a label whose corresponding input control is hidden (in any manner, including a <code>display: none</code> <abbr>CSS</abbr> rule). [Background: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7583">Bug 7583</a>]</li>
</ul>

<h3 id="security">Security</h3>

<p>All of this week's security-related changes revolve around <code>document.domain</code>. As you might expect from its name, this property returns the domain name of the current document. Unfortunately (for security), the property is not read-only; you can also <em>set</em> <code>document.domain</code> to pretty much anything. This can cause all sorts of <a href="http://msdn.microsoft.com/en-us/library/ms533028(VS.85).aspx">horrible side effects</a>, since so many things (cookies, local storage, <a href="https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript">same-origin restrictions on <code>XMLHttpRequest</code></a>) rely on the domain of the document. This set of changes attempts to reduce the nasty side effects (and the possible attack surface) in case you absolutely must set <code>document.domain</code> to something other than its default calcuated value.</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3874&#038;to=3875">r3875</a> states that setting <code>document.domain</code> should release the storage mutex. (The storage mutex is a global lock that is acquired when setting cookies and released immediately afterwards. Since cookies are domain-specific, changing the domain dynamically like this needs to release the lock in case the page wants to update the cookies on the new domain.) [Background: <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/thread.html#22542">[whatwg] Storage mutex and cookies can lead to browser deadlock</a>, <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/thread.html#22672">[whatwg] RFC: Alternatives to storage mutex for cookies and	localStorage</a>, <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/thread.html#22810">[whatwg] Application defined "locks"</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3877&#038;to=3878">r3878</a> states that setting <code>document.domain</code> makes <a href="http://dev.w3.org/html5/webstorage/">Web Storage</a> unusable, to avoid deadlocks with Web Storage's own locking mechanism. [Background: <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/023059.html">[whatwg] localStorage, the storage mutex, document.domain, and workers</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3878&#038;to=3879">r3879</a> warns against setting <code>document.domain</code> on web applications that are hosted on shared servers. The spec explains the problem: "If an untrusted third party is able to host an HTTP server at the same IP address but on a different port, then the same-origin protection that normally protects two different sites on the same host will fail, as the ports are ignored when comparing origins after the <code>document.domain</code> attribute has been used."</li>
</ul>

<h3 id="semantics">Semantics</h3>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3904&#038;to=3905">r3905</a>, <a href="http://html5.org/tools/web-apps-tracker?from=3947&#038;to=3948">r3948</a>, and <a href="http://html5.org/tools/web-apps-tracker?from=3965&#038;to=3966">r3966</a> clarify that the <code>profile</code> attribute (used by <a href="http://microformats.org/wiki/profile-uris">various microformats</a>) takes a space-separated list of addresses, not just a single address. This has been the subject of heated debate for over 12 years, because HTML 4 claims that "<a href="http://www.w3.org/TR/html401/struct/global.html#h-7.4.4.3">the value of the profile attribute is a URI; user agents may use this URI in two ways...</a>" while simultaneously claiming that "<a href="http://www.w3.org/TR/html401/struct/global.html#h-7.4.1">this attribute specifies the location of one or more meta data profiles, separated by white space</a>." [Background: <a href="http://lists.w3.org/Archives/Public/public-html/2007Jul/0571.html">let's keep metadata profiles (head/@profile) in HTML for use in GRDDL etc.</a>, <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2008-May/014692.html">[whatwg] HTML4's profile="" attribute's absence in HTML5</a>, <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7413">Bug 7413</a>, <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7484">Bug 7484</a>, <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7512">Bug 7512</a>, and <a href="http://www.w3.org/html/wg/tracker/issues/55">Issue 55</a>.]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3868&#038;to=3869">r3869</a> tweaks the definitions of <code>&lt;section></code>, <code>&lt;article></code>, and <code>&lt;details></code> based on <a href="http://adactio.com/journal/1607/">an informal study by Jeremy Keith</a>. <a href="http://html5.org/tools/web-apps-tracker?from=3978&#038;to=3979">r3979</a> further tweaks the definition of <code>&lt;article></code>, and <a href="http://html5.org/tools/web-apps-tracker?from=3977&#038;to=3978">r3978</a> mentions that the <code>&lt;article></code> element is semantically similar to the <a href="http://atompub.org/rfc4287.html#element.entry"><code>&lt;entry></code> element in RFC 4287 (Atom Syndication Format)</a>. [Background: <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/thread.html#22966">[whatwg] article/section/details naming/definition problems</a>. Related: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7551">Bug 7551</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3953&#038;to=3954">r3954</a> further clarifies the definition of <code>&lt;footer></code>. [Background: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7502">Bug 7502</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3906&#038;to=3907">r3907</a> clarifies the workings of the registries for the enumerated values of <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#linkTypes"><code>&lt;link rel></code></a>, <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#other-metadata-names"><code>&lt;meta name></code></a>, and <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#other-pragma-directives"><code>&lt;meta http-equiv></code></a> attributes.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3903&#038;to=3904">r3904</a> tweaks the semantics of <code>&lt;link rel="up"></code>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3961&#038;to=3962">r3962</a> modifies the <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/sections.html#outlines">outline algorithm</a> (used to generate a kind of "table of contents" of an HTML document based on sections and headers) to handle an obscure edge case. [Background: <a href="http://krijnhoetmer.nl/irc-logs/whatwg/20090906#l-278">IRC discussion of edge case</a>, <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7527">Bug 7527</a>, and in particular <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7527#c2">this comment on Bug 7527</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3986&#038;to=3987">r3987</a> gives an example to clarify that the <code>&lt;nav></code> element does not always need to be a child of a <code>&lt;header></code> element.</li>
</ul>

<h3 id="video">Video</h3>

<p>As regular readers of this column are aware, one of the big new user-visible features of HTML5 is <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html">native video support without plugins</a>. As video is incredibly complicated, so to is the video support in HTML5. (Although not related to this week's changes, you may be interested to read my series, <a href="http://diveintomark.org/tag/give">A gentle introduction to video encoding</a>.)</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3866&#038;to=3867">r3867</a> modifies the algorithm for sizing anamorphic video within a <code>&lt;video></code> element, and <a href="http://html5.org/tools/web-apps-tracker?from=3912&#038;to=3913">r3913</a> defines how to display a frame of anamorphic video in a <a href="http://diveintohtml5.org/canvas.html#gradients">canvas pattern</a>. [Background: <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/thread.html#msg194">Re: video size when aspect ratio is not 1</a>, <a href="http://www.dvdfile.com/tech/article/what-the-heck-is-anamorphic-8819">What The Heck Is Anamorphic?</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3923&#038;to=3924">r3924</a> defines what happens when you dynamically insert a <code>&lt;source></code> element as a child of a <code>&lt;video></code> element that also has a <code>src</code> attribute, and <a href="http://html5.org/tools/web-apps-tracker?from=3924&#038;to=3925">r3925</a> defines what happens when you dynamically remove a <code>&lt;video src></code> attribute. [Background: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7631">Bug 7631</a>, <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7632">Bug 7632</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3926&#038;to=3927">r3927</a> gives advice on how browsers could render an <code>&lt;audio></code> element with a <code>controls</code> attribute.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3991&#038;to=3992">r3992</a> makes further refinements to the <code>play()</code> and <code>pause()</code> algorithms.</li>
</ul>

<h3 id="web-forms">Web Forms</h3>

<p>Forms continue to be difficult.</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3873&#038;to=3874">r3874</a> allows browsers to reset the list of selected files of an <code>&lt;input type="file"></code> element by setting its <code>value</code> attribute to the empty string. [Background: <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/022992.html">[whatwg] Setting .value on &lt;input type=file></a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3921&#038;to=3922">r3922</a> clarifies that setting the <code>disabled</code> attribute of a <code>&lt;fieldset></code> element should not disable the children of the fieldset's <code>&lt;legend></code> element. [Background: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7591">Bug 7591</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3933&#038;to=3934">r3934</a> defines that the <code>maxLength</code> property should return -1 on a <code>&lt;textarea></code> or <code>&lt;input></code> element that does not include a <code>maxlength</code> attribute. [Background: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7427">Bug 7427</a>]</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3956&#038;to=3957">r3957</a> clarifies that implicit form submission should validate the form first. [Background: <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7511">Bug 7511</a>]</li>
</ul>

<h3 id="interesting-discussions">Interesting Discussion Threads This Week</h3>

<ul>
<li>I like <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/thread.html#23091">this proposal for adding a <code>document.head</code> property</a>. It would presumably be faster than <code>document.getElementsByTagName('head')[0]</code>, and <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/023109.html">more reliable than <code>document.documentElement.firstChild</code></a>.</li>
<li><a href="http://wiki.whatwg.org/wiki/Web_Encodings">Character encoding on the web</a> is <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-September/023208.html">even worse than you think</a>.</li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0877.html">Re: On testing HTML</a></li>
</ul>

<h3 id="around-the-web">Around the Web</h3>

<ul>
<li><cite>Brad Neuberg</cite>: <a href="http://googlecode.blogspot.com/2009/09/video-introduction-to-html-5.html">A video introduction to HTML5</a></li>
<li>Google (my employer) <a href="http://blog.chromium.org/2009/09/introducing-google-chrome-frame.html">released</a> an intriguing project called <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a>. It's a plugin for Internet Explorer that enables a number of new HTML5 capabilities on an opt-in basis. Here's <a href="http://jimray.tumblr.com/post/194793633/more-technical-details-about-google-chrome-frame">a few technical details</a>. Reaction has ranged from <a href="http://fishbowl.pastiche.org/2009/09/23/google_you_clever_bastards/">impressed</a> to <a href="http://intertwingly.net/blog/2009/09/23/Chromie-Dont-Play-That">unimpressed</a> to <a href="http://arstechnica.com/microsoft/news/2009/09/microsoft-google-chrome-frame-makes-ie-less-secure.ars">positively ironic</a>. Google Wave <a href="http://googlewavedev.blogspot.com/2009/09/google-wave-in-internet-explorer.html">is one of the first web applications to opt-in</a> and suggest that Internet Explorer users download the plugin.</li>
<li><cite>Steve Faulkner</cite>: <a href="http://www.slideshare.net/stevefaulkner/html5-waiaria-happy-families">HTML5 &amp; WAI-ARIA: Happy Families</a>, a slide deck about current HTML5 accessibility features, misfeatures, and support in browsers and assistive technologies.</li>
<li><a href="http://hyper-metrix.com/#Burst">Burst Engine</a> is "an OpenSource vector animation engine for the HTML5 Canvas Element."</li>
<li><cite>Peter-Paul Koch</cite>: <a href="http://www.quirksmode.org/blog/archives/2009/09/the_html5_drag.html">The HTML5 drag and drop disaster</a></li>
</ul>

<p>Tune in next week for another exciting edition of "This Week in HTML5."</p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html5-episode-36/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in HTML5 &#8211; Episode 35</title>
		<link>http://www.htmlfive.net/this-week-in-html5-episode-35/</link>
		<comments>http://www.htmlfive.net/this-week-in-html5-episode-35/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 01:44:02 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=983</guid>
		<description><![CDATA[Topics this week include keygen, dialog, and the pros and cons of including examples in specs.]]></description>
			<content:encoded><![CDATA[<p>On August 7, 2009, Adrian Bateman did what no man or woman had ever done before: he gave <a href="http://lists.w3.org/Archives/Public/public-html/2009Aug/0389.html">substantive feedback on the current editor's draft of HTML5 on behalf of Microsoft</a>. His feedback was detailed and well-reasoned, and <a href="http://lists.w3.org/Archives/Public/public-html/2009Aug/thread.html#msg389">it spawned much discussion</a>. See also: <a href="http://lists.w3.org/Archives/Public/public-html/2009Aug/0741.html">Adrian's followup on <code>&lt;progress></code></a> (<a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0045.html">and more here</a>); <a href="http://lists.w3.org/Archives/Public/public-html/2009Aug/0628.html">his followup on <code>&lt;canvas></code></a>; <a href="http://lists.w3.org/Archives/Public/public-html/2009Aug/0509.html">on <code>&lt;datagrid></code></a> (which was actually <a href="http://blog.whatwg.org/this-summer-in-html-5-episode-33#gone">dropped from HTML5</a> just minutes after Adrian posted his initial feedback, for unrelated reasons); <a href="http://lists.w3.org/Archives/Public/public-html/2009Aug/0507.html">his discussion with a Mozilla developer about <code>&lt;bb></code></a> (which was <a href="http://blog.whatwg.org/this-summer-in-html-5-episode-33#gone">also subsequently dropped</a>); <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0041.html">discussion about <code>&lt;dialog></code></a> (which has now been dropped -- more on that in just a minute); <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0043.html">Adrian's followup on <code>&lt;keygen></code></a>, with <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0385.html">additional concerns listed here</a>; <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0047.html">his followup on the new input types</a>; and last but not least, <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0049.html">his position on <code>&lt;video></code> and <code>&lt;audio></code></a> (and <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0376.html">followup about best-choice algorithms</a>).</p>

<p>As you might expect, much of the discussion since August 7 has been driven by Microsoft's feedback. After five years of virtual silence, nobody wants to miss the opportunity to engage with a representative of the world's still-dominant browser. I want to focus on two discussions that have led to recent spec changes.</p>

<h3 id=keygen>The rise and fall of <code>&lt;keygen></code></h3>

<p>The <code>&lt;keygen></code> element was invented by Netscape and subsequently reverse-engineered by every other browser vendor except Microsoft. It had never been part of any HTML specification before; indeed, it wasn't well-documented anywhere. It was <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019206.html">added to HTML5 earlier this year</a> (and covered in <a href="http://blog.whatwg.org/this-week-in-html-5-episode-12">episode 12</a> and <a href="http://blog.whatwg.org/this-week-in-html-5-episode-31">episode 31</a>). The spec text borrows heavily from <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20080714/07ea5534/attachment.txt">this incredibly detailed documentation posted to the WHATWG mailing list last July</a>.</p>

<p>Adrian, on behalf of Microsoft, has stated in no uncertain terms that Microsoft has no intention of ever implementing the <code>&lt;keygen></code> element, and they would like it to be <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0153.html">removed from HTML5</a>. But what does "implementing" <code>&lt;keygen></code> mean? Well, the point of <code>&lt;keygen></code> is to provide a cryptography <abbr>API</abbr>, but as Ian Hickson points out, the element itself "<a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0302.html">integrates tightly with the form submission model</a>, it affects the DOM APIs of other elements, it affects the parser, it affects the form control validity model -- it's not a feature that can be sensibly considered 'optional' if our goal is cross-browser interoperability. However, there is an alternative that I think would still satisfy Microsoft's desires to not implement <code>&lt;keygen></code>'s cryptographic features while still bringing interoperability to the platform in every other respect: we could make the support of each individual signature algorithm optional."</p>

<p><a href="http://html5.org/tools/web-apps-tracker?from=3842&amp;to=3843">r3843</a> does just that -- it makes the cryptography parts of <code>&lt;keygen></code> optional. It is important that the element itself be implemented (even without the crypto bits), because it interacts with the <abbr>DOM</abbr> and the parsing model in strange ways.</p>

<p>As an postscript of sorts, I should point out that <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0622.html">a recent change to the <code>keytype</code> attribute</a> (<a href="http://html5.org/tools/web-apps-tracker?from=3867&amp;to=3868">r3868</a>) allows client-side script to detect whether the crypto bits are actually supported. <a href="http://diveintohtml5.org/detect.html">Detecting features is important</a>, and this subtle change will allow authors to write feature detection scripts instead of relying on browser sniffing to decide whether to use keygen-based cryptography.</p>

<h3 id=dialog>The art of conversation is, like, dead and stuff</h3>

<p>Another hot topic this week is <a href="http://html5.org/tools/web-apps-tracker?from=3858&amp;to=3859">the removal of the <code>&lt;dialog></code> element</a>. As I mentioned at the beginning of this article, Microsoft questioned the wisdom of a specialized element for marking up dialog. Other people have suggested that the element does not actually go far enough -- it lets you mark up basic conversation (people talking), but provides no semantics for stage directions, actions, thoughts, voiceover narration, and so on. (See also: <a href="http://www.alistapart.com/articles/unwebbable/">Unwebbable</a>, "The screenplay problem.")</p>

<p>To decide this burning question, the <code>&lt;dialog></code> element was removed, and conversations are now listed in the section on <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/commands.html#conversations">Common idioms without dedicated elements</a>, with an example of how one might mark up a conversation with more generic markup, if one were inclined to do so. Predictably, this has already caused <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0618.html">some backlash from the pro-<code>&lt;dialog></code> camp</a>.</p>

<p>The conversation about marking up conversations also intersects with another burning question: <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/thread.html#msg465">can you use the <code>&lt;cite></code> element to mark up a person's name</a>? HTML 4 said yes, and even <a href="http://www.w3.org/TR/html401/struct/text.html#h-9.2.1">provided an example that used the <code>&lt;cite></code> element that way</a>. Dan Connolly, who added the <code>&lt;cite></code> element to HTML 2 (yes, 2), says "<a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0506.html">I consider that a bug in the HTML 4 spec</a>. I wish I had reviewed it more closely." Still, specs are normative, not what their authors say about them after-the-fact, and the web has collectively had 12 years of HTML 4 which explicitly blessed the technique. I've used <code>&lt;cite></code> to mark up people's names for years in my own markup, and I'm certainly not going to go back and change all those blog entries to conform to somebody's sense of purity.</p>

<h3 id=examples>New examples</h3>

<p>Speaking of examples, the HTML5 spec just got a whole lot more of them. To wit:</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3783&amp;to=3784">r3784: <code>&lt;html></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3784&amp;to=3785">r3785: <code>&lt;head></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3785&amp;to=3786">r3786: <code>&lt;base></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3786&amp;to=3787">r3787: <code>&lt;link></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3788&amp;to=3789">r3789: <code>&lt;meta></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3789&amp;to=3790">r3790: <code>&lt;style></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3790&amp;to=3791">r3791: <code>&lt;script></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3792&amp;to=3793">r3793</a> and <a href="http://html5.org/tools/web-apps-tracker?from=3855&amp;to=3856">r3856</a>: <code>&lt;noscript></code> example</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3795&amp;to=3796">r3796: <code>&lt;article></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3807&amp;to=3808">r3808: <code>&lt;iframe></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3808&amp;to=3809">r3809: <code>&lt;embed></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3809&amp;to=3810">r3810: <code>&lt;canvas></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3810&amp;to=3811">r3811: <code>&lt;math></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3813&amp;to=3814">r3814: <code>&lt;form></code> and <code>&lt;fieldset></code> examples</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3814&amp;to=3815">r3815: <code>list=""</code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3815&amp;to=3816">r3816: <code>readonly=""</code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3816&amp;to=3817">r3817: <code>required=""</code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3817&amp;to=3818">r3818: <code>multiple=""</code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3818&amp;to=3819">r3819: <code>maxlength=""</code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3819&amp;to=3820">r3820: <code>step</code>, <code>min</code>, and <code>max</code> examples</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3820&amp;to=3821">r3821: <code>&lt;button></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3821&amp;to=3822">r3822: <code>&lt;select></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3822&amp;to=3823">r3823: <code>&lt;optgroup></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3823&amp;to=3824">r3824: <code>&lt;textarea></code> and <code>&lt;output></code> examples</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3824&amp;to=3825">r3825: <code>&lt;details></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3800&amp;to=3801">r3801</a> and <a href="http://html5.org/tools/web-apps-tracker?from=3805&amp;to=3806">r3806</a>: <code>&lt;h1></code> example</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3803&amp;to=3804">r3804: <code>&lt;hr></code> and <code>&lt;span></code> examples</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3804&amp;to=3805">r3805: <code>&lt;del></code> example</a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3862&amp;to=3863">r3863: example of how to get the filename out of <code>input.value</code></a></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3798&amp;to=3799">r3799: example of how to mark up comments on a weblog</a> using <code>&lt;article></code>, <code>&lt;section></code>, and <code>&lt;header></code></li>
</ul>

<h3 id=further-reading>Further Reading</h3>

<p>Other spec changes this week:</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3851&amp;to=3852">r3852</a> allows <code>&lt;span title=&#038;></code></li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3845&amp;to=3846">r3846</a> clarifies that <code>&lt;button type="reset"></code> is excluded from form validation.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3840&amp;to=3841">r3841</a> clarifies that <code>&lt;aside></code> may be used for sidebars, advertising, or groups of <code>&lt;nav></code> elements. It can still be used for pull quotes, for example <a href="http://diveintopython3.org/strings.html">the sentence "Everything you thought you knew about strings is wrong"</a> on a page about string processing.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3836&amp;to=3837">r3837</a> defines the concept of "being rendered." As with many things in HTML5, what scares me most about this change is that we survived so long without this being defined at all.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=3852&amp;to=3853">r3853</a> adds a note about <a href="http://blog.whatwg.org/response-to-notes-on-html-5#violations">another willful violation</a>, this time stripping the Byte Order Mark character (U+FEFF) even from places where it is not being used as a byte order mark.</li>
</ul>

<p>Around the web:</p>

<ul>
<li><cite>Francisco Ryan Tolmasky</cite>: <a href="http://www.alertdebugging.com/2009/08/16/on-html-5-drag-and-drop/">On HTML 5 Drag and Drop</a>.</li>
<li><cite>Jamie Newman</cite>: <a href="http://carsonified.com/blog/dev/html-5-dev/how-to-draw-with-html-5-canvas/">How to Draw with HTML 5 Canvas</a></li>
<li><cite>WHATWG wiki</cite>: <a href="http://wiki.whatwg.org/wiki/HTML_vs._XHTML">Differences between HTML and XHTML</a> is chock full of interesting comparisons.</li>
<li><cite>WHATWG wiki</cite>: <a href="http://wiki.whatwg.org/wiki/Web_Encodings">Web Encodings</a>, "an attempt at fixing the Web encoding problem." Good luck with that.</li>
<li><cite>Edward O'Connor</cite>: <a href="http://edward.oconnor.cx/2009/09/using-the-html5-sectioning-elements">Blog templates: a case study in using HTML5’s sectioning elements</a>. "The HTML5 spec introduces several new sectioning elements. ... There's widespread confusion about when to use these elements." No kidding.</li>
<li><cite>Mark Pilgrim</cite>: <a href="http://diveintohtml5.org/detect.html">Detecting HTML5 Features</a>. I'm currently writing a book on HTML5, to be published next February by O'Reilly and Google Press. This is the second chapter I've written so far. (The first chapter I wrote was <a href="http://diveintohtml5.org/canvas.html">Let's Call It a Draw(ing Surface)</a>, a still-unfinished tutorial on using the canvas <abbr>API</abbr>.)</li>
<li><cite>Aten Design Group</cite>: <a href="http://www.atendesigngroup.com/blog/brief-history-of-html">A Brief History of HTML</a>.</li>
<li><cite>Jeremy Keith</cite>: <a href="http://adactio.com/journal/1609/">The devil in the details</a>, on the continuing saga of marking up conversations.</li>
<li><cite>Edward O'Connor</cite>: <a href="http://edward.oconnor.cx/2009/09/normativity">HTML5: normativity &amp; authoring guides</a>. "Not only is [HTML5] big, but it's full of complicated algorithms and other browser implementation details that even standards-aware web authors probably don't care about." Indeed.</li>
<li><cite>Sam Ruby</cite>: <a href="http://intertwingly.net/blog/2009/09/08/First-Polyglot-Validator-Check-Deployed">First Polyglot Validator Check Deployed</a>. I personally believe this is a waste of time, since there are approximately 3 people in the world who actually serve polyglot documents, all of whom seem to be doing fine without this option, and the presence of the option will just serve to confuse the other 3 million validator users who think they're serving XHTML when they're not. But one of those 3 people has commit access to the HTML5 validator, so I guess we'll get to see whether I'm right or wrong.</li>
</ul>

<p>Quote of the week:</p>

<p>Richard Schwerdtfeger, Distinguished Engineer and Chief Accessibility Architect at IBM, co-author of <a href="http://www.w3.org/TR/wai-aria/">Accessible Rich Internet Applications (WAI-ARIA) 1.0</a>, <a href="http://www.w3.org/TR/xhtml-access/">XHTML Access Module</a>, and <a href="http://www.w3.org/TR/xhtml-role/">XHTML Role Attribute Module</a>, <a href="http://lists.w3.org/Archives/Public/public-html/2009Sep/0596.html">in a discussion of <code>aria-describedby</code></a>:</p>

<blockquote cite="http://lists.w3.org/Archives/Public/public-html/2009Sep/0596.html">
<p><code>longdesc</code> was a disaster.</p>
</blockquote>

<p>On a personal note, I'm writing this on a new laptop with a sticky "3" key, a minor annoyance turned major by the fact that this week's revisions are numbered in the 3000 range. While many people complain about the pace of changes in HTML5, as far as I'm concerned, revision 4000 can not come quickly enough.</p>

<p>Tune in next week for another exciting edition of "This Week in HTML 5."</p>
]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html5-episode-35/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in HTML 5 &#8211; Episode 31</title>
		<link>http://www.htmlfive.net/this-week-in-html-5-episode-31/</link>
		<comments>http://www.htmlfive.net/this-week-in-html-5-episode-31/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 16:05:00 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=718</guid>
		<description><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>This big news this week is the <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#datagrid"><code>&#60;datagrid&#62;</code> element</a>. This is a brand spanking new element introduced in <a href="http://html5.org/tools/web-apps-tracker?from=2961&#38;to=2962">r2962</a>.</p>

<blockquote cite="http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#datagrid">
<p>In the <code>datagrid</code> data model, data is structured as a set of rows representing a tree, each row being split into a number of columns. The columns are always present in the data model, although individual columns might be hidden in the presentation.</p>
<p>Each row can have child rows. Child rows may be hidden or shown, by closing or opening (respectively) the parent row.</p> 
<p>Rows are referred to by the path along the tree that one would take to reach the row, using zero-based indices. Thus, the first row of a list is row "0", the second row is row "1"; the first child row of the first row is row "0,0", the second child row of the first row is row "0,1"; the fourth child of the seventh child of the third child of the tenth row is "9,2,6,3", etc.</p> 
<p>The chains of numbers that give a row's path, or identifier, are represented by arrays of positions, represented in IDL by the <code>RowID</code> interface.</p>
<p>The root of the tree is represented by an empty array.</p>
<p>Each column has a string that is used to identify it in the API, a label that is shown to users interacting with the column, a type, and optionally an icon.</p>
<p>The possible types are as follows:</p> 
<table>
<thead>
  <tr><th>Keyword</th><th>Description</th></tr>
</thead>
<tbody>
  <tr><td><code>text</code></td><td>Simple text.</td></tr>
  <tr><td><code>editable</code></td><td>Editable text.</td></tr>
  <tr><td><code>checkable</code></td><td>Text with a check box.</td></tr>
  <tr><td><code>list</code></td><td>A list of values that the user can switch between.</td></tr>
  <tr><td><code>progress</code></td><td>A progress bar.</td></tr>
  <tr><td><code>meter</code></td><td>A gauge.</td></tr>
  <tr><td><code>custom</code></td><td>A canvas onto which arbitrary content can be drawn.</td></tr>
</tbody>
</table>
<p>Each column can be flagged as sortable, in which case the user will be able to sort the view using that column.</p>
<p>Columns are not necessarily visible. A column can be created invisible by default. The user can select which columns are to be shown.</p> 
 <p>When no columns have been added to the <code>datagrid</code>, a column with no name, whose identifier is the empty string, whose type is <code>text</code>, and which is not sortable, is implied. This column is removed if any explicit columns are declared.</p> 
<p>Each cell uses the type given for its column, so all cells in a column present the same type of information.</p>
</blockquote>

<p>The other major change to the spec this week is <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#the-keygen-element">the <code>&#60;keygen&#62;</code> element</a>. As I mentioned in <a href="http://blog.whatwg.org/this-week-in-html-5-episode-12">episode 12</a>, someone went to the trouble of <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20080714/07ea5534/attachment.txt">documenting the <code>&#60;keygen&#62;</code> element</a>, and there has been a surprising amount of <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019206.html">discussion about it in the past six months</a>. Simply put, the keygen element represents a key-pair generator control. You include it in a <code>&#60;form&#62;</code>. When your browser submits the form, the private key is stored in the local keystore, and the public key is packaged and sent to the server. [<a href="http://html5.org/tools/web-apps-tracker?from=2959&#38;to=2960">r2960</a>]</p>

<p>Not much else went into the spec this week, but there's been a lot of interesting activity around the web.</p>

<ul>
<li><a href="http://www.w3.org/TR/2009/WD-html5-20090423/">A new W3C Working Draft of HTML 5</a> is out. <a href="http://blog.whatwg.org/this-week-day-in-html-5-episode-23">As I've mentioned before</a>, this is just a snapshot of progress-to-date. By its very nature, it is out of date as soon as it's published, since the working group continues to progress while the webmaster gnomes are publishing.</li>
<li>Also published: <a href="http://www.w3.org/TR/2009/WD-html5-diff-20090423/">the latest draft of "HTML 5 differences from HTML 4"</a>, compiled by Opera's <a href="http://annevankesteren.nl">Anne van Kesteren</a>.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=465007">Mozilla bug 465007</a>: "Harmonize content sniffing in HTML 5 and Firefox." The next version of Firefox will sniff images the way the HTML 5 specification recommends. I am still opposed to content sniffing on philosophical grounds, but philosophy doesn't get you very far on the open web, and documented heuristics are better than undocumented heuristics. And interoperable, documented heuristics are even better!</li>
<li>Speaking of content sniffing, Adam Barth's [PDF] whitepaper, <a href="http://www.adambarth.com/papers/2009/barth-caballero-song.pdf">Secure Content Sniffing For Web Browsers</a>, is an excellent read.</li>
<li>Henri Sivonen's <a href="http://hsivonen.iki.fi/last-html-quirk/">The Last of the Parsing Quirks</a> is equally fascinating.</li>
<li><a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019322.html">Superset encodings [Re: ISO-8859-* and the C1 controlrange]</a> is an incredibly detailed look into the insane world of character encoding.</li>
<li>You can still <a href="http://blog.whatwg.org/help-us-review-html5">help us review HTML 5</a>! Your input is important!</li>
</ul>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p>
]]></description>
			<content:encoded><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>This big news this week is the <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#datagrid"><code>&lt;datagrid&gt;</code> element</a>. This is a brand spanking new element introduced in <a href="http://html5.org/tools/web-apps-tracker?from=2961&amp;to=2962">r2962</a>.</p>

<blockquote cite="http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#datagrid">
<p>In the <code>datagrid</code> data model, data is structured as a set of rows representing a tree, each row being split into a number of columns. The columns are always present in the data model, although individual columns might be hidden in the presentation.</p>
<p>Each row can have child rows. Child rows may be hidden or shown, by closing or opening (respectively) the parent row.</p> 
<p>Rows are referred to by the path along the tree that one would take to reach the row, using zero-based indices. Thus, the first row of a list is row "0", the second row is row "1"; the first child row of the first row is row "0,0", the second child row of the first row is row "0,1"; the fourth child of the seventh child of the third child of the tenth row is "9,2,6,3", etc.</p> 
<p>The chains of numbers that give a row's path, or identifier, are represented by arrays of positions, represented in IDL by the <code>RowID</code> interface.</p>
<p>The root of the tree is represented by an empty array.</p>
<p>Each column has a string that is used to identify it in the API, a label that is shown to users interacting with the column, a type, and optionally an icon.</p>
<p>The possible types are as follows:</p> 
<table>
<thead>
  <tr><th>Keyword</th><th>Description</th></tr>
</thead>
<tbody>
  <tr><td><code>text</code></td><td>Simple text.</td></tr>
  <tr><td><code>editable</code></td><td>Editable text.</td></tr>
  <tr><td><code>checkable</code></td><td>Text with a check box.</td></tr>
  <tr><td><code>list</code></td><td>A list of values that the user can switch between.</td></tr>
  <tr><td><code>progress</code></td><td>A progress bar.</td></tr>
  <tr><td><code>meter</code></td><td>A gauge.</td></tr>
  <tr><td><code>custom</code></td><td>A canvas onto which arbitrary content can be drawn.</td></tr>
</tbody>
</table>
<p>Each column can be flagged as sortable, in which case the user will be able to sort the view using that column.</p>
<p>Columns are not necessarily visible. A column can be created invisible by default. The user can select which columns are to be shown.</p> 
 <p>When no columns have been added to the <code>datagrid</code>, a column with no name, whose identifier is the empty string, whose type is <code>text</code>, and which is not sortable, is implied. This column is removed if any explicit columns are declared.</p> 
<p>Each cell uses the type given for its column, so all cells in a column present the same type of information.</p>
</blockquote>

<p>The other major change to the spec this week is <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#the-keygen-element">the <code>&lt;keygen&gt;</code> element</a>. As I mentioned in <a href="http://blog.whatwg.org/this-week-in-html-5-episode-12">episode 12</a>, someone went to the trouble of <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20080714/07ea5534/attachment.txt">documenting the <code>&lt;keygen&gt;</code> element</a>, and there has been a surprising amount of <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019206.html">discussion about it in the past six months</a>. Simply put, the keygen element represents a key-pair generator control. You include it in a <code>&lt;form&gt;</code>. When your browser submits the form, the private key is stored in the local keystore, and the public key is packaged and sent to the server. [<a href="http://html5.org/tools/web-apps-tracker?from=2959&amp;to=2960">r2960</a>]</p>

<p>Not much else went into the spec this week, but there's been a lot of interesting activity around the web.</p>

<ul>
<li><a href="http://www.w3.org/TR/2009/WD-html5-20090423/">A new W3C Working Draft of HTML 5</a> is out. <a href="http://blog.whatwg.org/this-week-day-in-html-5-episode-23">As I've mentioned before</a>, this is just a snapshot of progress-to-date. By its very nature, it is out of date as soon as it's published, since the working group continues to progress while the webmaster gnomes are publishing.</li>
<li>Also published: <a href="http://www.w3.org/TR/2009/WD-html5-diff-20090423/">the latest draft of "HTML 5 differences from HTML 4"</a>, compiled by Opera's <a href="http://annevankesteren.nl">Anne van Kesteren</a>.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=465007">Mozilla bug 465007</a>: "Harmonize content sniffing in HTML 5 and Firefox." The next version of Firefox will sniff images the way the HTML 5 specification recommends. I am still opposed to content sniffing on philosophical grounds, but philosophy doesn't get you very far on the open web, and documented heuristics are better than undocumented heuristics. And interoperable, documented heuristics are even better!</li>
<li>Speaking of content sniffing, Adam Barth's [PDF] whitepaper, <a href="http://www.adambarth.com/papers/2009/barth-caballero-song.pdf">Secure Content Sniffing For Web Browsers</a>, is an excellent read.</li>
<li>Henri Sivonen's <a href="http://hsivonen.iki.fi/last-html-quirk/">The Last of the Parsing Quirks</a> is equally fascinating.</li>
<li><a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019322.html">Superset encodings [Re: ISO-8859-* and the C1 controlrange]</a> is an incredibly detailed look into the insane world of character encoding.</li>
<li>You can still <a href="http://blog.whatwg.org/help-us-review-html5">help us review HTML 5</a>! Your input is important!</li>
</ul>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p>
<p></p><p>This item was originally posted at: <a href='http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href='http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html-5-episode-31/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in HTML 5 &#8211; Episode 30</title>
		<link>http://www.htmlfive.net/this-week-in-html-5-episode-30/</link>
		<comments>http://www.htmlfive.net/this-week-in-html-5-episode-30/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 15:03:15 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=680</guid>
		<description><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>There has been very little spec-related activity this week, so I will briefly repeat Ian Hickson's request to <a href="http://blog.whatwg.org/help-us-review-html5">Help us review HTML5</a> and then turn to a fascinating debate happening right now on the WHATWG mailing list.</p>

<p>The debate revolves around perceptions and expectations of privacy. Brady Eidson (Apple/WebKit) kicks off the discussion with <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019238.html">Private browsing vs. Storage and Databases</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019238.html">
<p>A commonly added feature in browsers these days is "private browsing mode" where the intention is that the user's browsing session leaves no footprint on their machine. Cookies, cache files, history, and other data that the browser would normally store to disk are not updated during these private browsing sessions.</p>
<p>This concept is at odds with allowing pages to store data on the user's machine as allowed by LocalStorage and Databases. Sur[e]ly persistent changes during a private browsing session shouldn't be written to the user's disk as that would violate the intention of a private browsing session. ...</p>
<ol>
<li>Disable LocalStorage completely when private browsing is on. Remove it from the DOM completely.</li>
<li>Disable LocalStorage mostly when private browsing is on. It exists at window.localStorage, but is empty and has a 0-quota.</li>
<li>Slide a "fake" LocalStorage object in when private browsing is enabled. It starts empty, changes to it are successful, but it is never written to disk. When private browsing is disabled, all changes to the private browsing proxy are thrown out.</li>
<li>Cover the real LocalStorage object with a private browsing layer. It starts with all previously stored contents. Any changes to it are pretended to occur, but are never written to disk. When private browsing is disabled, all items revert to the state they were in when private browsing was enabled and writing changes to disk is re-enabled.</li>
<li>Treat LocalStorage as read-only when private browsing is on. It exists, and all previously stored contents can be retrieved. Any attempt to setItem(), removeItem(), or clear() fail.</li>
</ol>
</blockquote>

<p>Ian Fette (Google/Chrome) explains <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019239.html">how Google Chrome handles LocalStorage in "incognito" mode</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019239.html">
<p>[W]hilst the [incognito] session is active, pages can still use a database / local storage / ... / and at the end of the session, when that [temporary] profile is deleted, things will go away. I personally like that approach, as there may be legitimate reasons to want to use a database even for just a single session.</p>
</blockquote>

<p>Darin Fisher (Google/Chrome) follows up to <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019292.html">clarify Google Chrome's behavior</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019292.html">
<p>Chrome's "incognito mode" means -- is defined as -- starting from a clean slate (as if you started browsing for the first time on a new computer), and when you exit incognito mode, the accumulated data is discarded. That's all there is to it. The behavior of LocalStorage and Database in this mode is deduced easily from that definition.</p>
</blockquote>

<p>Jonas Sicking (Mozilla/Firefox) <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019245.html">explains his opposition to option 5</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019245.html">
<p>My concern with this is the same as the reason we in firefox clear all cookies when entering private browsing mode. The concern is as follows:</p>
<ul>
<li>A search engine stores a user-id token in a cookie. They then use this token to server side store the users 10 last searches.</li>
<li>A user uses this search engine to search for various items. Doing this causes the user-id token to be stored in a cookie.</li>
<li>The user then switches to private browsing mode.</li>
<li>The user makes a search for a present for his wife.</li>
<li>The user switches back into normal browsing mode.</li>
</ul>
<p>At this point it is still possible to see the search for the wifes present in the websites store of recent searches.</p>
<p>Something very similar could happen for localStorage I would imagine, where the user-identifing information is stored in the localStorage rather than a cookie.</p>
</blockquote>

<p>Josh "timeless" Soref (core Firefox developer) <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019274.html">explores the privacy implications of different options</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019274.html">
<p>[Option 1: Disabling LocalStorage won't work because] Many sites will just assume that they know a given useragent supports localstorage, so they'll be surprised and break. This will mean that a user can't use certain sites.</p>
<p>[Option 2: Enabling LocalStorage with 0 quota] will enable sites to know that the user is browsing in private, which is probably also a violation of the user's trust model. If I were to be browsing in private, I wouldn't want most sites to know that I'm doing this.</p>
<p>[Option 4 or 5: Starting with existing LocalStorage data] means the site will know who you are (on average), and is almost certainly never what the user wants.</p>
</blockquote>

<p>Jonas Sicking (Mozilla/Firefox) <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019245.html">tentatively states</a></p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019245.html">
<p>For what it's worth, I believe we're currently planning on doing 2 in firefox.</p>
</blockquote>

<p>Brady Eidson <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019249.html">concludes</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019249.html">
<p>I strongly share Jonas' concern that we'd tell web applications that we're storing there data when we already know we're going to dump it later.  For 3 and 4 both, we're basically lying to the application and therefore the user.</p>
<p>... So far I'm standing by WebKit choosing #5 for now.</p>
</blockquote>

<p>Drew Wilson <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019285.html">summarizes his thoughts on the matter</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019285.html">
<p>I think the #1 goal for incognito mode has to be "maximum compatibility" -- let sites continue to work, which kills options #1 &#38; 2. A secondary goal for incognito mode would be "don't let sites know the user is in incognito mode" -- this kills approach #1 and #5, and possibly #2 (depending on whether there are significant non-incognito use cases that also have 0 local storage quota).</p>
</blockquote>

<p>For my part, I agree with Drew, and I would add this: I use Google Chrome's "incognito mode" quite frequently when I'm developing websites. It's an easy way to test from a "blank slate" with no cookies and no cache, and it's much easier than juggling multiple profiles. If data in my LocalStorage "bleeds" into incognito mode, this use case would become unreliable and web development would be harder for me. (<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019291.html">Bil Corry makes this point too</a>.)</p>

<p>On a more philosophical level, <em>it's nobody's business that I'm in private browsing mode</em>. (<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019277.html">Scott Hess makes this point too</a>.) If authors can detect it, I consider that a serious bug. (Imagine the ha.ckers.org headline: "Safari Hole Allows Sites To Detect 'Private' Browsing, Punish Users.") Even worse, if LocalStorage could be used as a "super-cookie" for less-than-honorable sites to track me from normal usage to incognito usage, then it's not really "private browsing" in any sense of the word that matters.</p>

<p>In the early days of <a href="http://www.greasespot.net/">Greasemonkey</a>, there were discussions of whether Greasemonkey should send or provide some detectable signal to page authors that Greasemonkey was running and the user had active scripts modifying the current page. <a href="http://www.mozdev.org/pipermail/greasemonkey/2005-April/001321.html ">To which I replied</a>:</p>

<blockquote cite="http://www.mozdev.org/pipermail/greasemonkey/2005-April/001321.html">
<p>If Greasemonkey makes any overtures towards allowing web publishers to "opt out" or override my browsing experience in any way, I will immediately fork it and make it my life's mission to maintain the fork as long as possible.</p>
</blockquote>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p>
]]></description>
			<content:encoded><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>There has been very little spec-related activity this week, so I will briefly repeat Ian Hickson's request to <a href="http://blog.whatwg.org/help-us-review-html5">Help us review HTML5</a> and then turn to a fascinating debate happening right now on the WHATWG mailing list.</p>

<p>The debate revolves around perceptions and expectations of privacy. Brady Eidson (Apple/WebKit) kicks off the discussion with <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019238.html">Private browsing vs. Storage and Databases</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019238.html">
<p>A commonly added feature in browsers these days is "private browsing mode" where the intention is that the user's browsing session leaves no footprint on their machine. Cookies, cache files, history, and other data that the browser would normally store to disk are not updated during these private browsing sessions.</p>
<p>This concept is at odds with allowing pages to store data on the user's machine as allowed by LocalStorage and Databases. Sur[e]ly persistent changes during a private browsing session shouldn't be written to the user's disk as that would violate the intention of a private browsing session. ...</p>
<ol>
<li>Disable LocalStorage completely when private browsing is on. Remove it from the DOM completely.</li>
<li>Disable LocalStorage mostly when private browsing is on. It exists at window.localStorage, but is empty and has a 0-quota.</li>
<li>Slide a "fake" LocalStorage object in when private browsing is enabled. It starts empty, changes to it are successful, but it is never written to disk. When private browsing is disabled, all changes to the private browsing proxy are thrown out.</li>
<li>Cover the real LocalStorage object with a private browsing layer. It starts with all previously stored contents. Any changes to it are pretended to occur, but are never written to disk. When private browsing is disabled, all items revert to the state they were in when private browsing was enabled and writing changes to disk is re-enabled.</li>
<li>Treat LocalStorage as read-only when private browsing is on. It exists, and all previously stored contents can be retrieved. Any attempt to setItem(), removeItem(), or clear() fail.</li>
</ol>
</blockquote>

<p>Ian Fette (Google/Chrome) explains <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019239.html">how Google Chrome handles LocalStorage in "incognito" mode</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019239.html">
<p>[W]hilst the [incognito] session is active, pages can still use a database / local storage / ... / and at the end of the session, when that [temporary] profile is deleted, things will go away. I personally like that approach, as there may be legitimate reasons to want to use a database even for just a single session.</p>
</blockquote>

<p>Darin Fisher (Google/Chrome) follows up to <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019292.html">clarify Google Chrome's behavior</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019292.html">
<p>Chrome's "incognito mode" means -- is defined as -- starting from a clean slate (as if you started browsing for the first time on a new computer), and when you exit incognito mode, the accumulated data is discarded. That's all there is to it. The behavior of LocalStorage and Database in this mode is deduced easily from that definition.</p>
</blockquote>

<p>Jonas Sicking (Mozilla/Firefox) <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019245.html">explains his opposition to option 5</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019245.html">
<p>My concern with this is the same as the reason we in firefox clear all cookies when entering private browsing mode. The concern is as follows:</p>
<ul>
<li>A search engine stores a user-id token in a cookie. They then use this token to server side store the users 10 last searches.</li>
<li>A user uses this search engine to search for various items. Doing this causes the user-id token to be stored in a cookie.</li>
<li>The user then switches to private browsing mode.</li>
<li>The user makes a search for a present for his wife.</li>
<li>The user switches back into normal browsing mode.</li>
</ul>
<p>At this point it is still possible to see the search for the wifes present in the websites store of recent searches.</p>
<p>Something very similar could happen for localStorage I would imagine, where the user-identifing information is stored in the localStorage rather than a cookie.</p>
</blockquote>

<p>Josh "timeless" Soref (core Firefox developer) <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019274.html">explores the privacy implications of different options</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019274.html">
<p>[Option 1: Disabling LocalStorage won't work because] Many sites will just assume that they know a given useragent supports localstorage, so they'll be surprised and break. This will mean that a user can't use certain sites.</p>
<p>[Option 2: Enabling LocalStorage with 0 quota] will enable sites to know that the user is browsing in private, which is probably also a violation of the user's trust model. If I were to be browsing in private, I wouldn't want most sites to know that I'm doing this.</p>
<p>[Option 4 or 5: Starting with existing LocalStorage data] means the site will know who you are (on average), and is almost certainly never what the user wants.</p>
</blockquote>

<p>Jonas Sicking (Mozilla/Firefox) <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019245.html">tentatively states</a></p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019245.html">
<p>For what it's worth, I believe we're currently planning on doing 2 in firefox.</p>
</blockquote>

<p>Brady Eidson <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019249.html">concludes</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019249.html">
<p>I strongly share Jonas' concern that we'd tell web applications that we're storing there data when we already know we're going to dump it later.  For 3 and 4 both, we're basically lying to the application and therefore the user.</p>
<p>... So far I'm standing by WebKit choosing #5 for now.</p>
</blockquote>

<p>Drew Wilson <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019285.html">summarizes his thoughts on the matter</a>:</p>

<blockquote cite="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019285.html">
<p>I think the #1 goal for incognito mode has to be "maximum compatibility" -- let sites continue to work, which kills options #1 &#38; 2. A secondary goal for incognito mode would be "don't let sites know the user is in incognito mode" -- this kills approach #1 and #5, and possibly #2 (depending on whether there are significant non-incognito use cases that also have 0 local storage quota).</p>
</blockquote>

<p>For my part, I agree with Drew, and I would add this: I use Google Chrome's "incognito mode" quite frequently when I'm developing websites. It's an easy way to test from a "blank slate" with no cookies and no cache, and it's much easier than juggling multiple profiles. If data in my LocalStorage "bleeds" into incognito mode, this use case would become unreliable and web development would be harder for me. (<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019291.html">Bil Corry makes this point too</a>.)</p>

<p>On a more philosophical level, <em>it's nobody's business that I'm in private browsing mode</em>. (<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-April/019277.html">Scott Hess makes this point too</a>.) If authors can detect it, I consider that a serious bug. (Imagine the ha.ckers.org headline: "Safari Hole Allows Sites To Detect 'Private' Browsing, Punish Users.") Even worse, if LocalStorage could be used as a "super-cookie" for less-than-honorable sites to track me from normal usage to incognito usage, then it's not really "private browsing" in any sense of the word that matters.</p>

<p>In the early days of <a href="http://www.greasespot.net/">Greasemonkey</a>, there were discussions of whether Greasemonkey should send or provide some detectable signal to page authors that Greasemonkey was running and the user had active scripts modifying the current page. <a href="http://www.mozdev.org/pipermail/greasemonkey/2005-April/001321.html ">To which I replied</a>:</p>

<blockquote cite="http://www.mozdev.org/pipermail/greasemonkey/2005-April/001321.html">
<p>If Greasemonkey makes any overtures towards allowing web publishers to "opt out" or override my browsing experience in any way, I will immediately fork it and make it my life's mission to maintain the fork as long as possible.</p>
</blockquote>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p>
<p></p><p>This item was originally posted at: <a href='http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href='http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html-5-episode-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in HTML 5 &#8211; Episode 29</title>
		<link>http://www.htmlfive.net/this-week-in-html-5-episode-29/</link>
		<comments>http://www.htmlfive.net/this-week-in-html-5-episode-29/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 04:13:19 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=675</guid>
		<description><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>The big news for the week of March 30<sup>th</sup> is the addition of a <a href="http://dev.w3.org/html5/webstorage/#synchronous-database-api">synchronous database API</a> to the Web Storage spec (which was split out from the HTML 5 spec a few weeks ago). This new <abbr>API</abbr> defines a <code>DatabaseSync</code> object whose methods return <code>SQLTransactionSync</code> objects. This directly mirrors the <a href="http://dev.w3.org/html5/webstorage/#asynchronous-database-api">asynchronous database API</a>, which had already defined a <code>Database</code> object whose methods return <code>SQLTransaction</code> objects. [<a href="http://html5.org/tools/web-apps-tracker?from=2957&#38;to=2958">r2958</a>]</p>

<p>Another interesting change this week is <a href="http://html5.org/tools/web-apps-tracker?from=2920&#38;to=2921">r2921</a>, which adds the <code>placeholder</code> attribute to the <code>&#60;textarea&#62;</code> element. I tracked the initial discussion of the <code>placeholder</code> attribute in <a href="http://blog.whatwg.org/this-week-in-html-5-episode-8">episode 8</a> and noted its appearance in HTML 5 in <a href="http://blog.whatwg.org/this-week-in-html-5-episode-13">episode 13</a>. Previously you could only use the <code>placeholder</code> attribute on <code>&#60;input type=text&#62;</code>, <code>&#60;input type=email&#62;</code>, <code>&#60;input type=url&#62;</code>, and <code>&#60;input type=password&#62;</code>, but <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2008-December/017683.html">Thomas Broyer pointed out</a> that <a href="http://code.google.com/hosting/">Google Code</a> (among others) uses placeholder text on <code>&#60;textarea&#62;</code> elements. Such sites could now theoretically migrate their current script-based solutions to HTML 5 markup.

</p><p>Other interesting changes this week:</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2927&#38;to=2928">r2928</a> recommends that browsers should reset the <code>text-indent</code> property when rendering a <code>&#60;textarea&#62;</code> element.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2929&#38;to=2930">r2930</a> notes a strange edge case where paragraphs (<code>&#60;p&#62;</code> elements) can end up overlapping each other if they are used as fallback content within an <code>&#60;object&#62;</code> element.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2932&#38;to=2933">r2933</a> adds event handler <abbr>DOM</abbr> attributes like <code>onclick</code> to the WebIDL definition of the <code>document</code> object.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2935&#38;to=2936">r2936</a> allows the <code>spellcheck</code> attribute to be present with no value, as a synonym for <code>spellcheck="true"</code>. I first mentioned the <code>spellcheck</code> attribute in <a href="http://blog.whatwg.org/this-week-day-in-html-5-episode-23">episode 23</a>, and again in <a href="http://blog.whatwg.org/the-road-to-html-5-spellchecking">The Road to HTML 5: spellchecking</a>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2936&#38;to=2937">r2937</a> allows <code>&#60;textarea wrap=off&#62;</code>.
</li><li><a href="http://html5.org/tools/web-apps-tracker?from=2940&#38;to=2941">r2941</a> further tweaks the algorithm for parsing legacy color attributes, which is trickier than you might think.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2942&#38;to=2943">r2943</a> allows the <code>width</code> and <code>height</code> attributes of an <code>&#60;img&#62;</code> element to be 0.</li>
</ul>

<p>Around the web:</p>

<ul>
<li>Jacob Seidelin posts a <a href="http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html"><code>&#60;canvas&#62;</code> cheat sheet</a>.</li>
<li>Peter-Paul Koch <a href="http://www.quirksmode.org/blog/archives/2009/04/making_time_saf.html">knows <em>way</em> more about dates than you do</a>.</li>
<li>Eric Meyer <a href="http://meyerweb.com/eric/thoughts/2009/04/07/findings-of-the-a-list-apart-survey-2008/">uses HTML 5 to present the results</a> of the "A List Apart Survey 2008."</li>
<li>Alex Nicolaou <a href="http://google-code-updates.blogspot.com/2009/04/html5-and-webkit-pave-way-for-mobile.html">explains how the new versions of Google Mail and Google Calendar</a> use HTML 5 for offline functionality.</li>
<li>Jon Tan <a href="http://jontangerine.com/log/2008/03/preparing-for-html5-with-semantic-class-names">talks about practical ways to tweak your markup now to migrate to HTML 5 later</a>.</li>
<li><a href="http://www.addfullsize.com/">addfullsize.com</a> is an entire site devoted to adding an attribute to the <code>&#60;img&#62;</code> element.</li>
<li>Anne van Kesteren thinks <a href="http://annevankesteren.nl/2009/03/urls">URLs are tough</a>, and he's right.</li>
</ul>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p>]]></description>
			<content:encoded><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>The big news for the week of March 30<sup>th</sup> is the addition of a <a href="http://dev.w3.org/html5/webstorage/#synchronous-database-api">synchronous database API</a> to the Web Storage spec (which was split out from the HTML 5 spec a few weeks ago). This new <abbr>API</abbr> defines a <code>DatabaseSync</code> object whose methods return <code>SQLTransactionSync</code> objects. This directly mirrors the <a href="http://dev.w3.org/html5/webstorage/#asynchronous-database-api">asynchronous database API</a>, which had already defined a <code>Database</code> object whose methods return <code>SQLTransaction</code> objects. [<a href="http://html5.org/tools/web-apps-tracker?from=2957&amp;to=2958">r2958</a>]</p>

<p>Another interesting change this week is <a href="http://html5.org/tools/web-apps-tracker?from=2920&amp;to=2921">r2921</a>, which adds the <code>placeholder</code> attribute to the <code>&lt;textarea&gt;</code> element. I tracked the initial discussion of the <code>placeholder</code> attribute in <a href="http://blog.whatwg.org/this-week-in-html-5-episode-8">episode 8</a> and noted its appearance in HTML 5 in <a href="http://blog.whatwg.org/this-week-in-html-5-episode-13">episode 13</a>. Previously you could only use the <code>placeholder</code> attribute on <code>&lt;input type=text&gt;</code>, <code>&lt;input type=email&gt;</code>, <code>&lt;input type=url&gt;</code>, and <code>&lt;input type=password&gt;</code>, but <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2008-December/017683.html">Thomas Broyer pointed out</a> that <a href="http://code.google.com/hosting/">Google Code</a> (among others) uses placeholder text on <code>&lt;textarea&gt;</code> elements. Such sites could now theoretically migrate their current script-based solutions to HTML 5 markup.

</p><p>Other interesting changes this week:</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2927&amp;to=2928">r2928</a> recommends that browsers should reset the <code>text-indent</code> property when rendering a <code>&lt;textarea&gt;</code> element.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2929&amp;to=2930">r2930</a> notes a strange edge case where paragraphs (<code>&lt;p&gt;</code> elements) can end up overlapping each other if they are used as fallback content within an <code>&lt;object&gt;</code> element.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2932&amp;to=2933">r2933</a> adds event handler <abbr>DOM</abbr> attributes like <code>onclick</code> to the WebIDL definition of the <code>document</code> object.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2935&amp;to=2936">r2936</a> allows the <code>spellcheck</code> attribute to be present with no value, as a synonym for <code>spellcheck="true"</code>. I first mentioned the <code>spellcheck</code> attribute in <a href="http://blog.whatwg.org/this-week-day-in-html-5-episode-23">episode 23</a>, and again in <a href="http://blog.whatwg.org/the-road-to-html-5-spellchecking">The Road to HTML 5: spellchecking</a>.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2936&amp;to=2937">r2937</a> allows <code>&lt;textarea wrap=off&gt;</code>.
</li><li><a href="http://html5.org/tools/web-apps-tracker?from=2940&amp;to=2941">r2941</a> further tweaks the algorithm for parsing legacy color attributes, which is trickier than you might think.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2942&amp;to=2943">r2943</a> allows the <code>width</code> and <code>height</code> attributes of an <code>&lt;img&gt;</code> element to be 0.</li>
</ul>

<p>Around the web:</p>

<ul>
<li>Jacob Seidelin posts a <a href="http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html"><code>&lt;canvas&gt;</code> cheat sheet</a>.</li>
<li>Peter-Paul Koch <a href="http://www.quirksmode.org/blog/archives/2009/04/making_time_saf.html">knows <em>way</em> more about dates than you do</a>.</li>
<li>Eric Meyer <a href="http://meyerweb.com/eric/thoughts/2009/04/07/findings-of-the-a-list-apart-survey-2008/">uses HTML 5 to present the results</a> of the "A List Apart Survey 2008."</li>
<li>Alex Nicolaou <a href="http://google-code-updates.blogspot.com/2009/04/html5-and-webkit-pave-way-for-mobile.html">explains how the new versions of Google Mail and Google Calendar</a> use HTML 5 for offline functionality.</li>
<li>Jon Tan <a href="http://jontangerine.com/log/2008/03/preparing-for-html5-with-semantic-class-names">talks about practical ways to tweak your markup now to migrate to HTML 5 later</a>.</li>
<li><a href="http://www.addfullsize.com/">addfullsize.com</a> is an entire site devoted to adding an attribute to the <code>&lt;img&gt;</code> element.</li>
<li>Anne van Kesteren thinks <a href="http://annevankesteren.nl/2009/03/urls">URLs are tough</a>, and he's right.</li>
</ul>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p><p></p><p>This item was originally posted at: <a href='http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href='http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html-5-episode-29/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in HTML 5 &#8211; Episode 28</title>
		<link>http://www.htmlfive.net/this-week-in-html-5-episode-28/</link>
		<comments>http://www.htmlfive.net/this-week-in-html-5-episode-28/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 21:26:12 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=654</guid>
		<description><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>The big news for the week of March 23<sup>rd</sup> is that <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0608.html">SVG can once again be included directly in HTML 5 documents served as text/html</a>:</p>

<blockquote cite="http://lists.w3.org/Archives/Public/public-html/2009Mar/0608.html">
<p>I've made the following changes to HTML5:</p>

<ul>
<li>Uncommented out the XXXSVG bits, reintroducing the ability to have SVG content in text/html.</li>
<li>Defined <code>&#60;script&#62;</code> processing for SVG <code>&#60;script&#62;</code> in text/html by deferring to the SVG Tiny 1.2 spec and blocking synchronous <code>document.write()</code>. The alternative to this is to integrate the SVG script processing model with the (pretty complicated) HTML script processing model, which would require changes to SVG and might result in a dependency from SVG to HTML5. Anne would like to do this, but I'm not convinced it's wise, and it certainly would be more complex than what we have now. If we ever want to add <code>async=""</code> or <code>defer=""</code> to SVG scripts, then this would probably be a necessary part of that process, though.</li>
<li>Added a paragraph suggesting: "To enable authors to use SVG tools that only accept SVG in its XML form, interactive HTML user agents are encouraged to provide a way to export any SVG fragment as a namespace-well-formed XML fragment."</li>
<li>Added a paragraph defining the allowed content model for SVG <code>&#60;title&#62;</code> elements in text/html documents.</li>
</ul>
</blockquote>

<p><a href="http://html5.org/tools/web-apps-tracker?from=2903&#38;to=2904">r2904</a> (and, briefly, <a href="http://html5.org/tools/web-apps-tracker?from=2909&#38;to=2910">r2910</a>) give all the details of this solution. There are still a number of differences between the text in HTML 5 and the proposal brought by the SVG working group. Some of these are addressed further down in the announcement:</p>

<ul>
<li>SVG-in-XML is case-preserving; SVG-in-HTML is not.</li>
<li>SVG-in-XML requires quoted attribute values; SVG-in-HTML does not.</li>
<li>When SVG-in-XML uses CDATA blocks, they show up as CDATA nodes in the DOM; when SVG-in-HTML uses CDATA blocks, they show up in the DOM as conventional text nodes. [Clarified based on <a href="http://blog.whatwg.org/this-week-in-html-5-episode-28#comment-40381">Henri's feedback</a>]</li>
<li>The <code>&#60;svg&#62;</code> element can not be the root element of a text/html document.</li>
</ul>

<p>Doug Schepers, who has been the SVG working group's HTML 5 liason, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0713.html">does not like this solution</a>:</p>

<blockquote cite="http://lists.w3.org/Archives/Public/public-html/2009Mar/0713.html">
<p>To be honest, I think it's not a good use of the SVG WG's time to provide feedback when Ian already has his mind made up, even if I don't believe that he is citing real evidence to back up his decision.  What I see is this: one set of implementers and authors (the SVG WG) and the majority of the author and user community (in public comments) asking for some sort of preservation of SVG as an XML format, even if it's looser and error-corrected in practice, and a few implementers (Jonas and Lachy, most notably) disagreeing, and Ian giving preference to the minority opinion.  Maybe there is sound technical rationale for doing so, but I haven't been satisfied on that score.</p>
</blockquote>

<p>Turning to technical matters, one of the features of web forms in HTML 5 is allowing the <a href="http://www.whatwg.org/specs/web-apps/current-work/#attributes-for-form-submission">attributes for form submission</a> on either the <code>&#60;form&#62;</code> element (as in HTML 4) or on the submit button (new in HTML 5). Originally, the attributes for submit buttons were named <code>action</code>, <code>enctype</code>, <code>method</code>, <code>novalidate</code>, and <code>target</code>, which exactly mirrored the attribute names that could be declared on the <code>&#60;form&#62;</code> element.</p>

<p>However, in January 2008, <a href="http://lists.w3.org/Archives/Public/public-html/2008Jan/0145.html">Hallvord R. M. Steen (Opera developer) noted</a> that "INPUT action [attribute] breaks web applications frequently. Both GMail and Yahoo mail (the new Oddpost-based version) use input/button.action and were seriously broken by WF2's action attribute."</p>

<p>Following up in November 2008, <a href="http://lists.w3.org/Archives/Public/public-html/2008Nov/0020.html">Ian Hickson replied</a>, "I notice that Opera still supports 'action' and doesn't seem to have problems in GMail; is this still a problem?" <a href="http://lists.w3.org/Archives/Public/public-html/2008Nov/0019.html">to which Hallvord replied</a>, "GMail fixed it on their side a while ago. It is still a problem with Yahoo mail, breaking most buttons in their UI for a browser that supports 'action'. We work around this with a browser.js hack. ('Still a problem' means 'I tested this again a couple of weeks ago and things were still broken without this patch'.)"</p>

<p><a href="FIXME">Ian replied</a>, "This is certainly problematic. It's unclear what we should do. It's hard to use another attribute name, since the whole point is reusing existing ones... can we trigger this based on quirks mode, maybe? Though I hate to add new quirks." Hallvord <a href="http://lists.w3.org/Archives/Public/public-html/2008Dec/0047.html">did not like that idea</a>: "In my personal opinion, I don't see why re-using attribute names is considered so important if we can find an alternative that feels memorable and usable. How does this look? <code>&#60;input type="submit" formaction="http://www.example.com/"&#62;</code>"</p>

<p><a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0533.html">Finally, in March 2009, Ian replied</a>:</p>

<blockquote cite="http://lists.w3.org/Archives/Public/public-html/2009Mar/0533.html">
<p>That seems reasonable. I've changed "action", "method", "target", "enctype" and "novalidate" attributes on &#60;input&#62; and &#60;button&#62; to start with "form" instead: "formaction", "formmethod", "formtarget", "formenctype" and "formnovalidate".</p>
</blockquote>

<p>And thus we have <a href="http://html5.org/tools/web-apps-tracker?from=2889&#38;to=2890">r2890: Rename attributes for form submission to avoid clashes with existing usage</a>.</p>

<p>Other interesting changes this week:</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2888&#38;to=2889">r2889</a> adds support for <code>select.add(e)</code> and <code>select.options.add(e)</code> with no second argument.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2887&#38;to=2888">r2888</a> defines how to determine the character encoding of Web Worker scripts. Briefly, it says to look for a Byte Order Mark, then <a href="http://www.whatwg.org/specs/web-apps/current-work/#algorithm-for-extracting-an-encoding-from-a-content-type">look at the Content-Type HTTP header</a>, then fall back to UTF-8.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2897&#38;to=2898">r2898</a>, <a href="http://html5.org/tools/web-apps-tracker?from=2898&#38;to=2899">r2899</a>, <a href="http://html5.org/tools/web-apps-tracker?from=2900&#38;to=2901">r2901</a>, <a href="http://html5.org/tools/web-apps-tracker?from=2913&#38;to=2914">r2914</a>, and <a href="http://html5.org/tools/web-apps-tracker?from=2915&#38;to=2916">r2916</a> define a locking mechanism to allow thread-safe read/write access to <code>document.cookie and </code><code>.localStorage</code>. The lock is acquired during page fetching (which sets the cookie based on HTTP headers) and released once the cookie is set. It is also released automatically whenever something modal happens (such as <code>window.alert()</code>). (I first mentioned the discussion of this issue in <a href="http://blog.whatwg.org/this-week-in-html-5-episode-27">episode 27</a>. The problem is that Web Workers allows threaded client-side script execution, which means access to shared storage like <code>document.cookie</code> needs to be made explicitly thread-safe with some sort of locking mechanism.)</li>
</ul>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p>]]></description>
			<content:encoded><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>The big news for the week of March 23<sup>rd</sup> is that <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0608.html">SVG can once again be included directly in HTML 5 documents served as text/html</a>:</p>

<blockquote cite="http://lists.w3.org/Archives/Public/public-html/2009Mar/0608.html">
<p>I've made the following changes to HTML5:</p>

<ul>
<li>Uncommented out the XXXSVG bits, reintroducing the ability to have SVG content in text/html.</li>
<li>Defined <code>&lt;script&gt;</code> processing for SVG <code>&lt;script&gt;</code> in text/html by deferring to the SVG Tiny 1.2 spec and blocking synchronous <code>document.write()</code>. The alternative to this is to integrate the SVG script processing model with the (pretty complicated) HTML script processing model, which would require changes to SVG and might result in a dependency from SVG to HTML5. Anne would like to do this, but I'm not convinced it's wise, and it certainly would be more complex than what we have now. If we ever want to add <code>async=""</code> or <code>defer=""</code> to SVG scripts, then this would probably be a necessary part of that process, though.</li>
<li>Added a paragraph suggesting: "To enable authors to use SVG tools that only accept SVG in its XML form, interactive HTML user agents are encouraged to provide a way to export any SVG fragment as a namespace-well-formed XML fragment."</li>
<li>Added a paragraph defining the allowed content model for SVG <code>&lt;title&gt;</code> elements in text/html documents.</li>
</ul>
</blockquote>

<p><a href="http://html5.org/tools/web-apps-tracker?from=2903&amp;to=2904">r2904</a> (and, briefly, <a href="http://html5.org/tools/web-apps-tracker?from=2909&amp;to=2910">r2910</a>) give all the details of this solution. There are still a number of differences between the text in HTML 5 and the proposal brought by the SVG working group. Some of these are addressed further down in the announcement:</p>

<ul>
<li>SVG-in-XML is case-preserving; SVG-in-HTML is not.</li>
<li>SVG-in-XML requires quoted attribute values; SVG-in-HTML does not.</li>
<li>When SVG-in-XML uses CDATA blocks, they show up as CDATA nodes in the DOM; when SVG-in-HTML uses CDATA blocks, they show up in the DOM as conventional text nodes. [Clarified based on <a href="http://blog.whatwg.org/this-week-in-html-5-episode-28#comment-40381">Henri's feedback</a>]</li>
<li>The <code>&lt;svg&gt;</code> element can not be the root element of a text/html document.</li>
</ul>

<p>Doug Schepers, who has been the SVG working group's HTML 5 liason, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0713.html">does not like this solution</a>:</p>

<blockquote cite="http://lists.w3.org/Archives/Public/public-html/2009Mar/0713.html">
<p>To be honest, I think it's not a good use of the SVG WG's time to provide feedback when Ian already has his mind made up, even if I don't believe that he is citing real evidence to back up his decision.  What I see is this: one set of implementers and authors (the SVG WG) and the majority of the author and user community (in public comments) asking for some sort of preservation of SVG as an XML format, even if it's looser and error-corrected in practice, and a few implementers (Jonas and Lachy, most notably) disagreeing, and Ian giving preference to the minority opinion.  Maybe there is sound technical rationale for doing so, but I haven't been satisfied on that score.</p>
</blockquote>

<p>Turning to technical matters, one of the features of web forms in HTML 5 is allowing the <a href="http://www.whatwg.org/specs/web-apps/current-work/#attributes-for-form-submission">attributes for form submission</a> on either the <code>&lt;form&gt;</code> element (as in HTML 4) or on the submit button (new in HTML 5). Originally, the attributes for submit buttons were named <code>action</code>, <code>enctype</code>, <code>method</code>, <code>novalidate</code>, and <code>target</code>, which exactly mirrored the attribute names that could be declared on the <code>&lt;form&gt;</code> element.</p>

<p>However, in January 2008, <a href="http://lists.w3.org/Archives/Public/public-html/2008Jan/0145.html">Hallvord R. M. Steen (Opera developer) noted</a> that "INPUT action [attribute] breaks web applications frequently. Both GMail and Yahoo mail (the new Oddpost-based version) use input/button.action and were seriously broken by WF2's action attribute."</p>

<p>Following up in November 2008, <a href="http://lists.w3.org/Archives/Public/public-html/2008Nov/0020.html">Ian Hickson replied</a>, "I notice that Opera still supports 'action' and doesn't seem to have problems in GMail; is this still a problem?" <a href="http://lists.w3.org/Archives/Public/public-html/2008Nov/0019.html">to which Hallvord replied</a>, "GMail fixed it on their side a while ago. It is still a problem with Yahoo mail, breaking most buttons in their UI for a browser that supports 'action'. We work around this with a browser.js hack. ('Still a problem' means 'I tested this again a couple of weeks ago and things were still broken without this patch'.)"</p>

<p><a href="FIXME">Ian replied</a>, "This is certainly problematic. It's unclear what we should do. It's hard to use another attribute name, since the whole point is reusing existing ones... can we trigger this based on quirks mode, maybe? Though I hate to add new quirks." Hallvord <a href="http://lists.w3.org/Archives/Public/public-html/2008Dec/0047.html">did not like that idea</a>: "In my personal opinion, I don't see why re-using attribute names is considered so important if we can find an alternative that feels memorable and usable. How does this look? <code>&lt;input type="submit" formaction="http://www.example.com/"&gt;</code>"</p>

<p><a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0533.html">Finally, in March 2009, Ian replied</a>:</p>

<blockquote cite="http://lists.w3.org/Archives/Public/public-html/2009Mar/0533.html">
<p>That seems reasonable. I've changed "action", "method", "target", "enctype" and "novalidate" attributes on &lt;input&gt; and &lt;button&gt; to start with "form" instead: "formaction", "formmethod", "formtarget", "formenctype" and "formnovalidate".</p>
</blockquote>

<p>And thus we have <a href="http://html5.org/tools/web-apps-tracker?from=2889&amp;to=2890">r2890: Rename attributes for form submission to avoid clashes with existing usage</a>.</p>

<p>Other interesting changes this week:</p>

<ul>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2888&amp;to=2889">r2889</a> adds support for <code>select.add(e)</code> and <code>select.options.add(e)</code> with no second argument.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2887&amp;to=2888">r2888</a> defines how to determine the character encoding of Web Worker scripts. Briefly, it says to look for a Byte Order Mark, then <a href="http://www.whatwg.org/specs/web-apps/current-work/#algorithm-for-extracting-an-encoding-from-a-content-type">look at the Content-Type HTTP header</a>, then fall back to UTF-8.</li>
<li><a href="http://html5.org/tools/web-apps-tracker?from=2897&amp;to=2898">r2898</a>, <a href="http://html5.org/tools/web-apps-tracker?from=2898&amp;to=2899">r2899</a>, <a href="http://html5.org/tools/web-apps-tracker?from=2900&amp;to=2901">r2901</a>, <a href="http://html5.org/tools/web-apps-tracker?from=2913&amp;to=2914">r2914</a>, and <a href="http://html5.org/tools/web-apps-tracker?from=2915&amp;to=2916">r2916</a> define a locking mechanism to allow thread-safe read/write access to <code>document.cookie and </code><code>.localStorage</code>. The lock is acquired during page fetching (which sets the cookie based on HTTP headers) and released once the cookie is set. It is also released automatically whenever something modal happens (such as <code>window.alert()</code>). (I first mentioned the discussion of this issue in <a href="http://blog.whatwg.org/this-week-in-html-5-episode-27">episode 27</a>. The problem is that Web Workers allows threaded client-side script execution, which means access to shared storage like <code>document.cookie</code> needs to be made explicitly thread-safe with some sort of locking mechanism.)</li>
</ul>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p><p></p><p>This item was originally posted at: <a href='http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href='http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html-5-episode-28/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in HTML 5 &#8211; Episode 27</title>
		<link>http://www.htmlfive.net/this-week-in-html-5-episode-27/</link>
		<comments>http://www.htmlfive.net/this-week-in-html-5-episode-27/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 19:22:50 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=652</guid>
		<description><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group. In this episode, I'd like to highlight some of the discussions that I've missed in previous episodes.</p>

<ul>
<li><a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018600.html">Greg Millam writes</a>, "I'm one of the main engineers responsible for captioning support on YouTube, and I've joined the Chrome team at Google to attempt to help drive video captions and subtitling forward." <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018382.html">Henri Sivonen replies</a>, "I agree it makes sense to start with something simple. The markupless flavor of SRT would be such a format. However, supporting the formatting tags in later flavors of SRT is a can of worms." [<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/thread.html#18600">full thread: Captions, Subtitles, and the Video Element</a>]</li>
<li><a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018378.html">Robert O'Rourke writes</a>, "Are there any plans to bring list headers from HTML3 into HTML5?" <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018382.html">Ian Hickson replies</a>, "You can do this in HTML5, using &#60;figure&#62; and &#60;legend&#62;." The thread continues in a number of directions. <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018398.html">Marcus Ernst writes</a>, "Anyway I would consider it even more appropriate to allow the list inside a paragraph," <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018540.html">to which Ian replies</a>, "We had this in the spec originally, but we dropped it due to a variety of issues (it made life harder for editors, it didn't work in text/html even when it looked like it did, people got confused...)." [<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/thread.html#18378">full thread: List Headers</a>]</li>
<li><a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/018703.html">Drew Wilson writes</a>, "There's currently no way to set or get cookies from workers, which makes various types of cookie-based operations problematic." <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/018704.html">Jonas Sicking replies</a>, "Allowing cookie to be set would unfortunately create a synchronous communication channel between the worker and the main window." The discussion continues, focusing on issues of multi-threaded updates to <code>document.cookie</code>. <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/018758.html">Drew Wilson again</a>: "Following up on this. I created two pages, one that tests cookies in a loop, and one that sets cookies in a loop, and ran them in separate windows in Firefox 3, IE7, and Chrome. Chrome and IE7 currently allow concurrent modification of document.cookies (i.e. the test loop throws up an alert). Firefox does not." [<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/thread.html#18703">full thread: Accessing cookies from workers</a>]</li>
<li>There have been a number of overlapping discussions on whether and how to allow authors to embed RDFa in HTML 5 documents. See <a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/thread.html#msg753">1</a>, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/thread.html#msg0">2</a>, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/thread.html#msg28">3</a>, and followups. Besides the technical arguments about how it would work, much of the discussion centers around the concept of <i>distributed extensibility</i>, which <a href="http://blog.whatwg.org/this-week-in-html-5-episode-9">I've touched on before</a>. For example, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0167.html">here is Chris Wilson</a> (of the Microsoft IE development team): "We have had (in the past as well, imo, in the future) a requirement for decentralized extensibility - that is, that document/content authors can extend the set of elements with their own semantic or behavioral elements.  I continue to think there is a requirement for that.  (One might well ask why we didn't implement full XML in that case; I'll politely not answer from a historical context, but will point out that the draconian error handling and poor fallback story make delivering content in XML in the browser a poor solution in the ecosystem today.)"</li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/0758.html">Steven Faulkner writes</a>, "I have ... taken a stab at a RFC 2119 compatible definition for table summaries: <a href="http://esw.w3.org/topic/HTML/SummaryForTABLE/SummarySpecification">http://esw.w3.org/topic/HTML/SummaryForTABLE/SummarySpecification</a>." [<a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/thread.html#msg758">full thread: Draft text for summary attribute definition</a>, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0001.html">continued in March archives</a>]</li>
</ul>

<p>There has also been a vigorous debate about the license of the specification itself.</p>

<ul>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/0026.html">Sam Ruby writes</a>, "In my discussions with Ian and at Mozilla, I gathered that it was a shared understanding that by October that the license for the W3C license would be somehow open source friendly, and specifically that a Creative Commons Attribution license was something that was of common and general interest." The "open source friendly" clause is a reference to the fact that the spec does actually contain some code (in the form of WebIDL declarations), and vendors of open source browsers would like to include this code (or derive code from it) into their products.</li>
<li>After much discussion, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0101.html">Philippe Le Hegaret (of the W3C) writes</a>, "In response to requests from developers to make it easier to include portions of W3C specifications in software documentation, bug reports, code, and test cases, W3C have drafted a new Excerpt &#38; Citation License. ... Uses like forking of a specification would remain prohibited to protect the due process and the consensus found in a chartered Working Group."</li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0107.html">Ian Hickson immediately replies</a>, "Increasing license proliferation is a really bad idea here. I would be opposed to introducing yet another license. ... [The forking] use case is the main one that I'm concerned about, FWIW."</li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0140.html">Jonas Sicking explains his reasoning about allowing forking</a>: "I think it would gain W3C a tremendous amount of trust if it were to allow [forking]. To many people, me included, having the gurentee that W3C can't go off 'into the weeds' means that I have don't have to worry about my time being wasted when I contribute. I think many people feel the same when they contribute to the forkable software I represent."</li>
<li>Philippe notes that the W3C "<a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0133.html">isn't used to the concept of allowing a fork</a>" of their specifications, which is one of the requirements of any "open source friendly" license.</li>
<li>I believe <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0139.html">Maciej Stachowiak (WebKit developer at Apple) best summarized the group's objections</a>: "1) Preventing specification forks is not achievable through license terms; a sufficiently motivated party can create a new spec from scratch. 2) Preventing specification forks is probably not necessary; the one time it happened, the outcome was good and the effort merged back into a realigned W3C. 3) Due to 1 and 2, we should give more consideration to LGPL/GPL compatibility than prevention of forks via licensing terms."</li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0145.html">Ian Hickson agrees</a>: "I do agree that the original use cases are (intentionally and explicitly) not all met by the proposal that was put forward, and I do think the original use cases were an accurate portrayal of the use cases that this working group has consensus on. Compatibility with open source (including GPL and LGPL projects), clear license terms (ideally reusing an existing license), and the ability to fork are all issues that working group members discussed and considered important previously."</li>
</ul>

<p>[Further reading: <a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/thread.html#msg26">Discussions with plh</a>, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/thread.html#msg101">Draft W3C Excerpt License</a>]</p>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p>]]></description>
			<content:encoded><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group. In this episode, I'd like to highlight some of the discussions that I've missed in previous episodes.</p>

<ul>
<li><a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018600.html">Greg Millam writes</a>, "I'm one of the main engineers responsible for captioning support on YouTube, and I've joined the Chrome team at Google to attempt to help drive video captions and subtitling forward." <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018382.html">Henri Sivonen replies</a>, "I agree it makes sense to start with something simple. The markupless flavor of SRT would be such a format. However, supporting the formatting tags in later flavors of SRT is a can of worms." [<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/thread.html#18600">full thread: Captions, Subtitles, and the Video Element</a>]</li>
<li><a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018378.html">Robert O'Rourke writes</a>, "Are there any plans to bring list headers from HTML3 into HTML5?" <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018382.html">Ian Hickson replies</a>, "You can do this in HTML5, using &lt;figure&gt; and &lt;legend&gt;." The thread continues in a number of directions. <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018398.html">Marcus Ernst writes</a>, "Anyway I would consider it even more appropriate to allow the list inside a paragraph," <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/018540.html">to which Ian replies</a>, "We had this in the spec originally, but we dropped it due to a variety of issues (it made life harder for editors, it didn't work in text/html even when it looked like it did, people got confused...)." [<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-February/thread.html#18378">full thread: List Headers</a>]</li>
<li><a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/018703.html">Drew Wilson writes</a>, "There's currently no way to set or get cookies from workers, which makes various types of cookie-based operations problematic." <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/018704.html">Jonas Sicking replies</a>, "Allowing cookie to be set would unfortunately create a synchronous communication channel between the worker and the main window." The discussion continues, focusing on issues of multi-threaded updates to <code>document.cookie</code>. <a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/018758.html">Drew Wilson again</a>: "Following up on this. I created two pages, one that tests cookies in a loop, and one that sets cookies in a loop, and ran them in separate windows in Firefox 3, IE7, and Chrome. Chrome and IE7 currently allow concurrent modification of document.cookies (i.e. the test loop throws up an alert). Firefox does not." [<a href="http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/thread.html#18703">full thread: Accessing cookies from workers</a>]</li>
<li>There have been a number of overlapping discussions on whether and how to allow authors to embed RDFa in HTML 5 documents. See <a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/thread.html#msg753">1</a>, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/thread.html#msg0">2</a>, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/thread.html#msg28">3</a>, and followups. Besides the technical arguments about how it would work, much of the discussion centers around the concept of <i>distributed extensibility</i>, which <a href="http://blog.whatwg.org/this-week-in-html-5-episode-9">I've touched on before</a>. For example, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0167.html">here is Chris Wilson</a> (of the Microsoft IE development team): "We have had (in the past as well, imo, in the future) a requirement for decentralized extensibility - that is, that document/content authors can extend the set of elements with their own semantic or behavioral elements.  I continue to think there is a requirement for that.  (One might well ask why we didn't implement full XML in that case; I'll politely not answer from a historical context, but will point out that the draconian error handling and poor fallback story make delivering content in XML in the browser a poor solution in the ecosystem today.)"</li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/0758.html">Steven Faulkner writes</a>, "I have ... taken a stab at a RFC 2119 compatible definition for table summaries: <a href="http://esw.w3.org/topic/HTML/SummaryForTABLE/SummarySpecification">http://esw.w3.org/topic/HTML/SummaryForTABLE/SummarySpecification</a>." [<a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/thread.html#msg758">full thread: Draft text for summary attribute definition</a>, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0001.html">continued in March archives</a>]</li>
</ul>

<p>There has also been a vigorous debate about the license of the specification itself.</p>

<ul>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/0026.html">Sam Ruby writes</a>, "In my discussions with Ian and at Mozilla, I gathered that it was a shared understanding that by October that the license for the W3C license would be somehow open source friendly, and specifically that a Creative Commons Attribution license was something that was of common and general interest." The "open source friendly" clause is a reference to the fact that the spec does actually contain some code (in the form of WebIDL declarations), and vendors of open source browsers would like to include this code (or derive code from it) into their products.</li>
<li>After much discussion, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0101.html">Philippe Le Hegaret (of the W3C) writes</a>, "In response to requests from developers to make it easier to include portions of W3C specifications in software documentation, bug reports, code, and test cases, W3C have drafted a new Excerpt &amp; Citation License. ... Uses like forking of a specification would remain prohibited to protect the due process and the consensus found in a chartered Working Group."</li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0107.html">Ian Hickson immediately replies</a>, "Increasing license proliferation is a really bad idea here. I would be opposed to introducing yet another license. ... [The forking] use case is the main one that I'm concerned about, FWIW."</li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0140.html">Jonas Sicking explains his reasoning about allowing forking</a>: "I think it would gain W3C a tremendous amount of trust if it were to allow [forking]. To many people, me included, having the gurentee that W3C can't go off 'into the weeds' means that I have don't have to worry about my time being wasted when I contribute. I think many people feel the same when they contribute to the forkable software I represent."</li>
<li>Philippe notes that the W3C "<a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0133.html">isn't used to the concept of allowing a fork</a>" of their specifications, which is one of the requirements of any "open source friendly" license.</li>
<li>I believe <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0139.html">Maciej Stachowiak (WebKit developer at Apple) best summarized the group's objections</a>: "1) Preventing specification forks is not achievable through license terms; a sufficiently motivated party can create a new spec from scratch. 2) Preventing specification forks is probably not necessary; the one time it happened, the outcome was good and the effort merged back into a realigned W3C. 3) Due to 1 and 2, we should give more consideration to LGPL/GPL compatibility than prevention of forks via licensing terms."</li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0145.html">Ian Hickson agrees</a>: "I do agree that the original use cases are (intentionally and explicitly) not all met by the proposal that was put forward, and I do think the original use cases were an accurate portrayal of the use cases that this working group has consensus on. Compatibility with open source (including GPL and LGPL projects), clear license terms (ideally reusing an existing license), and the ability to fork are all issues that working group members discussed and considered important previously."</li>
</ul>

<p>[Further reading: <a href="http://lists.w3.org/Archives/Public/public-html/2009Feb/thread.html#msg26">Discussions with plh</a>, <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/thread.html#msg101">Draft W3C Excerpt License</a>]</p>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p><p></p><p>This item was originally posted at: <a href='http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href='http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html-5-episode-27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This Week in HTML 5 &#8211; Episode 26</title>
		<link>http://www.htmlfive.net/this-week-in-html-5-episode-26/</link>
		<comments>http://www.htmlfive.net/this-week-in-html-5-episode-26/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 04:14:39 +0000</pubDate>
		<dc:creator>Mark Pilgrim</dc:creator>
				<category><![CDATA[Weekly Review]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=645</guid>
		<description><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>The big news for the week of March 16<sup>th</sup> is <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0466.html">this announcement from Ian Hickson</a>:</p>

<blockquote cite="http://lists.w3.org/Archives/Public/public-html/2009Mar/0466.html">
<p>I've now split out the Server-sent Events and Storage APIs out of HTML5, and I've removed the text for Web Sockets, which was split out earlier. By popular demand I've also done some tweaks to the styling of these specs.</p>

<dl>
<dt>HTML5</dt>
<dd><a href="http://dev.w3.org/html5/spec/">http://dev.w3.org/html5/spec/</a></dd>

<dt>Server-Sent Events</dt>
<dd><a href="http://dev.w3.org/html5/eventsource/">http://dev.w3.org/html5/eventsource/</a></dd>

<dt>Web Storage</dt>
<dd><a href="http://dev.w3.org/html5/webstorage/">http://dev.w3.org/html5/webstorage/</a></dd>

<dt>Web Workers</dt>
<dd><a href="http://dev.w3.org/html5/workers/">http://dev.w3.org/html5/workers/</a></dd>

<dt>Web Sockets</dt>
<dd><a href="http://dev.w3.org/html5/websockets/">http://dev.w3.org/html5/websockets/</a><br />
   <a href="http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol">http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol</a></dd>
</dl>

<p>It is my understanding that the desire is to publish the Server-Sent Events, Web Storage, Web Workers, and Web Sockets specs through the Web Apps working group, so that is what I put into the "status of this document" sections.</p>

<p>I would like to be able to put more permissive licenses (ideally MIT) on these drafts, rather than the W3C license.</p>

<p>The following sections still haven't been split out:</p>

<dl>
<dd>URLs</dd>
<dt>I'll remove this section as soon as DanC's draft is published.</dt>

<dd>Content-Type sniffing</dd>
<dt>I'll remove this section once Adam's draft is on a standards track.</dt>

<dd>Timeout API</dd>
<dt>This section is lacking an active editor.</dt>

<dd>Origin</dd>
<dt>I'm unsure what will happen with this section.</dt>
</dl>
</blockquote>

<p>In IRC, Ian explained <a href="http://krijnhoetmer.nl/irc-logs/whatwg/20090318#l-627">that all of these documents are generated from one master file</a>:</p>

<blockquote>
<p># [21:02] &#60;hixie&#62; the source document is run through a bunch of scripts to generate the output documents<br />
# [21:03] &#60;hixie&#62; from that one file i now generate one whatwg spec, four w3c specs, and an rfc</p>
</blockquote>

<p>In other news, <a href="http://html5.org/tools/web-apps-tracker?from=2875&#38;to=2876">r2876</a> (WARNING: VERY LARGE) adds user stylesheets to <a href="http://www.whatwg.org/specs/web-apps/current-work/">the HTML 5 specification itself</a>. If you view it in a browser that support switching stylesheets (such as Firefox, under the View &#8594; Page Style submenu), you can choose between "Complete specification" (default), "Author documentation only," or "Highlight implementation requirements." The "Author documentation only" stylesheet hides all of the client parsing algorithms and focuses on the elements, attributes, and scripting features that web authors need to know about.</p>

<p>For example, the "author documentation" of the <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-img-element"><code>&#60;img&#62;</code> element</a> highlights the required attributes, how to create a new Image() dynamically, and <a href="http://www.whatwg.org/specs/web-apps/current-work/#alt">the detailed requirements for providing alternate text</a>, while completely hiding any mention of how image fetching fits into the client's task queue, the gory details of how clients resolve image URLs, or the security risks of allowing pages on the public internet to attempt to load images on the local network. On the flip side, "highlight implementation requirements" highlights these exact issues.</p>

<p>Critics who complained that the HTML 5 specification should be "just a markup language" will be able to have their cake and eat it too. Those who complained that HTML 5 was "too bloated" will have a little less to complain about now that several parts of it have been published as separate documents. On the other hand, critics who complained about these things as a cover for other agendas will have to continue complaining a little while longer.</p>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p>]]></description>
			<content:encoded><![CDATA[<p>Welcome back to "This Week in HTML 5," where I'll try to summarize the major activity in the ongoing standards process in the WHATWG and W3C HTML Working Group.</p>

<p>The big news for the week of March 16<sup>th</sup> is <a href="http://lists.w3.org/Archives/Public/public-html/2009Mar/0466.html">this announcement from Ian Hickson</a>:</p>

<blockquote cite="http://lists.w3.org/Archives/Public/public-html/2009Mar/0466.html">
<p>I've now split out the Server-sent Events and Storage APIs out of HTML5, and I've removed the text for Web Sockets, which was split out earlier. By popular demand I've also done some tweaks to the styling of these specs.</p>

<dl>
<dt>HTML5</dt>
<dd><a href="http://dev.w3.org/html5/spec/">http://dev.w3.org/html5/spec/</a></dd>

<dt>Server-Sent Events</dt>
<dd><a href="http://dev.w3.org/html5/eventsource/">http://dev.w3.org/html5/eventsource/</a></dd>

<dt>Web Storage</dt>
<dd><a href="http://dev.w3.org/html5/webstorage/">http://dev.w3.org/html5/webstorage/</a></dd>

<dt>Web Workers</dt>
<dd><a href="http://dev.w3.org/html5/workers/">http://dev.w3.org/html5/workers/</a></dd>

<dt>Web Sockets</dt>
<dd><a href="http://dev.w3.org/html5/websockets/">http://dev.w3.org/html5/websockets/</a><br />
   <a href="http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol">http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol</a></dd>
</dl>

<p>It is my understanding that the desire is to publish the Server-Sent Events, Web Storage, Web Workers, and Web Sockets specs through the Web Apps working group, so that is what I put into the "status of this document" sections.</p>

<p>I would like to be able to put more permissive licenses (ideally MIT) on these drafts, rather than the W3C license.</p>

<p>The following sections still haven't been split out:</p>

<dl>
<dd>URLs</dd>
<dt>I'll remove this section as soon as DanC's draft is published.</dt>

<dd>Content-Type sniffing</dd>
<dt>I'll remove this section once Adam's draft is on a standards track.</dt>

<dd>Timeout API</dd>
<dt>This section is lacking an active editor.</dt>

<dd>Origin</dd>
<dt>I'm unsure what will happen with this section.</dt>
</dl>
</blockquote>

<p>In IRC, Ian explained <a href="http://krijnhoetmer.nl/irc-logs/whatwg/20090318#l-627">that all of these documents are generated from one master file</a>:</p>

<blockquote>
<p># [21:02] &lt;hixie&gt; the source document is run through a bunch of scripts to generate the output documents<br />
# [21:03] &lt;hixie&gt; from that one file i now generate one whatwg spec, four w3c specs, and an rfc</p>
</blockquote>

<p>In other news, <a href="http://html5.org/tools/web-apps-tracker?from=2875&amp;to=2876">r2876</a> (WARNING: VERY LARGE) adds user stylesheets to <a href="http://www.whatwg.org/specs/web-apps/current-work/">the HTML 5 specification itself</a>. If you view it in a browser that support switching stylesheets (such as Firefox, under the View &rarr; Page Style submenu), you can choose between "Complete specification" (default), "Author documentation only," or "Highlight implementation requirements." The "Author documentation only" stylesheet hides all of the client parsing algorithms and focuses on the elements, attributes, and scripting features that web authors need to know about.</p>

<p>For example, the "author documentation" of the <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-img-element"><code>&lt;img&gt;</code> element</a> highlights the required attributes, how to create a new Image() dynamically, and <a href="http://www.whatwg.org/specs/web-apps/current-work/#alt">the detailed requirements for providing alternate text</a>, while completely hiding any mention of how image fetching fits into the client's task queue, the gory details of how clients resolve image URLs, or the security risks of allowing pages on the public internet to attempt to load images on the local network. On the flip side, "highlight implementation requirements" highlights these exact issues.</p>

<p>Critics who complained that the HTML 5 specification should be "just a markup language" will be able to have their cake and eat it too. Those who complained that HTML 5 was "too bloated" will have a little less to complain about now that several parts of it have been published as separate documents. On the other hand, critics who complained about these things as a cover for other agendas will have to continue complaining a little while longer.</p>

<p>Tune in next week for another exciting episode of "This Week in HTML 5."</p><p></p><p>This item was originally posted at: <a href='http://blog.whatwg.org'>http://blog.whatwg.org</a> and is licensed under the <a href='http://www.opensource.org/licenses/mit-license.php'>MIT license</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.htmlfive.net/this-week-in-html-5-episode-26/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
