--- a/autoimplementation.html Thu Apr 07 15:32:58 2011 -0600
+++ b/autoimplementation.html Sun Apr 10 15:11:55 2011 -0600
@@ -7,6 +7,9 @@
b, strong { font-weight: bold }
.bold { font-weight: bold }
.notbold { font-weight: normal }
+.underline { text-decoration: underline }
+.line-through { text-decoration: line-through }
+.underline-and-line-through { text-decoration: underline line-through }
#purple { color: purple }
td > div:first-child {
padding-bottom: 0.2em;
@@ -559,6 +562,15 @@
'<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>',
'{<table><tr><td>foo<td>bar<td>baz</table>}',
+ 'foo<u>[bar]</u>baz',
+ 'foo<span style="text-decoration: underline">[bar]</span>baz',
+ '<u>foo[bar]baz</u>',
+ '<u>foo[b<span style="color:red">ar]ba</span>z</u>',
+ '<u>foo[b<span style="color:red" id=foo>ar]ba</span>z</u>',
+ '<u>foo[b<span style="font-size:3em">ar]ba</span>z</u>',
+ '<u>foo[b<i>ar]ba</i>z</u>',
+ '<p style="text-decoration: underline">foo[bar]baz</p>',
+
'foo<s>[bar]</s>baz',
'foo<span style="text-decoration: line-through">[bar]</span>baz',
'<s>foo[bar]baz</s>',
@@ -567,6 +579,27 @@
'<s>foo[b<span style="font-size:3em">ar]ba</span>z</s>',
'<s>foo[b<i>ar]ba</i>z</s>',
'<p style="text-decoration: line-through">foo[bar]baz</p>',
+
+ 'foo<span style="text-decoration: underline line-through">[bar]</span>baz',
+ 'foo<span style="text-decoration: underline line-through">b[a]r</span>baz',
+ 'foo<s style="text-decoration: underline">[bar]</s>baz',
+ 'foo<s style="text-decoration: underline">b[a]r</s>baz',
+ 'foo<u style="text-decoration: line-through">[bar]</u>baz',
+ 'foo<u style="text-decoration: line-through">b[a]r</u>baz',
+ 'foo<s style="text-decoration: overline">[bar]</s>baz',
+ 'foo<s style="text-decoration: overline">b[a]r</s>baz',
+ 'foo<u style="text-decoration: overline">[bar]</u>baz',
+ 'foo<u style="text-decoration: overline">b[a]r</u>baz',
+
+ '<p style="text-decoration: line-through">foo[bar]baz</p>',
+ '<p style="text-decoration: overline">foo[bar]baz</p>',
+
+ 'foo<span class="underline">[bar]</span>baz',
+ 'foo<span class="underline">b[a]r</span>baz',
+ 'foo<span class="line-through">[bar]</span>baz',
+ 'foo<span class="line-through">b[a]r</span>baz',
+ 'foo<span class="underline-and-line-through">[bar]</span>baz',
+ 'foo<span class="underline-and-line-through">b[a]r</span>baz',
],
subscript: [
'foo[bar]baz',
@@ -651,6 +684,36 @@
'<u>foo[b<span style="font-size:3em">ar]ba</span>z</u>',
'<u>foo[b<i>ar]ba</i>z</u>',
'<p style="text-decoration: underline">foo[bar]baz</p>',
+
+ 'foo<s>[bar]</s>baz',
+ 'foo<span style="text-decoration: line-through">[bar]</span>baz',
+ '<s>foo[bar]baz</s>',
+ '<s>foo[b<span style="color:red">ar]ba</span>z</s>',
+ '<s>foo[b<span style="color:red" id=foo>ar]ba</span>z</s>',
+ '<s>foo[b<span style="font-size:3em">ar]ba</span>z</s>',
+ '<s>foo[b<i>ar]ba</i>z</s>',
+ '<p style="text-decoration: line-through">foo[bar]baz</p>',
+
+ 'foo<span style="text-decoration: underline line-through">[bar]</span>baz',
+ 'foo<span style="text-decoration: underline line-through">b[a]r</span>baz',
+ 'foo<s style="text-decoration: underline">[bar]</s>baz',
+ 'foo<s style="text-decoration: underline">b[a]r</s>baz',
+ 'foo<u style="text-decoration: line-through">[bar]</u>baz',
+ 'foo<u style="text-decoration: line-through">b[a]r</u>baz',
+ 'foo<s style="text-decoration: overline">[bar]</s>baz',
+ 'foo<s style="text-decoration: overline">b[a]r</s>baz',
+ 'foo<u style="text-decoration: overline">[bar]</u>baz',
+ 'foo<u style="text-decoration: overline">b[a]r</u>baz',
+
+ '<p style="text-decoration: line-through">foo[bar]baz</p>',
+ '<p style="text-decoration: overline">foo[bar]baz</p>',
+
+ 'foo<span class="underline">[bar]</span>baz',
+ 'foo<span class="underline">b[a]r</span>baz',
+ 'foo<span class="line-through">[bar]</span>baz',
+ 'foo<span class="line-through">b[a]r</span>baz',
+ 'foo<span class="underline-and-line-through">[bar]</span>baz',
+ 'foo<span class="underline-and-line-through">b[a]r</span>baz',
],
unlink: [
'<a href=http://www.google.com/>foo[bar]baz</a>',
--- a/editcommands.html Thu Apr 07 15:32:58 2011 -0600
+++ b/editcommands.html Sun Apr 10 15:11:55 2011 -0600
@@ -27,7 +27,7 @@
<body class=draft>
<div class=head id=head>
<h1>HTML Editing Commands</h1>
-<h2 class="no-num no-toc" id=work-in-progress-—-last-update-7-april-2011>Work in Progress — Last Update 7 April 2011</h2>
+<h2 class="no-num no-toc" id=work-in-progress-—-last-update-10-april-2011>Work in Progress — Last Update 10 April 2011</h2>
<dl>
<dt>Editor
<dd>Aryeh Gregor <ayg+spec@aryeh.name>
@@ -419,23 +419,20 @@
<code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code>, and the <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code> attribute sets exactly one CSS property
(including invalid or unrecognized properties), which is "font-style".
- <li>It is an <code class=external data-anolis-spec=html title="the s element"><a href=http://www.whatwg.org/html/#the-s-element>s</a></code> element with exactly one attribute, which is <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code>, and
- the <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code> attribute sets exactly one CSS property (including invalid or
- unrecognized properties), which is "text-decoration", which is set to
- "line-through" or "underline" or "none".
-
- <li>It is a <code class=external data-anolis-spec=html title="the u element"><a href=http://www.whatwg.org/html/#the-u-element>u</a></code> element with exactly one attribute, which is <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code>, and
- the <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code> attribute sets exactly one CSS property (including invalid or
- unrecognized properties), which is "text-decoration", which is set to
- "line-through" or "underline" or "none".
-
<li>It is a <code class=external data-anolis-spec=html title="the sub and sup elements"><a href=http://www.whatwg.org/html/#the-sub-and-sup-elements>sub</a></code> or <code class=external data-anolis-spec=html title="the sub and sup elements"><a href=http://www.whatwg.org/html/#the-sub-and-sup-elements>sup</a></code> element with exactly one attribute, which is
<code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code>, and the <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code> attribute sets exactly one CSS property
(including invalid or unrecognized properties), which is "vertical-align".
<li>It is an <code class=external data-anolis-spec=html title="the a element"><a href=http://www.whatwg.org/html/#the-a-element>a</a></code>, <code class=external data-anolis-spec=html title=font><a href=http://www.whatwg.org/html/#font>font</a></code>, or <code class=external data-anolis-spec=html title="the span element"><a href=http://www.whatwg.org/html/#the-span-element>span</a></code> element with exactly one attribute,
which is <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code>, and the <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code> attribute sets exactly one CSS property
- (including invalid or unrecognized properties).
+ (including invalid or unrecognized properties), and that property is not
+ "text-decoration".
+
+ <li>It is an <code class=external data-anolis-spec=html title="the a element"><a href=http://www.whatwg.org/html/#the-a-element>a</a></code>, <code class=external data-anolis-spec=html title=font><a href=http://www.whatwg.org/html/#font>font</a></code>, <code class=external data-anolis-spec=html title="the s element"><a href=http://www.whatwg.org/html/#the-s-element>s</a></code>, <code class=external data-anolis-spec=html title="the span element"><a href=http://www.whatwg.org/html/#the-span-element>span</a></code>, or <code class=external data-anolis-spec=html title="the u element"><a href=http://www.whatwg.org/html/#the-u-element>u</a></code> element with exactly
+ one attribute, which is <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code>, and the <code class=external data-anolis-spec=html title="the style attribute"><a href=http://www.whatwg.org/html/#the-style-attribute>style</a></code> attribute sets exactly
+ one CSS property (including invalid or unrecognized properties), which is
+ "text-decoration", which is set to "line-through" or "underline" or
+ "overline" or "none".
</ul>
<p class=note>Conceptually, a simple modifiable element is a modifiable element
--- a/implementation.js Thu Apr 07 15:32:58 2011 -0600
+++ b/implementation.js Sun Apr 10 15:11:55 2011 -0600
@@ -699,32 +699,6 @@
return true;
}
- // "It is an s element with exactly one attribute, which is style, and the
- // style attribute sets exactly one CSS property (including invalid or
- // unrecognized properties), which is "text-decoration", which is set to
- // "line-through" or "underline" or "none"."
- if (node.tagName == "S"
- && node.hasAttribute("style")
- && node.style.length == 1
- && (node.style.textDecoration == "line-through"
- || node.style.textDecoration == "underline"
- || node.style.textDecoration == "none")) {
- return true;
- }
-
- // "It is a u element with exactly one attribute, which is style, and the
- // style attribute sets exactly one CSS property (including invalid or
- // unrecognized properties), which is "text-decoration", which is set to
- // "line-through" or "underline" or "none"."
- if (node.tagName == "U"
- && node.hasAttribute("style")
- && node.style.length == 1
- && (node.style.textDecoration == "line-through"
- || node.style.textDecoration == "underline"
- || node.style.textDecoration == "none")) {
- return true;
- }
-
// "It is a sub or sub element with exactly one attribute, which is style,
// and the style attribute sets exactly one CSS property (including invalid
// or unrecognized properties), which is "vertical-align"."
@@ -737,10 +711,27 @@
// "It is an a, font, or span element with exactly one attribute, which is
// style, and the style attribute sets exactly one CSS property (including
- // invalid or unrecognized properties)."
+ // invalid or unrecognized properties), and that property is not
+ // "text-decoration"."
if ((node.tagName == "A" || node.tagName == "FONT" || node.tagName == "SPAN")
&& node.hasAttribute("style")
- && node.style.length == 1) {
+ && node.style.length == 1
+ && node.style.textDecoration == "") {
+ return true;
+ }
+
+ // "It is an a, font, s, span, or u element with exactly one attribute,
+ // which is style, and the style attribute sets exactly one CSS property
+ // (including invalid or unrecognized properties), which is
+ // "text-decoration", which is set to "line-through" or "underline" or
+ // "overline" or "none"."
+ if (["A", "FONT", "S", "SPAN", "U"].indexOf(node.tagName) != -1
+ && node.hasAttribute("style")
+ && node.style.length == 1
+ && (node.style.textDecoration == "line-through"
+ || node.style.textDecoration == "underline"
+ || node.style.textDecoration == "overline"
+ || node.style.textDecoration == "none")) {
return true;
}
--- a/source.html Thu Apr 07 15:32:58 2011 -0600
+++ b/source.html Sun Apr 10 15:11:55 2011 -0600
@@ -408,23 +408,20 @@
[[style]], and the [[style]] attribute sets exactly one CSS property
(including invalid or unrecognized properties), which is "font-style".
- <li>It is an [[s]] element with exactly one attribute, which is [[style]], and
- the [[style]] attribute sets exactly one CSS property (including invalid or
- unrecognized properties), which is "text-decoration", which is set to
- "line-through" or "underline" or "none".
-
- <li>It is a [[u]] element with exactly one attribute, which is [[style]], and
- the [[style]] attribute sets exactly one CSS property (including invalid or
- unrecognized properties), which is "text-decoration", which is set to
- "line-through" or "underline" or "none".
-
<li>It is a [[sub]] or [[sup]] element with exactly one attribute, which is
[[style]], and the [[style]] attribute sets exactly one CSS property
(including invalid or unrecognized properties), which is "vertical-align".
<li>It is an [[a]], [[font]], or [[span]] element with exactly one attribute,
which is [[style]], and the [[style]] attribute sets exactly one CSS property
- (including invalid or unrecognized properties).
+ (including invalid or unrecognized properties), and that property is not
+ "text-decoration".
+
+ <li>It is an [[a]], [[font]], [[s]], [[span]], or [[u]] element with exactly
+ one attribute, which is [[style]], and the [[style]] attribute sets exactly
+ one CSS property (including invalid or unrecognized properties), which is
+ "text-decoration", which is set to "line-through" or "underline" or
+ "overline" or "none".
</ul>
<p class=note>Conceptually, a simple modifiable element is a modifiable element