<?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=JimJJewett</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=JimJJewett"/>
	<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/wiki/Special:Contributions/JimJJewett"/>
	<updated>2026-05-07T04:25:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Why_not_reuse_legend&amp;diff=4074</id>
		<title>Why not reuse legend</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Why_not_reuse_legend&amp;diff=4074"/>
		<updated>2009-09-17T14:13:34Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: point to Maciej Stachowiak&amp;#039;s summary; explain the problem&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tables and figures should have captions, or at least legends.&lt;br /&gt;
&lt;br /&gt;
Lists sometimes need headers.&lt;br /&gt;
&lt;br /&gt;
The dt element is sometimes a mini-header.&lt;br /&gt;
&lt;br /&gt;
label can be viewed as a mini-header.&lt;br /&gt;
&lt;br /&gt;
Why are there so many similar elements, and why are they not being re-used?&lt;br /&gt;
&lt;br /&gt;
Unfortunately, each of the existing elements has some behavior (in practice, at least) that causes technical problems when trying to reuse them.&lt;br /&gt;
&lt;br /&gt;
[http://lists.w3.org/Archives/Public/public-html/2009Sep/0652.html summary by Maciej Stachowiak]&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=FAQ&amp;diff=4073</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=FAQ&amp;diff=4073"/>
		<updated>2009-09-17T13:57:23Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: /* Is design rationale documented? */ link to problems with caption etc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The WHATWG ==&lt;br /&gt;
&lt;br /&gt;
=== What is the WHATWG? ===&lt;br /&gt;
&lt;br /&gt;
The Web Hypertext Application Technology Working Group (WHATWG) is a growing community of people interested in evolving the Web. It focuses primarily on the development of HTML and APIs needed for Web applications.&lt;br /&gt;
&lt;br /&gt;
The WHATWG was founded by individuals of Apple, the Mozilla Foundation, and Opera Software in 2004, after a W3C workshop. Apple, Mozilla and Opera were becoming increasingly concerned about the W3C’s direction with XHTML, lack of interest in HTML and apparent disregard for the needs of real-world authors. So, in response, these organisations set out with a mission to address these concerns and the Web Hypertext Application Technology Working Group was born.&lt;br /&gt;
&lt;br /&gt;
=== What is the WHATWG working on? === &lt;br /&gt;
&lt;br /&gt;
The WHATWG&#039;s main focus is HTML5. The WHATWG also works on Web Workers and occasionally specifications outside WHATWG space are discussed on the WHATWG mailing list and forwarded when appropriate.&lt;br /&gt;
&lt;br /&gt;
In the past it has worked on Web Forms 2.0 and Web Controls 1.0. Web Forms 2.0 has been integrated into HTML5 and Web Controls 1.0 has been abandoned for now, awaiting what [http://www.w3.org/TR/xbl/ XBL 2.0] will bring us.&lt;br /&gt;
&lt;br /&gt;
=== How can I get involved? === &lt;br /&gt;
&lt;br /&gt;
There are lots of ways you can get involved, take a look and see &#039;&#039;[[What you can do]]&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
=== Is participation free? === &lt;br /&gt;
&lt;br /&gt;
Yes, everyone can contribute. There are no memberships fees involved, it&#039;s an open process. You may easily subscribe to the WHATWG [http://whatwg.org/mailing-list mailing lists]. You may also [http://blog.whatwg.org/w3c-restarts-html-effort join the the W3C&#039;s new HTMLWG] by going through the slightly longer application process.&lt;br /&gt;
&lt;br /&gt;
== The WHATWG Process ==&lt;br /&gt;
&lt;br /&gt;
=== How does the WHATWG work? ===&lt;br /&gt;
&lt;br /&gt;
People send e-mail to [http://www.whatwg.org/mailing-list#specs the mailing list]. The editor then reads that [http://www.whatwg.org/issues/ feedback] and, taking it into account along with research, studies, and feedback from many other sources (blogs, forums, IRC, etc) makes language design decisions intended to address everyone&#039;s needs as well as possible while keeping the language consistent.&lt;br /&gt;
&lt;br /&gt;
This continues, with people sending more feedback, until nobody is able to convince the editor to change the spec any more (e.g. because two people want opposite things, and the editor has considered all the information available and decided that one of the two proposals is the better one).&lt;br /&gt;
&lt;br /&gt;
This is not a consensus-based approach -- there&#039;s no guarantee that everyone will be happy! There is also no voting.&lt;br /&gt;
&lt;br /&gt;
There is a small oversight committee (known as the &amp;quot;WHATWG members&amp;quot;, see the [http://www.whatwg.org/charter charter]) who have the authority to override or replace the editor if he starts making bad decisions.&lt;br /&gt;
&lt;br /&gt;
Currently the editor is Ian Hickson.&lt;br /&gt;
&lt;br /&gt;
=== How should tool developers, screen reader developers, browser vendors, search engine vendors, and other implementors interact with the WHATWG? ===&lt;br /&gt;
&lt;br /&gt;
Feedback on a feature should be sent to whatwg@whatwg.org (but you have to [http://whatwg.org/mailing-list#specs join the mailing list] first), or ian@hixie.ch. All feedback will receive a reply in due course.&lt;br /&gt;
&lt;br /&gt;
If you want feedback to be dealt with faster than &amp;quot;eventually&amp;quot;, e.g. because you are about to work on that feature and need the spec to be updated to take into account all previous feedback, let the editor know by either e-mailing him (ian@hixie.ch), or contacting him on [[IRC]] (Hixie on Freenode). Requests for priority feedback handling are handled confidentially so other implementors won&#039;t know that you are working on that feature.&lt;br /&gt;
&lt;br /&gt;
Questions and requests for clarifications should be asked either on the mailing list or on [[IRC]], in the #whatwg channel on Freenode.&lt;br /&gt;
&lt;br /&gt;
=== Is there a process for removing bad ideas from a specification? ===&lt;br /&gt;
&lt;br /&gt;
There are several processes by which we trim weeds from the specifications.&lt;br /&gt;
&lt;br /&gt;
* On a regular basis, especially around explicit call-for-comments, we go through every section and mark areas as being considered for removal. This happened early in 2008 with the data templates, repetition blocks, and DFN-element cross references, for example. If no feedback is received to give us strong reasons to keep such features, then they eventually are removed altogether.&lt;br /&gt;
&lt;br /&gt;
* Anyone can ask for a feature to be removed; such feedback is considered like all other feedback and is based on the merits of the arguments put forward.&lt;br /&gt;
&lt;br /&gt;
* If browsers don&#039;t widely implement a feature, or if authors don&#039;t use a feature, or if the uses of the feature are inconsequential of fundamentally wrong or damaging, then, after due consideration, features will be removed.&lt;br /&gt;
&lt;br /&gt;
Removing features is a critical part of spec development.&lt;br /&gt;
&lt;br /&gt;
=== Is there a process for adding new features to a specification? ===&lt;br /&gt;
&lt;br /&gt;
The process is rather informal, but basically boils down to this:&lt;br /&gt;
# Research the use cases and requirements by discussing the issue with authors and implementors.&lt;br /&gt;
# Come up with a clear description of the problem that needs to be solved.&lt;br /&gt;
# Discuss your proposal with authors and implementors. Read the responses. Listen to the feedback. Consider whether your ideas are good solutions to the use cases and requirements put forward. Discussions here should be done in public, e.g. on an archived public mailing list or documented in blogs.&lt;br /&gt;
# Get implementors to commit to implementing the feature. If you can&#039;t get several implementors to implement the feature, then get at least one user agent to implement it experimentally. Experimental implementations should be publicly available.&lt;br /&gt;
# Bring the experimental implementations to the attention of the spec&#039;s editor. Document the experience found from any implementations, the use cases and requirements that were found in the first step, the data that the design was based on.&lt;br /&gt;
# Demonstrate the importance of the problem. Demonstrate that the solution is one that will be used correctly and widely enough for it to solve the stated problem.&lt;br /&gt;
# Participate in the subsequent design discussions, considering all the proposals carefully. Typically at this step the original design gets thrown out and a significantly better design is developed, informed by the previous research, new research, and implementation and author experience with experimental implementations. Sometimes, the idea is abandoned at this stage.&lt;br /&gt;
&lt;br /&gt;
If the idea survives the above design process, the spec will be eventually updated to reflect the new design. Implementations will then be updated to reflect the new design (if they aren&#039;t, that indicates the new design is not good, and it will be reworked or removed). The spec will be updated to fix the many problems discovered by authors and implementors, over a period of several years, as more authors and implementors are exposed to the design. Eventually, a number of provably interoperable implementations are deployed. At this point development of the feature is somewhat frozen.&lt;br /&gt;
&lt;br /&gt;
Writing a comprehensive test suite is also an important step, which should start a bit before implementations start being written to the spec. (Test suites usually find as many problems with implementations as they do with the spec; they aren&#039;t just for finding browser bugs.) We don&#039;t yet have a good story with respect to test suites, sadly. If you want to help us out, let the mailing list know! Be aware, though, it&#039;s a lot of work.&lt;br /&gt;
&lt;br /&gt;
== HTML5 ==&lt;br /&gt;
&lt;br /&gt;
=== What is HTML5? === &lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/ HTML5] is the main focus of the WHATWG community and also that of the W3C HTML Working Group. HTML5 is a new version of HTML4, XHTML1, and DOM Level 2 HTML addressing many of the issues of those specifications while at the same time enhancing (X)HTML to more adequately address Web applications. Besides defining a markup language that can be written in both HTML (HTML5) and XML (XHTML5) it also defines many APIs that form the basis of the Web architecture. Some of these APIs were known as &amp;quot;DOM Level 0&amp;quot; and were never documented before. Yet they are extremely important for browser vendors to support existing Web content and for authors to be able to build Web applications.&lt;br /&gt;
&lt;br /&gt;
=== How can I keep track of changes to the spec? === &lt;br /&gt;
&lt;br /&gt;
The specification is available in the [http://svn.whatwg.org/ subversion repository]. You may use any svn client to check out the latest version and use your clients diff tools in order compare revisions and see what has been changed. You may also use the online [http://html5.org/tools/web-apps-tracker (X)HTML5 Tracking]. The tool provides an online interface for selecting and comparing revisions of the spec.&lt;br /&gt;
&lt;br /&gt;
=== When will HTML5 be finished? ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Finished&amp;quot; is a big deal... You&#039;ll be able to use HTML5 long before then. See [[FAQ#When_will_we_be_able_to_start_using_these_new_features.3F|When will we be able to start using these new features?]]&lt;br /&gt;
&lt;br /&gt;
It is estimated by the editor that HTML5 will reach the W3C Candidate Recommendation stage during 2012. That doesn&#039;t mean you can&#039;t start using it yet, though. Different parts of the specification are at different maturity levels. Some sections are already relatively stable and there are implementations that are already quite close to completion, and those features can be used today (e.g. &amp;amp;lt;canvas&amp;amp;gt;). But other sections are still being actively worked on and changed regularly, or not even written yet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can see annotations in the margins showing the estimated stability of each section.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The possible states are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Idea; yet to be specified&#039;&#039; -- the section is a placeholder.&lt;br /&gt;
* &#039;&#039;First draft&#039;&#039; -- An early stage.&lt;br /&gt;
* &#039;&#039;Working draft&#039;&#039; -- An early stage, but more mature than just &amp;quot;first draft&amp;quot;.&lt;br /&gt;
* &#039;&#039;Last call for comments&#039;&#039; -- The section is nearly done, but there may be feedback still to be processed. Send feedback sooner rather than later, or it might be too late.&lt;br /&gt;
* &#039;&#039;Awaiting implementation feedback&#039;&#039; -- The section is basically done, but might change in response to feedback from implementors. Major changes are unlikely past this point unless it is found that the feature, as specified, really doesn&#039;t work well.&lt;br /&gt;
* &#039;&#039;Implemented and widely deployed&#039;&#039; -- the feature is specified and complete. Once a section is interoperably implemented, it&amp;amp;#8217;s quite stable and unlikely to change significantly. Any changes to such a section would most likely only be editorial in nature, particularly if the feature is already in widespread use.&lt;br /&gt;
&lt;br /&gt;
There are also two special states:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Being edited right now&#039;&#039; -- the section is in high flux and is actively being edited. Contact Hixie on [[IRC]] if you have immediate feedback.&lt;br /&gt;
* &#039;&#039;Being considered for removal&#039;&#039; -- for one reason or another, the section is being considered for removal. Send feedback soon to help with the decision.&lt;br /&gt;
&lt;br /&gt;
The point to all this is that you shouldn&amp;amp;#8217;t place too much weight on the status of the specification as a whole. You need to consider the stability and maturity level of each section individually.&lt;br /&gt;
&lt;br /&gt;
It is estimated, again by the editor, that HTML5 will reach a W3C recommendation in the year 2022 or later. This will be approximately 18-20 years of development, since beginning in mid-2004. That&#039;s actually not that crazy, though. Work on HTML4 started in the mid 90s, and HTML4 &#039;&#039;still&#039;&#039;, more than ten years later, hasn&#039;t reached the level that we want to reach with HTML5. There is no real test suite, there are many parts of the spec that are lacking real implementations, there are big parts that aren&#039;t interoperable, and the spec has hundreds if not thousands of known errors that haven&#039;t been fixed. When HTML4 came out, REC meant something much less exciting than it does now.&lt;br /&gt;
&lt;br /&gt;
For a spec to become a REC today, it requires two 100% complete and fully interoperable implementations, which is proven by each successfully passing literally thousands of test cases (20,000 tests for the whole spec would probably be a conservative estimate). When you consider how long it takes to write that many test cases and how long it takes to implement each feature, you&amp;amp;#8217;ll begin to understand why the time frame seems so long.&lt;br /&gt;
&lt;br /&gt;
(In the interests of full disclosure, the W3C&#039;s [http://www.w3.org/2007/03/HTML-WG-charter.html#deliverables official line] is that the HTML5 spec will be complete, with interoperable implementations, in late 2010. However, that same timetable gave a date for First Public Working Draft that was eight months premature, and the W3C, as of the predicted date for the third milestone, Candidate Recommendation, had still not come anywhere near reaching the second milestone, Last Call. You can make your own judgements regarding the W3C timetable&#039;s credibility.)&lt;br /&gt;
&lt;br /&gt;
=== What about Microsoft and Internet Explorer? === &lt;br /&gt;
&lt;br /&gt;
Microsoft has already started implementing parts of HTML5 in IE8.&lt;br /&gt;
&lt;br /&gt;
HTML5 is being developed with compatibility with existing browsers in mind, though (including IE). Support for many features can be simulated using JavaScript.&lt;br /&gt;
&lt;br /&gt;
=== Is design rationale documented? ===&lt;br /&gt;
&lt;br /&gt;
Sort of. Often the documentation can be found in the mailing list or IRC channel archives. Sometimes an issue was raised formally, and resolution is recorded in the issue tracker. Sometimes, there is an explanation in the specification, but doing that everywhere would make the specification huge.&lt;br /&gt;
&lt;br /&gt;
For a few cases that someone did take the time document, the information can be found at the following locations:&lt;br /&gt;
&lt;br /&gt;
* [[WhyNoNameSpaces]]&lt;br /&gt;
* [[WhyNoScriptImplements]]&lt;br /&gt;
* [[WhyNotReuseLegend]] -- or another &#039;&#039;mini-header&#039;&#039; element.&lt;br /&gt;
&lt;br /&gt;
Also see HTML5 feature proposals below.&lt;br /&gt;
&lt;br /&gt;
== HTML5 syntax issues ==&lt;br /&gt;
&lt;br /&gt;
=== Will HTML5 finally put an end to the XHTML as &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt; debate? === &lt;br /&gt;
&lt;br /&gt;
Yes. Unlike HTML4 and XHTML1, the choice of HTML or XHTML is solely dependent upon the choice of the media type, rather than the DOCTYPE. See [[HTML vs. XHTML]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== What will the DOCTYPE be? === &lt;br /&gt;
&lt;br /&gt;
In HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;amp;lt;!DOCTYPE html&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In XHTML: no DOCTYPE is required and its use is generally unnecessary.  However, you may use one if you want (see the following question).  Note that the above is well-formed XML and so it may also appear in XHTML documents.&lt;br /&gt;
&lt;br /&gt;
For compatibility with legacy producers designed for outputting HTML, but which are unable to easily output the above DOCTYPE, this alternative legacy-compat version may be used instead.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;amp;lt;!DOCTYPE html SYSTEM &amp;quot;about:legacy-compat&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that this is &#039;&#039;&#039;not&#039;&#039;&#039; intended for dealing with any compatibility issues with legacy browsers.  It is meant for legacy authoring tools only.&lt;br /&gt;
&lt;br /&gt;
Excluding the string &amp;lt;code&amp;gt;&amp;quot;about:legacy-compat&amp;quot;&amp;lt;/code&amp;gt;, the DOCTYPE is case insensitive in HTML.  In XHTML, it is case sensitive and must be either of the two variants given above.  For this reason, the DOCTYPEs given above are recommended to be used over other case variants, such as &amp;lt;code&amp;gt;&amp;amp;lt;!DOCTYPE HTML&amp;amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;lt;!doctype html&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These alternatives were chosen because they meet the following criteria:&lt;br /&gt;
&lt;br /&gt;
* They trigger standards mode in all current and all relevant legacy browsers.&lt;br /&gt;
* They are well-formed in XML and can appear in XHTML documents.&lt;br /&gt;
* It is possible to output at least one of the alternatives, if not both, with extant markup generators.&lt;br /&gt;
* They intentionally contain no language version identifier so the DOCTYPE will remain usable for all future revisions of HTML.&lt;br /&gt;
* The first is short and memorable to encourage its use.&lt;br /&gt;
* The legacy-compat DOCTYPE is intentionally unattractive and self descriptive of purpose to discourage unnecessary use.&lt;br /&gt;
&lt;br /&gt;
=== Under what conditions should a DOCTYPE be used in XHTML? ===&lt;br /&gt;
&lt;br /&gt;
Generally, the use of a DOCTYPE in XHTML is unnecessary.  However, there are cases where inclusion of a DOCTYPE is a reasonable thing to do:&lt;br /&gt;
&lt;br /&gt;
# The document is intended to be a polyglot document that may be served as both HTML or XHTML.&lt;br /&gt;
# You wish to declare entity references for use within the document.  Note that most browsers only read the internal subset and do not retrieve external entities. (This is not compatible with HTML, and thus not suitable for polyglot documents.)&lt;br /&gt;
# You wish to use a custom DTD for DTD-based validation. But take note of [http://about.validator.nu/#faq what&#039;s wrong with DTDs].&lt;br /&gt;
&lt;br /&gt;
=== How are pre-HTML5 documents parsed? ===&lt;br /&gt;
&lt;br /&gt;
All documents with a text/html media type (that is, including those without or with an HTML 2.0, HTML 3.2, HTML4, or XHTML1 DOCTYPE) will be parsed using the same parser algorithm as defined by HTML5. This matches what Web browsers have done for HTML documents so far and keeps code complexity down. That in turn is good for security, maintainability, and in general keeping the amount of bugs down. The HTML syntax of HTML5 therefore does not require a new parser and documents with an HTML4 DOCTYPE for example will be parsed using the HTML5 parser.&lt;br /&gt;
&lt;br /&gt;
Validators are allowed to have different code paths for previous levels of HTML.&lt;br /&gt;
&lt;br /&gt;
=== If there is no DTD, how can I validate my page? === &lt;br /&gt;
&lt;br /&gt;
With an [http://validator.whatwg.org/ HTML5 validator].&lt;br /&gt;
&lt;br /&gt;
=== What is an HTML Serialization? === &lt;br /&gt;
&lt;br /&gt;
The HTML serialization refers to the syntax of an HTML document defined in HTML5. The syntax is inspired by the SGML syntax from earlier versions of HTML, bits of XML (e.g. allowing a trailing slash on void elements, xmlns attributes), and reality of deployed content on the Web.&lt;br /&gt;
&lt;br /&gt;
Any document whose MIME type is determined to be &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt; is considered to be an HTML serialization and must be parsed using an HTML parser.&lt;br /&gt;
&lt;br /&gt;
=== What is an XML (or XHTML) Serialization? === &lt;br /&gt;
&lt;br /&gt;
The XML Serialization refers to the syntax defined by XML 1.0 and Namespaces in XML 1.0. A resource that has an XML MIME type, such as &amp;lt;code&amp;gt;application/xhtml+xml&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;application/xml&amp;lt;/code&amp;gt;, is an XML document and if it uses elements in the HTML namespace, it contains XHTML. If the root element is &amp;amp;#8220;html&amp;amp;#8221; in the HTML namespace, the document is referred to as an XHTML document.&lt;br /&gt;
&lt;br /&gt;
=== What MIME type does HTML5 use? === &lt;br /&gt;
&lt;br /&gt;
The HTML serialization &#039;&#039;must&#039;&#039; be served using the &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt; MIME type.&lt;br /&gt;
&lt;br /&gt;
The XHTML serialization &#039;&#039;must&#039;&#039; be served using an XML MIME type, such as &amp;lt;code&amp;gt;application/xhtml+xml&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;application/xml&amp;lt;/code&amp;gt;. Unlike XHTML1, XHTML5 &#039;&#039;must not&#039;&#039; be served as &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Using the incorrect MIME type (&amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;) for XHTML will cause the document to be parsed according to parsing requirements for HTML. In other words, it will be treated as tag soup. Ensuring the use of an XML MIME type is the only way to ensure that browsers handle the document as XML.&lt;br /&gt;
&lt;br /&gt;
=== Should I close empty elements with &amp;lt;code&amp;gt;/&amp;amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;? === &lt;br /&gt;
&lt;br /&gt;
Void elements in HTML (e.g. the &amp;lt;code&amp;gt;br&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; elements) do not require a trailing slash. e.g. Instead of writing &amp;lt;code&amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt;, you only need to write &amp;lt;code&amp;gt;&amp;amp;lt;br&amp;amp;gt;&amp;lt;/code&amp;gt;. This is the same as in HTML4. However, due to the widespread attempts to use XHTML1, there are a significant number of pages using the trailing slash. Because of this, the trailing slash syntax has been permitted on void elements in HTML in order to ease migration from XHTML1 to HTML5.&lt;br /&gt;
&lt;br /&gt;
HTML5 also introduces the ability to embed MathML elements. On elements inside a &amp;lt;code&amp;gt;math&amp;lt;/code&amp;gt; element the trailing slash works just like it does in XML. I.e. it closes the element. This is only inside that context however, it does not work for normal HTML elements.&lt;br /&gt;
&lt;br /&gt;
=== If I&amp;amp;#8217;m careful with the syntax I use in my HTML document, can I process it with an XML parser? === &lt;br /&gt;
&lt;br /&gt;
No, HTML and XML have [[HTML_vs._XHTML#Differences_Between_HTML_and_XHTML|many significant differences]], particularly parsing requirements, and you cannot process one using tools designed for the other. However, since HTML5 is defined in terms of the DOM, in most cases there are both HTML and XHTML serializations available that can represent the same document. There are, however, a few differences explained later that make it impossible to represent some HTML documents accurately as XHTML and vice versa. &lt;br /&gt;
&lt;br /&gt;
If you wish to process an HTML document as XHTML, it requires that you and convert it into XHTML first; and vice versa for processing XHTML as HTML.&lt;br /&gt;
&lt;br /&gt;
=== What is the namespace declaration? === &lt;br /&gt;
&lt;br /&gt;
In XHTML, you are required to specify the [http://www.w3schools.com/xml/xml_namespaces.asp namespace.]&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In HTML, the &amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute is currently allowed on any HTML element, but only if it has the value &amp;amp;#8220;&amp;lt;code&amp;gt;http://www.w3.org/1999/xhtml&amp;lt;/code&amp;gt;&amp;amp;#8220;. It doesn&amp;amp;#8217;t do anything at all, it is merely allowed to ease migration from XHTML1. It is not actually a namespace declaration in HTML, because HTML doesn&amp;amp;#8217;t yet support namespaces.  See the question [[FAQ#Will_there_be_support_for_namespaces_in_HTML.3F|will there be support for namespaces in HTML]].&lt;br /&gt;
&lt;br /&gt;
=== Will there be support for namespaces in HTML? === &lt;br /&gt;
&lt;br /&gt;
HTML5 is being defined in terms of the DOM and during parsing of a text/html all HTML elements will be automatically put in the HTML namespace, &amp;lt;code&amp;gt;http://www.w3.org/1999/xhtml&amp;lt;/code&amp;gt;. However, unlike the XHTML serialization, there is no real namespace syntax available in the HTML serialization (see previous question). In other words, you do not need to declare the namespace in your HTML markup, as you do in XHTML. However, you are permitted to put an &amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute on each HTML element as long as the namespace is &amp;lt;code&amp;gt;http://www.w3.org/1999/xhtml&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In addition, the HTML syntax provides for a way to embed elements from MathML and SVG. Elements placed inside the container element &amp;lt;code&amp;gt;math&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;svg&amp;lt;/code&amp;gt; will automatically be put in the MathML namespace or the SVG namespace, respectively, by the parser. Namespace syntax is not required, but again an &amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute is allowed if its value is the right namespace.&lt;br /&gt;
&lt;br /&gt;
In conclusion, while HTML5 does not allow the XML namespace syntax, there is a way to embed MathML and SVG and the xmlns attribute can be used on any element under the given constraints, in a way that is reasonably compatible on the DOM level.&lt;br /&gt;
&lt;br /&gt;
=== How do I specify the character encoding? === &lt;br /&gt;
&lt;br /&gt;
For HTML, it is strongly recommended that you specify the encoding using the HTTP &amp;lt;code&amp;gt;Content-Type&amp;lt;/code&amp;gt; header. If you are unable to [http://www.w3.org/International/O-HTTP-charset configure your server] to send the correct headers, then you may use the &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element:&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;
The following restrictions apply to character encoding declarations:&lt;br /&gt;
&lt;br /&gt;
* The character encoding name given must be the name of the character encoding used to serialize the file.&lt;br /&gt;
* The value must be a [http://www.iana.org/assignments/character-sets valid character encoding name], and must be the preferred name for that encoding.&lt;br /&gt;
* The character encoding declaration must be serialized without the use of character references or character escapes of any kind.&lt;br /&gt;
* The &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element used for this purpose must occur within the first 512 bytes of the file.  It is considered good practice for this to be the first child of the &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; element so that it is as close to the beginning of the file as possible.&lt;br /&gt;
&lt;br /&gt;
Note that this &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element is different from HTML 4, though it is compatible with many browsers because of the way encoding detection has been implemented.&lt;br /&gt;
&lt;br /&gt;
For polyglot documents, which may be served as either HTML or XHTML, you may also include that in XHTML documents, but only if the encoding is &amp;quot;UTF-8&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To ease transition from HTML4 to HTML5, although the former is the recommended syntax, you may also use the following. (This does not apply to XHTML or polyglot documents)&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 XHTML, XML rules for determining the character encoding apply.  The meta element is never used for determining the encoding of an XHTML document (although it may appear in UTF-8 encoded XHTML documents).  You should use either the HTTP &amp;lt;code&amp;gt;Content-Type&amp;lt;/code&amp;gt; header or the XML declaration to specify the encoding.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, you must use the default of &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;. It is recommended that you use &amp;lt;code&amp;gt;UTF-8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== What are the differences between HTML and XHTML? === &lt;br /&gt;
&lt;br /&gt;
See the list of [[HTML vs. XHTML#Differences_Between_HTML_and_XHTML|differences between HTML and XHTML]] in the wiki.&lt;br /&gt;
&lt;br /&gt;
=== What are best practices to be compatible with HTML DOM and XHTML DOM? ===&lt;br /&gt;
&lt;br /&gt;
Though the intent is that HTML and XHTML can both produce identical DOMs, there still are some differences between working with an HTML DOM and an XHTML one.&lt;br /&gt;
&lt;br /&gt;
Case sensitivity :&lt;br /&gt;
* Whenever possible, avoid testing Element.tagName and Node.nodeName (or do toLowerCase() before testing).&lt;br /&gt;
Namespaces:&lt;br /&gt;
* Use the namespace-aware version for creating elements: Document.createElementNS(ns, elementName)&lt;br /&gt;
&lt;br /&gt;
=== Why does HTML5 legitimise tag soup? === &lt;br /&gt;
&lt;br /&gt;
Actually it doesn&amp;amp;#8217;t. This is a misconception that comes from the confusion between conformance requirements for documents, and the requirements for user agents.&lt;br /&gt;
&lt;br /&gt;
Due to the fundamental design principle of supporting existing content, the spec must define how to handle all HTML, regardless of whether documents are conforming or not. Therefore, the spec defines (or will define) precisely how to handle and recover from erroneous markup, much of which would be considered tag soup.&lt;br /&gt;
&lt;br /&gt;
For example, the spec defines algorithms for dealing with syntax errors such as incorrectly nested tags, which will ensure that a well structured DOM tree can be produced.&lt;br /&gt;
&lt;br /&gt;
Defining that is essential for one day achieving interoperability between browsers and reducing the dependence upon reverse engineering each other.&lt;br /&gt;
&lt;br /&gt;
However, the conformance requirements for authors are defined separately from the processing requirements. Just because browsers are required to handle erroneous content, it does not make such markup conforming.&lt;br /&gt;
&lt;br /&gt;
For example, user agents will be required to support the marquee element, but authors must not use the marquee element in conforming documents.&lt;br /&gt;
&lt;br /&gt;
It is important to make the distinction between the rules that apply to user agents and the rules that apply to authors for producing conforming documents. They are completely orthogonal.&lt;br /&gt;
&lt;br /&gt;
== HTML5 feature proposals ==&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should support &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; on any element! === &lt;br /&gt;
&lt;br /&gt;
The spec allows &amp;lt;a&amp;gt; to contain blocks. It doesn&#039;t support putting href=&amp;quot;&amp;quot; on any element, though.&lt;br /&gt;
&lt;br /&gt;
Supporting &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; on any element has several problems associated with it that make it difficult to support in HTML5. The main reason this isn&#039;t in HTML5 is that browser vendors have reported that implementing it would be extremely complex. Browser vendors get to decide what they implement, and there&#039;s no point to us telling them to do something they aren&#039;t going to do. In addition:&lt;br /&gt;
&lt;br /&gt;
* It isn&amp;amp;#8217;t backwards compatible with existing browsers.&lt;br /&gt;
* It adds no new functionality that can&amp;amp;#8217;t already be achieved using the &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element and a little script.&lt;br /&gt;
* It doesn&amp;amp;#8217;t make sense for all elements, such as interactive elements like &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;button&amp;lt;/code&amp;gt;, where the use of href would interfere with their normal function.&lt;br /&gt;
&lt;br /&gt;
The only advantage it seems to add is that it reduces typing for authors in some cases, but that is not a strong enough reason to support it in light of the other reasons.&lt;br /&gt;
&lt;br /&gt;
Wrapping &amp;lt;a&amp;gt; elements around blocks solves most use cases. It doesn&#039;t handle making rows in tables into links, though; for those just do something like this instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;tr onclick=&amp;quot;location = this.getElementsByTagName(&#039;a&#039;)[0]&amp;quot;&amp;gt; ... &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should support list headers! ===&lt;br /&gt;
&lt;br /&gt;
You can give a header to a list using the &amp;lt;figure&amp;gt; and &amp;lt;legend&amp;gt; elements:&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;Apples&amp;lt;/legend&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Granny Smith&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Evil Apple of Knowledge&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Apple, Inc&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
 &amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also label a group of lists using a definition list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;dl&amp;gt;&lt;br /&gt;
  &amp;lt;dt&amp;gt;Dry:&amp;lt;/dt&amp;gt;&lt;br /&gt;
  &amp;lt;dd&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;  &lt;br /&gt;
    &amp;lt;li&amp;gt;1c flour&amp;lt;/li&amp;gt;  &lt;br /&gt;
    &amp;lt;li&amp;gt;1/4c sugar&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;1tsp baking soda&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/dd&amp;gt;&lt;br /&gt;
  &amp;lt;dt&amp;gt;Wet:&amp;lt;/dt&amp;gt;&lt;br /&gt;
  &amp;lt;dd&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;  &lt;br /&gt;
    &amp;lt;li&amp;gt;1 egg &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;1/2c milk&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;1tsp vanilla extract&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/dd&amp;gt;&lt;br /&gt;
 &amp;lt;/dl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These techniques are preferred over adding an &amp;lt;lh&amp;gt; element as proposed in the old HTML3 draft, mostly because of thorny issues with parsing near &amp;amp;lt;li&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should support a way for anyone to invent new elements! ===&lt;br /&gt;
&lt;br /&gt;
There are actually quite a number of ways for people to invent their own extensions to HTML:&lt;br /&gt;
&lt;br /&gt;
* Authors can use the &#039;&#039;class&#039;&#039; attribute to extend elements, effectively creating their own elements, while using the most applicable existing &amp;quot;real&amp;quot; HTML element, so that browsers and other tools that don&#039;t know of the extension can still support it somewhat well. This is the tack used by Microformats, for example.&lt;br /&gt;
* Authors can include data for scripts to process using the &#039;&#039;data-*=&amp;quot;&amp;quot;&#039;&#039; attributes. These are guaranteed to never be touched by browsers, and allow scripts to include data on HTML elements that scripts can then look for and process.&lt;br /&gt;
* Authors can use the &#039;&#039;&amp;lt;meta name=&amp;quot;&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;&#039;&#039; mechanism to include page-wide metadata. Names should be registered on the wiki&#039;s [[MetaExtensions]] page.&lt;br /&gt;
* Authors can use the &#039;&#039;rel=&amp;quot;&amp;quot;&#039;&#039; mechanism to annotate links with specific meanings. This is also used by Microformats. Names should be registered on the wiki&#039;s [[RelExtensions]] page.&lt;br /&gt;
* Authors can embed raw data using the &#039;&#039;&amp;lt;script type=&amp;quot;&amp;quot;&amp;gt;&#039;&#039; mechanism with a custom type, for further handling by a script.&lt;br /&gt;
* Authors can create plugins and invoke them using the &#039;&#039;&amp;lt;embed&amp;gt;&#039;&#039; element. This is how Flash works.&lt;br /&gt;
* Authors can extend APIs using the JS prototyping mechanism. This is widely used by script libraries, for instance.&lt;br /&gt;
* Authors can use the microdata feature (the item=&amp;quot;&amp;quot; and itemprop=&amp;quot;&amp;quot; attributes) to embed nested name-value pairs of data to be shared with other applications and sites.&lt;br /&gt;
* Authors can propose new elements and attributes to the working group and, if the wider community agrees that they are worth the effort, they are added to the language. (If an addition is urgent, please let us know when proposing it, and we will try to address it quickly.)&lt;br /&gt;
&lt;br /&gt;
There is currently no mechanism for introducing new proprietary features in HTML documents (i.e. for introducing new elements and attributes) without discussing the extension with user agent vendors and the wider Web community. This is intentional; we don&#039;t want user agents inventing their own proprietary elements and attributes like in the &amp;quot;bad old days&amp;quot; without working with interested parties to make sure their feature is well designed.&lt;br /&gt;
&lt;br /&gt;
We request that people not invent new elements and attributes to add to HTML without first contacting the working group and getting a proposal discussed with interested parties.&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should group &amp;amp;lt;dt&amp;gt;s and &amp;amp;lt;dd&amp;gt;s together in &amp;lt;di&amp;gt;s! === &lt;br /&gt;
&lt;br /&gt;
This is a styling problem and should be fixed in CSS. There&#039;s no reason to add a grouping element to HTML, as the semantics are already unambiguous.&lt;br /&gt;
&lt;br /&gt;
=== Why are some presentational elements like &amp;amp;lt;b&amp;gt;, &amp;amp;lt;i&amp;gt; and &amp;amp;lt;small&amp;gt; still included? ===&lt;br /&gt;
&lt;br /&gt;
The inclusion of these elements is a largely pragmatic decision based upon their widespread usage, and their usefulness for use cases which are not covered by more specific elements.&lt;br /&gt;
&lt;br /&gt;
While there are a number of common use cases for italics which are covered by more specific elements, such as emphasis (em), citations (cite), definitions (dfn) and variables (var), there are many other use cases which are not covered well by these elements.  For example, a taxonomic designation, a technical term, an idiomatic phrase from another language, a thought, or a ship name.&lt;br /&gt;
&lt;br /&gt;
Similarly, although a number of common use cases for bold text are also covered by more specific elements such as strong emphasis (strong), headings (h1-h6) or table headers (th); there are others which are not, such as key words in a document abstract or product names in a review.&lt;br /&gt;
&lt;br /&gt;
Some people argue that in such cases, the span element should be used with an appropriate class name and associated stylesheet.  However, the b and i elements provide for a reasonable fallback styling in environments that don&#039;t support stylesheets or which do not render visually, such as screen readers, and they also provide some indication that the text is somehow distinct from its surrounding content.&lt;br /&gt;
&lt;br /&gt;
In essence, they convey distinct, though non-specific, semantics, which are to be determined by the reader in the context of their use. In other words, although they don’t convey specific semantics by themselves, they indicate that that the content is somehow distinct from its surroundings and leaves the interpretation of the semantics up to the reader.&lt;br /&gt;
&lt;br /&gt;
This is further explained in the article &amp;lt;cite&amp;gt;[http://lachy.id.au/log/2007/05/b-and-i The &amp;amp;lt;b&amp;gt; and &amp;amp;lt;i&amp;gt; Elements]&amp;lt;/cite&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, the small element is defined for content that is commonly typographically rendered in small print, and which often referred to as fine print.  This could include copyright statements, disclaimers and other legal text commonly found at the end of a document.&lt;br /&gt;
&lt;br /&gt;
==== But they are PRESENTATIONAL! ====&lt;br /&gt;
&lt;br /&gt;
While &amp;amp;lt;b&amp;gt;, &amp;amp;lt;i&amp;gt; and &amp;amp;lt;small&amp;gt; historically have been presentational, they are defined in a media-independent manner in HTML5. For example, &amp;amp;lt;small&amp;gt; corresponds to the really quickly spoken part at the end of radio advertisements. The problem with elements like &amp;amp;lt;font&amp;gt; isn&#039;t that they are &#039;&#039;presentational&#039;&#039; per se, it&#039;s that they are media-dependent (they apply to visual browsers but not to speech browsers).&lt;br /&gt;
&lt;br /&gt;
=== The &amp;amp;lt;cite&amp;gt; element should allow names of people to be marked up ===&lt;br /&gt;
&lt;br /&gt;
From what we&#039;ve seen, &amp;amp;lt;cite&amp;gt; is almost always used to mean &amp;quot;italics&amp;quot;. More careful authors have used the element to mark up names and titles, and some people have gone out of their way to only mark up citations.&lt;br /&gt;
&lt;br /&gt;
So, we can&#039;t really decide what the element should be based on past practice, like we usually do.&lt;br /&gt;
&lt;br /&gt;
This leaves the question of what is the most useful use we can put the element to, if we keep it. The conclusion so far has been that the most useful use for &amp;amp;lt;cite&amp;gt; is as an element to allow typographic control over titles, since those are often made italics, and that semantic is roughly close to what it meant in previous versions, and happens to match at least one of the common uses for the element. Generally, however, names and titles aren&#039;t typeset the same way, so making the element apply to both would lead to confusing typography.&lt;br /&gt;
&lt;br /&gt;
There are already many ways of marking up names already (e.g. the hCard Microformat, the microdata vCard vocabulary, &amp;amp;lt;span&amp;gt; and class names, etc), if you really need it.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;amp;lt;time&amp;gt; element should allow vague times (&amp;quot;March&amp;quot;) and times from ancient history to be marked up ===&lt;br /&gt;
&lt;br /&gt;
This has been discussed a number of times. For an overview of the topic, please see these e-mails:&lt;br /&gt;
* http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/018888.html&lt;br /&gt;
* http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-August/021745.html&lt;br /&gt;
At this stage, as discussed in the second of those e-mails, the best way forward is to demonstrate that there are communities interested in solving this problem, by using existing techniques such as microdata to address it. If such a solution achieves a high adoption rate, that will substantially increase the strength of the proposals.&lt;br /&gt;
&lt;br /&gt;
== WHATWG and the W3C HTML WG ==&lt;br /&gt;
&lt;br /&gt;
=== Are there plans to merge the groups? ===&lt;br /&gt;
&lt;br /&gt;
Not especially. There are people who for a number of reasons are unable to join the W3C group, and there are others who are unable to join the WHATWG group. The editor is in both groups and takes all input into account -- and there are far more places where input on HTML5 is sent than just these two mailing lists (e.g. blogs, www-html@w3.org, forums, direct mail, meetings, etc).&lt;br /&gt;
&lt;br /&gt;
=== Which group has authority in the event of a dispute? ===&lt;br /&gt;
&lt;br /&gt;
The editor takes feedback from everyone into account and does not look at the source of those arguments for technical arguments.&lt;br /&gt;
&lt;br /&gt;
=== What is the history of HTML? ===&lt;br /&gt;
&lt;br /&gt;
Here are some documents that detail the history of HTML:&lt;br /&gt;
* [http://esw.w3.org/topic/HTML/history HTML&#039;s timeline on the ESW wiki]&lt;br /&gt;
* [http://www.whatwg.org/specs/web-apps/current-work/multipage/introduction.html#history0 The history section in HTML5 itself]&lt;br /&gt;
&lt;br /&gt;
== Web Workers ==&lt;br /&gt;
&lt;br /&gt;
Besides HTML5 the WHATWG works on [http://www.whatwg.org/specs/web-workers/current-work/ Web Workers]. It does this together with the W3C WebApps Working Group.&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
=== Should I top-post or reply inline? ===&lt;br /&gt;
&lt;br /&gt;
Please reply inline or make the reply self-contained.&lt;br /&gt;
&lt;br /&gt;
Basically, please remove anything after the last line you have written, so that people don&#039;t have to scroll down to find out what else you wrote, and make sure that your e-mail makes sense on its own, as it will probably be read out of context years later.&lt;br /&gt;
&lt;br /&gt;
That is, you should reply like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ian wrote:&lt;br /&gt;
&amp;gt; What do you want? &lt;br /&gt;
&lt;br /&gt;
I want cats!&lt;br /&gt;
&lt;br /&gt;
&amp;gt; When do you want it?&lt;br /&gt;
&lt;br /&gt;
Now!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should definitely not reply like this (because this requires people to read your e-mail backwards):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;error&amp;quot; &amp;gt;&lt;br /&gt;
No&lt;br /&gt;
&lt;br /&gt;
Ian wrote:&lt;br /&gt;
&amp;gt; Is this a good example of how to post e-mails?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should also not reply like this (because this leaves people to wonder if there is any text lower down that you have written):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;error&amp;quot; &amp;gt;&lt;br /&gt;
This is a bad way to write e-mail.&lt;br /&gt;
&lt;br /&gt;
Ian wrote:&lt;br /&gt;
&amp;gt; Is this a good way to write e-mail?&lt;br /&gt;
&amp;gt; Lorem ipsum foo bar baz.&lt;br /&gt;
&amp;gt; Unrelated other bits that aren&#039;t replied to.&lt;br /&gt;
&amp;gt; Yet more text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should also not reply like this (with no context at all), because the reader will not know what you are referring to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;error&amp;quot; &amp;gt;&lt;br /&gt;
No, I think that&#039;s a bad idea. It wouldn&#039;t be good for the readers, for instance.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quote enough original text or provide an introduction yourself.&lt;br /&gt;
&lt;br /&gt;
If you use Outlook or Outlook Express, you can use either [http://home.in.tum.de/~jain/software/outlook-quotefix/ Outlook-QuoteFix] or [http://home.in.tum.de/~jain/software/oe-quotefix/ OE-QuoteFix]. These plugins fix several of Outlook&#039;s problems with sending properly formatted emails.&lt;br /&gt;
H&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Why_no_script_implements&amp;diff=4063</id>
		<title>Why no script implements</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Why_no_script_implements&amp;diff=4063"/>
		<updated>2009-09-14T19:02:01Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: create page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Adding the implements attribute to scripts would allow user agents to recognize the purpose of a script, and not bother to download scripts it already had in cache, or for which it provided a native implementation.&lt;br /&gt;
&lt;br /&gt;
Toby Inkster provided a pretty good argument for including it in http://lists.w3.org/Archives/Public/public-html/2009Sep/0538.html&lt;br /&gt;
&lt;br /&gt;
Simon Pieters provided the more subtle counterargument in http://lists.w3.org/Archives/Public/public-html/2009Sep/0540.html&lt;br /&gt;
&lt;br /&gt;
Basically, the warning about how imprecise and unreliable DOM feature testing can be (&lt;br /&gt;
http://dev.w3.org/html5/spec/Overview.html#dom-feature-strings ) would also apply to @implements.&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Why_no_namespaces&amp;diff=4062</id>
		<title>Why no namespaces</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Why_no_namespaces&amp;diff=4062"/>
		<updated>2009-09-14T18:52:20Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: trying to get list right&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In most of computer science, namespaces are a wonderful invention and greatly simplify maintenance.&lt;br /&gt;
&lt;br /&gt;
XML namespaces were intended to provide these advantages to markup languages, and they have had some success within XML, perhaps because its draconian error-handling encourages careful use.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, XML namespaces don&#039;t work so well in HTML -- in practice, the web is more like a bunch of piles than like a well-organized filing cabinet.&lt;br /&gt;
&lt;br /&gt;
Maciej Stachowiak explained some of the problems very well in &lt;br /&gt;
http://lists.w3.org/Archives/Public/public-html/2009Jul/0919.html&lt;br /&gt;
&lt;br /&gt;
An unfairly short summary is that:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Short names like &amp;quot;rdf:&amp;quot; or &amp;quot;foaf:&amp;quot; often work OK, if they are treated as globally unique.  But by definition, they aren&#039;t globally unique, and they really can&#039;t be.  In some cases, HTML has opted to define prefixes itself (such as aria-*), but the general XML solution is to use a URL.  &lt;br /&gt;
&lt;br /&gt;
  Long namespace names, including URLS, are a pain to type, make the code unreadable, and are magnets for cut-and-paste editing which sometimes ends up invalidating the use anyhow.&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Why_no_namespaces&amp;diff=4061</id>
		<title>Why no namespaces</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Why_no_namespaces&amp;diff=4061"/>
		<updated>2009-09-14T18:50:00Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: cleaned up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In most of computer science, namespaces are a wonderful invention and greatly simplify maintenance.&lt;br /&gt;
&lt;br /&gt;
XML namespaces were intended to provide these advantages to markup languages, and they have had some success within XML, perhaps because its draconian error-handling encourages careful use.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, XML namespaces don&#039;t work so well in HTML -- in practice, the web is more like a bunch of piles than like a well-organized filing cabinet.&lt;br /&gt;
&lt;br /&gt;
Maciej Stachowiak explained some of the problems very well in &lt;br /&gt;
http://lists.w3.org/Archives/Public/public-html/2009Jul/0919.html&lt;br /&gt;
&lt;br /&gt;
An unfairly short summary is that&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
+  Short names like &amp;quot;rdf:&amp;quot; or &amp;quot;foaf:&amp;quot; often work OK, if they are treated as globally unique.  But by definition, they aren&#039;t globally unique, and they really can&#039;t be.  In some cases, HTML has opted to define prefixes itself (such as aria-*), but the general XML solution is to use a URL.  &lt;br /&gt;
&lt;br /&gt;
+  Long namespace names, including URLS, are a pain to type, make the code unreadable, and are magnets for cut-and-paste editing which sometimes ends up invalidating the use anyhow.&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Why_no_namespaces&amp;diff=4060</id>
		<title>Why no namespaces</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Why_no_namespaces&amp;diff=4060"/>
		<updated>2009-09-14T18:48:51Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In most of computer science, namespaces are a wonderful invention, that greatly simplify maintenance.&lt;br /&gt;
&lt;br /&gt;
XML namespaces were intended to provide these advantages to markup languages, and they have had some success within XML, perhaps because its draconian error-handling encourages careful use.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, XML namespaces don&#039;t work so well in HTML -- in practice, the web is more like a bunch of piles than like a well-organized filing cabinet.&lt;br /&gt;
&lt;br /&gt;
Maciej Stachowiak explained some of the problems very well in &lt;br /&gt;
http://lists.w3.org/Archives/Public/public-html/2009Jul/0919.html&lt;br /&gt;
&lt;br /&gt;
An unfairly short summary is that&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(a)  Short names like &amp;quot;rdf:&amp;quot; or &amp;quot;foaf:&amp;quot; often work OK, if they are treated as globally unique.  But by definition, they aren&#039;t globally unique, and they really can&#039;t be.  In some cases, HTML has opted to define prefixes itself (such as aria-*), but the general XML solution is to use a URL.  &lt;br /&gt;
&lt;br /&gt;
(b)  Long namespace names, including URLS, are a pain to type, make the code unreadable, and are magnets for cut-and-paste editing which sometimes ends up invalidating the use anyhow.&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=FAQ&amp;diff=4059</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=FAQ&amp;diff=4059"/>
		<updated>2009-09-14T18:38:22Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: /* Is there documentation of the reasoning behind various decisions? */ Make the dead links potentially live&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The WHATWG ==&lt;br /&gt;
&lt;br /&gt;
=== What is the WHATWG? ===&lt;br /&gt;
&lt;br /&gt;
The Web Hypertext Application Technology Working Group (WHATWG) is a growing community of people interested in evolving the Web. It focuses primarily on the development of HTML and APIs needed for Web applications.&lt;br /&gt;
&lt;br /&gt;
The WHATWG was founded by individuals of Apple, the Mozilla Foundation, and Opera Software in 2004, after a W3C workshop. Apple, Mozilla and Opera were becoming increasingly concerned about the W3C’s direction with XHTML, lack of interest in HTML and apparent disregard for the needs of real-world authors. So, in response, these organisations set out with a mission to address these concerns and the Web Hypertext Application Technology Working Group was born.&lt;br /&gt;
&lt;br /&gt;
=== What is the WHATWG working on? === &lt;br /&gt;
&lt;br /&gt;
The WHATWG&#039;s main focus is HTML5. The WHATWG also works on Web Workers and occasionally specifications outside WHATWG space are discussed on the WHATWG mailing list and forwarded when appropriate.&lt;br /&gt;
&lt;br /&gt;
In the past it has worked on Web Forms 2.0 and Web Controls 1.0. Web Forms 2.0 has been integrated into HTML5 and Web Controls 1.0 has been abandoned for now, awaiting what [http://www.w3.org/TR/xbl/ XBL 2.0] will bring us.&lt;br /&gt;
&lt;br /&gt;
=== How can I get involved? === &lt;br /&gt;
&lt;br /&gt;
There are lots of ways you can get involved, take a look and see &#039;&#039;[[What you can do]]&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
=== Is participation free? === &lt;br /&gt;
&lt;br /&gt;
Yes, everyone can contribute. There are no memberships fees involved, it&#039;s an open process. You may easily subscribe to the WHATWG [http://whatwg.org/mailing-list mailing lists]. You may also [http://blog.whatwg.org/w3c-restarts-html-effort join the the W3C&#039;s new HTMLWG] by going through the slightly longer application process.&lt;br /&gt;
&lt;br /&gt;
== The WHATWG Process ==&lt;br /&gt;
&lt;br /&gt;
=== How does the WHATWG work? ===&lt;br /&gt;
&lt;br /&gt;
People send e-mail to [http://www.whatwg.org/mailing-list#specs the mailing list]. The editor then reads that [http://www.whatwg.org/issues/ feedback] and, taking it into account along with research, studies, and feedback from many other sources (blogs, forums, IRC, etc) makes language design decisions intended to address everyone&#039;s needs as well as possible while keeping the language consistent.&lt;br /&gt;
&lt;br /&gt;
This continues, with people sending more feedback, until nobody is able to convince the editor to change the spec any more (e.g. because two people want opposite things, and the editor has considered all the information available and decided that one of the two proposals is the better one).&lt;br /&gt;
&lt;br /&gt;
This is not a consensus-based approach -- there&#039;s no guarantee that everyone will be happy! There is also no voting.&lt;br /&gt;
&lt;br /&gt;
There is a small oversight committee (known as the &amp;quot;WHATWG members&amp;quot;, see the [http://www.whatwg.org/charter charter]) who have the authority to override or replace the editor if he starts making bad decisions.&lt;br /&gt;
&lt;br /&gt;
Currently the editor is Ian Hickson.&lt;br /&gt;
&lt;br /&gt;
=== How should tool developers, screen reader developers, browser vendors, search engine vendors, and other implementors interact with the WHATWG? ===&lt;br /&gt;
&lt;br /&gt;
Feedback on a feature should be sent to whatwg@whatwg.org (but you have to [http://whatwg.org/mailing-list#specs join the mailing list] first), or ian@hixie.ch. All feedback will receive a reply in due course.&lt;br /&gt;
&lt;br /&gt;
If you want feedback to be dealt with faster than &amp;quot;eventually&amp;quot;, e.g. because you are about to work on that feature and need the spec to be updated to take into account all previous feedback, let the editor know by either e-mailing him (ian@hixie.ch), or contacting him on [[IRC]] (Hixie on Freenode). Requests for priority feedback handling are handled confidentially so other implementors won&#039;t know that you are working on that feature.&lt;br /&gt;
&lt;br /&gt;
Questions and requests for clarifications should be asked either on the mailing list or on [[IRC]], in the #whatwg channel on Freenode.&lt;br /&gt;
&lt;br /&gt;
=== Is there a process for removing bad ideas from a specification? ===&lt;br /&gt;
&lt;br /&gt;
There are several processes by which we trim weeds from the specifications.&lt;br /&gt;
&lt;br /&gt;
* On a regular basis, especially around explicit call-for-comments, we go through every section and mark areas as being considered for removal. This happened early in 2008 with the data templates, repetition blocks, and DFN-element cross references, for example. If no feedback is received to give us strong reasons to keep such features, then they eventually are removed altogether.&lt;br /&gt;
&lt;br /&gt;
* Anyone can ask for a feature to be removed; such feedback is considered like all other feedback and is based on the merits of the arguments put forward.&lt;br /&gt;
&lt;br /&gt;
* If browsers don&#039;t widely implement a feature, or if authors don&#039;t use a feature, or if the uses of the feature are inconsequential of fundamentally wrong or damaging, then, after due consideration, features will be removed.&lt;br /&gt;
&lt;br /&gt;
Removing features is a critical part of spec development.&lt;br /&gt;
&lt;br /&gt;
=== Is there a process for adding new features to a specification? ===&lt;br /&gt;
&lt;br /&gt;
The process is rather informal, but basically boils down to this:&lt;br /&gt;
# Research the use cases and requirements by discussing the issue with authors and implementors.&lt;br /&gt;
# Come up with a clear description of the problem that needs to be solved.&lt;br /&gt;
# Discuss your proposal with authors and implementors. Read the responses. Listen to the feedback. Consider whether your ideas are good solutions to the use cases and requirements put forward. Discussions here should be done in public, e.g. on an archived public mailing list or documented in blogs.&lt;br /&gt;
# Get implementors to commit to implementing the feature. If you can&#039;t get several implementors to implement the feature, then get at least one user agent to implement it experimentally. Experimental implementations should be publicly available.&lt;br /&gt;
# Bring the experimental implementations to the attention of the spec&#039;s editor. Document the experience found from any implementations, the use cases and requirements that were found in the first step, the data that the design was based on.&lt;br /&gt;
# Demonstrate the importance of the problem. Demonstrate that the solution is one that will be used correctly and widely enough for it to solve the stated problem.&lt;br /&gt;
# Participate in the subsequent design discussions, considering all the proposals carefully. Typically at this step the original design gets thrown out and a significantly better design is developed, informed by the previous research, new research, and implementation and author experience with experimental implementations. Sometimes, the idea is abandoned at this stage.&lt;br /&gt;
&lt;br /&gt;
If the idea survives the above design process, the spec will be eventually updated to reflect the new design. Implementations will then be updated to reflect the new design (if they aren&#039;t, that indicates the new design is not good, and it will be reworked or removed). The spec will be updated to fix the many problems discovered by authors and implementors, over a period of several years, as more authors and implementors are exposed to the design. Eventually, a number of provably interoperable implementations are deployed. At this point development of the feature is somewhat frozen.&lt;br /&gt;
&lt;br /&gt;
Writing a comprehensive test suite is also an important step, which should start a bit before implementations start being written to the spec. (Test suites usually find as many problems with implementations as they do with the spec; they aren&#039;t just for finding browser bugs.) We don&#039;t yet have a good story with respect to test suites, sadly. If you want to help us out, let the mailing list know! Be aware, though, it&#039;s a lot of work.&lt;br /&gt;
&lt;br /&gt;
== HTML5 ==&lt;br /&gt;
&lt;br /&gt;
=== What is HTML5? === &lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/ HTML5] is the main focus of the WHATWG community and also that of the W3C HTML Working Group. HTML5 is a new version of HTML4, XHTML1, and DOM Level 2 HTML addressing many of the issues of those specifications while at the same time enhancing (X)HTML to more adequately address Web applications. Besides defining a markup language that can be written in both HTML (HTML5) and XML (XHTML5) it also defines many APIs that form the basis of the Web architecture. Some of these APIs were known as &amp;quot;DOM Level 0&amp;quot; and were never documented before. Yet they are extremely important for browser vendors to support existing Web content and for authors to be able to build Web applications.&lt;br /&gt;
&lt;br /&gt;
=== How can I keep track of changes to the spec? === &lt;br /&gt;
&lt;br /&gt;
The specification is available in the [http://svn.whatwg.org/ subversion repository]. You may use any svn client to check out the latest version and use your clients diff tools in order compare revisions and see what has been changed. You may also use the online [http://html5.org/tools/web-apps-tracker (X)HTML5 Tracking]. The tool provides an online interface for selecting and comparing revisions of the spec.&lt;br /&gt;
&lt;br /&gt;
=== When will HTML5 be finished? ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Finished&amp;quot; is a big deal... You&#039;ll be able to use HTML5 long before then. See [[FAQ#When_will_we_be_able_to_start_using_these_new_features.3F|When will we be able to start using these new features?]]&lt;br /&gt;
&lt;br /&gt;
It is estimated by the editor that HTML5 will reach the W3C Candidate Recommendation stage during 2012. That doesn&#039;t mean you can&#039;t start using it yet, though. Different parts of the specification are at different maturity levels. Some sections are already relatively stable and there are implementations that are already quite close to completion, and those features can be used today (e.g. &amp;amp;lt;canvas&amp;amp;gt;). But other sections are still being actively worked on and changed regularly, or not even written yet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can see annotations in the margins showing the estimated stability of each section.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The possible states are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Idea; yet to be specified&#039;&#039; -- the section is a placeholder.&lt;br /&gt;
* &#039;&#039;First draft&#039;&#039; -- An early stage.&lt;br /&gt;
* &#039;&#039;Working draft&#039;&#039; -- An early stage, but more mature than just &amp;quot;first draft&amp;quot;.&lt;br /&gt;
* &#039;&#039;Last call for comments&#039;&#039; -- The section is nearly done, but there may be feedback still to be processed. Send feedback sooner rather than later, or it might be too late.&lt;br /&gt;
* &#039;&#039;Awaiting implementation feedback&#039;&#039; -- The section is basically done, but might change in response to feedback from implementors. Major changes are unlikely past this point unless it is found that the feature, as specified, really doesn&#039;t work well.&lt;br /&gt;
* &#039;&#039;Implemented and widely deployed&#039;&#039; -- the feature is specified and complete. Once a section is interoperably implemented, it&amp;amp;#8217;s quite stable and unlikely to change significantly. Any changes to such a section would most likely only be editorial in nature, particularly if the feature is already in widespread use.&lt;br /&gt;
&lt;br /&gt;
There are also two special states:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Being edited right now&#039;&#039; -- the section is in high flux and is actively being edited. Contact Hixie on [[IRC]] if you have immediate feedback.&lt;br /&gt;
* &#039;&#039;Being considered for removal&#039;&#039; -- for one reason or another, the section is being considered for removal. Send feedback soon to help with the decision.&lt;br /&gt;
&lt;br /&gt;
The point to all this is that you shouldn&amp;amp;#8217;t place too much weight on the status of the specification as a whole. You need to consider the stability and maturity level of each section individually.&lt;br /&gt;
&lt;br /&gt;
It is estimated, again by the editor, that HTML5 will reach a W3C recommendation in the year 2022 or later. This will be approximately 18-20 years of development, since beginning in mid-2004. That&#039;s actually not that crazy, though. Work on HTML4 started in the mid 90s, and HTML4 &#039;&#039;still&#039;&#039;, more than ten years later, hasn&#039;t reached the level that we want to reach with HTML5. There is no real test suite, there are many parts of the spec that are lacking real implementations, there are big parts that aren&#039;t interoperable, and the spec has hundreds if not thousands of known errors that haven&#039;t been fixed. When HTML4 came out, REC meant something much less exciting than it does now.&lt;br /&gt;
&lt;br /&gt;
For a spec to become a REC today, it requires two 100% complete and fully interoperable implementations, which is proven by each successfully passing literally thousands of test cases (20,000 tests for the whole spec would probably be a conservative estimate). When you consider how long it takes to write that many test cases and how long it takes to implement each feature, you&amp;amp;#8217;ll begin to understand why the time frame seems so long.&lt;br /&gt;
&lt;br /&gt;
(In the interests of full disclosure, the W3C&#039;s [http://www.w3.org/2007/03/HTML-WG-charter.html#deliverables official line] is that the HTML5 spec will be complete, with interoperable implementations, in late 2010. However, that same timetable gave a date for First Public Working Draft that was eight months premature, and the W3C, as of the predicted date for the third milestone, Candidate Recommendation, had still not come anywhere near reaching the second milestone, Last Call. You can make your own judgements regarding the W3C timetable&#039;s credibility.)&lt;br /&gt;
&lt;br /&gt;
=== What about Microsoft and Internet Explorer? === &lt;br /&gt;
&lt;br /&gt;
Microsoft has already started implementing parts of HTML5 in IE8.&lt;br /&gt;
&lt;br /&gt;
HTML5 is being developed with compatibility with existing browsers in mind, though (including IE). Support for many features can be simulated using JavaScript.&lt;br /&gt;
&lt;br /&gt;
== HTML5 syntax issues ==&lt;br /&gt;
&lt;br /&gt;
=== Will HTML5 finally put an end to the XHTML as &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt; debate? === &lt;br /&gt;
&lt;br /&gt;
Yes. Unlike HTML4 and XHTML1, the choice of HTML or XHTML is solely dependent upon the choice of the media type, rather than the DOCTYPE. See [[HTML vs. XHTML]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== What will the DOCTYPE be? === &lt;br /&gt;
&lt;br /&gt;
In HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;amp;lt;!DOCTYPE html&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In XHTML: no DOCTYPE is required and its use is generally unnecessary.  However, you may use one if you want (see the following question).  Note that the above is well-formed XML and so it may also appear in XHTML documents.&lt;br /&gt;
&lt;br /&gt;
For compatibility with legacy producers designed for outputting HTML, but which are unable to easily output the above DOCTYPE, this alternative legacy-compat version may be used instead.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;amp;lt;!DOCTYPE html SYSTEM &amp;quot;about:legacy-compat&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that this is &#039;&#039;&#039;not&#039;&#039;&#039; intended for dealing with any compatibility issues with legacy browsers.  It is meant for legacy authoring tools only.&lt;br /&gt;
&lt;br /&gt;
Excluding the string &amp;lt;code&amp;gt;&amp;quot;about:legacy-compat&amp;quot;&amp;lt;/code&amp;gt;, the DOCTYPE is case insensitive in HTML.  In XHTML, it is case sensitive and must be either of the two variants given above.  For this reason, the DOCTYPEs given above are recommended to be used over other case variants, such as &amp;lt;code&amp;gt;&amp;amp;lt;!DOCTYPE HTML&amp;amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;lt;!doctype html&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These alternatives were chosen because they meet the following criteria:&lt;br /&gt;
&lt;br /&gt;
* They trigger standards mode in all current and all relevant legacy browsers.&lt;br /&gt;
* They are well-formed in XML and can appear in XHTML documents.&lt;br /&gt;
* It is possible to output at least one of the alternatives, if not both, with extant markup generators.&lt;br /&gt;
* They intentionally contain no language version identifier so the DOCTYPE will remain usable for all future revisions of HTML.&lt;br /&gt;
* The first is short and memorable to encourage its use.&lt;br /&gt;
* The legacy-compat DOCTYPE is intentionally unattractive and self descriptive of purpose to discourage unnecessary use.&lt;br /&gt;
&lt;br /&gt;
=== Under what conditions should a DOCTYPE be used in XHTML? ===&lt;br /&gt;
&lt;br /&gt;
Generally, the use of a DOCTYPE in XHTML is unnecessary.  However, there are cases where inclusion of a DOCTYPE is a reasonable thing to do:&lt;br /&gt;
&lt;br /&gt;
# The document is intended to be a polyglot document that may be served as both HTML or XHTML.&lt;br /&gt;
# You wish to declare entity references for use within the document.  Note that most browsers only read the internal subset and do not retrieve external entities. (This is not compatible with HTML, and thus not suitable for polyglot documents.)&lt;br /&gt;
# You wish to use a custom DTD for DTD-based validation. But take note of [http://about.validator.nu/#faq what&#039;s wrong with DTDs].&lt;br /&gt;
&lt;br /&gt;
=== How are pre-HTML5 documents parsed? ===&lt;br /&gt;
&lt;br /&gt;
All documents with a text/html media type (that is, including those without or with an HTML 2.0, HTML 3.2, HTML4, or XHTML1 DOCTYPE) will be parsed using the same parser algorithm as defined by HTML5. This matches what Web browsers have done for HTML documents so far and keeps code complexity down. That in turn is good for security, maintainability, and in general keeping the amount of bugs down. The HTML syntax of HTML5 therefore does not require a new parser and documents with an HTML4 DOCTYPE for example will be parsed using the HTML5 parser.&lt;br /&gt;
&lt;br /&gt;
Validators are allowed to have different code paths for previous levels of HTML.&lt;br /&gt;
&lt;br /&gt;
=== If there is no DTD, how can I validate my page? === &lt;br /&gt;
&lt;br /&gt;
With an [http://validator.whatwg.org/ HTML5 validator].&lt;br /&gt;
&lt;br /&gt;
=== What is an HTML Serialization? === &lt;br /&gt;
&lt;br /&gt;
The HTML serialization refers to the syntax of an HTML document defined in HTML5. The syntax is inspired by the SGML syntax from earlier versions of HTML, bits of XML (e.g. allowing a trailing slash on void elements, xmlns attributes), and reality of deployed content on the Web.&lt;br /&gt;
&lt;br /&gt;
Any document whose MIME type is determined to be &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt; is considered to be an HTML serialization and must be parsed using an HTML parser.&lt;br /&gt;
&lt;br /&gt;
=== What is an XML (or XHTML) Serialization? === &lt;br /&gt;
&lt;br /&gt;
The XML Serialization refers to the syntax defined by XML 1.0 and Namespaces in XML 1.0. A resource that has an XML MIME type, such as &amp;lt;code&amp;gt;application/xhtml+xml&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;application/xml&amp;lt;/code&amp;gt;, is an XML document and if it uses elements in the HTML namespace, it contains XHTML. If the root element is &amp;amp;#8220;html&amp;amp;#8221; in the HTML namespace, the document is referred to as an XHTML document.&lt;br /&gt;
&lt;br /&gt;
=== What MIME type does HTML5 use? === &lt;br /&gt;
&lt;br /&gt;
The HTML serialization &#039;&#039;must&#039;&#039; be served using the &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt; MIME type.&lt;br /&gt;
&lt;br /&gt;
The XHTML serialization &#039;&#039;must&#039;&#039; be served using an XML MIME type, such as &amp;lt;code&amp;gt;application/xhtml+xml&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;application/xml&amp;lt;/code&amp;gt;. Unlike XHTML1, XHTML5 &#039;&#039;must not&#039;&#039; be served as &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Using the incorrect MIME type (&amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;) for XHTML will cause the document to be parsed according to parsing requirements for HTML. In other words, it will be treated as tag soup. Ensuring the use of an XML MIME type is the only way to ensure that browsers handle the document as XML.&lt;br /&gt;
&lt;br /&gt;
=== Should I close empty elements with &amp;lt;code&amp;gt;/&amp;amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;? === &lt;br /&gt;
&lt;br /&gt;
Void elements in HTML (e.g. the &amp;lt;code&amp;gt;br&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; elements) do not require a trailing slash. e.g. Instead of writing &amp;lt;code&amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt;, you only need to write &amp;lt;code&amp;gt;&amp;amp;lt;br&amp;amp;gt;&amp;lt;/code&amp;gt;. This is the same as in HTML4. However, due to the widespread attempts to use XHTML1, there are a significant number of pages using the trailing slash. Because of this, the trailing slash syntax has been permitted on void elements in HTML in order to ease migration from XHTML1 to HTML5.&lt;br /&gt;
&lt;br /&gt;
HTML5 also introduces the ability to embed MathML elements. On elements inside a &amp;lt;code&amp;gt;math&amp;lt;/code&amp;gt; element the trailing slash works just like it does in XML. I.e. it closes the element. This is only inside that context however, it does not work for normal HTML elements.&lt;br /&gt;
&lt;br /&gt;
=== If I&amp;amp;#8217;m careful with the syntax I use in my HTML document, can I process it with an XML parser? === &lt;br /&gt;
&lt;br /&gt;
No, HTML and XML have [[HTML_vs._XHTML#Differences_Between_HTML_and_XHTML|many significant differences]], particularly parsing requirements, and you cannot process one using tools designed for the other. However, since HTML5 is defined in terms of the DOM, in most cases there are both HTML and XHTML serializations available that can represent the same document. There are, however, a few differences explained later that make it impossible to represent some HTML documents accurately as XHTML and vice versa. &lt;br /&gt;
&lt;br /&gt;
If you wish to process an HTML document as XHTML, it requires that you and convert it into XHTML first; and vice versa for processing XHTML as HTML.&lt;br /&gt;
&lt;br /&gt;
=== What is the namespace declaration? === &lt;br /&gt;
&lt;br /&gt;
In XHTML, you are required to specify the [http://www.w3schools.com/xml/xml_namespaces.asp namespace.]&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In HTML, the &amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute is currently allowed on any HTML element, but only if it has the value &amp;amp;#8220;&amp;lt;code&amp;gt;http://www.w3.org/1999/xhtml&amp;lt;/code&amp;gt;&amp;amp;#8220;. It doesn&amp;amp;#8217;t do anything at all, it is merely allowed to ease migration from XHTML1. It is not actually a namespace declaration in HTML, because HTML doesn&amp;amp;#8217;t yet support namespaces.  See the question [[FAQ#Will_there_be_support_for_namespaces_in_HTML.3F|will there be support for namespaces in HTML]].&lt;br /&gt;
&lt;br /&gt;
=== Will there be support for namespaces in HTML? === &lt;br /&gt;
&lt;br /&gt;
HTML5 is being defined in terms of the DOM and during parsing of a text/html all HTML elements will be automatically put in the HTML namespace, &amp;lt;code&amp;gt;http://www.w3.org/1999/xhtml&amp;lt;/code&amp;gt;. However, unlike the XHTML serialization, there is no real namespace syntax available in the HTML serialization (see previous question). In other words, you do not need to declare the namespace in your HTML markup, as you do in XHTML. However, you are permitted to put an &amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute on each HTML element as long as the namespace is &amp;lt;code&amp;gt;http://www.w3.org/1999/xhtml&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In addition, the HTML syntax provides for a way to embed elements from MathML and SVG. Elements placed inside the container element &amp;lt;code&amp;gt;math&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;svg&amp;lt;/code&amp;gt; will automatically be put in the MathML namespace or the SVG namespace, respectively, by the parser. Namespace syntax is not required, but again an &amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute is allowed if its value is the right namespace.&lt;br /&gt;
&lt;br /&gt;
In conclusion, while HTML5 does not allow the XML namespace syntax, there is a way to embed MathML and SVG and the xmlns attribute can be used on any element under the given constraints, in a way that is reasonably compatible on the DOM level.&lt;br /&gt;
&lt;br /&gt;
=== How do I specify the character encoding? === &lt;br /&gt;
&lt;br /&gt;
For HTML, it is strongly recommended that you specify the encoding using the HTTP &amp;lt;code&amp;gt;Content-Type&amp;lt;/code&amp;gt; header. If you are unable to [http://www.w3.org/International/O-HTTP-charset configure your server] to send the correct headers, then you may use the &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element:&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;
The following restrictions apply to character encoding declarations:&lt;br /&gt;
&lt;br /&gt;
* The character encoding name given must be the name of the character encoding used to serialize the file.&lt;br /&gt;
* The value must be a [http://www.iana.org/assignments/character-sets valid character encoding name], and must be the preferred name for that encoding.&lt;br /&gt;
* The character encoding declaration must be serialized without the use of character references or character escapes of any kind.&lt;br /&gt;
* The &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element used for this purpose must occur within the first 512 bytes of the file.  It is considered good practice for this to be the first child of the &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; element so that it is as close to the beginning of the file as possible.&lt;br /&gt;
&lt;br /&gt;
Note that this &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element is different from HTML 4, though it is compatible with many browsers because of the way encoding detection has been implemented.&lt;br /&gt;
&lt;br /&gt;
For polyglot documents, which may be served as either HTML or XHTML, you may also include that in XHTML documents, but only if the encoding is &amp;quot;UTF-8&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To ease transition from HTML4 to HTML5, although the former is the recommended syntax, you may also use the following. (This does not apply to XHTML or polyglot documents)&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 XHTML, XML rules for determining the character encoding apply.  The meta element is never used for determining the encoding of an XHTML document (although it may appear in UTF-8 encoded XHTML documents).  You should use either the HTTP &amp;lt;code&amp;gt;Content-Type&amp;lt;/code&amp;gt; header or the XML declaration to specify the encoding.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, you must use the default of &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;. It is recommended that you use &amp;lt;code&amp;gt;UTF-8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== What are the differences between HTML and XHTML? === &lt;br /&gt;
&lt;br /&gt;
See the list of [[HTML vs. XHTML#Differences_Between_HTML_and_XHTML|differences between HTML and XHTML]] in the wiki.&lt;br /&gt;
&lt;br /&gt;
=== What are best practices to be compatible with HTML DOM and XHTML DOM? ===&lt;br /&gt;
&lt;br /&gt;
Though the intent is that HTML and XHTML can both produce identical DOMs, there still are some differences between working with an HTML DOM and an XHTML one.&lt;br /&gt;
&lt;br /&gt;
Case sensitivity :&lt;br /&gt;
* Whenever possible, avoid testing Element.tagName and Node.nodeName (or do toLowerCase() before testing).&lt;br /&gt;
Namespaces:&lt;br /&gt;
* Use the namespace-aware version for creating elements: Document.createElementNS(ns, elementName)&lt;br /&gt;
&lt;br /&gt;
=== Why does HTML5 legitimise tag soup? === &lt;br /&gt;
&lt;br /&gt;
Actually it doesn&amp;amp;#8217;t. This is a misconception that comes from the confusion between conformance requirements for documents, and the requirements for user agents.&lt;br /&gt;
&lt;br /&gt;
Due to the fundamental design principle of supporting existing content, the spec must define how to handle all HTML, regardless of whether documents are conforming or not. Therefore, the spec defines (or will define) precisely how to handle and recover from erroneous markup, much of which would be considered tag soup.&lt;br /&gt;
&lt;br /&gt;
For example, the spec defines algorithms for dealing with syntax errors such as incorrectly nested tags, which will ensure that a well structured DOM tree can be produced.&lt;br /&gt;
&lt;br /&gt;
Defining that is essential for one day achieving interoperability between browsers and reducing the dependence upon reverse engineering each other.&lt;br /&gt;
&lt;br /&gt;
However, the conformance requirements for authors are defined separately from the processing requirements. Just because browsers are required to handle erroneous content, it does not make such markup conforming.&lt;br /&gt;
&lt;br /&gt;
For example, user agents will be required to support the marquee element, but authors must not use the marquee element in conforming documents.&lt;br /&gt;
&lt;br /&gt;
It is important to make the distinction between the rules that apply to user agents and the rules that apply to authors for producing conforming documents. They are completely orthogonal.&lt;br /&gt;
&lt;br /&gt;
== HTML5 feature proposals ==&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should support &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; on any element! === &lt;br /&gt;
&lt;br /&gt;
The spec allows &amp;lt;a&amp;gt; to contain blocks. It doesn&#039;t support putting href=&amp;quot;&amp;quot; on any element, though.&lt;br /&gt;
&lt;br /&gt;
Supporting &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; on any element has several problems associated with it that make it difficult to support in HTML5. The main reason this isn&#039;t in HTML5 is that browser vendors have reported that implementing it would be extremely complex. Browser vendors get to decide what they implement, and there&#039;s no point to us telling them to do something they aren&#039;t going to do. In addition:&lt;br /&gt;
&lt;br /&gt;
* It isn&amp;amp;#8217;t backwards compatible with existing browsers.&lt;br /&gt;
* It adds no new functionality that can&amp;amp;#8217;t already be achieved using the &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element and a little script.&lt;br /&gt;
* It doesn&amp;amp;#8217;t make sense for all elements, such as interactive elements like &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;button&amp;lt;/code&amp;gt;, where the use of href would interfere with their normal function.&lt;br /&gt;
&lt;br /&gt;
The only advantage it seems to add is that it reduces typing for authors in some cases, but that is not a strong enough reason to support it in light of the other reasons.&lt;br /&gt;
&lt;br /&gt;
Wrapping &amp;lt;a&amp;gt; elements around blocks solves most use cases. It doesn&#039;t handle making rows in tables into links, though; for those just do something like this instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;tr onclick=&amp;quot;location = this.getElementsByTagName(&#039;a&#039;)[0]&amp;quot;&amp;gt; ... &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should support list headers! ===&lt;br /&gt;
&lt;br /&gt;
You can give a header to a list using the &amp;lt;figure&amp;gt; and &amp;lt;legend&amp;gt; elements:&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;Apples&amp;lt;/legend&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Granny Smith&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Evil Apple of Knowledge&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Apple, Inc&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
 &amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also label a group of lists using a definition list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;dl&amp;gt;&lt;br /&gt;
  &amp;lt;dt&amp;gt;Dry:&amp;lt;/dt&amp;gt;&lt;br /&gt;
  &amp;lt;dd&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;  &lt;br /&gt;
    &amp;lt;li&amp;gt;1c flour&amp;lt;/li&amp;gt;  &lt;br /&gt;
    &amp;lt;li&amp;gt;1/4c sugar&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;1tsp baking soda&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/dd&amp;gt;&lt;br /&gt;
  &amp;lt;dt&amp;gt;Wet:&amp;lt;/dt&amp;gt;&lt;br /&gt;
  &amp;lt;dd&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;  &lt;br /&gt;
    &amp;lt;li&amp;gt;1 egg &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;1/2c milk&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;1tsp vanilla extract&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/dd&amp;gt;&lt;br /&gt;
 &amp;lt;/dl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These techniques are preferred over adding an &amp;lt;lh&amp;gt; element as proposed in the old HTML3 draft, mostly because of thorny issues with parsing near &amp;amp;lt;li&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should support a way for anyone to invent new elements! ===&lt;br /&gt;
&lt;br /&gt;
There are actually quite a number of ways for people to invent their own extensions to HTML:&lt;br /&gt;
&lt;br /&gt;
* Authors can use the &#039;&#039;class&#039;&#039; attribute to extend elements, effectively creating their own elements, while using the most applicable existing &amp;quot;real&amp;quot; HTML element, so that browsers and other tools that don&#039;t know of the extension can still support it somewhat well. This is the tack used by Microformats, for example.&lt;br /&gt;
* Authors can include data for scripts to process using the &#039;&#039;data-*=&amp;quot;&amp;quot;&#039;&#039; attributes. These are guaranteed to never be touched by browsers, and allow scripts to include data on HTML elements that scripts can then look for and process.&lt;br /&gt;
* Authors can use the &#039;&#039;&amp;lt;meta name=&amp;quot;&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;&#039;&#039; mechanism to include page-wide metadata. Names should be registered on the wiki&#039;s [[MetaExtensions]] page.&lt;br /&gt;
* Authors can use the &#039;&#039;rel=&amp;quot;&amp;quot;&#039;&#039; mechanism to annotate links with specific meanings. This is also used by Microformats. Names should be registered on the wiki&#039;s [[RelExtensions]] page.&lt;br /&gt;
* Authors can embed raw data using the &#039;&#039;&amp;lt;script type=&amp;quot;&amp;quot;&amp;gt;&#039;&#039; mechanism with a custom type, for further handling by a script.&lt;br /&gt;
* Authors can create plugins and invoke them using the &#039;&#039;&amp;lt;embed&amp;gt;&#039;&#039; element. This is how Flash works.&lt;br /&gt;
* Authors can extend APIs using the JS prototyping mechanism. This is widely used by script libraries, for instance.&lt;br /&gt;
* Authors can use the microdata feature (the item=&amp;quot;&amp;quot; and itemprop=&amp;quot;&amp;quot; attributes) to embed nested name-value pairs of data to be shared with other applications and sites.&lt;br /&gt;
* Authors can propose new elements and attributes to the working group and, if the wider community agrees that they are worth the effort, they are added to the language. (If an addition is urgent, please let us know when proposing it, and we will try to address it quickly.)&lt;br /&gt;
&lt;br /&gt;
There is currently no mechanism for introducing new proprietary features in HTML documents (i.e. for introducing new elements and attributes) without discussing the extension with user agent vendors and the wider Web community. This is intentional; we don&#039;t want user agents inventing their own proprietary elements and attributes like in the &amp;quot;bad old days&amp;quot; without working with interested parties to make sure their feature is well designed.&lt;br /&gt;
&lt;br /&gt;
We request that people not invent new elements and attributes to add to HTML without first contacting the working group and getting a proposal discussed with interested parties.&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should group &amp;amp;lt;dt&amp;gt;s and &amp;amp;lt;dd&amp;gt;s together in &amp;lt;di&amp;gt;s! === &lt;br /&gt;
&lt;br /&gt;
This is a styling problem and should be fixed in CSS. There&#039;s no reason to add a grouping element to HTML, as the semantics are already unambiguous.&lt;br /&gt;
&lt;br /&gt;
=== Why are some presentational elements like &amp;amp;lt;b&amp;gt;, &amp;amp;lt;i&amp;gt; and &amp;amp;lt;small&amp;gt; still included? ===&lt;br /&gt;
&lt;br /&gt;
The inclusion of these elements is a largely pragmatic decision based upon their widespread usage, and their usefulness for use cases which are not covered by more specific elements.&lt;br /&gt;
&lt;br /&gt;
While there are a number of common use cases for italics which are covered by more specific elements, such as emphasis (em), citations (cite), definitions (dfn) and variables (var), there are many other use cases which are not covered well by these elements.  For example, a taxonomic designation, a technical term, an idiomatic phrase from another language, a thought, or a ship name.&lt;br /&gt;
&lt;br /&gt;
Similarly, although a number of common use cases for bold text are also covered by more specific elements such as strong emphasis (strong), headings (h1-h6) or table headers (th); there are others which are not, such as key words in a document abstract or product names in a review.&lt;br /&gt;
&lt;br /&gt;
Some people argue that in such cases, the span element should be used with an appropriate class name and associated stylesheet.  However, the b and i elements provide for a reasonable fallback styling in environments that don&#039;t support stylesheets or which do not render visually, such as screen readers, and they also provide some indication that the text is somehow distinct from its surrounding content.&lt;br /&gt;
&lt;br /&gt;
In essence, they convey distinct, though non-specific, semantics, which are to be determined by the reader in the context of their use. In other words, although they don’t convey specific semantics by themselves, they indicate that that the content is somehow distinct from its surroundings and leaves the interpretation of the semantics up to the reader.&lt;br /&gt;
&lt;br /&gt;
This is further explained in the article &amp;lt;cite&amp;gt;[http://lachy.id.au/log/2007/05/b-and-i The &amp;amp;lt;b&amp;gt; and &amp;amp;lt;i&amp;gt; Elements]&amp;lt;/cite&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, the small element is defined for content that is commonly typographically rendered in small print, and which often referred to as fine print.  This could include copyright statements, disclaimers and other legal text commonly found at the end of a document.&lt;br /&gt;
&lt;br /&gt;
==== But they are PRESENTATIONAL! ====&lt;br /&gt;
&lt;br /&gt;
While &amp;amp;lt;b&amp;gt;, &amp;amp;lt;i&amp;gt; and &amp;amp;lt;small&amp;gt; historically have been presentational, they are defined in a media-independent manner in HTML5. For example, &amp;amp;lt;small&amp;gt; corresponds to the really quickly spoken part at the end of radio advertisements. The problem with elements like &amp;amp;lt;font&amp;gt; isn&#039;t that they are &#039;&#039;presentational&#039;&#039; per se, it&#039;s that they are media-dependent (they apply to visual browsers but not to speech browsers).&lt;br /&gt;
&lt;br /&gt;
=== The &amp;amp;lt;cite&amp;gt; element should allow names of people to be marked up ===&lt;br /&gt;
&lt;br /&gt;
From what we&#039;ve seen, &amp;amp;lt;cite&amp;gt; is almost always used to mean &amp;quot;italics&amp;quot;. More careful authors have used the element to mark up names and titles, and some people have gone out of their way to only mark up citations.&lt;br /&gt;
&lt;br /&gt;
So, we can&#039;t really decide what the element should be based on past practice, like we usually do.&lt;br /&gt;
&lt;br /&gt;
This leaves the question of what is the most useful use we can put the element to, if we keep it. The conclusion so far has been that the most useful use for &amp;amp;lt;cite&amp;gt; is as an element to allow typographic control over titles, since those are often made italics, and that semantic is roughly close to what it meant in previous versions, and happens to match at least one of the common uses for the element. Generally, however, names and titles aren&#039;t typeset the same way, so making the element apply to both would lead to confusing typography.&lt;br /&gt;
&lt;br /&gt;
There are already many ways of marking up names already (e.g. the hCard Microformat, the microdata vCard vocabulary, &amp;amp;lt;span&amp;gt; and class names, etc), if you really need it.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;amp;lt;time&amp;gt; element should allow vague times (&amp;quot;March&amp;quot;) and times from ancient history to be marked up ===&lt;br /&gt;
&lt;br /&gt;
This has been discussed a number of times. For an overview of the topic, please see these e-mails:&lt;br /&gt;
* http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/018888.html&lt;br /&gt;
* http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-August/021745.html&lt;br /&gt;
At this stage, as discussed in the second of those e-mails, the best way forward is to demonstrate that there are communities interested in solving this problem, by using existing techniques such as microdata to address it. If such a solution achieves a high adoption rate, that will substantially increase the strength of the proposals.&lt;br /&gt;
&lt;br /&gt;
== Is there documentation of the reasoning behind various decisions?  ==&lt;br /&gt;
&lt;br /&gt;
Sort of.  Often the only documentation is the archive of the mailing list or IRC channel at the time.  Sometimes an issue was raised formally, and resolution is recorded in the issue tracker.  Sometimes, there is an explanation in the specification, but doing that everywhere would make the specification even larger.&lt;br /&gt;
&lt;br /&gt;
For a few cases that someone did take the time document, the information can be found at the following locations.&lt;br /&gt;
&lt;br /&gt;
[[WhyNoNameSpaces]]&lt;br /&gt;
&lt;br /&gt;
[[WhyNoScriptImplements]]&lt;br /&gt;
&lt;br /&gt;
== WHATWG and the W3C HTML WG ==&lt;br /&gt;
&lt;br /&gt;
=== Are there plans to merge the groups? ===&lt;br /&gt;
&lt;br /&gt;
Not especially. There are people who for a number of reasons are unable to join the W3C group, and there are others who are unable to join the WHATWG group. The editor is in both groups and takes all input into account -- and there are far more places where input on HTML5 is sent than just these two mailing lists (e.g. blogs, www-html@w3.org, forums, direct mail, meetings, etc).&lt;br /&gt;
&lt;br /&gt;
=== Which group has authority in the event of a dispute? ===&lt;br /&gt;
&lt;br /&gt;
The editor takes feedback from everyone into account and does not look at the source of those arguments for technical arguments.&lt;br /&gt;
&lt;br /&gt;
=== What is the history of HTML? ===&lt;br /&gt;
&lt;br /&gt;
Here are some documents that detail the history of HTML:&lt;br /&gt;
* [http://esw.w3.org/topic/HTML/history HTML&#039;s timeline on the ESW wiki]&lt;br /&gt;
* [http://www.whatwg.org/specs/web-apps/current-work/multipage/introduction.html#history0 The history section in HTML5 itself]&lt;br /&gt;
&lt;br /&gt;
== Web Workers ==&lt;br /&gt;
&lt;br /&gt;
Besides HTML5 the WHATWG works on [http://www.whatwg.org/specs/web-workers/current-work/ Web Workers]. It does this together with the W3C WebApps Working Group.&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
=== Should I top-post or reply inline? ===&lt;br /&gt;
&lt;br /&gt;
Please reply inline or make the reply self-contained.&lt;br /&gt;
&lt;br /&gt;
Basically, please remove anything after the last line you have written, so that people don&#039;t have to scroll down to find out what else you wrote, and make sure that your e-mail makes sense on its own, as it will probably be read out of context years later.&lt;br /&gt;
&lt;br /&gt;
That is, you should reply like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ian wrote:&lt;br /&gt;
&amp;gt; What do you want? &lt;br /&gt;
&lt;br /&gt;
I want cats!&lt;br /&gt;
&lt;br /&gt;
&amp;gt; When do you want it?&lt;br /&gt;
&lt;br /&gt;
Now!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should definitely not reply like this (because this requires people to read your e-mail backwards):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;error&amp;quot; &amp;gt;&lt;br /&gt;
No&lt;br /&gt;
&lt;br /&gt;
Ian wrote:&lt;br /&gt;
&amp;gt; Is this a good example of how to post e-mails?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should also not reply like this (because this leaves people to wonder if there is any text lower down that you have written):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;error&amp;quot; &amp;gt;&lt;br /&gt;
This is a bad way to write e-mail.&lt;br /&gt;
&lt;br /&gt;
Ian wrote:&lt;br /&gt;
&amp;gt; Is this a good way to write e-mail?&lt;br /&gt;
&amp;gt; Lorem ipsum foo bar baz.&lt;br /&gt;
&amp;gt; Unrelated other bits that aren&#039;t replied to.&lt;br /&gt;
&amp;gt; Yet more text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should also not reply like this (with no context at all), because the reader will not know what you are referring to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;error&amp;quot; &amp;gt;&lt;br /&gt;
No, I think that&#039;s a bad idea. It wouldn&#039;t be good for the readers, for instance.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quote enough original text or provide an introduction yourself.&lt;br /&gt;
&lt;br /&gt;
If you use Outlook or Outlook Express, you can use either [http://home.in.tum.de/~jain/software/outlook-quotefix/ Outlook-QuoteFix] or [http://home.in.tum.de/~jain/software/oe-quotefix/ OE-QuoteFix]. These plugins fix several of Outlook&#039;s problems with sending properly formatted emails.&lt;br /&gt;
H&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=FAQ&amp;diff=4058</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=FAQ&amp;diff=4058"/>
		<updated>2009-09-14T18:35:47Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: Added section on why decisions were made&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The WHATWG ==&lt;br /&gt;
&lt;br /&gt;
=== What is the WHATWG? ===&lt;br /&gt;
&lt;br /&gt;
The Web Hypertext Application Technology Working Group (WHATWG) is a growing community of people interested in evolving the Web. It focuses primarily on the development of HTML and APIs needed for Web applications.&lt;br /&gt;
&lt;br /&gt;
The WHATWG was founded by individuals of Apple, the Mozilla Foundation, and Opera Software in 2004, after a W3C workshop. Apple, Mozilla and Opera were becoming increasingly concerned about the W3C’s direction with XHTML, lack of interest in HTML and apparent disregard for the needs of real-world authors. So, in response, these organisations set out with a mission to address these concerns and the Web Hypertext Application Technology Working Group was born.&lt;br /&gt;
&lt;br /&gt;
=== What is the WHATWG working on? === &lt;br /&gt;
&lt;br /&gt;
The WHATWG&#039;s main focus is HTML5. The WHATWG also works on Web Workers and occasionally specifications outside WHATWG space are discussed on the WHATWG mailing list and forwarded when appropriate.&lt;br /&gt;
&lt;br /&gt;
In the past it has worked on Web Forms 2.0 and Web Controls 1.0. Web Forms 2.0 has been integrated into HTML5 and Web Controls 1.0 has been abandoned for now, awaiting what [http://www.w3.org/TR/xbl/ XBL 2.0] will bring us.&lt;br /&gt;
&lt;br /&gt;
=== How can I get involved? === &lt;br /&gt;
&lt;br /&gt;
There are lots of ways you can get involved, take a look and see &#039;&#039;[[What you can do]]&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
=== Is participation free? === &lt;br /&gt;
&lt;br /&gt;
Yes, everyone can contribute. There are no memberships fees involved, it&#039;s an open process. You may easily subscribe to the WHATWG [http://whatwg.org/mailing-list mailing lists]. You may also [http://blog.whatwg.org/w3c-restarts-html-effort join the the W3C&#039;s new HTMLWG] by going through the slightly longer application process.&lt;br /&gt;
&lt;br /&gt;
== The WHATWG Process ==&lt;br /&gt;
&lt;br /&gt;
=== How does the WHATWG work? ===&lt;br /&gt;
&lt;br /&gt;
People send e-mail to [http://www.whatwg.org/mailing-list#specs the mailing list]. The editor then reads that [http://www.whatwg.org/issues/ feedback] and, taking it into account along with research, studies, and feedback from many other sources (blogs, forums, IRC, etc) makes language design decisions intended to address everyone&#039;s needs as well as possible while keeping the language consistent.&lt;br /&gt;
&lt;br /&gt;
This continues, with people sending more feedback, until nobody is able to convince the editor to change the spec any more (e.g. because two people want opposite things, and the editor has considered all the information available and decided that one of the two proposals is the better one).&lt;br /&gt;
&lt;br /&gt;
This is not a consensus-based approach -- there&#039;s no guarantee that everyone will be happy! There is also no voting.&lt;br /&gt;
&lt;br /&gt;
There is a small oversight committee (known as the &amp;quot;WHATWG members&amp;quot;, see the [http://www.whatwg.org/charter charter]) who have the authority to override or replace the editor if he starts making bad decisions.&lt;br /&gt;
&lt;br /&gt;
Currently the editor is Ian Hickson.&lt;br /&gt;
&lt;br /&gt;
=== How should tool developers, screen reader developers, browser vendors, search engine vendors, and other implementors interact with the WHATWG? ===&lt;br /&gt;
&lt;br /&gt;
Feedback on a feature should be sent to whatwg@whatwg.org (but you have to [http://whatwg.org/mailing-list#specs join the mailing list] first), or ian@hixie.ch. All feedback will receive a reply in due course.&lt;br /&gt;
&lt;br /&gt;
If you want feedback to be dealt with faster than &amp;quot;eventually&amp;quot;, e.g. because you are about to work on that feature and need the spec to be updated to take into account all previous feedback, let the editor know by either e-mailing him (ian@hixie.ch), or contacting him on [[IRC]] (Hixie on Freenode). Requests for priority feedback handling are handled confidentially so other implementors won&#039;t know that you are working on that feature.&lt;br /&gt;
&lt;br /&gt;
Questions and requests for clarifications should be asked either on the mailing list or on [[IRC]], in the #whatwg channel on Freenode.&lt;br /&gt;
&lt;br /&gt;
=== Is there a process for removing bad ideas from a specification? ===&lt;br /&gt;
&lt;br /&gt;
There are several processes by which we trim weeds from the specifications.&lt;br /&gt;
&lt;br /&gt;
* On a regular basis, especially around explicit call-for-comments, we go through every section and mark areas as being considered for removal. This happened early in 2008 with the data templates, repetition blocks, and DFN-element cross references, for example. If no feedback is received to give us strong reasons to keep such features, then they eventually are removed altogether.&lt;br /&gt;
&lt;br /&gt;
* Anyone can ask for a feature to be removed; such feedback is considered like all other feedback and is based on the merits of the arguments put forward.&lt;br /&gt;
&lt;br /&gt;
* If browsers don&#039;t widely implement a feature, or if authors don&#039;t use a feature, or if the uses of the feature are inconsequential of fundamentally wrong or damaging, then, after due consideration, features will be removed.&lt;br /&gt;
&lt;br /&gt;
Removing features is a critical part of spec development.&lt;br /&gt;
&lt;br /&gt;
=== Is there a process for adding new features to a specification? ===&lt;br /&gt;
&lt;br /&gt;
The process is rather informal, but basically boils down to this:&lt;br /&gt;
# Research the use cases and requirements by discussing the issue with authors and implementors.&lt;br /&gt;
# Come up with a clear description of the problem that needs to be solved.&lt;br /&gt;
# Discuss your proposal with authors and implementors. Read the responses. Listen to the feedback. Consider whether your ideas are good solutions to the use cases and requirements put forward. Discussions here should be done in public, e.g. on an archived public mailing list or documented in blogs.&lt;br /&gt;
# Get implementors to commit to implementing the feature. If you can&#039;t get several implementors to implement the feature, then get at least one user agent to implement it experimentally. Experimental implementations should be publicly available.&lt;br /&gt;
# Bring the experimental implementations to the attention of the spec&#039;s editor. Document the experience found from any implementations, the use cases and requirements that were found in the first step, the data that the design was based on.&lt;br /&gt;
# Demonstrate the importance of the problem. Demonstrate that the solution is one that will be used correctly and widely enough for it to solve the stated problem.&lt;br /&gt;
# Participate in the subsequent design discussions, considering all the proposals carefully. Typically at this step the original design gets thrown out and a significantly better design is developed, informed by the previous research, new research, and implementation and author experience with experimental implementations. Sometimes, the idea is abandoned at this stage.&lt;br /&gt;
&lt;br /&gt;
If the idea survives the above design process, the spec will be eventually updated to reflect the new design. Implementations will then be updated to reflect the new design (if they aren&#039;t, that indicates the new design is not good, and it will be reworked or removed). The spec will be updated to fix the many problems discovered by authors and implementors, over a period of several years, as more authors and implementors are exposed to the design. Eventually, a number of provably interoperable implementations are deployed. At this point development of the feature is somewhat frozen.&lt;br /&gt;
&lt;br /&gt;
Writing a comprehensive test suite is also an important step, which should start a bit before implementations start being written to the spec. (Test suites usually find as many problems with implementations as they do with the spec; they aren&#039;t just for finding browser bugs.) We don&#039;t yet have a good story with respect to test suites, sadly. If you want to help us out, let the mailing list know! Be aware, though, it&#039;s a lot of work.&lt;br /&gt;
&lt;br /&gt;
== HTML5 ==&lt;br /&gt;
&lt;br /&gt;
=== What is HTML5? === &lt;br /&gt;
&lt;br /&gt;
[http://www.whatwg.org/specs/web-apps/current-work/ HTML5] is the main focus of the WHATWG community and also that of the W3C HTML Working Group. HTML5 is a new version of HTML4, XHTML1, and DOM Level 2 HTML addressing many of the issues of those specifications while at the same time enhancing (X)HTML to more adequately address Web applications. Besides defining a markup language that can be written in both HTML (HTML5) and XML (XHTML5) it also defines many APIs that form the basis of the Web architecture. Some of these APIs were known as &amp;quot;DOM Level 0&amp;quot; and were never documented before. Yet they are extremely important for browser vendors to support existing Web content and for authors to be able to build Web applications.&lt;br /&gt;
&lt;br /&gt;
=== How can I keep track of changes to the spec? === &lt;br /&gt;
&lt;br /&gt;
The specification is available in the [http://svn.whatwg.org/ subversion repository]. You may use any svn client to check out the latest version and use your clients diff tools in order compare revisions and see what has been changed. You may also use the online [http://html5.org/tools/web-apps-tracker (X)HTML5 Tracking]. The tool provides an online interface for selecting and comparing revisions of the spec.&lt;br /&gt;
&lt;br /&gt;
=== When will HTML5 be finished? ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Finished&amp;quot; is a big deal... You&#039;ll be able to use HTML5 long before then. See [[FAQ#When_will_we_be_able_to_start_using_these_new_features.3F|When will we be able to start using these new features?]]&lt;br /&gt;
&lt;br /&gt;
It is estimated by the editor that HTML5 will reach the W3C Candidate Recommendation stage during 2012. That doesn&#039;t mean you can&#039;t start using it yet, though. Different parts of the specification are at different maturity levels. Some sections are already relatively stable and there are implementations that are already quite close to completion, and those features can be used today (e.g. &amp;amp;lt;canvas&amp;amp;gt;). But other sections are still being actively worked on and changed regularly, or not even written yet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;You can see annotations in the margins showing the estimated stability of each section.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The possible states are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Idea; yet to be specified&#039;&#039; -- the section is a placeholder.&lt;br /&gt;
* &#039;&#039;First draft&#039;&#039; -- An early stage.&lt;br /&gt;
* &#039;&#039;Working draft&#039;&#039; -- An early stage, but more mature than just &amp;quot;first draft&amp;quot;.&lt;br /&gt;
* &#039;&#039;Last call for comments&#039;&#039; -- The section is nearly done, but there may be feedback still to be processed. Send feedback sooner rather than later, or it might be too late.&lt;br /&gt;
* &#039;&#039;Awaiting implementation feedback&#039;&#039; -- The section is basically done, but might change in response to feedback from implementors. Major changes are unlikely past this point unless it is found that the feature, as specified, really doesn&#039;t work well.&lt;br /&gt;
* &#039;&#039;Implemented and widely deployed&#039;&#039; -- the feature is specified and complete. Once a section is interoperably implemented, it&amp;amp;#8217;s quite stable and unlikely to change significantly. Any changes to such a section would most likely only be editorial in nature, particularly if the feature is already in widespread use.&lt;br /&gt;
&lt;br /&gt;
There are also two special states:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;Being edited right now&#039;&#039; -- the section is in high flux and is actively being edited. Contact Hixie on [[IRC]] if you have immediate feedback.&lt;br /&gt;
* &#039;&#039;Being considered for removal&#039;&#039; -- for one reason or another, the section is being considered for removal. Send feedback soon to help with the decision.&lt;br /&gt;
&lt;br /&gt;
The point to all this is that you shouldn&amp;amp;#8217;t place too much weight on the status of the specification as a whole. You need to consider the stability and maturity level of each section individually.&lt;br /&gt;
&lt;br /&gt;
It is estimated, again by the editor, that HTML5 will reach a W3C recommendation in the year 2022 or later. This will be approximately 18-20 years of development, since beginning in mid-2004. That&#039;s actually not that crazy, though. Work on HTML4 started in the mid 90s, and HTML4 &#039;&#039;still&#039;&#039;, more than ten years later, hasn&#039;t reached the level that we want to reach with HTML5. There is no real test suite, there are many parts of the spec that are lacking real implementations, there are big parts that aren&#039;t interoperable, and the spec has hundreds if not thousands of known errors that haven&#039;t been fixed. When HTML4 came out, REC meant something much less exciting than it does now.&lt;br /&gt;
&lt;br /&gt;
For a spec to become a REC today, it requires two 100% complete and fully interoperable implementations, which is proven by each successfully passing literally thousands of test cases (20,000 tests for the whole spec would probably be a conservative estimate). When you consider how long it takes to write that many test cases and how long it takes to implement each feature, you&amp;amp;#8217;ll begin to understand why the time frame seems so long.&lt;br /&gt;
&lt;br /&gt;
(In the interests of full disclosure, the W3C&#039;s [http://www.w3.org/2007/03/HTML-WG-charter.html#deliverables official line] is that the HTML5 spec will be complete, with interoperable implementations, in late 2010. However, that same timetable gave a date for First Public Working Draft that was eight months premature, and the W3C, as of the predicted date for the third milestone, Candidate Recommendation, had still not come anywhere near reaching the second milestone, Last Call. You can make your own judgements regarding the W3C timetable&#039;s credibility.)&lt;br /&gt;
&lt;br /&gt;
=== What about Microsoft and Internet Explorer? === &lt;br /&gt;
&lt;br /&gt;
Microsoft has already started implementing parts of HTML5 in IE8.&lt;br /&gt;
&lt;br /&gt;
HTML5 is being developed with compatibility with existing browsers in mind, though (including IE). Support for many features can be simulated using JavaScript.&lt;br /&gt;
&lt;br /&gt;
== HTML5 syntax issues ==&lt;br /&gt;
&lt;br /&gt;
=== Will HTML5 finally put an end to the XHTML as &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt; debate? === &lt;br /&gt;
&lt;br /&gt;
Yes. Unlike HTML4 and XHTML1, the choice of HTML or XHTML is solely dependent upon the choice of the media type, rather than the DOCTYPE. See [[HTML vs. XHTML]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== What will the DOCTYPE be? === &lt;br /&gt;
&lt;br /&gt;
In HTML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;amp;lt;!DOCTYPE html&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In XHTML: no DOCTYPE is required and its use is generally unnecessary.  However, you may use one if you want (see the following question).  Note that the above is well-formed XML and so it may also appear in XHTML documents.&lt;br /&gt;
&lt;br /&gt;
For compatibility with legacy producers designed for outputting HTML, but which are unable to easily output the above DOCTYPE, this alternative legacy-compat version may be used instead.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;amp;lt;!DOCTYPE html SYSTEM &amp;quot;about:legacy-compat&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note that this is &#039;&#039;&#039;not&#039;&#039;&#039; intended for dealing with any compatibility issues with legacy browsers.  It is meant for legacy authoring tools only.&lt;br /&gt;
&lt;br /&gt;
Excluding the string &amp;lt;code&amp;gt;&amp;quot;about:legacy-compat&amp;quot;&amp;lt;/code&amp;gt;, the DOCTYPE is case insensitive in HTML.  In XHTML, it is case sensitive and must be either of the two variants given above.  For this reason, the DOCTYPEs given above are recommended to be used over other case variants, such as &amp;lt;code&amp;gt;&amp;amp;lt;!DOCTYPE HTML&amp;amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;lt;!doctype html&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
These alternatives were chosen because they meet the following criteria:&lt;br /&gt;
&lt;br /&gt;
* They trigger standards mode in all current and all relevant legacy browsers.&lt;br /&gt;
* They are well-formed in XML and can appear in XHTML documents.&lt;br /&gt;
* It is possible to output at least one of the alternatives, if not both, with extant markup generators.&lt;br /&gt;
* They intentionally contain no language version identifier so the DOCTYPE will remain usable for all future revisions of HTML.&lt;br /&gt;
* The first is short and memorable to encourage its use.&lt;br /&gt;
* The legacy-compat DOCTYPE is intentionally unattractive and self descriptive of purpose to discourage unnecessary use.&lt;br /&gt;
&lt;br /&gt;
=== Under what conditions should a DOCTYPE be used in XHTML? ===&lt;br /&gt;
&lt;br /&gt;
Generally, the use of a DOCTYPE in XHTML is unnecessary.  However, there are cases where inclusion of a DOCTYPE is a reasonable thing to do:&lt;br /&gt;
&lt;br /&gt;
# The document is intended to be a polyglot document that may be served as both HTML or XHTML.&lt;br /&gt;
# You wish to declare entity references for use within the document.  Note that most browsers only read the internal subset and do not retrieve external entities. (This is not compatible with HTML, and thus not suitable for polyglot documents.)&lt;br /&gt;
# You wish to use a custom DTD for DTD-based validation. But take note of [http://about.validator.nu/#faq what&#039;s wrong with DTDs].&lt;br /&gt;
&lt;br /&gt;
=== How are pre-HTML5 documents parsed? ===&lt;br /&gt;
&lt;br /&gt;
All documents with a text/html media type (that is, including those without or with an HTML 2.0, HTML 3.2, HTML4, or XHTML1 DOCTYPE) will be parsed using the same parser algorithm as defined by HTML5. This matches what Web browsers have done for HTML documents so far and keeps code complexity down. That in turn is good for security, maintainability, and in general keeping the amount of bugs down. The HTML syntax of HTML5 therefore does not require a new parser and documents with an HTML4 DOCTYPE for example will be parsed using the HTML5 parser.&lt;br /&gt;
&lt;br /&gt;
Validators are allowed to have different code paths for previous levels of HTML.&lt;br /&gt;
&lt;br /&gt;
=== If there is no DTD, how can I validate my page? === &lt;br /&gt;
&lt;br /&gt;
With an [http://validator.whatwg.org/ HTML5 validator].&lt;br /&gt;
&lt;br /&gt;
=== What is an HTML Serialization? === &lt;br /&gt;
&lt;br /&gt;
The HTML serialization refers to the syntax of an HTML document defined in HTML5. The syntax is inspired by the SGML syntax from earlier versions of HTML, bits of XML (e.g. allowing a trailing slash on void elements, xmlns attributes), and reality of deployed content on the Web.&lt;br /&gt;
&lt;br /&gt;
Any document whose MIME type is determined to be &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt; is considered to be an HTML serialization and must be parsed using an HTML parser.&lt;br /&gt;
&lt;br /&gt;
=== What is an XML (or XHTML) Serialization? === &lt;br /&gt;
&lt;br /&gt;
The XML Serialization refers to the syntax defined by XML 1.0 and Namespaces in XML 1.0. A resource that has an XML MIME type, such as &amp;lt;code&amp;gt;application/xhtml+xml&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;application/xml&amp;lt;/code&amp;gt;, is an XML document and if it uses elements in the HTML namespace, it contains XHTML. If the root element is &amp;amp;#8220;html&amp;amp;#8221; in the HTML namespace, the document is referred to as an XHTML document.&lt;br /&gt;
&lt;br /&gt;
=== What MIME type does HTML5 use? === &lt;br /&gt;
&lt;br /&gt;
The HTML serialization &#039;&#039;must&#039;&#039; be served using the &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt; MIME type.&lt;br /&gt;
&lt;br /&gt;
The XHTML serialization &#039;&#039;must&#039;&#039; be served using an XML MIME type, such as &amp;lt;code&amp;gt;application/xhtml+xml&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;application/xml&amp;lt;/code&amp;gt;. Unlike XHTML1, XHTML5 &#039;&#039;must not&#039;&#039; be served as &amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Using the incorrect MIME type (&amp;lt;code&amp;gt;text/html&amp;lt;/code&amp;gt;) for XHTML will cause the document to be parsed according to parsing requirements for HTML. In other words, it will be treated as tag soup. Ensuring the use of an XML MIME type is the only way to ensure that browsers handle the document as XML.&lt;br /&gt;
&lt;br /&gt;
=== Should I close empty elements with &amp;lt;code&amp;gt;/&amp;amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;? === &lt;br /&gt;
&lt;br /&gt;
Void elements in HTML (e.g. the &amp;lt;code&amp;gt;br&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; elements) do not require a trailing slash. e.g. Instead of writing &amp;lt;code&amp;gt;&amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt;, you only need to write &amp;lt;code&amp;gt;&amp;amp;lt;br&amp;amp;gt;&amp;lt;/code&amp;gt;. This is the same as in HTML4. However, due to the widespread attempts to use XHTML1, there are a significant number of pages using the trailing slash. Because of this, the trailing slash syntax has been permitted on void elements in HTML in order to ease migration from XHTML1 to HTML5.&lt;br /&gt;
&lt;br /&gt;
HTML5 also introduces the ability to embed MathML elements. On elements inside a &amp;lt;code&amp;gt;math&amp;lt;/code&amp;gt; element the trailing slash works just like it does in XML. I.e. it closes the element. This is only inside that context however, it does not work for normal HTML elements.&lt;br /&gt;
&lt;br /&gt;
=== If I&amp;amp;#8217;m careful with the syntax I use in my HTML document, can I process it with an XML parser? === &lt;br /&gt;
&lt;br /&gt;
No, HTML and XML have [[HTML_vs._XHTML#Differences_Between_HTML_and_XHTML|many significant differences]], particularly parsing requirements, and you cannot process one using tools designed for the other. However, since HTML5 is defined in terms of the DOM, in most cases there are both HTML and XHTML serializations available that can represent the same document. There are, however, a few differences explained later that make it impossible to represent some HTML documents accurately as XHTML and vice versa. &lt;br /&gt;
&lt;br /&gt;
If you wish to process an HTML document as XHTML, it requires that you and convert it into XHTML first; and vice versa for processing XHTML as HTML.&lt;br /&gt;
&lt;br /&gt;
=== What is the namespace declaration? === &lt;br /&gt;
&lt;br /&gt;
In XHTML, you are required to specify the [http://www.w3schools.com/xml/xml_namespaces.asp namespace.]&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
In HTML, the &amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute is currently allowed on any HTML element, but only if it has the value &amp;amp;#8220;&amp;lt;code&amp;gt;http://www.w3.org/1999/xhtml&amp;lt;/code&amp;gt;&amp;amp;#8220;. It doesn&amp;amp;#8217;t do anything at all, it is merely allowed to ease migration from XHTML1. It is not actually a namespace declaration in HTML, because HTML doesn&amp;amp;#8217;t yet support namespaces.  See the question [[FAQ#Will_there_be_support_for_namespaces_in_HTML.3F|will there be support for namespaces in HTML]].&lt;br /&gt;
&lt;br /&gt;
=== Will there be support for namespaces in HTML? === &lt;br /&gt;
&lt;br /&gt;
HTML5 is being defined in terms of the DOM and during parsing of a text/html all HTML elements will be automatically put in the HTML namespace, &amp;lt;code&amp;gt;http://www.w3.org/1999/xhtml&amp;lt;/code&amp;gt;. However, unlike the XHTML serialization, there is no real namespace syntax available in the HTML serialization (see previous question). In other words, you do not need to declare the namespace in your HTML markup, as you do in XHTML. However, you are permitted to put an &amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute on each HTML element as long as the namespace is &amp;lt;code&amp;gt;http://www.w3.org/1999/xhtml&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In addition, the HTML syntax provides for a way to embed elements from MathML and SVG. Elements placed inside the container element &amp;lt;code&amp;gt;math&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;svg&amp;lt;/code&amp;gt; will automatically be put in the MathML namespace or the SVG namespace, respectively, by the parser. Namespace syntax is not required, but again an &amp;lt;code&amp;gt;xmlns&amp;lt;/code&amp;gt; attribute is allowed if its value is the right namespace.&lt;br /&gt;
&lt;br /&gt;
In conclusion, while HTML5 does not allow the XML namespace syntax, there is a way to embed MathML and SVG and the xmlns attribute can be used on any element under the given constraints, in a way that is reasonably compatible on the DOM level.&lt;br /&gt;
&lt;br /&gt;
=== How do I specify the character encoding? === &lt;br /&gt;
&lt;br /&gt;
For HTML, it is strongly recommended that you specify the encoding using the HTTP &amp;lt;code&amp;gt;Content-Type&amp;lt;/code&amp;gt; header. If you are unable to [http://www.w3.org/International/O-HTTP-charset configure your server] to send the correct headers, then you may use the &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element:&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;
The following restrictions apply to character encoding declarations:&lt;br /&gt;
&lt;br /&gt;
* The character encoding name given must be the name of the character encoding used to serialize the file.&lt;br /&gt;
* The value must be a [http://www.iana.org/assignments/character-sets valid character encoding name], and must be the preferred name for that encoding.&lt;br /&gt;
* The character encoding declaration must be serialized without the use of character references or character escapes of any kind.&lt;br /&gt;
* The &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element used for this purpose must occur within the first 512 bytes of the file.  It is considered good practice for this to be the first child of the &amp;lt;code&amp;gt;head&amp;lt;/code&amp;gt; element so that it is as close to the beginning of the file as possible.&lt;br /&gt;
&lt;br /&gt;
Note that this &amp;lt;code&amp;gt;meta&amp;lt;/code&amp;gt; element is different from HTML 4, though it is compatible with many browsers because of the way encoding detection has been implemented.&lt;br /&gt;
&lt;br /&gt;
For polyglot documents, which may be served as either HTML or XHTML, you may also include that in XHTML documents, but only if the encoding is &amp;quot;UTF-8&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To ease transition from HTML4 to HTML5, although the former is the recommended syntax, you may also use the following. (This does not apply to XHTML or polyglot documents)&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 XHTML, XML rules for determining the character encoding apply.  The meta element is never used for determining the encoding of an XHTML document (although it may appear in UTF-8 encoded XHTML documents).  You should use either the HTTP &amp;lt;code&amp;gt;Content-Type&amp;lt;/code&amp;gt; header or the XML declaration to specify the encoding.&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
Otherwise, you must use the default of &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;. It is recommended that you use &amp;lt;code&amp;gt;UTF-8&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== What are the differences between HTML and XHTML? === &lt;br /&gt;
&lt;br /&gt;
See the list of [[HTML vs. XHTML#Differences_Between_HTML_and_XHTML|differences between HTML and XHTML]] in the wiki.&lt;br /&gt;
&lt;br /&gt;
=== What are best practices to be compatible with HTML DOM and XHTML DOM? ===&lt;br /&gt;
&lt;br /&gt;
Though the intent is that HTML and XHTML can both produce identical DOMs, there still are some differences between working with an HTML DOM and an XHTML one.&lt;br /&gt;
&lt;br /&gt;
Case sensitivity :&lt;br /&gt;
* Whenever possible, avoid testing Element.tagName and Node.nodeName (or do toLowerCase() before testing).&lt;br /&gt;
Namespaces:&lt;br /&gt;
* Use the namespace-aware version for creating elements: Document.createElementNS(ns, elementName)&lt;br /&gt;
&lt;br /&gt;
=== Why does HTML5 legitimise tag soup? === &lt;br /&gt;
&lt;br /&gt;
Actually it doesn&amp;amp;#8217;t. This is a misconception that comes from the confusion between conformance requirements for documents, and the requirements for user agents.&lt;br /&gt;
&lt;br /&gt;
Due to the fundamental design principle of supporting existing content, the spec must define how to handle all HTML, regardless of whether documents are conforming or not. Therefore, the spec defines (or will define) precisely how to handle and recover from erroneous markup, much of which would be considered tag soup.&lt;br /&gt;
&lt;br /&gt;
For example, the spec defines algorithms for dealing with syntax errors such as incorrectly nested tags, which will ensure that a well structured DOM tree can be produced.&lt;br /&gt;
&lt;br /&gt;
Defining that is essential for one day achieving interoperability between browsers and reducing the dependence upon reverse engineering each other.&lt;br /&gt;
&lt;br /&gt;
However, the conformance requirements for authors are defined separately from the processing requirements. Just because browsers are required to handle erroneous content, it does not make such markup conforming.&lt;br /&gt;
&lt;br /&gt;
For example, user agents will be required to support the marquee element, but authors must not use the marquee element in conforming documents.&lt;br /&gt;
&lt;br /&gt;
It is important to make the distinction between the rules that apply to user agents and the rules that apply to authors for producing conforming documents. They are completely orthogonal.&lt;br /&gt;
&lt;br /&gt;
== HTML5 feature proposals ==&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should support &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; on any element! === &lt;br /&gt;
&lt;br /&gt;
The spec allows &amp;lt;a&amp;gt; to contain blocks. It doesn&#039;t support putting href=&amp;quot;&amp;quot; on any element, though.&lt;br /&gt;
&lt;br /&gt;
Supporting &amp;lt;code&amp;gt;href&amp;lt;/code&amp;gt; on any element has several problems associated with it that make it difficult to support in HTML5. The main reason this isn&#039;t in HTML5 is that browser vendors have reported that implementing it would be extremely complex. Browser vendors get to decide what they implement, and there&#039;s no point to us telling them to do something they aren&#039;t going to do. In addition:&lt;br /&gt;
&lt;br /&gt;
* It isn&amp;amp;#8217;t backwards compatible with existing browsers.&lt;br /&gt;
* It adds no new functionality that can&amp;amp;#8217;t already be achieved using the &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; element and a little script.&lt;br /&gt;
* It doesn&amp;amp;#8217;t make sense for all elements, such as interactive elements like &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;button&amp;lt;/code&amp;gt;, where the use of href would interfere with their normal function.&lt;br /&gt;
&lt;br /&gt;
The only advantage it seems to add is that it reduces typing for authors in some cases, but that is not a strong enough reason to support it in light of the other reasons.&lt;br /&gt;
&lt;br /&gt;
Wrapping &amp;lt;a&amp;gt; elements around blocks solves most use cases. It doesn&#039;t handle making rows in tables into links, though; for those just do something like this instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;tr onclick=&amp;quot;location = this.getElementsByTagName(&#039;a&#039;)[0]&amp;quot;&amp;gt; ... &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should support list headers! ===&lt;br /&gt;
&lt;br /&gt;
You can give a header to a list using the &amp;lt;figure&amp;gt; and &amp;lt;legend&amp;gt; elements:&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;Apples&amp;lt;/legend&amp;gt;&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Granny Smith&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Evil Apple of Knowledge&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Apple, Inc&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
 &amp;lt;/figure&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also label a group of lists using a definition list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;dl&amp;gt;&lt;br /&gt;
  &amp;lt;dt&amp;gt;Dry:&amp;lt;/dt&amp;gt;&lt;br /&gt;
  &amp;lt;dd&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;  &lt;br /&gt;
    &amp;lt;li&amp;gt;1c flour&amp;lt;/li&amp;gt;  &lt;br /&gt;
    &amp;lt;li&amp;gt;1/4c sugar&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;1tsp baking soda&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/dd&amp;gt;&lt;br /&gt;
  &amp;lt;dt&amp;gt;Wet:&amp;lt;/dt&amp;gt;&lt;br /&gt;
  &amp;lt;dd&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;  &lt;br /&gt;
    &amp;lt;li&amp;gt;1 egg &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;1/2c milk&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;1tsp vanilla extract&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/dd&amp;gt;&lt;br /&gt;
 &amp;lt;/dl&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These techniques are preferred over adding an &amp;lt;lh&amp;gt; element as proposed in the old HTML3 draft, mostly because of thorny issues with parsing near &amp;amp;lt;li&amp;gt; elements.&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should support a way for anyone to invent new elements! ===&lt;br /&gt;
&lt;br /&gt;
There are actually quite a number of ways for people to invent their own extensions to HTML:&lt;br /&gt;
&lt;br /&gt;
* Authors can use the &#039;&#039;class&#039;&#039; attribute to extend elements, effectively creating their own elements, while using the most applicable existing &amp;quot;real&amp;quot; HTML element, so that browsers and other tools that don&#039;t know of the extension can still support it somewhat well. This is the tack used by Microformats, for example.&lt;br /&gt;
* Authors can include data for scripts to process using the &#039;&#039;data-*=&amp;quot;&amp;quot;&#039;&#039; attributes. These are guaranteed to never be touched by browsers, and allow scripts to include data on HTML elements that scripts can then look for and process.&lt;br /&gt;
* Authors can use the &#039;&#039;&amp;lt;meta name=&amp;quot;&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;&#039;&#039; mechanism to include page-wide metadata. Names should be registered on the wiki&#039;s [[MetaExtensions]] page.&lt;br /&gt;
* Authors can use the &#039;&#039;rel=&amp;quot;&amp;quot;&#039;&#039; mechanism to annotate links with specific meanings. This is also used by Microformats. Names should be registered on the wiki&#039;s [[RelExtensions]] page.&lt;br /&gt;
* Authors can embed raw data using the &#039;&#039;&amp;lt;script type=&amp;quot;&amp;quot;&amp;gt;&#039;&#039; mechanism with a custom type, for further handling by a script.&lt;br /&gt;
* Authors can create plugins and invoke them using the &#039;&#039;&amp;lt;embed&amp;gt;&#039;&#039; element. This is how Flash works.&lt;br /&gt;
* Authors can extend APIs using the JS prototyping mechanism. This is widely used by script libraries, for instance.&lt;br /&gt;
* Authors can use the microdata feature (the item=&amp;quot;&amp;quot; and itemprop=&amp;quot;&amp;quot; attributes) to embed nested name-value pairs of data to be shared with other applications and sites.&lt;br /&gt;
* Authors can propose new elements and attributes to the working group and, if the wider community agrees that they are worth the effort, they are added to the language. (If an addition is urgent, please let us know when proposing it, and we will try to address it quickly.)&lt;br /&gt;
&lt;br /&gt;
There is currently no mechanism for introducing new proprietary features in HTML documents (i.e. for introducing new elements and attributes) without discussing the extension with user agent vendors and the wider Web community. This is intentional; we don&#039;t want user agents inventing their own proprietary elements and attributes like in the &amp;quot;bad old days&amp;quot; without working with interested parties to make sure their feature is well designed.&lt;br /&gt;
&lt;br /&gt;
We request that people not invent new elements and attributes to add to HTML without first contacting the working group and getting a proposal discussed with interested parties.&lt;br /&gt;
&lt;br /&gt;
=== HTML5 should group &amp;amp;lt;dt&amp;gt;s and &amp;amp;lt;dd&amp;gt;s together in &amp;lt;di&amp;gt;s! === &lt;br /&gt;
&lt;br /&gt;
This is a styling problem and should be fixed in CSS. There&#039;s no reason to add a grouping element to HTML, as the semantics are already unambiguous.&lt;br /&gt;
&lt;br /&gt;
=== Why are some presentational elements like &amp;amp;lt;b&amp;gt;, &amp;amp;lt;i&amp;gt; and &amp;amp;lt;small&amp;gt; still included? ===&lt;br /&gt;
&lt;br /&gt;
The inclusion of these elements is a largely pragmatic decision based upon their widespread usage, and their usefulness for use cases which are not covered by more specific elements.&lt;br /&gt;
&lt;br /&gt;
While there are a number of common use cases for italics which are covered by more specific elements, such as emphasis (em), citations (cite), definitions (dfn) and variables (var), there are many other use cases which are not covered well by these elements.  For example, a taxonomic designation, a technical term, an idiomatic phrase from another language, a thought, or a ship name.&lt;br /&gt;
&lt;br /&gt;
Similarly, although a number of common use cases for bold text are also covered by more specific elements such as strong emphasis (strong), headings (h1-h6) or table headers (th); there are others which are not, such as key words in a document abstract or product names in a review.&lt;br /&gt;
&lt;br /&gt;
Some people argue that in such cases, the span element should be used with an appropriate class name and associated stylesheet.  However, the b and i elements provide for a reasonable fallback styling in environments that don&#039;t support stylesheets or which do not render visually, such as screen readers, and they also provide some indication that the text is somehow distinct from its surrounding content.&lt;br /&gt;
&lt;br /&gt;
In essence, they convey distinct, though non-specific, semantics, which are to be determined by the reader in the context of their use. In other words, although they don’t convey specific semantics by themselves, they indicate that that the content is somehow distinct from its surroundings and leaves the interpretation of the semantics up to the reader.&lt;br /&gt;
&lt;br /&gt;
This is further explained in the article &amp;lt;cite&amp;gt;[http://lachy.id.au/log/2007/05/b-and-i The &amp;amp;lt;b&amp;gt; and &amp;amp;lt;i&amp;gt; Elements]&amp;lt;/cite&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Similarly, the small element is defined for content that is commonly typographically rendered in small print, and which often referred to as fine print.  This could include copyright statements, disclaimers and other legal text commonly found at the end of a document.&lt;br /&gt;
&lt;br /&gt;
==== But they are PRESENTATIONAL! ====&lt;br /&gt;
&lt;br /&gt;
While &amp;amp;lt;b&amp;gt;, &amp;amp;lt;i&amp;gt; and &amp;amp;lt;small&amp;gt; historically have been presentational, they are defined in a media-independent manner in HTML5. For example, &amp;amp;lt;small&amp;gt; corresponds to the really quickly spoken part at the end of radio advertisements. The problem with elements like &amp;amp;lt;font&amp;gt; isn&#039;t that they are &#039;&#039;presentational&#039;&#039; per se, it&#039;s that they are media-dependent (they apply to visual browsers but not to speech browsers).&lt;br /&gt;
&lt;br /&gt;
=== The &amp;amp;lt;cite&amp;gt; element should allow names of people to be marked up ===&lt;br /&gt;
&lt;br /&gt;
From what we&#039;ve seen, &amp;amp;lt;cite&amp;gt; is almost always used to mean &amp;quot;italics&amp;quot;. More careful authors have used the element to mark up names and titles, and some people have gone out of their way to only mark up citations.&lt;br /&gt;
&lt;br /&gt;
So, we can&#039;t really decide what the element should be based on past practice, like we usually do.&lt;br /&gt;
&lt;br /&gt;
This leaves the question of what is the most useful use we can put the element to, if we keep it. The conclusion so far has been that the most useful use for &amp;amp;lt;cite&amp;gt; is as an element to allow typographic control over titles, since those are often made italics, and that semantic is roughly close to what it meant in previous versions, and happens to match at least one of the common uses for the element. Generally, however, names and titles aren&#039;t typeset the same way, so making the element apply to both would lead to confusing typography.&lt;br /&gt;
&lt;br /&gt;
There are already many ways of marking up names already (e.g. the hCard Microformat, the microdata vCard vocabulary, &amp;amp;lt;span&amp;gt; and class names, etc), if you really need it.&lt;br /&gt;
&lt;br /&gt;
=== The &amp;amp;lt;time&amp;gt; element should allow vague times (&amp;quot;March&amp;quot;) and times from ancient history to be marked up ===&lt;br /&gt;
&lt;br /&gt;
This has been discussed a number of times. For an overview of the topic, please see these e-mails:&lt;br /&gt;
* http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/018888.html&lt;br /&gt;
* http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-August/021745.html&lt;br /&gt;
At this stage, as discussed in the second of those e-mails, the best way forward is to demonstrate that there are communities interested in solving this problem, by using existing techniques such as microdata to address it. If such a solution achieves a high adoption rate, that will substantially increase the strength of the proposals.&lt;br /&gt;
&lt;br /&gt;
== Is there documentation of the reasoning behind various decisions?  ==&lt;br /&gt;
&lt;br /&gt;
Sort of.  Often the only documentation is the archive of the mailing list or IRC channel at the time.  Sometimes an issue was raised formally, and resolution is recorded in the issue tracker.  Sometimes, there is an explanation in the specification, but doing that everywhere would make the specification even larger.&lt;br /&gt;
&lt;br /&gt;
For a few cases that someone did take the time document, the information can be found at the following locations.&lt;br /&gt;
&lt;br /&gt;
[WhyNoNameSpaces]&lt;br /&gt;
&lt;br /&gt;
[WhyNoScriptImplements]&lt;br /&gt;
&lt;br /&gt;
== WHATWG and the W3C HTML WG ==&lt;br /&gt;
&lt;br /&gt;
=== Are there plans to merge the groups? ===&lt;br /&gt;
&lt;br /&gt;
Not especially. There are people who for a number of reasons are unable to join the W3C group, and there are others who are unable to join the WHATWG group. The editor is in both groups and takes all input into account -- and there are far more places where input on HTML5 is sent than just these two mailing lists (e.g. blogs, www-html@w3.org, forums, direct mail, meetings, etc).&lt;br /&gt;
&lt;br /&gt;
=== Which group has authority in the event of a dispute? ===&lt;br /&gt;
&lt;br /&gt;
The editor takes feedback from everyone into account and does not look at the source of those arguments for technical arguments.&lt;br /&gt;
&lt;br /&gt;
=== What is the history of HTML? ===&lt;br /&gt;
&lt;br /&gt;
Here are some documents that detail the history of HTML:&lt;br /&gt;
* [http://esw.w3.org/topic/HTML/history HTML&#039;s timeline on the ESW wiki]&lt;br /&gt;
* [http://www.whatwg.org/specs/web-apps/current-work/multipage/introduction.html#history0 The history section in HTML5 itself]&lt;br /&gt;
&lt;br /&gt;
== Web Workers ==&lt;br /&gt;
&lt;br /&gt;
Besides HTML5 the WHATWG works on [http://www.whatwg.org/specs/web-workers/current-work/ Web Workers]. It does this together with the W3C WebApps Working Group.&lt;br /&gt;
&lt;br /&gt;
== Mailing List ==&lt;br /&gt;
&lt;br /&gt;
=== Should I top-post or reply inline? ===&lt;br /&gt;
&lt;br /&gt;
Please reply inline or make the reply self-contained.&lt;br /&gt;
&lt;br /&gt;
Basically, please remove anything after the last line you have written, so that people don&#039;t have to scroll down to find out what else you wrote, and make sure that your e-mail makes sense on its own, as it will probably be read out of context years later.&lt;br /&gt;
&lt;br /&gt;
That is, you should reply like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Ian wrote:&lt;br /&gt;
&amp;gt; What do you want? &lt;br /&gt;
&lt;br /&gt;
I want cats!&lt;br /&gt;
&lt;br /&gt;
&amp;gt; When do you want it?&lt;br /&gt;
&lt;br /&gt;
Now!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should definitely not reply like this (because this requires people to read your e-mail backwards):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;error&amp;quot; &amp;gt;&lt;br /&gt;
No&lt;br /&gt;
&lt;br /&gt;
Ian wrote:&lt;br /&gt;
&amp;gt; Is this a good example of how to post e-mails?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should also not reply like this (because this leaves people to wonder if there is any text lower down that you have written):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;error&amp;quot; &amp;gt;&lt;br /&gt;
This is a bad way to write e-mail.&lt;br /&gt;
&lt;br /&gt;
Ian wrote:&lt;br /&gt;
&amp;gt; Is this a good way to write e-mail?&lt;br /&gt;
&amp;gt; Lorem ipsum foo bar baz.&lt;br /&gt;
&amp;gt; Unrelated other bits that aren&#039;t replied to.&lt;br /&gt;
&amp;gt; Yet more text&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should also not reply like this (with no context at all), because the reader will not know what you are referring to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;error&amp;quot; &amp;gt;&lt;br /&gt;
No, I think that&#039;s a bad idea. It wouldn&#039;t be good for the readers, for instance.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quote enough original text or provide an introduction yourself.&lt;br /&gt;
&lt;br /&gt;
If you use Outlook or Outlook Express, you can use either [http://home.in.tum.de/~jain/software/outlook-quotefix/ Outlook-QuoteFix] or [http://home.in.tum.de/~jain/software/oe-quotefix/ OE-QuoteFix]. These plugins fix several of Outlook&#039;s problems with sending properly formatted emails.&lt;br /&gt;
H&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Video_accessibility&amp;diff=3338</id>
		<title>Video accessibility</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Video_accessibility&amp;diff=3338"/>
		<updated>2008-09-11T02:37:53Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: /* Accessibility Use Cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There appears to be consensus among the [http://wcagsamurai.org/errata/errata.html WCAG Samurai] and [http://www.w3.org/TR/WCAG20/#media-equiv the current WGAC 2.0 draft] that the primary ways of making video with soundtrack accessible are to provide captioning for the deaf and audio description for the blind. (The WCAG 2.0 draft also mentions full-text alternative as an alternative to audio description.)&lt;br /&gt;
&lt;br /&gt;
Presumably, the captioning and audio description need to be “closed” (off-by-default, available on request) as content providers might hesitate presenting captions to those who do hear the soundtrack or audio description to those who already see the video track.&lt;br /&gt;
&lt;br /&gt;
==Closed Captioning==&lt;br /&gt;
&lt;br /&gt;
Technically this is timed text presented in sync with the video track. &lt;br /&gt;
&lt;br /&gt;
It is assumed to be in the same language as the main soundtrack. Content-wise, it is expected to mention semantically  important non-verbal sounds and identify speakers when the video doesn&#039;t make it clear who is talking.&lt;br /&gt;
&lt;br /&gt;
In terms of player app decisions, this track shouldn&#039;t be presented by default but it should play if the user has opted in (perhaps via a permanent setting) to showing captioning. Also, if the player app knows that audio output has been turned off either in the app or in the OS, it might make sense to turn on captioning in that case as well.&lt;br /&gt;
&lt;br /&gt;
===Video Format Support===&lt;br /&gt;
&lt;br /&gt;
====Ogg====&lt;br /&gt;
&lt;br /&gt;
CMML has been put forward as the timed text format for Ogg. (How to mark as &#039;&#039;closed&#039;&#039; captions?)&lt;br /&gt;
&lt;br /&gt;
====MP4====&lt;br /&gt;
&lt;br /&gt;
3GPP Timed Text aka. MPEG-4 part 17 is the timed text format for MP4. (How to mark as &#039;&#039;closed&#039;&#039; captions?)&lt;br /&gt;
&lt;br /&gt;
==Closed Audio Description==&lt;br /&gt;
&lt;br /&gt;
Technically this is a second sound track presented in sync with the main sound track.&lt;br /&gt;
&lt;br /&gt;
It is assumed to be in the same language as the main soundtrack.&lt;br /&gt;
&lt;br /&gt;
In terms of player app decisions, this track shouldn&#039;t be presented by default but it should play if the user has opted in (perhaps via a permanent setting) to playing audio descriptions. Also, if the player app knows that a screen reader is in use, it might make sense to use that as a cue of turning on audio descriptions.&lt;br /&gt;
&lt;br /&gt;
===Video Format Support===&lt;br /&gt;
&lt;br /&gt;
====Ogg====&lt;br /&gt;
&lt;br /&gt;
How to flag a second sound track (Speex?) as &#039;&#039;closed&#039;&#039; audio description?&lt;br /&gt;
&lt;br /&gt;
====MP4====&lt;br /&gt;
&lt;br /&gt;
How to flag a second sound track as &#039;&#039;closed&#039;&#039; audio description?&lt;br /&gt;
&lt;br /&gt;
==Data Placement in the Web Context==&lt;br /&gt;
&lt;br /&gt;
Should the above-mentioned tracks be muxed into the main video file (Pro: all tracks travel together; Con: off-by-default tracks take bandwidth)? Or should they be separate HTTP resources (Pro: bandwidth optimization; Con: Web-specific content assembly from many files may not survive downloading to disk, etc.)  Also note that separate files makes it easier for a 3rd party to add tracks -- but these tracks may be commentary rather than captions, so this is both a pro and a con.&lt;br /&gt;
&lt;br /&gt;
==Related Non-Accessibility Features==&lt;br /&gt;
&lt;br /&gt;
There are technically similar non-accessibility (i.e. not related to addressing needs arising from a disability) features related to translation.&lt;br /&gt;
&lt;br /&gt;
===Translation Subtitles===&lt;br /&gt;
&lt;br /&gt;
A site in language A might want to embed a video with the soundtrack in language B but subtitles in language A. For example, a Finnish-language site embedding an English-language video would want to have Finnish subtitles. Unlike captions, these subtitles should be on by default and being able to suppress the subtitles is considered an additional nice-to-have feature.&lt;br /&gt;
&lt;br /&gt;
There are also same-language subtitles (e.g. French subtitles with French-language soundtrack) for language learners.  Unlike captions, same-language subtitles don&#039;t inform the reader about non-verbal sounds or identify speakers.&lt;br /&gt;
&lt;br /&gt;
Subtitles need different track metadata so that they can be displayed by default. (Due to concerns about the reliability of subtitling technology, many content providers probably opt to burn the subtitles into the video track as part of the image data, even though this disturbs video compression.)&lt;br /&gt;
&lt;br /&gt;
===Alternative Dubbed Sound Tracks===&lt;br /&gt;
&lt;br /&gt;
Due to bandwidth concerns, Web content providers will probably opt to provide separate video files for dubbed languages.&lt;br /&gt;
&lt;br /&gt;
==Selection Mechanisms==&lt;br /&gt;
&lt;br /&gt;
These use cases are broken into two categories: Acessibility, and the broader Universality.  Due to their nature and similarity to real accessibility use cases, it is sometimes useful to consider possible solutions to accessibility in the context of the more general universality issues as well.&lt;br /&gt;
&lt;br /&gt;
===Accessibility Use Cases===&lt;br /&gt;
&lt;br /&gt;
====Deaf or Hearing Impaired User Viewing a Video====&lt;br /&gt;
&lt;br /&gt;
A user who is unable to hear due to physical disability chooses to watch a video.  The video is an interview between 2 people, discussing a topic that the user is interested in.  The video has been provided with associated closed captions and the user would like to have those turned on so that he may understand speech and other significant sounds within the video.&lt;br /&gt;
&lt;br /&gt;
====A Blind User Listening to a Video&#039;s Soundtrack====&lt;br /&gt;
&lt;br /&gt;
A blind user cannot see the video, but is still able to hear the audio, chooses to listen to the sound track of a video anyway.  The video is a &amp;quot;webisode&amp;quot; (A web episode - like a TV episode, but on the web) of a drama series the user enjoys watching.  The video conveys some important information visually in the video, which is not made apparent in the main sound track, such as what the characters are doing and where they are.  But the video also contains an alternative or complimentary track for audio descriptions, which describes significant parts of the video.  The user wishes to enable the audio descriptions to more easily comprehend the content of the video.&lt;br /&gt;
&lt;br /&gt;
There are two varations of this use case:&lt;br /&gt;
&lt;br /&gt;
# The computer that the user is using is primarily meant for his own use, and generally not shared with other non-disabled users, and it would be convenient if this was not required to be a manual selection each time.&lt;br /&gt;
# The computer is shared between the disabled user and other non-disabled people.  The accessibility features used by the disabled user are turned when used by others, and it would be inconvenient if the audio descriptions were automatically selected for them too.&lt;br /&gt;
&lt;br /&gt;
====A Deaf and Blind User is Unable to See or Hear the Video====&lt;br /&gt;
&lt;br /&gt;
A deaf and blind user cannot see or hear the video, and primarily accesses content using a braille reader.  The video is a tutorial and demonstration about how to perform a particular science experiment at home.  The user wishes to understand the content of the video so that he can teach the experiment to his nephew.  The user needs to read the full text description, which describes and transcribes significant aural and visual content in the video.  He does not need the video to be loaded, but instead needs to be provided with easy access to the full text description.&lt;br /&gt;
&lt;br /&gt;
====Author Embedding Third-Party Media, but Attempting to Keep the Web Page Accessible====&lt;br /&gt;
&lt;br /&gt;
From the perspective of the end user, this could be any of the other use cases.  The reason to call this case out separately is that there needs to be a way for a web page author to provide accessibility and/or fallback information even when the referenced media itself cannot be modified.&lt;br /&gt;
&lt;br /&gt;
===Related Universality Use Cases===&lt;br /&gt;
&lt;br /&gt;
====Sound Equipment is Unavailable, Muted, or has Low Volume====&lt;br /&gt;
&lt;br /&gt;
A user who is unable to hear the audio in the video well because his computer lacks audio equipment, such as a sound card, headphones or speakers; or because the volume needs to be kept down low in the user&#039;s environment.  The video has been provided with either closed captions or same-language subtitles.  Similarly to a hearing impaired user, the user would like to have the ability to turn on captions or subtitles so they may more easily understand what is being said.&lt;br /&gt;
&lt;br /&gt;
====A User Wants to Access a Transcript====&lt;br /&gt;
&lt;br /&gt;
A user chooses not to watch a video, regardless of whether or not they are physically able.  The video is of an election campaign speech and has been published with a transcript of the speech alongside.  The user wishes to thoroughly review the speech and compare it with those from the other candidates.  He accesses the transcript and prints it out, to enable him to read it and make notes or highlight important sections.&lt;br /&gt;
&lt;br /&gt;
====A non-disabled user wants to read a full text description====&lt;br /&gt;
&lt;br /&gt;
A video of a slide presentation has been published, but the user wishes to read the full text description instead.  The description includes both a transcript of what the presenter said and images of the slides.  The user chooses to read all or part of the full text description, instead of watching the whole video.&lt;br /&gt;
&lt;br /&gt;
===Problems===&lt;br /&gt;
&lt;br /&gt;
# A user who is deaf or hearing impaired needs a way to express his preference for captioning so that he is not required to manually enable them each time.&lt;br /&gt;
# A user without sound equipment on a particular device may also wish to express the preference for captioning to avoid manual selection each time.&lt;br /&gt;
# A user who is only temporarily unable to hear the audio due to low or muted volume needs a way to manually enable closed captions or same-language subtitle tracks on a per-video basis, if raising the volume is not practical.&lt;br /&gt;
# A blind user needs a way to express his preference for audio descriptions so that he is not required to manually select the descriptions each time.&lt;br /&gt;
# A user needs to have a way to manually enable or disable an alternative or complimentary audio track containing audio descriptions.&lt;br /&gt;
# A user, regardless of disability, needs a way to access a video transcript or full text description.&lt;br /&gt;
# A user needs a way to prevent their browser from automatically downloading video that they don&#039;t want or need.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solutions===&lt;br /&gt;
&lt;br /&gt;
(to be completed)&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Video_accessibility&amp;diff=3337</id>
		<title>Video accessibility</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Video_accessibility&amp;diff=3337"/>
		<updated>2008-09-11T02:30:00Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: /* A Blind User Listing to a Video&amp;#039;s Soundtrack */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There appears to be consensus among the [http://wcagsamurai.org/errata/errata.html WCAG Samurai] and [http://www.w3.org/TR/WCAG20/#media-equiv the current WGAC 2.0 draft] that the primary ways of making video with soundtrack accessible are to provide captioning for the deaf and audio description for the blind. (The WCAG 2.0 draft also mentions full-text alternative as an alternative to audio description.)&lt;br /&gt;
&lt;br /&gt;
Presumably, the captioning and audio description need to be “closed” (off-by-default, available on request) as content providers might hesitate presenting captions to those who do hear the soundtrack or audio description to those who already see the video track.&lt;br /&gt;
&lt;br /&gt;
==Closed Captioning==&lt;br /&gt;
&lt;br /&gt;
Technically this is timed text presented in sync with the video track. &lt;br /&gt;
&lt;br /&gt;
It is assumed to be in the same language as the main soundtrack. Content-wise, it is expected to mention semantically  important non-verbal sounds and identify speakers when the video doesn&#039;t make it clear who is talking.&lt;br /&gt;
&lt;br /&gt;
In terms of player app decisions, this track shouldn&#039;t be presented by default but it should play if the user has opted in (perhaps via a permanent setting) to showing captioning. Also, if the player app knows that audio output has been turned off either in the app or in the OS, it might make sense to turn on captioning in that case as well.&lt;br /&gt;
&lt;br /&gt;
===Video Format Support===&lt;br /&gt;
&lt;br /&gt;
====Ogg====&lt;br /&gt;
&lt;br /&gt;
CMML has been put forward as the timed text format for Ogg. (How to mark as &#039;&#039;closed&#039;&#039; captions?)&lt;br /&gt;
&lt;br /&gt;
====MP4====&lt;br /&gt;
&lt;br /&gt;
3GPP Timed Text aka. MPEG-4 part 17 is the timed text format for MP4. (How to mark as &#039;&#039;closed&#039;&#039; captions?)&lt;br /&gt;
&lt;br /&gt;
==Closed Audio Description==&lt;br /&gt;
&lt;br /&gt;
Technically this is a second sound track presented in sync with the main sound track.&lt;br /&gt;
&lt;br /&gt;
It is assumed to be in the same language as the main soundtrack.&lt;br /&gt;
&lt;br /&gt;
In terms of player app decisions, this track shouldn&#039;t be presented by default but it should play if the user has opted in (perhaps via a permanent setting) to playing audio descriptions. Also, if the player app knows that a screen reader is in use, it might make sense to use that as a cue of turning on audio descriptions.&lt;br /&gt;
&lt;br /&gt;
===Video Format Support===&lt;br /&gt;
&lt;br /&gt;
====Ogg====&lt;br /&gt;
&lt;br /&gt;
How to flag a second sound track (Speex?) as &#039;&#039;closed&#039;&#039; audio description?&lt;br /&gt;
&lt;br /&gt;
====MP4====&lt;br /&gt;
&lt;br /&gt;
How to flag a second sound track as &#039;&#039;closed&#039;&#039; audio description?&lt;br /&gt;
&lt;br /&gt;
==Data Placement in the Web Context==&lt;br /&gt;
&lt;br /&gt;
Should the above-mentioned tracks be muxed into the main video file (Pro: all tracks travel together; Con: off-by-default tracks take bandwidth)? Or should they be separate HTTP resources (Pro: bandwidth optimization; Con: Web-specific content assembly from many files may not survive downloading to disk, etc.)  Also note that separate files makes it easier for a 3rd party to add tracks -- but these tracks may be commentary rather than captions, so this is both a pro and a con.&lt;br /&gt;
&lt;br /&gt;
==Related Non-Accessibility Features==&lt;br /&gt;
&lt;br /&gt;
There are technically similar non-accessibility (i.e. not related to addressing needs arising from a disability) features related to translation.&lt;br /&gt;
&lt;br /&gt;
===Translation Subtitles===&lt;br /&gt;
&lt;br /&gt;
A site in language A might want to embed a video with the soundtrack in language B but subtitles in language A. For example, a Finnish-language site embedding an English-language video would want to have Finnish subtitles. Unlike captions, these subtitles should be on by default and being able to suppress the subtitles is considered an additional nice-to-have feature.&lt;br /&gt;
&lt;br /&gt;
There are also same-language subtitles (e.g. French subtitles with French-language soundtrack) for language learners.  Unlike captions, same-language subtitles don&#039;t inform the reader about non-verbal sounds or identify speakers.&lt;br /&gt;
&lt;br /&gt;
Subtitles need different track metadata so that they can be displayed by default. (Due to concerns about the reliability of subtitling technology, many content providers probably opt to burn the subtitles into the video track as part of the image data, even though this disturbs video compression.)&lt;br /&gt;
&lt;br /&gt;
===Alternative Dubbed Sound Tracks===&lt;br /&gt;
&lt;br /&gt;
Due to bandwidth concerns, Web content providers will probably opt to provide separate video files for dubbed languages.&lt;br /&gt;
&lt;br /&gt;
==Selection Mechanisms==&lt;br /&gt;
&lt;br /&gt;
These use cases are broken into two categories: Acessibility, and the broader Universality.  Due to their nature and similarity to real accessibility use cases, it is sometimes useful to consider possible solutions to accessibility in the context of the more general universality issues as well.&lt;br /&gt;
&lt;br /&gt;
===Accessibility Use Cases===&lt;br /&gt;
&lt;br /&gt;
====Deaf or Hearing Impaired User Viewing a Video====&lt;br /&gt;
&lt;br /&gt;
A user who is unable to hear due to physical disability chooses to watch a video.  The video is an interview between 2 people, discussing a topic that the user is interested in.  The video has been provided with associated closed captions and the user would like to have those turned on so that he may understand speech and other significant sounds within the video.&lt;br /&gt;
&lt;br /&gt;
====A Blind User Listening to a Video&#039;s Soundtrack====&lt;br /&gt;
&lt;br /&gt;
A blind user cannot see the video, but is still able to hear the audio, chooses to listen to the sound track of a video anyway.  The video is a &amp;quot;webisode&amp;quot; (A web episode - like a TV episode, but on the web) of a drama series the user enjoys watching.  The video conveys some important information visually in the video, which is not made apparent in the main sound track, such as what the characters are doing and where they are.  But the video also contains an alternative or complimentary track for audio descriptions, which describes significant parts of the video.  The user wishes to enable the audio descriptions to more easily comprehend the content of the video.&lt;br /&gt;
&lt;br /&gt;
There are two varations of this use case:&lt;br /&gt;
&lt;br /&gt;
# The computer that the user is using is primarily meant for his own use, and generally not shared with other non-disabled users, and it would be convenient if this was not required to be a manual selection each time.&lt;br /&gt;
# The computer is shared between the disabled user and other non-disabled people.  The accessibility features used by the disabled user are turned when used by others, and it would be inconvenient if the audio descriptions were automatically selected for them too.&lt;br /&gt;
&lt;br /&gt;
====A Deaf and Blind User is Unable to See or Hear the Video====&lt;br /&gt;
&lt;br /&gt;
A deaf and blind user cannot see or hear the video, and primarily accesses content using a braille reader.  The video is a tutorial and demonstration about how to perform a particular science experiment at home.  The user wishes to understand the content of the video so that he can teach the experiment to his nephew.  The user needs to read the full text description, which describes and transcribes significant aural and visual content in the video.  He does not need the video to be loaded, but instead needs to be provided with easy access to the full text description.&lt;br /&gt;
&lt;br /&gt;
===Related Universality Use Cases===&lt;br /&gt;
&lt;br /&gt;
====Sound Equipment is Unavailable, Muted, or has Low Volume====&lt;br /&gt;
&lt;br /&gt;
A user who is unable to hear the audio in the video well because his computer lacks audio equipment, such as a sound card, headphones or speakers; or because the volume needs to be kept down low in the user&#039;s environment.  The video has been provided with either closed captions or same-language subtitles.  Similarly to a hearing impaired user, the user would like to have the ability to turn on captions or subtitles so they may more easily understand what is being said.&lt;br /&gt;
&lt;br /&gt;
====A User Wants to Access a Transcript====&lt;br /&gt;
&lt;br /&gt;
A user chooses not to watch a video, regardless of whether or not they are physically able.  The video is of an election campaign speech and has been published with a transcript of the speech alongside.  The user wishes to thoroughly review the speech and compare it with those from the other candidates.  He accesses the transcript and prints it out, to enable him to read it and make notes or highlight important sections.&lt;br /&gt;
&lt;br /&gt;
====A non-disabled user wants to read a full text description====&lt;br /&gt;
&lt;br /&gt;
A video of a slide presentation has been published, but the user wishes to read the full text description instead.  The description includes both a transcript of what the presenter said and images of the slides.  The user chooses to read all or part of the full text description, instead of watching the whole video.&lt;br /&gt;
&lt;br /&gt;
===Problems===&lt;br /&gt;
&lt;br /&gt;
# A user who is deaf or hearing impaired needs a way to express his preference for captioning so that he is not required to manually enable them each time.&lt;br /&gt;
# A user without sound equipment on a particular device may also wish to express the preference for captioning to avoid manual selection each time.&lt;br /&gt;
# A user who is only temporarily unable to hear the audio due to low or muted volume needs a way to manually enable closed captions or same-language subtitle tracks on a per-video basis, if raising the volume is not practical.&lt;br /&gt;
# A blind user needs a way to express his preference for audio descriptions so that he is not required to manually select the descriptions each time.&lt;br /&gt;
# A user needs to have a way to manually enable or disable an alternative or complimentary audio track containing audio descriptions.&lt;br /&gt;
# A user, regardless of disability, needs a way to access a video transcript or full text description.&lt;br /&gt;
# A user needs a way to prevent their browser from automatically downloading video that they don&#039;t want or need.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solutions===&lt;br /&gt;
&lt;br /&gt;
(to be completed)&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Video_accessibility&amp;diff=3336</id>
		<title>Video accessibility</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Video_accessibility&amp;diff=3336"/>
		<updated>2008-09-11T02:28:42Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: /* Deaf or Hearing Impaied User Viewing a Video */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There appears to be consensus among the [http://wcagsamurai.org/errata/errata.html WCAG Samurai] and [http://www.w3.org/TR/WCAG20/#media-equiv the current WGAC 2.0 draft] that the primary ways of making video with soundtrack accessible are to provide captioning for the deaf and audio description for the blind. (The WCAG 2.0 draft also mentions full-text alternative as an alternative to audio description.)&lt;br /&gt;
&lt;br /&gt;
Presumably, the captioning and audio description need to be “closed” (off-by-default, available on request) as content providers might hesitate presenting captions to those who do hear the soundtrack or audio description to those who already see the video track.&lt;br /&gt;
&lt;br /&gt;
==Closed Captioning==&lt;br /&gt;
&lt;br /&gt;
Technically this is timed text presented in sync with the video track. &lt;br /&gt;
&lt;br /&gt;
It is assumed to be in the same language as the main soundtrack. Content-wise, it is expected to mention semantically  important non-verbal sounds and identify speakers when the video doesn&#039;t make it clear who is talking.&lt;br /&gt;
&lt;br /&gt;
In terms of player app decisions, this track shouldn&#039;t be presented by default but it should play if the user has opted in (perhaps via a permanent setting) to showing captioning. Also, if the player app knows that audio output has been turned off either in the app or in the OS, it might make sense to turn on captioning in that case as well.&lt;br /&gt;
&lt;br /&gt;
===Video Format Support===&lt;br /&gt;
&lt;br /&gt;
====Ogg====&lt;br /&gt;
&lt;br /&gt;
CMML has been put forward as the timed text format for Ogg. (How to mark as &#039;&#039;closed&#039;&#039; captions?)&lt;br /&gt;
&lt;br /&gt;
====MP4====&lt;br /&gt;
&lt;br /&gt;
3GPP Timed Text aka. MPEG-4 part 17 is the timed text format for MP4. (How to mark as &#039;&#039;closed&#039;&#039; captions?)&lt;br /&gt;
&lt;br /&gt;
==Closed Audio Description==&lt;br /&gt;
&lt;br /&gt;
Technically this is a second sound track presented in sync with the main sound track.&lt;br /&gt;
&lt;br /&gt;
It is assumed to be in the same language as the main soundtrack.&lt;br /&gt;
&lt;br /&gt;
In terms of player app decisions, this track shouldn&#039;t be presented by default but it should play if the user has opted in (perhaps via a permanent setting) to playing audio descriptions. Also, if the player app knows that a screen reader is in use, it might make sense to use that as a cue of turning on audio descriptions.&lt;br /&gt;
&lt;br /&gt;
===Video Format Support===&lt;br /&gt;
&lt;br /&gt;
====Ogg====&lt;br /&gt;
&lt;br /&gt;
How to flag a second sound track (Speex?) as &#039;&#039;closed&#039;&#039; audio description?&lt;br /&gt;
&lt;br /&gt;
====MP4====&lt;br /&gt;
&lt;br /&gt;
How to flag a second sound track as &#039;&#039;closed&#039;&#039; audio description?&lt;br /&gt;
&lt;br /&gt;
==Data Placement in the Web Context==&lt;br /&gt;
&lt;br /&gt;
Should the above-mentioned tracks be muxed into the main video file (Pro: all tracks travel together; Con: off-by-default tracks take bandwidth)? Or should they be separate HTTP resources (Pro: bandwidth optimization; Con: Web-specific content assembly from many files may not survive downloading to disk, etc.)  Also note that separate files makes it easier for a 3rd party to add tracks -- but these tracks may be commentary rather than captions, so this is both a pro and a con.&lt;br /&gt;
&lt;br /&gt;
==Related Non-Accessibility Features==&lt;br /&gt;
&lt;br /&gt;
There are technically similar non-accessibility (i.e. not related to addressing needs arising from a disability) features related to translation.&lt;br /&gt;
&lt;br /&gt;
===Translation Subtitles===&lt;br /&gt;
&lt;br /&gt;
A site in language A might want to embed a video with the soundtrack in language B but subtitles in language A. For example, a Finnish-language site embedding an English-language video would want to have Finnish subtitles. Unlike captions, these subtitles should be on by default and being able to suppress the subtitles is considered an additional nice-to-have feature.&lt;br /&gt;
&lt;br /&gt;
There are also same-language subtitles (e.g. French subtitles with French-language soundtrack) for language learners.  Unlike captions, same-language subtitles don&#039;t inform the reader about non-verbal sounds or identify speakers.&lt;br /&gt;
&lt;br /&gt;
Subtitles need different track metadata so that they can be displayed by default. (Due to concerns about the reliability of subtitling technology, many content providers probably opt to burn the subtitles into the video track as part of the image data, even though this disturbs video compression.)&lt;br /&gt;
&lt;br /&gt;
===Alternative Dubbed Sound Tracks===&lt;br /&gt;
&lt;br /&gt;
Due to bandwidth concerns, Web content providers will probably opt to provide separate video files for dubbed languages.&lt;br /&gt;
&lt;br /&gt;
==Selection Mechanisms==&lt;br /&gt;
&lt;br /&gt;
These use cases are broken into two categories: Acessibility, and the broader Universality.  Due to their nature and similarity to real accessibility use cases, it is sometimes useful to consider possible solutions to accessibility in the context of the more general universality issues as well.&lt;br /&gt;
&lt;br /&gt;
===Accessibility Use Cases===&lt;br /&gt;
&lt;br /&gt;
====Deaf or Hearing Impaired User Viewing a Video====&lt;br /&gt;
&lt;br /&gt;
A user who is unable to hear due to physical disability chooses to watch a video.  The video is an interview between 2 people, discussing a topic that the user is interested in.  The video has been provided with associated closed captions and the user would like to have those turned on so that he may understand speech and other significant sounds within the video.&lt;br /&gt;
&lt;br /&gt;
====A Blind User Listing to a Video&#039;s Soundtrack====&lt;br /&gt;
&lt;br /&gt;
A blind user cannot see the video, but is still able to hear the audio, chooses to listen to the sound track of a video anyway.  The video is a &amp;quot;webisode&amp;quot; (A web episode - like a TV episode, but on the web) of a drama series the user enjoys watching.  The video conveys some important information visually in the video, which is not made apparent in the main sound track, such as what the characters are doing and where they are.  But the video also contains an alternative or complimentary track for audio descriptions, which describes significant parts of the video.  The user wishes to enable the audio descriptions to more easily comprehend the content of the video.&lt;br /&gt;
&lt;br /&gt;
There are two varations of this use case:&lt;br /&gt;
&lt;br /&gt;
# The computer that the user is using is primarily meant for his own use, and generally not shared with other non-disabled users, and it would be convenient if this was not required to be a manual selection each time.&lt;br /&gt;
# The computer is shared between the disabled user and other non-disabled people.  The accessibility features used by the disabled user are turned when used by others, and it would be inconvenient if the audio descriptions were automatically selected for them too.&lt;br /&gt;
&lt;br /&gt;
====A Deaf and Blind User is Unable to See or Hear the Video====&lt;br /&gt;
&lt;br /&gt;
A deaf and blind user cannot see or hear the video, and primarily accesses content using a braille reader.  The video is a tutorial and demonstration about how to perform a particular science experiment at home.  The user wishes to understand the content of the video so that he can teach the experiment to his nephew.  The user needs to read the full text description, which describes and transcribes significant aural and visual content in the video.  He does not need the video to be loaded, but instead needs to be provided with easy access to the full text description.&lt;br /&gt;
&lt;br /&gt;
===Related Universality Use Cases===&lt;br /&gt;
&lt;br /&gt;
====Sound Equipment is Unavailable, Muted, or has Low Volume====&lt;br /&gt;
&lt;br /&gt;
A user who is unable to hear the audio in the video well because his computer lacks audio equipment, such as a sound card, headphones or speakers; or because the volume needs to be kept down low in the user&#039;s environment.  The video has been provided with either closed captions or same-language subtitles.  Similarly to a hearing impaired user, the user would like to have the ability to turn on captions or subtitles so they may more easily understand what is being said.&lt;br /&gt;
&lt;br /&gt;
====A User Wants to Access a Transcript====&lt;br /&gt;
&lt;br /&gt;
A user chooses not to watch a video, regardless of whether or not they are physically able.  The video is of an election campaign speech and has been published with a transcript of the speech alongside.  The user wishes to thoroughly review the speech and compare it with those from the other candidates.  He accesses the transcript and prints it out, to enable him to read it and make notes or highlight important sections.&lt;br /&gt;
&lt;br /&gt;
====A non-disabled user wants to read a full text description====&lt;br /&gt;
&lt;br /&gt;
A video of a slide presentation has been published, but the user wishes to read the full text description instead.  The description includes both a transcript of what the presenter said and images of the slides.  The user chooses to read all or part of the full text description, instead of watching the whole video.&lt;br /&gt;
&lt;br /&gt;
===Problems===&lt;br /&gt;
&lt;br /&gt;
# A user who is deaf or hearing impaired needs a way to express his preference for captioning so that he is not required to manually enable them each time.&lt;br /&gt;
# A user without sound equipment on a particular device may also wish to express the preference for captioning to avoid manual selection each time.&lt;br /&gt;
# A user who is only temporarily unable to hear the audio due to low or muted volume needs a way to manually enable closed captions or same-language subtitle tracks on a per-video basis, if raising the volume is not practical.&lt;br /&gt;
# A blind user needs a way to express his preference for audio descriptions so that he is not required to manually select the descriptions each time.&lt;br /&gt;
# A user needs to have a way to manually enable or disable an alternative or complimentary audio track containing audio descriptions.&lt;br /&gt;
# A user, regardless of disability, needs a way to access a video transcript or full text description.&lt;br /&gt;
# A user needs a way to prevent their browser from automatically downloading video that they don&#039;t want or need.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solutions===&lt;br /&gt;
&lt;br /&gt;
(to be completed)&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Video_accessibility&amp;diff=3335</id>
		<title>Video accessibility</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Video_accessibility&amp;diff=3335"/>
		<updated>2008-09-11T02:27:17Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: /* Data Placement in the Web Context */ 3rd party contrib&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There appears to be consensus among the [http://wcagsamurai.org/errata/errata.html WCAG Samurai] and [http://www.w3.org/TR/WCAG20/#media-equiv the current WGAC 2.0 draft] that the primary ways of making video with soundtrack accessible are to provide captioning for the deaf and audio description for the blind. (The WCAG 2.0 draft also mentions full-text alternative as an alternative to audio description.)&lt;br /&gt;
&lt;br /&gt;
Presumably, the captioning and audio description need to be “closed” (off-by-default, available on request) as content providers might hesitate presenting captions to those who do hear the soundtrack or audio description to those who already see the video track.&lt;br /&gt;
&lt;br /&gt;
==Closed Captioning==&lt;br /&gt;
&lt;br /&gt;
Technically this is timed text presented in sync with the video track. &lt;br /&gt;
&lt;br /&gt;
It is assumed to be in the same language as the main soundtrack. Content-wise, it is expected to mention semantically  important non-verbal sounds and identify speakers when the video doesn&#039;t make it clear who is talking.&lt;br /&gt;
&lt;br /&gt;
In terms of player app decisions, this track shouldn&#039;t be presented by default but it should play if the user has opted in (perhaps via a permanent setting) to showing captioning. Also, if the player app knows that audio output has been turned off either in the app or in the OS, it might make sense to turn on captioning in that case as well.&lt;br /&gt;
&lt;br /&gt;
===Video Format Support===&lt;br /&gt;
&lt;br /&gt;
====Ogg====&lt;br /&gt;
&lt;br /&gt;
CMML has been put forward as the timed text format for Ogg. (How to mark as &#039;&#039;closed&#039;&#039; captions?)&lt;br /&gt;
&lt;br /&gt;
====MP4====&lt;br /&gt;
&lt;br /&gt;
3GPP Timed Text aka. MPEG-4 part 17 is the timed text format for MP4. (How to mark as &#039;&#039;closed&#039;&#039; captions?)&lt;br /&gt;
&lt;br /&gt;
==Closed Audio Description==&lt;br /&gt;
&lt;br /&gt;
Technically this is a second sound track presented in sync with the main sound track.&lt;br /&gt;
&lt;br /&gt;
It is assumed to be in the same language as the main soundtrack.&lt;br /&gt;
&lt;br /&gt;
In terms of player app decisions, this track shouldn&#039;t be presented by default but it should play if the user has opted in (perhaps via a permanent setting) to playing audio descriptions. Also, if the player app knows that a screen reader is in use, it might make sense to use that as a cue of turning on audio descriptions.&lt;br /&gt;
&lt;br /&gt;
===Video Format Support===&lt;br /&gt;
&lt;br /&gt;
====Ogg====&lt;br /&gt;
&lt;br /&gt;
How to flag a second sound track (Speex?) as &#039;&#039;closed&#039;&#039; audio description?&lt;br /&gt;
&lt;br /&gt;
====MP4====&lt;br /&gt;
&lt;br /&gt;
How to flag a second sound track as &#039;&#039;closed&#039;&#039; audio description?&lt;br /&gt;
&lt;br /&gt;
==Data Placement in the Web Context==&lt;br /&gt;
&lt;br /&gt;
Should the above-mentioned tracks be muxed into the main video file (Pro: all tracks travel together; Con: off-by-default tracks take bandwidth)? Or should they be separate HTTP resources (Pro: bandwidth optimization; Con: Web-specific content assembly from many files may not survive downloading to disk, etc.)  Also note that separate files makes it easier for a 3rd party to add tracks -- but these tracks may be commentary rather than captions, so this is both a pro and a con.&lt;br /&gt;
&lt;br /&gt;
==Related Non-Accessibility Features==&lt;br /&gt;
&lt;br /&gt;
There are technically similar non-accessibility (i.e. not related to addressing needs arising from a disability) features related to translation.&lt;br /&gt;
&lt;br /&gt;
===Translation Subtitles===&lt;br /&gt;
&lt;br /&gt;
A site in language A might want to embed a video with the soundtrack in language B but subtitles in language A. For example, a Finnish-language site embedding an English-language video would want to have Finnish subtitles. Unlike captions, these subtitles should be on by default and being able to suppress the subtitles is considered an additional nice-to-have feature.&lt;br /&gt;
&lt;br /&gt;
There are also same-language subtitles (e.g. French subtitles with French-language soundtrack) for language learners.  Unlike captions, same-language subtitles don&#039;t inform the reader about non-verbal sounds or identify speakers.&lt;br /&gt;
&lt;br /&gt;
Subtitles need different track metadata so that they can be displayed by default. (Due to concerns about the reliability of subtitling technology, many content providers probably opt to burn the subtitles into the video track as part of the image data, even though this disturbs video compression.)&lt;br /&gt;
&lt;br /&gt;
===Alternative Dubbed Sound Tracks===&lt;br /&gt;
&lt;br /&gt;
Due to bandwidth concerns, Web content providers will probably opt to provide separate video files for dubbed languages.&lt;br /&gt;
&lt;br /&gt;
==Selection Mechanisms==&lt;br /&gt;
&lt;br /&gt;
These use cases are broken into two categories: Acessibility, and the broader Universality.  Due to their nature and similarity to real accessibility use cases, it is sometimes useful to consider possible solutions to accessibility in the context of the more general universality issues as well.&lt;br /&gt;
&lt;br /&gt;
===Accessibility Use Cases===&lt;br /&gt;
&lt;br /&gt;
====Deaf or Hearing Impaied User Viewing a Video====&lt;br /&gt;
&lt;br /&gt;
A user who is unable to hear due to physical disability chooses to watch a video.  The video is an interview between 2 people, discussing a topic that the user is interested in.  The video has been provided with associated closed captions and the user would like to have those turned on so that he may understand speech and other significant sounds within the video.&lt;br /&gt;
&lt;br /&gt;
====A Blind User Listing to a Video&#039;s Soundtrack====&lt;br /&gt;
&lt;br /&gt;
A blind user cannot see the video, but is still able to hear the audio, chooses to listen to the sound track of a video anyway.  The video is a &amp;quot;webisode&amp;quot; (A web episode - like a TV episode, but on the web) of a drama series the user enjoys watching.  The video conveys some important information visually in the video, which is not made apparent in the main sound track, such as what the characters are doing and where they are.  But the video also contains an alternative or complimentary track for audio descriptions, which describes significant parts of the video.  The user wishes to enable the audio descriptions to more easily comprehend the content of the video.&lt;br /&gt;
&lt;br /&gt;
There are two varations of this use case:&lt;br /&gt;
&lt;br /&gt;
# The computer that the user is using is primarily meant for his own use, and generally not shared with other non-disabled users, and it would be convenient if this was not required to be a manual selection each time.&lt;br /&gt;
# The computer is shared between the disabled user and other non-disabled people.  The accessibility features used by the disabled user are turned when used by others, and it would be inconvenient if the audio descriptions were automatically selected for them too.&lt;br /&gt;
&lt;br /&gt;
====A Deaf and Blind User is Unable to See or Hear the Video====&lt;br /&gt;
&lt;br /&gt;
A deaf and blind user cannot see or hear the video, and primarily accesses content using a braille reader.  The video is a tutorial and demonstration about how to perform a particular science experiment at home.  The user wishes to understand the content of the video so that he can teach the experiment to his nephew.  The user needs to read the full text description, which describes and transcribes significant aural and visual content in the video.  He does not need the video to be loaded, but instead needs to be provided with easy access to the full text description.&lt;br /&gt;
&lt;br /&gt;
===Related Universality Use Cases===&lt;br /&gt;
&lt;br /&gt;
====Sound Equipment is Unavailable, Muted, or has Low Volume====&lt;br /&gt;
&lt;br /&gt;
A user who is unable to hear the audio in the video well because his computer lacks audio equipment, such as a sound card, headphones or speakers; or because the volume needs to be kept down low in the user&#039;s environment.  The video has been provided with either closed captions or same-language subtitles.  Similarly to a hearing impaired user, the user would like to have the ability to turn on captions or subtitles so they may more easily understand what is being said.&lt;br /&gt;
&lt;br /&gt;
====A User Wants to Access a Transcript====&lt;br /&gt;
&lt;br /&gt;
A user chooses not to watch a video, regardless of whether or not they are physically able.  The video is of an election campaign speech and has been published with a transcript of the speech alongside.  The user wishes to thoroughly review the speech and compare it with those from the other candidates.  He accesses the transcript and prints it out, to enable him to read it and make notes or highlight important sections.&lt;br /&gt;
&lt;br /&gt;
====A non-disabled user wants to read a full text description====&lt;br /&gt;
&lt;br /&gt;
A video of a slide presentation has been published, but the user wishes to read the full text description instead.  The description includes both a transcript of what the presenter said and images of the slides.  The user chooses to read all or part of the full text description, instead of watching the whole video.&lt;br /&gt;
&lt;br /&gt;
===Problems===&lt;br /&gt;
&lt;br /&gt;
# A user who is deaf or hearing impaired needs a way to express his preference for captioning so that he is not required to manually enable them each time.&lt;br /&gt;
# A user without sound equipment on a particular device may also wish to express the preference for captioning to avoid manual selection each time.&lt;br /&gt;
# A user who is only temporarily unable to hear the audio due to low or muted volume needs a way to manually enable closed captions or same-language subtitle tracks on a per-video basis, if raising the volume is not practical.&lt;br /&gt;
# A blind user needs a way to express his preference for audio descriptions so that he is not required to manually select the descriptions each time.&lt;br /&gt;
# A user needs to have a way to manually enable or disable an alternative or complimentary audio track containing audio descriptions.&lt;br /&gt;
# A user, regardless of disability, needs a way to access a video transcript or full text description.&lt;br /&gt;
# A user needs a way to prevent their browser from automatically downloading video that they don&#039;t want or need.&lt;br /&gt;
&lt;br /&gt;
===Proposed Solutions===&lt;br /&gt;
&lt;br /&gt;
(to be completed)&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Extensions&amp;diff=3034</id>
		<title>Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Extensions&amp;diff=3034"/>
		<updated>2008-04-03T01:21:28Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: /* Error Handling */ specific case&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Ways to arbitrarily extend text/html for new vocabularies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please put ideas for what it should look like here, each in their own section.&lt;br /&gt;
&lt;br /&gt;
Each example should explain in details (ideally with examples) how to handle:&lt;br /&gt;
* Syntax errors at the tokeniser level, the tree construction level, and the schema level.&lt;br /&gt;
* Existing content that happens to use elements or syntax that you are proposing have special processing rules.&lt;br /&gt;
* Pages that contain any special syntax after that syntax was copied and pasted by an ignorant Web author from a valid page written by a competent Web author aware of the new syntax.&lt;br /&gt;
&lt;br /&gt;
See also SVG-specific proposals in [[Diagrams in HTML]].&lt;br /&gt;
&lt;br /&gt;
== Proposal 1: xmlns strawman ==&lt;br /&gt;
&lt;br /&gt;
When you hit an element with an xmlns=&amp;quot;&amp;quot; attribute, switch to an XML parser until that parser has parsed the matching end tag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 bla bla text/html bla bla &amp;lt;foo xmlns=&amp;quot;http://example.com/foo&amp;quot;&amp;gt;&amp;lt;this&amp;gt;&amp;lt;must/&amp;gt;&lt;br /&gt;
 be&amp;lt;valid&amp;gt;XML! &amp;lt;/valid&amp;gt;&amp;lt;/this&amp;gt; must be.&amp;lt;/foo&amp;gt; bla bla text/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Errors cause the entire page to stop parsing.&lt;br /&gt;
&lt;br /&gt;
Existing pages are not handled.&lt;br /&gt;
&lt;br /&gt;
Pages that copy-and-paste this syntax then use it incorrectly are not handled.&lt;br /&gt;
&lt;br /&gt;
=== Reasons why we can&#039;t do this ===&lt;br /&gt;
* There are pages that already specify xmlns=&amp;quot;&amp;quot; attributes that would break if the content were processed as XML. For example, [http://www.live.com/ http://www.live.com/].&lt;br /&gt;
&lt;br /&gt;
Is there (much?) existing content with arbitrary namespaces, or could we enumerate a set of junk namespaces to ignore, and then do this for others?&lt;br /&gt;
&lt;br /&gt;
Or could we at least do it for a whitelist of namespaces?&lt;br /&gt;
&lt;br /&gt;
:* Probably, xmlns=&amp;quot;&amp;quot; attribute, when used for HTML5 extensibility purposes, should be clearly marked as such, to disambiguate from legacy uses. For example, it could be explicitly declared at the root of the document:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;html xmlns:xmlns=&amp;quot;urn:html5:xmlns:for-example&amp;quot;&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt;foo xmlns=&amp;quot;http://example.com/foo&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;!-- the region of the &amp;quot;foo&amp;quot; extension --&amp;gt;&lt;br /&gt;
     &amp;lt;/foo&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*  Is it OK to switch parsing mode mid-document like this (and to effectively require an XML parser in every UA)?&lt;br /&gt;
&lt;br /&gt;
== Proposal 2: Extensibility Element ==&lt;br /&gt;
&lt;br /&gt;
This is a proposed generic extensibility point, for SVG and possibly MathML or other XML content, with the temporary placeholder name of &amp;lt;ext&amp;gt; (the real element name would be some token that doesn&#039;t clash with existing content).  Inside you can use XML or another format. Naturally, any content placed in an &amp;lt;ext&amp;gt; element would have to be understood by the UA in order to render correctly, and more complex rules may need to be developed for specific kinds of interaction between the root document and the inline content, such as with script, CSS, etc.  For some discussion, see the [http://krijnhoetmer.nl/irc-logs/whatwg/20080401#l-441 IRC logs].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Hello world. &lt;br /&gt;
    &amp;lt;ext&amp;gt;&lt;br /&gt;
       &amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; viewBox=&amp;quot;0 0 10 10&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;circle x=&amp;quot;5&amp;quot; y=&amp;quot;5 r=&amp;quot;5&amp;quot; stroke=&amp;quot;green&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/svg&amp;gt;&lt;br /&gt;
    &amp;lt;/ext&amp;gt; &lt;br /&gt;
 &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should define a content model for where the &amp;lt;ext&amp;gt; element can occur, and if there are implications for different locations (such as inside a table, a paragraph, the head, etc).  The simplest thing, at least for SVG (and probably MathML), would be that it would have the same restrictions as an &amp;lt;img&amp;gt; element.  Also, there should be a default block model for &amp;lt;ext&amp;gt; in CSS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please define this in enough detail that I can construct a tokeniser and tree constructor from the description. Ideally, just provide the actual tokeniser and tree constructor that you are proposing. [http://www.whatwg.org/specs/web-apps/current-work/#tokenisation This is what it looks like in the HTML5 spec] (sections 8.2.3 and 8.2.4). It&#039;s probably easiest to define it as a delta from what the spec has today.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* This is similar to IE&#039;s &amp;quot;XML islands&amp;quot; with the &amp;lt;xml&amp;gt; element.  It&#039;s believed that there are some conflicts with the &amp;lt;xml&amp;gt; element itself, since it creates a separate document that is tied to the &amp;lt;xml&amp;gt; element in the DOM, but more research is needed.  See also [http://developer.mozilla.org/en/docs/Using_XML_Data_Islands_in_Mozilla Using XML Data Islands in Mozilla].&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;ext&amp;gt; element could potentially be an implicit element, generated by the HTML5 parser on encountering a start tag of e.g. &amp;quot;&amp;lt;svg &amp;quot; or &amp;quot;&amp;lt;math &amp;quot;. That would save authors of having to type this extra element, but has a drawback in that it doesn&#039;t provide fallback content for legacy UAs. -Ed&lt;br /&gt;
&lt;br /&gt;
* We could specify exactly what flavors of markup must be supported by a UA, and which may be supported by a UA.  This would be rather restrictive, but could improve interoperability of UA features, and would ensure that the proper DOM interfaces are available.  For example, SVG and MathML must be supported, and FooML may be supported (or something).&lt;br /&gt;
&lt;br /&gt;
=== Error Handling ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pick one! Or separate the proposal into several proposals, for each different proposal, so that they can be evaluated. The proposals below are just brief notes, not detailed enough for me to know what you mean. -Hixie&#039;&#039;&#039;&lt;br /&gt;
 Notes:&lt;br /&gt;
 The main options seem to be:&lt;br /&gt;
 # strict XML parsing (not favored by many)&lt;br /&gt;
 # very permissive error handling (as in HTML5); this idea is controversial &lt;br /&gt;
   and has many open issues, which should be detailed below &lt;br /&gt;
 # moderate error handling, as detailed in SVG Tiny 1.2 &lt;br /&gt;
 # other ideas?&lt;br /&gt;
 &lt;br /&gt;
 The chief risk with permissive error handling is that it would create &lt;br /&gt;
 content that is not compatible across different UAs, including mobile &lt;br /&gt;
 devices and authoring tools.&lt;br /&gt;
&lt;br /&gt;
Proposal:&lt;br /&gt;
* Tree construction recovers from errors by closing the &amp;lt;svg&amp;gt; element, and not rendering any content after the error. &lt;br /&gt;
* Case folding is not supported within the main body of the &amp;lt;ext&amp;gt; element, though it would be within the &amp;lt;fallback&amp;gt; element.&lt;br /&gt;
* The tree builder would assign the appropriate namespace URI to the element and attribute nodes it creates.&lt;br /&gt;
* Unknown attributes and elements are ignored.&lt;br /&gt;
* Unquoted attribute values will be ignored (should the element also not be rendered?) &lt;br /&gt;
* If the &amp;quot;/&amp;gt;&amp;quot; is not found at the end of an element, all subsequent element will be placed as child elements of the element (and thus not rendered) until a matching closing tag is found, or until the a matching root tag is found, or until the &amp;quot;&amp;lt;/ext&amp;gt;&amp;quot; element is found.  &lt;br /&gt;
** If a matching closing tag is found, the element is closed, and subsequent elements are rendered as normal.&lt;br /&gt;
** If a matching closing root tag is found, the element is closed, the root tag is closed, and any subsequent elements are ignored if outside a root tag.&lt;br /&gt;
** If a matching closing &amp;lt;ext&amp;gt; tag is found, the element is closed, the root tag is closed, the &amp;lt;ext&amp;gt; tag is closed, and HTML processing continues as normal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;Please explain the manner in which you find this aspect incomplete or lacking, with links to relevant sections of the HTML5 spec for reference, and I will try to fix any problems. -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One question is how to find the matching tag.  Which parsing mode is active after 2-open/1-close:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ext&amp;gt;&amp;lt;ext&amp;gt;&amp;lt;/ext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Notes (not sure this fits in the above proposal):&lt;br /&gt;
 * Tokenizer recovers from errors by ignoring subsequent content &lt;br /&gt;
   between the error and the closing &amp;lt;ext&amp;gt; tag, closing the &amp;lt;svg&amp;gt; &lt;br /&gt;
   element and &amp;lt;ext&amp;gt; element, and moving on with normal HTML &lt;br /&gt;
   processing; for SVG, any element with errors is not rendered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See the following emails by Henri Sivonen for comparison and contrast:  &lt;br /&gt;
* [http://lists.w3.org/Archives/Public/public-html/2007Oct/0158.html Re: SVG in text/html (was: @role in SVG)]&lt;br /&gt;
* [http://lists.w3.org/Archives/Public/public-html/2008Apr/0065.html Re: several messages about New Vocabularies in text/html]&lt;br /&gt;
&lt;br /&gt;
=== Embedded HTML ===&lt;br /&gt;
&lt;br /&gt;
The case of content inside a &amp;lt;foreignObject&amp;gt; element could be subject to the parsing model of the root document.  (Note that this is only a partial solution, and more thought and details are needed.)&lt;br /&gt;
&lt;br /&gt;
For content outside &amp;lt;foreignObject&amp;gt;, it should follow the XML processing rules.&lt;br /&gt;
&lt;br /&gt;
=== Fallback Behavior ===&lt;br /&gt;
&lt;br /&gt;
This is an opportunity to get nice fallback behavior, as well.  &lt;br /&gt;
&lt;br /&gt;
Here&#039;s a possible suggestion, where the raster image would show in UAs that didn&#039;t support the &amp;lt;ext&amp;gt; syntax, and the SVG would show in those that did (and which support SVG).  In UAs which support &amp;lt;ext&amp;gt; and not SVG, the fallback would also be the raster.  The fallback content should be inside a wrapper element (&amp;lt;fallback&amp;gt;), so that you can have rich fallback options, such as an image map, a table, &amp;lt;canvas&amp;gt; and an accompanying &amp;lt;script&amp;gt; element, or whatever; in this case, I also include fallback CSS to hide textual content in title, desc, and text elements, but it may be desirable to leave this content as alternate text to the image, even including styling.&lt;br /&gt;
&lt;br /&gt;
For MathML content, a conditional CSS override could allow for CSS styling of MathML elements for those that don&#039;t render MathML natively.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: as stated before, the names of the &amp;lt;ext&amp;gt; and &amp;lt;fallback&amp;gt; elements are subject to change based on existing element names in the wild.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
	&amp;lt;title&amp;gt;HTML Extensibility Test&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
	&amp;lt;h1 id=&amp;quot;test_of_extensibility&amp;quot;&amp;gt;Test of Extensibility&amp;lt;/h1&amp;gt;&lt;br /&gt;
	&amp;lt;p&amp;gt;This is a test of an extensibility point in text/html, with a fallback mechanism.&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;ext&amp;gt;&lt;br /&gt;
		&amp;lt;fallback&amp;gt;&lt;br /&gt;
			&amp;lt;img src=&amp;quot;anIsland.png&amp;quot; alt=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;style type=&#039;text/css&#039;&amp;gt;&lt;br /&gt;
			   svg &amp;gt; * { display: none; }&lt;br /&gt;
		        &amp;lt;/style&amp;gt;&lt;br /&gt;
		&amp;lt;/fallback&amp;gt;&lt;br /&gt;
		&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot;&lt;br /&gt;
		     xmlns:xlink=&amp;quot;http://www.w3.org/1999/xlink&amp;quot;&lt;br /&gt;
		     width=&amp;quot;100%&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
		     version=&amp;quot;1.1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;title&amp;gt;My Title&amp;lt;/title&amp;gt;&lt;br /&gt;
			&amp;lt;desc&amp;gt;schepers, 01-04-2008&amp;lt;/desc&amp;gt;&lt;br /&gt;
			&amp;lt;circle id=&amp;quot;circle_1&amp;quot; cx=&amp;quot;75&amp;quot; cy=&amp;quot;25&amp;quot; r=&amp;quot;20&amp;quot; fill=&amp;quot;lime&amp;quot; /&amp;gt;&lt;br /&gt;
      			&amp;lt;text id=&#039;text_1&#039; x=&#039;10&#039; y=&#039;25&#039; font-size=&#039;18&#039; fill=&#039;crimson&#039;&amp;gt;This is some text.&amp;lt;/text&amp;gt;&lt;br /&gt;
		&amp;lt;/svg&amp;gt;		&lt;br /&gt;
	&amp;lt;/ext&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reasons why we can&#039;t do this ===&lt;br /&gt;
&lt;br /&gt;
It&#039;s not clear what the processing model being proposed actually is. However, there is already one problem:&lt;br /&gt;
&lt;br /&gt;
* The idea relies on not conflicting with legacy content. Unfortunately, whatever syntax we end up using, people will copy and paste it from documents that were written by competent authors that tested it against the new UAs, into documents written by authors who don&#039;t know about this, and who don&#039;t have the new UA, thus creating new &amp;quot;legacy documents&amp;quot; that use whatever syntax we come up with. Saying the risk is minimal doesn&#039;t mitigate this problem. It&#039;s a real problem, and we have to deal with it. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;Such content clearly wouldn&#039;t work in the legacy UAs, and so the mistake will have no reason to propagate (the novice author will have no incentive to copy such content if it doesn&#039;t work in their UA); further, this is an issue with any new HTML5 syntax. Please explain in more detail how this is a problem.  -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note also that the fallback idea doesn&#039;t work. Elements like &amp;lt;script&amp;gt;, &amp;lt;style&amp;gt;, &amp;lt;title&amp;gt;, &amp;lt;input&amp;gt;, &amp;lt;textarea&amp;gt; etc, get treated as HTML elements in legacy UAs. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;Please expand on this; the &amp;lt;fallback&amp;gt; proposal relies on the fact that any content in the &amp;lt;fallback&amp;gt; element be treated as HTML, so it&#039;s not clear what the objection is. -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relying on CSS for hiding the text content doesn&#039;t work either, because CSS is optional and might not be enabled (or supported).  &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;In this case, legacy browsers that don&#039;t support &amp;lt;fallback&amp;gt; and in which CSS (or optionally JS) is not enabled or supported would, unfortunately print the textnodes; this still doesn&#039;t break the page, however, and any page which relies on JS or CSS will always fail in such UAs; this is true of almost every Webapp. -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(It doesn&#039;t much matter, though, because fallback isn&#039;t one of [[New Vocabularies|the things we&#039;re trying to address]] with this.) &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;This seems like an artificial constraint; any solution which solves another larger problem (even if that&#039;s not the problem being addressed) is not a bug, it&#039;s a feature. -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proposal 3: XML5 ==&lt;br /&gt;
&lt;br /&gt;
Microsoft has published a [http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=ie8whitepapers&amp;amp;ReleaseId=573 whitepaper] on the subject of &#039;&#039;Improved Namespace Support&#039;&#039;.  Salient features:&lt;br /&gt;
&lt;br /&gt;
* Windows Internet Explorer 8 Beta 1 for Developers offers Web developers the opportunity to write standards-compliant HTML-based Web pages that support features (such as SVG, XUL, and MathML) in namespaces, &#039;&#039;provided that the client has installed appropriate handlers for those namespaces via binary behaviors&#039;&#039;. (A binary behavior is a type of ActiveX control.) &#039;&#039;&amp;lt;ins&amp;gt;[[User:Tbroyer|Tbroyer]]: note that those &#039;&#039;behaviors&#039;&#039; don&#039;t change the way the markup is parsed into a DOM; at least for elements whose name contains a colon (haven&#039;t tested this in IE8, but this is the way it is since IE5.5)&amp;lt;/ins&amp;gt;&#039;&#039;&lt;br /&gt;
* Internet Explorer 8 does not support the XHTML namespace definition. Thus, default namespace declarations of XHTML are ignored (xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;). &#039;&#039;&amp;lt;ins&amp;gt;[[User:Tbroyer|Tbroyer]]: this means that you cannot switch from a default namespace back to HTML (actually, this is true in IE8 in a more general fashion: once you&#039;ve set a default namespace (i.e. once you&#039;ve leaved &amp;quot;HTML&amp;quot;), you cannot switch to another; the whitepaper describes this as &amp;quot;Nesting of multiple default namespaces is not allowed; in other words, a default namespace declaration inside of another default namespace declaration will be ignored.&amp;quot;&amp;lt;/ins&amp;gt;&#039;&#039;&lt;br /&gt;
* Internet Explorer 8 does not support default namespace declarations on any known elements such as HTML, SCRIPT, DIV, or STYLE. If default namespace declarations are encountered on these elements, the declaration is ignored (for purposes of existing Web page compatibility).&lt;br /&gt;
&lt;br /&gt;
A few notes:&lt;br /&gt;
&lt;br /&gt;
* While Microsoft&#039;s IE8 implementation as described by this whitepaper does not satisfy all of the requirements; the above list focuses on the parts that do.&lt;br /&gt;
* While Microsoft&#039;s implementation is based on ActiveX (&#039;&#039;&amp;lt;ins&amp;gt;[[User:Tbroyer|Tbroyer]]: see above, ActiveX give you the behaviors associated with a given namespace URI, but doesn&#039;t change the parsing algorithm&amp;lt;/ins&amp;gt;&#039;&#039;), the situation could very well end up being similar to [http://www.w3.org/TR/XMLHttpRequest/ XMLHttpRequest] whereby the functionality was first exposed via ActiveX, other browser vendors adopted an alternate object model interface to this same functionality, and that interface was later adopted and standardized.&lt;br /&gt;
* While the white paper does not explicitly state this requirement, the approach works best if the simple name for the unknown (to HTML5) element which contains the default namespace declaration for which a binary behavior has been installed is not contained within the subtree.  Both SVG and MathML have unique elements (&amp;lt;code&amp;gt;svg&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;math&amp;lt;/code&amp;gt;, respectively) that satisfy this purpose.  This gives proposal 3 some of the desirable characteristics of proposal 2 spelled out above.&lt;br /&gt;
* In order to meet the &#039;&#039;Resistance to errors (e.g. not brittle in the face of syntax errors)&#039;&#039; [[New Vocabularies|requirement]], something akin to [http://annevankesteren.nl/2007/10/xml5 Anne van Kesteren&#039;s XML5] would be required, an implementation of which can be seen on [http://code.google.com/p/xml5/ Google Code]. &#039;&#039;&amp;lt;ins&amp;gt;[[User:Tbroyer|Tbroyer]]: see also the [http://html5lib.googlecode.com/svn/branches/namespaces-in-text-html/python/ namespaces-in-text-html branch of html5lib]&amp;lt;/ins&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reasons why we can&#039;t do this ===&lt;br /&gt;
&lt;br /&gt;
I&#039;ve no idea what IE8 beta 1 is supposed to do. The whitepaper doesn&#039;t describe the processing model, the error handling, or how to handle legacy content, and IE8 Beta 1 doesn&#039;t seem to implement the whitepaper&#039;s syntax at all.&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=Extensions&amp;diff=3033</id>
		<title>Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=Extensions&amp;diff=3033"/>
		<updated>2008-04-03T01:16:22Z</updated>

		<summary type="html">&lt;p&gt;JimJJewett: questions on xmlns suggestion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Ways to arbitrarily extend text/html for new vocabularies&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please put ideas for what it should look like here, each in their own section.&lt;br /&gt;
&lt;br /&gt;
Each example should explain in details (ideally with examples) how to handle:&lt;br /&gt;
* Syntax errors at the tokeniser level, the tree construction level, and the schema level.&lt;br /&gt;
* Existing content that happens to use elements or syntax that you are proposing have special processing rules.&lt;br /&gt;
* Pages that contain any special syntax after that syntax was copied and pasted by an ignorant Web author from a valid page written by a competent Web author aware of the new syntax.&lt;br /&gt;
&lt;br /&gt;
See also SVG-specific proposals in [[Diagrams in HTML]].&lt;br /&gt;
&lt;br /&gt;
== Proposal 1: xmlns strawman ==&lt;br /&gt;
&lt;br /&gt;
When you hit an element with an xmlns=&amp;quot;&amp;quot; attribute, switch to an XML parser until that parser has parsed the matching end tag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 bla bla text/html bla bla &amp;lt;foo xmlns=&amp;quot;http://example.com/foo&amp;quot;&amp;gt;&amp;lt;this&amp;gt;&amp;lt;must/&amp;gt;&lt;br /&gt;
 be&amp;lt;valid&amp;gt;XML! &amp;lt;/valid&amp;gt;&amp;lt;/this&amp;gt; must be.&amp;lt;/foo&amp;gt; bla bla text/html&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Errors cause the entire page to stop parsing.&lt;br /&gt;
&lt;br /&gt;
Existing pages are not handled.&lt;br /&gt;
&lt;br /&gt;
Pages that copy-and-paste this syntax then use it incorrectly are not handled.&lt;br /&gt;
&lt;br /&gt;
=== Reasons why we can&#039;t do this ===&lt;br /&gt;
* There are pages that already specify xmlns=&amp;quot;&amp;quot; attributes that would break if the content were processed as XML. For example, [http://www.live.com/ http://www.live.com/].&lt;br /&gt;
&lt;br /&gt;
Is there (much?) existing content with arbitrary namespaces, or could we enumerate a set of junk namespaces to ignore, and then do this for others?&lt;br /&gt;
&lt;br /&gt;
Or could we at least do it for a whitelist of namespaces?&lt;br /&gt;
&lt;br /&gt;
:* Probably, xmlns=&amp;quot;&amp;quot; attribute, when used for HTML5 extensibility purposes, should be clearly marked as such, to disambiguate from legacy uses. For example, it could be explicitly declared at the root of the document:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;html xmlns:xmlns=&amp;quot;urn:html5:xmlns:for-example&amp;quot;&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt;foo xmlns=&amp;quot;http://example.com/foo&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;!-- the region of the &amp;quot;foo&amp;quot; extension --&amp;gt;&lt;br /&gt;
     &amp;lt;/foo&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
  &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*  Is it OK to switch parsing mode mid-document like this (and to effectively require an XML parser in every UA)?&lt;br /&gt;
&lt;br /&gt;
== Proposal 2: Extensibility Element ==&lt;br /&gt;
&lt;br /&gt;
This is a proposed generic extensibility point, for SVG and possibly MathML or other XML content, with the temporary placeholder name of &amp;lt;ext&amp;gt; (the real element name would be some token that doesn&#039;t clash with existing content).  Inside you can use XML or another format. Naturally, any content placed in an &amp;lt;ext&amp;gt; element would have to be understood by the UA in order to render correctly, and more complex rules may need to be developed for specific kinds of interaction between the root document and the inline content, such as with script, CSS, etc.  For some discussion, see the [http://krijnhoetmer.nl/irc-logs/whatwg/20080401#l-441 IRC logs].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;Hello world. &lt;br /&gt;
    &amp;lt;ext&amp;gt;&lt;br /&gt;
       &amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; viewBox=&amp;quot;0 0 10 10&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;circle x=&amp;quot;5&amp;quot; y=&amp;quot;5 r=&amp;quot;5&amp;quot; stroke=&amp;quot;green&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/svg&amp;gt;&lt;br /&gt;
    &amp;lt;/ext&amp;gt; &lt;br /&gt;
 &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We should define a content model for where the &amp;lt;ext&amp;gt; element can occur, and if there are implications for different locations (such as inside a table, a paragraph, the head, etc).  The simplest thing, at least for SVG (and probably MathML), would be that it would have the same restrictions as an &amp;lt;img&amp;gt; element.  Also, there should be a default block model for &amp;lt;ext&amp;gt; in CSS.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please define this in enough detail that I can construct a tokeniser and tree constructor from the description. Ideally, just provide the actual tokeniser and tree constructor that you are proposing. [http://www.whatwg.org/specs/web-apps/current-work/#tokenisation This is what it looks like in the HTML5 spec] (sections 8.2.3 and 8.2.4). It&#039;s probably easiest to define it as a delta from what the spec has today.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* This is similar to IE&#039;s &amp;quot;XML islands&amp;quot; with the &amp;lt;xml&amp;gt; element.  It&#039;s believed that there are some conflicts with the &amp;lt;xml&amp;gt; element itself, since it creates a separate document that is tied to the &amp;lt;xml&amp;gt; element in the DOM, but more research is needed.  See also [http://developer.mozilla.org/en/docs/Using_XML_Data_Islands_in_Mozilla Using XML Data Islands in Mozilla].&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;ext&amp;gt; element could potentially be an implicit element, generated by the HTML5 parser on encountering a start tag of e.g. &amp;quot;&amp;lt;svg &amp;quot; or &amp;quot;&amp;lt;math &amp;quot;. That would save authors of having to type this extra element, but has a drawback in that it doesn&#039;t provide fallback content for legacy UAs. -Ed&lt;br /&gt;
&lt;br /&gt;
* We could specify exactly what flavors of markup must be supported by a UA, and which may be supported by a UA.  This would be rather restrictive, but could improve interoperability of UA features, and would ensure that the proper DOM interfaces are available.  For example, SVG and MathML must be supported, and FooML may be supported (or something).&lt;br /&gt;
&lt;br /&gt;
=== Error Handling ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pick one! Or separate the proposal into several proposals, for each different proposal, so that they can be evaluated. The proposals below are just brief notes, not detailed enough for me to know what you mean. -Hixie&#039;&#039;&#039;&lt;br /&gt;
 Notes:&lt;br /&gt;
 The main options seem to be:&lt;br /&gt;
 # strict XML parsing (not favored by many)&lt;br /&gt;
 # very permissive error handling (as in HTML5); this idea is controversial &lt;br /&gt;
   and has many open issues, which should be detailed below &lt;br /&gt;
 # moderate error handling, as detailed in SVG Tiny 1.2 &lt;br /&gt;
 # other ideas?&lt;br /&gt;
 &lt;br /&gt;
 The chief risk with permissive error handling is that it would create &lt;br /&gt;
 content that is not compatible across different UAs, including mobile &lt;br /&gt;
 devices and authoring tools.&lt;br /&gt;
&lt;br /&gt;
Proposal:&lt;br /&gt;
* Tree construction recovers from errors by closing the &amp;lt;svg&amp;gt; element, and not rendering any content after the error. &lt;br /&gt;
* Case folding is not supported within the main body of the &amp;lt;ext&amp;gt; element, though it would be within the &amp;lt;fallback&amp;gt; element.&lt;br /&gt;
* The tree builder would assign the appropriate namespace URI to the element and attribute nodes it creates.&lt;br /&gt;
* Unknown attributes and elements are ignored.&lt;br /&gt;
* Unquoted attribute values will be ignored (should the element also not be rendered?) &lt;br /&gt;
* If the &amp;quot;/&amp;gt;&amp;quot; is not found at the end of an element, all subsequent element will be placed as child elements of the element (and thus not rendered) until a matching closing tag is found, or until the a matching root tag is found, or until the &amp;quot;&amp;lt;/ext&amp;gt;&amp;quot; element is found.  &lt;br /&gt;
** If a matching closing tag is found, the element is closed, and subsequent elements are rendered as normal.&lt;br /&gt;
** If a matching closing root tag is found, the element is closed, the root tag is closed, and any subsequent elements are ignored if outside a root tag.&lt;br /&gt;
** If a matching closing &amp;lt;ext&amp;gt; tag is found, the element is closed, the root tag is closed, the &amp;lt;ext&amp;gt; tag is closed, and HTML processing continues as normal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;Please explain the manner in which you find this aspect incomplete or lacking, with links to relevant sections of the HTML5 spec for reference, and I will try to fix any problems. -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Notes (not sure this fits in the above proposal):&lt;br /&gt;
 * Tokenizer recovers from errors by ignoring subsequent content &lt;br /&gt;
   between the error and the closing &amp;lt;ext&amp;gt; tag, closing the &amp;lt;svg&amp;gt; &lt;br /&gt;
   element and &amp;lt;ext&amp;gt; element, and moving on with normal HTML &lt;br /&gt;
   processing; for SVG, any element with errors is not rendered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See the following emails by Henri Sivonen for comparison and contrast:  &lt;br /&gt;
* [http://lists.w3.org/Archives/Public/public-html/2007Oct/0158.html Re: SVG in text/html (was: @role in SVG)]&lt;br /&gt;
* [http://lists.w3.org/Archives/Public/public-html/2008Apr/0065.html Re: several messages about New Vocabularies in text/html]&lt;br /&gt;
&lt;br /&gt;
=== Embedded HTML ===&lt;br /&gt;
&lt;br /&gt;
The case of content inside a &amp;lt;foreignObject&amp;gt; element could be subject to the parsing model of the root document.  (Note that this is only a partial solution, and more thought and details are needed.)&lt;br /&gt;
&lt;br /&gt;
For content outside &amp;lt;foreignObject&amp;gt;, it should follow the XML processing rules.&lt;br /&gt;
&lt;br /&gt;
=== Fallback Behavior ===&lt;br /&gt;
&lt;br /&gt;
This is an opportunity to get nice fallback behavior, as well.  &lt;br /&gt;
&lt;br /&gt;
Here&#039;s a possible suggestion, where the raster image would show in UAs that didn&#039;t support the &amp;lt;ext&amp;gt; syntax, and the SVG would show in those that did (and which support SVG).  In UAs which support &amp;lt;ext&amp;gt; and not SVG, the fallback would also be the raster.  The fallback content should be inside a wrapper element (&amp;lt;fallback&amp;gt;), so that you can have rich fallback options, such as an image map, a table, &amp;lt;canvas&amp;gt; and an accompanying &amp;lt;script&amp;gt; element, or whatever; in this case, I also include fallback CSS to hide textual content in title, desc, and text elements, but it may be desirable to leave this content as alternate text to the image, even including styling.&lt;br /&gt;
&lt;br /&gt;
For MathML content, a conditional CSS override could allow for CSS styling of MathML elements for those that don&#039;t render MathML natively.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: as stated before, the names of the &amp;lt;ext&amp;gt; and &amp;lt;fallback&amp;gt; elements are subject to change based on existing element names in the wild.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
	&amp;lt;title&amp;gt;HTML Extensibility Test&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
	&amp;lt;h1 id=&amp;quot;test_of_extensibility&amp;quot;&amp;gt;Test of Extensibility&amp;lt;/h1&amp;gt;&lt;br /&gt;
	&amp;lt;p&amp;gt;This is a test of an extensibility point in text/html, with a fallback mechanism.&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;ext&amp;gt;&lt;br /&gt;
		&amp;lt;fallback&amp;gt;&lt;br /&gt;
			&amp;lt;img src=&amp;quot;anIsland.png&amp;quot; alt=&amp;quot;...&amp;quot;/&amp;gt;&lt;br /&gt;
			&amp;lt;style type=&#039;text/css&#039;&amp;gt;&lt;br /&gt;
			   svg &amp;gt; * { display: none; }&lt;br /&gt;
		        &amp;lt;/style&amp;gt;&lt;br /&gt;
		&amp;lt;/fallback&amp;gt;&lt;br /&gt;
		&amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot;&lt;br /&gt;
		     xmlns:xlink=&amp;quot;http://www.w3.org/1999/xlink&amp;quot;&lt;br /&gt;
		     width=&amp;quot;100%&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
		     version=&amp;quot;1.1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;title&amp;gt;My Title&amp;lt;/title&amp;gt;&lt;br /&gt;
			&amp;lt;desc&amp;gt;schepers, 01-04-2008&amp;lt;/desc&amp;gt;&lt;br /&gt;
			&amp;lt;circle id=&amp;quot;circle_1&amp;quot; cx=&amp;quot;75&amp;quot; cy=&amp;quot;25&amp;quot; r=&amp;quot;20&amp;quot; fill=&amp;quot;lime&amp;quot; /&amp;gt;&lt;br /&gt;
      			&amp;lt;text id=&#039;text_1&#039; x=&#039;10&#039; y=&#039;25&#039; font-size=&#039;18&#039; fill=&#039;crimson&#039;&amp;gt;This is some text.&amp;lt;/text&amp;gt;&lt;br /&gt;
		&amp;lt;/svg&amp;gt;		&lt;br /&gt;
	&amp;lt;/ext&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reasons why we can&#039;t do this ===&lt;br /&gt;
&lt;br /&gt;
It&#039;s not clear what the processing model being proposed actually is. However, there is already one problem:&lt;br /&gt;
&lt;br /&gt;
* The idea relies on not conflicting with legacy content. Unfortunately, whatever syntax we end up using, people will copy and paste it from documents that were written by competent authors that tested it against the new UAs, into documents written by authors who don&#039;t know about this, and who don&#039;t have the new UA, thus creating new &amp;quot;legacy documents&amp;quot; that use whatever syntax we come up with. Saying the risk is minimal doesn&#039;t mitigate this problem. It&#039;s a real problem, and we have to deal with it. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;Such content clearly wouldn&#039;t work in the legacy UAs, and so the mistake will have no reason to propagate (the novice author will have no incentive to copy such content if it doesn&#039;t work in their UA); further, this is an issue with any new HTML5 syntax. Please explain in more detail how this is a problem.  -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note also that the fallback idea doesn&#039;t work. Elements like &amp;lt;script&amp;gt;, &amp;lt;style&amp;gt;, &amp;lt;title&amp;gt;, &amp;lt;input&amp;gt;, &amp;lt;textarea&amp;gt; etc, get treated as HTML elements in legacy UAs. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;Please expand on this; the &amp;lt;fallback&amp;gt; proposal relies on the fact that any content in the &amp;lt;fallback&amp;gt; element be treated as HTML, so it&#039;s not clear what the objection is. -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relying on CSS for hiding the text content doesn&#039;t work either, because CSS is optional and might not be enabled (or supported).  &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;In this case, legacy browsers that don&#039;t support &amp;lt;fallback&amp;gt; and in which CSS (or optionally JS) is not enabled or supported would, unfortunately print the textnodes; this still doesn&#039;t break the page, however, and any page which relies on JS or CSS will always fail in such UAs; this is true of almost every Webapp. -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(It doesn&#039;t much matter, though, because fallback isn&#039;t one of [[New Vocabularies|the things we&#039;re trying to address]] with this.) &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;This seems like an artificial constraint; any solution which solves another larger problem (even if that&#039;s not the problem being addressed) is not a bug, it&#039;s a feature. -Shepazu&#039;&#039;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proposal 3: XML5 ==&lt;br /&gt;
&lt;br /&gt;
Microsoft has published a [http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=ie8whitepapers&amp;amp;ReleaseId=573 whitepaper] on the subject of &#039;&#039;Improved Namespace Support&#039;&#039;.  Salient features:&lt;br /&gt;
&lt;br /&gt;
* Windows Internet Explorer 8 Beta 1 for Developers offers Web developers the opportunity to write standards-compliant HTML-based Web pages that support features (such as SVG, XUL, and MathML) in namespaces, &#039;&#039;provided that the client has installed appropriate handlers for those namespaces via binary behaviors&#039;&#039;. (A binary behavior is a type of ActiveX control.) &#039;&#039;&amp;lt;ins&amp;gt;[[User:Tbroyer|Tbroyer]]: note that those &#039;&#039;behaviors&#039;&#039; don&#039;t change the way the markup is parsed into a DOM; at least for elements whose name contains a colon (haven&#039;t tested this in IE8, but this is the way it is since IE5.5)&amp;lt;/ins&amp;gt;&#039;&#039;&lt;br /&gt;
* Internet Explorer 8 does not support the XHTML namespace definition. Thus, default namespace declarations of XHTML are ignored (xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;). &#039;&#039;&amp;lt;ins&amp;gt;[[User:Tbroyer|Tbroyer]]: this means that you cannot switch from a default namespace back to HTML (actually, this is true in IE8 in a more general fashion: once you&#039;ve set a default namespace (i.e. once you&#039;ve leaved &amp;quot;HTML&amp;quot;), you cannot switch to another; the whitepaper describes this as &amp;quot;Nesting of multiple default namespaces is not allowed; in other words, a default namespace declaration inside of another default namespace declaration will be ignored.&amp;quot;&amp;lt;/ins&amp;gt;&#039;&#039;&lt;br /&gt;
* Internet Explorer 8 does not support default namespace declarations on any known elements such as HTML, SCRIPT, DIV, or STYLE. If default namespace declarations are encountered on these elements, the declaration is ignored (for purposes of existing Web page compatibility).&lt;br /&gt;
&lt;br /&gt;
A few notes:&lt;br /&gt;
&lt;br /&gt;
* While Microsoft&#039;s IE8 implementation as described by this whitepaper does not satisfy all of the requirements; the above list focuses on the parts that do.&lt;br /&gt;
* While Microsoft&#039;s implementation is based on ActiveX (&#039;&#039;&amp;lt;ins&amp;gt;[[User:Tbroyer|Tbroyer]]: see above, ActiveX give you the behaviors associated with a given namespace URI, but doesn&#039;t change the parsing algorithm&amp;lt;/ins&amp;gt;&#039;&#039;), the situation could very well end up being similar to [http://www.w3.org/TR/XMLHttpRequest/ XMLHttpRequest] whereby the functionality was first exposed via ActiveX, other browser vendors adopted an alternate object model interface to this same functionality, and that interface was later adopted and standardized.&lt;br /&gt;
* While the white paper does not explicitly state this requirement, the approach works best if the simple name for the unknown (to HTML5) element which contains the default namespace declaration for which a binary behavior has been installed is not contained within the subtree.  Both SVG and MathML have unique elements (&amp;lt;code&amp;gt;svg&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;math&amp;lt;/code&amp;gt;, respectively) that satisfy this purpose.  This gives proposal 3 some of the desirable characteristics of proposal 2 spelled out above.&lt;br /&gt;
* In order to meet the &#039;&#039;Resistance to errors (e.g. not brittle in the face of syntax errors)&#039;&#039; [[New Vocabularies|requirement]], something akin to [http://annevankesteren.nl/2007/10/xml5 Anne van Kesteren&#039;s XML5] would be required, an implementation of which can be seen on [http://code.google.com/p/xml5/ Google Code]. &#039;&#039;&amp;lt;ins&amp;gt;[[User:Tbroyer|Tbroyer]]: see also the [http://html5lib.googlecode.com/svn/branches/namespaces-in-text-html/python/ namespaces-in-text-html branch of html5lib]&amp;lt;/ins&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Reasons why we can&#039;t do this ===&lt;br /&gt;
&lt;br /&gt;
I&#039;ve no idea what IE8 beta 1 is supposed to do. The whitepaper doesn&#039;t describe the processing model, the error handling, or how to handle legacy content, and IE8 Beta 1 doesn&#039;t seem to implement the whitepaper&#039;s syntax at all.&lt;/div&gt;</summary>
		<author><name>JimJJewett</name></author>
	</entry>
</feed>