[html5] r6528 - [] (0) Remove Editing APIs and related sections in favour of http://aryeh.name/s [...]

whatwg at whatwg.org whatwg at whatwg.org
Thu Aug 25 17:43:01 PDT 2011


Author: ianh
Date: 2011-08-25 17:43:00 -0700 (Thu, 25 Aug 2011)
New Revision: 6528

Modified:
   complete.html
   index
   source
Log:
[] (0) Remove Editing APIs and related sections in favour of http://aryeh.name/spec/editing/editing.html
Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=13896

Modified: complete.html
===================================================================
--- complete.html	2011-08-25 23:13:05 UTC (rev 6527)
+++ complete.html	2011-08-26 00:43:00 UTC (rev 6528)
@@ -239,7 +239,7 @@
 
   <header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
    <hgroup><h1>Web Applications 1.0</h1>
-    <h2 class="no-num no-toc">Living Standard — Last Updated 25 August 2011</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 26 August 2011</h2>
    </hgroup><dl><dt>Multiple-page version:</dt>
     <dd><a href=http://www.whatwg.org/specs/web-apps/current-work/complete/>http://www.whatwg.org/specs/web-apps/current-work/complete/</a></dd>
     <dt>One-page version:</dt>
@@ -968,27 +968,29 @@
      <li><a href=#introduction-8><span class=secno>8.4.1 </span>Introduction</a></li>
      <li><a href=#the-accesskey-attribute><span class=secno>8.4.2 </span>The <code>accesskey</code> attribute</a></li>
      <li><a href=#processing-model-3><span class=secno>8.4.3 </span>Processing model</a></ol></li>
-   <li><a href=#contenteditable><span class=secno>8.5 </span>The <code title=attr-contenteditable>contenteditable</code> attribute</a>
+   <li><a href=#editing-0><span class=secno>8.5 </span>Editing</a>
     <ol>
-     <li><a href=#user-editing-actions><span class=secno>8.5.1 </span>User editing actions</a></li>
-     <li><a href=#making-entire-documents-editable><span class=secno>8.5.2 </span>Making entire documents editable</a></ol></li>
-   <li><a href=#spelling-and-grammar-checking><span class=secno>8.6 </span>Spelling and grammar checking</a></li>
-   <li><a href=#dnd><span class=secno>8.7 </span>Drag and drop</a>
+     <li><a href=#contenteditable><span class=secno>8.5.1 </span>Making document regions editable: The <code title=attr-contenteditable>contenteditable</code> content
+  attribute</a></li>
+     <li><a href=#making-entire-documents-editable:-the-designmode-idl-attribute><span class=secno>8.5.2 </span>Making entire documents editable: The <code title=dom-document-designMode>designMode</code> IDL attribute</a></li>
+     <li><a href=#user-editing-actions><span class=secno>8.5.3 </span>User editing actions</a></li>
+     <li><a href=#editing-apis><span class=secno>8.5.4 </span>Editing APIs</a></li>
+     <li><a href=#spelling-and-grammar-checking><span class=secno>8.5.5 </span>Spelling and grammar checking</a></ol></li>
+   <li><a href=#dnd><span class=secno>8.6 </span>Drag and drop</a>
     <ol>
-     <li><a href=#introduction-9><span class=secno>8.7.1 </span>Introduction</a></li>
-     <li><a href=#the-drag-data-store><span class=secno>8.7.2 </span>The drag data store</a></li>
-     <li><a href=#the-datatransfer-interface><span class=secno>8.7.3 </span>The <code>DataTransfer</code> interface</a>
+     <li><a href=#introduction-9><span class=secno>8.6.1 </span>Introduction</a></li>
+     <li><a href=#the-drag-data-store><span class=secno>8.6.2 </span>The drag data store</a></li>
+     <li><a href=#the-datatransfer-interface><span class=secno>8.6.3 </span>The <code>DataTransfer</code> interface</a>
       <ol>
-       <li><a href=#the-datatransferitemlist-interface><span class=secno>8.7.3.1 </span>The <code>DataTransferItemList</code> interface</a></li>
-       <li><a href=#the-datatransferitem-interface><span class=secno>8.7.3.2 </span>The <code>DataTransferItem</code> interface</a></ol></li>
-     <li><a href=#the-dragevent-interface><span class=secno>8.7.4 </span>The <code>DragEvent</code> interface</a></li>
-     <li><a href=#drag-and-drop-processing-model><span class=secno>8.7.5 </span>Drag-and-drop processing model</a></li>
-     <li><a href=#dndevents><span class=secno>8.7.6 </span>Events summary</a></li>
-     <li><a href=#the-draggable-attribute><span class=secno>8.7.7 </span>The <code>draggable</code> attribute</a></li>
-     <li><a href=#the-dropzone-attribute><span class=secno>8.7.8 </span>The <code>dropzone</code> attribute</a></li>
-     <li><a href=#security-risks-in-the-drag-and-drop-model><span class=secno>8.7.9 </span>Security risks in the drag-and-drop model</a></ol></li>
-   <li><a href=#text-search-apis><span class=secno>8.8 </span>Text search APIs</a></li>
-   <li><a href=#editing-apis><span class=secno>8.9 </span>Editing APIs</a></ol></li>
+       <li><a href=#the-datatransferitemlist-interface><span class=secno>8.6.3.1 </span>The <code>DataTransferItemList</code> interface</a></li>
+       <li><a href=#the-datatransferitem-interface><span class=secno>8.6.3.2 </span>The <code>DataTransferItem</code> interface</a></ol></li>
+     <li><a href=#the-dragevent-interface><span class=secno>8.6.4 </span>The <code>DragEvent</code> interface</a></li>
+     <li><a href=#drag-and-drop-processing-model><span class=secno>8.6.5 </span>Drag-and-drop processing model</a></li>
+     <li><a href=#dndevents><span class=secno>8.6.6 </span>Events summary</a></li>
+     <li><a href=#the-draggable-attribute><span class=secno>8.6.7 </span>The <code>draggable</code> attribute</a></li>
+     <li><a href=#the-dropzone-attribute><span class=secno>8.6.8 </span>The <code>dropzone</code> attribute</a></li>
+     <li><a href=#security-risks-in-the-drag-and-drop-model><span class=secno>8.6.9 </span>Security risks in the drag-and-drop model</a></ol></li>
+   <li><a href=#text-search-apis><span class=secno>8.7 </span>Text search APIs</a></ol></li>
  <li><a href=#video-conferencing-and-peer-to-peer-communication><span class=secno>9 </span>Video conferencing and peer-to-peer communication</a>
   <ol>
    <li><a href=#introduction-10><span class=secno>9.1 </span>Introduction</a></li>
@@ -57016,7 +57018,8 @@
      <li><code><a href=#the-textarea-element>textarea</a></code> elements that do not have a <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code> attribute, and
      that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
 
-     <li>elements that are <a href=#editable>editable</a> and are neither
+     <li>elements that are <a href=#editing-host title="editing host">editing
+     hosts</a> or <a href=#editable>editable</a> and are neither
      <code><a href=#the-input-element>input</a></code> elemenst nor <code><a href=#the-textarea-element>textarea</a></code>
      elements</li>
 
@@ -71900,8 +71903,11 @@
 
 
 
-  <h3 id=contenteditable><span class=secno>8.5 </span>The <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute</h3>
+  <h3 id=editing-0><span class=secno>8.5 </span>Editing</h3>
 
+  <h4 id=contenteditable><span class=secno>8.5.1 </span>Making document regions editable: The <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> content
+  attribute</h4>
+
   <p>The <dfn id=attr-contenteditable title=attr-contenteditable><code>contenteditable</code></dfn>
   attribute is an <a href=#enumerated-attribute>enumerated attribute</a> whose keywords are
   the empty string, <code title="">true</code>, and <code title="">false</code>. The empty string and the <code title="">true</code> keyword map to the <i>true</i> state. The <code title="">false</code> keyword maps to the <i>false</i> state. In
@@ -71914,31 +71920,6 @@
   parent is. The <i>false</i> state indicates that the element is not
   editable.</p>
 
-  <div class=impl>
-
-  <p>Specifically, if an <a href=#html-elements title="HTML elements">HTML
-  element</a> has a <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the true state, or it has its <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the inherit state and if its nearest ancestor <a href=#html-elements title="HTML
-  elements">HTML element</a> with the <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  a state other than the inherit state has its attribute set to the
-  true state, or if it and its ancestors all have their <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the inherit state but the <code><a href=#document>Document</a></code> has <code title=dom-document-designMode><a href=#designMode>designMode</a></code> enabled, then the
-  UA must treat the element as <dfn id=editable>editable</dfn> (as described
-  below).</p>
-
-  <p>Otherwise, either the <a href=#html-elements title="HTML elements">HTML
-  element</a> has a <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the false state, or its <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute is set
-  to the inherit state and its nearest ancestor <a href=#html-elements title="HTML
-  elements">HTML element</a> with the <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  a state other than the inherit state has its attribute set to the
-  false state, or all its ancestors have their <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the inherit state and the <code><a href=#document>Document</a></code> itself has <code title=dom-document-designMode><a href=#designMode>designMode</a></code> disabled; either
-  way, the element is not editable.</p>
-
-  </div>
-
   <dl class=domintro><dt><var title="">element</var> . <code title=dom-contentEditable><a href=#dom-contenteditable>contentEditable</a></code> [ = <var title="">value</var> ]</dt>
 
    <dd>
@@ -71978,147 +71959,69 @@
   attribute setter must raise a <code><a href=#syntax_err>SYNTAX_ERR</a></code> exception.</p>
 
   <p>The <dfn id=dom-iscontenteditable title=dom-isContentEditable><code>isContentEditable</code></dfn>
-  IDL attribute, on getting, must return true if the element is
-  <a href=#editable>editable</a>, and false otherwise.</p>
+  IDL attribute, on getting, must return true if the element is either
+  an <a href=#editing-host>editing host</a> or <a href=#editable>editable</a>, and false
+  otherwise.</p>
 
-  <p>If an element is <a href=#editable>editable</a> and its parent element is
-  not, or if an element is <a href=#editable>editable</a> and it has no parent
-  element, then the element is an <dfn id=editing-host>editing host</dfn>. Editable
-  elements can be nested. Editing hosts are typically focusable and
-  typically form part of the <a href=#attr-tabindex title=attr-tabindex>tab
-  order</a>. An editing host can contain non-editable sections,
-  these are handled as described below. An editing host can contain
-  non-editable sections that contain further editing hosts.</p>
-
-  <p>When an editing host has focus, it must have a <dfn id=caret-position>caret
-  position</dfn> that specifies where the current editing position is.
-  It may also have a selection.</p>
-
-  <p class=note>How the caret and selection are represented depends
-  entirely on the UA.</p>
-
-  <!-- v2: would be useful to have a way to mark an element as
-  unremovable. -->
-
   </div>
 
 
+  <h4 id=making-entire-documents-editable:-the-designmode-idl-attribute><span class=secno>8.5.2 </span>Making entire documents editable: The <code title=dom-document-designMode><a href=#designMode>designMode</a></code> IDL attribute</h4>
+
   <div class=impl>
 
-  <h4 id=user-editing-actions><span class=secno>8.5.1 </span>User editing actions</h4>
+  <p>Documents have a <dfn id=designMode title=dom-document-designMode><code>designMode</code></dfn>, which
+  can be either enabled or disabled.</p>
 
-  <p>There are several actions that the user agent should allow the
-  user to perform while the user is interacting with an editing
-  host. How exactly each action is triggered is not defined for every
-  action, but when it is not defined, suggested key bindings are
-  provided to guide implementors.</p>
+  </div>
 
-  <dl><dt>Move the caret</dt>
+  <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-designMode><a href=#designMode>designMode</a></code> [ = <var title="">value</var> ]</dt>
 
-   <dd><p>User agents must allow users to move the caret to any
-   position within an editing host, even into nested editable
-   elements. This could be triggered as the default action of <code title=event-keydown>keydown</code> events with various key
-   identifiers and as the default action of <code title=event-mousedown>mousedown</code> events.</dd>
+   <dd>
 
+    <p>Returns "<code title="">on</code>" if the document is editable,
+    and "<code title="">off</code>" if it isn't.</p>
 
-   <dt>Change the selection</dt>
+    <p>Can be set, to change the document's current state.</p>
 
-   <dd><p>User agents must allow users to change the selection within
-   an editing host, even into nested editable elements. User agents
-   may prevent selections from being made in ways that cross from
-   editable elements into non-editable elements (e.g. by making each
-   non-editable descendant atomically selectable, but not allowing
-   text selection within them). This could be triggered as the default
-   action of <code title=event-keydown>keydown</code> events with
-   various key identifiers and as the default action of <code title=event-mousedown>mousedown</code> events.</dd>
-
-
-   <dt id=contenteditable-insertText>Insert text</dt>
-
-   <dd><p>This action must be triggered as the default action of a
-   <code title=event-textInput>textInput</code> event, and may be
-   triggered by other commands as well. It must cause the user agent
-   to insert the specified text (given by the event object's <code title="">data</code> attribute in the case of the <code title=event-textInput>textInput</code> event) at the caret.</p>
-
-   <p>If the caret is positioned somewhere where <a href=#phrasing-content>phrasing
-   content</a> is not allowed (e.g. inside an empty <code><a href=#the-ol-element>ol</a></code>
-   element), then the user agent must not insert the text directly at
-   the caret position. In such cases the behavior is UA-dependent,
-   but user agents must not, in response to a request to insert text,
-   generate a DOM that is less conformant than the DOM prior to the
-   request.</p>
-
-   <p>User agents should allow users to insert new paragraphs into
-   elements that contains only content other than paragraphs.</p>
-
-   <div class=example>
-    <p>For example, given the markup:</p>
-    <pre><section>
- <dl>
-  <dt> Ben </dt>
-  <dd> Goat </dd>
- </dl>
-</section></pre>
-    <p>...the user agent should allow the user to insert
-    <code><a href=#the-p-element>p</a></code> elements before and after the <code><a href=#the-dl-element>dl</a></code>
-    element, as children of the <code><a href=#the-section-element>section</a></code> element.</p>
-   </div>
-
    </dd>
 
+  </dl><div class=impl>
 
-   <dt id=contenteditable-breakBlock>Break block</dt>
+  <p>The <code title=dom-document-designMode><a href=#designMode>designMode</a></code> IDL
+  attribute on the <code><a href=#document>Document</a></code> object takes two values,
+  "<code title="">on</code>" and "<code title="">off</code>". When it
+  is set, the new value must be compared in an <a href=#ascii-case-insensitive>ASCII
+  case-insensitive</a> manner to these two values. If it matches
+  the "<code title="">on</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be enabled,
+  and if it matches the "<code title="">off</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be
+  disabled. Other values must be ignored.</p>
 
-   <dd><p>UAs should offer a way for the user to request that the
-   current paragraph be broken at the caret, e.g. as the default
-   action of a <code title=event-keydown>keydown</code> event whose
-   identifier is the "Enter" key and that has no modifiers set.</p>
+  <p>When <code title=dom-document-designMode><a href=#designMode>designMode</a></code> is
+  enabled, the IDL attribute must return the value "<code title="">on</code>", and when it is disabled, it must return the
+  value "<code title="">off</code>".</p>
 
-   <p>The exact behavior is UA-dependent, but user agents must not,
-   in response to a request to break a paragraph, generate a DOM that
-   is less conformant than the DOM prior to the request.</dd>
+  <p>The last state set must persist until the document is destroyed
+  or the state is changed. Initially, documents must have their <code title=dom-document-designMode><a href=#designMode>designMode</a></code> disabled.</p>
 
+  </div>
 
-   <dt id=contenteditable-br>Insert a line separator</dt>
 
-   <dd><p>UAs should offer a way for the user to request an explicit
-   line break at the caret position without breaking the paragraph,
-   e.g. as the default action of a <code title=event-keydown>keydown</code> event whose identifier is the
-   "Enter" key and that has a shift modifier set. Line separators are
-   typically found within a poem verse or an address. To insert a line
-   break, the user agent must insert a <code><a href=#the-br-element>br</a></code> element.</p>
 
-   <p>If the caret is positioned somewhere where <a href=#phrasing-content>phrasing
-   content</a> is not allowed (e.g. in an empty <code><a href=#the-ol-element>ol</a></code>
-   element), then the user agent must not insert the <code><a href=#the-br-element>br</a></code>
-   element directly at the caret position. In such cases the behavior
-   is UA-dependent, but user agents must not, in response to a request
-   to insert a line separator, generate a DOM that is less conformant
-   than the DOM prior to the request.</dd>
+  <div class=impl>
 
+  <h4 id=user-editing-actions><span class=secno>8.5.3 </span>User editing actions</h4>
 
-   <dt id=contenteditable-delete>Delete</dt>
+  <p class=XXX>This section will be removed shortly. What remains
+  here is simply what has not yet been merged into Aryeh's spec.</p>
 
-   <dd><p>UAs should offer a way for the user to delete text and
-   elements, including non-editable descendants, e.g. as the default
-   action of <code title=event-keydown>keydown</code> events whose
-   identifiers are "U+0008" or "U+007F".</p>
+  <p>There are several actions that the user agent should allow the
+  user to perform while the user is interacting with an editing
+  host. How exactly each action is triggered is not defined for every
+  action, but when it is not defined, suggested key bindings are
+  provided to guide implementors.</p>
 
-   <p>Five edge cases in particular need to be considered carefully
-   when implementing this feature: backspacing at the start of an
-   element, backspacing when the caret is immediately after an
-   element, forward-deleting at the end of an element,
-   forward-deleting when the caret is immediately before an element,
-   and deleting a selection whose start and end points do not share a
-   common parent node.</p>
-
-   <p>In any case, the exact behavior is UA-dependent, but user
-   agents must not, in response to a request to delete text or an
-   element, generate a DOM that is less conformant than the DOM prior
-   to the request.</dd>
-
-
-   <dt id=contenteditable-wrapSemantic>Insert, and wrap text in,
+  <dl><dt id=contenteditable-wrapSemantic>Insert, and wrap text in,
    semantic elements</dt>
 
    <dd><p>UAs should offer the user the ability to mark text and
@@ -72175,69 +72078,44 @@
    attribute. (Updating the <code title="">default*</code> IDL
    attributes causes content attributes to be updated as well.)</dd>
 
-  </dl><p>User agents may perform several commands per user request; for
-  example if the user selects a block of text and hits
-  <kbd><kbd>Enter</kbd></kbd>, the UA might interpret that as a
-  request to delete the content of the selection followed by a request
-  to break the paragraph at that position.</p>
+  </dl><p>User agents may add DOM changes to the <a href=#undo-transaction-history>undo transaction
+  history</a> of the <a href=#editing-host>editing host</a>'s
+  <code><a href=#document>Document</a></code> object each time an action is triggered.</p>
 
-  <p>User agents may add <span>DOM changes</span> entries to the
-  <span>undo transaction history</span> of the <a href=#editing-host>editing
-  host</a>'s <code><a href=#document>Document</a></code> object each time an action is
-  triggered.</p>
-
-  <p>All of the actions defined above, whether triggered by the user
-  or programmatically (e.g. by <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> commands),
-  must fire mutation events as appropriate.</p>
-
   </div>
 
 
+  <h4 id=editing-apis><span class=secno>8.5.4 </span>Editing APIs</h4>
 
-  <h4 id=making-entire-documents-editable><span class=secno>8.5.2 </span>Making entire documents editable</h4>
+  <p>The definition of the terms <dfn id=active-range>active range</dfn>, <dfn id=editing-host>editing
+  host</dfn>, and <dfn id=editable>editable</dfn>, the user interface requirements
+  of elements that are <a href=#editing-host title="editing host">editing hosts</a>
+  or <a href=#editable>editable</a>, and the
 
-  <div class=impl>
+  <dfn id=execCommand title=dom-document-execCommand><code>execCommand()</code></dfn>,
+  <dfn id=dom-document-querycommandenabled title=dom-document-queryCommandEnabled><code>queryCommandEnabled()</code></dfn>,
+  <dfn id=dom-document-querycommandindeterm title=dom-document-queryCommandIndeterm><code>queryCommandIndeterm()</code></dfn>,
+  <dfn id=dom-document-querycommandstate title=dom-document-queryCommandState><code>queryCommandState()</code></dfn>,
+  <dfn id=dom-document-querycommandsupported title=dom-document-queryCommandSupported><code>queryCommandSupported()</code></dfn>, and
+  <dfn id=dom-document-querycommandvalue title=dom-document-queryCommandValue><code>queryCommandValue()</code></dfn>
 
-  <p>Documents have a <dfn id=designMode title=dom-document-designMode><code>designMode</code></dfn>, which
-  can be either enabled or disabled.</p>
+  methods are defined in the HTML Editing APIs specification. Text
+  selections are defined in the DOM Range specification. The
+  interaction of editing and the undo/redo features in user agents is
+  defined by the UndoManager and DOM Transaction specification. <a href=#refsEDITING>[EDITING]</a> <a href=#refsDOMRANGE>[DOMRANGE]</a> <a href=#refsUNDO>[UNDO]</a></p>
 
-  </div>
+  <p class=XXX>Need to decide what to do with the <dfn id=formatblock-candidate><code title="">formatBlock</code> candidate</dfn> category.</p>
 
-  <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-designMode><a href=#designMode>designMode</a></code> [ = <var title="">value</var> ]</dt>
+  <p class=XXX><dfn id=undo-transaction-history>undo transaction history</dfn> is currently
+  defined in <a href=#refsUNDO>[UNDO]</a> but this spec hasn't been
+  updated to make sense with the new definition</p>
 
-   <dd>
+  <!-- those might get merged in here eventually -->
 
-    <p>Returns "<code title="">on</code>" if the document is editable,
-    and "<code title="">off</code>" if it isn't.</p>
 
-    <p>Can be set, to change the document's current state.</p>
 
-   </dd>
+  <h4 id=spelling-and-grammar-checking><span class=secno>8.5.5 </span>Spelling and grammar checking</h4>
 
-  </dl><div class=impl>
-
-  <p>The <code title=dom-document-designMode><a href=#designMode>designMode</a></code> IDL
-  attribute on the <code><a href=#document>Document</a></code> object takes two values,
-  "<code title="">on</code>" and "<code title="">off</code>". When it
-  is set, the new value must be compared in an <a href=#ascii-case-insensitive>ASCII
-  case-insensitive</a> manner to these two values. If it matches
-  the "<code title="">on</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be enabled,
-  and if it matches the "<code title="">off</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be
-  disabled. Other values must be ignored.</p>
-
-  <p>When <code title=dom-document-designMode><a href=#designMode>designMode</a></code> is
-  enabled, the IDL attribute must return the value "<code title="">on</code>", and when it is disabled, it must return the
-  value "<code title="">off</code>".</p>
-
-  <p>The last state set must persist until the document is destroyed
-  or the state is changed. Initially, documents must have their <code title=dom-document-designMode><a href=#designMode>designMode</a></code> disabled.</p>
-
-  </div>
-
-
-
-  <h3 id=spelling-and-grammar-checking><span class=secno>8.6 </span>Spelling and grammar checking</h3>
-
   <div class=impl>
 
   <p>User agents can support the checking of spelling and grammar of
@@ -72332,7 +72210,8 @@
    that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>.</li>
 
    <li>Text in <a href=#text-node title="text node">text nodes</a> that are
-   children of <a href=#editable>editable</a> elements.</li>
+   children of <a href=#editing-host title="editing host">editing hosts</a> or
+   <a href=#editable>editable</a> elements.</li>
 
    <li>Text in attributes of <a href=#editable>editable</a> elements.</li>
 
@@ -72428,7 +72307,7 @@
   the checking is enabled, or could use other interfaces.</p>
 
 
-  <h3 id=dnd><span class=secno>8.7 </span><dfn>Drag and drop</dfn></h3>
+  <h3 id=dnd><span class=secno>8.6 </span><dfn>Drag and drop</dfn></h3>
 
 <!-- v2: ideas for drag and drop:
 
@@ -72530,7 +72409,7 @@
   </div>
 
 
-  <h4 id=introduction-9><span class=secno>8.7.1 </span>Introduction</h4>
+  <h4 id=introduction-9><span class=secno>8.6.1 </span>Introduction</h4>
 
   <p><i>This section is non-normative.</i></p>
 
@@ -72633,7 +72512,7 @@
 
 
 
-  <h4 id=the-drag-data-store><span class=secno>8.7.2 </span>The drag data store</h4>
+  <h4 id=the-drag-data-store><span class=secno>8.6.2 </span>The drag data store</h4>
 
   <p>The data that underlies a drag-and-drop operation, known as the
   <dfn id=drag-data-store>drag data store</dfn>, consists of the following information:</p>
@@ -72778,7 +72657,7 @@
   store allowed effects state</a> is the string "<code title="">uninitialized</code>".</p>
 
 
-  <h4 id=the-datatransfer-interface><span class=secno>8.7.3 </span>The <code><a href=#datatransfer>DataTransfer</a></code> interface</h4>
+  <h4 id=the-datatransfer-interface><span class=secno>8.6.3 </span>The <code><a href=#datatransfer>DataTransfer</a></code> interface</h4>
 
   <p><code><a href=#datatransfer>DataTransfer</a></code> objects are used to expose the
   <a href=#drag-data-store>drag data store</a> that underlies a drag-and-drop
@@ -73155,7 +73034,7 @@
   </div>
 
 
-  <h5 id=the-datatransferitemlist-interface><span class=secno>8.7.3.1 </span>The <code><a href=#datatransferitemlist>DataTransferItemList</a></code> interface</h5>
+  <h5 id=the-datatransferitemlist-interface><span class=secno>8.6.3.1 </span>The <code><a href=#datatransferitemlist>DataTransferItemList</a></code> interface</h5>
 
   <p>Each <code><a href=#datatransfer>DataTransfer</a></code> object is associated with a
   <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object.</p>
@@ -73364,7 +73243,7 @@
   </ol></div>
 
 
-  <h5 id=the-datatransferitem-interface><span class=secno>8.7.3.2 </span>The <code><a href=#datatransferitem>DataTransferItem</a></code> interface</h5>
+  <h5 id=the-datatransferitem-interface><span class=secno>8.6.3.2 </span>The <code><a href=#datatransferitem>DataTransferItem</a></code> interface</h5>
 
   <p>Each <code><a href=#datatransferitem>DataTransferItem</a></code> object is associated with a
   <code><a href=#datatransfer>DataTransfer</a></code> object.</p>
@@ -73592,7 +73471,7 @@
 
 
 
-  <h4 id=the-dragevent-interface><span class=secno>8.7.4 </span>The <code><a href=#dragevent>DragEvent</a></code> interface</h4>
+  <h4 id=the-dragevent-interface><span class=secno>8.6.4 </span>The <code><a href=#dragevent>DragEvent</a></code> interface</h4>
 
   <p>The drag-and-drop processing model involves several events. They
   all use the <code><a href=#dragevent>DragEvent</a></code> interface.</p>
@@ -73719,7 +73598,7 @@
 
   <div class=impl>
 
-  <h4 id=drag-and-drop-processing-model><span class=secno>8.7.5 </span>Drag-and-drop processing model</h4>
+  <h4 id=drag-and-drop-processing-model><span class=secno>8.6.5 </span>Drag-and-drop processing model</h4>
 
   <p>When the user attempts to begin a drag operation, the user agent
   must run the following steps. User agents must act as if these steps
@@ -73978,10 +73857,11 @@
   </ol><p>From the moment that the user agent is to <dfn id=initiate-the-drag-and-drop-operation>initiate the
   drag-and-drop operation</dfn>, until the end of the drag-and-drop
   operation, device input events (e.g. mouse and keyboard events) must
-  be suppressed. In addition, the user agent must track all DOM
-  changes made during the drag-and-drop operation, and add them to its
-  <span>undo transaction history</span> as one atomic operation once
-  the drag-and-drop operation has ended.</p>
+  be suppressed. <span class=XXX>In addition, the user agent must
+  track all DOM changes made during the drag-and-drop operation, and
+  add them to its <a href=#undo-transaction-history>undo transaction history</a> as one atomic
+  operation once the drag-and-drop operation has ended.</span></p>
+  <!-- need to update this to new UndoManager code -->
 
   <p>During the drag operation, the element directly indicated by the
   user as the drop target is called the <dfn id=immediate-user-selection>immediate user
@@ -74075,10 +73955,11 @@
          field (e.g. <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code>
          element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code>
          attribute is in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state) or an
-         <a href=#editable>editable</a> element, and the <a href=#drag-data-store-item-list>drag data store
-         item list</a> has an item with <a href=#the-drag-data-item-type-string>the drag data item
-         type string</a> "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the
-         drag data item kind</a> <i>Plain Unicode string</i></dt>
+         <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element,
+         and the <a href=#drag-data-store-item-list>drag data store item list</a> has an item
+         with <a href=#the-drag-data-item-type-string>the drag data item type string</a>
+         "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data item
+         kind</a> <i>Plain Unicode string</i></dt>
 
          <dd><p>Set the <a href=#current-target-element>current target element</a> to the
          <a href=#immediate-user-selection>immediate user selection</a> anyway.</dd>
@@ -74144,10 +74025,11 @@
        (e.g. <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code> element
        whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in
        the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state) or an
-       <a href=#editable>editable</a> element, and the <a href=#drag-data-store-item-list>drag data store
-       item list</a> has an item with <a href=#the-drag-data-item-type-string>the drag data item type
-       string</a> "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data
-       item kind</a> <i>Plain Unicode string</i></dt>
+       <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element, and
+       the <a href=#drag-data-store-item-list>drag data store item list</a> has an item with
+       <a href=#the-drag-data-item-type-string>the drag data item type string</a>
+       "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data item
+       kind</a> <i>Plain Unicode string</i></dt>
 
        <dd><p>Set the <a href=#current-drag-operation>current drag operation</a> to either
        "<code title="">copy</code>" or "<code title="">move</code>",
@@ -74278,19 +74160,20 @@
          field (e.g. <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code>
          element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code>
          attribute is in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state) or an
-         <a href=#editable>editable</a> element, and the <a href=#drag-data-store-item-list>drag data store
-         item list</a> has an item with <a href=#the-drag-data-item-type-string>the drag data item
-         type string</a> "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the
-         drag data item kind</a> <i>Plain Unicode string</i></dt>
+         <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element,
+         and the <a href=#drag-data-store-item-list>drag data store item list</a> has an item
+         with <a href=#the-drag-data-item-type-string>the drag data item type string</a>
+         "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data item
+         kind</a> <i>Plain Unicode string</i></dt>
 
          <dd><p>Insert the actual data of the first item in the
          <a href=#drag-data-store-item-list>drag data store item list</a> to have <a href=#the-drag-data-item-type-string title="the drag data item type string">a drag data item type
          string</a> of "<code>text/plain</code>" and <a href=#the-drag-data-item-kind title="the drag data item kind">a drag data item kind</a>
          that is <i>Plain Unicode string</i> into the text field or
-         <a href=#editable>editable</a> element in a manner consistent with
-         platform-specific conventions (e.g. inserting it at the
-         current mouse cursor position, or inserting it at the end of
-         the field).</dd>
+         <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element in
+         a manner consistent with platform-specific conventions (e.g.
+         inserting it at the current mouse cursor position, or
+         inserting it at the end of the field).</dd>
 
          <dt>Otherwise</dt>
 
@@ -74361,7 +74244,7 @@
   </div>
 
 
-  <h4 id=dndevents><span class=secno>8.7.6 </span>Events summary</h4>
+  <h4 id=dndevents><span class=secno>8.6.6 </span>Events summary</h4>
 
   <p><i>This section is non-normative.</i></p>
 
@@ -74440,7 +74323,7 @@
 
 
 
-  <h4 id=the-draggable-attribute><span class=secno>8.7.7 </span>The <dfn title=attr-draggable><code>draggable</code></dfn> attribute</h4>
+  <h4 id=the-draggable-attribute><span class=secno>8.6.7 </span>The <dfn title=attr-draggable><code>draggable</code></dfn> attribute</h4>
 
   <p>All <a href=#html-elements>HTML elements</a> may have the <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> content attribute set. The
   <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> attribute is an
@@ -74499,7 +74382,7 @@
   </div>
 
 
-  <h4 id=the-dropzone-attribute><span class=secno>8.7.8 </span>The <dfn title=attr-dropzone><code>dropzone</code></dfn> attribute</h4>
+  <h4 id=the-dropzone-attribute><span class=secno>8.6.8 </span>The <dfn title=attr-dropzone><code>dropzone</code></dfn> attribute</h4>
 
   <p>All <a href=#html-elements>HTML elements</a> may have the <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> content attribute set. When
   specified, its value must be an <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique
@@ -74825,7 +74708,7 @@
 
   <div class=impl>
 
-  <h4 id=security-risks-in-the-drag-and-drop-model><span class=secno>8.7.9 </span>Security risks in the drag-and-drop model</h4>
+  <h4 id=security-risks-in-the-drag-and-drop-model><span class=secno>8.6.9 </span>Security risks in the drag-and-drop model</h4>
 
   <p>User agents must not make the data added to the
   <code><a href=#datatransfer>DataTransfer</a></code> object during the <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code> event available to scripts
@@ -74853,7 +74736,7 @@
 
 <!--FIND-->
 
-  <h3 id=text-search-apis><span class=secno>8.8 </span>Text search APIs</h3> <!-- window.find() -->
+  <h3 id=text-search-apis><span class=secno>8.7 </span>Text search APIs</h3> <!-- window.find() -->
 
   <p class=critical>This legacy API is not very interoperably
   implemented, and has a number of design problems (such as having six
@@ -74910,461 +74793,9 @@
 
 
 
-  <h3 id=editing-apis><span class=secno>8.9 </span>Editing APIs</h3>
+<!--PEERCONNECTION-->
+<div data-component="other Hixie drafts (editor: Ian Hickson)">
 
-  <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-execCommand><a href=#execCommand>execCommand</a></code>(<var title="">commandId</var> [, <var title="">showUI</var> [, <var title="">value</var> ] ] )</dt>
-
-   <dd>
-
-    <p>Runs the action specified by the first argument, as described
-    in the list below. The second and third arguments sometimes affect
-    the action. (If they don't they are ignored.)</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandEnabled><a href=#dom-document-querycommandenabled>queryCommandEnabled</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns whether the given command is enabled, as described in the list below.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandIndeterm><a href=#dom-document-querycommandindeterm>queryCommandIndeterm</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns whether the given command is indeterminate, as described in the list below.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandState><a href=#dom-document-querycommandstate>queryCommandState</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns the state of the command, as described in the list below.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandSupported><a href=#dom-document-querycommandsupported>queryCommandSupported</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns true if the command is supported; otherwise, returns false.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandValue><a href=#dom-document-querycommandvalue>queryCommandValue</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns the value of the command, as described in the list below.</p>
-
-   </dd>
-
-  </dl><div class=impl>
-
-  <p>The <dfn id=execCommand title=dom-document-execCommand><code>execCommand(<var title="">commandId</var>, <var title="">showUI</var>, <var title="">value</var>)</code></dfn> method on the
-  <code><a href=#htmldocument>HTMLDocument</a></code> interface allows scripts to perform
-  actions on the current selection or at the current caret position.
-  Generally, these commands would be used to implement editor UI, for
-  example having a "delete" button on a toolbar.</p>
-
-  <p>There are three variants to this method, with one, two, and three
-  arguments respectively. The <var title="">showUI</var> and <var title="">value</var> parameters, even if specified, are ignored
-  except where otherwise stated.</p>
-
-  <p>When <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code>
-  is invoked, the user agent must run the following steps:</p>
-
-  <ol><li>If the given <var title="">commandId</var> maps to an entry in
-   the list below whose "Enabled When" entry has a condition that is
-   currently false, do nothing; abort these steps.</li>
-
-   <li>Otherwise, execute the "Action" listed below for the given <var title="">commandId</var>.</li>
-
-  </ol></div>
-
-  <p>A document is <dfn id=ready-for-editing-host-commands>ready for editing host commands</dfn> if it
-  has a selection that is entirely within an <a href=#editing-host>editing
-  host</a>, or if it has no selection but its caret is inside an
-  <a href=#editing-host>editing host</a>.</p>
-
-  <div class=impl>
-
-  <p>The <dfn id=dom-document-querycommandenabled title=dom-document-queryCommandEnabled><code>queryCommandEnabled(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return true if the condition listed below under "Enabled When" for
-  the given <var title="">commandId</var> is true, and false
-  otherwise.</p>
-
-  <p>The <dfn id=dom-document-querycommandindeterm title=dom-document-queryCommandIndeterm><code>queryCommandIndeterm(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return true if the condition listed below under "Indeterminate When"
-  for the given <var title="">commandId</var> is true, and false
-  otherwise.</p>
-
-  <p>The <dfn id=dom-document-querycommandstate title=dom-document-queryCommandState><code>queryCommandState(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return the value expressed below under "State" for the given <var title="">commandId</var>.</p>
-
-  <p>The <dfn id=dom-document-querycommandsupported title=dom-document-queryCommandSupported><code>queryCommandSupported(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return true if the given <var title="">commandId</var> is in the
-  list below, and false otherwise.</p>
-
-  <p>The <dfn id=dom-document-querycommandvalue title=dom-document-queryCommandValue><code>queryCommandValue(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return the value expressed below under "Value" for the given <var title="">commandId</var>.</p>
-
-  </div>
-
-  <p>The possible values for <var title="">commandId</var>, and their
-  corresponding meanings, are as follows. <span class=impl>These
-  values must be compared to the argument in an <a href=#ascii-case-insensitive>ASCII
-  case-insensitive</a> manner.</span></p>
-
-  <dl><dt><dfn id=command-bold title=command-bold><code>bold</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is bold.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-b-element>b</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code><a href=#the-b-element>b</a></code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn id=command-createlink title=command-createLink><code>createLink</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is a
-   link or not. If the second argument is true, and a link is to be
-   added, the user agent will ask the user for the address. Otherwise,
-   the third argument will be used as the address.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-a-element>a</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA). If the user agent creates an <code><a href=#the-a-element>a</a></code> element or
-   modifies an existing <code><a href=#the-a-element>a</a></code> element, then if the <var title="">showUI</var> argument is present and has the value false,
-   then the value of the <var title="">value</var> argument must be
-   used as the <a href=#url>URL</a> of the link. Otherwise, the user agent
-   should prompt the user for the URL of the link.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-delete title=command-delete><code>delete</code></dfn></dt>
-   <dd><strong>Summary</strong>: Deletes the selection or the
-   character before the cursor.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had performed <a href=#contenteditable-delete>a backspace
-   operation</a>.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-formatblock title=command-formatBlock><code>formatBlock</code></dfn></dt>
-   <dd><strong>Summary</strong>: Wraps the selection in the element
-   given by the third argument. If the third argument doesn't
-   specify an element that is a <dfn id=formatblock-candidate><code title="">formatBlock</code>
-   candidate</dfn>, does nothing.</dd>
-   <dd class=impl>
-    <p><strong>Action</strong>: The user agent must run the following
-    steps:</p>
-    <ol><li><p>If the <var title="">value</var> argument wasn't
-     specified, abort these steps without doing anything.</li>
-     <li><p>If the <var title="">value</var> argument has a leading
-     U+003C LESS-THAN SIGN character (<) and a trailing U+003E
-     GREATER-THAN SIGN character (>), then remove the first and last
-     characters from <var title="">value</var>.</li>
-     <li>
-      <p>If <var title="">value</var> is (now) an <a href=#ascii-case-insensitive>ASCII
-      case-insensitive</a> match for the tag name of an element
-      defined by this specification that is defined to be a
-      <a href=#formatblock-candidate><code title="">formatBlock</code> candidate</a>, then,
-      for every position in the selection, take the nearest
-      <a href=#formatblock-candidate><code title="">formatBlock</code> candidate</a>
-      ancestor element of that position that contains only
-      <a href=#phrasing-content>phrasing content</a>, and, if that element is
-      <a href=#editable>editable</a>, is not an <a href=#editing-host>editing host</a>, and
-      has a parent element whose content model allows that parent to
-      contain any <a href=#flow-content>flow content</a>, replace it with an
-      element in the HTML namespace whose name is <var title="">value</var>, and move all the children that were in it
-      to the new element, and copy all the attributes that were on it
-      to the new element.</p>
-      <p>If there is no selection, then, where in the description
-      above refers to the selection, the user agent must act as if the
-      selection was an empty range (with just one position) at the
-      caret position.</p>
-     </li>
-    </ol></dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-forwarddelete title=command-forwardDelete><code>forwardDelete</code></dfn></dt>
-   <dd><strong>Summary</strong>: Deletes the selection or the
-   character after the cursor.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had performed <a href=#contenteditable-delete>a forward delete
-   operation</a>.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertimage title=command-insertImage><code>insertImage</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is an
-   image or not. If the second argument is true, and an image is to be
-   added, the user agent will ask the user for the address. Otherwise,
-   the third argument will be used as the address.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act
-   as if the user had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-img-element>img</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA). If the user agent creates an <code><a href=#the-img-element>img</a></code> element or
-   modifies an existing <code><a href=#the-img-element>img</a></code> element, then if the <var title="">showUI</var> argument is present and has the value false,
-   then the value of the <var title="">value</var> argument must be
-   used as the <a href=#url>URL</a> of the image. Otherwise, the user
-   agent should prompt the user for the URL of the image.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-inserthtml title=command-insertHTML><code>insertHTML</code></dfn></dt>
-   <dd><strong>Summary</strong>: Replaces the selection with the value
-   of the third argument parsed as HTML.</dd>
-   <dd class=impl>
-    <p><strong>Action</strong>: The user agent must run the following
-    steps:</p>
-    <ol><li><p>If the document is an <a href=#xml-documents title="XML documents">XML
-     document</a>, then throw an <code><a href=#invalid_access_err>INVALID_ACCESS_ERR</a></code>
-     exception and abort these steps.</li><!-- v2 support XML? -->
-     <li><p>If the <var title="">value</var> argument wasn't
-     specified, abort these steps without doing anything.</li>
-     <li><p>If there is a selection, act as if the user had requested
-     that <a href=#contenteditable-delete>the selection be
-     deleted</a>.</li>
-     <li><p>Invoke the <a href=#html-fragment-parsing-algorithm>HTML fragment parsing algorithm</a>
-     with an arbitrary orphan <code><a href=#the-body-element>body</a></code> element owned by the
-     same <code><a href=#document>Document</a></code> as the <i title="">context</i> element
-     and with the <var title="">value</var> argument as <i title="">input</i>.</li>
-     <li><p>Insert the nodes returned by the previous step into the
-     document at the location of the caret, firing any mutation events
-     as appropriate.</li>
-    </ol></dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertlinebreak title=command-insertLineBreak><code>insertLineBreak</code></dfn></dt>
-   <dd><strong>Summary</strong>: Inserts a line break.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had <a href=#contenteditable-br>requested a line
-   separator</a>.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertorderedlist title=command-insertOrderedList><code>insertOrderedList</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is an ordered list.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <code><a href=#the-ol-element>ol</a></code> element (or unwrapped, or, if
-   there is no selection, have that semantic inserted or removed
-   — the exact behavior is UA-defined).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertunorderedlist title=command-insertUnorderedList><code>insertUnorderedList</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is an unordered list.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <code><a href=#the-ul-element>ul</a></code> element (or unwrapped, or, if
-   there is no selection, have that semantic inserted or removed
-   — the exact behavior is UA-defined).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertparagraph title=command-insertParagraph><code>insertParagraph</code></dfn></dt>
-   <dd><strong>Summary</strong>: Inserts a paragraph break.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had performed a <a href=#contenteditable-breakBlock>break
-   block</a> editing action.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-inserttext title=command-insertText><code>insertText</code></dfn></dt>
-   <dd><strong>Summary</strong>: Inserts the text given in the third parameter.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had <a href=#contenteditable-insertText>inserted text</a>
-   corresponding to the <var title="">value</var> parameter.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-italic title=command-italic><code>italic</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is italic.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-i-element>i</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code><a href=#the-i-element>i</a></code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn id=command-redo title=command-redo><code>redo</code></dfn></dt>
-   <dd><strong>Summary</strong>: Acts as if the user had requested a redo.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must <span title=do-redo>move forward one step</span> in its <span>undo
-   transaction history</span>, restoring the associated state. If the
-   <span>undo position</span> is at the end of the <span>undo
-   transaction history</span>, the user agent must do nothing.
-   </dd>
-   <dd><strong>Enabled When</strong>: The <span>undo position</span>
-   is not at the end of the <span>undo transaction
-   history</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-selectall title=command-selectAll><code>selectAll</code></dfn></dt>
-   <dd><strong>Summary</strong>: Selects all the editable content.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must change the
-   selection so that all the content in the currently focused
-   <a href=#editing-host>editing host</a> is selected. If no <a href=#editing-host>editing
-   host</a> is focused, then the content of the entire document
-   must be selected.</dd>
-   <dd><strong>Enabled When</strong>: Always.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-subscript title=command-subscript><code>subscript</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is subscripted.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-sub-and-sup-elements>sub</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code><a href=#the-sub-and-sup-elements>sub</a></code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn id=command-superscript title=command-superscript><code>superscript</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is superscripted.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <code><a href=#the-sub-and-sup-elements>sup</a></code> element (or unwrapped, or, if
-   there is no selection, have that semantic inserted or removed
-   — the exact behavior is UA-defined).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code><a href=#the-sub-and-sup-elements>sup</a></code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn id=command-undo title=command-undo><code>undo</code></dfn></dt>
-   <dd><strong>Summary</strong>: Acts as if the user had requested an undo.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must <span title=do-undo>move back one step</span> in its <span>undo
-   transaction history</span>, restoring the associated state. If the
-   <span>undo position</span> is at the start of the <span>undo
-   transaction history</span>, the user agent must do nothing.
-   </dd>
-   <dd><strong>Enabled When</strong>: The <span>undo position</span>
-   is not at the start of the <span>undo transaction
-   history</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-unlink title=command-unlink><code>unlink</code></dfn></dt>
-   <dd><strong>Summary</strong>: Removes all links from the selection.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must remove all
-   <code><a href=#the-a-element>a</a></code> elements that have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes and that are partially
-   or completely included in the current selection.</dd>
-   <dd><strong>Enabled When</strong>: The document has a selection
-   that is entirely within an <a href=#editing-host>editing host</a> and that
-   contains (either partially or completely) at least one
-   <code><a href=#the-a-element>a</a></code> element that has an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-unselect title=command-unselect><code>unselect</code></dfn></dt>
-   <dd><strong>Summary</strong>: Unselects everything.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must change the
-   selection so that nothing is selected.</dd>
-   <dd><strong>Enabled When</strong>: Always.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt class=impl><code><var title="">vendorID</var>-<var title="">customCommandID</var></code></dt>
-   <dd class=impl><strong>Action</strong>: User agents may implement
-   vendor-specific extensions to this API. Vendor-specific extensions
-   to the list of commands should use the syntax <code><var title="">vendorID</var>-<var title="">customCommandID</var></code>
-   so as to prevent clashes between extensions from different vendors
-   and future additions to this specification.</dd>
-   <dd class=impl><strong>Enabled When</strong>: UA-defined.</dd>
-   <dd class=impl><strong>Indeterminate When</strong>: UA-defined.</dd>
-   <dd class=impl><strong>State</strong>: UA-defined.</dd>
-   <dd class=impl><strong>Value</strong>: UA-defined.</dd>
-
-   <dt class=impl>Anything else</dt>
-   <dd class=impl><strong>Action</strong>: User agents must do nothing.</dd>
-   <dd class=impl><strong>Enabled When</strong>: Never.</dd>
-   <dd class=impl><strong>Indeterminate When</strong>: Never.</dd>
-   <dd class=impl><strong>State</strong>: Always false.</dd>
-   <dd class=impl><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-  </dl><!--
-v2 (well, really v0):
- "forecolor", "hilitecolor", "fontname", "fontsize", "justifyleft",
- "justifycenter", "justifyright", "justifyfull", "indent", "outdent"
---><!--PEERCONNECTION--><div data-component="other Hixie drafts (editor: Ian Hickson)">
-
   <h2 id=video-conferencing-and-peer-to-peer-communication><span class=secno>9 </span>Video conferencing and peer-to-peer communication</h2>
 
   <h3 id=introduction-10><span class=secno>9.1 </span>Introduction</h3>
@@ -95808,11 +95239,11 @@
 
   <h4 id=editing-hosts><span class=secno>15.7.3 </span>Editing hosts</h4>
 
-  <p>The current text editing caret (the one at the <a href=#caret-position>caret
-  position</a> in a focused <a href=#editing-host>editing host</a>) is expected
-  to act like an inline replaced element with the vertical dimensions
-  of the caret and with zero width for the purposes of the CSS
-  rendering model.</p>
+  <p>The current text editing caret (i.e. the <a href=#active-range>active
+  range</a>, if it is empty and in an <a href=#editing-host>editing host</a>),
+  if any, is expected to act like an inline replaced element with the
+  vertical dimensions of the caret and with zero width for the
+  purposes of the CSS rendering model.</p>
 
   <p class=note>This means that even an empty block can have the
   caret inside it, and that when the caret is in such an element, it
@@ -99842,7 +99273,7 @@
      <td> <a href=#attribute-text>Text</a>*
     <tr><th> <code title="">contenteditable</code>
      <td> <a href=#attr-contenteditable title=attr-contenteditable>HTML elements</a>
-     <td> Whether the element is <a href=#editable>editable</a>
+     <td> Whether the element is an editable
      <td> "<code title="">true</code>"; "<code title="">false</code>"
     <tr><th> <code title="">contextmenu</code>
      <td> <a href=#attr-contextmenu title=attr-contextmenu>HTML elements</a>
@@ -101358,6 +100789,9 @@
    <dd><cite><a href=http://www.ecma-international.org/publications/standards/Ecma-262.htm>ECMAScript
    Language Specification</a></cite>. ECMA.</dd>
 
+   <dt id=refsEDITING>[EDITING]</dt>
+   <dd><cite><a href=http://aryeh.name/spec/editing/editing.html>HTML Editing APIs</a></cite>, A. Gregor.</dd>
+
    <dt id=refsECMA357>[ECMA357]</dt>
    <dd>(Non-normative) <cite><a href=http://www.ecma-international.org/publications/standards/Ecma-357.htm>ECMAScript
    for XML (E4X) Specification</a></cite>. ECMA.</dd>
@@ -101753,6 +101187,9 @@
    Guidelines (UAAG) 2.0</a></cite>, J. Allan, K. Ford, J. Richards,
    J. Spellman. W3C.</dd>
 
+   <dt id=refsUNDO>[UNDO]</dt>
+   <dd><cite><a href=http://rniwa.com/editing/undomanager.html>UndoManager and DOM Transaction</a></cite>, R. Niwa.</dd>
+
    <dt id=refsUNICODE>[UNICODE]</dt>
    <dd><cite><a href=http://www.unicode.org/versions/>The Unicode Standard</a></cite>. Unicode Consortium.</dd>
 

Modified: index
===================================================================
--- index	2011-08-25 23:13:05 UTC (rev 6527)
+++ index	2011-08-26 00:43:00 UTC (rev 6528)
@@ -243,7 +243,7 @@
 
   <header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
    <hgroup><h1 class=allcaps>HTML</h1>
-    <h2 class="no-num no-toc">Living Standard — Last Updated 25 August 2011</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 26 August 2011</h2>
    </hgroup><dl><dt><strong>Web developer edition</strong></dt>
     <dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
     <dt>Multiple-page version:</dt>
@@ -968,27 +968,29 @@
      <li><a href=#introduction-8><span class=secno>8.4.1 </span>Introduction</a></li>
      <li><a href=#the-accesskey-attribute><span class=secno>8.4.2 </span>The <code>accesskey</code> attribute</a></li>
      <li><a href=#processing-model-3><span class=secno>8.4.3 </span>Processing model</a></ol></li>
-   <li><a href=#contenteditable><span class=secno>8.5 </span>The <code title=attr-contenteditable>contenteditable</code> attribute</a>
+   <li><a href=#editing-0><span class=secno>8.5 </span>Editing</a>
     <ol>
-     <li><a href=#user-editing-actions><span class=secno>8.5.1 </span>User editing actions</a></li>
-     <li><a href=#making-entire-documents-editable><span class=secno>8.5.2 </span>Making entire documents editable</a></ol></li>
-   <li><a href=#spelling-and-grammar-checking><span class=secno>8.6 </span>Spelling and grammar checking</a></li>
-   <li><a href=#dnd><span class=secno>8.7 </span>Drag and drop</a>
+     <li><a href=#contenteditable><span class=secno>8.5.1 </span>Making document regions editable: The <code title=attr-contenteditable>contenteditable</code> content
+  attribute</a></li>
+     <li><a href=#making-entire-documents-editable:-the-designmode-idl-attribute><span class=secno>8.5.2 </span>Making entire documents editable: The <code title=dom-document-designMode>designMode</code> IDL attribute</a></li>
+     <li><a href=#user-editing-actions><span class=secno>8.5.3 </span>User editing actions</a></li>
+     <li><a href=#editing-apis><span class=secno>8.5.4 </span>Editing APIs</a></li>
+     <li><a href=#spelling-and-grammar-checking><span class=secno>8.5.5 </span>Spelling and grammar checking</a></ol></li>
+   <li><a href=#dnd><span class=secno>8.6 </span>Drag and drop</a>
     <ol>
-     <li><a href=#introduction-9><span class=secno>8.7.1 </span>Introduction</a></li>
-     <li><a href=#the-drag-data-store><span class=secno>8.7.2 </span>The drag data store</a></li>
-     <li><a href=#the-datatransfer-interface><span class=secno>8.7.3 </span>The <code>DataTransfer</code> interface</a>
+     <li><a href=#introduction-9><span class=secno>8.6.1 </span>Introduction</a></li>
+     <li><a href=#the-drag-data-store><span class=secno>8.6.2 </span>The drag data store</a></li>
+     <li><a href=#the-datatransfer-interface><span class=secno>8.6.3 </span>The <code>DataTransfer</code> interface</a>
       <ol>
-       <li><a href=#the-datatransferitemlist-interface><span class=secno>8.7.3.1 </span>The <code>DataTransferItemList</code> interface</a></li>
-       <li><a href=#the-datatransferitem-interface><span class=secno>8.7.3.2 </span>The <code>DataTransferItem</code> interface</a></ol></li>
-     <li><a href=#the-dragevent-interface><span class=secno>8.7.4 </span>The <code>DragEvent</code> interface</a></li>
-     <li><a href=#drag-and-drop-processing-model><span class=secno>8.7.5 </span>Drag-and-drop processing model</a></li>
-     <li><a href=#dndevents><span class=secno>8.7.6 </span>Events summary</a></li>
-     <li><a href=#the-draggable-attribute><span class=secno>8.7.7 </span>The <code>draggable</code> attribute</a></li>
-     <li><a href=#the-dropzone-attribute><span class=secno>8.7.8 </span>The <code>dropzone</code> attribute</a></li>
-     <li><a href=#security-risks-in-the-drag-and-drop-model><span class=secno>8.7.9 </span>Security risks in the drag-and-drop model</a></ol></li>
-   <li><a href=#text-search-apis><span class=secno>8.8 </span>Text search APIs</a></li>
-   <li><a href=#editing-apis><span class=secno>8.9 </span>Editing APIs</a></ol></li>
+       <li><a href=#the-datatransferitemlist-interface><span class=secno>8.6.3.1 </span>The <code>DataTransferItemList</code> interface</a></li>
+       <li><a href=#the-datatransferitem-interface><span class=secno>8.6.3.2 </span>The <code>DataTransferItem</code> interface</a></ol></li>
+     <li><a href=#the-dragevent-interface><span class=secno>8.6.4 </span>The <code>DragEvent</code> interface</a></li>
+     <li><a href=#drag-and-drop-processing-model><span class=secno>8.6.5 </span>Drag-and-drop processing model</a></li>
+     <li><a href=#dndevents><span class=secno>8.6.6 </span>Events summary</a></li>
+     <li><a href=#the-draggable-attribute><span class=secno>8.6.7 </span>The <code>draggable</code> attribute</a></li>
+     <li><a href=#the-dropzone-attribute><span class=secno>8.6.8 </span>The <code>dropzone</code> attribute</a></li>
+     <li><a href=#security-risks-in-the-drag-and-drop-model><span class=secno>8.6.9 </span>Security risks in the drag-and-drop model</a></ol></li>
+   <li><a href=#text-search-apis><span class=secno>8.7 </span>Text search APIs</a></ol></li>
  <li><a href=#video-conferencing-and-peer-to-peer-communication><span class=secno>9 </span>Video conferencing and peer-to-peer communication</a>
   <ol>
    <li><a href=#introduction-10><span class=secno>9.1 </span>Introduction</a></li>
@@ -56883,7 +56885,8 @@
      <li><code><a href=#the-textarea-element>textarea</a></code> elements that do not have a <code title=attr-textarea-readonly><a href=#attr-textarea-readonly>readonly</a></code> attribute, and
      that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a></li>
 
-     <li>elements that are <a href=#editable>editable</a> and are neither
+     <li>elements that are <a href=#editing-host title="editing host">editing
+     hosts</a> or <a href=#editable>editable</a> and are neither
      <code><a href=#the-input-element>input</a></code> elemenst nor <code><a href=#the-textarea-element>textarea</a></code>
      elements</li>
 
@@ -71796,8 +71799,11 @@
 
 
 
-  <h3 id=contenteditable><span class=secno>8.5 </span>The <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute</h3>
+  <h3 id=editing-0><span class=secno>8.5 </span>Editing</h3>
 
+  <h4 id=contenteditable><span class=secno>8.5.1 </span>Making document regions editable: The <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> content
+  attribute</h4>
+
   <p>The <dfn id=attr-contenteditable title=attr-contenteditable><code>contenteditable</code></dfn>
   attribute is an <a href=#enumerated-attribute>enumerated attribute</a> whose keywords are
   the empty string, <code title="">true</code>, and <code title="">false</code>. The empty string and the <code title="">true</code> keyword map to the <i>true</i> state. The <code title="">false</code> keyword maps to the <i>false</i> state. In
@@ -71810,31 +71816,6 @@
   parent is. The <i>false</i> state indicates that the element is not
   editable.</p>
 
-  <div class=impl>
-
-  <p>Specifically, if an <a href=#html-elements title="HTML elements">HTML
-  element</a> has a <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the true state, or it has its <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the inherit state and if its nearest ancestor <a href=#html-elements title="HTML
-  elements">HTML element</a> with the <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  a state other than the inherit state has its attribute set to the
-  true state, or if it and its ancestors all have their <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the inherit state but the <code><a href=#document>Document</a></code> has <code title=dom-document-designMode><a href=#designMode>designMode</a></code> enabled, then the
-  UA must treat the element as <dfn id=editable>editable</dfn> (as described
-  below).</p>
-
-  <p>Otherwise, either the <a href=#html-elements title="HTML elements">HTML
-  element</a> has a <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the false state, or its <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute is set
-  to the inherit state and its nearest ancestor <a href=#html-elements title="HTML
-  elements">HTML element</a> with the <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  a state other than the inherit state has its attribute set to the
-  false state, or all its ancestors have their <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code> attribute set to
-  the inherit state and the <code><a href=#document>Document</a></code> itself has <code title=dom-document-designMode><a href=#designMode>designMode</a></code> disabled; either
-  way, the element is not editable.</p>
-
-  </div>
-
   <dl class=domintro><dt><var title="">element</var> . <code title=dom-contentEditable><a href=#dom-contenteditable>contentEditable</a></code> [ = <var title="">value</var> ]</dt>
 
    <dd>
@@ -71874,147 +71855,69 @@
   attribute setter must raise a <code><a href=#syntax_err>SYNTAX_ERR</a></code> exception.</p>
 
   <p>The <dfn id=dom-iscontenteditable title=dom-isContentEditable><code>isContentEditable</code></dfn>
-  IDL attribute, on getting, must return true if the element is
-  <a href=#editable>editable</a>, and false otherwise.</p>
+  IDL attribute, on getting, must return true if the element is either
+  an <a href=#editing-host>editing host</a> or <a href=#editable>editable</a>, and false
+  otherwise.</p>
 
-  <p>If an element is <a href=#editable>editable</a> and its parent element is
-  not, or if an element is <a href=#editable>editable</a> and it has no parent
-  element, then the element is an <dfn id=editing-host>editing host</dfn>. Editable
-  elements can be nested. Editing hosts are typically focusable and
-  typically form part of the <a href=#attr-tabindex title=attr-tabindex>tab
-  order</a>. An editing host can contain non-editable sections,
-  these are handled as described below. An editing host can contain
-  non-editable sections that contain further editing hosts.</p>
-
-  <p>When an editing host has focus, it must have a <dfn id=caret-position>caret
-  position</dfn> that specifies where the current editing position is.
-  It may also have a selection.</p>
-
-  <p class=note>How the caret and selection are represented depends
-  entirely on the UA.</p>
-
-  <!-- v2: would be useful to have a way to mark an element as
-  unremovable. -->
-
   </div>
 
 
+  <h4 id=making-entire-documents-editable:-the-designmode-idl-attribute><span class=secno>8.5.2 </span>Making entire documents editable: The <code title=dom-document-designMode><a href=#designMode>designMode</a></code> IDL attribute</h4>
+
   <div class=impl>
 
-  <h4 id=user-editing-actions><span class=secno>8.5.1 </span>User editing actions</h4>
+  <p>Documents have a <dfn id=designMode title=dom-document-designMode><code>designMode</code></dfn>, which
+  can be either enabled or disabled.</p>
 
-  <p>There are several actions that the user agent should allow the
-  user to perform while the user is interacting with an editing
-  host. How exactly each action is triggered is not defined for every
-  action, but when it is not defined, suggested key bindings are
-  provided to guide implementors.</p>
+  </div>
 
-  <dl><dt>Move the caret</dt>
+  <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-designMode><a href=#designMode>designMode</a></code> [ = <var title="">value</var> ]</dt>
 
-   <dd><p>User agents must allow users to move the caret to any
-   position within an editing host, even into nested editable
-   elements. This could be triggered as the default action of <code title=event-keydown>keydown</code> events with various key
-   identifiers and as the default action of <code title=event-mousedown>mousedown</code> events.</dd>
+   <dd>
 
+    <p>Returns "<code title="">on</code>" if the document is editable,
+    and "<code title="">off</code>" if it isn't.</p>
 
-   <dt>Change the selection</dt>
+    <p>Can be set, to change the document's current state.</p>
 
-   <dd><p>User agents must allow users to change the selection within
-   an editing host, even into nested editable elements. User agents
-   may prevent selections from being made in ways that cross from
-   editable elements into non-editable elements (e.g. by making each
-   non-editable descendant atomically selectable, but not allowing
-   text selection within them). This could be triggered as the default
-   action of <code title=event-keydown>keydown</code> events with
-   various key identifiers and as the default action of <code title=event-mousedown>mousedown</code> events.</dd>
-
-
-   <dt id=contenteditable-insertText>Insert text</dt>
-
-   <dd><p>This action must be triggered as the default action of a
-   <code title=event-textInput>textInput</code> event, and may be
-   triggered by other commands as well. It must cause the user agent
-   to insert the specified text (given by the event object's <code title="">data</code> attribute in the case of the <code title=event-textInput>textInput</code> event) at the caret.</p>
-
-   <p>If the caret is positioned somewhere where <a href=#phrasing-content>phrasing
-   content</a> is not allowed (e.g. inside an empty <code><a href=#the-ol-element>ol</a></code>
-   element), then the user agent must not insert the text directly at
-   the caret position. In such cases the behavior is UA-dependent,
-   but user agents must not, in response to a request to insert text,
-   generate a DOM that is less conformant than the DOM prior to the
-   request.</p>
-
-   <p>User agents should allow users to insert new paragraphs into
-   elements that contains only content other than paragraphs.</p>
-
-   <div class=example>
-    <p>For example, given the markup:</p>
-    <pre><section>
- <dl>
-  <dt> Ben </dt>
-  <dd> Goat </dd>
- </dl>
-</section></pre>
-    <p>...the user agent should allow the user to insert
-    <code><a href=#the-p-element>p</a></code> elements before and after the <code><a href=#the-dl-element>dl</a></code>
-    element, as children of the <code><a href=#the-section-element>section</a></code> element.</p>
-   </div>
-
    </dd>
 
+  </dl><div class=impl>
 
-   <dt id=contenteditable-breakBlock>Break block</dt>
+  <p>The <code title=dom-document-designMode><a href=#designMode>designMode</a></code> IDL
+  attribute on the <code><a href=#document>Document</a></code> object takes two values,
+  "<code title="">on</code>" and "<code title="">off</code>". When it
+  is set, the new value must be compared in an <a href=#ascii-case-insensitive>ASCII
+  case-insensitive</a> manner to these two values. If it matches
+  the "<code title="">on</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be enabled,
+  and if it matches the "<code title="">off</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be
+  disabled. Other values must be ignored.</p>
 
-   <dd><p>UAs should offer a way for the user to request that the
-   current paragraph be broken at the caret, e.g. as the default
-   action of a <code title=event-keydown>keydown</code> event whose
-   identifier is the "Enter" key and that has no modifiers set.</p>
+  <p>When <code title=dom-document-designMode><a href=#designMode>designMode</a></code> is
+  enabled, the IDL attribute must return the value "<code title="">on</code>", and when it is disabled, it must return the
+  value "<code title="">off</code>".</p>
 
-   <p>The exact behavior is UA-dependent, but user agents must not,
-   in response to a request to break a paragraph, generate a DOM that
-   is less conformant than the DOM prior to the request.</dd>
+  <p>The last state set must persist until the document is destroyed
+  or the state is changed. Initially, documents must have their <code title=dom-document-designMode><a href=#designMode>designMode</a></code> disabled.</p>
 
+  </div>
 
-   <dt id=contenteditable-br>Insert a line separator</dt>
 
-   <dd><p>UAs should offer a way for the user to request an explicit
-   line break at the caret position without breaking the paragraph,
-   e.g. as the default action of a <code title=event-keydown>keydown</code> event whose identifier is the
-   "Enter" key and that has a shift modifier set. Line separators are
-   typically found within a poem verse or an address. To insert a line
-   break, the user agent must insert a <code><a href=#the-br-element>br</a></code> element.</p>
 
-   <p>If the caret is positioned somewhere where <a href=#phrasing-content>phrasing
-   content</a> is not allowed (e.g. in an empty <code><a href=#the-ol-element>ol</a></code>
-   element), then the user agent must not insert the <code><a href=#the-br-element>br</a></code>
-   element directly at the caret position. In such cases the behavior
-   is UA-dependent, but user agents must not, in response to a request
-   to insert a line separator, generate a DOM that is less conformant
-   than the DOM prior to the request.</dd>
+  <div class=impl>
 
+  <h4 id=user-editing-actions><span class=secno>8.5.3 </span>User editing actions</h4>
 
-   <dt id=contenteditable-delete>Delete</dt>
+  <p class=XXX>This section will be removed shortly. What remains
+  here is simply what has not yet been merged into Aryeh's spec.</p>
 
-   <dd><p>UAs should offer a way for the user to delete text and
-   elements, including non-editable descendants, e.g. as the default
-   action of <code title=event-keydown>keydown</code> events whose
-   identifiers are "U+0008" or "U+007F".</p>
+  <p>There are several actions that the user agent should allow the
+  user to perform while the user is interacting with an editing
+  host. How exactly each action is triggered is not defined for every
+  action, but when it is not defined, suggested key bindings are
+  provided to guide implementors.</p>
 
-   <p>Five edge cases in particular need to be considered carefully
-   when implementing this feature: backspacing at the start of an
-   element, backspacing when the caret is immediately after an
-   element, forward-deleting at the end of an element,
-   forward-deleting when the caret is immediately before an element,
-   and deleting a selection whose start and end points do not share a
-   common parent node.</p>
-
-   <p>In any case, the exact behavior is UA-dependent, but user
-   agents must not, in response to a request to delete text or an
-   element, generate a DOM that is less conformant than the DOM prior
-   to the request.</dd>
-
-
-   <dt id=contenteditable-wrapSemantic>Insert, and wrap text in,
+  <dl><dt id=contenteditable-wrapSemantic>Insert, and wrap text in,
    semantic elements</dt>
 
    <dd><p>UAs should offer the user the ability to mark text and
@@ -72071,69 +71974,44 @@
    attribute. (Updating the <code title="">default*</code> IDL
    attributes causes content attributes to be updated as well.)</dd>
 
-  </dl><p>User agents may perform several commands per user request; for
-  example if the user selects a block of text and hits
-  <kbd><kbd>Enter</kbd></kbd>, the UA might interpret that as a
-  request to delete the content of the selection followed by a request
-  to break the paragraph at that position.</p>
+  </dl><p>User agents may add DOM changes to the <a href=#undo-transaction-history>undo transaction
+  history</a> of the <a href=#editing-host>editing host</a>'s
+  <code><a href=#document>Document</a></code> object each time an action is triggered.</p>
 
-  <p>User agents may add <span>DOM changes</span> entries to the
-  <span>undo transaction history</span> of the <a href=#editing-host>editing
-  host</a>'s <code><a href=#document>Document</a></code> object each time an action is
-  triggered.</p>
-
-  <p>All of the actions defined above, whether triggered by the user
-  or programmatically (e.g. by <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> commands),
-  must fire mutation events as appropriate.</p>
-
   </div>
 
 
+  <h4 id=editing-apis><span class=secno>8.5.4 </span>Editing APIs</h4>
 
-  <h4 id=making-entire-documents-editable><span class=secno>8.5.2 </span>Making entire documents editable</h4>
+  <p>The definition of the terms <dfn id=active-range>active range</dfn>, <dfn id=editing-host>editing
+  host</dfn>, and <dfn id=editable>editable</dfn>, the user interface requirements
+  of elements that are <a href=#editing-host title="editing host">editing hosts</a>
+  or <a href=#editable>editable</a>, and the
 
-  <div class=impl>
+  <dfn id=execCommand title=dom-document-execCommand><code>execCommand()</code></dfn>,
+  <dfn id=dom-document-querycommandenabled title=dom-document-queryCommandEnabled><code>queryCommandEnabled()</code></dfn>,
+  <dfn id=dom-document-querycommandindeterm title=dom-document-queryCommandIndeterm><code>queryCommandIndeterm()</code></dfn>,
+  <dfn id=dom-document-querycommandstate title=dom-document-queryCommandState><code>queryCommandState()</code></dfn>,
+  <dfn id=dom-document-querycommandsupported title=dom-document-queryCommandSupported><code>queryCommandSupported()</code></dfn>, and
+  <dfn id=dom-document-querycommandvalue title=dom-document-queryCommandValue><code>queryCommandValue()</code></dfn>
 
-  <p>Documents have a <dfn id=designMode title=dom-document-designMode><code>designMode</code></dfn>, which
-  can be either enabled or disabled.</p>
+  methods are defined in the HTML Editing APIs specification. Text
+  selections are defined in the DOM Range specification. The
+  interaction of editing and the undo/redo features in user agents is
+  defined by the UndoManager and DOM Transaction specification. <a href=#refsEDITING>[EDITING]</a> <a href=#refsDOMRANGE>[DOMRANGE]</a> <a href=#refsUNDO>[UNDO]</a></p>
 
-  </div>
+  <p class=XXX>Need to decide what to do with the <dfn id=formatblock-candidate><code title="">formatBlock</code> candidate</dfn> category.</p>
 
-  <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-designMode><a href=#designMode>designMode</a></code> [ = <var title="">value</var> ]</dt>
+  <p class=XXX><dfn id=undo-transaction-history>undo transaction history</dfn> is currently
+  defined in <a href=#refsUNDO>[UNDO]</a> but this spec hasn't been
+  updated to make sense with the new definition</p>
 
-   <dd>
+  <!-- those might get merged in here eventually -->
 
-    <p>Returns "<code title="">on</code>" if the document is editable,
-    and "<code title="">off</code>" if it isn't.</p>
 
-    <p>Can be set, to change the document's current state.</p>
 
-   </dd>
+  <h4 id=spelling-and-grammar-checking><span class=secno>8.5.5 </span>Spelling and grammar checking</h4>
 
-  </dl><div class=impl>
-
-  <p>The <code title=dom-document-designMode><a href=#designMode>designMode</a></code> IDL
-  attribute on the <code><a href=#document>Document</a></code> object takes two values,
-  "<code title="">on</code>" and "<code title="">off</code>". When it
-  is set, the new value must be compared in an <a href=#ascii-case-insensitive>ASCII
-  case-insensitive</a> manner to these two values. If it matches
-  the "<code title="">on</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be enabled,
-  and if it matches the "<code title="">off</code>" value, then <code title=dom-document-designMode><a href=#designMode>designMode</a></code> must be
-  disabled. Other values must be ignored.</p>
-
-  <p>When <code title=dom-document-designMode><a href=#designMode>designMode</a></code> is
-  enabled, the IDL attribute must return the value "<code title="">on</code>", and when it is disabled, it must return the
-  value "<code title="">off</code>".</p>
-
-  <p>The last state set must persist until the document is destroyed
-  or the state is changed. Initially, documents must have their <code title=dom-document-designMode><a href=#designMode>designMode</a></code> disabled.</p>
-
-  </div>
-
-
-
-  <h3 id=spelling-and-grammar-checking><span class=secno>8.6 </span>Spelling and grammar checking</h3>
-
   <div class=impl>
 
   <p>User agents can support the checking of spelling and grammar of
@@ -72228,7 +72106,8 @@
    that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>.</li>
 
    <li>Text in <a href=#text-node title="text node">text nodes</a> that are
-   children of <a href=#editable>editable</a> elements.</li>
+   children of <a href=#editing-host title="editing host">editing hosts</a> or
+   <a href=#editable>editable</a> elements.</li>
 
    <li>Text in attributes of <a href=#editable>editable</a> elements.</li>
 
@@ -72324,7 +72203,7 @@
   the checking is enabled, or could use other interfaces.</p>
 
 
-  <h3 id=dnd><span class=secno>8.7 </span><dfn>Drag and drop</dfn></h3>
+  <h3 id=dnd><span class=secno>8.6 </span><dfn>Drag and drop</dfn></h3>
 
 <!-- v2: ideas for drag and drop:
 
@@ -72426,7 +72305,7 @@
   </div>
 
 
-  <h4 id=introduction-9><span class=secno>8.7.1 </span>Introduction</h4>
+  <h4 id=introduction-9><span class=secno>8.6.1 </span>Introduction</h4>
 
   <p><i>This section is non-normative.</i></p>
 
@@ -72529,7 +72408,7 @@
 
 
 
-  <h4 id=the-drag-data-store><span class=secno>8.7.2 </span>The drag data store</h4>
+  <h4 id=the-drag-data-store><span class=secno>8.6.2 </span>The drag data store</h4>
 
   <p>The data that underlies a drag-and-drop operation, known as the
   <dfn id=drag-data-store>drag data store</dfn>, consists of the following information:</p>
@@ -72674,7 +72553,7 @@
   store allowed effects state</a> is the string "<code title="">uninitialized</code>".</p>
 
 
-  <h4 id=the-datatransfer-interface><span class=secno>8.7.3 </span>The <code><a href=#datatransfer>DataTransfer</a></code> interface</h4>
+  <h4 id=the-datatransfer-interface><span class=secno>8.6.3 </span>The <code><a href=#datatransfer>DataTransfer</a></code> interface</h4>
 
   <p><code><a href=#datatransfer>DataTransfer</a></code> objects are used to expose the
   <a href=#drag-data-store>drag data store</a> that underlies a drag-and-drop
@@ -73051,7 +72930,7 @@
   </div>
 
 
-  <h5 id=the-datatransferitemlist-interface><span class=secno>8.7.3.1 </span>The <code><a href=#datatransferitemlist>DataTransferItemList</a></code> interface</h5>
+  <h5 id=the-datatransferitemlist-interface><span class=secno>8.6.3.1 </span>The <code><a href=#datatransferitemlist>DataTransferItemList</a></code> interface</h5>
 
   <p>Each <code><a href=#datatransfer>DataTransfer</a></code> object is associated with a
   <code><a href=#datatransferitemlist>DataTransferItemList</a></code> object.</p>
@@ -73260,7 +73139,7 @@
   </ol></div>
 
 
-  <h5 id=the-datatransferitem-interface><span class=secno>8.7.3.2 </span>The <code><a href=#datatransferitem>DataTransferItem</a></code> interface</h5>
+  <h5 id=the-datatransferitem-interface><span class=secno>8.6.3.2 </span>The <code><a href=#datatransferitem>DataTransferItem</a></code> interface</h5>
 
   <p>Each <code><a href=#datatransferitem>DataTransferItem</a></code> object is associated with a
   <code><a href=#datatransfer>DataTransfer</a></code> object.</p>
@@ -73488,7 +73367,7 @@
 
 
 
-  <h4 id=the-dragevent-interface><span class=secno>8.7.4 </span>The <code><a href=#dragevent>DragEvent</a></code> interface</h4>
+  <h4 id=the-dragevent-interface><span class=secno>8.6.4 </span>The <code><a href=#dragevent>DragEvent</a></code> interface</h4>
 
   <p>The drag-and-drop processing model involves several events. They
   all use the <code><a href=#dragevent>DragEvent</a></code> interface.</p>
@@ -73615,7 +73494,7 @@
 
   <div class=impl>
 
-  <h4 id=drag-and-drop-processing-model><span class=secno>8.7.5 </span>Drag-and-drop processing model</h4>
+  <h4 id=drag-and-drop-processing-model><span class=secno>8.6.5 </span>Drag-and-drop processing model</h4>
 
   <p>When the user attempts to begin a drag operation, the user agent
   must run the following steps. User agents must act as if these steps
@@ -73874,10 +73753,11 @@
   </ol><p>From the moment that the user agent is to <dfn id=initiate-the-drag-and-drop-operation>initiate the
   drag-and-drop operation</dfn>, until the end of the drag-and-drop
   operation, device input events (e.g. mouse and keyboard events) must
-  be suppressed. In addition, the user agent must track all DOM
-  changes made during the drag-and-drop operation, and add them to its
-  <span>undo transaction history</span> as one atomic operation once
-  the drag-and-drop operation has ended.</p>
+  be suppressed. <span class=XXX>In addition, the user agent must
+  track all DOM changes made during the drag-and-drop operation, and
+  add them to its <a href=#undo-transaction-history>undo transaction history</a> as one atomic
+  operation once the drag-and-drop operation has ended.</span></p>
+  <!-- need to update this to new UndoManager code -->
 
   <p>During the drag operation, the element directly indicated by the
   user as the drop target is called the <dfn id=immediate-user-selection>immediate user
@@ -73971,10 +73851,11 @@
          field (e.g. <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code>
          element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code>
          attribute is in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state) or an
-         <a href=#editable>editable</a> element, and the <a href=#drag-data-store-item-list>drag data store
-         item list</a> has an item with <a href=#the-drag-data-item-type-string>the drag data item
-         type string</a> "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the
-         drag data item kind</a> <i>Plain Unicode string</i></dt>
+         <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element,
+         and the <a href=#drag-data-store-item-list>drag data store item list</a> has an item
+         with <a href=#the-drag-data-item-type-string>the drag data item type string</a>
+         "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data item
+         kind</a> <i>Plain Unicode string</i></dt>
 
          <dd><p>Set the <a href=#current-target-element>current target element</a> to the
          <a href=#immediate-user-selection>immediate user selection</a> anyway.</dd>
@@ -74040,10 +73921,11 @@
        (e.g. <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code> element
        whose <code title=attr-input-type><a href=#attr-input-type>type</a></code> attribute is in
        the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state) or an
-       <a href=#editable>editable</a> element, and the <a href=#drag-data-store-item-list>drag data store
-       item list</a> has an item with <a href=#the-drag-data-item-type-string>the drag data item type
-       string</a> "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data
-       item kind</a> <i>Plain Unicode string</i></dt>
+       <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element, and
+       the <a href=#drag-data-store-item-list>drag data store item list</a> has an item with
+       <a href=#the-drag-data-item-type-string>the drag data item type string</a>
+       "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data item
+       kind</a> <i>Plain Unicode string</i></dt>
 
        <dd><p>Set the <a href=#current-drag-operation>current drag operation</a> to either
        "<code title="">copy</code>" or "<code title="">move</code>",
@@ -74174,19 +74056,20 @@
          field (e.g. <code><a href=#the-textarea-element>textarea</a></code>, or an <code><a href=#the-input-element>input</a></code>
          element whose <code title=attr-input-type><a href=#attr-input-type>type</a></code>
          attribute is in the <a href=#text-state-and-search-state title=attr-input-type-text>Text</a> state) or an
-         <a href=#editable>editable</a> element, and the <a href=#drag-data-store-item-list>drag data store
-         item list</a> has an item with <a href=#the-drag-data-item-type-string>the drag data item
-         type string</a> "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the
-         drag data item kind</a> <i>Plain Unicode string</i></dt>
+         <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element,
+         and the <a href=#drag-data-store-item-list>drag data store item list</a> has an item
+         with <a href=#the-drag-data-item-type-string>the drag data item type string</a>
+         "<code>text/plain</code>" and <a href=#the-drag-data-item-kind>the drag data item
+         kind</a> <i>Plain Unicode string</i></dt>
 
          <dd><p>Insert the actual data of the first item in the
          <a href=#drag-data-store-item-list>drag data store item list</a> to have <a href=#the-drag-data-item-type-string title="the drag data item type string">a drag data item type
          string</a> of "<code>text/plain</code>" and <a href=#the-drag-data-item-kind title="the drag data item kind">a drag data item kind</a>
          that is <i>Plain Unicode string</i> into the text field or
-         <a href=#editable>editable</a> element in a manner consistent with
-         platform-specific conventions (e.g. inserting it at the
-         current mouse cursor position, or inserting it at the end of
-         the field).</dd>
+         <a href=#editing-host>editing host</a> or <a href=#editable>editable</a> element in
+         a manner consistent with platform-specific conventions (e.g.
+         inserting it at the current mouse cursor position, or
+         inserting it at the end of the field).</dd>
 
          <dt>Otherwise</dt>
 
@@ -74257,7 +74140,7 @@
   </div>
 
 
-  <h4 id=dndevents><span class=secno>8.7.6 </span>Events summary</h4>
+  <h4 id=dndevents><span class=secno>8.6.6 </span>Events summary</h4>
 
   <p><i>This section is non-normative.</i></p>
 
@@ -74336,7 +74219,7 @@
 
 
 
-  <h4 id=the-draggable-attribute><span class=secno>8.7.7 </span>The <dfn title=attr-draggable><code>draggable</code></dfn> attribute</h4>
+  <h4 id=the-draggable-attribute><span class=secno>8.6.7 </span>The <dfn title=attr-draggable><code>draggable</code></dfn> attribute</h4>
 
   <p>All <a href=#html-elements>HTML elements</a> may have the <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> content attribute set. The
   <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> attribute is an
@@ -74395,7 +74278,7 @@
   </div>
 
 
-  <h4 id=the-dropzone-attribute><span class=secno>8.7.8 </span>The <dfn title=attr-dropzone><code>dropzone</code></dfn> attribute</h4>
+  <h4 id=the-dropzone-attribute><span class=secno>8.6.8 </span>The <dfn title=attr-dropzone><code>dropzone</code></dfn> attribute</h4>
 
   <p>All <a href=#html-elements>HTML elements</a> may have the <code title=attr-dropzone><a href=#the-dropzone-attribute>dropzone</a></code> content attribute set. When
   specified, its value must be an <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of unique
@@ -74721,7 +74604,7 @@
 
   <div class=impl>
 
-  <h4 id=security-risks-in-the-drag-and-drop-model><span class=secno>8.7.9 </span>Security risks in the drag-and-drop model</h4>
+  <h4 id=security-risks-in-the-drag-and-drop-model><span class=secno>8.6.9 </span>Security risks in the drag-and-drop model</h4>
 
   <p>User agents must not make the data added to the
   <code><a href=#datatransfer>DataTransfer</a></code> object during the <code title=event-dragstart><a href=#event-dragstart>dragstart</a></code> event available to scripts
@@ -74749,7 +74632,7 @@
 
 <!--FIND-->
 
-  <h3 id=text-search-apis><span class=secno>8.8 </span>Text search APIs</h3> <!-- window.find() -->
+  <h3 id=text-search-apis><span class=secno>8.7 </span>Text search APIs</h3> <!-- window.find() -->
 
   <p class=critical>This legacy API is not very interoperably
   implemented, and has a number of design problems (such as having six
@@ -74806,461 +74689,9 @@
 
 
 
-  <h3 id=editing-apis><span class=secno>8.9 </span>Editing APIs</h3>
+<!--PEERCONNECTION-->
+<div data-component="other Hixie drafts (editor: Ian Hickson)">
 
-  <dl class=domintro><dt><var title="">document</var> . <code title=dom-document-execCommand><a href=#execCommand>execCommand</a></code>(<var title="">commandId</var> [, <var title="">showUI</var> [, <var title="">value</var> ] ] )</dt>
-
-   <dd>
-
-    <p>Runs the action specified by the first argument, as described
-    in the list below. The second and third arguments sometimes affect
-    the action. (If they don't they are ignored.)</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandEnabled><a href=#dom-document-querycommandenabled>queryCommandEnabled</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns whether the given command is enabled, as described in the list below.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandIndeterm><a href=#dom-document-querycommandindeterm>queryCommandIndeterm</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns whether the given command is indeterminate, as described in the list below.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandState><a href=#dom-document-querycommandstate>queryCommandState</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns the state of the command, as described in the list below.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandSupported><a href=#dom-document-querycommandsupported>queryCommandSupported</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns true if the command is supported; otherwise, returns false.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title=dom-document-queryCommandValue><a href=#dom-document-querycommandvalue>queryCommandValue</a></code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns the value of the command, as described in the list below.</p>
-
-   </dd>
-
-  </dl><div class=impl>
-
-  <p>The <dfn id=execCommand title=dom-document-execCommand><code>execCommand(<var title="">commandId</var>, <var title="">showUI</var>, <var title="">value</var>)</code></dfn> method on the
-  <code><a href=#htmldocument>HTMLDocument</a></code> interface allows scripts to perform
-  actions on the current selection or at the current caret position.
-  Generally, these commands would be used to implement editor UI, for
-  example having a "delete" button on a toolbar.</p>
-
-  <p>There are three variants to this method, with one, two, and three
-  arguments respectively. The <var title="">showUI</var> and <var title="">value</var> parameters, even if specified, are ignored
-  except where otherwise stated.</p>
-
-  <p>When <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code>
-  is invoked, the user agent must run the following steps:</p>
-
-  <ol><li>If the given <var title="">commandId</var> maps to an entry in
-   the list below whose "Enabled When" entry has a condition that is
-   currently false, do nothing; abort these steps.</li>
-
-   <li>Otherwise, execute the "Action" listed below for the given <var title="">commandId</var>.</li>
-
-  </ol></div>
-
-  <p>A document is <dfn id=ready-for-editing-host-commands>ready for editing host commands</dfn> if it
-  has a selection that is entirely within an <a href=#editing-host>editing
-  host</a>, or if it has no selection but its caret is inside an
-  <a href=#editing-host>editing host</a>.</p>
-
-  <div class=impl>
-
-  <p>The <dfn id=dom-document-querycommandenabled title=dom-document-queryCommandEnabled><code>queryCommandEnabled(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return true if the condition listed below under "Enabled When" for
-  the given <var title="">commandId</var> is true, and false
-  otherwise.</p>
-
-  <p>The <dfn id=dom-document-querycommandindeterm title=dom-document-queryCommandIndeterm><code>queryCommandIndeterm(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return true if the condition listed below under "Indeterminate When"
-  for the given <var title="">commandId</var> is true, and false
-  otherwise.</p>
-
-  <p>The <dfn id=dom-document-querycommandstate title=dom-document-queryCommandState><code>queryCommandState(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return the value expressed below under "State" for the given <var title="">commandId</var>.</p>
-
-  <p>The <dfn id=dom-document-querycommandsupported title=dom-document-queryCommandSupported><code>queryCommandSupported(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return true if the given <var title="">commandId</var> is in the
-  list below, and false otherwise.</p>
-
-  <p>The <dfn id=dom-document-querycommandvalue title=dom-document-queryCommandValue><code>queryCommandValue(<var title="">commandId</var>)</code></dfn> method, when invoked, must
-  return the value expressed below under "Value" for the given <var title="">commandId</var>.</p>
-
-  </div>
-
-  <p>The possible values for <var title="">commandId</var>, and their
-  corresponding meanings, are as follows. <span class=impl>These
-  values must be compared to the argument in an <a href=#ascii-case-insensitive>ASCII
-  case-insensitive</a> manner.</span></p>
-
-  <dl><dt><dfn id=command-bold title=command-bold><code>bold</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is bold.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-b-element>b</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code><a href=#the-b-element>b</a></code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn id=command-createlink title=command-createLink><code>createLink</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is a
-   link or not. If the second argument is true, and a link is to be
-   added, the user agent will ask the user for the address. Otherwise,
-   the third argument will be used as the address.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-a-element>a</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA). If the user agent creates an <code><a href=#the-a-element>a</a></code> element or
-   modifies an existing <code><a href=#the-a-element>a</a></code> element, then if the <var title="">showUI</var> argument is present and has the value false,
-   then the value of the <var title="">value</var> argument must be
-   used as the <a href=#url>URL</a> of the link. Otherwise, the user agent
-   should prompt the user for the URL of the link.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-delete title=command-delete><code>delete</code></dfn></dt>
-   <dd><strong>Summary</strong>: Deletes the selection or the
-   character before the cursor.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had performed <a href=#contenteditable-delete>a backspace
-   operation</a>.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-formatblock title=command-formatBlock><code>formatBlock</code></dfn></dt>
-   <dd><strong>Summary</strong>: Wraps the selection in the element
-   given by the third argument. If the third argument doesn't
-   specify an element that is a <dfn id=formatblock-candidate><code title="">formatBlock</code>
-   candidate</dfn>, does nothing.</dd>
-   <dd class=impl>
-    <p><strong>Action</strong>: The user agent must run the following
-    steps:</p>
-    <ol><li><p>If the <var title="">value</var> argument wasn't
-     specified, abort these steps without doing anything.</li>
-     <li><p>If the <var title="">value</var> argument has a leading
-     U+003C LESS-THAN SIGN character (<) and a trailing U+003E
-     GREATER-THAN SIGN character (>), then remove the first and last
-     characters from <var title="">value</var>.</li>
-     <li>
-      <p>If <var title="">value</var> is (now) an <a href=#ascii-case-insensitive>ASCII
-      case-insensitive</a> match for the tag name of an element
-      defined by this specification that is defined to be a
-      <a href=#formatblock-candidate><code title="">formatBlock</code> candidate</a>, then,
-      for every position in the selection, take the nearest
-      <a href=#formatblock-candidate><code title="">formatBlock</code> candidate</a>
-      ancestor element of that position that contains only
-      <a href=#phrasing-content>phrasing content</a>, and, if that element is
-      <a href=#editable>editable</a>, is not an <a href=#editing-host>editing host</a>, and
-      has a parent element whose content model allows that parent to
-      contain any <a href=#flow-content>flow content</a>, replace it with an
-      element in the HTML namespace whose name is <var title="">value</var>, and move all the children that were in it
-      to the new element, and copy all the attributes that were on it
-      to the new element.</p>
-      <p>If there is no selection, then, where in the description
-      above refers to the selection, the user agent must act as if the
-      selection was an empty range (with just one position) at the
-      caret position.</p>
-     </li>
-    </ol></dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-forwarddelete title=command-forwardDelete><code>forwardDelete</code></dfn></dt>
-   <dd><strong>Summary</strong>: Deletes the selection or the
-   character after the cursor.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had performed <a href=#contenteditable-delete>a forward delete
-   operation</a>.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertimage title=command-insertImage><code>insertImage</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is an
-   image or not. If the second argument is true, and an image is to be
-   added, the user agent will ask the user for the address. Otherwise,
-   the third argument will be used as the address.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act
-   as if the user had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-img-element>img</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA). If the user agent creates an <code><a href=#the-img-element>img</a></code> element or
-   modifies an existing <code><a href=#the-img-element>img</a></code> element, then if the <var title="">showUI</var> argument is present and has the value false,
-   then the value of the <var title="">value</var> argument must be
-   used as the <a href=#url>URL</a> of the image. Otherwise, the user
-   agent should prompt the user for the URL of the image.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-inserthtml title=command-insertHTML><code>insertHTML</code></dfn></dt>
-   <dd><strong>Summary</strong>: Replaces the selection with the value
-   of the third argument parsed as HTML.</dd>
-   <dd class=impl>
-    <p><strong>Action</strong>: The user agent must run the following
-    steps:</p>
-    <ol><li><p>If the document is an <a href=#xml-documents title="XML documents">XML
-     document</a>, then throw an <code><a href=#invalid_access_err>INVALID_ACCESS_ERR</a></code>
-     exception and abort these steps.</li><!-- v2 support XML? -->
-     <li><p>If the <var title="">value</var> argument wasn't
-     specified, abort these steps without doing anything.</li>
-     <li><p>If there is a selection, act as if the user had requested
-     that <a href=#contenteditable-delete>the selection be
-     deleted</a>.</li>
-     <li><p>Invoke the <a href=#html-fragment-parsing-algorithm>HTML fragment parsing algorithm</a>
-     with an arbitrary orphan <code><a href=#the-body-element>body</a></code> element owned by the
-     same <code><a href=#document>Document</a></code> as the <i title="">context</i> element
-     and with the <var title="">value</var> argument as <i title="">input</i>.</li>
-     <li><p>Insert the nodes returned by the previous step into the
-     document at the location of the caret, firing any mutation events
-     as appropriate.</li>
-    </ol></dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertlinebreak title=command-insertLineBreak><code>insertLineBreak</code></dfn></dt>
-   <dd><strong>Summary</strong>: Inserts a line break.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had <a href=#contenteditable-br>requested a line
-   separator</a>.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertorderedlist title=command-insertOrderedList><code>insertOrderedList</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is an ordered list.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <code><a href=#the-ol-element>ol</a></code> element (or unwrapped, or, if
-   there is no selection, have that semantic inserted or removed
-   — the exact behavior is UA-defined).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertunorderedlist title=command-insertUnorderedList><code>insertUnorderedList</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is an unordered list.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <code><a href=#the-ul-element>ul</a></code> element (or unwrapped, or, if
-   there is no selection, have that semantic inserted or removed
-   — the exact behavior is UA-defined).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-insertparagraph title=command-insertParagraph><code>insertParagraph</code></dfn></dt>
-   <dd><strong>Summary</strong>: Inserts a paragraph break.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had performed a <a href=#contenteditable-breakBlock>break
-   block</a> editing action.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-inserttext title=command-insertText><code>insertText</code></dfn></dt>
-   <dd><strong>Summary</strong>: Inserts the text given in the third parameter.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had <a href=#contenteditable-insertText>inserted text</a>
-   corresponding to the <var title="">value</var> parameter.</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-italic title=command-italic><code>italic</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is italic.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-i-element>i</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code><a href=#the-i-element>i</a></code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn id=command-redo title=command-redo><code>redo</code></dfn></dt>
-   <dd><strong>Summary</strong>: Acts as if the user had requested a redo.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must <span title=do-redo>move forward one step</span> in its <span>undo
-   transaction history</span>, restoring the associated state. If the
-   <span>undo position</span> is at the end of the <span>undo
-   transaction history</span>, the user agent must do nothing.
-   </dd>
-   <dd><strong>Enabled When</strong>: The <span>undo position</span>
-   is not at the end of the <span>undo transaction
-   history</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-selectall title=command-selectAll><code>selectAll</code></dfn></dt>
-   <dd><strong>Summary</strong>: Selects all the editable content.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must change the
-   selection so that all the content in the currently focused
-   <a href=#editing-host>editing host</a> is selected. If no <a href=#editing-host>editing
-   host</a> is focused, then the content of the entire document
-   must be selected.</dd>
-   <dd><strong>Enabled When</strong>: Always.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-subscript title=command-subscript><code>subscript</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is subscripted.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <em><code><a href=#the-sub-and-sup-elements>sub</a></code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code><a href=#the-sub-and-sup-elements>sub</a></code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn id=command-superscript title=command-superscript><code>superscript</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is superscripted.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a href=#contenteditable-wrapSemantic>be wrapped in the
-   semantics</a> of the <code><a href=#the-sub-and-sup-elements>sup</a></code> element (or unwrapped, or, if
-   there is no selection, have that semantic inserted or removed
-   — the exact behavior is UA-defined).</dd>
-   <dd><strong>Enabled When</strong>: The document is <a href=#ready-for-editing-host-commands>ready for
-   editing host commands</a>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code><a href=#the-sub-and-sup-elements>sup</a></code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn id=command-undo title=command-undo><code>undo</code></dfn></dt>
-   <dd><strong>Summary</strong>: Acts as if the user had requested an undo.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must <span title=do-undo>move back one step</span> in its <span>undo
-   transaction history</span>, restoring the associated state. If the
-   <span>undo position</span> is at the start of the <span>undo
-   transaction history</span>, the user agent must do nothing.
-   </dd>
-   <dd><strong>Enabled When</strong>: The <span>undo position</span>
-   is not at the start of the <span>undo transaction
-   history</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-unlink title=command-unlink><code>unlink</code></dfn></dt>
-   <dd><strong>Summary</strong>: Removes all links from the selection.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must remove all
-   <code><a href=#the-a-element>a</a></code> elements that have <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attributes and that are partially
-   or completely included in the current selection.</dd>
-   <dd><strong>Enabled When</strong>: The document has a selection
-   that is entirely within an <a href=#editing-host>editing host</a> and that
-   contains (either partially or completely) at least one
-   <code><a href=#the-a-element>a</a></code> element that has an <code title=attr-hyperlink-href><a href=#attr-hyperlink-href>href</a></code> attribute.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn id=command-unselect title=command-unselect><code>unselect</code></dfn></dt>
-   <dd><strong>Summary</strong>: Unselects everything.</dd>
-   <dd class=impl><strong>Action</strong>: The user agent must change the
-   selection so that nothing is selected.</dd>
-   <dd><strong>Enabled When</strong>: Always.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt class=impl><code><var title="">vendorID</var>-<var title="">customCommandID</var></code></dt>
-   <dd class=impl><strong>Action</strong>: User agents may implement
-   vendor-specific extensions to this API. Vendor-specific extensions
-   to the list of commands should use the syntax <code><var title="">vendorID</var>-<var title="">customCommandID</var></code>
-   so as to prevent clashes between extensions from different vendors
-   and future additions to this specification.</dd>
-   <dd class=impl><strong>Enabled When</strong>: UA-defined.</dd>
-   <dd class=impl><strong>Indeterminate When</strong>: UA-defined.</dd>
-   <dd class=impl><strong>State</strong>: UA-defined.</dd>
-   <dd class=impl><strong>Value</strong>: UA-defined.</dd>
-
-   <dt class=impl>Anything else</dt>
-   <dd class=impl><strong>Action</strong>: User agents must do nothing.</dd>
-   <dd class=impl><strong>Enabled When</strong>: Never.</dd>
-   <dd class=impl><strong>Indeterminate When</strong>: Never.</dd>
-   <dd class=impl><strong>State</strong>: Always false.</dd>
-   <dd class=impl><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-  </dl><!--
-v2 (well, really v0):
- "forecolor", "hilitecolor", "fontname", "fontsize", "justifyleft",
- "justifycenter", "justifyright", "justifyfull", "indent", "outdent"
---><!--PEERCONNECTION--><div data-component="other Hixie drafts (editor: Ian Hickson)">
-
   <h2 id=video-conferencing-and-peer-to-peer-communication><span class=secno>9 </span>Video conferencing and peer-to-peer communication</h2>
 
   <h3 id=introduction-10><span class=secno>9.1 </span>Introduction</h3>
@@ -91255,11 +90686,11 @@
 
   <h4 id=editing-hosts><span class=secno>13.7.3 </span>Editing hosts</h4>
 
-  <p>The current text editing caret (the one at the <a href=#caret-position>caret
-  position</a> in a focused <a href=#editing-host>editing host</a>) is expected
-  to act like an inline replaced element with the vertical dimensions
-  of the caret and with zero width for the purposes of the CSS
-  rendering model.</p>
+  <p>The current text editing caret (i.e. the <a href=#active-range>active
+  range</a>, if it is empty and in an <a href=#editing-host>editing host</a>),
+  if any, is expected to act like an inline replaced element with the
+  vertical dimensions of the caret and with zero width for the
+  purposes of the CSS rendering model.</p>
 
   <p class=note>This means that even an empty block can have the
   caret inside it, and that when the caret is in such an element, it
@@ -95289,7 +94720,7 @@
      <td> <a href=#attribute-text>Text</a>*
     <tr><th> <code title="">contenteditable</code>
      <td> <a href=#attr-contenteditable title=attr-contenteditable>HTML elements</a>
-     <td> Whether the element is <a href=#editable>editable</a>
+     <td> Whether the element is an editable
      <td> "<code title="">true</code>"; "<code title="">false</code>"
     <tr><th> <code title="">contextmenu</code>
      <td> <a href=#attr-contextmenu title=attr-contextmenu>HTML elements</a>
@@ -96930,6 +96361,9 @@
    <dd><cite><a href=http://www.ecma-international.org/publications/standards/Ecma-262.htm>ECMAScript
    Language Specification</a></cite>. ECMA.</dd>
 
+   <dt id=refsEDITING>[EDITING]</dt>
+   <dd><cite><a href=http://aryeh.name/spec/editing/editing.html>HTML Editing APIs</a></cite>, A. Gregor.</dd>
+
    <dt id=refsECMA357>[ECMA357]</dt>
    <dd>(Non-normative) <cite><a href=http://www.ecma-international.org/publications/standards/Ecma-357.htm>ECMAScript
    for XML (E4X) Specification</a></cite>. ECMA.</dd>
@@ -97330,6 +96764,9 @@
    Guidelines (UAAG) 2.0</a></cite>, J. Allan, K. Ford, J. Richards,
    J. Spellman. W3C.</dd>
 
+   <dt id=refsUNDO>[UNDO]</dt>
+   <dd><cite><a href=http://rniwa.com/editing/undomanager.html>UndoManager and DOM Transaction</a></cite>, R. Niwa.</dd>
+
    <dt id=refsUNICODE>[UNICODE]</dt>
    <dd><cite><a href=http://www.unicode.org/versions/>The Unicode Standard</a></cite>. Unicode Consortium.</dd>
 

Modified: source
===================================================================
--- source	2011-08-25 23:13:05 UTC (rev 6527)
+++ source	2011-08-26 00:43:00 UTC (rev 6528)
@@ -64303,7 +64303,8 @@
      that are not <span
      title="concept-fe-disabled">disabled</span></li>
 
-     <li>elements that are <span>editable</span> and are neither
+     <li>elements that are <span title="editing host">editing
+     hosts</span> or <span>editable</span> and are neither
      <code>input</code> elemenst nor <code>textarea</code>
      elements</li>
 
@@ -81833,9 +81834,12 @@
 
 
 
-  <h3 id="contenteditable">The <code
-  title="attr-contenteditable">contenteditable</code> attribute</h3>
+  <h3>Editing</h3>
 
+  <h4 id="contenteditable">Making document regions editable: The <code
+  title="attr-contenteditable">contenteditable</code> content
+  attribute</h4>
+
   <p>The <dfn
   title="attr-contenteditable"><code>contenteditable</code></dfn>
   attribute is an <span>enumerated attribute</span> whose keywords are
@@ -81852,41 +81856,6 @@
   parent is. The <i>false</i> state indicates that the element is not
   editable.</p>
 
-  <div class="impl">
-
-  <p>Specifically, if an <span title="HTML elements">HTML
-  element</span> has a <code
-  title="attr-contenteditable">contenteditable</code> attribute set to
-  the true state, or it has its <code
-  title="attr-contenteditable">contenteditable</code> attribute set to
-  the inherit state and if its nearest ancestor <span title="HTML
-  elements">HTML element</span> with the <code
-  title="attr-contenteditable">contenteditable</code> attribute set to
-  a state other than the inherit state has its attribute set to the
-  true state, or if it and its ancestors all have their <code
-  title="attr-contenteditable">contenteditable</code> attribute set to
-  the inherit state but the <code>Document</code> has <code
-  title="dom-document-designMode">designMode</code> enabled, then the
-  UA must treat the element as <dfn>editable</dfn> (as described
-  below).</p>
-
-  <p>Otherwise, either the <span title="HTML elements">HTML
-  element</span> has a <code
-  title="attr-contenteditable">contenteditable</code> attribute set to
-  the false state, or its <code
-  title="attr-contenteditable">contenteditable</code> attribute is set
-  to the inherit state and its nearest ancestor <span title="HTML
-  elements">HTML element</span> with the <code
-  title="attr-contenteditable">contenteditable</code> attribute set to
-  a state other than the inherit state has its attribute set to the
-  false state, or all its ancestors have their <code
-  title="attr-contenteditable">contenteditable</code> attribute set to
-  the inherit state and the <code>Document</code> itself has <code
-  title="dom-document-designMode">designMode</code> disabled; either
-  way, the element is not editable.</p>
-
-  </div>
-
   <dl class="domintro">
 
    <dt><var title="">element</var> . <code title="dom-contentEditable">contentEditable</code> [ = <var title="">value</var> ]</dt>
@@ -81936,154 +81905,80 @@
 
   <p>The <dfn
   title="dom-isContentEditable"><code>isContentEditable</code></dfn>
-  IDL attribute, on getting, must return true if the element is
-  <span>editable</span>, and false otherwise.</p>
+  IDL attribute, on getting, must return true if the element is either
+  an <span>editing host</span> or <span>editable</span>, and false
+  otherwise.</p>
 
-  <p>If an element is <span>editable</span> and its parent element is
-  not, or if an element is <span>editable</span> and it has no parent
-  element, then the element is an <dfn>editing host</dfn>. Editable
-  elements can be nested. Editing hosts are typically focusable and
-  typically form part of the <span title="attr-tabindex">tab
-  order</span>. An editing host can contain non-editable sections,
-  these are handled as described below. An editing host can contain
-  non-editable sections that contain further editing hosts.</p>
-
-  <p>When an editing host has focus, it must have a <dfn>caret
-  position</dfn> that specifies where the current editing position is.
-  It may also have a selection.</p>
-
-  <p class="note">How the caret and selection are represented depends
-  entirely on the UA.</p>
-
-  <!-- v2: would be useful to have a way to mark an element as
-  unremovable. -->
-
   </div>
 
 
+  <h4>Making entire documents editable: The <code
+  title="dom-document-designMode">designMode</code> IDL attribute</h4>
+
   <div class="impl">
 
-  <h4>User editing actions</h4>
+  <p>Documents have a <dfn id="designMode"
+  title="dom-document-designMode"><code>designMode</code></dfn>, which
+  can be either enabled or disabled.</p>
 
-  <p>There are several actions that the user agent should allow the
-  user to perform while the user is interacting with an editing
-  host. How exactly each action is triggered is not defined for every
-  action, but when it is not defined, suggested key bindings are
-  provided to guide implementors.</p>
+  </div>
 
-  <dl>
+  <dl class="domintro">
 
-   <dt>Move the caret</dt>
+   <dt><var title="">document</var> . <code title="dom-document-designMode">designMode</code> [ = <var title="">value</var> ]</dt>
 
-   <dd><p>User agents must allow users to move the caret to any
-   position within an editing host, even into nested editable
-   elements. This could be triggered as the default action of <code
-   title="event-keydown">keydown</code> events with various key
-   identifiers and as the default action of <code
-   title="event-mousedown">mousedown</code> events.</p></dd>
+   <dd>
 
+    <p>Returns "<code title="">on</code>" if the document is editable,
+    and "<code title="">off</code>" if it isn't.</p>
 
-   <dt>Change the selection</dt>
+    <p>Can be set, to change the document's current state.</p>
 
-   <dd><p>User agents must allow users to change the selection within
-   an editing host, even into nested editable elements. User agents
-   may prevent selections from being made in ways that cross from
-   editable elements into non-editable elements (e.g. by making each
-   non-editable descendant atomically selectable, but not allowing
-   text selection within them). This could be triggered as the default
-   action of <code title="event-keydown">keydown</code> events with
-   various key identifiers and as the default action of <code
-   title="event-mousedown">mousedown</code> events.</p></dd>
-
-
-   <dt id="contenteditable-insertText">Insert text</dt>
-
-   <dd><p>This action must be triggered as the default action of a
-   <code title="event-textInput">textInput</code> event, and may be
-   triggered by other commands as well. It must cause the user agent
-   to insert the specified text (given by the event object's <code
-   title="">data</code> attribute in the case of the <code
-   title="event-textInput">textInput</code> event) at the caret.</p>
-
-   <p>If the caret is positioned somewhere where <span>phrasing
-   content</span> is not allowed (e.g. inside an empty <code>ol</code>
-   element), then the user agent must not insert the text directly at
-   the caret position. In such cases the behavior is UA-dependent,
-   but user agents must not, in response to a request to insert text,
-   generate a DOM that is less conformant than the DOM prior to the
-   request.</p>
-
-   <p>User agents should allow users to insert new paragraphs into
-   elements that contains only content other than paragraphs.</p>
-
-   <div class="example">
-    <p>For example, given the markup:</p>
-    <pre><section>
- <dl>
-  <dt> Ben </dt>
-  <dd> Goat </dd>
- </dl>
-</section></pre>
-    <p>...the user agent should allow the user to insert
-    <code>p</code> elements before and after the <code>dl</code>
-    element, as children of the <code>section</code> element.</p>
-   </div>
-
    </dd>
 
+  </dl>
 
-   <dt id="contenteditable-breakBlock">Break block</dt>
+  <div class="impl">
 
-   <dd><p>UAs should offer a way for the user to request that the
-   current paragraph be broken at the caret, e.g. as the default
-   action of a <code title="event-keydown">keydown</code> event whose
-   identifier is the "Enter" key and that has no modifiers set.</p>
+  <p>The <code title="dom-document-designMode">designMode</code> IDL
+  attribute on the <code>Document</code> object takes two values,
+  "<code title="">on</code>" and "<code title="">off</code>". When it
+  is set, the new value must be compared in an <span>ASCII
+  case-insensitive</span> manner to these two values. If it matches
+  the "<code title="">on</code>" value, then <code
+  title="dom-document-designMode">designMode</code> must be enabled,
+  and if it matches the "<code title="">off</code>" value, then <code
+  title="dom-document-designMode">designMode</code> must be
+  disabled. Other values must be ignored.</p>
 
-   <p>The exact behavior is UA-dependent, but user agents must not,
-   in response to a request to break a paragraph, generate a DOM that
-   is less conformant than the DOM prior to the request.</p></dd>
+  <p>When <code title="dom-document-designMode">designMode</code> is
+  enabled, the IDL attribute must return the value "<code
+  title="">on</code>", and when it is disabled, it must return the
+  value "<code title="">off</code>".</p>
 
+  <p>The last state set must persist until the document is destroyed
+  or the state is changed. Initially, documents must have their <code
+  title="dom-document-designMode">designMode</code> disabled.</p>
 
-   <dt id="contenteditable-br">Insert a line separator</dt>
+  </div>
 
-   <dd><p>UAs should offer a way for the user to request an explicit
-   line break at the caret position without breaking the paragraph,
-   e.g. as the default action of a <code
-   title="event-keydown">keydown</code> event whose identifier is the
-   "Enter" key and that has a shift modifier set. Line separators are
-   typically found within a poem verse or an address. To insert a line
-   break, the user agent must insert a <code>br</code> element.</p>
 
-   <p>If the caret is positioned somewhere where <span>phrasing
-   content</span> is not allowed (e.g. in an empty <code>ol</code>
-   element), then the user agent must not insert the <code>br</code>
-   element directly at the caret position. In such cases the behavior
-   is UA-dependent, but user agents must not, in response to a request
-   to insert a line separator, generate a DOM that is less conformant
-   than the DOM prior to the request.</p></dd>
 
+  <div class="impl">
 
-   <dt id="contenteditable-delete">Delete</dt>
+  <h4>User editing actions</h4>
 
-   <dd><p>UAs should offer a way for the user to delete text and
-   elements, including non-editable descendants, e.g. as the default
-   action of <code title="event-keydown">keydown</code> events whose
-   identifiers are "U+0008" or "U+007F".</p>
+  <p class="XXX">This section will be removed shortly. What remains
+  here is simply what has not yet been merged into Aryeh's spec.</p>
 
-   <p>Five edge cases in particular need to be considered carefully
-   when implementing this feature: backspacing at the start of an
-   element, backspacing when the caret is immediately after an
-   element, forward-deleting at the end of an element,
-   forward-deleting when the caret is immediately before an element,
-   and deleting a selection whose start and end points do not share a
-   common parent node.</p>
+  <p>There are several actions that the user agent should allow the
+  user to perform while the user is interacting with an editing
+  host. How exactly each action is triggered is not defined for every
+  action, but when it is not defined, suggested key bindings are
+  provided to guide implementors.</p>
 
-   <p>In any case, the exact behavior is UA-dependent, but user
-   agents must not, in response to a request to delete text or an
-   element, generate a DOM that is less conformant than the DOM prior
-   to the request.</p></dd>
+  <dl>
 
-
    <dt id="contenteditable-wrapSemantic">Insert, and wrap text in,
    semantic elements</dt>
 
@@ -82147,81 +82042,50 @@
 
   </dl>
 
-  <p>User agents may perform several commands per user request; for
-  example if the user selects a block of text and hits
-  <kbd><kbd>Enter</kbd></kbd>, the UA might interpret that as a
-  request to delete the content of the selection followed by a request
-  to break the paragraph at that position.</p>
+  <p>User agents may add DOM changes to the <span>undo transaction
+  history</span> of the <span>editing host</span>'s
+  <code>Document</code> object each time an action is triggered.</p>
 
-  <p>User agents may add <span>DOM changes</span> entries to the
-  <span>undo transaction history</span> of the <span>editing
-  host</span>'s <code>Document</code> object each time an action is
-  triggered.</p>
-
-  <p>All of the actions defined above, whether triggered by the user
-  or programmatically (e.g. by <code
-  title="dom-document-execCommand">execCommand()</code> commands),
-  must fire mutation events as appropriate.</p>
-
   </div>
 
 
+  <h4>Editing APIs</h4>
 
-  <h4>Making entire documents editable</h4>
+  <p>The definition of the terms <dfn>active range</dfn>, <dfn>editing
+  host</dfn>, and <dfn>editable</dfn>, the user interface requirements
+  of elements that are <span title="editing host">editing hosts</span>
+  or <span>editable</span>, and the
 
-  <div class="impl">
+  <dfn title="dom-document-execCommand" id="execCommand"><code>execCommand()</code></dfn>,
+  <dfn title="dom-document-queryCommandEnabled"><code>queryCommandEnabled()</code></dfn>,
+  <dfn title="dom-document-queryCommandIndeterm"><code>queryCommandIndeterm()</code></dfn>,
+  <dfn title="dom-document-queryCommandState"><code>queryCommandState()</code></dfn>,
+  <dfn title="dom-document-queryCommandSupported"><code>queryCommandSupported()</code></dfn>, and
+  <dfn title="dom-document-queryCommandValue"><code>queryCommandValue()</code></dfn>
 
-  <p>Documents have a <dfn id="designMode"
-  title="dom-document-designMode"><code>designMode</code></dfn>, which
-  can be either enabled or disabled.</p>
+  methods are defined in the HTML Editing APIs specification. Text
+  selections are defined in the DOM Range specification. The
+  interaction of editing and the undo/redo features in user agents is
+  defined by the UndoManager and DOM Transaction specification. <a
+  href="#refsEDITING">[EDITING]</a> <a
+  href="#refsDOMRANGE">[DOMRANGE]</a> <a
+  href="#refsUNDO">[UNDO]</a></p>
 
-  </div>
+  <p class="XXX">Need to decide what to do with the <dfn><code
+  title="">formatBlock</code> candidate</dfn> category.</p>
 
-  <dl class="domintro">
+  <p class="XXX"><dfn>undo transaction history</dfn> is currently
+  defined in <a href="#refsUNDO">[UNDO]</a> but this spec hasn't been
+  updated to make sense with the new definition</p>
 
-   <dt><var title="">document</var> . <code title="dom-document-designMode">designMode</code> [ = <var title="">value</var> ]</dt>
+  <!-- those might get merged in here eventually -->
 
-   <dd>
 
-    <p>Returns "<code title="">on</code>" if the document is editable,
-    and "<code title="">off</code>" if it isn't.</p>
 
-    <p>Can be set, to change the document's current state.</p>
+  <h4>Spelling and grammar checking</h4>
 
-   </dd>
-
-  </dl>
-
   <div class="impl">
 
-  <p>The <code title="dom-document-designMode">designMode</code> IDL
-  attribute on the <code>Document</code> object takes two values,
-  "<code title="">on</code>" and "<code title="">off</code>". When it
-  is set, the new value must be compared in an <span>ASCII
-  case-insensitive</span> manner to these two values. If it matches
-  the "<code title="">on</code>" value, then <code
-  title="dom-document-designMode">designMode</code> must be enabled,
-  and if it matches the "<code title="">off</code>" value, then <code
-  title="dom-document-designMode">designMode</code> must be
-  disabled. Other values must be ignored.</p>
-
-  <p>When <code title="dom-document-designMode">designMode</code> is
-  enabled, the IDL attribute must return the value "<code
-  title="">on</code>", and when it is disabled, it must return the
-  value "<code title="">off</code>".</p>
-
-  <p>The last state set must persist until the document is destroyed
-  or the state is changed. Initially, documents must have their <code
-  title="dom-document-designMode">designMode</code> disabled.</p>
-
-  </div>
-
-
-
-  <h3>Spelling and grammar checking</h3>
-
-  <div class="impl">
-
   <p>User agents can support the checking of spelling and grammar of
   editable text, either in form controls (such as the value of
   <code>textarea</code> elements), or in elements in an <span>editing
@@ -82348,7 +82212,8 @@
    title="concept-fe-disabled">disabled</span>.</li>
 
    <li>Text in <span title="text node">text nodes</span> that are
-   children of <span>editable</span> elements.</li>
+   children of <span title="editing host">editing hosts</span> or
+   <span>editable</span> elements.</li>
 
    <li>Text in attributes of <span>editable</span> elements.</li>
 
@@ -84287,10 +84152,11 @@
   <p>From the moment that the user agent is to <dfn>initiate the
   drag-and-drop operation</dfn>, until the end of the drag-and-drop
   operation, device input events (e.g. mouse and keyboard events) must
-  be suppressed. In addition, the user agent must track all DOM
-  changes made during the drag-and-drop operation, and add them to its
-  <span>undo transaction history</span> as one atomic operation once
-  the drag-and-drop operation has ended.</p>
+  be suppressed. <span class="XXX">In addition, the user agent must
+  track all DOM changes made during the drag-and-drop operation, and
+  add them to its <span>undo transaction history</span> as one atomic
+  operation once the drag-and-drop operation has ended.</span></p>
+  <!-- need to update this to new UndoManager code -->
 
   <p>During the drag operation, the element directly indicated by the
   user as the drop target is called the <dfn>immediate user
@@ -84400,10 +84266,11 @@
          element whose <code title="attr-input-type">type</code>
          attribute is in the <span
          title="attr-input-type-text">Text</span> state) or an
-         <span>editable</span> element, and the <span>drag data store
-         item list</span> has an item with <span>the drag data item
-         type string</span> "<code>text/plain</code>" and <span>the
-         drag data item kind</span> <i>Plain Unicode string</i></dt>
+         <span>editing host</span> or <span>editable</span> element,
+         and the <span>drag data store item list</span> has an item
+         with <span>the drag data item type string</span>
+         "<code>text/plain</code>" and <span>the drag data item
+         kind</span> <i>Plain Unicode string</i></dt>
 
          <dd><p>Set the <span>current target element</span> to the
          <span>immediate user selection</span> anyway.</p></dd>
@@ -84478,10 +84345,11 @@
        (e.g. <code>textarea</code>, or an <code>input</code> element
        whose <code title="attr-input-type">type</code> attribute is in
        the <span title="attr-input-type-text">Text</span> state) or an
-       <span>editable</span> element, and the <span>drag data store
-       item list</span> has an item with <span>the drag data item type
-       string</span> "<code>text/plain</code>" and <span>the drag data
-       item kind</span> <i>Plain Unicode string</i></dt>
+       <span>editing host</span> or <span>editable</span> element, and
+       the <span>drag data store item list</span> has an item with
+       <span>the drag data item type string</span>
+       "<code>text/plain</code>" and <span>the drag data item
+       kind</span> <i>Plain Unicode string</i></dt>
 
        <dd><p>Set the <span>current drag operation</span> to either
        "<code title="">copy</code>" or "<code title="">move</code>",
@@ -84670,10 +84538,11 @@
          element whose <code title="attr-input-type">type</code>
          attribute is in the <span
          title="attr-input-type-text">Text</span> state) or an
-         <span>editable</span> element, and the <span>drag data store
-         item list</span> has an item with <span>the drag data item
-         type string</span> "<code>text/plain</code>" and <span>the
-         drag data item kind</span> <i>Plain Unicode string</i></dt>
+         <span>editing host</span> or <span>editable</span> element,
+         and the <span>drag data store item list</span> has an item
+         with <span>the drag data item type string</span>
+         "<code>text/plain</code>" and <span>the drag data item
+         kind</span> <i>Plain Unicode string</i></dt>
 
          <dd><p>Insert the actual data of the first item in the
          <span>drag data store item list</span> to have <span
@@ -84681,10 +84550,10 @@
          string</span> of "<code>text/plain</code>" and <span
          title="the drag data item kind">a drag data item kind</span>
          that is <i>Plain Unicode string</i> into the text field or
-         <span>editable</span> element in a manner consistent with
-         platform-specific conventions (e.g. inserting it at the
-         current mouse cursor position, or inserting it at the end of
-         the field).</p></dd>
+         <span>editing host</span> or <span>editable</span> element in
+         a manner consistent with platform-specific conventions (e.g.
+         inserting it at the current mouse cursor position, or
+         inserting it at the end of the field).</p></dd>
 
          <dt>Otherwise</dt>
 
@@ -85407,511 +85276,6 @@
 
 
 
-  <h3>Editing APIs</h3>
-
-  <dl class="domintro">
-
-   <dt><var title="">document</var> . <code title="dom-document-execCommand">execCommand</code>(<var title="">commandId</var> [, <var title="">showUI</var> [, <var title="">value</var> ] ] )</dt>
-
-   <dd>
-
-    <p>Runs the action specified by the first argument, as described
-    in the list below. The second and third arguments sometimes affect
-    the action. (If they don't they are ignored.)</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title="dom-document-queryCommandEnabled">queryCommandEnabled</code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns whether the given command is enabled, as described in the list below.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title="dom-document-queryCommandIndeterm">queryCommandIndeterm</code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns whether the given command is indeterminate, as described in the list below.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title="dom-document-queryCommandState">queryCommandState</code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns the state of the command, as described in the list below.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title="dom-document-queryCommandSupported">queryCommandSupported</code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns true if the command is supported; otherwise, returns false.</p>
-
-   </dd>
-
-   <dt><var title="">document</var> . <code title="dom-document-queryCommandValue">queryCommandValue</code>(<var title="">commandId</var>)</dt>
-
-   <dd>
-
-    <p>Returns the value of the command, as described in the list below.</p>
-
-   </dd>
-
-  </dl>
-
-  <div class="impl">
-
-  <p>The <dfn id="execCommand"
-  title="dom-document-execCommand"><code>execCommand(<var
-  title="">commandId</var>, <var title="">showUI</var>, <var
-  title="">value</var>)</code></dfn> method on the
-  <code>HTMLDocument</code> interface allows scripts to perform
-  actions on the current selection or at the current caret position.
-  Generally, these commands would be used to implement editor UI, for
-  example having a "delete" button on a toolbar.</p>
-
-  <p>There are three variants to this method, with one, two, and three
-  arguments respectively. The <var title="">showUI</var> and <var
-  title="">value</var> parameters, even if specified, are ignored
-  except where otherwise stated.</p>
-
-  <p>When <code title="dom-document-execCommand">execCommand()</code>
-  is invoked, the user agent must run the following steps:</p>
-
-  <ol>
-
-   <li>If the given <var title="">commandId</var> maps to an entry in
-   the list below whose "Enabled When" entry has a condition that is
-   currently false, do nothing; abort these steps.</li>
-
-   <li>Otherwise, execute the "Action" listed below for the given <var
-   title="">commandId</var>.</li>
-
-  </ol>
-
-  </div>
-
-  <p>A document is <dfn>ready for editing host commands</dfn> if it
-  has a selection that is entirely within an <span>editing
-  host</span>, or if it has no selection but its caret is inside an
-  <span>editing host</span>.</p>
-
-  <div class="impl">
-
-  <p>The <dfn
-  title="dom-document-queryCommandEnabled"><code>queryCommandEnabled(<var
-  title="">commandId</var>)</code></dfn> method, when invoked, must
-  return true if the condition listed below under "Enabled When" for
-  the given <var title="">commandId</var> is true, and false
-  otherwise.</p>
-
-  <p>The <dfn
-  title="dom-document-queryCommandIndeterm"><code>queryCommandIndeterm(<var
-  title="">commandId</var>)</code></dfn> method, when invoked, must
-  return true if the condition listed below under "Indeterminate When"
-  for the given <var title="">commandId</var> is true, and false
-  otherwise.</p>
-
-  <p>The <dfn
-  title="dom-document-queryCommandState"><code>queryCommandState(<var
-  title="">commandId</var>)</code></dfn> method, when invoked, must
-  return the value expressed below under "State" for the given <var
-  title="">commandId</var>.</p>
-
-  <p>The <dfn
-  title="dom-document-queryCommandSupported"><code>queryCommandSupported(<var
-  title="">commandId</var>)</code></dfn> method, when invoked, must
-  return true if the given <var title="">commandId</var> is in the
-  list below, and false otherwise.</p>
-
-  <p>The <dfn
-  title="dom-document-queryCommandValue"><code>queryCommandValue(<var
-  title="">commandId</var>)</code></dfn> method, when invoked, must
-  return the value expressed below under "Value" for the given <var
-  title="">commandId</var>.</p>
-
-  </div>
-
-  <p>The possible values for <var title="">commandId</var>, and their
-  corresponding meanings, are as follows. <span class="impl">These
-  values must be compared to the argument in an <span>ASCII
-  case-insensitive</span> manner.</span></p>
-
-  <dl>
-
-   <dt><dfn title="command-bold"><code>bold</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is bold.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a
-   href="#contenteditable-wrapSemantic">be wrapped in the
-   semantics</a> of the <em><code>b</code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA).</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code>b</code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn title="command-createLink"><code>createLink</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is a
-   link or not. If the second argument is true, and a link is to be
-   added, the user agent will ask the user for the address. Otherwise,
-   the third argument will be used as the address.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a
-   href="#contenteditable-wrapSemantic">be wrapped in the
-   semantics</a> of the <em><code>a</code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA). If the user agent creates an <code>a</code> element or
-   modifies an existing <code>a</code> element, then if the <var
-   title="">showUI</var> argument is present and has the value false,
-   then the value of the <var title="">value</var> argument must be
-   used as the <span>URL</span> of the link. Otherwise, the user agent
-   should prompt the user for the URL of the link.</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-delete"><code>delete</code></dfn></dt>
-   <dd><strong>Summary</strong>: Deletes the selection or the
-   character before the cursor.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had performed <a href="#contenteditable-delete">a backspace
-   operation</a>.</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-formatBlock"><code>formatBlock</code></dfn></dt>
-   <dd><strong>Summary</strong>: Wraps the selection in the element
-   given by the third argument. If the third argument doesn't
-   specify an element that is a <dfn><code title="">formatBlock</code>
-   candidate</dfn>, does nothing.</dd>
-   <dd class="impl">
-    <p><strong>Action</strong>: The user agent must run the following
-    steps:</p>
-    <ol>
-     <li><p>If the <var title="">value</var> argument wasn't
-     specified, abort these steps without doing anything.</p></li>
-     <li><p>If the <var title="">value</var> argument has a leading
-     U+003C LESS-THAN SIGN character (<) and a trailing U+003E
-     GREATER-THAN SIGN character (>), then remove the first and last
-     characters from <var title="">value</var>.</p></li>
-     <li>
-      <p>If <var title="">value</var> is (now) an <span>ASCII
-      case-insensitive</span> match for the tag name of an element
-      defined by this specification that is defined to be a
-      <span><code title="">formatBlock</code> candidate</span>, then,
-      for every position in the selection, take the nearest
-      <span><code title="">formatBlock</code> candidate</span>
-      ancestor element of that position that contains only
-      <span>phrasing content</span>, and, if that element is
-      <span>editable</span>, is not an <span>editing host</span>, and
-      has a parent element whose content model allows that parent to
-      contain any <span>flow content</span>, replace it with an
-      element in the HTML namespace whose name is <var
-      title="">value</var>, and move all the children that were in it
-      to the new element, and copy all the attributes that were on it
-      to the new element.</p>
-      <p>If there is no selection, then, where in the description
-      above refers to the selection, the user agent must act as if the
-      selection was an empty range (with just one position) at the
-      caret position.</p>
-     </li>
-    </ol>
-   </dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-forwardDelete"><code>forwardDelete</code></dfn></dt>
-   <dd><strong>Summary</strong>: Deletes the selection or the
-   character after the cursor.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had performed <a href="#contenteditable-delete">a forward delete
-   operation</a>.</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-insertImage"><code>insertImage</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is an
-   image or not. If the second argument is true, and an image is to be
-   added, the user agent will ask the user for the address. Otherwise,
-   the third argument will be used as the address.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act
-   as if the user had requested that the selection <a
-   href="#contenteditable-wrapSemantic">be wrapped in the
-   semantics</a> of the <em><code>img</code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA). If the user agent creates an <code>img</code> element or
-   modifies an existing <code>img</code> element, then if the <var
-   title="">showUI</var> argument is present and has the value false,
-   then the value of the <var title="">value</var> argument must be
-   used as the <span>URL</span> of the image. Otherwise, the user
-   agent should prompt the user for the URL of the image.</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-insertHTML"><code>insertHTML</code></dfn></dt>
-   <dd><strong>Summary</strong>: Replaces the selection with the value
-   of the third argument parsed as HTML.</dd>
-   <dd class="impl">
-    <p><strong>Action</strong>: The user agent must run the following
-    steps:</p>
-    <ol>
-     <li><p>If the document is an <span title="XML documents">XML
-     document</span>, then throw an <code>INVALID_ACCESS_ERR</code>
-     exception and abort these steps.</p></li><!-- v2 support XML? -->
-     <li><p>If the <var title="">value</var> argument wasn't
-     specified, abort these steps without doing anything.</p></li>
-     <li><p>If there is a selection, act as if the user had requested
-     that <a href="#contenteditable-delete">the selection be
-     deleted</a>.</p></li>
-     <li><p>Invoke the <span>HTML fragment parsing algorithm</span>
-     with an arbitrary orphan <code>body</code> element owned by the
-     same <code>Document</code> as the <i title="">context</i> element
-     and with the <var title="">value</var> argument as <i
-     title="">input</i>.</p></li>
-     <li><p>Insert the nodes returned by the previous step into the
-     document at the location of the caret, firing any mutation events
-     as appropriate.</p></li>
-    </ol>
-   </dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-insertLineBreak"><code>insertLineBreak</code></dfn></dt>
-   <dd><strong>Summary</strong>: Inserts a line break.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had <a href="#contenteditable-br">requested a line
-   separator</a>.</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-insertOrderedList"><code>insertOrderedList</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is an ordered list.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a
-   href="#contenteditable-wrapSemantic">be wrapped in the
-   semantics</a> of the <code>ol</code> element (or unwrapped, or, if
-   there is no selection, have that semantic inserted or removed
-   — the exact behavior is UA-defined).</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-insertUnorderedList"><code>insertUnorderedList</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is an unordered list.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a
-   href="#contenteditable-wrapSemantic">be wrapped in the
-   semantics</a> of the <code>ul</code> element (or unwrapped, or, if
-   there is no selection, have that semantic inserted or removed
-   — the exact behavior is UA-defined).</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-insertParagraph"><code>insertParagraph</code></dfn></dt>
-   <dd><strong>Summary</strong>: Inserts a paragraph break.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had performed a <a href="#contenteditable-breakBlock">break
-   block</a> editing action.</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-insertText"><code>insertText</code></dfn></dt>
-   <dd><strong>Summary</strong>: Inserts the text given in the third parameter.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had <a href="#contenteditable-insertText">inserted text</a>
-   corresponding to the <var title="">value</var> parameter.</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-italic"><code>italic</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is italic.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a
-   href="#contenteditable-wrapSemantic">be wrapped in the
-   semantics</a> of the <em><code>i</code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA).</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code>i</code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn title="command-redo"><code>redo</code></dfn></dt>
-   <dd><strong>Summary</strong>: Acts as if the user had requested a redo.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must <span
-   title="do-redo">move forward one step</span> in its <span>undo
-   transaction history</span>, restoring the associated state. If the
-   <span>undo position</span> is at the end of the <span>undo
-   transaction history</span>, the user agent must do nothing.
-   </dd>
-   <dd><strong>Enabled When</strong>: The <span>undo position</span>
-   is not at the end of the <span>undo transaction
-   history</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-selectAll"><code>selectAll</code></dfn></dt>
-   <dd><strong>Summary</strong>: Selects all the editable content.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must change the
-   selection so that all the content in the currently focused
-   <span>editing host</span> is selected. If no <span>editing
-   host</span> is focused, then the content of the entire document
-   must be selected.</dd>
-   <dd><strong>Enabled When</strong>: Always.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-subscript"><code>subscript</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is subscripted.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a
-   href="#contenteditable-wrapSemantic">be wrapped in the
-   semantics</a> of the <em><code>sub</code></em> element (or, again,
-   unwrapped, or have that semantic inserted or removed, as defined by
-   the UA).</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code>sub</code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn title="command-superscript"><code>superscript</code></dfn></dt>
-   <dd><strong>Summary</strong>: Toggles whether the selection is superscripted.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must act as if the user
-   had requested that the selection <a
-   href="#contenteditable-wrapSemantic">be wrapped in the
-   semantics</a> of the <code>sup</code> element (or unwrapped, or, if
-   there is no selection, have that semantic inserted or removed
-   — the exact behavior is UA-defined).</dd>
-   <dd><strong>Enabled When</strong>: The document is <span>ready for
-   editing host commands</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: True if the selection, or the caret, if
-   there is no selection, is, or is contained within, a
-   <code>sup</code> element. False otherwise.</dd>
-   <dd><strong>Value</strong>: The string "<code title="">true</code>"
-   if the expression given for the "State" above is true, the string
-   "<code title="">false</code>" otherwise.</dd>
-
-   <dt><dfn title="command-undo"><code>undo</code></dfn></dt>
-   <dd><strong>Summary</strong>: Acts as if the user had requested an undo.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must <span
-   title="do-undo">move back one step</span> in its <span>undo
-   transaction history</span>, restoring the associated state. If the
-   <span>undo position</span> is at the start of the <span>undo
-   transaction history</span>, the user agent must do nothing.
-   </dd>
-   <dd><strong>Enabled When</strong>: The <span>undo position</span>
-   is not at the start of the <span>undo transaction
-   history</span>.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-unlink"><code>unlink</code></dfn></dt>
-   <dd><strong>Summary</strong>: Removes all links from the selection.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must remove all
-   <code>a</code> elements that have <code
-   title="attr-hyperlink-href">href</code> attributes and that are partially
-   or completely included in the current selection.</dd>
-   <dd><strong>Enabled When</strong>: The document has a selection
-   that is entirely within an <span>editing host</span> and that
-   contains (either partially or completely) at least one
-   <code>a</code> element that has an <code
-   title="attr-hyperlink-href">href</code> attribute.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt><dfn title="command-unselect"><code>unselect</code></dfn></dt>
-   <dd><strong>Summary</strong>: Unselects everything.</dd>
-   <dd class="impl"><strong>Action</strong>: The user agent must change the
-   selection so that nothing is selected.</dd>
-   <dd><strong>Enabled When</strong>: Always.</dd>
-   <dd><strong>Indeterminate When</strong>: Never.</dd>
-   <dd><strong>State</strong>: Always false.</dd>
-   <dd><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-   <dt class="impl"><code><var title="">vendorID</var>-<var title="">customCommandID</var></code></dt>
-   <dd class="impl"><strong>Action</strong>: User agents may implement
-   vendor-specific extensions to this API. Vendor-specific extensions
-   to the list of commands should use the syntax <code><var
-   title="">vendorID</var>-<var title="">customCommandID</var></code>
-   so as to prevent clashes between extensions from different vendors
-   and future additions to this specification.</dd>
-   <dd class="impl"><strong>Enabled When</strong>: UA-defined.</dd>
-   <dd class="impl"><strong>Indeterminate When</strong>: UA-defined.</dd>
-   <dd class="impl"><strong>State</strong>: UA-defined.</dd>
-   <dd class="impl"><strong>Value</strong>: UA-defined.</dd>
-
-   <dt class="impl">Anything else</dt>
-   <dd class="impl"><strong>Action</strong>: User agents must do nothing.</dd>
-   <dd class="impl"><strong>Enabled When</strong>: Never.</dd>
-   <dd class="impl"><strong>Indeterminate When</strong>: Never.</dd>
-   <dd class="impl"><strong>State</strong>: Always false.</dd>
-   <dd class="impl"><strong>Value</strong>: Always the string "<code title="">false</code>".</dd>
-
-  </dl>
-
-<!--
-v2 (well, really v0):
- "forecolor", "hilitecolor", "fontname", "fontsize", "justifyleft",
- "justifycenter", "justifyright", "justifyfull", "indent", "outdent"
--->
-
 <!--START rtc--><!--END w3c-html--><!--PEERCONNECTION-->
 <div data-component="other Hixie drafts (editor: Ian Hickson)">
 
@@ -108616,11 +107980,11 @@
 
   <h4>Editing hosts</h4>
 
-  <p>The current text editing caret (the one at the <span>caret
-  position</span> in a focused <span>editing host</span>) is expected
-  to act like an inline replaced element with the vertical dimensions
-  of the caret and with zero width for the purposes of the CSS
-  rendering model.</p>
+  <p>The current text editing caret (i.e. the <span>active
+  range</span>, if it is empty and in an <span>editing host</span>),
+  if any, is expected to act like an inline replaced element with the
+  vertical dimensions of the caret and with zero width for the
+  purposes of the CSS rendering model.</p>
 
   <p class="note">This means that even an empty block can have the
   caret inside it, and that when the caret is in such an element, it
@@ -113425,7 +112789,7 @@
     <tr>
      <th> <code title="">contenteditable</code>
      <td> <span title="attr-contenteditable">HTML elements</span>
-     <td> Whether the element is <span>editable</span>
+     <td> Whether the element is an editable
      <td> "<code title="">true</code>"; "<code title="">false</code>"
     <tr>
      <th> <code title="">contextmenu</code>
@@ -115460,6 +114824,9 @@
    href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMAScript
    Language Specification</a></cite>. ECMA.</dd>
 
+   <dt id="refsEDITING">[EDITING]</dt>
+   <dd><cite><a href="http://aryeh.name/spec/editing/editing.html">HTML Editing APIs</a></cite>, A. Gregor.</dd>
+
    <dt id="refsECMA357">[ECMA357]</dt>
    <dd>(Non-normative) <cite><a
    href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">ECMAScript
@@ -115960,6 +115327,9 @@
    Guidelines (UAAG) 2.0</a></cite>, J. Allan, K. Ford, J. Richards,
    J. Spellman. W3C.</dd>
 
+   <dt id="refsUNDO">[UNDO]</dt>
+   <dd><cite><a href="http://rniwa.com/editing/undomanager.html">UndoManager and DOM Transaction</a></cite>, R. Niwa.</dd>
+
    <dt id="refsUNICODE">[UNICODE]</dt>
    <dd><cite><a href="http://www.unicode.org/versions/">The Unicode Standard</a></cite>. Unicode Consortium.</dd>
 




More information about the Commit-Watchers mailing list