Define "visible"/"invisible" as adjectives
authorAryeh Gregor <AryehGregor+gitcommit@gmail.com>
Wed, 29 Jun 2011 13:24:28 -0600
changeset 349 341946338bf7
parent 348 d593a7b7d217
child 350 911e460f1ac5
Define "visible"/"invisible" as adjectives

This matches "editable", and is more convenient to use (as demonstrated
by the reduction in lines).
editcommands.html
implementation.js
source.html
--- 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> &minus; 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> &minus; 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>