<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.whatwg.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Michel+Fortin</id>
	<title>WHATWG Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.whatwg.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Michel+Fortin"/>
	<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/wiki/Special:Contributions/Michel_Fortin"/>
	<updated>2026-04-22T08:12:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=User:Michel_Fortin&amp;diff=9812</id>
		<title>User:Michel Fortin</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=User:Michel_Fortin&amp;diff=9812"/>
		<updated>2015-02-08T18:57:19Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://michelf.ca/ I&#039;m here.]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=HTML_vs._XHTML&amp;diff=2128</id>
		<title>HTML vs. XHTML</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=HTML_vs._XHTML&amp;diff=2128"/>
		<updated>2007-03-07T17:18:40Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Undo revision 2127 by Special:Contributions/Ahneu (User talk:Ahneu)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Differences Between HTML and XHTML ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please note that the information in here is based upon the current spec for (X)HTML5.  Some of the issues technically do not apply to previous versions of HTML.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Although HTML and XHTML appear to have similarities in their syntax, they are significantly different in many ways.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Note&#039;&#039;&#039;: As the current WHATWG document is a draft, this section will need to track to a moving target.&lt;br /&gt;
 Differences marked @@@ are differences that could theoretically be changed without affecting &lt;br /&gt;
 backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
=== MIME Types ===&lt;br /&gt;
&lt;br /&gt;
* XHTML must be served with an XML MIME type, such as &amp;lt;code&amp;gt;application/xml&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;application/xhtml+xml&amp;lt;/code&amp;gt;.&lt;br /&gt;
* HTML must be served as &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It is the MIME type that determines what type of document you are using.  If you use attempt to send XHTML as &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;, you are actually just using HTML, possibly with syntax errors.&lt;br /&gt;
&lt;br /&gt;
Technically, according to the spec, XHTML 1.0 is allowed to be served as &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;.  But, due to the above reason, such a document is considered to be an HTML document, not an XHTML document.&lt;br /&gt;
&lt;br /&gt;
=== Parsing ===&lt;br /&gt;
&lt;br /&gt;
XHTML uses XML parsing requirements. HTML uses its own which are defined much more closely to the way browsers actually handle HTML today.&lt;br /&gt;
&lt;br /&gt;
* In XHTML, well-formedness errors are fatal. In HTML, error handling rules are much more graceful. Well-formedness errors, which are also syntax errors in HTML, include the following:&lt;br /&gt;
** Unencoded ampersands (&amp;lt;code&amp;gt;&amp;amp;amp;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;amp;amp;amp;&amp;lt;/code&amp;gt;), and less than signs (&amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;&amp;amp;amp;lt;&amp;lt;/code&amp;gt;) (This does not apply to &amp;lt;code&amp;gt;CDATA&amp;lt;/code&amp;gt;).&lt;br /&gt;
** Comments containing extra pairs of hyphens or ending with a hyphen. e.g.&lt;br /&gt;
*** &amp;lt;code&amp;gt;&amp;amp;lt;!--&amp;lt;var&amp;gt; syntax -- error &amp;lt;/var&amp;gt;--&amp;amp;gt;&amp;lt;/code&amp;gt; or&lt;br /&gt;
*** &amp;lt;code&amp;gt;&amp;amp;lt;!--&amp;lt;var&amp;gt; syntax error -&amp;lt;/var&amp;gt;--&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Mismatched end tags (does not apply to elements with optional tags) &lt;br /&gt;
** Unclosed tags.&lt;br /&gt;
** Unexpected characters occuring in or before attribute names.&lt;br /&gt;
** Unexpected occurrence of EOF.&lt;br /&gt;
** Unexpected characters before the DOCTYPE name.&lt;br /&gt;
** Missing DOCTYPE name.&lt;br /&gt;
** A &amp;lt;code&amp;gt;PUBLIC&amp;lt;/code&amp;gt; identifer in a &amp;lt;code&amp;gt;DOCTYPE&amp;lt;/code&amp;gt; without a &amp;lt;code&amp;gt;SYSTEM&amp;lt;/code&amp;gt; identifier (Note: including either of these is a syntax error in HTML5; but, in XML only the &amp;lt;code&amp;gt;SYSTEM&amp;lt;/code&amp;gt; identifier is allowed to occur on its own).&lt;br /&gt;
** End tags with attributes. &lt;br /&gt;
** Unexpected end tags (in HTML, an unexpected &amp;lt;code&amp;gt;&amp;amp;lt;/br&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;lt;/p&amp;gt;&amp;lt;/code&amp;gt; can cause the start tag to be implied before it).&lt;br /&gt;
* The internal subset is permitted in XML, but meaningless (and forbidden) in HTML.&lt;br /&gt;
** In some cases, an internal subset in HTML would end up being partly rendered inline.&lt;br /&gt;
* The sequence of characters &amp;amp;quot;&amp;lt;code&amp;gt;]]&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;amp;quot; when it does not mark the end of a &amp;lt;code&amp;gt;CDATA&amp;lt;/code&amp;gt; section is a well-formedness error in XHTML, but valid in HTML.&lt;br /&gt;
* In XHTML: &amp;lt;code&amp;gt;&amp;amp;lt;![CDATA[...]]&amp;amp;gt;&amp;lt;/code&amp;gt; is a &amp;lt;code&amp;gt;CDATA&amp;lt;/code&amp;gt; section. In HTML, it&#039;s a bogus comment.&lt;br /&gt;
* In XHTML, &amp;lt;code&amp;gt;&amp;amp;lt;?foo ...?&amp;amp;gt;&amp;lt;/code&amp;gt; is a processing instruction. In HTML, it&#039;s a bogus comment.&lt;br /&gt;
* In HTML, the trailing slash used for the empty element syntax is a parse error for non-void elements (see below), but is ignored in all cases.&lt;br /&gt;
* In HTML, the &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; elements are parsed as &amp;lt;code&amp;gt;CDATA&amp;lt;/code&amp;gt;. (Note: the definition of &amp;lt;code&amp;gt;CDATA&amp;lt;/code&amp;gt; differs from that in XML). In XML, they&#039;re parsed as normal elements (which means that comments are treated as &amp;lt;em&amp;gt;real&amp;lt;/em&amp;gt; comments, and things that look like start tags actually are start tags).&lt;br /&gt;
* In HTML, the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;textarea&amp;lt;/code&amp;gt; elements are parsed as &amp;lt;code&amp;gt;RCDATA&amp;lt;/code&amp;gt;. (Note: The definition of &amp;lt;code&amp;gt;RCDATA&amp;lt;/code&amp;gt; differs from that in SGML and there is no &amp;lt;code&amp;gt;RCDATA&amp;lt;/code&amp;gt; in XML).&lt;br /&gt;
* In HTML, if scripting is enabled, the &amp;lt;code&amp;gt;noscript&amp;lt;/code&amp;gt; element is parsed as &amp;lt;code&amp;gt;CDATA&amp;lt;/code&amp;gt;. If scripting is disabled, it&#039;s parsed as &amp;lt;code&amp;gt;PCDATA&amp;lt;/code&amp;gt;. In XHTML, the element has no effect, and can&#039;t really be used to stop content from being present when script is disabled.&lt;br /&gt;
* In HTML, the &amp;lt;code&amp;gt;iframe&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;noembed&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;noframes&amp;lt;/code&amp;gt; elements are parsed as &amp;lt;code&amp;gt;CDATA&amp;lt;/code&amp;gt;. In XHTML, they are parsed as normal elements, and therefore do not stop content from being used.&lt;br /&gt;
* White space characters in attribute values are [http://www.w3.org/TR/REC-xml/#AVNormalize normalized] to spaces in XHTML.&lt;br /&gt;
* Elements with optional tags are implied in certain conditions.&lt;br /&gt;
* In HTML, &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;link&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; elements with tags occurring in the body are moved inserted into the head. In XHTML, they stay where they were specified.&lt;br /&gt;
* In HTML, tags for certain elements, which appear out of context, are ignored. This includes &amp;lt;code&amp;gt;caption&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;col&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;colgroup&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frame&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frameset&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;option&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;optgroup&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tbody&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tfoot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;th&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;thead&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tr&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The &amp;lt;code&amp;gt;plaintext&amp;lt;/code&amp;gt; element has a special parsing requirement in HTML. (it is, however, forbidden). &lt;br /&gt;
* &amp;lt;em&amp;gt;Many other special handling of edge cases and error conditions, not all of which are listed here, occur in HTML.&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
&lt;br /&gt;
* In HTML, [http://blog.whatwg.org/faq/#doctype the &amp;lt;code&amp;gt;doctype&amp;lt;/code&amp;gt; is required]. In XHTML, it is optional.&lt;br /&gt;
* In XHTML, tag names and attribute names are case sensitive. In HTML, they are case insensitive.&lt;br /&gt;
* In XHTML, non-empty elements require both a start and an end tag. In HTML, certain elements allow the omission of either or both:&lt;br /&gt;
** &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; (both)&lt;br /&gt;
** &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; (both)&lt;br /&gt;
** &amp;lt;code&amp;gt;body&amp;lt;/code&amp;gt; (both)&lt;br /&gt;
** &amp;lt;code&amp;gt;li&amp;lt;/code&amp;gt; (end tag)&lt;br /&gt;
** &amp;lt;code&amp;gt;dt&amp;lt;/code&amp;gt; (end tag)&lt;br /&gt;
** &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; (end tag)&lt;br /&gt;
** &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; (end tag)&lt;br /&gt;
** &amp;lt;code&amp;gt;colgroup&amp;lt;/code&amp;gt; (both)&lt;br /&gt;
** &amp;lt;code&amp;gt;thead&amp;lt;/code&amp;gt; (end tag)&lt;br /&gt;
** &amp;lt;code&amp;gt;tbody&amp;lt;/code&amp;gt; (both)&lt;br /&gt;
** &amp;lt;code&amp;gt;tfoot&amp;lt;/code&amp;gt; (end tag)&lt;br /&gt;
** &amp;lt;code&amp;gt;tr&amp;lt;/code&amp;gt; (end tag)&lt;br /&gt;
** &amp;lt;code&amp;gt;td&amp;lt;/code&amp;gt; (end tag)&lt;br /&gt;
** &amp;lt;code&amp;gt;th&amp;lt;/code&amp;gt; (end tag)&lt;br /&gt;
* In XHTML, empty elements may use either the empty element syntax (&amp;lt;code&amp;gt;&amp;amp;lt;br/&amp;amp;gt;&amp;lt;/code&amp;gt;) or have an end tag immediately follow the start tag (&amp;lt;code&amp;gt;&amp;amp;lt;br&amp;amp;gt;&amp;amp;lt;/br&amp;amp;gt;&amp;lt;/code&amp;gt;). In HTML, the empty element syntax (trailing slash) is allowed on void elements, but forbidden on other elements. However, it serves no purpose whatsoever and can be omitted. End tags for void elements are forbidden.&lt;br /&gt;
** &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt; link&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;br&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;embed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;param&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;area&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;col&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt;&lt;br /&gt;
** Note: the following are treated as void elements for the purpose in the parsing requirements, but, as they are obsolete and non-standard, the trailing slash is not permitted:  &amp;lt;code&amp;gt;basefont&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;gsound&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;spacer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;wbr&amp;lt;/code&amp;gt;. (although, since these elements are not permitted anyway, it doesn&#039;t make much difference).&lt;br /&gt;
* HTML allows attribute minimisation (i.e. omitting the value), XHTML does not.&lt;br /&gt;
* HTML allows the use of unquoted attribute values, XHTML does not.&lt;br /&gt;
* XHTML allows the use of &amp;lt;code&amp;gt;CDATA&amp;lt;/code&amp;gt; sections, HTML does not.&lt;br /&gt;
* XHTML allows the use of processing instructions, HTML does not.&lt;br /&gt;
* In HTML, all entity references are predefined and do not require a DTD. But because there is no DTD for XHTML5, entity references cannot be used in XHTML. (excluding the 5 predefined entities: &amp;lt;code&amp;gt;&amp;amp;amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;quot;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;amp;apos;)&amp;lt;/code&amp;gt;&lt;br /&gt;
** You may provide your own DTD for use with your own validating parser, but be aware that browsers do not use validating parsers and will not read the DTD.&lt;br /&gt;
* The valid set of unicode characters  in XML 1.0 is limited beyond that in HTML.&lt;br /&gt;
* Namespace prefixes are permitted in XHTML. They are forbidden in HTML. &lt;br /&gt;
&lt;br /&gt;
=== Markup ===&lt;br /&gt;
&lt;br /&gt;
* The [http://blog.whatwg.org/faq/#namespace-decl namespace declaration] (&amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute) is required in XHTML.  The xmlns attribute is also allowed to appear on the &amp;lt;code&amp;gt;html&amp;lt;/code&amp;gt; element in HTML on the condition that is has the value &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
** In HTML, the xmlns attribute has absolutely no effect. It is basically a talisman. It is allowed merely to make migration to and from XHTML mildly easier.  When parsed by an HTML parser, the attribute ends up in the null namespace&lt;br /&gt;
** In XML (with an [http://www.w3.org/TR/xml-names/ XML Namespaces]-aware parser), an xmlns attribute is part of the namespace declaration mechanism, and an element cannot actually have an xmlns attribute in the null namespace.  In DOM implementations, the attribute ends up in the &amp;quot;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.w3.org/2000/xmlns/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;quot; namespace.&lt;br /&gt;
* XHTML allows non XHTML elements and attributes (in different namespaces) to be used, HTML does not.&lt;br /&gt;
* XHTML uses the &amp;lt;code&amp;gt;xml:lang&amp;lt;/code&amp;gt; attribute, HTML uses &amp;lt;code&amp;gt;lang&amp;lt;/code&amp;gt; instead,&lt;br /&gt;
* XML ID introduces &amp;lt;code&amp;gt;xml:id&amp;lt;/code&amp;gt;, which could be used in XHTML. In HTML it has no effect.&lt;br /&gt;
* In HTML, the &amp;lt;code&amp;gt;noscript&amp;lt;/code&amp;gt; element may be used. In XHTML, it is forbidden.&lt;br /&gt;
* HTML uses the &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt; element, XHTML uses &amp;lt;code&amp;gt;xml:base&amp;lt;/code&amp;gt; instead. &lt;br /&gt;
* In XHTML, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; elements may contain structured inline level elements including &amp;lt;code&amp;gt;blockquote&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;menu&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ol&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ul&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pre&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;. In the HTML serialisation, due to backwards compatibility constraints, this is not possible (though it may be done through DOM manipulation).&lt;br /&gt;
* In XHTML, &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt; elements may contain child &amp;lt;code&amp;gt;tr&amp;lt;/code&amp;gt; elements. In the HTML serialisation, due to backwards compatibility constraints, this is not possible (though it may be done through DOM manipulation).&lt;br /&gt;
&lt;br /&gt;
=== Character Encoding ===&lt;br /&gt;
&lt;br /&gt;
* In XHTML, the XML declaration may be used to [http://blog.whatwg.org/faq/#charset specify the character encoding]. In HTML, the xml declaration is forbidden&lt;br /&gt;
* In HTML, the &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element may be used insted. The &amp;lt;code&amp;gt;http-equiv&amp;lt;/code&amp;gt; attribute on the &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element is forbidden in XHTML and is ignored if included.&lt;br /&gt;
* The default character encoding for XHTML is, according to XML rules, &amp;lt;code&amp;gt;UTF-8&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;UTF-16&amp;lt;/code&amp;gt;. If the encoding is unspecified in HTML, it should be determined through implementation specific heuristics or fallback to a default value (Note: this section of the spec is not yet finished).&lt;br /&gt;
&lt;br /&gt;
=== Scripts ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;document.write()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;document.writeln()&amp;lt;/code&amp;gt; cannot be used in XHTML, they can in HTML. &lt;br /&gt;
* In XHTML, the use of the &amp;lt;code&amp;gt;innerHTML&amp;lt;/code&amp;gt; property requires that the string be a well-formed fragment of XML. &lt;br /&gt;
* DOM APIs are case sensitive in XHTML and some are case insensitive in HTML.  (This does not apply to elements which are not in the HTML namespace)&lt;br /&gt;
** Element.tagName, Node.nodeName, and Node.localName return the value in uppercase.&lt;br /&gt;
** Document.createElement() is case insensitive (the canonical form is lowercase).&lt;br /&gt;
** Element.setAttributeNode() will change the attribute name to lowercase.&lt;br /&gt;
** Element.setAttribute()   is case insensitive (the canonical form is lowercase).&lt;br /&gt;
** Document.getElementsByTagName() and Element.getElementsByTagName() are case insensitive.&lt;br /&gt;
** Document.renameNode(). If the new namespace is the HTML namespace, then the new qualified name must be lowercased before the rename takes place.&lt;br /&gt;
* In HTML, Document.createElement() will create an element in the HTML namespace.  In XML (including XHTML), the namespace is defined by both DOM2 and DOM3 to be null.&lt;br /&gt;
** In XHTML, browsers lack interoperability in this area.  In Firefox, the namespace is dependent upon the MIME type.  In Opera, it&#039;s dependent upon the root element and in Safari, it&#039;s always null.&lt;br /&gt;
&lt;br /&gt;
=== Stylesheets ===&lt;br /&gt;
&lt;br /&gt;
* Selectors, as used in CSS, match case sensitively in XHTML, but case insensitively in HTML.&lt;br /&gt;
* CSS requires special handling of the body element in HTML for painting backgrounds on the canvas, which do not apply to XHTML.&lt;br /&gt;
&lt;br /&gt;
== Differences Between HTML 4.01 and HTML 5 ==&lt;br /&gt;
&lt;br /&gt;
=== MIME Type ===&lt;br /&gt;
&lt;br /&gt;
Both HTML 4.01 and HTML 5 use &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;Content-Type: text/html; charset=UTF-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parsing HTML ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* HTML 2.0 to HTML 4.01 were formally based on SGML, but browsers did not implement SGML parsers. [http://www.w3.org/TR/html4/conform.html#h-4.2 4.2 SGML] and  [http://www.w3.org/TR/html4/appendix/notes.html#h-B.3 B.3 SGML implementation notes], HTML 4.01. This is a non-normative section of HTML 4.01 specification. And it already makes the difference between HTML user agents and SGML user agents.&lt;br /&gt;
* HTML 5 is defines its own parsing requirements based on the way browsers actually handle HTML.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
=== Markup ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/TR/html4/index/elements.html List of HTML 4.01 elements]&lt;br /&gt;
* [http://www.w3.org/TR/html4/index/attributes.html List of HTML 4.01 attributes]&lt;br /&gt;
* [http://simon.html5.org/html5-elements HTML5 Elements and Attributes]&lt;br /&gt;
&lt;br /&gt;
==== Obsolete Attributes ====&lt;br /&gt;
&lt;br /&gt;
Some attributes that were defined in HTML4 are not included in HTML5. Here&#039;s a current list (subject to change, see the spec):&lt;br /&gt;
&lt;br /&gt;
* html@version&lt;br /&gt;
* head@profile&lt;br /&gt;
* a@rev, link@rev&lt;br /&gt;
* a@target, area@target, base@target, form@target (is mentioned in WF2...), link@target&lt;br /&gt;
* a@charset, link@charset, script@charset&lt;br /&gt;
* table@summary&lt;br /&gt;
* td@headers, th@headers&lt;br /&gt;
* td@axis, th@axis&lt;br /&gt;
* param@valuetype&lt;br /&gt;
* object@standby&lt;br /&gt;
* meta@scheme&lt;br /&gt;
* object@archive&lt;br /&gt;
&lt;br /&gt;
In addition, HTML5 has none of the presentational attributes that were in HTML4 (including those on &amp;amp;lt;table&amp;gt;). Any attributes defined on &#039;&#039;elements&#039;&#039; that are not in HTML5 are (obviously) also not in HTML5.&lt;br /&gt;
&lt;br /&gt;
==== Obsolete Elements ====&lt;br /&gt;
&lt;br /&gt;
The following elements were present in HTML4 but are not defined in HTML5:&lt;br /&gt;
&lt;br /&gt;
* acronym (use &amp;lt;abbr&amp;gt; instead)&lt;br /&gt;
* applet (use &amp;lt;object&amp;gt; instead)&lt;br /&gt;
* basefont&lt;br /&gt;
* big&lt;br /&gt;
* center&lt;br /&gt;
* dir&lt;br /&gt;
* font&lt;br /&gt;
* frame&lt;br /&gt;
* frameset&lt;br /&gt;
* isindex&lt;br /&gt;
* noframes&lt;br /&gt;
* noscript (only in XHTML)&lt;br /&gt;
* s&lt;br /&gt;
* strike&lt;br /&gt;
* tt&lt;br /&gt;
* u&lt;br /&gt;
&lt;br /&gt;
=== Character Encoding ===&lt;br /&gt;
&lt;br /&gt;
The character encoding can be declared using the meta element, but the syntax of the meta element has changed.  In HTML 4.01 and earlier, the meta element was:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In HTML5, the syntax was simplified to remove the unnecessary markup, yet still remain compatible with the encoding detection implemented in most existing browsers.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== HTML 4 Algorithm ====&lt;br /&gt;
&lt;br /&gt;
Source [http://www.w3.org/TR/html4/charset.html#h-5.2.2 5.2.2 Specifying the character encoding], HTML 4.01 Specification.&lt;br /&gt;
&lt;br /&gt;
# An HTTP &amp;quot;charset&amp;quot; parameter in a &amp;quot;Content-Type&amp;quot; field.&lt;br /&gt;
# A META declaration with &amp;quot;http-equiv&amp;quot; set to &amp;quot;Content-Type&amp;quot; and a value set for &amp;quot;charset&amp;quot;.&lt;br /&gt;
# The charset attribute set on an element that designates an external resource.&lt;br /&gt;
&lt;br /&gt;
==== HTML 5 Algorithm ====&lt;br /&gt;
&lt;br /&gt;
The exact algorithm that browsers must follow in order to [http://www.whatwg.org/specs/web-apps/current-work/#the-input0 determine the character encoding] is specified in HTML 5.  The basic algorithm works as follows:&lt;br /&gt;
&lt;br /&gt;
# If the transport layer specifies an encoding, use that, and abort these steps. (e.g. The HTTP Content-Type header).&lt;br /&gt;
# Read the first 512 bytes of the file, or at least as much as possible if less than that.&lt;br /&gt;
# If the file starts with a UTF-8, UTF-16 or UTF-32 BOM, then use that and abort these steps.&lt;br /&gt;
# Otherwise use the special algorithm to search the first 512 bytes for a meta element that declares the encoding.  The algorithm is relatively lenient in what it will detect, though since it doesn&#039;t use the normal parsing algorithm, there are some restrictions.&lt;br /&gt;
&lt;br /&gt;
== Differences Between DOM Level 2.0, 3.0 and the HTML 5 DOM APIs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This section might belong on a separate page.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* TODO (need to talk about the changes to the DOM API that HTML5 is making, compared with DOM2 and DOM3)&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
&lt;br /&gt;
* [http://meiert.com/de/publications/translations/whatwg.org/html-vs-xhtml/ German translation: &amp;quot;HTML 5 und XHTML 5 im Vergleich (WHATWG)&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Feature_Proposals&amp;diff=2090</id>
		<title>Talk:Feature Proposals</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Feature_Proposals&amp;diff=2090"/>
		<updated>2007-01-04T22:44:13Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Corner Element */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
Lachlan, I think these feature proposal guidelines are cluttering this page unnecessarily. It would be better to put them elsewhere and just create a link to the guidelines. Elsewhere could be on the Contribution Guidelines page, were you&#039;ve put them initially, because feature proposals &amp;lt;em&amp;gt;are&amp;lt;/em&amp;gt; contributions. --[[User:Michel Fortin|Michel Fortin]] 08:15, 16 November 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
: Replying to myself (again), maybe the guidelines are not needed anymore. If someone creates a proposal from the template and fills all the sections he can, others can complete the proposal if they think its valuable and are knowledgeable enough. That&#039;s why we have a wiki in the first place, isn&#039;t it? -[[User:Michel Fortin|Michel Fortin]] 08:21, 16 November 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== Corner Element ==&lt;br /&gt;
&lt;br /&gt;
Do we really need a &amp;amp;lt;corner&amp;amp;gt; element mentioned in the page? This is clearly presentational and already addressed by CSS. Same goes for &amp;amp;lt;blink&amp;amp;gt;. --[[User:Matthew Raymond|Matthew Raymond]] 14:46, 4 January 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It&#039;s a bad proposal, but it&#039;s still a proposal. Maybe it should be classed in a list of  rejected proposals with a short explaination of why it is rejected (mostly what you&#039;ve just said above). The idea is that if someone want to propose it again by adding it on the wiki he&#039;ll see it&#039;s already there and know against what he has to argue if he wishes to pursue. --[[User:Michel Fortin|Michel Fortin]] 22:44, 4 January 2007 (UTC)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2044</id>
		<title>Common Subset</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2044"/>
		<updated>2006-12-09T13:43:02Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Some corrections.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The common subset intersecting HTML5 and XHTML5 is a subset of both syntaxes meant to create . The common subset is only implicitly defined by the HTML and XHTML specification because they have many syntax elements in common. A document is said to use the common subset when it can parse correctly with both the XML parser and the HTML parser.&lt;br /&gt;
&lt;br /&gt;
A document using the &#039;&#039;&#039;conforming&#039;&#039;&#039; common subset is conforming with the specification whether it is interpreted as HTML or XHTML. The conforming common subset rejects any element with are not conforming in either of the two DOM variants.&lt;br /&gt;
&lt;br /&gt;
A document using the common subset can be served as HTML (text/html media type) or XHTML (with an XML media type). The media type is what the browser use to decide if it&#039;ll be parsed as HTML or XHTML and which varient of the DOM is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Syntax ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Limitations from HTML ==&lt;br /&gt;
&lt;br /&gt;
* The [http://blog.whatwg.org/faq/#doctype doctype is required] to be &amp;lt;code&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tag and attribute names must be lowercase.&lt;br /&gt;
* XMLish end tag tailing slash must not be used with non-void elements; they&#039;ll be ignored by the HTML parser and are invalid in HTML.&lt;br /&gt;
* XMLish CDATA blocks will not work.&lt;br /&gt;
* HTML does not allow mixing with other XML dialects.&lt;br /&gt;
* HTML does not support &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; elements may contain structured inline level elements including &amp;lt;code&amp;gt;blockquote&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;menu&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ol&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ul&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pre&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; elements cannot contain &amp;lt;code&amp;gt;&amp;lt;/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Limitations from XML and XHTML ==&lt;br /&gt;
&lt;br /&gt;
* The doctype, optional in XHTML but mandatory in HTML, must match case-sensitivly this &amp;lt;code&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;/code&amp;gt; to be well-formed and valid in XHTML.&lt;br /&gt;
* Well-formness contrains, not respecting these will generate fatal errors in XHTML.&lt;br /&gt;
** Comments cannot contain double-hyphens (&amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt;).&lt;br /&gt;
** Start tags and end tags must be balenced correctly, unless they&#039;re void element.&lt;br /&gt;
** Void tags must always be closed by a tailing slash (&amp;lt;code&amp;gt;/&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
** All attributes values must be quoted. Attributes without value are disallowed.&lt;br /&gt;
** All &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; in the text must be escaped, so is &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; inside attribute values or anywhere in the text when preceded by &amp;lt;code&amp;gt;]]&amp;lt;/code&amp;gt; (where it would be CDATA section end marker).&lt;br /&gt;
** Some characters are illegal in XML (U+0009, U+000A, U+000D, U+0020-U+D7FF, U+E000-U+FFFD, U+10000-U+10FFFF) [http://www.w3.org/TR/REC-xml/#charsets XML charsets]&lt;br /&gt;
** Others constrains defined in the [http://www.w3.org/TR/REC-xml/ XML specification].&lt;br /&gt;
* &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; elements may not contain &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; in their unescaped form. External scripts and stylesheets are unaffected.&lt;br /&gt;
** There is a trick to allow &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; which involves using CDATA blocks and inside JavaScript comments. See the workarounds section.&lt;br /&gt;
* &amp;lt;code&amp;gt;noscript&amp;lt;/code&amp;gt; has no effect in XHTML.&lt;br /&gt;
* &amp;lt;code&amp;gt;document.write()&amp;lt;/code&amp;gt; does not work in XHTML.&lt;br /&gt;
* Entity references cannot be used in XHTML (excluding the 5 predefined entities: &amp;lt;code&amp;gt;&amp;amp;amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;quot;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;amp;apos;&amp;lt;/code&amp;gt;).&lt;br /&gt;
* The namespace declaration (&amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute) is required in XHTML. The xmlns attribute is also allowed to appear on the html element in HTML on the condition that is has the value &amp;quot;http://www.w3.org/1999/xhtml&amp;quot;. &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
* DOM apis are case-sensitive in XHTML, scripts should always use lowercase to be compatible.&lt;br /&gt;
* Style rules are matching case sensitivly in XHTML, stylesheets should always use lowercase tag, attribute and class names to be compatible.&lt;br /&gt;
&lt;br /&gt;
== Markup Issues and Workarounds ==&lt;br /&gt;
&lt;br /&gt;
=== Base URI ===&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;base src=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:base=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Location header:&lt;br /&gt;
&lt;br /&gt;
 Content-Location: uri&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/links.html#h-12.4.1 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Set ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; value=&amp;quot;text/html;charset=utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XHTML / XML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Type header with encoding specified:&lt;br /&gt;
&lt;br /&gt;
 Content-Type: text/html;charset=utf-8&lt;br /&gt;
 Content-Type: application/xhtml+xml;charset=utf-8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Language header:&lt;br /&gt;
&lt;br /&gt;
 Content-Language: en&lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/#lang HTML 5 Spec]&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/dirlang.html#h-8.1.2 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
Note that there is no conforming workaround to switch language for different parts of a document. There is a method which will work however: if you use HTML&#039;s lang attribute, instead of the conformant xml:lang, browser will correctly deduce the language of the element. But this will make the document non-conforming when served with an XML media type and interpreted as XHTML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scripts &amp;amp; Style ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 if (a &amp;lt; 0 &amp;amp;&amp;amp; a &amp;gt; 10) alert(&amp;quot;A not in range (0 &amp;lt; a &amp;lt; 10).&amp;quot;)&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 if (a &amp;amp;amp;lt; 0 &amp;amp;amp;amp;&amp;amp;amp;amp; a &amp;gt; 10) alert(&amp;quot;A not in range (0 &amp;amp;amp;lt; a &amp;amp;amp;lt; 10).&amp;quot;)&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;![CDATA[&lt;br /&gt;
 if (a &amp;lt; 0 &amp;amp;&amp;amp; a &amp;gt; 10) alert(&amp;quot;A not in range (0 &amp;lt; a &amp;lt; 10).&amp;quot;)&lt;br /&gt;
 ]]&amp;gt;&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: Commented CDATA block around the problemantic part of the script, or the whole script:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 /* &amp;lt;![CDATA[ */&lt;br /&gt;
 if (a &amp;lt; 0 &amp;amp;&amp;amp; a &amp;gt; 10) alert(&amp;quot;A not in range (0 &amp;lt; a &amp;lt; 10).&amp;quot;)&lt;br /&gt;
 /* ]]&amp;gt; */&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This works because HTML puts the CDATA block markers textually inside the script, but as they&#039;re then inside comments it has no effect, and the CDATA block allows the XML parser to work with unescaped character data. The same trick can be applied to the &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; element when it contains &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Note that the element must not contain the string &amp;lt;code&amp;gt;]]&amp;gt;&amp;lt;/code&amp;gt;, or the XML wouldn&#039;t be well-formed, and it may not contain &amp;lt;code&amp;gt;&amp;lt;/&amp;lt;/code&amp;gt;, or it would be non-conformant HTML. In all cases, this is only needed where &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; contains &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2043</id>
		<title>Common Subset</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2043"/>
		<updated>2006-12-09T13:08:44Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The common subset intersecting HTML5 and XHTML5 is a subset of both syntaxes meant to create . The common subset is only implicitly defined by the HTML and XHTML specification because they have many syntax elements in common. A document is said to use the common subset when it can parse correctly with both the XML parser and the HTML parser.&lt;br /&gt;
&lt;br /&gt;
A document using the &#039;&#039;&#039;conforming&#039;&#039;&#039; common subset is conforming with the specification whether it is interpreted as HTML or XHTML. The conforming common subset rejects any element with are not conforming in either of the two DOM variants.&lt;br /&gt;
&lt;br /&gt;
A document using the common subset can be served as HTML (text/html media type) or XHTML (with an XML media type). The media type is what the browser use to decide if it&#039;ll be parsed as HTML or XHTML and which varient of the DOM is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Syntax ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Limitations from HTML ==&lt;br /&gt;
&lt;br /&gt;
* The [http://blog.whatwg.org/faq/#doctype doctype is required] to be &amp;lt;code&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tag and attribute names must be lowercase.&lt;br /&gt;
* XMLish end tag tailing slash must not be used with non-void elements; they&#039;ll be ignored by the HTML parser and are invalid in HTML.&lt;br /&gt;
* XMLish CDATA blocks will not work.&lt;br /&gt;
* HTML does not allow mixing with other XML dialects.&lt;br /&gt;
* HTML does not support &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; elements may contain structured inline level elements including &amp;lt;code&amp;gt;blockquote&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;menu&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ol&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ul&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pre&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; elements cannot contain &amp;lt;code&amp;gt;&amp;lt;/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Limitations from XML and XHTML ==&lt;br /&gt;
&lt;br /&gt;
* The doctype, optional in XHTML but mandatory in HTML, must match case-sensitivly this &amp;lt;code&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;/code&amp;gt; to be well-formed and valid in XHTML.&lt;br /&gt;
* Well-formness contrains, not respecting these will generate fatal errors in XHTML.&lt;br /&gt;
** Comments cannot contain double-hyphens (&amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt;).&lt;br /&gt;
** Start tags and end tags must be balenced correctly, unless they&#039;re void element.&lt;br /&gt;
** Void tags must always be closed by a tailing slash (&amp;lt;code&amp;gt;/&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
** All attributes values must be quoted. Attributes without value are disallowed.&lt;br /&gt;
** All &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; in the text must be escaped, so is &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; inside comments or anywhere in the text when preceded by &amp;lt;code&amp;gt;]]&amp;lt;/code&amp;gt; (where it would be CDATA section end marker).&lt;br /&gt;
** Some characters are illegal in XML (U+0009, U+000A, U+000D, U+0020-U+D7FF, U+E000-U+FFFD, U+10000-U+10FFFF) [http://www.w3.org/TR/REC-xml/#charsets XML charsets]&lt;br /&gt;
** Others constrains defined in the [http://www.w3.org/TR/REC-xml/ XML specification].&lt;br /&gt;
* &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; elements may not contain &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; in their unescaped form. External scripts and stylesheets are unaffected.&lt;br /&gt;
** There is a tricky way to make that work which involves using CDATA blocks and inside JavaScript comments.&lt;br /&gt;
* &amp;lt;code&amp;gt;noscript&amp;lt;/code&amp;gt; has no effect in XHTML.&lt;br /&gt;
* &amp;lt;code&amp;gt;document.write()&amp;lt;/code&amp;gt; does not work in XHTML.&lt;br /&gt;
* Entity references cannot be used in XHTML (excluding the 5 predefined entities: &amp;lt;code&amp;gt;&amp;amp;amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;quot;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;amp;apos;&amp;lt;/code&amp;gt;).&lt;br /&gt;
* The namespace declaration (&amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute) is required in XHTML. The xmlns attribute is also allowed to appear on the html element in HTML on the condition that is has the value &amp;quot;http://www.w3.org/1999/xhtml&amp;quot;. &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
* DOM apis are case-sensitive in XHTML, scripts should always use lowercase to be compatible.&lt;br /&gt;
* Style rules are matching case sensitivly in XHTML, stylesheets should always use lowercase tag, attribute and class names to be compatible.&lt;br /&gt;
&lt;br /&gt;
== Markup Issues and Workarounds ==&lt;br /&gt;
&lt;br /&gt;
=== Base URI ===&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;base src=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:base=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Location header:&lt;br /&gt;
&lt;br /&gt;
 Content-Location: uri&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/links.html#h-12.4.1 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Set ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; value=&amp;quot;text/html;charset=utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XHTML / XML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Type header with encoding specified:&lt;br /&gt;
&lt;br /&gt;
 Content-Type: text/html;charset=utf-8&lt;br /&gt;
 Content-Type: application/xhtml+xml;charset=utf-8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Language header:&lt;br /&gt;
&lt;br /&gt;
 Content-Language: en&lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/#lang HTML 5 Spec]&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/dirlang.html#h-8.1.2 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
Note that there is no conforming workaround to switch language for different parts of a document. There is a method which will work however: if you use HTML&#039;s lang attribute, instead of the conformant xml:lang, browser will correctly deduce the language of the element. But this will make the document non-conforming when served with an XML media type and interpreted as XHTML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Scripts &amp;amp; Style ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 if (a &amp;lt; 0 &amp;amp;&amp;amp; a &amp;gt; 10) alert(&amp;quot;A not in range (0 &amp;lt; a &amp;lt; 10).&amp;quot;)&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 if (a &amp;amp;amp;lt; 0 &amp;amp;amp;amp;&amp;amp;amp;amp; a &amp;gt; 10) alert(&amp;quot;A not in range (0 &amp;amp;amp;lt; a &amp;amp;amp;lt; 10).&amp;quot;)&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: Commented CDATA block around the problemantic part of the script, or the whole script:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
 /* &amp;lt;![CDATA[ */&lt;br /&gt;
 if (a &amp;lt; 0 &amp;amp;&amp;amp; a &amp;gt; 10) alert(&amp;quot;A not in range (0 &amp;lt; a &amp;lt; 10).&amp;quot;)&lt;br /&gt;
 /* ]]&amp;gt; */&lt;br /&gt;
 &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This works because HTML puts the CDATA block markers textually inside the script, but as they&#039;re then inside comments it has no effect, and the CDATA block allows the XML parser to work with unescaped character data. The same trick can be applied to the &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; element when it contains &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Note that the element must not contain the string &amp;lt;code&amp;gt;]]&amp;gt;&amp;lt;/code&amp;gt;, or the XML wouldn&#039;t be well-formed, and it may not contain &amp;lt;code&amp;gt;&amp;lt;/&amp;lt;/code&amp;gt;, or it would be non-conformant HTML. In all cases, this is only needed where &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; contains &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2042</id>
		<title>Common Subset</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2042"/>
		<updated>2006-12-08T20:44:53Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Limitations from XML and XHTML */ Added reference to XML character spec and fixed some entities.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The common subset intersecting HTML5 and XHTML5 is a subset of both syntaxes meant to create . The common subset is only implicitly defined by the HTML and XHTML specification because they have many syntax elements in common. A document is said to use the common subset when it can parse correctly with both the XML parser and the HTML parser.&lt;br /&gt;
&lt;br /&gt;
A document using the &#039;&#039;&#039;conforming&#039;&#039;&#039; common subset is conforming with the specification whether it is interpreted as HTML or XHTML. The conforming common subset rejects any element with are not conforming in either of the two DOM variants.&lt;br /&gt;
&lt;br /&gt;
A document using the common subset can be served as HTML (text/html media type) or XHTML (with an XML media type). The media type is what the browser use to decide if it&#039;ll be parsed as HTML or XHTML and which varient of the DOM is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Syntax ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Limitations from HTML ==&lt;br /&gt;
&lt;br /&gt;
* The [http://blog.whatwg.org/faq/#doctype doctype is required] to be &amp;lt;code&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tag and attribute names must be lowercase.&lt;br /&gt;
* XMLish end tag tailing slash must not be used with non-void elements; they&#039;ll be ignored by the HTML parser and are invalid in HTML.&lt;br /&gt;
* XMLish CDATA blocks will not work.&lt;br /&gt;
* HTML does not allow mixing with other XML dialects.&lt;br /&gt;
* HTML does not support &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; elements may contain structured inline level elements including &amp;lt;code&amp;gt;blockquote&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;menu&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ol&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ul&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pre&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Limitations from XML and XHTML ==&lt;br /&gt;
&lt;br /&gt;
* The doctype, optional in XHTML but mandatory in HTML, must match case-sensitivly this &amp;lt;code&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;/code&amp;gt; to be well-formed and valid in XHTML.&lt;br /&gt;
* Well-formness contrains, not respecting these will generate fatal errors in XHTML.&lt;br /&gt;
** Comments cannot contain double-hyphens (&amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt;).&lt;br /&gt;
** Start tags and end tags must be balenced correctly, unless they&#039;re void element.&lt;br /&gt;
** Void tags must always be closed by a tailing slash (&amp;lt;code&amp;gt;/&amp;gt;&amp;lt;/code&amp;gt;).&lt;br /&gt;
** All attributes values must be quoted. Attributes without value are disallowed.&lt;br /&gt;
** All &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; in the text must be escaped, so is &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; inside comments or anywhere in the text when preceded by &amp;lt;code&amp;gt;]]&amp;lt;/code&amp;gt; (where it would be CDATA section end marker).&lt;br /&gt;
** Some characters are illegal in XML (U+0009, U+000A, U+000D, U+0020-U+D7FF, U+E000-U+FFFD, U+10000-U+10FFFF) [http://www.w3.org/TR/REC-xml/#charsets XML charsets]&lt;br /&gt;
** Others constrains defined in the [http://www.w3.org/TR/REC-xml/ XML specification].&lt;br /&gt;
* &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; elements may not contain &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; in their unescaped form, unless they&#039;re in a CDATA block which would make the document non-conforming on the HTML side (althoug it should still be possible to make it work). External scripts and stylesheets are unaffected.&lt;br /&gt;
* &amp;lt;code&amp;gt;noscript&amp;lt;/code&amp;gt; has no effect in XHTML.&lt;br /&gt;
* &amp;lt;code&amp;gt;document.write()&amp;lt;/code&amp;gt; does not work in XHTML.&lt;br /&gt;
* Entity references cannot be used in XHTML (excluding the 5 predefined entities: &amp;lt;code&amp;gt;&amp;amp;amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;amp;quot;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;amp;amp;apos;&amp;lt;/code&amp;gt;).&lt;br /&gt;
* The namespace declaration (&amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute) is required in XHTML. The xmlns attribute is also allowed to appear on the html element in HTML on the condition that is has the value &amp;quot;http://www.w3.org/1999/xhtml&amp;quot;. &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
* DOM apis are case-sensitive in XHTML, scripts should always use lowercase to be compatible.&lt;br /&gt;
* Style rules are matching case sensitivly in XHTML, stylesheets should always use lowercase tag, attribute and class names to be compatible.&lt;br /&gt;
&lt;br /&gt;
== Markup Issues and Workarounds ==&lt;br /&gt;
&lt;br /&gt;
=== Base URI ===&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;base src=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:base=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Location header:&lt;br /&gt;
&lt;br /&gt;
 Content-Location: uri&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/links.html#h-12.4.1 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Set ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; value=&amp;quot;text/html;charset=utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XHTML / XML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Type header with encoding specified:&lt;br /&gt;
&lt;br /&gt;
 Content-Type: text/html;charset=utf-8&lt;br /&gt;
 Content-Type: application/xhtml+xml;charset=utf-8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Language header:&lt;br /&gt;
&lt;br /&gt;
 Content-Language: en&lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/#lang HTML 5 Spec]&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/dirlang.html#h-8.1.2 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
Note that there is no conforming workaround to switch language for different parts of a document. There is a method which will work however: if you use HTML&#039;s lang attribute, instead of the conformant xml:lang, browser will correctly deduce the language of the element. But this will make the document non-conforming when served with an XML media type and interpreted as XHTML.&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2041</id>
		<title>Common Subset</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2041"/>
		<updated>2006-12-08T20:38:36Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Limitations from HTML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The common subset intersecting HTML5 and XHTML5 is a subset of both syntaxes meant to create . The common subset is only implicitly defined by the HTML and XHTML specification because they have many syntax elements in common. A document is said to use the common subset when it can parse correctly with both the XML parser and the HTML parser.&lt;br /&gt;
&lt;br /&gt;
A document using the &#039;&#039;&#039;conforming&#039;&#039;&#039; common subset is conforming with the specification whether it is interpreted as HTML or XHTML. The conforming common subset rejects any element with are not conforming in either of the two DOM variants.&lt;br /&gt;
&lt;br /&gt;
A document using the common subset can be served as HTML (text/html media type) or XHTML (with an XML media type). The media type is what the browser use to decide if it&#039;ll be parsed as HTML or XHTML and which varient of the DOM is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Syntax ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Limitations from HTML ==&lt;br /&gt;
&lt;br /&gt;
* The [http://blog.whatwg.org/faq/#doctype doctype is required] to be &amp;lt;code&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Tag and attribute names must be lowercase.&lt;br /&gt;
* XMLish end tag tailing slash must not be used with non-void elements; they&#039;ll be ignored by the HTML parser and are invalid in HTML.&lt;br /&gt;
* XMLish CDATA blocks will not work.&lt;br /&gt;
* HTML does not allow mixing with other XML dialects.&lt;br /&gt;
* HTML does not support &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; elements may contain structured inline level elements including &amp;lt;code&amp;gt;blockquote&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;menu&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ol&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ul&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pre&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Limitations from XML and XHTML ==&lt;br /&gt;
&lt;br /&gt;
* The doctype, optional in XHTML but mandatory in HTML, must match case-sensitivly this &amp;lt;code&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;/code&amp;gt; to be well-formed and valid in XHTML.&lt;br /&gt;
* Well-formness contrains, not respecting these will generate fatal errors in XHTML.&lt;br /&gt;
** Comments cannot contain double-hyphens (--).&lt;br /&gt;
** Start tags and end tags must be balenced correctly, unless they&#039;re void element.&lt;br /&gt;
** Void tags must always be closed by a tailing slash (&amp;quot;/&amp;gt;&amp;quot;).&lt;br /&gt;
** All attributes values must be quoted. Attributes without value are disallowed.&lt;br /&gt;
** All &amp;lt; and &amp;amp; in the text must be escaped, so is &amp;gt; inside comments or anywhere in the text when preceded by ]] (where it would be CData section end marker).&lt;br /&gt;
** Some characters are illegal in XML (U+0009, U+000A, U+000D, U+0020-U+D7FF, U+E000-U+FFFD, U+10000-U+10FFFF)&lt;br /&gt;
** Others constrains defined in the [http://www.w3.org/TR/REC-xml/ XML specification].&lt;br /&gt;
* &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; elements may not contain &amp;lt; or &amp;amp; in their unescaped form, unless they&#039;re in a CDATA block which would make the document non-conforming on the HTML side (althoug it should still be possible to make it work). External scripts and stylesheets are unaffected.&lt;br /&gt;
* &amp;lt;code&amp;gt;noscript&amp;lt;/code&amp;gt; has no effect in XHTML.&lt;br /&gt;
* &amp;lt;code&amp;gt;document.write()&amp;lt;/code&amp;gt; does not work in XHTML.&lt;br /&gt;
* Entity references cannot be used in XHTML (excluding the 5 predefined entities: &amp;amp;amp;, &amp;amp;lt;, &amp;amp;gt;, &amp;amp;quot; and &amp;amp;apos;).&lt;br /&gt;
* The namespace declaration (&amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute) is required in XHTML. The xmlns attribute is also allowed to appear on the html element in HTML on the condition that is has the value &amp;quot;http://www.w3.org/1999/xhtml&amp;quot;. &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
* DOM apis are case-sensitive in XHTML, scripts should always use lowercase to be compatible.&lt;br /&gt;
* Style rules are matching case sensitivly in XHTML, stylesheets should always use lowercase tag, attribute and class names to be compatible.&lt;br /&gt;
&lt;br /&gt;
== Markup Issues and Workarounds ==&lt;br /&gt;
&lt;br /&gt;
=== Base URI ===&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;base src=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:base=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Location header:&lt;br /&gt;
&lt;br /&gt;
 Content-Location: uri&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/links.html#h-12.4.1 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Set ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; value=&amp;quot;text/html;charset=utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XHTML / XML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Type header with encoding specified:&lt;br /&gt;
&lt;br /&gt;
 Content-Type: text/html;charset=utf-8&lt;br /&gt;
 Content-Type: application/xhtml+xml;charset=utf-8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Language header:&lt;br /&gt;
&lt;br /&gt;
 Content-Language: en&lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/#lang HTML 5 Spec]&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/dirlang.html#h-8.1.2 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
Note that there is no conforming workaround to switch language for different parts of a document. There is a method which will work however: if you use HTML&#039;s lang attribute, instead of the conformant xml:lang, browser will correctly deduce the language of the element. But this will make the document non-conforming when served with an XML media type and interpreted as XHTML.&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2040</id>
		<title>Common Subset</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2040"/>
		<updated>2006-12-08T20:38:23Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Limitations from XHTML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The common subset intersecting HTML5 and XHTML5 is a subset of both syntaxes meant to create . The common subset is only implicitly defined by the HTML and XHTML specification because they have many syntax elements in common. A document is said to use the common subset when it can parse correctly with both the XML parser and the HTML parser.&lt;br /&gt;
&lt;br /&gt;
A document using the &#039;&#039;&#039;conforming&#039;&#039;&#039; common subset is conforming with the specification whether it is interpreted as HTML or XHTML. The conforming common subset rejects any element with are not conforming in either of the two DOM variants.&lt;br /&gt;
&lt;br /&gt;
A document using the common subset can be served as HTML (text/html media type) or XHTML (with an XML media type). The media type is what the browser use to decide if it&#039;ll be parsed as HTML or XHTML and which varient of the DOM is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Syntax ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Limitations from HTML ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Limitations from XML and XHTML ==&lt;br /&gt;
&lt;br /&gt;
* The doctype, optional in XHTML but mandatory in HTML, must match case-sensitivly this &amp;lt;code&amp;gt;&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;/code&amp;gt; to be well-formed and valid in XHTML.&lt;br /&gt;
* Well-formness contrains, not respecting these will generate fatal errors in XHTML.&lt;br /&gt;
** Comments cannot contain double-hyphens (--).&lt;br /&gt;
** Start tags and end tags must be balenced correctly, unless they&#039;re void element.&lt;br /&gt;
** Void tags must always be closed by a tailing slash (&amp;quot;/&amp;gt;&amp;quot;).&lt;br /&gt;
** All attributes values must be quoted. Attributes without value are disallowed.&lt;br /&gt;
** All &amp;lt; and &amp;amp; in the text must be escaped, so is &amp;gt; inside comments or anywhere in the text when preceded by ]] (where it would be CData section end marker).&lt;br /&gt;
** Some characters are illegal in XML (U+0009, U+000A, U+000D, U+0020-U+D7FF, U+E000-U+FFFD, U+10000-U+10FFFF)&lt;br /&gt;
** Others constrains defined in the [http://www.w3.org/TR/REC-xml/ XML specification].&lt;br /&gt;
* &amp;lt;code&amp;gt;script&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; elements may not contain &amp;lt; or &amp;amp; in their unescaped form, unless they&#039;re in a CDATA block which would make the document non-conforming on the HTML side (althoug it should still be possible to make it work). External scripts and stylesheets are unaffected.&lt;br /&gt;
* &amp;lt;code&amp;gt;noscript&amp;lt;/code&amp;gt; has no effect in XHTML.&lt;br /&gt;
* &amp;lt;code&amp;gt;document.write()&amp;lt;/code&amp;gt; does not work in XHTML.&lt;br /&gt;
* Entity references cannot be used in XHTML (excluding the 5 predefined entities: &amp;amp;amp;, &amp;amp;lt;, &amp;amp;gt;, &amp;amp;quot; and &amp;amp;apos;).&lt;br /&gt;
* The namespace declaration (&amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute) is required in XHTML. The xmlns attribute is also allowed to appear on the html element in HTML on the condition that is has the value &amp;quot;http://www.w3.org/1999/xhtml&amp;quot;. &amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;gt;&lt;br /&gt;
* DOM apis are case-sensitive in XHTML, scripts should always use lowercase to be compatible.&lt;br /&gt;
* Style rules are matching case sensitivly in XHTML, stylesheets should always use lowercase tag, attribute and class names to be compatible.&lt;br /&gt;
&lt;br /&gt;
== Markup Issues and Workarounds ==&lt;br /&gt;
&lt;br /&gt;
=== Base URI ===&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;base src=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:base=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Location header:&lt;br /&gt;
&lt;br /&gt;
 Content-Location: uri&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/links.html#h-12.4.1 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Set ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; value=&amp;quot;text/html;charset=utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XHTML / XML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Type header with encoding specified:&lt;br /&gt;
&lt;br /&gt;
 Content-Type: text/html;charset=utf-8&lt;br /&gt;
 Content-Type: application/xhtml+xml;charset=utf-8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Language header:&lt;br /&gt;
&lt;br /&gt;
 Content-Language: en&lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/#lang HTML 5 Spec]&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/dirlang.html#h-8.1.2 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
Note that there is no conforming workaround to switch language for different parts of a document. There is a method which will work however: if you use HTML&#039;s lang attribute, instead of the conformant xml:lang, browser will correctly deduce the language of the element. But this will make the document non-conforming when served with an XML media type and interpreted as XHTML.&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2037</id>
		<title>Common Subset</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2037"/>
		<updated>2006-12-08T13:42:21Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The common subset intersecting HTML5 and XHTML5 is a subset of both syntaxes meant to create . The common subset is only implicitly defined by the HTML and XHTML specification because they have many syntax elements in common. A document is said to use the common subset when it can parse correctly with both the XML parser and the HTML parser.&lt;br /&gt;
&lt;br /&gt;
A document using the &#039;&#039;&#039;conforming&#039;&#039;&#039; common subset is conforming with the specification whether it is interpreted as HTML or XHTML. The conforming common subset rejects any element with are not conforming in either of the two DOM variants.&lt;br /&gt;
&lt;br /&gt;
A document using the common subset can be served as HTML (text/html media type) or XHTML (with an XML media type). The media type is what the browser use to decide if it&#039;ll be parsed as HTML or XHTML and which varient of the DOM is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Syntax ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Limitations from HTML ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Limitations from XHTML ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Markup Issues and Workarounds ==&lt;br /&gt;
&lt;br /&gt;
=== Base URI ===&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;base src=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:base=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Location header:&lt;br /&gt;
&lt;br /&gt;
 Content-Location: uri&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/links.html#h-12.4.1 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Set ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; value=&amp;quot;text/html;charset=utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XHTML / XML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Type header with encoding specified:&lt;br /&gt;
&lt;br /&gt;
 Content-Type: text/html;charset=utf-8&lt;br /&gt;
 Content-Type: application/xhtml+xml;charset=utf-8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Language header:&lt;br /&gt;
&lt;br /&gt;
 Content-Language: en&lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/#lang HTML 5 Spec]&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/dirlang.html#h-8.1.2 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
Note that there is no conforming workaround to switch language for different parts of a document. There is a method which will work however: if you use HTML&#039;s lang attribute, instead of the conformant xml:lang, browser will correctly deduce the language of the element. But this will make the document non-conforming when served with an XML media type and interpreted as XHTML.&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2036</id>
		<title>Common Subset</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Common_Subset&amp;diff=2036"/>
		<updated>2006-12-08T13:27:00Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The common subset intersecting HTML5 and XHTML5 is a subset of both syntaxes meant to create . The common subset is only implicitly defined by the HTML and XHTML specification because they have many syntax elements in common. A document is said to use the common subset when it can parse correctly with both the XML parser and the HTML parser.&lt;br /&gt;
&lt;br /&gt;
A document using the &#039;&#039;conforming&#039;&#039; common subset is conforming with the specification whether it is interpreted as HTML or XHTML. The &#039;&#039;conforming&#039;&#039; common subset rejects any element with are not conforming in either of the two DOM variants.&lt;br /&gt;
&lt;br /&gt;
A document using the common subset can be served as HTML (text/html media type) or XHTML (with an XML media type). The media type is what the browser use to decide if it&#039;ll be parsed as HTML or XHTML and which varient of the DOM is used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Syntax ==&lt;br /&gt;
&lt;br /&gt;
[TBD]&lt;br /&gt;
&lt;br /&gt;
== Markup Issues and Workarounds ==&lt;br /&gt;
&lt;br /&gt;
=== Base URI ===&lt;br /&gt;
&lt;br /&gt;
HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;base src=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:base=&amp;quot;uri&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Location header:&lt;br /&gt;
&lt;br /&gt;
 Content-Location: uri&lt;br /&gt;
&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/links.html#h-12.4.1 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Character Set ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; value=&amp;quot;text/html;charset=utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XHTML / XML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Type header with encoding specified:&lt;br /&gt;
&lt;br /&gt;
 Content-Type: text/html;charset=utf-8&lt;br /&gt;
 Content-Type: application/xhtml+xml;charset=utf-8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
HTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML / XHTML&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;html xml:lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Workaround: HTTP Content-Language header:&lt;br /&gt;
&lt;br /&gt;
 Content-Language: en&lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/#lang HTML 5 Spec]&lt;br /&gt;
[http://www.w3.org/TR/html4/struct/dirlang.html#h-8.1.2 HTML 4 Spec]&lt;br /&gt;
&lt;br /&gt;
Note that there is no conforming workaround to switch language for different parts of a document. There is a method which will work however: if you use HTML&#039;s lang attribute, instead of the conformant xml:lang, browser will correctly deduce the language of the element. But this will make the document non-conforming when served with an XML media type and interpreted as XHTML.&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=User:Matthew_Raymond/altinput_element&amp;diff=1951</id>
		<title>User:Matthew Raymond/altinput element</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=User:Matthew_Raymond/altinput_element&amp;diff=1951"/>
		<updated>2006-11-29T14:31:51Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Reverted edits by Apeloverage (Talk); changed back to last version by Matthew Raymond&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &amp;amp;lt;altinput&amp;amp;gt; element is intended to be a possible alternative to my earlier [[User:Matthew_Raymond:dataentry_element|&amp;amp;lt;dataentry&amp;amp;gt;]] element.&lt;br /&gt;
&lt;br /&gt;
The &amp;amp;lt;altinput&amp;amp;gt; element is a way of accomplishing the same goals as &amp;amp;lt;dataentry&amp;amp;gt; while ensuring that the  size of a form&#039;s elements collection and the position of controls within it doesn&#039;t change between legacy and WF2 browsers. Rather than the element itself being a form control, &amp;amp;lt;altinput&amp;amp;gt; instead performs the following:&lt;br /&gt;
&lt;br /&gt;
* If it has a control with an |id| attribute equal to its |for| attribute, then it attempts to assign its own |type| attribute value to the |type| of the specified control.&lt;br /&gt;
* If the |type| is not supported, then the &amp;amp;lt;altinput&amp;amp;gt; acts as nothing more than a &amp;amp;lt;span&amp;amp;gt;.&lt;br /&gt;
* However, if the |type| is supported, the control has its |type| changed and the entire contents of the &amp;amp;lt;altinput&amp;amp;gt; element, with the exception of specified control, are not be rendered.&lt;br /&gt;
&lt;br /&gt;
The result is that, in most cases, &amp;amp;lt;altinput&amp;amp;gt; acts almost exactly like &amp;amp;lt;dataentry&amp;amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a simple example for the three &amp;amp;lt;select&amp;amp;gt; scenario:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;altinput for=&amp;quot;d1&amp;quot; type=&amp;quot;date&amp;quot; value=&amp;quot;2005-02-09&amp;quot;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;d1&amp;quot; name=&amp;quot;d1&amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;select name=&amp;quot;d1_day&amp;quot;&amp;amp;gt;&amp;amp;lt;!-- Options --&amp;amp;gt;&amp;amp;lt;/select&amp;amp;gt; /&lt;br /&gt;
  &amp;amp;lt;select name=&amp;quot;d1_month&amp;quot;&amp;amp;gt;&amp;amp;lt;!-- Options --&amp;amp;gt;&amp;amp;lt;/select&amp;amp;gt; /&lt;br /&gt;
  &amp;amp;lt;select name=&amp;quot;d1_year&amp;quot;&amp;amp;gt;&amp;amp;lt;!-- Options --&amp;amp;gt;&amp;amp;lt;/select&amp;amp;gt;&lt;br /&gt;
 &amp;amp;lt;/altinput&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example for users of jscalendar:&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;altinput for=&amp;quot;sel1&amp;quot; type=&amp;quot;date&amp;quot;&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;sel1&amp;quot; name=&amp;quot;date1&amp;quot; size=&amp;quot;30&amp;quot; /&amp;amp;gt;&lt;br /&gt;
  &amp;amp;lt;input type=&amp;quot;reset&amp;quot; value=&amp;quot; ... &amp;quot; onclick=&amp;quot;return showCalendar(&#039;sel1&#039;, &#039;%Y-%m-%d&#039;);&amp;quot;&amp;amp;gt;&lt;br /&gt;
  YYYY-MM-DD&lt;br /&gt;
 &amp;amp;lt;/altinput&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pros==&lt;br /&gt;
&lt;br /&gt;
# The size of a form&#039;s elements collection in Javascript never changes.&lt;br /&gt;
# The &amp;amp;lt;altinput&amp;amp;gt; element can allow for a far greater range of legacy fallback than &amp;amp;lt;input&amp;amp;gt; alone.&lt;br /&gt;
# Because the |type| is defined in an attribute, &amp;amp;lt;altinput&amp;amp;gt; can be used for input types in later specifications, or for vendor-specific input types.&lt;br /&gt;
# Because the elemnt requires a child form control, it encourages the use of &amp;amp;lt;input&amp;amp;gt; alone in simple cases where legacy fallback needs are minimal.&lt;br /&gt;
# The element is designed only to prevent the presentation of its child elements. It does not require user agents to delete contents from the DOM or suppress Javascript execution.&lt;br /&gt;
&lt;br /&gt;
==Cons==&lt;br /&gt;
&lt;br /&gt;
# It&#039;s slightly more complicated to use than &amp;amp;lt;dataentry&amp;amp;gt;.&lt;br /&gt;
# In some situations, you must use a hidden &amp;amp;lt;input&amp;amp;gt; control as the target of the &amp;amp;lt;altinput&amp;amp;gt; element&#039;s |for| attribute.&lt;br /&gt;
# It may still inherit some minor issues from &amp;amp;lt;dataentry&amp;amp;gt;.&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1929</id>
		<title>Link Hashes</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1929"/>
		<updated>2006-11-18T13:56:10Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Added to the Feature Request category.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many download sites, especially for software download, give hashes or digests for the file they distribute so that users can check the validity of the files once they&#039;ve downloaded it. The process for verifying the hash however isn&#039;t straightforward.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
A lot of software download pages already give you MD5 or SHA-1 digests values to check the validity of the downloaded file. Checking the file ensure that the downloaded file is same as the author of the page wanted to give you. Corrupted or tampered files can be detected that way.&lt;br /&gt;
&lt;br /&gt;
The problem is that there is no way to automate that verification process. To automate this process, a browser would need to extract the hash associated with the link on the original page.&lt;br /&gt;
&lt;br /&gt;
=== Current Usage ===&lt;br /&gt;
Some links to software download pages featuring hashes:&lt;br /&gt;
* Apple: [http://www.apple.com/support/downloads/securityupdate20060061039client.html Security Update 2006-006]&lt;br /&gt;
* [http://www.php.net/downloads.php PHP Downloads]&lt;br /&gt;
* Apache: [http://httpd.apache.org/download.cgi HTTP Server]&lt;br /&gt;
&lt;br /&gt;
Other examples can be found on the [http://microformats.org/wiki/hash-examples#Who_offers_MD5.2FSHA-1_checksums_with_software hash examples] page on the Microformat wiki.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
Easier discoverability of tampered files which could come from a mirror server being hacked. &lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== hash attribute ===&lt;br /&gt;
A hash attribute could contain a md5 checksum of the target file. If the hash of the downloaded file does not match the one from the link, the file is deleted or quarantined and the user is alerted of a potential security risk.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;...&amp;quot; hash=&amp;quot;b3187253c1667fac7d20bb762ad53967&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser keeps the hash in memory to compare it with the it hashes from the downloaded file. Once the file is downloaded, the the computed hash is compared against the expected hash.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;To be completed: what to do about non-download links, like links to other pages, when they have a hash?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Hash Microformat ===&lt;br /&gt;
The hash microformat provides a way to associate hash values with links:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;download&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;a rel=&amp;quot;bookmark&amp;quot; href=&amp;quot;...&amp;quot;&amp;gt;Download OpenOffice.org&lt;br /&gt;
     &amp;lt;span class=&amp;quot;checksum md5&amp;quot;&amp;gt;e0d123e5f316bef78bfdf5a008837577&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The microformat is better described on the [http://microformats.org/wiki/hash-examples hash-examples] page.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When a link is clicked, the browser check if it corresponds to the microformat (&#039;&#039;details to be added&#039;&#039;). If it is the hash value is extracted and, once the file is downloaded, the computed hash for the file is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
The microformat markup is heavier that it needs to be. It also force page authors to put the hash visible inside the link, or to apply specific stylesheets to hide it on visual browsers.&lt;br /&gt;
&lt;br /&gt;
=== Link Fingerprint ===&lt;br /&gt;
Append a digest for the file in the fragment identifier of the URL. The browser can then check the validity of the file when it downloads it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://example.com/file#!md5!b3187253c1667fac7d20bb762ad53967&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [http://www.gerv.net/security/link-fingerprints/ Link Fingerprints article] by Gervase Markham gives more details.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser check if the URL contains a hash. If the URL contains a hash, once the file is downloaded the computed hash is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
Work only for downloaded files; fragment identifiers are used in other ways for regular pages and PDF files opened in the browser with a plugin.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Content-MD5 HTTP Header ===&lt;br /&gt;
It has been suggested to use the [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15 Content-MD5] HTTP header. A tampered file on a hacked server is very likely to get its digest updated accordingly however.&lt;br /&gt;
&lt;br /&gt;
== Mailing List References ==&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007833.html Re: hash attribute] -- Tom Pike, Wed Nov 8 05:21:22 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Ian Hickson, Wed Nov 8 08:28:19 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007857.html Re: hash attribute] -- Gervase Markham, Thu Nov 9 09:23:32 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Michel Fortin, Tue Nov 14 08:53:43 PST 2006&lt;br /&gt;
&lt;br /&gt;
[[Category:Feature Request]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=WHATWG_Wiki_talk:About&amp;diff=1928</id>
		<title>WHATWG Wiki talk:About</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=WHATWG_Wiki_talk:About&amp;diff=1928"/>
		<updated>2006-11-18T13:52:00Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Copyright ==&lt;br /&gt;
&lt;br /&gt;
* I did put a public domain copyright notice here, but was told the wiki was initially under the GFDL before the reinstall, so I&#039;ve had to change it back.  Although GFDL is at least acceptable, personally, I don&#039;t believe in sticking copyright notices on such things and would like everything here to just go in the Public Domain (cause, seriously, who really cares what someone wants to use it for?), but it would require all existing contributors to agree.  So, which licence do you think we should use? --[[User:Lachlan Hunt|Lachlan Hunt]] 09:22, 18 November 2006 (UTC)&lt;br /&gt;
** I have no problem with that; feel free to use anything I&#039;ve written on the wiki as public domain. --[[User:Michel Fortin|Michel Fortin]] 13:52, 18 November 2006 (UTC)&lt;br /&gt;
** Any chance we could reuse freely what was written to the mailing list? I&#039;ve reused some parts of my own emails in creating the [[Image Caption]] and [[Link Hashes]] pages; since I own the copyright on these emails there&#039;s no problem. But should we ask for permission before using other&#039;s people emails, even if the content is publicly available in the mailing list archive? Probably. And it seems the server is located in the US, so I guess it&#039;s the US fair use clauses that should apply when gathering examples or some other content from other sources, but that&#039;s just a guess. --[[User:Michel Fortin|Michel Fortin]] 13:52, 18 November 2006 (UTC)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1923</id>
		<title>Link Hashes</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1923"/>
		<updated>2006-11-17T18:44:44Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Link Fingerprint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many download sites, especially for software download, give hashes or digests for the file they distribute so that users can check the validity of the files once they&#039;ve downloaded it. The process for verifying the hash however isn&#039;t straightforward.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
A lot of software download pages already give you MD5 or SHA-1 digests values to check the validity of the downloaded file. Checking the file ensure that the downloaded file is same as the author of the page wanted to give you. Corrupted or tampered files can be detected that way.&lt;br /&gt;
&lt;br /&gt;
The problem is that there is no way to automate that verification process. To automate this process, a browser would need to extract the hash associated with the link on the original page.&lt;br /&gt;
&lt;br /&gt;
=== Current Usage ===&lt;br /&gt;
Some links to software download pages featuring hashes:&lt;br /&gt;
* Apple: [http://www.apple.com/support/downloads/securityupdate20060061039client.html Security Update 2006-006]&lt;br /&gt;
* [http://www.php.net/downloads.php PHP Downloads]&lt;br /&gt;
* Apache: [http://httpd.apache.org/download.cgi HTTP Server]&lt;br /&gt;
&lt;br /&gt;
Other examples can be found on the [http://microformats.org/wiki/hash-examples#Who_offers_MD5.2FSHA-1_checksums_with_software hash examples] page on the Microformat wiki.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
Easier discoverability of tampered files which could come from a mirror server being hacked. &lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== hash attribute ===&lt;br /&gt;
A hash attribute could contain a md5 checksum of the target file. If the hash of the downloaded file does not match the one from the link, the file is deleted or quarantined and the user is alerted of a potential security risk.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;...&amp;quot; hash=&amp;quot;b3187253c1667fac7d20bb762ad53967&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser keeps the hash in memory to compare it with the it hashes from the downloaded file. Once the file is downloaded, the the computed hash is compared against the expected hash.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;To be completed: what to do about non-download links, like links to other pages, when they have a hash?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Hash Microformat ===&lt;br /&gt;
The hash microformat provides a way to associate hash values with links:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;download&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;a rel=&amp;quot;bookmark&amp;quot; href=&amp;quot;...&amp;quot;&amp;gt;Download OpenOffice.org&lt;br /&gt;
     &amp;lt;span class=&amp;quot;checksum md5&amp;quot;&amp;gt;e0d123e5f316bef78bfdf5a008837577&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The microformat is better described on the [http://microformats.org/wiki/hash-examples hash-examples] page.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When a link is clicked, the browser check if it corresponds to the microformat (&#039;&#039;details to be added&#039;&#039;). If it is the hash value is extracted and, once the file is downloaded, the computed hash for the file is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
The microformat markup is heavier that it needs to be. It also force page authors to put the hash visible inside the link, or to apply specific stylesheets to hide it on visual browsers.&lt;br /&gt;
&lt;br /&gt;
=== Link Fingerprint ===&lt;br /&gt;
Append a digest for the file in the fragment identifier of the URL. The browser can then check the validity of the file when it downloads it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://example.com/file#!md5!b3187253c1667fac7d20bb762ad53967&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [http://www.gerv.net/security/link-fingerprints/ Link Fingerprints article] by Gervase Markham gives more details.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser check if the URL contains a hash. If the URL contains a hash, once the file is downloaded the computed hash is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
Work only for downloaded files; fragment identifiers are used in other ways for regular pages and PDF files opened in the browser with a plugin.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Content-MD5 HTTP Header ===&lt;br /&gt;
It has been suggested to use the [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15 Content-MD5] HTTP header. A tampered file on a hacked server is very likely to get its digest updated accordingly however.&lt;br /&gt;
&lt;br /&gt;
== Mailing List References ==&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007833.html Re: hash attribute] -- Tom Pike, Wed Nov 8 05:21:22 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Ian Hickson, Wed Nov 8 08:28:19 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007857.html Re: hash attribute] -- Gervase Markham, Thu Nov 9 09:23:32 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Michel Fortin, Tue Nov 14 08:53:43 PST 2006&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1922</id>
		<title>Link Hashes</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1922"/>
		<updated>2006-11-17T18:43:11Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Link Fingerprint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many download sites, especially for software download, give hashes or digests for the file they distribute so that users can check the validity of the files once they&#039;ve downloaded it. The process for verifying the hash however isn&#039;t straightforward.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
A lot of software download pages already give you MD5 or SHA-1 digests values to check the validity of the downloaded file. Checking the file ensure that the downloaded file is same as the author of the page wanted to give you. Corrupted or tampered files can be detected that way.&lt;br /&gt;
&lt;br /&gt;
The problem is that there is no way to automate that verification process. To automate this process, a browser would need to extract the hash associated with the link on the original page.&lt;br /&gt;
&lt;br /&gt;
=== Current Usage ===&lt;br /&gt;
Some links to software download pages featuring hashes:&lt;br /&gt;
* Apple: [http://www.apple.com/support/downloads/securityupdate20060061039client.html Security Update 2006-006]&lt;br /&gt;
* [http://www.php.net/downloads.php PHP Downloads]&lt;br /&gt;
* Apache: [http://httpd.apache.org/download.cgi HTTP Server]&lt;br /&gt;
&lt;br /&gt;
Other examples can be found on the [http://microformats.org/wiki/hash-examples#Who_offers_MD5.2FSHA-1_checksums_with_software hash examples] page on the Microformat wiki.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
Easier discoverability of tampered files which could come from a mirror server being hacked. &lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== hash attribute ===&lt;br /&gt;
A hash attribute could contain a md5 checksum of the target file. If the hash of the downloaded file does not match the one from the link, the file is deleted or quarantined and the user is alerted of a potential security risk.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;...&amp;quot; hash=&amp;quot;b3187253c1667fac7d20bb762ad53967&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser keeps the hash in memory to compare it with the it hashes from the downloaded file. Once the file is downloaded, the the computed hash is compared against the expected hash.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;To be completed: what to do about non-download links, like links to other pages, when they have a hash?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Hash Microformat ===&lt;br /&gt;
The hash microformat provides a way to associate hash values with links:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;download&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;a rel=&amp;quot;bookmark&amp;quot; href=&amp;quot;...&amp;quot;&amp;gt;Download OpenOffice.org&lt;br /&gt;
     &amp;lt;span class=&amp;quot;checksum md5&amp;quot;&amp;gt;e0d123e5f316bef78bfdf5a008837577&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The microformat is better described on the [http://microformats.org/wiki/hash-examples hash-examples] page.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When a link is clicked, the browser check if it corresponds to the microformat (&#039;&#039;details to be added&#039;&#039;). If it is the hash value is extracted and, once the file is downloaded, the computed hash for the file is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
The microformat markup is heavier that it needs to be. It also force page authors to put the hash visible inside the link, or to apply specific stylesheets to hide it on visual browsers.&lt;br /&gt;
&lt;br /&gt;
=== Link Fingerprint ===&lt;br /&gt;
Append a digest to the file in the fragment identifier of the URL. The browser can then check the validity of the file when it downloads it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://example.com/file#!md5!b3187253c1667fac7d20bb762ad53967&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [http://www.gerv.net/security/link-fingerprints/ Link Fingerprints article] by Gervase Markham gives more details.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser check if the URL contains a hash. If the URL contains a hash, once the file is downloaded the computed hash is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
Work only for downloaded files; fragment identifiers are used in other ways for regular pages and PDF files opened in the browser with a plugin.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Content-MD5 HTTP Header ===&lt;br /&gt;
It has been suggested to use the [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15 Content-MD5] HTTP header. A tampered file on a hacked server is very likely to get its digest updated accordingly however.&lt;br /&gt;
&lt;br /&gt;
== Mailing List References ==&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007833.html Re: hash attribute] -- Tom Pike, Wed Nov 8 05:21:22 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Ian Hickson, Wed Nov 8 08:28:19 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007857.html Re: hash attribute] -- Gervase Markham, Thu Nov 9 09:23:32 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Michel Fortin, Tue Nov 14 08:53:43 PST 2006&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1921</id>
		<title>Link Hashes</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1921"/>
		<updated>2006-11-17T18:42:33Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Added a link to Gervase Markham&amp;#039;s article on Link Fingerprints.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many download sites, especially for software download, give hashes or digests for the file they distribute so that users can check the validity of the files once they&#039;ve downloaded it. The process for verifying the hash however isn&#039;t straightforward.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
A lot of software download pages already give you MD5 or SHA-1 digests values to check the validity of the downloaded file. Checking the file ensure that the downloaded file is same as the author of the page wanted to give you. Corrupted or tampered files can be detected that way.&lt;br /&gt;
&lt;br /&gt;
The problem is that there is no way to automate that verification process. To automate this process, a browser would need to extract the hash associated with the link on the original page.&lt;br /&gt;
&lt;br /&gt;
=== Current Usage ===&lt;br /&gt;
Some links to software download pages featuring hashes:&lt;br /&gt;
* Apple: [http://www.apple.com/support/downloads/securityupdate20060061039client.html Security Update 2006-006]&lt;br /&gt;
* [http://www.php.net/downloads.php PHP Downloads]&lt;br /&gt;
* Apache: [http://httpd.apache.org/download.cgi HTTP Server]&lt;br /&gt;
&lt;br /&gt;
Other examples can be found on the [http://microformats.org/wiki/hash-examples#Who_offers_MD5.2FSHA-1_checksums_with_software hash examples] page on the Microformat wiki.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
Easier discoverability of tampered files which could come from a mirror server being hacked. &lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== hash attribute ===&lt;br /&gt;
A hash attribute could contain a md5 checksum of the target file. If the hash of the downloaded file does not match the one from the link, the file is deleted or quarantined and the user is alerted of a potential security risk.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;...&amp;quot; hash=&amp;quot;b3187253c1667fac7d20bb762ad53967&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser keeps the hash in memory to compare it with the it hashes from the downloaded file. Once the file is downloaded, the the computed hash is compared against the expected hash.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;To be completed: what to do about non-download links, like links to other pages, when they have a hash?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Hash Microformat ===&lt;br /&gt;
The hash microformat provides a way to associate hash values with links:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;download&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;a rel=&amp;quot;bookmark&amp;quot; href=&amp;quot;...&amp;quot;&amp;gt;Download OpenOffice.org&lt;br /&gt;
     &amp;lt;span class=&amp;quot;checksum md5&amp;quot;&amp;gt;e0d123e5f316bef78bfdf5a008837577&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The microformat is better described on the [http://microformats.org/wiki/hash-examples hash-examples] page.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When a link is clicked, the browser check if it corresponds to the microformat (&#039;&#039;details to be added&#039;&#039;). If it is the hash value is extracted and, once the file is downloaded, the computed hash for the file is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
The microformat markup is heavier that it needs to be. It also force page authors to put the hash visible inside the link, or to apply specific stylesheets to hide it on visual browsers.&lt;br /&gt;
&lt;br /&gt;
=== Link Fingerprint ===&lt;br /&gt;
Append a digest for the file in the fragment identifier of the URL. The browser can then check the validity of the file when it downloads it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://example.com/file#!md5!b3187253c1667fac7d20bb762ad53967&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The [http://www.gerv.net/security/link-fingerprints/ Link Fingerprints article] by Gervase Markham gives more details.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser check if the URL contains a hash. If the URL contains a hash, once the file is downloaded the computed hash is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
Work only for downloaded files; fragment identifiers are used in other ways for regular pages and PDF files opened in the browser with a plugin.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Content-MD5 HTTP Header ===&lt;br /&gt;
It has been suggested to use the [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15 Content-MD5] HTTP header. A tampered file on a hacked server is very likely to get its digest updated accordingly however.&lt;br /&gt;
&lt;br /&gt;
== Mailing List References ==&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007833.html Re: hash attribute] -- Tom Pike, Wed Nov 8 05:21:22 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Ian Hickson, Wed Nov 8 08:28:19 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007857.html Re: hash attribute] -- Gervase Markham, Thu Nov 9 09:23:32 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Michel Fortin, Tue Nov 14 08:53:43 PST 2006&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=User:Michel_Fortin&amp;diff=1920</id>
		<title>User:Michel Fortin</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=User:Michel_Fortin&amp;diff=1920"/>
		<updated>2006-11-17T18:29:50Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.michelf.com/ I&#039;m here.]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Problem_Solving&amp;diff=1918</id>
		<title>Talk:Problem Solving</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Problem_Solving&amp;diff=1918"/>
		<updated>2006-11-17T17:58:28Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Typo Fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* I just added a new page based on this template -- [[Link Hashes]] -- and I begin to wonder if the template should not be a lot more flexible regarding how the information is organised. There is just too much repetition of the same thing between different solutions, but if you compare to another problem -- like [[Image Caption]] -- repetitions are not on the same items. Maybe we should try to better organise these two problem pages and then update the template with what we&#039;ve determined to be a good and flexible enough organisation. --[[User:Michel Fortin|Michel Fortin]] 09:52, 17 November 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
=== Current Limitations ===&lt;br /&gt;
&lt;br /&gt;
* I think &amp;quot;Current Limitations&amp;quot; and &amp;quot;Problem Description&amp;quot; will generally be the same thing. Almost always, the problem &amp;lt;em&amp;gt;is&amp;lt;/em&amp;gt; a current limitation. Sure we could formulate problems in more general term, like &amp;quot;Problem: need to markup a dialogue; Limitation: no semantic markup for that&amp;quot;, but in fact, marking up the dialog isn&#039;t really a problem (it&#039;s easy to markup a dialog with &amp;amp;lt;dl&amp;gt;), the limitation is. --[[User:Michel Fortin|Michel Fortin]] 07:17, 17 November 2006 (PST)&lt;br /&gt;
** I changed Problem Description to Use Case Description to clarify why I think they&#039;re different.  The use case is about describing what kind of information you are trying to mark up.  The current limitations is for explaining why existing markup is not appropriate. --[[User:Lachlan Hunt|Lachlan Hunt]] 09:37, 17 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Link_Hashes&amp;diff=1917</id>
		<title>Talk:Link Hashes</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Link_Hashes&amp;diff=1917"/>
		<updated>2006-11-17T17:56:56Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Link Fingerprint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Link Fingerprint ====&lt;br /&gt;
&lt;br /&gt;
Just a note to say that while this is certainly out of scope for HTML, it&#039;s nonetheless a good solution, and mentioning it there, with enough details, can serve of a justification to not include other proposed solutions in the spec. --[[User:Michel Fortin|Michel Fortin]] 09:56, 17 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Link_Hashes&amp;diff=1916</id>
		<title>Talk:Link Hashes</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Link_Hashes&amp;diff=1916"/>
		<updated>2006-11-17T17:56:32Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Link Fingerprint Note&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== Link Fingerprint ====&lt;br /&gt;
&lt;br /&gt;
Just a note to say that while this should probably out of scope for HTML, it&#039;s nonetheless a good solution, and mentioning it there, with enough details, can serve of a justification to not include other proposed solutions in the spec. --[[User:Michel Fortin|Michel Fortin]] 09:56, 17 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Problem_Solving&amp;diff=1915</id>
		<title>Talk:Problem Solving</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Problem_Solving&amp;diff=1915"/>
		<updated>2006-11-17T17:52:49Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* I just added a new page based on this template -- [[Link Hashes]] -- and I begin to wonder if the template should not be a lot more flexible regarding how the information is organised. There is just too much repetition of the same thing between different solutions, but if you compare to another problem -- like [[Image Captions]] -- repetitions are not on the same items. Maybe we should try to better organise these two problem pages and then update the template with what we&#039;ve determined to be a good and flexible enough organisation. --[[User:Michel Fortin|Michel Fortin]] 09:52, 17 November 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
=== Current Limitations ===&lt;br /&gt;
&lt;br /&gt;
* I think &amp;quot;Current Limitations&amp;quot; and &amp;quot;Problem Description&amp;quot; will generally be the same thing. Almost always, the problem &amp;lt;em&amp;gt;is&amp;lt;/em&amp;gt; a current limitation. Sure we could formulate problems in more general term, like &amp;quot;Problem: need to markup a dialogue; Limitation: no semantic markup for that&amp;quot;, but in fact, marking up the dialog isn&#039;t really a problem (it&#039;s easy to markup a dialog with &amp;amp;lt;dl&amp;gt;), the limitation is. --[[User:Michel Fortin|Michel Fortin]] 07:17, 17 November 2006 (PST)&lt;br /&gt;
** I changed Problem Description to Use Case Description to clarify why I think they&#039;re different.  The use case is about describing what kind of information you are trying to mark up.  The current limitations is for explaining why existing markup is not appropriate. --[[User:Lachlan Hunt|Lachlan Hunt]] 09:37, 17 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1914</id>
		<title>Link Hashes</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Link_Hashes&amp;diff=1914"/>
		<updated>2006-11-17T17:40:35Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many download sites, especially for software download, give hashes or digests for the file they distribute so that users can check the validity of the files once they&#039;ve downloaded it. The process for verifying the hash however isn&#039;t straightforward.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
A lot of software download pages already give you MD5 or SHA-1 digests values to check the validity of the downloaded file. Checking the file ensure that the downloaded file is same as the author of the page wanted to give you. Corrupted or tampered files can be detected that way.&lt;br /&gt;
&lt;br /&gt;
The problem is that there is no way to automate that verification process. To automate this process, a browser would need to extract the hash associated with the link on the original page.&lt;br /&gt;
&lt;br /&gt;
=== Current Usage ===&lt;br /&gt;
Some links to software download pages featuring hashes:&lt;br /&gt;
* Apple: [http://www.apple.com/support/downloads/securityupdate20060061039client.html Security Update 2006-006]&lt;br /&gt;
* [http://www.php.net/downloads.php PHP Downloads]&lt;br /&gt;
* Apache: [http://httpd.apache.org/download.cgi HTTP Server]&lt;br /&gt;
&lt;br /&gt;
Other examples can be found on the [http://microformats.org/wiki/hash-examples#Who_offers_MD5.2FSHA-1_checksums_with_software hash examples] page on the Microformat wiki.&lt;br /&gt;
&lt;br /&gt;
=== Benefits ===&lt;br /&gt;
Easier discoverability of tampered files which could come from a mirror server being hacked. &lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== hash attribute ===&lt;br /&gt;
A hash attribute could contain a md5 checksum of the target file. If the hash of the downloaded file does not match the one from the link, the file is deleted or quarantined and the user is alerted of a potential security risk.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;...&amp;quot; hash=&amp;quot;b3187253c1667fac7d20bb762ad53967&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser keeps the hash in memory to compare it with the it hashes from the downloaded file. Once the file is downloaded, the the computed hash is compared against the expected hash.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;To be completed: what to do about non-download links, like links to other pages, when they have a hash?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Hash Microformat ===&lt;br /&gt;
The hash microformat provides a way to associate hash values with links:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;download&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;a rel=&amp;quot;bookmark&amp;quot; href=&amp;quot;...&amp;quot;&amp;gt;Download OpenOffice.org&lt;br /&gt;
     &amp;lt;span class=&amp;quot;checksum md5&amp;quot;&amp;gt;e0d123e5f316bef78bfdf5a008837577&amp;lt;/span&amp;gt;&lt;br /&gt;
     &amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The microformat is better described on the [http://microformats.org/wiki/hash-examples hash-examples] page.&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When a link is clicked, the browser check if it corresponds to the microformat (&#039;&#039;details to be added&#039;&#039;). If it is the hash value is extracted and, once the file is downloaded, the computed hash for the file is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
The microformat markup is heavier that it needs to be. It also force page authors to put the hash visible inside the link, or to apply specific stylesheets to hide it on visual browsers.&lt;br /&gt;
&lt;br /&gt;
=== Link Fingerprint ===&lt;br /&gt;
Append a digest for the file in the fragment identifier of the URL. The browser can then check the validity of the file when it downloads it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://example.com/file#!md5!b3187253c1667fac7d20bb762ad53967&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
When the link is clicked, the browser check if the URL contains a hash. If the URL contains a hash, once the file is downloaded the computed hash is compared against the expected hash. Browsers should keep the initial hash value across redirections, if any. This only applies to files downloaded to the disk.&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;Could the syntax be extended so that fragment identifiers could cohabit with fingerprints?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
Work only for downloaded files; fragment identifiers are used in other ways for regular pages and PDF files opened in the browser with a plugin.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
The software industry as a whole is more and more concerned about security implications of the Internet. Security has become another feature of the browser. Something that increase security with minor impact to the user experience will probably be welcome.&lt;br /&gt;
&lt;br /&gt;
A browser could display the following message when in case of hash mismatch:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;File &amp;quot;image.iso&amp;quot; is different from the file linked on page &amp;quot;My Software CD Images&amp;quot;. It is possible that this file has been tampered with and it&#039;d be advisable to not open it. Do you wish to delete the file?&#039;&#039;&amp;lt;br&amp;gt;[Delete File] [Keep in Quarantine]&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
Distributors that already give hashes for their users to verify the files are very likely to add this extra attribute if it simplifies the security checks for their users. The fact that the digests are already available on these pages means that the author of the page is already concerned about security of the transfered file.&lt;br /&gt;
&lt;br /&gt;
=== Content-MD5 HTTP Header ===&lt;br /&gt;
It has been suggested to use the [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15 Content-MD5] HTTP header. A tampered file on a hacked server is very likely to get its digest updated accordingly however.&lt;br /&gt;
&lt;br /&gt;
== Mailing List References ==&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007833.html Re: hash attribute] -- Tom Pike, Wed Nov 8 05:21:22 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Ian Hickson, Wed Nov 8 08:28:19 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007857.html Re: hash attribute] -- Gervase Markham, Thu Nov 9 09:23:32 PST 2006&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-November/007903.html Re: hash attribute] -- Michel Fortin, Tue Nov 14 08:53:43 PST 2006&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Problem_Solving&amp;diff=1904</id>
		<title>Talk:Problem Solving</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Problem_Solving&amp;diff=1904"/>
		<updated>2006-11-17T15:17:59Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Current Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
=== Current Limitations ===&lt;br /&gt;
&lt;br /&gt;
I think &amp;quot;Current Limitations&amp;quot; and &amp;quot;Problem Description&amp;quot; will generally be the same thing. Almost always, the problem &amp;lt;em&amp;gt;is&amp;lt;/em&amp;gt; a current limitation. Sure we could formulate problems in more general term, like &amp;quot;Problem: need to markup a dialogue; Limitation: no semantic markup for that&amp;quot;, but in fact, marking up the dialog isn&#039;t really a problem (it&#039;s easy to markup a dialog with &amp;amp;lt;dl&amp;gt;), the limitation is. --[[User:Michel Fortin|Michel Fortin]] 07:17, 17 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Problem_Solving&amp;diff=1903</id>
		<title>Talk:Problem Solving</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Problem_Solving&amp;diff=1903"/>
		<updated>2006-11-17T15:17:30Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problem Description ==&lt;br /&gt;
&lt;br /&gt;
=== Current Limitations ===&lt;br /&gt;
&lt;br /&gt;
I think &amp;quot;Current Limitations&amp;quot; and &amp;quot;Problem Description&amp;quot; will generally be the same thing. Almost always, the problem &amp;lt;em&amp;gt;is&amp;lt;/em&amp;gt; a current limitation. Sure we could formulate problems in more general term, like &amp;quot;Problem: need to markup a dialogue; Limitation: no semantic markup for that&amp;quot;, but in fact, marking up the dialog isn&#039;t really a problem (it&#039;s easy to markup a dialog with &amp;lt;dl&amp;gt;), the limitation is. --[[User:Michel Fortin|Michel Fortin]] 07:17, 17 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Image_Caption_Examples&amp;diff=1902</id>
		<title>Image Caption Examples</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Image_Caption_Examples&amp;diff=1902"/>
		<updated>2006-11-17T14:51:13Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Adding a reference to the mailing list archive&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a collection of sample usage for images with captions from around the web. Markup samples provided here have been reformatted and often simplified by removing presentational elements to better illustrate what &amp;quot;defines&amp;quot; the figure in them.&lt;br /&gt;
&lt;br /&gt;
These real-world examples provides support for the [[Image Caption]] proposal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Some images in the CSS 2.1 specification ([http://www.w3.org/TR/CSS21/colors.html#img-bg-repeat example 1], [http://www.w3.org/TR/CSS21/tables.html#img-cell-align example 2]) use class names to add captions to figures. Reduced to a simpler form, the markup looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;figure&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;...&amp;quot; alt=&amp;quot;[caption text]&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;caption&amp;quot;&amp;gt;[Caption Text]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Removed form this simplified markup is the [D] link to a long description that was put beside the image.)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Articles form the Salon.com magazine ([http://www.salon.com/opinion/blumenthal/2006/11/16/baker_rescue/index_np.html example]) use this markup  for accompaniment photographs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;article_photo_right&#039;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&#039;...&#039;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p class=&#039;article_photo_credit&#039;&amp;gt;Photo: [Photograph&#039;s Name]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&#039;article_photo_caption&#039;&amp;gt;[Caption Text]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
MacWorld magazine website uses two-row tables to add a caption to screenshots in [http://www.macworld.com/2006/06/firstlooks/flciviv/index.php this article]. Interestingly, they&#039;re not using the &amp;amp;lt;caption&amp;gt; element with is meant to be used inside &amp;amp;lt;table&amp;gt;. By using it, they could have saved themselves the trouble of specifying a width for each of their screenshots without having the image description extending the table. Here is a simplified version of the markup used on this page:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table width=&amp;quot;310&amp;quot; align=&amp;quot;right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
   &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;[Caption Text or Image Description]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wikipedia thumbnail image with caption can be reduced to this once the links are removed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot; alt=&amp;quot;[Caption Text]&amp;quot; longdesc=&amp;quot;...&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbcaption&amp;quot;&amp;gt;&lt;br /&gt;
    [Caption Text]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Some documents ([http://www.stanford.edu/group/hopes/basics/basichd/a2.html example]) simply put the caption text inside the image.&lt;br /&gt;
&lt;br /&gt;
== Other Examples ==&lt;br /&gt;
&lt;br /&gt;
http://developer.apple.com/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_paths/chapter_4_section_2.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;a name=&amp;quot;...&amp;quot; title=&amp;quot;[Caption Text]&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;[Caption Text]&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot; alt=&amp;quot;[Caption Text]&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://medicine.plosjournals.org/perlserv?request=get-document&amp;amp;doi=10.1371/journal.pmed.0020228&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;figureFM&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a name=&amp;quot;...&amp;quot; id=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;h5&amp;gt;[Caption Text]&amp;lt;/h5&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://www.darsie.net/string/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table WIDTH=&amp;quot;346&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
  &amp;lt;img align=top src=&amp;quot;...&amp;quot; ALT=&amp;quot;Photo of Position 1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
  Position 1&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mailing List References ==&lt;br /&gt;
* [http://listserver.dreamhost.com/pipermail/whatwg-whatwg.org/2006-June/006828.html Rep: image captions], 27 June 2006 -- Michel Fortin&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1901</id>
		<title>Image Caption</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1901"/>
		<updated>2006-11-17T14:17:42Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* &amp;lt;label&amp;gt; defining attributes with nested markup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image caption are often found on the web, but there is no standard markup for this.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
Currently, most people use either a table, custom class names, or simply put the image inside a paragraph, each option either conveying a wrong meaning or being ambiguous with the rest of the content.&lt;br /&gt;
&lt;br /&gt;
An interesting analysis has been done on the subject by Dan Cederholm in one of his SimpleQuiz. [http://www.simplebits.com/notebook/2004/01/20/sqxi_conclusion.html His conclusion]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;So in this case, I might choose option A -- because visually it shows the relationship between the items better than the others. But I suppose this is bad semantics. Or maybe just another case where we don&#039;t have the &#039;perfect&#039; set of defined elements for this (very) specific job.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And his option A was:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;img scr=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
   Caption Text&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other word, he could not figure out anything good using current elements available in HTML, and, as most people do, had to create his own solution.&lt;br /&gt;
&lt;br /&gt;
Setting a standard for such things -- an explicit association between the caption and the illustration -- would help image search engines, it could enable the automatic creation of a figure index for a page. The fact that image captions should be treated differently to body text (they are not in the main flow of the document) suggests this element could be important for figure handling by assistive tools allowing e.g. aural browsers to skip captions except on explicit user request.&lt;br /&gt;
&lt;br /&gt;
=== Current Methods and Workarounds ===&lt;br /&gt;
See [[Image Caption Examples]] for a couple of sample cases.&lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;figure&amp;gt; with &amp;amp;lt;caption&amp;gt; ===&lt;br /&gt;
A &amp;lt;figure&amp;gt; element contains illustrative content for the current section. It can contain a &amp;amp;lt;caption&amp;gt; element, either as the first or the last child, that will be used to describe or give a caption to the content of the figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;figure&amp;gt;&lt;br /&gt;
  &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
The processing model for HTML files must be changed so that the &amp;amp;lt;caption&amp;gt; is no longer ignored when outside the context of a table. It could also be a good idea to add a new figure insertion mode that would prevent figure captions from being moved to the enclosing table when inside a table cell, otherwise &amp;amp;lt;figure&amp;gt; will break in table-based layouts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
  &amp;lt;figure&amp;gt;&lt;br /&gt;
    &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&amp;amp;lt;caption&amp;gt; being ignored by current browsers when outside a table makes it impossible to style, and it&#039;ll also be terribly broken with table layouts when figure captions end up at the top (or the bottom) of the enclosing layout table.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
Parsing changes in this solution could be hard to implement given &amp;amp;lt;caption&amp;gt; element&#039;s legacy within &amp;amp;lt;table&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Putting aside the parsing problem, there&#039;s not much else to implement for visual browsers. A good display model that could be used to display figures is already available in CSS 2.1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
figure { display: table; }&lt;br /&gt;
caption { display: table-caption; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would display the figure as a one-cell table, and the caption either at the top or at the bottom (depending on the [http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side caption-side] property). The interesting part of this model is that the caption&#039;s width is constrained by the width of the figure, making it the ideal choice for floated figures.&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
The syntax is pretty straightforward to use. &amp;quot;figure&amp;quot; and &amp;quot;caption&amp;quot; are commonly used terms to designate exactly this feature in the print world. It should be a natural choice to authors that wonder how to markup their images.&lt;br /&gt;
&lt;br /&gt;
This markup won&#039;t work however if an author wants the caption to be elsewhere in the document. (In this proposal, &amp;amp;lt;caption&amp;gt; is pinned to the figure&#039;s content.) It does not seem a common use case however.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;figure&amp;gt; with &amp;amp;lt;legend&amp;gt; ===&lt;br /&gt;
A &amp;lt;figure&amp;gt; element contains illustrative content for the current section. It can contain a &amp;amp;lt;legend&amp;gt; element, either as the first or the last child, that will be used to describe or give a caption to the content of the figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;figure&amp;gt;&lt;br /&gt;
  &amp;lt;legend&amp;gt;Caption Text&amp;lt;/legend&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
A good display model that could be used to display figures is already available in CSS 2.1, the table model. A default stylesheet could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
figure { display: table; }&lt;br /&gt;
figure legend { display: table-caption; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would display the figure as a one-cell table, and the figure legend either at the top or at the bottom (depending on the [http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side caption-side] property). The interesting part of this model is that the legend&#039;s width is constrained by the width of the figure, making it the ideal choice for floated figures.&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
&amp;quot;figure&amp;quot; and &amp;quot;legend&amp;quot; are commonly used terms in the print world, so their use could prove natural to authors. It is most likely that authors that need a markup for their figure will chose this one if it is sanctioned in a standard.&lt;br /&gt;
&lt;br /&gt;
This markup won&#039;t work if an author wants the caption to be elsewhere in the document. (In this proposal, &amp;amp;lt;legend&amp;gt; is pinned to the figure&#039;s content.) It does not seem a common use case however.&lt;br /&gt;
&lt;br /&gt;
=== Adjacent &amp;amp;lt;caption&amp;gt; or &amp;lt;legend&amp;gt; ===&lt;br /&gt;
&amp;amp;lt;caption&amp;gt; or &amp;lt;legend&amp;gt; elements directly following a &amp;lt;img&amp;gt; element give the caption text for that image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;legend&amp;gt;Caption Text&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
The processing model for HTML files must be changed so that the &amp;amp;lt;caption&amp;gt; is no longer ignored when outside the context of a table. It could also be a good idea to add a new figure insertion mode that would prevent figure captions from being moved to the enclosing table when inside a table cell, otherwise &amp;amp;lt;figure&amp;gt; will break in table-based layouts.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Are the elements in this construct inline or block-level content? Currently &amp;lt;img&amp;gt; is inline.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If any other element, or non-whitespace text nodes are found between &amp;lt;img&amp;gt; and its corresponding caption element, elements are considered to not be adjacent, the semantic link is broken and it generates a parse error.&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&amp;lt;caption&amp;gt; being ignored by current browsers when outside a table makes it impossible to style, and it&#039;ll also be terribly broken with table layouts when captions end up at the top (or the bottom) of the enclosing layout table.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;To be completed: &amp;lt;legend&amp;gt; parsing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
Parsing changes in this solution could be hard to implement given &amp;lt;caption&amp;gt; element&#039;s legacy within &amp;lt;table&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;To be completed: &amp;lt;legend&amp;gt; parsing implementation&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Giving a distinctive visual style to figure captions may prove difficult with this design. If a browser wants to treat figures in a distinctive manner, it&#039;ll have treat them as a special case; the adjacent element selector in CSS can&#039;t distinguish between adjacent elements which are separated by text and those that are not.&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;legend&amp;quot; and &amp;quot;caption&amp;quot; are commonly used terms in the print world, so their use could prove natural to authors. Difficulties in styling are likely however to cause authors to always warp figures in a &amp;lt;div&amp;gt; element as most already do anyway (see [[Image Caption Examples]]).&lt;br /&gt;
&lt;br /&gt;
This markup won&#039;t work if an author wants the caption to be elsewhere in the document. It does not seem a common use case however.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;label&amp;gt; defining attributes with nested markup ===&lt;br /&gt;
A &amp;lt;label&amp;gt; element holds a value which should be treated the same way like the title attribute on &amp;lt;img&amp;gt;, except that it can contain nested markup. The for attribute of the label contains the id of the target element. A new type attribute on the label indicates which attribute the label intend to replace on the target.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;img id=&amp;quot;img1&amp;quot; src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;label for=&amp;quot;img1&amp;quot; type=&amp;quot;title&amp;quot;&amp;gt;...&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
:&#039;&#039;To be completed: Attribute override, progressive rendering, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
This markup has the benefit that it&#039;ll work if an author wants the caption to be elsewhere in the document.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Feature Request]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1900</id>
		<title>Image Caption</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1900"/>
		<updated>2006-11-17T14:14:07Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Added two proposed solutions; updated links to Image Caption Examples page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image caption are often found on the web, but there is no standard markup for this.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
Currently, most people use either a table, custom class names, or simply put the image inside a paragraph, each option either conveying a wrong meaning or being ambiguous with the rest of the content.&lt;br /&gt;
&lt;br /&gt;
An interesting analysis has been done on the subject by Dan Cederholm in one of his SimpleQuiz. [http://www.simplebits.com/notebook/2004/01/20/sqxi_conclusion.html His conclusion]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;So in this case, I might choose option A -- because visually it shows the relationship between the items better than the others. But I suppose this is bad semantics. Or maybe just another case where we don&#039;t have the &#039;perfect&#039; set of defined elements for this (very) specific job.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And his option A was:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;img scr=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
   Caption Text&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other word, he could not figure out anything good using current elements available in HTML, and, as most people do, had to create his own solution.&lt;br /&gt;
&lt;br /&gt;
Setting a standard for such things -- an explicit association between the caption and the illustration -- would help image search engines, it could enable the automatic creation of a figure index for a page. The fact that image captions should be treated differently to body text (they are not in the main flow of the document) suggests this element could be important for figure handling by assistive tools allowing e.g. aural browsers to skip captions except on explicit user request.&lt;br /&gt;
&lt;br /&gt;
=== Current Methods and Workarounds ===&lt;br /&gt;
See [[Image Caption Examples]] for a couple of sample cases.&lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;figure&amp;gt; with &amp;amp;lt;caption&amp;gt; ===&lt;br /&gt;
A &amp;lt;figure&amp;gt; element contains illustrative content for the current section. It can contain a &amp;amp;lt;caption&amp;gt; element, either as the first or the last child, that will be used to describe or give a caption to the content of the figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;figure&amp;gt;&lt;br /&gt;
  &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
The processing model for HTML files must be changed so that the &amp;amp;lt;caption&amp;gt; is no longer ignored when outside the context of a table. It could also be a good idea to add a new figure insertion mode that would prevent figure captions from being moved to the enclosing table when inside a table cell, otherwise &amp;amp;lt;figure&amp;gt; will break in table-based layouts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
  &amp;lt;figure&amp;gt;&lt;br /&gt;
    &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&amp;amp;lt;caption&amp;gt; being ignored by current browsers when outside a table makes it impossible to style, and it&#039;ll also be terribly broken with table layouts when figure captions end up at the top (or the bottom) of the enclosing layout table.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
Parsing changes in this solution could be hard to implement given &amp;amp;lt;caption&amp;gt; element&#039;s legacy within &amp;amp;lt;table&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Putting aside the parsing problem, there&#039;s not much else to implement for visual browsers. A good display model that could be used to display figures is already available in CSS 2.1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
figure { display: table; }&lt;br /&gt;
caption { display: table-caption; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would display the figure as a one-cell table, and the caption either at the top or at the bottom (depending on the [http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side caption-side] property). The interesting part of this model is that the caption&#039;s width is constrained by the width of the figure, making it the ideal choice for floated figures.&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
The syntax is pretty straightforward to use. &amp;quot;figure&amp;quot; and &amp;quot;caption&amp;quot; are commonly used terms to designate exactly this feature in the print world. It should be a natural choice to authors that wonder how to markup their images.&lt;br /&gt;
&lt;br /&gt;
This markup won&#039;t work however if an author wants the caption to be elsewhere in the document. (In this proposal, &amp;amp;lt;caption&amp;gt; is pinned to the figure&#039;s content.) It does not seem a common use case however.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;figure&amp;gt; with &amp;amp;lt;legend&amp;gt; ===&lt;br /&gt;
A &amp;lt;figure&amp;gt; element contains illustrative content for the current section. It can contain a &amp;amp;lt;legend&amp;gt; element, either as the first or the last child, that will be used to describe or give a caption to the content of the figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;figure&amp;gt;&lt;br /&gt;
  &amp;lt;legend&amp;gt;Caption Text&amp;lt;/legend&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
A good display model that could be used to display figures is already available in CSS 2.1, the table model. A default stylesheet could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
figure { display: table; }&lt;br /&gt;
figure legend { display: table-caption; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would display the figure as a one-cell table, and the figure legend either at the top or at the bottom (depending on the [http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side caption-side] property). The interesting part of this model is that the legend&#039;s width is constrained by the width of the figure, making it the ideal choice for floated figures.&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
&amp;quot;figure&amp;quot; and &amp;quot;legend&amp;quot; are commonly used terms in the print world, so their use could prove natural to authors. It is most likely that authors that need a markup for their figure will chose this one if it is sanctioned in a standard.&lt;br /&gt;
&lt;br /&gt;
This markup won&#039;t work if an author wants the caption to be elsewhere in the document. (In this proposal, &amp;amp;lt;legend&amp;gt; is pinned to the figure&#039;s content.) It does not seem a common use case however.&lt;br /&gt;
&lt;br /&gt;
=== Adjacent &amp;amp;lt;caption&amp;gt; or &amp;lt;legend&amp;gt; ===&lt;br /&gt;
&amp;amp;lt;caption&amp;gt; or &amp;lt;legend&amp;gt; elements directly following a &amp;lt;img&amp;gt; element give the caption text for that image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;legend&amp;gt;Caption Text&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
The processing model for HTML files must be changed so that the &amp;amp;lt;caption&amp;gt; is no longer ignored when outside the context of a table. It could also be a good idea to add a new figure insertion mode that would prevent figure captions from being moved to the enclosing table when inside a table cell, otherwise &amp;amp;lt;figure&amp;gt; will break in table-based layouts.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Are the elements in this construct inline or block-level content? Currently &amp;lt;img&amp;gt; is inline.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If any other element, or non-whitespace text nodes are found between &amp;lt;img&amp;gt; and its corresponding caption element, elements are considered to not be adjacent, the semantic link is broken and it generates a parse error.&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&amp;lt;caption&amp;gt; being ignored by current browsers when outside a table makes it impossible to style, and it&#039;ll also be terribly broken with table layouts when captions end up at the top (or the bottom) of the enclosing layout table.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;To be completed: &amp;lt;legend&amp;gt; parsing&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
Parsing changes in this solution could be hard to implement given &amp;lt;caption&amp;gt; element&#039;s legacy within &amp;lt;table&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;To be completed: &amp;lt;legend&amp;gt; parsing implementation&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Giving a distinctive visual style to figure captions may prove difficult with this design. If a browser wants to treat figures in a distinctive manner, it&#039;ll have treat them as a special case; the adjacent element selector in CSS can&#039;t distinguish between adjacent elements which are separated by text and those that are not.&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;legend&amp;quot; and &amp;quot;caption&amp;quot; are commonly used terms in the print world, so their use could prove natural to authors. Difficulties in styling are likely however to cause authors to always warp figures in a &amp;lt;div&amp;gt; element as most already do anyway (see [[Image Caption Examples]]).&lt;br /&gt;
&lt;br /&gt;
This markup won&#039;t work if an author wants the caption to be elsewhere in the document. It does not seem a common use case however.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;label&amp;gt; defining attributes with nested markup ===&lt;br /&gt;
A &amp;lt;label&amp;gt; element holds a value which should be treated the same way like the title attribute on &amp;lt;img&amp;gt;, except that it can contain nested markup. The for attribute of the label contains the id of the target element. A new type attribute on the label indicates which attribute the label intend to replace on the target.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;img id=&amp;quot;img1&amp;quot; src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;label for=&amp;quot;img1&amp;quot; type=&amp;quot;title&amp;quot;&amp;gt;...&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This markup has the benefit that it&#039;ll work if an author wants the caption to be elsewhere in the document.&lt;br /&gt;
&lt;br /&gt;
[[Category:Feature Request]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Image_Caption_Usage&amp;diff=1899</id>
		<title>Talk:Image Caption Usage</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Image_Caption_Usage&amp;diff=1899"/>
		<updated>2006-11-17T14:08:50Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Talk:Image Caption Usage moved to Talk:Image Caption Examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:Image Caption Examples]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Image_Caption_Examples&amp;diff=1898</id>
		<title>Talk:Image Caption Examples</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Image_Caption_Examples&amp;diff=1898"/>
		<updated>2006-11-17T14:08:50Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Talk:Image Caption Usage moved to Talk:Image Caption Examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* If we&#039;re going to list examples, wouldn&#039;t it be better that we followed the microformats method by using an &amp;quot;Examples&amp;quot; suffix.  Generally, microformats uses spec-examples as the URL, but somehow their page titles differ slightly from the URI.  We can just use something like &amp;quot;&amp;lt;var&amp;gt;Format Name&amp;lt;/var&amp;gt; Examples&amp;quot;.  e.g. &amp;quot;Image Caption Examples&amp;quot;.  Should we rename and redirect this page? --[[User:Lachlan Hunt|Lachlan Hunt]] 22:03, 16 November 2006 (PST)&lt;br /&gt;
** Agreed. --[[User:Michel Fortin|Michel Fortin]] 06:07, 17 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Image_Caption_Usage&amp;diff=1897</id>
		<title>Image Caption Usage</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Image_Caption_Usage&amp;diff=1897"/>
		<updated>2006-11-17T14:08:49Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Image Caption Usage moved to Image Caption Examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Image Caption Examples]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Image_Caption_Examples&amp;diff=1896</id>
		<title>Image Caption Examples</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Image_Caption_Examples&amp;diff=1896"/>
		<updated>2006-11-17T14:08:49Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Image Caption Usage moved to Image Caption Examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a collection of sample usage for images with captions from around the web. Markup samples provided here have been reformatted and often simplified by removing presentational elements to better illustrate what &amp;quot;defines&amp;quot; the figure in them.&lt;br /&gt;
&lt;br /&gt;
These real-world examples provides support for the [[Image Caption]] proposal.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Some images in the CSS 2.1 specification ([http://www.w3.org/TR/CSS21/colors.html#img-bg-repeat example 1], [http://www.w3.org/TR/CSS21/tables.html#img-cell-align example 2]) use class names to add captions to figures. Reduced to a simpler form, the markup looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;figure&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;...&amp;quot; alt=&amp;quot;[caption text]&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;p class=&amp;quot;caption&amp;quot;&amp;gt;[Caption Text]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Removed form this simplified markup is the [D] link to a long description that was put beside the image.)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Articles form the Salon.com magazine ([http://www.salon.com/opinion/blumenthal/2006/11/16/baker_rescue/index_np.html example]) use this markup  for accompaniment photographs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&#039;article_photo_right&#039;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&#039;...&#039;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p class=&#039;article_photo_credit&#039;&amp;gt;Photo: [Photograph&#039;s Name]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&#039;article_photo_caption&#039;&amp;gt;[Caption Text]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
MacWorld magazine website uses two-row tables to add a caption to screenshots in [http://www.macworld.com/2006/06/firstlooks/flciviv/index.php this article]. Interestingly, they&#039;re not using the &amp;amp;lt;caption&amp;gt; element with is meant to be used inside &amp;amp;lt;table&amp;gt;. By using it, they could have saved themselves the trouble of specifying a width for each of their screenshots without having the image description extending the table. Here is a simplified version of the markup used on this page:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table width=&amp;quot;310&amp;quot; align=&amp;quot;right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
   &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;[Caption Text or Image Description]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wikipedia thumbnail image with caption can be reduced to this once the links are removed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot; alt=&amp;quot;[Caption Text]&amp;quot; longdesc=&amp;quot;...&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;thumbcaption&amp;quot;&amp;gt;&lt;br /&gt;
    [Caption Text]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Some documents ([http://www.stanford.edu/group/hopes/basics/basichd/a2.html example]) simply put the caption text inside the image.&lt;br /&gt;
&lt;br /&gt;
== Other Examples ==&lt;br /&gt;
&lt;br /&gt;
http://developer.apple.com/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_paths/chapter_4_section_2.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
  &amp;lt;a name=&amp;quot;...&amp;quot; title=&amp;quot;[Caption Text]&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;[Caption Text]&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot; alt=&amp;quot;[Caption Text]&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://medicine.plosjournals.org/perlserv?request=get-document&amp;amp;doi=10.1371/journal.pmed.0020228&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;figureFM&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;a name=&amp;quot;...&amp;quot; id=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;h5&amp;gt;[Caption Text]&amp;lt;/h5&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
http://www.darsie.net/string/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table WIDTH=&amp;quot;346&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
  &amp;lt;img align=top src=&amp;quot;...&amp;quot; ALT=&amp;quot;Photo of Position 1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
  Position 1&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Image_Caption_Examples&amp;diff=1895</id>
		<title>Talk:Image Caption Examples</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Image_Caption_Examples&amp;diff=1895"/>
		<updated>2006-11-17T14:07:50Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* If we&#039;re going to list examples, wouldn&#039;t it be better that we followed the microformats method by using an &amp;quot;Examples&amp;quot; suffix.  Generally, microformats uses spec-examples as the URL, but somehow their page titles differ slightly from the URI.  We can just use something like &amp;quot;&amp;lt;var&amp;gt;Format Name&amp;lt;/var&amp;gt; Examples&amp;quot;.  e.g. &amp;quot;Image Caption Examples&amp;quot;.  Should we rename and redirect this page? --[[User:Lachlan Hunt|Lachlan Hunt]] 22:03, 16 November 2006 (PST)&lt;br /&gt;
** Agreed. --[[User:Michel Fortin|Michel Fortin]] 06:07, 17 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Problem_Solving&amp;diff=1881</id>
		<title>Problem Solving</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Problem_Solving&amp;diff=1881"/>
		<updated>2006-11-16T17:04:57Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an empty page that describes what should be documented about a problem and the different solutions proposed to address it. Feel free to copy this template to when creating a new page.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Brief description of the problem to solve.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
:&#039;&#039;Complete description of the problem, explanation of why the current markup is insufficient, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== My Solution ===&lt;br /&gt;
:&#039;&#039;Brief description of the solution and of how it address the problem at hand.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
:&#039;&#039;Explanation of the changes introduced by this solution. It explains how the document is processed, and how errors are handled. This should be very clear, including things such as event timing if the solution involves events, how to create graphs representing the data in the case of semantic proposals, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
:&#039;&#039;Description of how and why browser vendors would take advantage of this feature.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
:&#039;&#039;Reasons why page authors would use this solution.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
:&#039;&#039;Some evidence is there that this feature is desparately needed on the web.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Feature_Proposals&amp;diff=1880</id>
		<title>Talk:Feature Proposals</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Feature_Proposals&amp;diff=1880"/>
		<updated>2006-11-16T16:21:07Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Guidelines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
Lachlan, I think these feature proposal guidelines are cluttering this page unnecessarily. It would be better to put them elsewhere and just create a link to the guidelines. Elsewhere could be on the Contribution Guidelines page, were you&#039;ve put them initially, because feature proposals &amp;lt;em&amp;gt;are&amp;lt;/em&amp;gt; contributions. --[[User:Michel Fortin|Michel Fortin]] 08:15, 16 November 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
: Replying to myself (again), maybe the guidelines are not needed anymore. If someone creates a proposal from the template and fills all the sections he can, others can complete the proposal if they think its valuable and are knowledgeable enough. That&#039;s why we have a wiki in the first place, isn&#039;t it? -[[User:Michel Fortin|Michel Fortin]] 08:21, 16 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Feature_Proposals&amp;diff=1879</id>
		<title>Talk:Feature Proposals</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Feature_Proposals&amp;diff=1879"/>
		<updated>2006-11-16T16:15:56Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Guidelines ==&lt;br /&gt;
&lt;br /&gt;
Lachlan, I think these feature proposal guidelines are cluttering this page unnecessarily. It would be better to put them elsewhere and just create a link to the guidelines. Elsewhere could be on the Contribution Guidelines page, were you&#039;ve put them initially, because feature proposals &amp;lt;em&amp;gt;are&amp;lt;/em&amp;gt; contributions. --[[User:Michel Fortin|Michel Fortin]] 08:15, 16 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Image_Caption&amp;diff=1878</id>
		<title>Talk:Image Caption</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Image_Caption&amp;diff=1878"/>
		<updated>2006-11-16T16:04:09Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== &amp;lt;figure&amp;gt; with &amp;lt;legend&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
I&#039;m not sure if this shouldn&#039;t be grouped with the other &amp;quot;figure with caption&amp;quot; solution. They&#039;re pretty similar in concept, but they have different implications. --[[User:Michel Fortin|Michel Fortin]] 08:04, 16 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1877</id>
		<title>Image Caption</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1877"/>
		<updated>2006-11-16T16:01:37Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Added &amp;lt;figure&amp;gt; with &amp;lt;legend&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image caption are often found on the web, but there is no standard markup for this.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
Currently, most people use either a table, custom class names, or simply put the image inside a paragraph, each option either conveying a wrong meaning or being ambiguous with the rest of the content.&lt;br /&gt;
&lt;br /&gt;
An interesting analysis has been done on the subject by Dan Cederholm in one of his SimpleQuiz. [http://www.simplebits.com/notebook/2004/01/20/sqxi_conclusion.html His conclusion]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;So in this case, I might choose option A -- because visually it shows the relationship between the items better than the others. But I suppose this is bad semantics. Or maybe just another case where we don&#039;t have the &#039;perfect&#039; set of defined elements for this (very) specific job.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And his option A was:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;img scr=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
   Caption Text&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other word, he could not figure out anything good using current elements available in HTML, and, as most people do, had to create his own solution.&lt;br /&gt;
&lt;br /&gt;
Setting a standard for such things -- an explicit association between the caption and the illustration -- would help image search engines, it could enable the automatic creation of a figure index for a page and the creation of assistive tools capable of handling illustrations better.&lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;figure&amp;gt; with &amp;amp;lt;caption&amp;gt; ===&lt;br /&gt;
A &amp;lt;figure&amp;gt; element contains illustrative content for the current section. It can contain a &amp;amp;lt;caption&amp;gt; element, either as the first or the last child, that will be used to describe or give a caption to the content of the figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;figure&amp;gt;&lt;br /&gt;
  &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
The processing model for HTML files must be changed so that the &amp;amp;lt;caption&amp;gt; is no longer ignored when outside the context of a table. It could also be a good idea to add a new figure insertion mode that would prevent figure captions from being moved to the enclosing table when inside a table cell, otherwise &amp;amp;lt;figure&amp;gt; will break in table-based layouts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
  &amp;lt;figure&amp;gt;&lt;br /&gt;
    &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&amp;amp;lt;caption&amp;gt; being ignored by current browsers when outside a table makes it impossible to style, and it&#039;ll also be terribly broken with table layouts when figure captions end up at the top (or the bottom) of the enclosing table.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
Parsing changes in this section could be hard to implement is the &amp;amp;lt;caption&amp;gt; element&#039;s legacy within &amp;amp;lt;table&amp;gt;. So it is uncertain &lt;br /&gt;
&lt;br /&gt;
Putting aside the parsing problem, there&#039;s not much else to implement for visual browsers. A good display model that could be used to display figures is already available in CSS 2.1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
figure { display: table; }&lt;br /&gt;
caption { display: table-caption; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would display the figure as a one-cell table, and the caption either at the top or at the bottom (depending on the [http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side caption-side] property). The interesting part of this model is that the caption&#039;s width is constrained by the width of the figure, making it the ideal choice for floated figures.&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
The syntax is pretty straightforward to use. &amp;quot;figure&amp;quot; and &amp;quot;caption&amp;quot; are commonly used terms to designate exactly this feature in the print world. It should be a natural choice to authors that wonder how to markup their images.&lt;br /&gt;
&lt;br /&gt;
This markup won&#039;t work however if an author wants the caption to be elsewhere in the document. (In this proposal, &amp;amp;lt;caption&amp;gt; is pinned to the figure&#039;s content.) It does not seem a common use case however.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;figure&amp;gt; with &amp;amp;lt;legend&amp;gt; ===&lt;br /&gt;
A &amp;lt;figure&amp;gt; element contains illustrative content for the current section. It can contain a &amp;amp;lt;legend&amp;gt; element, either as the first or the last child, that will be used to describe or give a caption to the content of the figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;figure&amp;gt;&lt;br /&gt;
  &amp;lt;legend&amp;gt;Caption Text&amp;lt;/legend&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
:&#039;&#039;To be completed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
A good display model that could be used to display figures is already available in CSS 2.1, the table model. A default stylesheet could look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
figure { display: table; }&lt;br /&gt;
figure legend { display: table-caption; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would display the figure as a one-cell table, and the figure legend either at the top or at the bottom (depending on the [http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side caption-side] property). The interesting part of this model is that the legend&#039;s width is constrained by the width of the figure, making it the ideal choice for floated figures.&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
&amp;quot;figure&amp;quot; and &amp;quot;legend&amp;quot; are commonly used terms in the print world, so their use could prove natural to authors. It is most likely that authors that need a markup for their figure will chose this one if it is sanctioned in a standard.&lt;br /&gt;
&lt;br /&gt;
This markup won&#039;t work if an author wants the caption to be elsewhere in the document. (In this proposal, &amp;amp;lt;legend&amp;gt; is pinned to the figure&#039;s content.) It does not seem a common use case however.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
:&#039;&#039;Some evidence is there that this feature is desparately needed on the web.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1876</id>
		<title>Image Caption</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1876"/>
		<updated>2006-11-16T15:36:50Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Completed &amp;lt;figure&amp;gt; with &amp;amp;lt;caption&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image caption are often found on the web, but there is no standard markup for this.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
Currently, most people use either a table, custom class names, or simply put the image inside a paragraph, each option either conveying a wrong meaning or being ambiguous with the rest of the content.&lt;br /&gt;
&lt;br /&gt;
An interesting analysis has been done on the subject by Dan Cederholm in one of his SimpleQuiz. [http://www.simplebits.com/notebook/2004/01/20/sqxi_conclusion.html His conclusion]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;So in this case, I might choose option A -- because visually it shows the relationship between the items better than the others. But I suppose this is bad semantics. Or maybe just another case where we don&#039;t have the &#039;perfect&#039; set of defined elements for this (very) specific job.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And his option A was:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;img scr=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
   Caption Text&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other word, he could not figure out anything good using current elements available in HTML, and, as most people do, had to create his own solution.&lt;br /&gt;
&lt;br /&gt;
Setting a standard for such things -- an explicit association between the caption and the illustration -- would help image search engines, it could enable the automatic creation of a figure index for a page and the creation of assistive tools capable of handling illustrations better.&lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;figure&amp;gt; with &amp;amp;lt;caption&amp;gt; ===&lt;br /&gt;
A &amp;lt;figure&amp;gt; element contains illustrative content for the current section. It can contain a &amp;amp;lt;caption&amp;gt; element, either as the first or the last child, that will be used to describe or give a caption to the content of the figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;figure&amp;gt;&lt;br /&gt;
  &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Processing Model ====&lt;br /&gt;
The processing model for HTML files must be changed so that the &amp;amp;lt;caption&amp;gt; is no longer ignored when outside the context of a table. It could also be a good idea to add a new figure insertion mode that would prevent figure captions from being moved to the enclosing table when inside a table cell, otherwise &amp;amp;lt;figure&amp;gt; will break in table-based layouts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
  &amp;lt;figure&amp;gt;&lt;br /&gt;
    &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ====&lt;br /&gt;
&amp;amp;lt;caption&amp;gt; being ignored by current browsers when outside a table makes it impossible to style, and it&#039;ll also be terribly broken with table layouts when figure captions end up at the top (or the bottom) of the enclosing table.&lt;br /&gt;
&lt;br /&gt;
==== Implementation ====&lt;br /&gt;
Parsing changes in this section could be hard to implement is the &amp;amp;lt;caption&amp;gt; element&#039;s legacy within &amp;amp;lt;table&amp;gt;. So it is uncertain &lt;br /&gt;
&lt;br /&gt;
Putting aside the parsing problem, there&#039;s not much else to implement for visual browsers. A good display model that could be used to display figures is already available in CSS 2.1:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
figure { display: table; }&lt;br /&gt;
caption { display: table-caption; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would display the figure as a one-cell table, and the caption either at the top or at the bottom (depending on the [http://www.w3.org/TR/CSS21/tables.html#propdef-caption-side caption-side] property). The interesting part of this model is that the caption&#039;s width is constrained by the width of the figure, making it the ideal choice for floated figures.&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
The syntax is pretty straightforward to use. &amp;quot;figure&amp;quot; and &amp;quot;caption&amp;quot; are commonly used terms to designate exactly this feature in the print world. It should be a natural choice to authors that wonder how to markup their images.&lt;br /&gt;
&lt;br /&gt;
This markup won&#039;t work however if an author wants the caption to be elsewhere in the document. (In this proposal, &amp;amp;lt;caption&amp;gt; is pinned to the figure&#039;s content.) It does not seem a common use case however.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
:&#039;&#039;Some evidence is there that this feature is desparately needed on the web.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1875</id>
		<title>Image Caption</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Image_Caption&amp;diff=1875"/>
		<updated>2006-11-16T14:47:08Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Begun explaining the problematic, this isn&amp;#039;t very complement at the moment.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image caption are often found on the web, but there is no standard markup for this.&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
Currently, most people use either a table, custom class names, or simply put the image inside a paragraph, each option either conveying a wrong meaning or being ambiguous with the rest of the content.&lt;br /&gt;
&lt;br /&gt;
An interesting analysis has been done on the subject by Dan Cederholm in one of his SimpleQuiz. [http://www.simplebits.com/notebook/2004/01/20/sqxi_conclusion.html His conclusion]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;So in this case, I might choose option A -- because visually it shows the relationship between the items better than the others. But I suppose this is bad semantics. Or maybe just another case where we don&#039;t have the &#039;perfect&#039; set of defined elements for this (very) specific job.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And his option A was:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;img scr=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
   Caption Text&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In other word, he could not figure out anything good using current elements available in HTML, and, as most people do, had to create his own solution.&lt;br /&gt;
&lt;br /&gt;
Setting a standard for such things -- an explicit association between the caption and the illustration -- would help image search engines, it could enable the automatic creation of a figure index for a page and the creation of assistive tools capable of handling illustrations better.&lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;figure&amp;gt; with &amp;amp;lt;caption&amp;gt; ===&lt;br /&gt;
:&#039;&#039;Brief description of the solution and of how it address the problem at hand.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;figure&amp;gt;&lt;br /&gt;
  &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
:&#039;&#039;Explanation of the changes introduced by this solution. It explains how the document is processed, and how errors are handled. This should be very clear, including things such as event timing if the solution involves events, how to create graphs representing the data in the case of semantic proposals, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
  &amp;lt;figure&amp;gt;&lt;br /&gt;
    &amp;lt;caption&amp;gt;Caption Text&amp;lt;/caption&amp;gt;&lt;br /&gt;
    &amp;lt;img src=&amp;quot;...&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
:&#039;&#039;Description of how and why browser vendors would take advantage of this feature.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
:&#039;&#039;Reasons why page authors would use this solution.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
:&#039;&#039;Some evidence is there that this feature is desparately needed on the web.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Main_Page&amp;diff=1874</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Main_Page&amp;diff=1874"/>
		<updated>2006-11-16T11:40:46Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Forgot to login before previous editing; adding my name where it belongs.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WHATWG Specifications ==&lt;br /&gt;
&lt;br /&gt;
* I think this whole section should go. Problems should be categorised by what they apply to, not classified by which specification should solve them. The solution, not the problem, is bound to a particular specification. --[[User:Michel Fortin|Michel Fortin]]&lt;br /&gt;
** I agree that problems shouldn&#039;t be categorised by the specification, but I don&#039;t agree this section should go.  I think it&#039;s ok to provide some documentation about the actual specifications, including the actual features included within.  It should be used to provide summaries and examples of actual features.  Only when a proposal has been accepted and included in the spec, should it be included in this section. --[[User:Lachlan Hunt|Lachlan Hunt]] 22:03, 15 Nov 2006 (PST)&lt;br /&gt;
*** That&#039;s fine with me. --[[User:Michel Fortin|Michel Fortin]]&lt;br /&gt;
&lt;br /&gt;
== Terms, Acronyms and Abbreviations ==&lt;br /&gt;
&lt;br /&gt;
* I think this section too should go too. --[[User:Michel Fortin|Michel Fortin]]&lt;br /&gt;
** I agree.  If needed, we could create a glossary, but I don&#039;t think abbreviations and other terms should be on separate pages. --[[User:Lachlan Hunt|Lachlan Hunt]] 22:05, 15 Nov 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Talk:Main_Page&amp;diff=50</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Talk:Main_Page&amp;diff=50"/>
		<updated>2006-11-16T05:49:36Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: Sections that should go...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WHATWG Specifications ==&lt;br /&gt;
&lt;br /&gt;
I think this whole section should go. Problems should be categorised by what they apply to, not classified by which specification should solve them. The solution, not the problem, is bound to a particular specification. --[[User:Michel Fortin|Michel Fortin]]&lt;br /&gt;
&lt;br /&gt;
== Terms, Acronyms and Abbreviations ==&lt;br /&gt;
&lt;br /&gt;
I think this section too should go too. --[[User:Michel Fortin|Michel Fortin]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=WHATWG_Wiki_talk:Contribution_Guidelines&amp;diff=808</id>
		<title>WHATWG Wiki talk:Contribution Guidelines</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=WHATWG_Wiki_talk:Contribution_Guidelines&amp;diff=808"/>
		<updated>2006-11-16T05:14:16Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: /* Site Specific Policies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Site Specific Policies==&lt;br /&gt;
&lt;br /&gt;
I think it&#039;s a bad idea for feature requests to include proposed element names in the page title.  There&#039;s always significant discussion about appropriate element names for features, so the proposal should focus on the problem to be solved, rather than the specific solution.  e.g. instead of proposing a &amp;lt;footnote&amp;gt; element, propose a way to mark up footnotes. [[User:Lachlan Hunt|Lachlan Hunt]] 20:58, 15 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
:It seems that while you were writing this, in that spirit I created the [[Feature Proposals]] page some minutes ago. --[[User:Michel Fortin|Michel Fortin]] 21:05, 15 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
I also don&#039;t think feature requests should have to go into the User: or Group Proposal: space.  I think all feature requests, regardless of who proposes it, should go under a common name like Feature:.  e.g. Feature:Footnotes [[User:Lachlan Hunt|Lachlan Hunt]] 20:58, 15 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
:I completely agree, that&#039;s exactly what I&#039;ve made with the [[Feature Proposals]] page. --[[User:Michel Fortin|Michel Fortin]] 21:05, 15 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
::Replying to myself, I don&#039;t think there would be any problem removing that as Matthew Raymond seems to have abandoned the wiki as it was in April 2005. It seems it was just an idea that was never really used, until now. (There was no other [[Special:Listusers|registered user]] than Matthew before I register a few hours ago.) --[[User:Michel Fortin|Michel Fortin]] 21:14, 15 Nov 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Main_Page&amp;diff=52</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Main_Page&amp;diff=52"/>
		<updated>2006-11-16T05:07:56Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the WHATWG Wiki. Before you begin, please read the [[WHATWG Wiki:Contribution Guidelines|Contribution Guidelines]].&lt;br /&gt;
&lt;br /&gt;
==Purpose==&lt;br /&gt;
The purpose of the WHATWG Wiki is to create a place for WHATWG contributors to post and compile their own proposals and ideas regarding WHATWG specifications. The specifications themselves will not be available for editing via this wiki. However, ideas you post here may find their way into current and future WHATWG specifications.&lt;br /&gt;
&lt;br /&gt;
== Feature Proposals ==&lt;br /&gt;
&lt;br /&gt;
See [[Feature Proposals]].&lt;br /&gt;
&lt;br /&gt;
==WHATWG Specifications==&lt;br /&gt;
* [[Web Forms 2.0]]&lt;br /&gt;
* [[Web Applications 1.0]]&lt;br /&gt;
* [[Web Controls 1.0]]&lt;br /&gt;
&lt;br /&gt;
==Terms, Acronyms and Abbreviations==&lt;br /&gt;
* [[Common Abbreviations and Acronyms]]&lt;br /&gt;
* [[Common Terms]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=WHATWG_Wiki_talk:Contribution_Guidelines&amp;diff=48</id>
		<title>WHATWG Wiki talk:Contribution Guidelines</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=WHATWG_Wiki_talk:Contribution_Guidelines&amp;diff=48"/>
		<updated>2006-11-16T05:05:02Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Site Specific Policies==&lt;br /&gt;
&lt;br /&gt;
I think it&#039;s a bad idea for feature requests to include proposed element names in the page title.  There&#039;s always significant discussion about appropriate element names for features, so the proposal should focus on the problem to be solved, rather than the specific solution.  e.g. instead of proposing a &amp;lt;footnote&amp;gt; element, propose a way to mark up footnotes. [[User:Lachlan Hunt|Lachlan Hunt]] 20:58, 15 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
:It seems that while you were writing this, in that spirit I created the [[Feature Proposals]] page some minutes ago. --[[User:Michel Fortin|Michel Fortin]] 21:05, 15 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
I also don&#039;t think feature requests should have to go into the User: or Group Proposal: space.  I think all feature requests, regardless of who proposes it, should go under a common name like Feature:.  e.g. Feature:Footnotes [[User:Lachlan Hunt|Lachlan Hunt]] 20:58, 15 Nov 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
:I completely agree, that&#039;s exactly what I&#039;ve made with the [[Feature Proposals]] page. --[[User:Michel Fortin|Michel Fortin]] 21:05, 15 Nov 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Problem_Solving&amp;diff=806</id>
		<title>Problem Solving</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Problem_Solving&amp;diff=806"/>
		<updated>2006-11-16T04:51:15Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an empty page that describes what should be documented about a problem and the different solutions proposed to address it. Feel free to copy this template to when creating a new page.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Brief description of the problem to solve.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
:&#039;&#039;Complete description of the problem, explanation of why the current markup is insufficient, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Proposed Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== My Solution ===&lt;br /&gt;
:&#039;&#039;Brief description of the solution and of how it address the problem at hand.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
:&#039;&#039;Explanation of the changes introduced by this solution. It explains how the document is processed, and how errors are handled. This should be very clear, including things such as event timing if the solution involves events, how to create graphs representing the data in the case of semantic proposals, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
:&#039;&#039;Description of how and why browser vendors would take advantage of this feature.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
:&#039;&#039;Reasons why page authors would use this solution.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
:&#039;&#039;Some evidence is there that this feature is desparately needed on the web.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Feature_Proposals&amp;diff=47</id>
		<title>Feature Proposals</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Feature_Proposals&amp;diff=47"/>
		<updated>2006-11-16T04:32:00Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains a list of the problems for which feature requests have been made. Linked problem pages contain the document of the problem and their relevant solutions. Obviously, we want to keep HTML as simple as possible. That means not everyone will get what they want. Having good documentation for the problems at hand will help all of us work out what is most important.&lt;br /&gt;
&lt;br /&gt;
If you want to add a feature request, you should probably start by coping the [[Problem Solving]] template page on a new page and fill as much information as you can.&lt;br /&gt;
&lt;br /&gt;
== Document Markup ==&lt;br /&gt;
* [[Dialogue]]&lt;br /&gt;
* [[Annotation]]&lt;br /&gt;
* [[Footnotes]]&lt;br /&gt;
* [[Sidenotes]]&lt;br /&gt;
* [[Image Caption]]&lt;br /&gt;
* [[Inline Math]]&lt;br /&gt;
&lt;br /&gt;
== DOM Scripting ==&lt;br /&gt;
* [[Text in Canvas]]&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [[Link Hashes]]&lt;br /&gt;
* [[Digital Signatures]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Feature_Proposals&amp;diff=41</id>
		<title>Feature Proposals</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Feature_Proposals&amp;diff=41"/>
		<updated>2006-11-16T04:31:47Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains a list of the problems for which feature requests have been made. Linked problem pages contain the document of the problem and their relevant solutions. Obviously, we want to keep HTML as simple as possible. That means not everyone will get what they want. Having good documentation for the problems at hand will help all of us work out what is most important.&lt;br /&gt;
&lt;br /&gt;
If you want to add a feature request, you should probably start by coping the [[Problem Solving]] template page on a new page and fill as much information as you can.&lt;br /&gt;
&lt;br /&gt;
== Document Markup ==&lt;br /&gt;
* [[Dialogue]]&lt;br /&gt;
* [[Annotation]]&lt;br /&gt;
* [[Footnotes]]&lt;br /&gt;
* [[Sidenotes]]&lt;br /&gt;
* [[Image Caption]]&lt;br /&gt;
* [[Inline Math]]&lt;br /&gt;
&lt;br /&gt;
== DOM Scripting ==&lt;br /&gt;
* [[Text in Canvas]]&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [[Link Hashes]]&lt;br /&gt;
* [[Digital Signature]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Feature_Proposals&amp;diff=40</id>
		<title>Feature Proposals</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Feature_Proposals&amp;diff=40"/>
		<updated>2006-11-16T04:19:47Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document contains a list of the problems for which feature requests have been made. Linked problem pages contain the document of the problem and their relevant solutions. Obviously, we want to keep HTML as simple as possible. That means not everyone will get what they want. Having good documentation for the problems at hand will help all of us work out what is most important.&lt;br /&gt;
&lt;br /&gt;
If you want to add a feature request, you should probably start by coping the [[Problem Solving]] template page on a new page and fill as much information as you can.&lt;br /&gt;
&lt;br /&gt;
== Document Markup ==&lt;br /&gt;
* [[Dialogue]]&lt;br /&gt;
* [[Annotation]]&lt;br /&gt;
* [[Footnotes]]&lt;br /&gt;
* [[Sidenotes]]&lt;br /&gt;
* [[Image Caption]]&lt;br /&gt;
* [[Inline Math]]&lt;br /&gt;
&lt;br /&gt;
== DOM Scripting ==&lt;br /&gt;
* [[Text in Canvas]]&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
* [[Link Hashes]]&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Problem_Solving&amp;diff=44</id>
		<title>Problem Solving</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Problem_Solving&amp;diff=44"/>
		<updated>2006-11-16T03:19:39Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an empty page that describes what should be documented about a problem and the different solutions proposed to address it. Feel free to copy this template to when creating a new page.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Brief description of the problem to solve.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
:&#039;&#039;Complete description of the problem, explanation of why the current markup is insufficient, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Possible Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== My Solution ===&lt;br /&gt;
:&#039;&#039;Brief description of the solution and of how it address the problem at hand.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
:&#039;&#039;Explanation of the changes introduced by this solution. It explains how the document is processed, and how errors are handled. This should be very clear, including things such as event timing if the solution involves events, how to create graphs representing the data in the case of semantic proposals, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Limitations ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
:&#039;&#039;Description of how and why browser vendors would take advantage of this feature.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
:&#039;&#039;Reasons why page authors would use this solution.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
:&#039;&#039;Some evidence is there that this feature is desparately needed on the web.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Problem_Solving&amp;diff=39</id>
		<title>Problem Solving</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Problem_Solving&amp;diff=39"/>
		<updated>2006-11-16T03:19:03Z</updated>

		<summary type="html">&lt;p&gt;Michel Fortin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an empty page that describes what should be documented about a problem and the different solutions proposed to address it. Feel free to copy this template to when creating a new page.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Brief description of the problem to solve.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Problem Description ==&lt;br /&gt;
:&#039;&#039;Complete description of the problem, explanation of why the current markup is insufficient, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Possible Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== My Solution ===&lt;br /&gt;
:&#039;&#039;Brief description of the solution and of how it address the problem at hand.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Details ====&lt;br /&gt;
:&#039;&#039;Explanation of the changes introduced by this solution. It explains how the document is processed, and how errors are handled. This should be very clear, including things such as event timing if the solution involves events, how to create graphs representing the data in the case of semantic proposals, etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Limitations and Other Problems ==== &lt;br /&gt;
:&#039;&#039;Cases not covered by this solution in relation to the problem description; other problems with this solution, if any.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Implementation ==== &lt;br /&gt;
:&#039;&#039;Description of how and why browser vendors would take advantage of this feature.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Adoption ==== &lt;br /&gt;
:&#039;&#039;Reasons why page authors would use this solution.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
:&#039;&#039;Some evidence is there that this feature is desparately needed on the web.&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Michel Fortin</name></author>
	</entry>
</feed>