--- a/editcommands.html Wed Jun 29 13:16:28 2011 -0600
+++ b/editcommands.html Wed Jun 29 13:24:28 2011 -0600
@@ -628,13 +628,13 @@
browsers (at least not in Opera 11.11), and also it breaks assumptions
elsewhere. E.g., if it gets turned into a p.
-<p>A <dfn id=visible-node>visible node</dfn> is a <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that either is a <a href=#prohibited-paragraph-child>prohibited
-paragraph child</a>, or a <code class=external data-anolis-spec=domcore><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#text>Text</a></code> node whose <code class=external data-anolis-spec=domcore title=dom-CharacterData-data><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-characterdata-data>data</a></code> is not empty, or
-an <code class=external data-anolis-spec=html title="the img element"><a href=http://www.whatwg.org/html/#the-img-element>img</a></code>, or a <code class=external data-anolis-spec=html title="the br element"><a href=http://www.whatwg.org/html/#the-br-element>br</a></code> that is not an <a href=#extraneous-line-break>extraneous line break</a>, or
-any <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> with a <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-descendant title=concept-tree-descendant>descendant</a> that is a <a href=#visible-node>visible node</a>.
-
-<p>An <dfn id=invisible-node>invisible node</dfn> is a <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is not a <a href=#visible-node>visible
-node</a>.
+<p>Something is <dfn id=visible>visible</dfn> if it is a <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that either is a
+<a href=#prohibited-paragraph-child>prohibited paragraph child</a>, or a <code class=external data-anolis-spec=domcore><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#text>Text</a></code> node whose <code class=external data-anolis-spec=domcore title=dom-CharacterData-data><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-characterdata-data>data</a></code> is
+not empty, or an <code class=external data-anolis-spec=html title="the img element"><a href=http://www.whatwg.org/html/#the-img-element>img</a></code>, or a <code class=external data-anolis-spec=html title="the br element"><a href=http://www.whatwg.org/html/#the-br-element>br</a></code> that is not an <a href=#extraneous-line-break>extraneous line
+break</a>, or any <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> with a <a href=#visible>visible</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-descendant title=concept-tree-descendant>descendant</a>.
+
+<p>Something is <dfn id=invisible>invisible</dfn> if it is a <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is not
+<a href=#visible>visible</a>.
<p class=XXX>I don't know if the visible/invisible node definitions are really
the way we want to do things. If they are, they need some adjustment, like to
@@ -643,8 +643,9 @@
<p>A <dfn id=collapsed-block-prop>collapsed block prop</dfn> is either a <a href=#collapsed-line-break>collapsed line
break</a> that is not an <a href=#extraneous-line-break>extraneous line break</a>, or an
<code class=external data-anolis-spec=domcore><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#element>Element</a></code> that is an <a href=#inline-node>inline node</a> and whose <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a> are all
-either <a href=#invisible-node title="invisible node">invisible nodes</a> or <a href=#collapsed-block-prop title="collapsed block prop">collapsed block props</a> and that has at least
-one <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> that is a <a href=#collapsed-block-prop>collapsed block prop</a>.
+either <a href=#invisible>invisible</a> or <a href=#collapsed-block-prop title="collapsed block prop">collapsed
+block props</a> and that has at least one <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> that is a
+<a href=#collapsed-block-prop>collapsed block prop</a>.
<p>The <dfn id=active-range>active range</dfn> is the first <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-range title=concept-range>range</a> in the <code class=external data-anolis-spec=domrange><a href=http://html5.org/specs/dom-range.html#selection>Selection</a></code>
given by calling <code class=external data-anolis-spec=domrange title=dom-Document-getSelection><a href=http://html5.org/specs/dom-range.html#dom-document-getselection>getSelection()</a></code> on the <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#context-object>context object</a>, or null if there is
@@ -749,7 +750,7 @@
<li>While <var title="">ref</var> has <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, set <var title="">ref</var> to its
<code class=external data-anolis-spec=domcore title=dom-Node-lastChild><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-lastchild>lastChild</a></code>.
- <li>While <var title="">ref</var> is an <a href=#invisible-node>invisible node</a> but not an
+ <li>While <var title="">ref</var> is <a href=#invisible>invisible</a> but not an
<a href=#extraneous-line-break>extraneous line break</a>, and <var title="">ref</var> does not equal
<var title="">node</var>'s <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-parent title=concept-tree-parent>parent</a>, set <var title="">ref</var> to the <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> before it in
<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#tree-order>tree order</a>.
@@ -767,7 +768,7 @@
<li>While <var title="">ref</var> has <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, set <var title="">ref</var> to its
<code class=external data-anolis-spec=domcore title=dom-Node-lastChild><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-lastchild>lastChild</a></code>.
- <li>While <var title="">ref</var> is an <a href=#invisible-node>invisible node</a> but not an
+ <li>While <var title="">ref</var> is <a href=#invisible>invisible</a> but not an
<a href=#extraneous-line-break>extraneous line break</a>, and <var title="">ref</var> does not equal
<var title="">node</var>, set <var title="">ref</var> to the <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> before it in
<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#tree-order>tree order</a>.
@@ -4971,17 +4972,17 @@
not necessarily anything like the spec's.
-->
<li>If <var title="">offset</var> is zero and <var title="">node</var>'s <code class=external data-anolis-spec=domcore title=dom-Node-previousSibling><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-previoussibling>previousSibling</a></code>
- is an <a href=#editable>editable</a> <a href=#invisible-node>invisible node</a>, remove
+ is an <a href=#editable>editable</a> <a href=#invisible>invisible</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, remove
<var title="">node</var>'s <code class=external data-anolis-spec=domcore title=dom-Node-previousSibling><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-previoussibling>previousSibling</a></code> from its <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-parent title=concept-tree-parent>parent</a>.
<li>Otherwise, if <var title="">node</var> has a <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> with <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-indexof title=concept-indexof>index</a>
<var title="">offset</var> − 1 and that <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> is an <a href=#editable>editable</a>
- <a href=#invisible-node>invisible node</a>, remove that <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> from <var title="">node</var>,
- then subtract one from <var title="">offset</var>.
+ <a href=#invisible>invisible</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, remove that <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> from
+ <var title="">node</var>, then subtract one from <var title="">offset</var>.
<li>Otherwise, if <var title="">offset</var> is zero and <var title="">node</var> is not a
<a href=#prohibited-paragraph-child>prohibited paragraph child</a>, or if <var title="">node</var> is an
- <a href=#invisible-node>invisible node</a>, set <var title="">offset</var> to the <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-indexof title=concept-indexof>index</a> of
+ <a href=#invisible>invisible</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, set <var title="">offset</var> to the <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-indexof title=concept-indexof>index</a> of
<var title="">node</var>, then set <var title="">node</var> to its <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-parent title=concept-tree-parent>parent</a>.
<li>Otherwise, if <var title="">node</var> has a <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> with <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-indexof title=concept-indexof>index</a>
@@ -5437,7 +5438,7 @@
<li><a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>, and let <var title="">new
range</var> be the result.
- <li>Let <var title="">node list</var> be all <a href=#visible-node title="visible node">visible</a>
+ <li>Let <var title="">node list</var> be all <a href=#visible>visible</a>
<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> that are <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in <var title="">new
range</var> and have no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>.
@@ -5493,10 +5494,10 @@
<li><a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>, and let <var title="">new
range</var> be the result.
- <li>Let <var title="">node</var> be the first <a href=#visible-node title="visible
- node">visible</a> <a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in
- <var title="">new range</var> and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>,
- return the empty string.
+ <li>Let <var title="">node</var> be the first <a href=#visible>visible</a>
+ <a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in <var title="">new range</var>
+ and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, return the empty
+ string.
<li>While <var title="">node</var>'s <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-parent title=concept-tree-parent>parent</a> is <a href=#editable>editable</a> and <a href=#in-the-same-editing-host>in
the same editing host</a> as <var title="">node</var>, and <var title="">node</var> is not
@@ -5549,12 +5550,13 @@
<ol>
<li>If <var title="">offset</var> is the <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-node-length title=concept-node-length>length</a> of <var title="">node</var> and
<var title="">node</var>'s <code class=external data-anolis-spec=domcore title=dom-Node-nextSibling><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-nextsibling>nextSibling</a></code> is an <a href=#editable>editable</a>
- <a href=#invisible-node>invisible node</a>, remove <var title="">node</var>'s <code class=external data-anolis-spec=domcore title=dom-Node-nextSibling><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-nextsibling>nextSibling</a></code> from
- its <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-parent title=concept-tree-parent>parent</a>.
+ <a href=#invisible>invisible</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, remove <var title="">node</var>'s <code class=external data-anolis-spec=domcore title=dom-Node-nextSibling><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-nextsibling>nextSibling</a></code>
+ from its <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-parent title=concept-tree-parent>parent</a>.
<li>Otherwise, if <var title="">node</var> has a <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> with <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-indexof title=concept-indexof>index</a>
<var title="">offset</var> and that <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> is an <a href=#editable>editable</a>
- <a href=#invisible-node>invisible node</a>, remove that <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> from <var title="">node</var>.
+ <a href=#invisible>invisible</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, remove that <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> from
+ <var title="">node</var>.
<li>Otherwise, if <var title="">node</var> has a <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> with <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-indexof title=concept-indexof>index</a>
<var title="">offset</var> and that <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>child</a> is a <a href=#collapsed-block-prop>collapsed block
@@ -5562,7 +5564,7 @@
<li>Otherwise, if <var title="">offset</var> is the <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-node-length title=concept-node-length>length</a> of
<var title="">node</var> and <var title="">node</var> is not a <a href=#prohibited-paragraph-child>prohibited paragraph
- child</a>, or if <var title="">node</var> is an <a href=#invisible-node>invisible node</a>, set
+ child</a>, or if <var title="">node</var> is <a href=#invisible>invisible</a>, set
<var title="">offset</var> to one plus the <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#concept-indexof title=concept-indexof>index</a> of <var title="">node</var>, then set
<var title="">node</var> to its <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-parent title=concept-tree-parent>parent</a>.
@@ -6476,10 +6478,10 @@
<var title="">alignment</var> "center".
<p><a href=#indeterminate>Indeterminate</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active
-range</a>. Return true if among <a href=#visible-node title="visible node">visible</a>
-<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> that are <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and have
-no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, at least one has <a href=#alignment-value>alignment value</a> "center" and at
-least one does not. Otherwise return false.
+range</a>. Return true if among <a href=#visible>visible</a> <a href=#editable>editable</a>
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> that are <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and have no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, at
+least one has <a href=#alignment-value>alignment value</a> "center" and at least one does not.
+Otherwise return false.
<!--
This roughly matches Chrome 14 dev, although not exactly. Firefox 6.0a2 always
returns false.
@@ -6495,10 +6497,10 @@
-->
<p><a href=#state>State</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>.
-Return true if there is at least one <a href=#visible-node title="visible node">visible</a>
-<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no
-<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, and all such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> have <a href=#alignment-value>alignment value</a>
-"center". Otherwise return false.
+Return true if there is at least one <a href=#visible>visible</a> <a href=#editable>editable</a>
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, and all
+such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> have <a href=#alignment-value>alignment value</a> "center". Otherwise return
+false.
<!--
IE9 throws exceptions in almost every case when querying the state of justify*,
and Opera 11.11 returns false in every case except some seemingly random crazy
@@ -6522,10 +6524,9 @@
-->
<p><a href=#value>Value</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>,
-and return the <a href=#alignment-value>alignment value</a> of the first <a href=#visible-node title="visible
-node">visible</a> <a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in
-the result and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, return
-"left".
+and return the <a href=#alignment-value>alignment value</a> of the first <a href=#visible>visible</a>
+<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, return "left".
<!--
Not bidi-safe, but it's a pretty marginal corner case. Firefox 6.0a2 behaves
weirdly here: it keys off the start node of the active range, even if that's
@@ -6542,22 +6543,21 @@
<var title="">alignment</var> "justify".
<p><a href=#indeterminate>Indeterminate</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active
-range</a>. Return true if among <a href=#visible-node title="visible node">visible</a>
-<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> that are <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and have
-no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, at least one has <a href=#alignment-value>alignment value</a> "justify" and at
-least one does not. Otherwise return false.
+range</a>. Return true if among <a href=#visible>visible</a> <a href=#editable>editable</a>
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> that are <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and have no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, at
+least one has <a href=#alignment-value>alignment value</a> "justify" and at least one does not.
+Otherwise return false.
<p><a href=#state>State</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>.
-Return true if there is at least one <a href=#visible-node title="visible node">visible</a>
-<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no
-<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, and all such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> have <a href=#alignment-value>alignment value</a>
-"justify". Otherwise return false.
+Return true if there is at least one <a href=#visible>visible</a> <a href=#editable>editable</a>
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, and all
+such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> have <a href=#alignment-value>alignment value</a> "justify". Otherwise return
+false.
<p><a href=#value>Value</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>,
-and return the <a href=#alignment-value>alignment value</a> of the first <a href=#visible-node title="visible
-node">visible</a> <a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in
-the result and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, return
-"left".
+and return the <a href=#alignment-value>alignment value</a> of the first <a href=#visible>visible</a>
+<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, return "left".
<h3 id=the-justifyleft-command><span class=secno>8.23 </span><dfn>The <code title="">justifyLeft</code> command</dfn></h3>
@@ -6566,22 +6566,21 @@
<var title="">alignment</var> "left".
<p><a href=#indeterminate>Indeterminate</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active
-range</a>. Return true if among <a href=#visible-node title="visible node">visible</a>
-<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> that are <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and have
-no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, at least one has <a href=#alignment-value>alignment value</a> "left" and at
-least one does not. Otherwise return false.
+range</a>. Return true if among <a href=#visible>visible</a> <a href=#editable>editable</a>
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> that are <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and have no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, at
+least one has <a href=#alignment-value>alignment value</a> "left" and at least one does not.
+Otherwise return false.
<p><a href=#state>State</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>.
-Return true if there is at least one <a href=#visible-node title="visible node">visible</a>
-<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no
-<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, and all such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> have <a href=#alignment-value>alignment value</a> "left".
-Otherwise return false.
+Return true if there is at least one <a href=#visible>visible</a> <a href=#editable>editable</a>
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, and all
+such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> have <a href=#alignment-value>alignment value</a> "left". Otherwise return
+false.
<p><a href=#value>Value</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>,
-and return the <a href=#alignment-value>alignment value</a> of the first <a href=#visible-node title="visible
-node">visible</a> <a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in
-the result and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, return
-"left".
+and return the <a href=#alignment-value>alignment value</a> of the first <a href=#visible>visible</a>
+<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, return "left".
<h3 id=the-justifyright-command><span class=secno>8.24 </span><dfn>The <code title="">justifyRight</code> command</dfn></h3>
@@ -6590,22 +6589,21 @@
<var title="">alignment</var> "right".
<p><a href=#indeterminate>Indeterminate</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active
-range</a>. Return true if among <a href=#visible-node title="visible node">visible</a>
-<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> that are <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and have
-no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, at least one has <a href=#alignment-value>alignment value</a> "right" and at
-least one does not. Otherwise return false.
+range</a>. Return true if among <a href=#visible>visible</a> <a href=#editable>editable</a>
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> that are <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and have no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, at
+least one has <a href=#alignment-value>alignment value</a> "right" and at least one does not.
+Otherwise return false.
<p><a href=#state>State</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>.
-Return true if there is at least one <a href=#visible-node title="visible node">visible</a>
-<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no
-<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, and all such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> have <a href=#alignment-value>alignment value</a> "right".
-Otherwise return false.
+Return true if there is at least one <a href=#visible>visible</a> <a href=#editable>editable</a>
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>, and all
+such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>nodes</a> have <a href=#alignment-value>alignment value</a> "right". Otherwise return
+false.
<p><a href=#value>Value</a>: <a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>,
-and return the <a href=#alignment-value>alignment value</a> of the first <a href=#visible-node title="visible
-node">visible</a> <a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in
-the result and has no <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, return
-"left".
+and return the <a href=#alignment-value>alignment value</a> of the first <a href=#visible>visible</a>
+<a href=#editable>editable</a> <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a> that is <a class=external data-anolis-spec=domrange href=http://html5.org/specs/dom-range.html#contained>contained</a> in the result and has no
+<a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-child title=concept-tree-child>children</a>. If there is no such <a class=external data-anolis-spec=domcore href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>, return "left".
<h3 id=the-outdent-command><span class=secno>8.25 </span><dfn>The <code title="">outdent</code> command</dfn></h3>
--- a/implementation.js Wed Jun 29 13:16:28 2011 -0600
+++ b/implementation.js Wed Jun 29 13:24:28 2011 -0600
@@ -778,11 +778,10 @@
return origHeight == finalHeight;
}
-// "A visible node is a node that either is a prohibited paragraph child, or a
-// Text node whose data is not empty, or an img, or a br that is not an
-// extraneous line break, or any node with a descendant that is a visible
-// node."
-function isVisibleNode(node) {
+// "Something is visible if it is a node that either is a prohibited paragraph
+// child, or a Text node whose data is not empty, or an img, or a br that is
+// not an extraneous line break, or any node with a visible descendant."
+function isVisible(node) {
if (!node) {
return false;
}
@@ -793,22 +792,22 @@
return true;
}
for (var i = 0; i < node.childNodes.length; i++) {
- if (isVisibleNode(node.childNodes[i])) {
+ if (isVisible(node.childNodes[i])) {
return true;
}
}
return false;
}
-// "An invisible node is a node that is not a visible node."
-function isInvisibleNode(node) {
- return node && !isVisibleNode(node);
+// "Something is invisible if it is a node that is not visible."
+function isInvisible(node) {
+ return node && !isVisible(node);
}
// "A collapsed block prop is either a collapsed line break that is not an
// extraneous line break, or an Element that is an inline node and whose
-// children are all either invisible nodes or collapsed block props and that
-// has at least one child that is a collapsed block prop."
+// children are all either invisible or collapsed block props and that has at
+// least one child that is a collapsed block prop."
function isCollapsedBlockProp(node) {
if (isCollapsedLineBreak(node)
&& !isExtraneousLineBreak(node)) {
@@ -822,7 +821,7 @@
var hasCollapsedBlockPropChild = false;
for (var i = 0; i < node.childNodes.length; i++) {
- if (!isInvisibleNode(node.childNodes[i])
+ if (!isInvisible(node.childNodes[i])
&& !isCollapsedBlockProp(node.childNodes[i])) {
return false;
}
@@ -996,10 +995,9 @@
ref = ref.lastChild;
}
- // "While ref is an invisible node but not an extraneous line break, and
- // ref does not equal node's parent, set ref to the node before it in tree
- // order."
- while (isInvisibleNode(ref)
+ // "While ref is invisible but not an extraneous line break, and ref does
+ // not equal node's parent, set ref to the node before it in tree order."
+ while (isInvisible(ref)
&& !isExtraneousLineBreak(ref)
&& ref != node.parentNode) {
ref = previousNode(ref);
@@ -1022,9 +1020,9 @@
ref = ref.lastChild;
}
- // "While ref is an invisible node but not an extraneous line break, and
- // ref does not equal node, set ref to the node before it in tree order."
- while (isInvisibleNode(ref)
+ // "While ref is invisible but not an extraneous line break, and ref does
+ // not equal node, set ref to the node before it in tree order."
+ while (isInvisible(ref)
&& !isExtraneousLineBreak(ref)
&& ref != node) {
ref = previousNode(ref);
@@ -5175,7 +5173,7 @@
// invisible node, remove node's previousSibling from its parent."
if (offset == 0
&& isEditable(node.previousSibling)
- && isInvisibleNode(node.previousSibling)) {
+ && isInvisible(node.previousSibling)) {
node.parentNode.removeChild(node.previousSibling);
// "Otherwise, if node has a child with index offset − 1 and that
@@ -5184,16 +5182,16 @@
} else if (0 <= offset - 1
&& offset - 1 < node.childNodes.length
&& isEditable(node.childNodes[offset - 1])
- && isInvisibleNode(node.childNodes[offset - 1])) {
+ && isInvisible(node.childNodes[offset - 1])) {
node.removeChild(node.childNodes[offset - 1]);
offset--;
// "Otherwise, if offset is zero and node is not a prohibited
- // paragraph child, or if node is an invisible node, set offset to
- // the index of node, then set node to its parent."
+ // paragraph child, or if node is invisible, set offset to the
+ // index of node, then set node to its parent."
} else if ((offset == 0
&& !isProhibitedParagraphChild(node))
- || isInvisibleNode(node)) {
+ || isInvisible(node)) {
offset = getNodeIndex(node);
node = node.parentNode;
@@ -5602,7 +5600,7 @@
// "Let node list be all visible editable nodes that are contained in
// new range and have no children."
var nodeList = getAllContainedNodes(newRange, function(node) {
- return isVisibleNode(node)
+ return isVisible(node)
&& isEditable(node)
&& !node.hasChildNodes();
});
@@ -5660,7 +5658,7 @@
// new range and has no children. If there is no such node, return the
// empty string."
var nodes = getAllContainedNodes(newRange, function(node) {
- return isVisibleNode(node)
+ return isVisible(node)
&& isEditable(node)
&& !node.hasChildNodes();
});
@@ -5719,14 +5717,14 @@
// parent."
if (offset == getNodeLength(node)
&& isEditable(node.nextSibling)
- && isInvisibleNode(node.nextSibling)) {
+ && isInvisible(node.nextSibling)) {
node.parentNode.removeChild(node.nextSibling);
// "Otherwise, if node has a child with index offset and that child
// is an editable invisible node, remove that child from node."
} else if (offset < node.childNodes.length
&& isEditable(node.childNodes[offset])
- && isInvisibleNode(node.childNodes[offset])) {
+ && isInvisible(node.childNodes[offset])) {
node.removeChild(node.childNodes[offset]);
// "Otherwise, if node has a child with index offset and that child
@@ -5736,12 +5734,11 @@
offset++;
// "Otherwise, if offset is the length of node and node is not a
- // prohibited paragraph child, or if node is an invisible node, set
- // offset to one plus the index of node, then set node to its
- // parent."
+ // prohibited paragraph child, or if node is invisible, set offset
+ // to one plus the index of node, then set node to its parent."
} else if ((offset == getNodeLength(node)
&& !isProhibitedParagraphChild(node))
- || isInvisibleNode(node)) {
+ || isInvisible(node)) {
offset = 1 + getNodeIndex(node);
node = node.parentNode;
@@ -6559,7 +6556,7 @@
// children, at least one has alignment value "center" and at least one
// does not. Otherwise return false."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
return nodes.some(function(node) { return getAlignmentValue(node) == "center" })
&& nodes.some(function(node) { return getAlignmentValue(node) != "center" });
@@ -6569,7 +6566,7 @@
// children, and all such nodes have alignment value "center".
// Otherwise return false."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
return nodes.length
&& nodes.every(function(node) { return getAlignmentValue(node) == "center" });
@@ -6578,7 +6575,7 @@
// the first visible editable node that is contained in the result and
// has no children. If there is no such node, return "left"."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
if (nodes.length) {
return getAlignmentValue(nodes[0]);
@@ -6600,7 +6597,7 @@
// children, at least one has alignment value "justify" and at least
// one does not. Otherwise return false."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
return nodes.some(function(node) { return getAlignmentValue(node) == "justify" })
&& nodes.some(function(node) { return getAlignmentValue(node) != "justify" });
@@ -6610,7 +6607,7 @@
// children, and all such nodes have alignment value "justify".
// Otherwise return false."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
return nodes.length
&& nodes.every(function(node) { return getAlignmentValue(node) == "justify" });
@@ -6619,7 +6616,7 @@
// the first visible editable node that is contained in the result and
// has no children. If there is no such node, return "left"."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
if (nodes.length) {
return getAlignmentValue(nodes[0]);
@@ -6641,7 +6638,7 @@
// children, at least one has alignment value "left" and at least one
// does not. Otherwise return false."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
return nodes.some(function(node) { return getAlignmentValue(node) == "left" })
&& nodes.some(function(node) { return getAlignmentValue(node) != "left" });
@@ -6651,7 +6648,7 @@
// children, and all such nodes have alignment value "left". Otherwise
// return false."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
return nodes.length
&& nodes.every(function(node) { return getAlignmentValue(node) == "left" });
@@ -6660,7 +6657,7 @@
// the first visible editable node that is contained in the result and
// has no children. If there is no such node, return "left"."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
if (nodes.length) {
return getAlignmentValue(nodes[0]);
@@ -6682,7 +6679,7 @@
// children, at least one has alignment value "right" and at least one
// does not. Otherwise return false."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
return nodes.some(function(node) { return getAlignmentValue(node) == "right" })
&& nodes.some(function(node) { return getAlignmentValue(node) != "right" });
@@ -6692,7 +6689,7 @@
// children, and all such nodes have alignment value "right".
// Otherwise return false."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
return nodes.length
&& nodes.every(function(node) { return getAlignmentValue(node) == "right" });
@@ -6701,7 +6698,7 @@
// the first visible editable node that is contained in the result and
// has no children. If there is no such node, return "left"."
var nodes = getAllContainedNodes(blockExtend(getActiveRange()), function(node) {
- return isEditable(node) && isVisibleNode(node) && !node.hasChildNodes();
+ return isEditable(node) && isVisible(node) && !node.hasChildNodes();
});
if (nodes.length) {
return getAlignmentValue(nodes[0]);
--- a/source.html Wed Jun 29 13:16:28 2011 -0600
+++ b/source.html Wed Jun 29 13:24:28 2011 -0600
@@ -577,13 +577,13 @@
browsers (at least not in Opera 11.11), and also it breaks assumptions
elsewhere. E.g., if it gets turned into a p.
-<p>A <dfn>visible node</dfn> is a [[node]] that either is a <span>prohibited
-paragraph child</span>, or a [[text]] node whose [[cddata]] is not empty, or
-an [[img]], or a [[br]] that is not an <span>extraneous line break</span>, or
-any [[node]] with a [[descendant]] that is a <span>visible node</span>.
-
-<p>An <dfn>invisible node</dfn> is a [[node]] that is not a <span>visible
-node</span>.
+<p>Something is <dfn>visible</dfn> if it is a [[node]] that either is a
+<span>prohibited paragraph child</span>, or a [[text]] node whose [[cddata]] is
+not empty, or an [[img]], or a [[br]] that is not an <span>extraneous line
+break</span>, or any [[node]] with a <span>visible</span> [[descendant]].
+
+<p>Something is <dfn>invisible</dfn> if it is a [[node]] that is not
+<span>visible</span>.
<p class=XXX>I don't know if the visible/invisible node definitions are really
the way we want to do things. If they are, they need some adjustment, like to
@@ -592,9 +592,9 @@
<p>A <dfn>collapsed block prop</dfn> is either a <span>collapsed line
break</span> that is not an <span>extraneous line break</span>, or an
[[element]] that is an <span>inline node</span> and whose [[children]] are all
-either <span title="invisible node">invisible nodes</span> or <span
-title="collapsed block prop">collapsed block props</span> and that has at least
-one [[child]] that is a <span>collapsed block prop</span>.
+either <span>invisible</span> or <span title="collapsed block prop">collapsed
+block props</span> and that has at least one [[child]] that is a
+<span>collapsed block prop</span>.
<p>The <dfn>active range</dfn> is the first [[range]] in the [[selection]]
given by calling [[getselection]] on the [[contextobject]], or null if there is
@@ -702,7 +702,7 @@
<li>While <var>ref</var> has [[children]], set <var>ref</var> to its
[[lastchild]].
- <li>While <var>ref</var> is an <span>invisible node</span> but not an
+ <li>While <var>ref</var> is <span>invisible</span> but not an
<span>extraneous line break</span>, and <var>ref</var> does not equal
<var>node</var>'s [[parent]], set <var>ref</var> to the [[node]] before it in
[[treeorder]].
@@ -720,7 +720,7 @@
<li>While <var>ref</var> has [[children]], set <var>ref</var> to its
[[lastchild]].
- <li>While <var>ref</var> is an <span>invisible node</span> but not an
+ <li>While <var>ref</var> is <span>invisible</span> but not an
<span>extraneous line break</span>, and <var>ref</var> does not equal
<var>node</var>, set <var>ref</var> to the [[node]] before it in
[[treeorder]].
@@ -4980,17 +4980,17 @@
not necessarily anything like the spec's.
-->
<li>If <var>offset</var> is zero and <var>node</var>'s [[previoussibling]]
- is an <span>editable</span> <span>invisible node</span>, remove
+ is an <span>editable</span> <span>invisible</span> [[node]], remove
<var>node</var>'s [[previoussibling]] from its [[parent]].
<li>Otherwise, if <var>node</var> has a [[child]] with [[index]]
<var>offset</var> − 1 and that [[child]] is an <span>editable</span>
- <span>invisible node</span>, remove that [[child]] from <var>node</var>,
- then subtract one from <var>offset</var>.
+ <span>invisible</span> [[node]], remove that [[child]] from
+ <var>node</var>, then subtract one from <var>offset</var>.
<li>Otherwise, if <var>offset</var> is zero and <var>node</var> is not a
<span>prohibited paragraph child</span>, or if <var>node</var> is an
- <span>invisible node</span>, set <var>offset</var> to the [[index]] of
+ <span>invisible</span> [[node]], set <var>offset</var> to the [[index]] of
<var>node</var>, then set <var>node</var> to its [[parent]].
<li>Otherwise, if <var>node</var> has a [[child]] with [[index]]
@@ -5446,7 +5446,7 @@
<li><span>Block-extend</span> the <span>active range</span>, and let <var>new
range</var> be the result.
- <li>Let <var>node list</var> be all <span title="visible node">visible</span>
+ <li>Let <var>node list</var> be all <span>visible</span>
<span>editable</span> [[nodes]] that are [[contained]] in <var>new
range</var> and have no [[children]].
@@ -5502,10 +5502,10 @@
<li><span>Block-extend</span> the <span>active range</span>, and let <var>new
range</var> be the result.
- <li>Let <var>node</var> be the first <span title="visible
- node">visible</span> <span>editable</span> [[node]] that is [[contained]] in
- <var>new range</var> and has no [[children]]. If there is no such [[node]],
- return the empty string.
+ <li>Let <var>node</var> be the first <span>visible</span>
+ <span>editable</span> [[node]] that is [[contained]] in <var>new range</var>
+ and has no [[children]]. If there is no such [[node]], return the empty
+ string.
<li>While <var>node</var>'s [[parent]] is <span>editable</span> and <span>in
the same editing host</span> as <var>node</var>, and <var>node</var> is not
@@ -5559,12 +5559,13 @@
<ol>
<li>If <var>offset</var> is the [[nodelength]] of <var>node</var> and
<var>node</var>'s [[nextsibling]] is an <span>editable</span>
- <span>invisible node</span>, remove <var>node</var>'s [[nextsibling]] from
- its [[parent]].
+ <span>invisible</span> [[node]], remove <var>node</var>'s [[nextsibling]]
+ from its [[parent]].
<li>Otherwise, if <var>node</var> has a [[child]] with [[index]]
<var>offset</var> and that [[child]] is an <span>editable</span>
- <span>invisible node</span>, remove that [[child]] from <var>node</var>.
+ <span>invisible</span> [[node]], remove that [[child]] from
+ <var>node</var>.
<li>Otherwise, if <var>node</var> has a [[child]] with [[index]]
<var>offset</var> and that [[child]] is a <span>collapsed block
@@ -5572,7 +5573,7 @@
<li>Otherwise, if <var>offset</var> is the [[nodelength]] of
<var>node</var> and <var>node</var> is not a <span>prohibited paragraph
- child</span>, or if <var>node</var> is an <span>invisible node</span>, set
+ child</span>, or if <var>node</var> is <span>invisible</span>, set
<var>offset</var> to one plus the [[index]] of <var>node</var>, then set
<var>node</var> to its [[parent]].
@@ -6502,10 +6503,10 @@
<var>alignment</var> "center".
<p><span>Indeterminate</span>: <span>Block-extend</span> the <span>active
-range</span>. Return true if among <span title="visible node">visible</span>
-<span>editable</span> [[nodes]] that are [[contained]] in the result and have
-no [[children]], at least one has <span>alignment value</span> "center" and at
-least one does not. Otherwise return false.
+range</span>. Return true if among <span>visible</span> <span>editable</span>
+[[nodes]] that are [[contained]] in the result and have no [[children]], at
+least one has <span>alignment value</span> "center" and at least one does not.
+Otherwise return false.
<!--
This roughly matches Chrome 14 dev, although not exactly. Firefox 6.0a2 always
returns false.
@@ -6521,10 +6522,10 @@
-->
<p><span>State</span>: <span>Block-extend</span> the <span>active range</span>.
-Return true if there is at least one <span title="visible node">visible</span>
-<span>editable</span> [[node]] that is [[contained]] in the result and has no
-[[children]], and all such [[nodes]] have <span>alignment value</span>
-"center". Otherwise return false.
+Return true if there is at least one <span>visible</span> <span>editable</span>
+[[node]] that is [[contained]] in the result and has no [[children]], and all
+such [[nodes]] have <span>alignment value</span> "center". Otherwise return
+false.
<!--
IE9 throws exceptions in almost every case when querying the state of justify*,
and Opera 11.11 returns false in every case except some seemingly random crazy
@@ -6548,10 +6549,9 @@
-->
<p><span>Value</span>: <span>Block-extend</span> the <span>active range</span>,
-and return the <span>alignment value</span> of the first <span title="visible
-node">visible</span> <span>editable</span> [[node]] that is [[contained]] in
-the result and has no [[children]]. If there is no such [[node]], return
-"left".
+and return the <span>alignment value</span> of the first <span>visible</span>
+<span>editable</span> [[node]] that is [[contained]] in the result and has no
+[[children]]. If there is no such [[node]], return "left".
<!--
Not bidi-safe, but it's a pretty marginal corner case. Firefox 6.0a2 behaves
weirdly here: it keys off the start node of the active range, even if that's
@@ -6568,22 +6568,21 @@
<var>alignment</var> "justify".
<p><span>Indeterminate</span>: <span>Block-extend</span> the <span>active
-range</span>. Return true if among <span title="visible node">visible</span>
-<span>editable</span> [[nodes]] that are [[contained]] in the result and have
-no [[children]], at least one has <span>alignment value</span> "justify" and at
-least one does not. Otherwise return false.
+range</span>. Return true if among <span>visible</span> <span>editable</span>
+[[nodes]] that are [[contained]] in the result and have no [[children]], at
+least one has <span>alignment value</span> "justify" and at least one does not.
+Otherwise return false.
<p><span>State</span>: <span>Block-extend</span> the <span>active range</span>.
-Return true if there is at least one <span title="visible node">visible</span>
-<span>editable</span> [[node]] that is [[contained]] in the result and has no
-[[children]], and all such [[nodes]] have <span>alignment value</span>
-"justify". Otherwise return false.
+Return true if there is at least one <span>visible</span> <span>editable</span>
+[[node]] that is [[contained]] in the result and has no [[children]], and all
+such [[nodes]] have <span>alignment value</span> "justify". Otherwise return
+false.
<p><span>Value</span>: <span>Block-extend</span> the <span>active range</span>,
-and return the <span>alignment value</span> of the first <span title="visible
-node">visible</span> <span>editable</span> [[node]] that is [[contained]] in
-the result and has no [[children]]. If there is no such [[node]], return
-"left".
+and return the <span>alignment value</span> of the first <span>visible</span>
+<span>editable</span> [[node]] that is [[contained]] in the result and has no
+[[children]]. If there is no such [[node]], return "left".
<!-- @} -->
<h3><dfn>The <code title>justifyLeft</code> command</dfn></h3>
@@ -6592,22 +6591,21 @@
<var>alignment</var> "left".
<p><span>Indeterminate</span>: <span>Block-extend</span> the <span>active
-range</span>. Return true if among <span title="visible node">visible</span>
-<span>editable</span> [[nodes]] that are [[contained]] in the result and have
-no [[children]], at least one has <span>alignment value</span> "left" and at
-least one does not. Otherwise return false.
+range</span>. Return true if among <span>visible</span> <span>editable</span>
+[[nodes]] that are [[contained]] in the result and have no [[children]], at
+least one has <span>alignment value</span> "left" and at least one does not.
+Otherwise return false.
<p><span>State</span>: <span>Block-extend</span> the <span>active range</span>.
-Return true if there is at least one <span title="visible node">visible</span>
-<span>editable</span> [[node]] that is [[contained]] in the result and has no
-[[children]], and all such [[nodes]] have <span>alignment value</span> "left".
-Otherwise return false.
+Return true if there is at least one <span>visible</span> <span>editable</span>
+[[node]] that is [[contained]] in the result and has no [[children]], and all
+such [[nodes]] have <span>alignment value</span> "left". Otherwise return
+false.
<p><span>Value</span>: <span>Block-extend</span> the <span>active range</span>,
-and return the <span>alignment value</span> of the first <span title="visible
-node">visible</span> <span>editable</span> [[node]] that is [[contained]] in
-the result and has no [[children]]. If there is no such [[node]], return
-"left".
+and return the <span>alignment value</span> of the first <span>visible</span>
+<span>editable</span> [[node]] that is [[contained]] in the result and has no
+[[children]]. If there is no such [[node]], return "left".
<!-- @} -->
<h3><dfn>The <code title>justifyRight</code> command</dfn></h3>
@@ -6616,22 +6614,21 @@
<var>alignment</var> "right".
<p><span>Indeterminate</span>: <span>Block-extend</span> the <span>active
-range</span>. Return true if among <span title="visible node">visible</span>
-<span>editable</span> [[nodes]] that are [[contained]] in the result and have
-no [[children]], at least one has <span>alignment value</span> "right" and at
-least one does not. Otherwise return false.
+range</span>. Return true if among <span>visible</span> <span>editable</span>
+[[nodes]] that are [[contained]] in the result and have no [[children]], at
+least one has <span>alignment value</span> "right" and at least one does not.
+Otherwise return false.
<p><span>State</span>: <span>Block-extend</span> the <span>active range</span>.
-Return true if there is at least one <span title="visible node">visible</span>
-<span>editable</span> [[node]] that is [[contained]] in the result and has no
-[[children]], and all such [[nodes]] have <span>alignment value</span> "right".
-Otherwise return false.
+Return true if there is at least one <span>visible</span> <span>editable</span>
+[[node]] that is [[contained]] in the result and has no [[children]], and all
+such [[nodes]] have <span>alignment value</span> "right". Otherwise return
+false.
<p><span>Value</span>: <span>Block-extend</span> the <span>active range</span>,
-and return the <span>alignment value</span> of the first <span title="visible
-node">visible</span> <span>editable</span> [[node]] that is [[contained]] in
-the result and has no [[children]]. If there is no such [[node]], return
-"left".
+and return the <span>alignment value</span> of the first <span>visible</span>
+<span>editable</span> [[node]] that is [[contained]] in the result and has no
+[[children]]. If there is no such [[node]], return "left".
<!-- @} -->
<h3><dfn>The <code title>outdent</code> command</dfn></h3>