<?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; DOM</title>
	<atom:link href="http://www.htmlfive.net/category/dom/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>Supporting New Elements in Firefox 2</title>
		<link>http://www.htmlfive.net/supporting-new-elements-in-firefox-2/</link>
		<comments>http://www.htmlfive.net/supporting-new-elements-in-firefox-2/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 21:56:12 +0000</pubDate>
		<dc:creator>Simon Pieters</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Elements]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=587</guid>
		<description><![CDATA[<p>We have <a href="http://blog.whatwg.org/supporting-new-elements-in-ie">previously</a> <a href="http://blog.whatwg.org/styling-ie-noscript">talked</a> about how to get Internet Explorer to play ball when using the new HTML5 elements, but today I'm going to talk about Firefox 2.</p>
<p>Firefox 2 (or any other Gecko-based browser with a Gecko version pre 1.9b5) has a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=311366">parsing bug</a> where it will close an unknown element when it sees the start tag of a "block" element like <code>p</code>, <code>h1</code>, <code>div</code>, and so forth. So if you have:</p>
<pre><code>&#60;body&#62;
 &#60;header&#62;
  &#60;h1&#62;Test&#60;/h1&#62;
 &#60;/header&#62;
 &#60;article&#62;
  &#60;p&#62;...&#60;/p&#62;
  ...
 &#60;/article&#62;
 &#60;nav&#62;
  &#60;ul&#62;...&#60;/ul&#62;
 &#60;/nav&#62;
 &#60;footer&#62;
  &#60;p&#62;...&#60;/p&#62;
 &#60;/footer&#62;
&#60;/body&#62;</code></pre>
<p>...then in Firefox 2 it will be parsed as if it were:</p>
<pre><code>&#60;body&#62;
 &#60;header&#62;
  &#60;/header&#62;&#60;h1&#62;Test&#60;/h1&#62;
 
 &#60;article&#62;
  &#60;/article&#62;&#60;p&#62;...&#60;/p&#62;
  ...
 
 &#60;nav&#62;
  &#60;/nav&#62;&#60;ul&#62;...&#60;/ul&#62;
 
 &#60;footer&#62;
  &#60;/footer&#62;&#60;p&#62;...&#60;/p&#62;
 
&#60;/body&#62;</code></pre>
<p>So if you style the new elements with CSS it will probably look completely broken in Firefox 2.</p>
<p>If you care about Firefox 2 then there are some ways to fix this:</p>
<ol>
 <li>Go back to using <code>div</code> elements
 </li><li>Use content type negotiation between <code>text/html</code> and <code>application/xhtml+xml</code>
 </li><li>Fix up the DOM with scripting
</li></ol>
<p>(1) is probably wise if your content structure changes between pages or over time. (2) also works but means that users will be exposed to the Yellow Screen of Death should a markup error slip through your system. Otherwise (3) can be worth to consider.</p>
<p>Fixing up Firefox 2's DOM is actually pretty simple if you have a consistent structure. Using the same markup as above it could look something like this:</p>
<pre><code>&#60;body&#62;
 &#60;header&#62;
  &#60;h1&#62;Test&#60;/h1&#62;
 &#60;/header&#62;
 &#60;article&#62;
  &#60;p&#62;...&#60;/p&#62;
  ...
 &#60;/article&#62;
 &#60;nav&#62;
  &#60;ul&#62;...&#60;/ul&#62;
 &#60;/nav&#62;
 &#60;footer&#62;
  &#60;p&#62;...&#60;/p&#62;
 &#60;/footer&#62;
 &#60;!--[if !IE]&#62;--&#62;&#60;script&#62;
  // dom fixup for gecko pre 1.9b5
  var n = document.getElementsByTagName('header')[0];
  if (n.childNodes.length &#60;= 1) { // the element was closed early
    var tags = ['ARTICLE', 'NAV', 'FOOTER', 'SCRIPT'];
    for (var i = 0; i &#60; tags.length; ++i) {
      while (n.nextSibling &#38;&#38; n.nextSibling.nodeName != tags[i]) {
        n.appendChild(n.nextSibling);
      }
      n = n.nextSibling;
    }
  }
 &#60;/script&#62;&#60;!--&#60;![endif]--&#62;
&#60;/body&#62;</code></pre>
<p>You might think that this script would work for IE, too, when not using the createElement hack, but apparently IE throws an exception when trying to append a child to an unknown element. So you still have to use the createElement hack for IE.</p>
<p>If you want to move the script to <code>head</code> and run it on load and you don't have anything after the footer then you would replace <code>'SCRIPT'</code> in the <code>tags</code> array with <code>undefined</code> to make it work.</p>
<p>(If you want to do content type negotiation and want to just serve XHTML to Gecko-based browsers with this bug then you should look for the substrings "Gecko/" and "rv:1.<var>x</var>" where <var>x</var> is less then 9, or "rv:1.9pre" or "rv:1.9a" or "rv:1.9b<var>x</var>" where <var>x</var> is less than 5.)</p>]]></description>
			<content:encoded><![CDATA[<p>We have <a href="http://blog.whatwg.org/supporting-new-elements-in-ie">previously</a> <a href="http://blog.whatwg.org/styling-ie-noscript">talked</a> about how to get Internet Explorer to play ball when using the new HTML5 elements, but today I'm going to talk about Firefox 2.</p>
<p>Firefox 2 (or any other Gecko-based browser with a Gecko version pre 1.9b5) has a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=311366">parsing bug</a> where it will close an unknown element when it sees the start tag of a "block" element like <code>p</code>, <code>h1</code>, <code>div</code>, and so forth. So if you have:</p>
<pre><code>&lt;body&gt;
 &lt;header&gt;
  &lt;h1&gt;Test&lt;/h1&gt;
 &lt;/header&gt;
 &lt;article&gt;
  &lt;p&gt;...&lt;/p&gt;
  ...
 &lt;/article&gt;
 &lt;nav&gt;
  &lt;ul&gt;...&lt;/ul&gt;
 &lt;/nav&gt;
 &lt;footer&gt;
  &lt;p&gt;...&lt;/p&gt;
 &lt;/footer&gt;
&lt;/body&gt;</code></pre>
<p>...then in Firefox 2 it will be parsed as if it were:</p>
<pre><code>&lt;body&gt;
 &lt;header&gt;
  &lt;/header&gt;&lt;h1&gt;Test&lt;/h1&gt;
 
 &lt;article&gt;
  &lt;/article&gt;&lt;p&gt;...&lt;/p&gt;
  ...
 
 &lt;nav&gt;
  &lt;/nav&gt;&lt;ul&gt;...&lt;/ul&gt;
 
 &lt;footer&gt;
  &lt;/footer&gt;&lt;p&gt;...&lt;/p&gt;
 
&lt;/body&gt;</code></pre>
<p>So if you style the new elements with CSS it will probably look completely broken in Firefox 2.</p>
<p>If you care about Firefox 2 then there are some ways to fix this:</p>
<ol>
 <li>Go back to using <code>div</code> elements
 </li><li>Use content type negotiation between <code>text/html</code> and <code>application/xhtml+xml</code>
 </li><li>Fix up the DOM with scripting
</li></ol>
<p>(1) is probably wise if your content structure changes between pages or over time. (2) also works but means that users will be exposed to the Yellow Screen of Death should a markup error slip through your system. Otherwise (3) can be worth to consider.</p>
<p>Fixing up Firefox 2's DOM is actually pretty simple if you have a consistent structure. Using the same markup as above it could look something like this:</p>
<pre><code>&lt;body&gt;
 &lt;header&gt;
  &lt;h1&gt;Test&lt;/h1&gt;
 &lt;/header&gt;
 &lt;article&gt;
  &lt;p&gt;...&lt;/p&gt;
  ...
 &lt;/article&gt;
 &lt;nav&gt;
  &lt;ul&gt;...&lt;/ul&gt;
 &lt;/nav&gt;
 &lt;footer&gt;
  &lt;p&gt;...&lt;/p&gt;
 &lt;/footer&gt;
 &lt;!--[if !IE]&gt;--&gt;&lt;script&gt;
  // dom fixup for gecko pre 1.9b5
  var n = document.getElementsByTagName('header')[0];
  if (n.childNodes.length &lt;= 1) { // the element was closed early
    var tags = ['ARTICLE', 'NAV', 'FOOTER', 'SCRIPT'];
    for (var i = 0; i &lt; tags.length; ++i) {
      while (n.nextSibling &amp;&amp; n.nextSibling.nodeName != tags[i]) {
        n.appendChild(n.nextSibling);
      }
      n = n.nextSibling;
    }
  }
 &lt;/script&gt;&lt;!--&lt;![endif]--&gt;
&lt;/body&gt;</code></pre>
<p>You might think that this script would work for IE, too, when not using the createElement hack, but apparently IE throws an exception when trying to append a child to an unknown element. So you still have to use the createElement hack for IE.</p>
<p>If you want to move the script to <code>head</code> and run it on load and you don't have anything after the footer then you would replace <code>'SCRIPT'</code> in the <code>tags</code> array with <code>undefined</code> to make it work.</p>
<p>(If you want to do content type negotiation and want to just serve XHTML to Gecko-based browsers with this bug then you should look for the substrings "Gecko/" and "rv:1.<var>x</var>" where <var>x</var> is less then 9, or "rv:1.9pre" or "rv:1.9a" or "rv:1.9b<var>x</var>" where <var>x</var> is less than 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/supporting-new-elements-in-firefox-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Styling HTML5 markup in IE without script</title>
		<link>http://www.htmlfive.net/styling-html5-markup-in-ie-without-script/</link>
		<comments>http://www.htmlfive.net/styling-html5-markup-in-ie-without-script/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 13:58:38 +0000</pubDate>
		<dc:creator>Simon Pieters</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Elements]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=498</guid>
		<description><![CDATA[<p>The previous post discussed how to <a href="http://blog.whatwg.org/supporting-new-elements-in-ie">enable styling of the new HTML5 elements in IE</a> by using a simple script. However, if the user has scripting disabled, the layout would probably fall apart badly.

</p><p>So that means if you care about IE users with scripting disabled, you can't use the new elements, right?

</p><p>Not necessarily.

</p><p>There are some tricks to work around the broken DOM and limited styling in IE:

<ol>
 <li>Know what the DOM looks like and target other elements than the new elements for styling.
 </li><li>Use the universal selector (<code>*</code>) to target the right element.
 </li><li>Use <code>noscript</code>.
</li></ol>

</p><p>What does this mean?

<h3>Target other elements for styling</h3>

</p><p>Consider you have the following markup:

<pre><code>&#60;body&#62;
 &#60;article&#62;
  ...
 &#60;/article&#62;
 &#60;nav&#62;
  &#60;ul&#62;
   ...
  &#60;/ul&#62;
 &#60;/nav&#62;
&#60;/body&#62;</code></pre>

</p><p>Instead of doing this:

<pre><code>* { margin:0; padding:0 }
body { background:silver }
article { border:solid; background:white; margin-left:10em }
nav { position:absolute; top:0; left:0; width:10em }</code></pre>

</p><p>...do this:

<pre><code>* { margin:0; padding:0 }
html { background:silver }
body { border:solid; background:white; margin-left:10em }
ul { position:absolute; top:0; left:0; width:10em }</code></pre>

</p><p>Now of course you're going to use other <code>ul</code> elements than the navigation, so how do we get more specific on which element to target? The obvious solution is to set a class or id on the <code>ul</code> element, but there's another solution which might be more convenient in some cases, which brings me to...

<h3>Using the universal selector</h3>

</p><p>Depending on the situation, and whether you care about IE6 or not, you can use the universal selector to target the element you want.

</p><p>Consider you have the following markup:

<pre><code>&#60;body&#62;
 &#60;article&#62;
  &#60;header&#62;
   &#60;h1&#62;...&#60;/h1&#62;
   &#60;p&#62;...&#60;/p&#62;
  &#60;/header&#62;
  ...</code></pre>

</p><p>...and you want to style the <code>p</code> that is in <code>header</code>, you would do this in the normal case:

<pre><code>article header p { font-weight:bold }</code></pre>

</p><p>But in IE, the <code>article</code>, <code>header</code>, <code>h1</code> and <code>p</code> elements are all siblings, so the selector wouldn't match.

</p><p>So then one would expect this to match, but it doesn't (IE doesn't allow selecting unknown elements using type selectors):

</p><pre><code>article + header + h1 + p { font-weight:bold }</code></pre>

<p>However, this matches:

<pre><code>body &#62; * + * + h1 + p { font-weight:bold }</code></pre>

<h3>Using <code>noscript</code></h3>

</p><p>The above techniques shouldn't mess up other browsers (or IE when scripting is enabled), however if you prefer (or if something would screw up) you can use a separate style sheet for IE when scripting is disabled by just using the following markup:

<pre><code>&#60;head&#62;
 &#60;!--[if IE]&#62;
  &#60;noscript&#62;&#60;link rel="stylesheet" href="ie-noscript.css"&#62;&#60;/noscript&#62;
 &#60;![endif]--&#62;
 ...</code></pre>

<h3>Conclusion</h3>

</p><p>The above techniques might not be very scalable or might well impact maintanence, but the point of this article is to show that it is <em>possible</em> to use the new elements while still supporting IE with scripting disabled.</p>]]></description>
			<content:encoded><![CDATA[<p>The previous post discussed how to <a href="http://blog.whatwg.org/supporting-new-elements-in-ie">enable styling of the new HTML5 elements in IE</a> by using a simple script. However, if the user has scripting disabled, the layout would probably fall apart badly.

</p><p>So that means if you care about IE users with scripting disabled, you can't use the new elements, right?

</p><p>Not necessarily.

</p><p>There are some tricks to work around the broken DOM and limited styling in IE:

<ol>
 <li>Know what the DOM looks like and target other elements than the new elements for styling.
 </li><li>Use the universal selector (<code>*</code>) to target the right element.
 </li><li>Use <code>noscript</code>.
</li></ol>

</p><p>What does this mean?

<h3>Target other elements for styling</h3>

</p><p>Consider you have the following markup:

<pre><code>&lt;body&gt;
 &lt;article&gt;
  ...
 &lt;/article&gt;
 &lt;nav&gt;
  &lt;ul&gt;
   ...
  &lt;/ul&gt;
 &lt;/nav&gt;
&lt;/body&gt;</code></pre>

</p><p>Instead of doing this:

<pre><code>* { margin:0; padding:0 }
body { background:silver }
article { border:solid; background:white; margin-left:10em }
nav { position:absolute; top:0; left:0; width:10em }</code></pre>

</p><p>...do this:

<pre><code>* { margin:0; padding:0 }
html { background:silver }
body { border:solid; background:white; margin-left:10em }
ul { position:absolute; top:0; left:0; width:10em }</code></pre>

</p><p>Now of course you're going to use other <code>ul</code> elements than the navigation, so how do we get more specific on which element to target? The obvious solution is to set a class or id on the <code>ul</code> element, but there's another solution which might be more convenient in some cases, which brings me to...

<h3>Using the universal selector</h3>

</p><p>Depending on the situation, and whether you care about IE6 or not, you can use the universal selector to target the element you want.

</p><p>Consider you have the following markup:

<pre><code>&lt;body&gt;
 &lt;article&gt;
  &lt;header&gt;
   &lt;h1&gt;...&lt;/h1&gt;
   &lt;p&gt;...&lt;/p&gt;
  &lt;/header&gt;
  ...</code></pre>

</p><p>...and you want to style the <code>p</code> that is in <code>header</code>, you would do this in the normal case:

<pre><code>article header p { font-weight:bold }</code></pre>

</p><p>But in IE, the <code>article</code>, <code>header</code>, <code>h1</code> and <code>p</code> elements are all siblings, so the selector wouldn't match.

</p><p>So then one would expect this to match, but it doesn't (IE doesn't allow selecting unknown elements using type selectors):

</p><pre><code>article + header + h1 + p { font-weight:bold }</code></pre>

<p>However, this matches:

<pre><code>body &gt; * + * + h1 + p { font-weight:bold }</code></pre>

<h3>Using <code>noscript</code></h3>

</p><p>The above techniques shouldn't mess up other browsers (or IE when scripting is enabled), however if you prefer (or if something would screw up) you can use a separate style sheet for IE when scripting is disabled by just using the following markup:

<pre><code>&lt;head&gt;
 &lt;!--[if IE]&gt;
  &lt;noscript&gt;&lt;link rel="stylesheet" href="ie-noscript.css"&gt;&lt;/noscript&gt;
 &lt;![endif]--&gt;
 ...</code></pre>

<h3>Conclusion</h3>

</p><p>The above techniques might not be very scalable or might well impact maintanence, but the point of this article is to show that it is <em>possible</em> to use the new elements while still supporting IE with scripting disabled.</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/styling-html5-markup-in-ie-without-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Supporting New Elements in IE</title>
		<link>http://www.htmlfive.net/supporting-new-elements-in-ie/</link>
		<comments>http://www.htmlfive.net/supporting-new-elements-in-ie/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 16:26:28 +0000</pubDate>
		<dc:creator>Lachlan Hunt</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Elements]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Syntax]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=484</guid>
		<description><![CDATA[<p>Internet Explorer poses a small challenge when it comes to making use of the new elements introduced in HTML5.  Among others, these include elements like <code>section</code>, <code>article</code>, <code>header</code> and <code>footer</code>. The problem is that due to the way parsing works in IE, these elements are not recognised properly and result in an anomalous DOM representation.</p>

<p>To illustrate, consider this simple document fragment:</p>

<pre>&#60;body&#62;
  &#60;section&#62;
    &#60;p&#62;This is an example&#60;/p&#62;
  &#60;/section&#62;
&#60;/body&#62;</pre>

<p>Strangely, IE 6, 7 and 8 all fail to parse the <code>section</code> element properly and the resulting DOM looks like this.</p>

<ul>
	<li><code>BODY</code>
		<ul>
			<li><code>SECTION</code></li>
			<li><code>P</code>
				<ul>
					<li><code>#text</code>: This is an example</li>
				</ul>
			</li>
			<li><code>/SECTION</code></li>
		</ul>
	</li>
</ul>

<p>Notice how IE actually creates 2 empty elements.  One named <code>SECTION</code> and the other named <code>/SECTION</code>. Yes, it really is parsing the end tag as a start tag for an unknown empty element.</p>

<p>There is a handy workaround available to address this problem, which was first revealed in <a href="http://intertwingly.net/blog/2008/01/22/Best-Standards-Support#c1201006277">a comment by Sjoerd Visscher</a>.

The basic concept is that by using <code>document.createElement(<var>tagName</var>)</code> to create each of the unknown elements, the parser in IE then recognises those elements and parses them in a more reasonable and useful way. e.g. By using the following script:</p>

<pre>document.createElement("section");</pre>

<p>The resulting DOM for the fragment given above looks like this:</p>

<ul>
	<li><code>BODY</code>
		<ul>
			<li><code>section</code>
				<ul>
					<li><code>P</code>
						<ul>
							<li><code>#text</code>: This is an example</li>
						</ul>
					</li>
				</ul>
			</li>
		</ul>
	</li>
</ul>

<p>This same technique works for all unknown elements in IE 6, 7 and 8.  Note that there is a known bug that prevented this from working in IE 8 beta 2, but this has since been resolved in the latest non-public technical preview.</p>

<p>For convenience, Remy Sharp has written and <a href="http://remysharp.com/2009/01/07/html5-enabling-script/">published a simple script</a> that provides this enhancement for all new elements in the current draft of HTML5, which you can download and use.</p>

<p>This script is not needed for other browsers. Opera 9, Firefox 3 and Safari 3 all parse unknown elements in a more reasonable way by default. Note, however, that Firefox 2 does suffer from some related problems, for which there is unfortunately no known solution; but it is hoped that given the faster upgrade cycle for users of Firefox, relatively speaking compared with IE, Firefox 2 won't pose too much of a problem in the future.</p>]]></description>
			<content:encoded><![CDATA[<p>Internet Explorer poses a small challenge when it comes to making use of the new elements introduced in HTML5.  Among others, these include elements like <code>section</code>, <code>article</code>, <code>header</code> and <code>footer</code>. The problem is that due to the way parsing works in IE, these elements are not recognised properly and result in an anomalous DOM representation.</p>

<p>To illustrate, consider this simple document fragment:</p>

<pre>&lt;body&gt;
  &lt;section&gt;
    &lt;p&gt;This is an example&lt;/p&gt;
  &lt;/section&gt;
&lt;/body&gt;</pre>

<p>Strangely, IE 6, 7 and 8 all fail to parse the <code>section</code> element properly and the resulting DOM looks like this.</p>

<ul>
	<li><code>BODY</code>
		<ul>
			<li><code>SECTION</code></li>
			<li><code>P</code>
				<ul>
					<li><code>#text</code>: This is an example</li>
				</ul>
			</li>
			<li><code>/SECTION</code></li>
		</ul>
	</li>
</ul>

<p>Notice how IE actually creates 2 empty elements.  One named <code>SECTION</code> and the other named <code>/SECTION</code>. Yes, it really is parsing the end tag as a start tag for an unknown empty element.</p>

<p>There is a handy workaround available to address this problem, which was first revealed in <a href="http://intertwingly.net/blog/2008/01/22/Best-Standards-Support#c1201006277">a comment by Sjoerd Visscher</a>.

The basic concept is that by using <code>document.createElement(<var>tagName</var>)</code> to create each of the unknown elements, the parser in IE then recognises those elements and parses them in a more reasonable and useful way. e.g. By using the following script:</p>

<pre>document.createElement("section");</pre>

<p>The resulting DOM for the fragment given above looks like this:</p>

<ul>
	<li><code>BODY</code>
		<ul>
			<li><code>section</code>
				<ul>
					<li><code>P</code>
						<ul>
							<li><code>#text</code>: This is an example</li>
						</ul>
					</li>
				</ul>
			</li>
		</ul>
	</li>
</ul>

<p>This same technique works for all unknown elements in IE 6, 7 and 8.  Note that there is a known bug that prevented this from working in IE 8 beta 2, but this has since been resolved in the latest non-public technical preview.</p>

<p>For convenience, Remy Sharp has written and <a href="http://remysharp.com/2009/01/07/html5-enabling-script/">published a simple script</a> that provides this enhancement for all new elements in the current draft of HTML5, which you can download and use.</p>

<p>This script is not needed for other browsers. Opera 9, Firefox 3 and Safari 3 all parse unknown elements in a more reasonable way by default. Note, however, that Firefox 2 does suffer from some related problems, for which there is unfortunately no known solution; but it is hoped that given the faster upgrade cycle for users of Firefox, relatively speaking compared with IE, Firefox 2 won't pose too much of a problem in the future.</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/supporting-new-elements-in-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Tech Talk: HTML5 demos</title>
		<link>http://www.htmlfive.net/google-tech-talk-html5-demos/</link>
		<comments>http://www.htmlfive.net/google-tech-talk-html5-demos/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 23:49:13 +0000</pubDate>
		<dc:creator>Ian Hickson</dc:creator>
				<category><![CDATA[Browser API]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Conformance Checking]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Elements]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Forms]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Syntax]]></category>
		<category><![CDATA[WHATWG]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=300</guid>
		<description><![CDATA[<p>I gave a talk at Google on Monday demonstrating the various features of HTML5 that are implemented in browsers today. The video is now on YouTube, so now you too can watch and laugh at my lame presentation skills!</p>
<p></p>
<p>The segments of this talk are as follows. Some of the demos are available online for you to play with and are linked to from the following list:</p>
<ol>
 <li> Introduction
 </li><li> <a href="http://whatwg.org/demos/2008-sept/video/video.html"><code>&#60;video&#62;</code></a> (00:35)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/gadget-host/host.html"><code>postMessage()</code></a> (05:40)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/editor/editor.html"><code>localStorage</code></a> (15:20)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/wizard/step1.html"><code>sessionStorage</code></a> (21:00)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/dnd/dnd.html">Drag and Drop API</a> (29:05)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/hashchange/hashchange.html"><code>onhashchange</code></a> (37:30)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/widgets/">Form Controls</a> (40:50)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/color/color.html"><code>&#60;canvas&#62;</code></a> (56:55)
 </li><li> <a href="http://html5.validator.nu/">Validation</a> (1:07:20)
 </li><li> Questions and Answers (1:09:35)
</li></ol>
<p>If you're very interested in watching my typos, the high quality version of <a href="http://www.youtube.com/watch?v=xIxDJof7xxQ&#38;eurl=http://www.whatwg.org/demos/2008-sept/">the video on the YouTube site</a> is clear enough to see the text being typed. More details about the demos can be found on the corresponding <a href="http://whatwg.org/demos/2008-sept/">demo page</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>I gave a talk at Google on Monday demonstrating the various features of HTML5 that are implemented in browsers today. The video is now on YouTube, so now you too can watch and laugh at my lame presentation skills!</p>
<p></p>
<p>The segments of this talk are as follows. Some of the demos are available online for you to play with and are linked to from the following list:</p>
<ol>
 <li> Introduction
 </li><li> <a href="http://whatwg.org/demos/2008-sept/video/video.html"><code>&lt;video&gt;</code></a> (00:35)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/gadget-host/host.html"><code>postMessage()</code></a> (05:40)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/editor/editor.html"><code>localStorage</code></a> (15:20)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/wizard/step1.html"><code>sessionStorage</code></a> (21:00)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/dnd/dnd.html">Drag and Drop API</a> (29:05)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/hashchange/hashchange.html"><code>onhashchange</code></a> (37:30)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/widgets/">Form Controls</a> (40:50)
 </li><li> <a href="http://whatwg.org/demos/2008-sept/color/color.html"><code>&lt;canvas&gt;</code></a> (56:55)
 </li><li> <a href="http://html5.validator.nu/">Validation</a> (1:07:20)
 </li><li> Questions and Answers (1:09:35)
</li></ol>
<p>If you're very interested in watching my typos, the high quality version of <a href="http://www.youtube.com/watch?v=xIxDJof7xxQ&#38;eurl=http://www.whatwg.org/demos/2008-sept/">the video on the YouTube site</a> is clear enough to see the text being typed. More details about the demos can be found on the corresponding <a href="http://whatwg.org/demos/2008-sept/">demo page</a>.</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/google-tech-talk-html5-demos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 Live DOM Viewer—Now in Your Browser</title>
		<link>http://www.htmlfive.net/html5-live-dom-viewer%e2%80%94now-in-your-browser/</link>
		<comments>http://www.htmlfive.net/html5-live-dom-viewer%e2%80%94now-in-your-browser/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 12:27:30 +0000</pubDate>
		<dc:creator>Henri Sivonen</dc:creator>
				<category><![CDATA[DOM]]></category>
		<category><![CDATA[Syntax]]></category>

		<guid isPermaLink="false">http://blog.whatwg.org/?p=239</guid>
		<description><![CDATA[<p>Earlier, I <a href="http://blog.whatwg.org/html5-live-dom-viewer">blogged</a> about running the Validator.nu HTML Parser inside Hixie’s Live DOM Viewer using the magic of the hosted mode of the Google Web Toolkit. Back then, a compiler bug in GTW 1.5 RC1 prevented the parser from running as JavaScript in the Web mode. Google has now <a href="http://code.google.com/webtoolkit/releases/release-notes-1.5.1.html">released</a> GWT 1.5 RC2, which contains a fix for the bug.</p>

<p>So without further ado, here’s <a href="http://livedom.validator.nu/">Live DOM Viewer with an HTML5 parser running as JavaScript in your browser</a>.</p>

<p>Try pasting in the <a href="http://www.croczilla.com/svg/samples/lion/lion.svg">SVG lion</a> or some <a href="http://www.mozilla.org/projects/mathml/demo/basics.xhtml">MathML</a> in Firefox 3 and Opera 9.5.</p>

<p>Known problems:</p>

<ul>
<li>SVG <code>use</code> does not work in Firefox. <em>Update: Fixed in Minefield nightlies.</em></li>
<li>SVG does not render is Safari.</li>
<li>IE does not support <code>createElementNS</code> and, thus, does not work at all.</li>
</ul>

<p>A big thanks for the GWT team for making this work!</p>]]></description>
			<content:encoded><![CDATA[<p>Earlier, I <a href="http://blog.whatwg.org/html5-live-dom-viewer">blogged</a> about running the Validator.nu HTML Parser inside Hixie’s Live DOM Viewer using the magic of the hosted mode of the Google Web Toolkit. Back then, a compiler bug in GTW 1.5 RC1 prevented the parser from running as JavaScript in the Web mode. Google has now <a href="http://code.google.com/webtoolkit/releases/release-notes-1.5.1.html">released</a> GWT 1.5 RC2, which contains a fix for the bug.</p>

<p>So without further ado, here’s <a href="http://livedom.validator.nu/">Live DOM Viewer with an HTML5 parser running as JavaScript in your browser</a>.</p>

<p>Try pasting in the <a href="http://www.croczilla.com/svg/samples/lion/lion.svg">SVG lion</a> or some <a href="http://www.mozilla.org/projects/mathml/demo/basics.xhtml">MathML</a> in Firefox 3 and Opera 9.5.</p>

<p>Known problems:</p>

<ul>
<li>SVG <code>use</code> does not work in Firefox. <em>Update: Fixed in Minefield nightlies.</em></li>
<li>SVG does not render is Safari.</li>
<li>IE does not support <code>createElementNS</code> and, thus, does not work at all.</li>
</ul>

<p>A big thanks for the GWT team for making this work!</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/html5-live-dom-viewer%e2%80%94now-in-your-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
