HTML Standard Tracker

Filter

File a bug

SVNBugCommentTime (UTC)
2904SVG in text/html: Second try, based on more recent feedback.2009-03-25 00:34
@@ -7203,21 +7203,22 @@ interface <dfn>HTMLDocument</dfn> {
   <dl class="domintro">
 
    <dt><var title="">document</var> . <code title="dom-document-title">title</code> [ = <var title="">value</var> ]</dt>
    <dd>
     <p>Returns the document's title, as given by <span>the
     <code>title</code> element</span>.</p>
     <p>Can be set, to update the document's title. If there is no
     <span title="the head element"><code>head</code> element</span>,
     the new value is ignored.</p>
     <p>In SVG documents, the <code>SVGDocument</code> interface's
-    <code title="">title</code> attribute takes precedence.</p>
+    <code title="dom-svg-title">title</code> attribute takes
+    precedence.</p>
    </dd>
 
   </dl>
 
   <p><dfn>The <code>title</code> element</dfn> of a document is the
   first <code>title</code> element in the document (in tree order), if
   there is one, or null otherwise.</p>
 
   <div class="impl">
 
@@ -11374,23 +11375,24 @@ people expect to have work and what is necessary.
    has changed for instance -->
 
    <dt>The intended destination media for style information (<code title="dom-stylesheet-media">media</code> DOM attribute)</dt>
 
    <dd><p>The media must be the same as the value of the element's
    <code title="">media</code> content attribute.</p></dd>
 
    <dt>The style sheet title (<code title="dom-stylesheet-title">title</code> DOM attribute)</dt>
 
    <dd><p>The title must be the same as the value of the element's
-   <code title="">title</code> content attribute. If the attribute is
-   absent, then the style sheet does not have a title. The title is
-   used for defining <dfn>alternative style sheet sets</dfn>.</p></dd>
+   <code title="dom-title">title</code> content attribute. If the
+   attribute is absent, then the style sheet does not have a
+   title. The title is used for defining <dfn>alternative style sheet
+   sets</dfn>.</p></dd>
 
   </dl>
 
   <p>The <dfn
   title="dom-LinkStyle-disabled"><code>disabled</code></dfn> DOM
   attribute on <code>link</code> and <code>style</code> elements must
   return false and do nothing on setting, if the <code
   title="dom-linkstyle-sheet">sheet</code> attribute of their
   <code>LinkStyle</code> interface is null. Otherwise, it must return
   the value of the <code>StyleSheet</code> interface's <code
@@ -27635,24 +27637,30 @@ function AddCloud(data, x, y) { ... }</pre>
   <div class="impl">
 
   <p>To enable authors to use SVG tools that only accept SVG in its
   XML form, interactive HTML user agents are encouraged to provide a
   way to export any SVG fragment as a namespace-well-formed XML
   fragment.</p>
 
   </div>
 
   <p>When the SVG <code>foreignObject</code> element contains elements
-  from the HTML namespace, such elements must all be <span>flow
-  content</span> and must not be interleaved with non-HTML
+  from the <span>HTML namespace</span>, such elements must all be
+  <span>flow content</span> and must not be interleaved with non-HTML
   elements. <a href="#refsSVG">[SVG]</a></p>
 
+  <p>The content model for <code title="">title</code> elements in the
+  <span>SVG namespace</span> inside <span>HTML documents</span> is
+  <span>phrasing content</span>. (This further constrains the
+  requirements given in the SVG specification.)</p>
+
+
 
   <h4><dfn>Dimension attributes</dfn></h4>
 
   <p><strong class="impl">Author requirements:</strong> The <dfn
   title="attr-dim-width"><code>width</code></dfn> and <dfn
   title="attr-dim-height"><code>height</code></dfn> attributes on
   <code>img</code>, <code>iframe</code>, <code>embed</code>,
   <code>object</code>, <code>video</code>, and, when their <code
   title="attr-input-type">type</code> attribute is in the <span
   title="attr-input-type-image">Image Button</span> state,
@@ -62318,23 +62326,21 @@ interface <dfn>MessagePort</dfn> {
    <dd><code>style</code>, <code>script</code></dd> <!-- iframe and
    noscript don't count as CDATA for syntax purposes -->
 
    <dt>RCDATA elements</dt>
 
    <dd><code>title</code>, <code>textarea</code></dd>
 
    <dt>Foreign elements</dt>
 
    <dd>Elements from the <span>MathML namespace</span>
-<!--XXXSVG
    and the <span>SVG namespace</span>.</dd>
--->
 
    <dt>Normal elements</dt>
 
    <dd>All other allowed <span>HTML elements</span> are normal
    elements.</dd>
 
   </dl>
 
   <p><dfn title="syntax-tags">Tags</dfn> are used to delimit the start
   and end of elements in the markup. CDATA, RCDATA, and normal
@@ -63828,26 +63834,25 @@ interface <dfn>MessagePort</dfn> {
    then switch the <span>insertion mode</span> to "<span
    title="insertion mode: in column group">in column group</span>" and
    abort these steps. (<span>fragment case</span>)</li>
 
    <li>If <var title="">node</var> is a <code>table</code> element,
    then switch the <span>insertion mode</span> to "<span
    title="insertion mode: in table">in table</span>" and abort these
    steps.</li>
 
    <li>If <var title="">node</var> is an element from the <span>MathML
-   namespace</span><!--XXXSVG or the <span>SVG namespace</span>-->,
-   then switch the <span>insertion mode</span> to "<span
-   title="insertion mode: in foreign content">in foreign
-   content</span>", let the <span>secondary insertion mode</span> be
-   "<span title="insertion mode: in body">in body</span>", and abort
-   these steps.</li>
+   namespace</span> or the <span>SVG namespace</span>, then switch the
+   <span>insertion mode</span> to "<span title="insertion mode: in
+   foreign content">in foreign content</span>", let the
+   <span>secondary insertion mode</span> be "<span title="insertion
+   mode: in body">in body</span>", and abort these steps.</li>
 
    <li>If <var title="">node</var> is a <code>head</code> element,
    then switch the <span>insertion mode</span> to "<span
    title="insertion mode: in body">in body</span>" ("<span
    title="insertion mode: in body">in body</span>"! <em> not "<span
    title="insertion mode: in head">in head</span>"</em>!) and abort
    these steps. (<span>fragment case</span>)</li> <!-- This is only
    here for now in case people think that the spec accidentally
    omitted it and try to "fix" it. Note that noscript-in-head is also
    handled this way. This is all intentional. The only thing it
@@ -63962,21 +63967,21 @@ interface <dfn>MessagePort</dfn> {
    <code>textarea</code>, <code>tfoot</code>, <code>thead</code>,
    <code>title</code>, <code>tr</code>, <code>ul</code>, and
    <code>wbr</code>.</p></dd>
 
    <dt><dfn>Scoping</dfn></dt>
    <dd><p>The following HTML elements introduce new <span title="has
    an element in scope">scopes</span> for various parts of the
    parsing: <code>applet</code>, <code>button</code>,
    <code>caption</code>, <code>html</code>, <code>marquee</code>,
    <code>object</code>, <code>table</code>, <code>td</code>,
-   <code>th</code><!--XXXSVG, and SVG's <code>foreignObject</code>-->.</p></dd>
+   <code>th</code>, and SVG's <code>foreignObject</code>.</p></dd>
 
    <dt><dfn>Formatting</dfn></dt>
    <dd><p>The following HTML elements are those that end up in the
    <span>list of active formatting elements</span>: <code>a</code>,
    <code>b</code>, <code>big</code>, <code>code</code>,
    <code>em</code>, <code>font</code>, <code>i</code>,
    <code>nobr</code>, <code>s</code>, <code>small</code>,
    <code>strike</code>, <code>strong</code>, <code>tt</code>, and
    <code>u</code>.</p></dd>
 
@@ -64003,21 +64008,21 @@ interface <dfn>MessagePort</dfn> {
     <ul class="brief">
      <li><code>applet</code> in the HTML namespace</li>
      <li><code>caption</code> in the HTML namespace</li>
      <li><code>html</code> in the HTML namespace</li> <!-- (This can only happen if the <var title="">node</var> is the topmost node of the <span>stack of open elements</span>, and prevents the next step from being invoked if there are no more elements in the stack.) -->
      <li><code>table</code> in the HTML namespace</li>
      <li><code>td</code> in the HTML namespace</li>
      <li><code>th</code> in the HTML namespace</li>
      <li><code>button</code> in the HTML namespace</li>
      <li><code>marquee</code> in the HTML namespace</li>
      <li><code>object</code> in the HTML namespace</li>
-<!--XXXSVG     <li><code title="">foreignObject</code> in the SVG namespace</li>-->
+     <li><code title="">foreignObject</code> in the SVG namespace</li>
     </ul>
    </li>
 
    <li><p>Otherwise, set <var title="">node</var> to the previous
    entry in the <span>stack of open elements</span> and return to step
    2. (This will never fail, since the loop will always terminate in
    the previous step if the top of the stack &mdash; an
    <code>html</code> element &mdash; is reached.)</p></li>
 
   </ol>
@@ -65812,21 +65817,20 @@ interface <dfn>MessagePort</dfn> {
   is a <span>parse error</span>. Similarly, if the newly created
   element has an <code title="">xmlns:xlink</code> attribute in the
   <span>XMLNS namespace</span> whose value is not the <span>XLink
   Namespace</span>, that is a <span>parse error</span>.</p>
 
   <p>When the steps below require the user agent to <dfn>adjust MathML
   attributes</dfn> for a token, then, if the token has an attribute
   named <code title="">definitionurl</code>, change its name to <code
   title="">definitionURL</code> (note the case difference).</p>
 
-<!--XXXSVG
   <p>When the steps below require the user agent to <dfn>adjust SVG
   attributes</dfn> for a token, then, for each attribute on the token
   whose attribute name is one of the ones in the first column of the
   following table, change the attribute's name to the name given in
   the corresponding cell in the second column. (This fixes the case of
   SVG attributes that are not all lowercase.)</p>
 
   <table>
    <thead>
     <tr> <th> Attribute name on token <th> Attribute name on element
@@ -65887,21 +65891,20 @@ interface <dfn>MessagePort</dfn> {
     <tr> <td> <code title="">tablevalues</code> <td> <code title="">tableValues</code>
     <tr> <td> <code title="">targetx</code> <td> <code title="">targetX</code>
     <tr> <td> <code title="">targety</code> <td> <code title="">targetY</code>
     <tr> <td> <code title="">textlength</code> <td> <code title="">textLength</code>
     <tr> <td> <code title="">viewbox</code> <td> <code title="">viewBox</code>
     <tr> <td> <code title="">viewtarget</code> <td> <code title="">viewTarget</code>
     <tr> <td> <code title="">xchannelselector</code> <td> <code title="">xChannelSelector</code>
     <tr> <td> <code title="">ychannelselector</code> <td> <code title="">yChannelSelector</code>
     <tr> <td> <code title="">zoomandpan</code> <td> <code title="">zoomAndPan</code>
   </table>
--->
 
   <p>When the steps below require the user agent to <dfn>adjust
   foreign attributes</dfn> for a token, then, if any of the attributes
   on the token match the strings given in the first column of the
   following table, let the attribute be a namespaced attribute, with
   the prefix being the string given in the corresponding cell in the
   second column, the local name being the string given in the
   corresponding cell in the third column, and the namespace being the
   namespace given in the corresponding cell in the fourth
   column. (This fixes the use of namespaced attributes, in particular
@@ -67848,21 +67851,21 @@ interface <dfn>MessagePort</dfn> {
     <span>current node</span> off the <span>stack of open
     elements</span> and <span title="acknowledge self-closing
     flag">acknowledge the token's <i>self-closing flag</i></span>.</p>
 
     <p>Otherwise, let the <span>secondary insertion mode</span> be the
     current <span>insertion mode</span>, and then switch the
     <span>insertion mode</span> to "<span title="insertion mode: in
     foreign content">in foreign content</span>".</p>
 
    </dd>
-<!--XXXSVG
+
    <dt>A start tag whose tag name is "svg"</dt>
    <dd>
 
     <p><span>Reconstruct the active formatting elements</span>, if
     any.</p>
 
     <p><span>Adjust SVG attributes</span> for the token. (This fixes
     the case of SVG attributes that are not all lowercase.)</p>
 
     <p><span>Adjust foreign attributes</span> for the token. (This
@@ -67876,21 +67879,20 @@ interface <dfn>MessagePort</dfn> {
     <span>current node</span> off the <span>stack of open
     elements</span> and <span title="acknowledge self-closing
     flag">acknowledge the token's <i>self-closing flag</i></span>.</p>
 
     <p>Otherwise, let the <span>secondary insertion mode</span> be the
     current <span>insertion mode</span>, and then switch the
     <span>insertion mode</span> to "<span title="insertion mode: in
     foreign content">in foreign content</span>".</p>
 
    </dd>
--->
 
    <dt>A start <!--or end--> tag whose tag name is one of: "caption",
    "col", "colgroup", "frame", "head", "tbody", "td", "tfoot", "th",
    "thead", "tr"</dt>
    <!--<dt>An end tag whose tag name is one of: "area", "base",
    "basefont", "bgsound", "command", "embed", "hr", "iframe", "image",
    "img", "input", "isindex", "link", "meta", "noembed", "noframes",
    "param", "script", "select", "source", "spacer", "style", "table",
    "textarea", "title", "wbr"</dt>--> <!-- add keygen if we add the
    start tag -->
@@ -68023,25 +68025,24 @@ interface <dfn>MessagePort</dfn> {
     title="">script</var>. This might cause some script to execute,
     which might cause <span title="dom-document-write">new characters
     to be inserted into the tokeniser</span>, and might cause the
     tokeniser to output more tokens, resulting in a <a
     href="#nestedParsing">reentrant invocation of the parser</a>.</p>
 
     <p>Decrement the parser's <span>script nesting level</span> by
     one. If the parser's <span>script nesting level</span> is zero,
     then set the <span>parser pause flag</span> to false.</p>
 
-    <p>Let the <span>insertion point</span> have the value of the
-    <var title="">old insertion point</var>. (In other words,
-    restore the <span>insertion point</span> to the value it had
-    before the previous paragraph. This value might be the
-    "undefined" value.)</p>
+    <p>Let the <span>insertion point</span> have the value of the <var
+    title="">old insertion point</var>. (In other words, restore the
+    <span>insertion point</span> to its previous value. This value
+    might be the "undefined" value.)</p>
 
     <p id="scriptTagParserResumes">At this stage, if there is a
     <span>pending external script</span>, then:</p>
 
     <dl class="switch">
 
      <dt>If the tree construction stage is <a
      href="#nestedParsing">being called reentrantly</a>, say from a
      call to <code
      title="dom-document-write">document.write()</code>:</dt>
@@ -68962,33 +68963,64 @@ interface <dfn>MessagePort</dfn> {
     <p>Append a <code>Comment</code> node to the <span>current
     node</span> with the <code title="">data</code> attribute set to
     the data given in the comment token.</p>
    </dd>
 
    <dt>A DOCTYPE token</dt>
    <dd>
     <p><span>Parse error</span>. Ignore the token.</p>
    </dd>
 
-   <!--XXXSVG need to define processing for </script> to match HTML5's </script> processing -->
+   <dt>An end tag whose tag name is "script", if the <span>current node</span> is a <code title="">script</code> element in the <span>SVG namespace</span>.</dt>
+   <dd>
+
+    <p>Pop the <span>current node</span> off the <span>stack of open
+    elements</span>.</p>
+
+    <p>Let the <var title="">old insertion point</var> have the
+    same value as the current <span>insertion point</span>. Let
+    the <span>insertion point</span> be just before the <span>next
+    input character</span>.</p>
+
+    <p>Increment the parser's <span>script nesting level</span> by
+    one. Set the <span>parser pause flag</span> to true.</p>
+
+    <p><a
+    href="http://www.w3.org/TR/SVGMobile12/script.html#ScriptContentProcessing">Process
+    the <code title="">script</code> element</a> according to the SVG
+    rules. <a href="#refsSVG">[SVG]</a></p>
+
+    <p class="note">Even if this causes <span
+    title="dom-document-write">new characters to be inserted into the
+    tokeniser</span>, the parser will not be executed reentrantly,
+    since the <span>parser pause flag</span> is true.</p>
+
+    <p>Decrement the parser's <span>script nesting level</span> by
+    one. If the parser's <span>script nesting level</span> is zero,
+    then set the <span>parser pause flag</span> to false.</p>
+
+    <p>Let the <span>insertion point</span> have the value of the <var
+    title="">old insertion point</var>. (In other words, restore the
+    <span>insertion point</span> to its previous value. This value
+    might be the "undefined" value.)</p>
+
+   </dd>
 
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mi</code> element in the <span>MathML namespace</span>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mo</code> element in the <span>MathML namespace</span>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mn</code> element in the <span>MathML namespace</span>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">ms</code> element in the <span>MathML namespace</span>.</dt>
    <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mtext</code> element in the <span>MathML namespace</span>.</dt>
-<!--XXXSVG
    <dt>A start tag whose tag name is "svg", if the <span>current node</span> is an <code title="">annotation-xml</code> element in the <span>MathML namespace</span>.</dt>
    <dt>A start tag, if the <span>current node</span> is a <code title="">foreignObject</code> element in the <span>SVG namespace</span>.</dt>
    <dt>A start tag, if the <span>current node</span> is a <code title="">desc</code> element in the <span>SVG namespace</span>.</dt>
    <dt>A start tag, if the <span>current node</span> is a <code title="">title</code> element in the <span>SVG namespace</span>.</dt>
--->
    <dt>A start tag, if the <span>current node</span> is an element in the <span>HTML namespace</span>.</dt>
    <dt>An end tag</dt>
    <dd>
 
     <p>Process the token <span>using the rules for</span> the
     <span>secondary insertion mode</span>.</p>
 
     <p>If, after doing so, the <span>insertion mode</span> is still
     "<span title="insertion mode: in foreign content">in foreign
     content</span>", but there is no element in scope that has a
@@ -69033,21 +69065,20 @@ interface <dfn>MessagePort</dfn> {
    </dd>
 
    <dt>Any other start tag</dt>
    <dd>
 
     <p>If the <span>current node</span> is an element in the
     <span>MathML namespace</span>, <span>adjust MathML
     attributes</span> for the token. (This fixes the case of MathML
     attributes that are not all lowercase.)</p>
 
-<!--XXXSVG
     <p>If the <span>current node</span> is an element in the <span>SVG
     namespace</span>, and the token's tag name is one of the ones in
     the first column of the following table, change the tag name to
     the name given in the corresponding cell in the second
     column. (This fixes the case of SVG elements that are not all
     lowercase.)</p>
 
     <table>
      <thead>
       <tr> <th> Tag name <th> Element name
@@ -69080,29 +69111,29 @@ interface <dfn>MessagePort</dfn> {
       <tr> <td> <code title="">feoffset</code> <td> <code title="">feOffset</code>
       <tr> <td> <code title="">fepointlight</code> <td> <code title="">fePointLight</code>
       <tr> <td> <code title="">fespecularlighting</code> <td> <code title="">feSpecularLighting</code>
       <tr> <td> <code title="">fespotlight</code> <td> <code title="">feSpotLight</code>
       <tr> <td> <code title="">fetile</code> <td> <code title="">feTile</code>
       <tr> <td> <code title="">feturbulence</code> <td> <code title="">feTurbulence</code>
       <tr> <td> <code title="">foreignobject</code> <td> <code title="">foreignObject</code>
       <tr> <td> <code title="">glyphref</code> <td> <code title="">glyphRef</code>
       <tr> <td> <code title="">lineargradient</code> <td> <code title="">linearGradient</code>
       <tr> <td> <code title="">radialgradient</code> <td> <code title="">radialGradient</code>
-      <!- -<tr> <td> <code title="">solidcolor</code> <td> <code title="">solidColor</code> (SVG 1.2)- ->
+      <!--<tr> <td> <code title="">solidcolor</code> <td> <code title="">solidColor</code> (SVG 1.2)-->
       <tr> <td> <code title="">textpath</code> <td> <code title="">textPath</code>
     </table>
 
     <p>If the <span>current node</span> is an element in the <span>SVG
     namespace</span>, <span>adjust SVG attributes</span> for the
     token.  (This fixes the case of SVG attributes that are not all
     lowercase.)</p>
--->
+
     <p><span>Adjust foreign attributes</span> for the token.  (This
     fixes the use of namespaced attributes, in particular XLink in
     SVG.)</p>
 
     <p><span>Insert a foreign element</span> for the token, in the
     same namespace as the <span>current node</span>.</p>
 
     <p>If the token has its <i>self-closing flag</i> set, pop the
     <span>current node</span> off the <span>stack of open
     elements</span> and <span title="acknowledge self-closing
@@ -72968,26 +72999,20 @@ S SPACER STRIKE TT U -->
   -->
 
   <h3>Localization</h3>
 
   <p>If you wish to create localized versions of an HTML application,
   the best solution is to preprocess the files on the server, and then
   use HTTP content negotiation to serve the appropriate language.</p>
 
   <!-- <p>XXX example here</p> -->
 
-<!--XXXSVG (remove next section)-->
-  <h3>Declarative 2D vector graphics and animation</h3>
-  <p>Embedding vector graphics into XHTML documents is the domain of
-  SVG.</p>
-
-  <!-- <p>XXX example here</p> -->
 
   <h3>Declarative 3D scenes</h3>
 
   <p>Embedding 3D imagery into XHTML documents is the domain of X3D,
   or technologies based on X3D that are namespace-aware.</p>
 
   <!-- <p>XXX example here</p> -->
 
 
 

|