spec/Overview.html 1.1972 2801 spellcheck='' attribute (whatwg r2801)

spellcheck='' attribute (whatwg r2801)

:read-write
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#selector-read-write
6.9.6.1 Copy to clipboard
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#copy-to-clipboard
6.9.6.3 Paste from clipboard
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#paste-from-clipboard
false-by-default
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#concept-spellcheck-default-false
6.10.1 The UndoManager interface
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#the-undomanager-interface
6.9.4.1 When the drag-and-drop operation starts or ends in another document
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#when-the-drag-and-drop-operation-starts-or-ends-in-another-document
3.3.3 Global attributes
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#global-attributes
6.11 Command APIs
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#command-apis
Undo object
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#undo-object
6.10.5 Implementation notes
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#implementation-notes
6.9.4 Drag-and-drop processing model
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#drag-and-drop-processing-model
current drag operation
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#current-drag-operation
10.2.4 Alignment
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#alignment
6.9 Drag and drop
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#dnd
6.9.6.2 Cut to clipboard
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#cut-to-clipboard
spellcheck
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#dom-spellcheck
6.9.6.4 Paste from selection
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#paste-from-selection
true-by-default
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#concept-spellcheck-default-true
DOM changes
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#dom-changes
6.10.2 Undo: moving back in the undo transaction history
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#undo:-moving-back-in-the-undo-transaction-history
HTMLElement
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#htmlelement
6.7.2 Making entire documents editable
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#making-entire-documents-editable
6.9.1 Introduction
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#introduction-4
clearRedo()
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#dom-undomanager-clearredo
DragEvent
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#dragevent
6.9.3 Events fired during a drag-and-drop action
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#events-fired-during-a-drag-and-drop-action
6.10.4 The UndoManagerEvent interface and the undo and redo events
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#the-undomanagerevent-interface-and-the-undo-and-redo-events
spellcheck
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#attr-spellcheck
6.10 Undo history
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#undo
draggable
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#dom-draggable
The dropEffect attribute must be set to "none" for dragstart, drag, and dragleave events (except when stated otherwise in the algorithms given in the sections below), to the value corresponding to the current drag operation for drop and dragend events, and to a value based on the effectAllowed attribute's value and to the drag-and-drop source, as given by the following table, for the remaining events (dragenter and dragover):
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#dropEffect-initialization
default behavior
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#concept-spellcheck-default
6.9.5 The draggable attribute
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#the-draggable-attribute
undo
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#event-undo
6.8 Spelling and grammar checking
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#spelling-and-grammar-checking
addElement(element)
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#dom-datatransfer-addelement
6.9.4.2 When the drag-and-drop operation starts or ends in another application
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#when-the-drag-and-drop-operation-starts-or-ends-in-another-application
6.9.6 Copy and paste
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#copy-and-paste
6.10.3 Redo: moving forward in the undo transaction history
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#redo:-moving-forward-in-the-undo-transaction-history
inherit-by-default
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#concept-spellcheck-default-inherit
toggleColumnSortState(i): If the data is already being sorted on the given column, then the user agent must change the current sort mapping to be the inverse of the current sort mapping; if the sort order was ascending before, it is now descending, otherwise it is now ascending. Otherwise, if the current sort column is another column, or the data model is currently not sorted, the user agent must create a new mapping, which maps rows in the data model to rows in the DOM so that the rows in the data model are sorted by the specified column, in ascending order. (Which sort comparison operator to use is left up to the UA to decide.)
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#defaultDataProviderTableSort
6.9.7 Security risks in the drag-and-drop model
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#security-risks-in-the-drag-and-drop-model
4.11.2.4.1 Common default data provider method definitions for cells
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#commonDefaultDataGridMethodDefinitions
align descendants
http://people.w3.org/mike/diffs/html5/spec/Overview.1.1972.html#align-descendants

http://people.w3.org/mike/diffs/html5/spec/Overview.diff.html
http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.1971&r2=1.1972&f=h
http://html5.org/tools/web-apps-tracker?from=2800&to=2801

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.1971
retrieving revision 1.1972
diff -u -d -r1.1971 -r1.1972
--- Overview.html 12 Feb 2009 02:50:17 -0000 1.1971
+++ Overview.html 12 Feb 2009 10:36:13 -0000 1.1972
@@ -757,33 +757,34 @@
     <ol>
      <li><a href=#user-editing-actions><span class=secno>6.7.1 </span>User editing actions</a></li>
      <li><a href=#making-entire-documents-editable><span class=secno>6.7.2 </span>Making entire documents editable</a></ol></li>
-   <li><a href=#dnd><span class=secno>6.8 </span>Drag and drop</a>
+   <li><a href=#spelling-and-grammar-checking><span class=secno>6.8 </span>Spelling and grammar checking</a></li>
+   <li><a href=#dnd><span class=secno>6.9 </span>Drag and drop</a>
     <ol>
-     <li><a href=#introduction-4><span class=secno>6.8.1 </span>Introduction</a></li>
-     <li><a href=#the-dragevent-and-datatransfer-interfaces><span class=secno>6.8.2 </span>The <code>DragEvent</code> and <code>DataTransfer</code> interfaces</a></li>
-     <li><a href=#events-fired-during-a-drag-and-drop-action><span class=secno>6.8.3 </span>Events fired during a drag-and-drop action</a></li>
-     <li><a href=#drag-and-drop-processing-model><span class=secno>6.8.4 </span>Drag-and-drop processing model</a>
+     <li><a href=#introduction-4><span class=secno>6.9.1 </span>Introduction</a></li>
+     <li><a href=#the-dragevent-and-datatransfer-interfaces><span class=secno>6.9.2 </span>The <code>DragEvent</code> and <code>DataTransfer</code> interfaces</a></li>
+     <li><a href=#events-fired-during-a-drag-and-drop-action><span class=secno>6.9.3 </span>Events fired during a drag-and-drop action</a></li>
+     <li><a href=#drag-and-drop-processing-model><span class=secno>6.9.4 </span>Drag-and-drop processing model</a>
       <ol>
-       <li><a href=#when-the-drag-and-drop-operation-starts-or-ends-in-another-document><span class=secno>6.8.4.1 </span>When the drag-and-drop operation starts or ends in another
+       <li><a href=#when-the-drag-and-drop-operation-starts-or-ends-in-another-document><span class=secno>6.9.4.1 </span>When the drag-and-drop operation starts or ends in another
   document</a></li>
-       <li><a href=#when-the-drag-and-drop-operation-starts-or-ends-in-another-application><span class=secno>6.8.4.2 </span>When the drag-and-drop operation starts or ends in another
+       <li><a href=#when-the-drag-and-drop-operation-starts-or-ends-in-another-application><span class=secno>6.9.4.2 </span>When the drag-and-drop operation starts or ends in another
   application</a></ol></li>
-     <li><a href=#the-draggable-attribute><span class=secno>6.8.5 </span>The <code>draggable</code> attribute</a></li>
-     <li><a href=#copy-and-paste><span class=secno>6.8.6 </span>Copy and paste</a>
+     <li><a href=#the-draggable-attribute><span class=secno>6.9.5 </span>The <code>draggable</code> attribute</a></li>
+     <li><a href=#copy-and-paste><span class=secno>6.9.6 </span>Copy and paste</a>
       <ol>
-       <li><a href=#copy-to-clipboard><span class=secno>6.8.6.1 </span>Copy to clipboard</a></li>
-       <li><a href=#cut-to-clipboard><span class=secno>6.8.6.2 </span>Cut to clipboard</a></li>
-       <li><a href=#paste-from-clipboard><span class=secno>6.8.6.3 </span>Paste from clipboard</a></li>
-       <li><a href=#paste-from-selection><span class=secno>6.8.6.4 </span>Paste from selection</a></ol></li>
-     <li><a href=#security-risks-in-the-drag-and-drop-model><span class=secno>6.8.7 </span>Security risks in the drag-and-drop model</a></ol></li>
-   <li><a href=#undo><span class=secno>6.9 </span>Undo history</a>
+       <li><a href=#copy-to-clipboard><span class=secno>6.9.6.1 </span>Copy to clipboard</a></li>
+       <li><a href=#cut-to-clipboard><span class=secno>6.9.6.2 </span>Cut to clipboard</a></li>
+       <li><a href=#paste-from-clipboard><span class=secno>6.9.6.3 </span>Paste from clipboard</a></li>
+       <li><a href=#paste-from-selection><span class=secno>6.9.6.4 </span>Paste from selection</a></ol></li>
+     <li><a href=#security-risks-in-the-drag-and-drop-model><span class=secno>6.9.7 </span>Security risks in the drag-and-drop model</a></ol></li>
+   <li><a href=#undo><span class=secno>6.10 </span>Undo history</a>
     <ol>
-     <li><a href=#the-undomanager-interface><span class=secno>6.9.1 </span>The <code>UndoManager</code> interface</a></li>
-     <li><a href=#undo:-moving-back-in-the-undo-transaction-history><span class=secno>6.9.2 </span>Undo: moving back in the undo transaction history</a></li>
-     <li><a href=#redo:-moving-forward-in-the-undo-transaction-history><span class=secno>6.9.3 </span>Redo: moving forward in the undo transaction history</a></li>
-     <li><a href=#the-undomanagerevent-interface-and-the-undo-and-redo-events><span class=secno>6.9.4 </span>The <code>UndoManagerEvent</code> interface and the <code title=event-undo>undo</code> and <code title=event-redo>redo</code> events</a></li>
-     <li><a href=#implementation-notes><span class=secno>6.9.5 </span>Implementation notes</a></ol></li>
-   <li><a href=#command-apis><span class=secno>6.10 </span>Command APIs</a></ol></li>
+     <li><a href=#the-undomanager-interface><span class=secno>6.10.1 </span>The <code>UndoManager</code> interface</a></li>
+     <li><a href=#undo:-moving-back-in-the-undo-transaction-history><span class=secno>6.10.2 </span>Undo: moving back in the undo transaction history</a></li>
+     <li><a href=#redo:-moving-forward-in-the-undo-transaction-history><span class=secno>6.10.3 </span>Redo: moving forward in the undo transaction history</a></li>
+     <li><a href=#the-undomanagerevent-interface-and-the-undo-and-redo-events><span class=secno>6.10.4 </span>The <code>UndoManagerEvent</code> interface and the <code title=event-undo>undo</code> and <code title=event-redo>redo</code> events</a></li>
+     <li><a href=#implementation-notes><span class=secno>6.10.5 </span>Implementation notes</a></ol></li>
+   <li><a href=#command-apis><span class=secno>6.11 </span>Command APIs</a></ol></li>
  <li><a href=#comms><span class=secno>7 </span>Communication</a>
   <ol>
    <li><a href=#event-definitions><span class=secno>7.1 </span>Event definitions</a></li>
@@ -5834,6 +5835,7 @@
            attribute DOMString <a href=#dom-contenteditable title=dom-contentEditable>contentEditable</a>;
   readonly attribute boolean <a href=#dom-iscontenteditable title=dom-isContentEditable>isContentEditable</a>;
            attribute <a href=#htmlmenuelement>HTMLMenuElement</a> <a href=#dom-contextmenu title=dom-contextMenu>contextMenu</a>;
+           attribute boolean <a href=#dom-spellcheck title=dom-spellcheck>spellcheck</a>;
 
   // <span>styling</span>
   readonly attribute <span>CSSStyleDeclaration</span> <a href=#dom-style title=dom-style>style</a>;
@@ -5883,6 +5885,7 @@
    <dd><code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code></dd>
    <dd><code title=attr-lang><a href=#the-lang-and-xml:lang-attributes>lang</a></code></dd>
    <dd><code title=attr-style><a href=#the-style-attribute>style</a></code></dd>
+   <dd><code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code></dd>
    <dd><code title=attr-tabindex><a href=#attr-tabindex>tabindex</a></code></dd>
    <dd><code title=attr-title><a href=#the-title-attribute>title</a></code></dd>
   </dl><p>In addition, unless otherwise specified, the following
@@ -25713,7 +25716,7 @@
     <code><a href=#datagrid>datagrid</a></code> element (the <code><a href=#the-select-element>select</a></code> or
     <code><a href=#the-datalist-element>datalist</a></code> element), that skips all nodes other than
     <code><a href=#the-optgroup-element>optgroup</a></code> and <code><a href=#the-option-element>option</a></code> elements, as well as
-    any descendents of any <code><a href=#the-option-element>option</a></code> elements.</p>
+    any descendants of any <code><a href=#the-option-element>option</a></code> elements.</p>
 
     <p>Given a path <var title="">row</var>, the corresponding element
     is the one obtained by drilling into the view, taking the child
@@ -25956,7 +25959,7 @@
 
     <p>If the first element child of a cell's element is a
     <code><a href=#the-select-element>select</a></code> element that has a no <code title=attr-select-multiple><a href=#attr-select-multiple>multiple</a></code> attribute and has at
-    least one <code><a href=#the-option-element>option</a></code> element descendent, then the cell
+    least one <code><a href=#the-option-element>option</a></code> element descendant, then the cell
     acts as a cyclable cell.</p>
 
     <p>The "current" <code><a href=#the-option-element>option</a></code> element is the selected
@@ -25978,9 +25981,9 @@
     element such that the next <code><a href=#the-option-element>option</a></code> element after the
     current <code><a href=#the-option-element>option</a></code> element is the only one that is
     selected (in <a href=#tree-order>tree order</a>). If the current <code><a href=#the-option-element>option</a></code>
-    element is the last <code><a href=#the-option-element>option</a></code> element descendent of the
+    element is the last <code><a href=#the-option-element>option</a></code> element descendant of the
     <code><a href=#the-select-element>select</a></code>, then the first <code><a href=#the-option-element>option</a></code> element
-    descendent must be selected instead.</p>
+    descendant must be selected instead.</p>
 
     <p>The <code title=dom-provider-setCellCheckedState><a href=#dom-provider-setcellcheckedstate>setCellCheckedState()</a></code>
     and <code title=dom-provider-editCell><a href=#dom-provider-editcell>editCell()</a></code> methods
@@ -27816,8 +27819,8 @@
 
     <ul><li><code><a href=#the-input-element>input</a></code> elements to which the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute applies,
      but that are not <i title=concept-input-immutable><a href=#concept-input-immutable>immutable</a></i>
-     (i.e. that do not have the attribute specified and that are not
-     <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>)</li>
+     (i.e. that do not have the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute specified
+     and that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>)</li>
 
      <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>
@@ -35248,7 +35251,138 @@
   <p>Enabling <code title="dom-document-designMode">designMode</code>
   <a href="#designModeScriptBlocked">causes scripts in general to be
   disabled</a> and the document to become editable.</p>
---><h3 id=dnd><span class=secno>6.8 </span><dfn>Drag and drop</dfn></h3><!--XXX
+--><h3 id=spelling-and-grammar-checking><span class=secno>6.8 </span>Spelling and grammar checking</h3><p>User agents can support the checking of spelling and grammar of
+  editable text, either in form controls (such as the value of
+  <code><a href=#the-textarea-element>textarea</a></code> elements), or in elements in an <a href=#editing-host>editing
+  host</a> (using <code title=attr-contenteditable><a href=#attr-contenteditable>contenteditable</a></code>).<p>For each element, user agents must establish a <dfn id=concept-spellcheck-default title=concept-spellcheck-default>default behavior</dfn>, either
+  through defaults or through preferences expressed by the user. There
+  are three possible default behaviors for each element:<dl><dt><dfn id=concept-spellcheck-default-true title=concept-spellcheck-default-true>true-by-default</dfn>
+
+   <dd>The element will be checked for spelling and grammar if its
+   contents are editable.
+
+   <dt><dfn id=concept-spellcheck-default-false title=concept-spellcheck-default-false>false-by-default</dfn>
+
+   <dd>The element will never be checked for spelling and grammar.
+
+   <dt><dfn id=concept-spellcheck-default-inherit title=concept-spellcheck-default-inherit>inherit-by-default</dfn>
+
+   <dd>The element's default behavior is the same asits parent
+   element's. Elements that have no parent element cannot have this as
+   their default behavior.
+
+  </dl><hr><p>The <dfn id=attr-spellcheck title=attr-spellcheck><code>spellcheck</code></dfn>
+  attribute is an <a href=#enumerated-attribute>enumerated attribute</a> whose keywords are
+  <code title="">true</code> and <code title="">false</code>. 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
+  addition, there is a third state, the <i>inherit</i> state, which is
+  the <i>missing value default</i> (and the <i>invalid value
+  default</i>).</p><hr><p>The <dfn id=dom-spellcheck title=dom-spellcheck><code>spellcheck</code></dfn> DOM
+  attribute, on getting, must return true if the element's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute is in
+  the <i>true</i> state, or if the element's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute is in
+  the <i>inherit</i> state and the element's <a href=#concept-spellcheck-default title=concept-spellcheck-default>default behavior</a> is <a href=#concept-spellcheck-default-true title=concept-spellcheck-default-true>true-by-default</a>, or
+  if the element's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code>
+  content attribute is in the <i>inherit</i> state and the element's
+  <a href=#concept-spellcheck-default title=concept-spellcheck-default>default behavior</a> is
+  <a href=#concept-spellcheck-default-inherit title=concept-spellcheck-default-inherit>inherit-by-default</a>
+  and the element's parent element's <code title=dom-spellcheck><a href=#dom-spellcheck>spellcheck</a></code> DOM attribute would return
+  true; otherwise, if none of those conditions applies, then the
+  attribute must instead return false.<p class=note>The <code title=dom-spellcheck><a href=#dom-spellcheck>spellcheck</a></code>
+  DOM attribute is not affected by user preferences that override the
+  <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute,
+  and therefore might not reflect the actual spellchecking state.<p>On setting, if the new value is true, then the element's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute must be
+  set to the literal string "<code title="">true</code>", otherwise it
+  must be set to the literal string "<code title="">false</code>".
+
+  </p><hr><p>User agents must only consider the following pieces of text as
+  checkable for the purposes of this feature:<ul><li>The value of <code><a href=#the-input-element>input</a></code> elements to which the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute applies, but
+   that are not <i title=concept-input-immutable><a href=#concept-input-immutable>immutable</a></i>
+   (i.e. that do not have the <code title=attr-input-readonly><a href=#attr-input-readonly>readonly</a></code> attribute specified and
+   that are not <a href=#concept-fe-disabled title=concept-fe-disabled>disabled</a>).</li>
+
+   <li>The value of <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>Text in <a href=#text-node title="text node">text nodes</a> that are
+   children of <a href=#editable>editable</a> elements.</li>
+
+   <li>Text in attributes of <a href=#editable>editable</a> elements.</li>
+
+  </ul><p>For text that is part of a <a href=#text-node>text node</a>, the element
+  with which the text is associated is the element that is the
+  immediate parent of the first character of the word, sentence, or
+  other piece of text. For text in attributes, it is the attribute's
+  element. For the values of <code><a href=#the-input-element>input</a></code> and
+  <code><a href=#the-textarea-element>textarea</a></code> elements, it is the element itself.<p>To determine if a word, sentence, or other piece of text in an
+  applicable element (as defined above) is to have spelling- and/or
+  grammar-checking enabled, the UA must use the following
+  algorithm:<ol><!-- user override --><li>If the user has disabled the checking for this text, then the
+   checking is disabled.</li>
+
+   <li>Otherwise, if the user has forced the checking for this text to
+   always be enabled, then the checking is enabled.</li>
+
+   <!-- content attribute: on, off -->
+
+   <li>Otherwise, if the element with which the text is associated has
+   a <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content
+   attribute, then: if that attribute is in the <i>true</i> state,
+   then checking is enabled; otherwise, if that attribute is in the
+   <i>false</i> state, then checking is disabled.</li>
+
+   <!-- inherit, if there is one to inherit from -->
+
+   <li>Otherwise, if there is an ancestor element with a <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content attribute that is
+   not in the <i>inherit</i> state, then: if the nearest such
+   ancestor's <code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code> content
+   attribute is in the <i>true</i> state, then checking is enabled;
+   otherwise, checking is disabled.</li>
+
+   <!-- default -->
+
+   <li>Otherwise, if the element's <a href=#concept-spellcheck-default title=concept-spellcheck-default>default behavior</a> is <a href=#concept-spellcheck-default-true title=concept-spellcheck-default-true>true-by-default</a>,
+   then checking is enabled.</li>
+
+   <li>Otherwise, if the element's <a href=#concept-spellcheck-default title=concept-spellcheck-default>default behavior</a> is <a href=#concept-spellcheck-default-false title=concept-spellcheck-default-false>false-by-default</a>,
+   then checking is disabled.</li>
+
+   <!-- default inheritance -->
+
+   <li>Otherwise, if the element's parent element has <em>its</em>
+   checking enabled, then checking is enabled.</li>
+
+   <li>Otherwise, checking is disabled.</li>
+
+  </ol><p>If the checking is enabled for a word/sentence/text, the user
+  agent should indicate spelling and/or grammar errors in that
+  text. User agents should take into account the other semantics given
+  in the document when suggesting spelling and grammar
+  corrections. User agents may use the language of the element to
+  determine what spelling and grammar rules to use, or may use the
+  user's preferred language settings. UAs should use
+  <code><a href=#the-input-element>input</a></code> element attributes such as <code title=attr-input-pattern><a href=#attr-input-pattern>pattern</a></code> to ensure that the
+  resulting value is valid, where possible.<p>If checking is disabled, the user agent should not indicate
+  spelling or grammar errors for that text.<div class=example>
+
+   <p>The element with ID "a" in the following example would be the
+   one used to determine if the word "Hello" is checked for spelling
+   errors. In this example, it would not be.</p>
+
+   <pre>&lt;div contenteditable="true"&gt;
+ &lt;span spellcheck="false" id="a"&gt;Hell&lt;/span&gt;&lt;em&gt;o!&lt;/em&gt;
+&lt;/div&gt;</pre>
+
+   <p>The element with ID "b" in the following example would have
+   checking enabled (the leading space character in the attribute's
+   value on the <code><a href=#the-input-element>input</a></code> element causes the attribute to be
+   ignored, so the ancestor's value is used instead, regardless of the
+   default).</p>
+
+   <pre>&lt;p spellcheck="true"&gt;
+ &lt;label&gt;Name: &lt;input spellcheck=" false" id="b"&gt;&lt;/label&gt;
+&lt;/p&gt;</pre>
+
+   </div><h3 id=dnd><span class=secno>6.9 </span><dfn>Drag and drop</dfn></h3><!--XXX
 
 http://msdn.microsoft.com/workshop/author/datatransfer/overview.asp
 http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/clipboarddata.asp
@@ -35291,7 +35425,7 @@
   canceled. The end point must be the last element selected as a
   possible drop point before the drop occurs (so if the operation is
   not canceled, there must be at least one element in the middle
-  step).<h4 id=introduction-4><span class=secno>6.8.1 </span>Introduction</h4><p><em>This section is non-normative.</em><p class=XXX>It's also currently non-existent.<h4 id=the-dragevent-and-datatransfer-interfaces><span class=secno>6.8.2 </span>The <code><a href=#dragevent>DragEvent</a></code> and <code><a href=#datatransfer>DataTransfer</a></code> interfaces</h4><p>The drag-and-drop processing model involves several events. They
+  step).<h4 id=introduction-4><span class=secno>6.9.1 </span>Introduction</h4><p><em>This section is non-normative.</em><p class=XXX>It's also currently non-existent.<h4 id=the-dragevent-and-datatransfer-interfaces><span class=secno>6.9.2 </span>The <code><a href=#dragevent>DragEvent</a></code> and <code><a href=#datatransfer>DataTransfer</a></code> interfaces</h4><p>The drag-and-drop processing model involves several events. They
   all use the <code><a href=#dragevent>DragEvent</a></code> interface.<pre class=idl>interface <dfn id=dragevent>DragEvent</dfn> : MouseEvent {
   readonly attribute <a href=#datatransfer>DataTransfer</a> <a href=#dom-dragevent-datatransfer title=dom-DragEvent-dataTransfer>dataTransfer</a>;
 
@@ -35376,7 +35510,7 @@
   <code title=dom-DataTransfer-addElement><a href=#dom-datatransfer-addelement>addElement()</a></code> is
   that the latter automatically generates the image based on the
   current rendering of the elements added, whereas the former uses the
-  exact specified image.<h4 id=events-fired-during-a-drag-and-drop-action><span class=secno>6.8.3 </span>Events fired during a drag-and-drop action</h4><p>The following events are involved in the drag-and-drop
+  exact specified image.<h4 id=events-fired-during-a-drag-and-drop-action><span class=secno>6.9.3 </span>Events fired during a drag-and-drop action</h4><p>The following events are involved in the drag-and-drop
   model. Whenever the processing model described below causes one of
   these events to be fired, the event fired must use the
   <code><a href=#dragevent>DragEvent</a></code> interface defined above, must have the
@@ -35485,7 +35619,7 @@
     <td><code title="">link</code></td>
    <tr><td>Any other case</td>
     <td><code title="">copy</code></td>
-   </table><h4 id=drag-and-drop-processing-model><span class=secno>6.8.4 </span>Drag-and-drop processing model</h4><p>When the user attempts to begin a drag operation, the user agent
+   </table><h4 id=drag-and-drop-processing-model><span class=secno>6.9.4 </span>Drag-and-drop processing model</h4><p>When the user attempts to begin a drag operation, the user agent
   must first determine what is being dragged. If the drag operation
   was invoked on a selection, then it is the selection that is being
   dragged. Otherwise, it is the first element, going up the ancestor
@@ -35823,14 +35957,14 @@
 
     </ol></li>
 
-  </ol><h5 id=when-the-drag-and-drop-operation-starts-or-ends-in-another-document><span class=secno>6.8.4.1 </span>When the drag-and-drop operation starts or ends in another
+  </ol><h5 id=when-the-drag-and-drop-operation-starts-or-ends-in-another-document><span class=secno>6.9.4.1 </span>When the drag-and-drop operation starts or ends in another
   document</h5><p>The model described above is independent of which
   <code>Document</code> object the nodes involved are from; the events
   must be fired as described above and the rest of the processing
   model must be followed as described above, irrespective of how many
   documents are involved in the operation.</p><!-- should we mention that you shouldn't include the view from the
   source in the events to the target, or is that obvious enough from
-  the requirements in the event section above? --><h5 id=when-the-drag-and-drop-operation-starts-or-ends-in-another-application><span class=secno>6.8.4.2 </span>When the drag-and-drop operation starts or ends in another
+  the requirements in the event section above? --><h5 id=when-the-drag-and-drop-operation-starts-or-ends-in-another-application><span class=secno>6.9.4.2 </span>When the drag-and-drop operation starts or ends in another
   application</h5><p>If the drag is initiated in another application, the <a href=#source-node>source
   node</a> is not a DOM node, and the user agent must use
   platform-specific conventions instead when the requirements above
@@ -35845,7 +35979,7 @@
   not be able to distinguish the case of a drag-and-drop operation
   being started or ended in another application from the case of a
   drag-and-drop operation being started or ended in another document
-  from another domain.<h4 id=the-draggable-attribute><span class=secno>6.8.5 </span>The <dfn title=attr-draggable><code>draggable</code></dfn> attribute</h4><p>All elements may have the <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> content attribute set. The
+  from another domain.<h4 id=the-draggable-attribute><span class=secno>6.9.5 </span>The <dfn title=attr-draggable><code>draggable</code></dfn> attribute</h4><p>All elements 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
   <a href=#enumerated-attribute>enumerated attribute</a>. It has three states. The first
   state is <i>true</i> and it has the keyword <code title="">true</code>. The second state is <i>false</i> and it has
@@ -35868,12 +36002,12 @@
   is set to the value false, the <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code> content attribute must be
   set to the literal value <code title="">false</code>. If the <code title=dom-draggable><a href=#dom-draggable>draggable</a></code> DOM attribute is set to the
   value true, the <code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code>
-  content attribute must be set to the literal value <code title="">true</code>.<h4 id=copy-and-paste><span class=secno>6.8.6 </span>Copy and paste</h4><p>Copy-and-paste is a form of drag-and-drop: the "copy" part is
+  content attribute must be set to the literal value <code title="">true</code>.<h4 id=copy-and-paste><span class=secno>6.9.6 </span>Copy and paste</h4><p>Copy-and-paste is a form of drag-and-drop: the "copy" part is
   equivalent to dragging content to another application (the
   "clipboard"), and the "paste" part is equivalent to dragging content
   <em>from</em> another application.<p>Select-and-paste (a model used by mouse operations in the X
   Window System) is equivalent to a drag-and-drop operation where the
-  source is the selection.<h5 id=copy-to-clipboard><span class=secno>6.8.6.1 </span>Copy to clipboard</h5><p>When the user invokes a copy operation, the user agent must act
+  source is the selection.<h5 id=copy-to-clipboard><span class=secno>6.9.6.1 </span>Copy to clipboard</h5><p>When the user invokes a copy operation, the user agent must act
   as if the user had invoked a drag on the current selection. If the
   drag-and-drop operation initiates, then the user agent must act as
   if the user had indicated (as the <a href=#immediate-user-selection>immediate user
@@ -35882,20 +36016,20 @@
   the drag-and-drop operation without canceling it. If the
   drag-and-drop operation didn't get canceled, the user agent should
   then follow the relevant platform-specific conventions for copy
-  operations (e.g. updating the clipboard).<h5 id=cut-to-clipboard><span class=secno>6.8.6.2 </span>Cut to clipboard</h5><p>When the user invokes a cut operation, the user agent must act as
+  operations (e.g. updating the clipboard).<h5 id=cut-to-clipboard><span class=secno>6.9.6.2 </span>Cut to clipboard</h5><p>When the user invokes a cut operation, the user agent must act as
   if the user had invoked a copy operation (see the previous section),
-  followed, if the copy was completed successfully, by <a href=#contenteditable-delete>a selection delete operation</a>.<h5 id=paste-from-clipboard><span class=secno>6.8.6.3 </span>Paste from clipboard</h5><p>When the user invokes a clipboard paste operation, the user agent
+  followed, if the copy was completed successfully, by <a href=#contenteditable-delete>a selection delete operation</a>.<h5 id=paste-from-clipboard><span class=secno>6.9.6.3 </span>Paste from clipboard</h5><p>When the user invokes a clipboard paste operation, the user agent
   must act as if the user had invoked a drag on a hypothetical
   application representing the clipboard, setting the data associated
   with the drag as the content on the clipboard (in whatever formats
   are available).<p>Then, the user agent must act as if the user had indicated (as
   the <a href=#immediate-user-selection>immediate user selection</a>) the element with the
   keyboard focus, and then ended the drag-and-drop operation without
-  canceling it.<h5 id=paste-from-selection><span class=secno>6.8.6.4 </span>Paste from selection</h5><p>When the user invokes a selection paste operation, the user agent
+  canceling it.<h5 id=paste-from-selection><span class=secno>6.9.6.4 </span>Paste from selection</h5><p>When the user invokes a selection paste operation, the user agent
   must act as if the user had invoked a drag on the current selection,
   then indicated (as the <a href=#immediate-user-selection>immediate user selection</a>) the
   element with the keyboard focus, and then ended the drag-and-drop
-  operation without canceling it.<h4 id=security-risks-in-the-drag-and-drop-model><span class=secno>6.8.7 </span>Security risks in the drag-and-drop model</h4><p>User agents must not make the data added to the
+  operation without canceling it.<h4 id=security-risks-in-the-drag-and-drop-model><span class=secno>6.9.7 </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
   until the <code title=event-drop><a href=#event-drop>drop</a></code> event, because
   otherwise, if a user were to drag sensitive information from one
@@ -35910,7 +36044,7 @@
   user has his mouse button depressed, the UA would not consider that
   to start a drag. This is important because otherwise UAs could cause
   data to be dragged from sensitive sources and dropped into hostile
-  documents without the user's consent.<h3 id=undo><span class=secno>6.9 </span><dfn>Undo history</dfn></h3><p class=XXX>There has got to be a better way of doing this, surely.<p>The user agent must associate an <dfn id=undo-transaction-history>undo transaction
+  documents without the user's consent.<h3 id=undo><span class=secno>6.10 </span><dfn>Undo history</dfn></h3><p class=XXX>There has got to be a better way of doing this, surely.<p>The user agent must associate an <dfn id=undo-transaction-history>undo transaction
   history</dfn> with each <code><a href=#htmldocument>HTMLDocument</a></code> object.<p>The <a href=#undo-transaction-history>undo transaction history</a> is a list of
   entries. The entries are of two type: <a href=#dom-changes>DOM changes</a> and
   <a href=#undo-object title="undo object">undo objects</a>.<p>Each <dfn id=dom-changes>DOM changes</dfn> entry in the <a href=#undo-transaction-history>undo transaction
@@ -35936,7 +36070,7 @@
   hosts</span> on the page, and <a href=#undo-object>undo object</a> entries are
   handled by script in response to higher-level user actions (such as
   interactions with server-side state, or in the implementation of a
-  drawing tool).<h4 id=the-undomanager-interface><span class=secno>6.9.1 </span>The <code><a href=#undomanager>UndoManager</a></code> interface</h4><div class=XXX>
+  drawing tool).<h4 id=the-undomanager-interface><span class=secno>6.10.1 </span>The <code><a href=#undomanager>UndoManager</a></code> interface</h4><div class=XXX>
 
    <p>This API sucks. Seriously. It's a terrible API. Really bad. I
    hate it. Here are the requirements:</p>
@@ -36029,7 +36163,7 @@
   <a href=#dom-changes>DOM changes</a> entries or <a href=#undo-object>undo object</a>
   entries.<p class=XXX>Another idea is to have a way for scripts to
   say "startBatchingDOMChangesForUndo()" and after that the changes to
-  the DOM go in as if the user had done them.<h4 id=undo:-moving-back-in-the-undo-transaction-history><span class=secno>6.9.2 </span><dfn title=do-undo>Undo: moving back in the undo transaction history</dfn></h4><p>When the user invokes an undo operation, or when the <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> method is
+  the DOM go in as if the user had done them.<h4 id=undo:-moving-back-in-the-undo-transaction-history><span class=secno>6.10.2 </span><dfn title=do-undo>Undo: moving back in the undo transaction history</dfn></h4><p>When the user invokes an undo operation, or when the <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> method is
   called with the <code title=command-undo><a href=#command-undo>undo</a></code> command, the
   user agent must perform an undo operation.<p>If the <a href=#undo-position>undo position</a> is at the start of the
   <a href=#undo-transaction-history>undo transaction history</a>, then the user agent must do
@@ -36051,7 +36185,7 @@
   object as the event's data.<p>Any calls to <code title=dom-undoManager-add><a href=#dom-undomanager-add>add()</a></code> while
   the event is being handled will be used to populate the redo
   history, and will then be used if the user invokes the "redo"
-  command to undo his undo.<h4 id=redo:-moving-forward-in-the-undo-transaction-history><span class=secno>6.9.3 </span><dfn title=do-redo>Redo: moving forward in the undo transaction history</dfn></h4><p>When the user invokes a redo operation, or when the <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> method is
+  command to undo his undo.<h4 id=redo:-moving-forward-in-the-undo-transaction-history><span class=secno>6.10.3 </span><dfn title=do-redo>Redo: moving forward in the undo transaction history</dfn></h4><p>When the user invokes a redo operation, or when the <code title=dom-document-execCommand><a href=#execCommand>execCommand()</a></code> method is
   called with the <code title=command-redo><a href=#command-redo>redo</a></code> command, the
   user agent must perform a redo operation.<p>This is mostly the opposite of an <a href=#undo:-moving-back-in-the-undo-transaction-history title=do-undo>undo
   operation</a>, but the full definition is included here for
@@ -36071,7 +36205,7 @@
   remove that <a href=#undo-object>undo object</a> entry from the <a href=#undo-transaction-history>undo
   transaction history</a>, and then must fire a <code title=event-undo><a href=#event-undo>redo</a></code> event on the <code>Document</code>
   object, using the <a href=#undo-object>undo object</a> entry's associated undo
-  object as the event's data.<h4 id=the-undomanagerevent-interface-and-the-undo-and-redo-events><span class=secno>6.9.4 </span>The <code><a href=#undomanagerevent>UndoManagerEvent</a></code> interface and the <code title=event-undo><a href=#event-undo>undo</a></code> and <code title=event-redo><a href=#event-redo>redo</a></code> events</h4><pre class=idl>interface <dfn id=undomanagerevent>UndoManagerEvent</dfn> : Event {
+  object as the event's data.<h4 id=the-undomanagerevent-interface-and-the-undo-and-redo-events><span class=secno>6.10.4 </span>The <code><a href=#undomanagerevent>UndoManagerEvent</a></code> interface and the <code title=event-undo><a href=#event-undo>undo</a></code> and <code title=event-redo><a href=#event-redo>redo</a></code> events</h4><pre class=idl>interface <dfn id=undomanagerevent>UndoManagerEvent</dfn> : Event {
   readonly attribute any <a href=#dom-undomanagerevent-data title=dom-UndoManagerEvent-data>data</a>;
   void <a href=#dom-undomanagerevent-initundomanagerevent title=dom-UndoManagerEvent-initUndoManagerEvent>initUndoManagerEvent</a>(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg);
   void <span title=dom-UndoManagerEvent-initUndoManagerEventNS>initUndoManagerEventNS</span>(in DOMString namespaceURIArg, in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in any dataArg);
@@ -36083,7 +36217,7 @@
   cannot be canceled, and have no default action. When the user agent
   fires one of these events it must use the
   <code><a href=#undomanagerevent>UndoManagerEvent</a></code> interface, with the <code title=dom-UndoManagerEvent-data><a href=#dom-undomanagerevent-data>data</a></code> field containing the
-  relevant <a href=#undo-object>undo object</a>.<h4 id=implementation-notes><span class=secno>6.9.5 </span>Implementation notes</h4><p>How user agents present the above conceptual model to the user is
+  relevant <a href=#undo-object>undo object</a>.<h4 id=implementation-notes><span class=secno>6.10.5 </span>Implementation notes</h4><p>How user agents present the above conceptual model to the user is
   not defined. The undo interface could be a filtered view of the
   <a href=#undo-transaction-history>undo transaction history</a>, it could manipulate the
   <a href=#undo-transaction-history>undo transaction history</a> in ways not described above,
@@ -36096,7 +36230,7 @@
   tree-based approach to document state). Such UI models should be
   based upon the single <a href=#undo-transaction-history>undo transaction history</a>
   described in this section, however, such that to a script there is
-  no detectable difference.<h3 id=command-apis><span class=secno>6.10 </span>Command APIs</h3><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
+  no detectable difference.<h3 id=command-apis><span class=secno>6.11 </span>Command APIs</h3><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 <a href=#the-selection-0 title="the selection">current selection</a>
   or at the current caret position. Generally, these commands would be
@@ -46930,29 +47064,29 @@
   "<code title="">center</code>", are expected to center text within
   themselves, as if they had their 'text-align' property set to
   'center' in a <a href=#presentational-hints title="presentational hints">presentational
-  hint</a>, and to <a href=#align-descendents>align descendents</a> to the center.<p>The <code><a href=#the-div-element>div</a></code>, <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>,
+  hint</a>, and to <a href=#align-descendants>align descendants</a> to the center.<p>The <code><a href=#the-div-element>div</a></code>, <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>,
   <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>,
   <code><a href=#the-td-element>td</a></code>, and <code><a href=#the-th-element>th</a></code> elements, when they have an
   <code title=attr-align>align</code> attribute whose value is an
   <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">left</code>", are expected to left-align text within
   themselves, as if they had their 'text-align' property set to 'left'
   in a <a href=#presentational-hints title="presentational hints">presentational hint</a>,
-  and to <a href=#align-descendents>align descendents</a> to the left.<p>The <code><a href=#the-div-element>div</a></code>, <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>,
+  and to <a href=#align-descendants>align descendants</a> to the left.<p>The <code><a href=#the-div-element>div</a></code>, <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>,
   <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>,
   <code><a href=#the-td-element>td</a></code>, and <code><a href=#the-th-element>th</a></code> elements, when they have an
   <code title=attr-align>align</code> attribute whose value is an
   <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">right</code>", are expected to right-align text within
   themselves, as if they had their 'text-align' property set to
   'right' in a <a href=#presentational-hints title="presentational hints">presentational
-  hint</a>, and to <a href=#align-descendents>align descendents</a> to the right.<p>The <code><a href=#the-div-element>div</a></code>, <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>,
+  hint</a>, and to <a href=#align-descendants>align descendants</a> to the right.<p>The <code><a href=#the-div-element>div</a></code>, <code><a href=#the-caption-element>caption</a></code>, <code><a href=#the-thead-element>thead</a></code>,
   <code><a href=#the-tbody-element>tbody</a></code>, <code><a href=#the-tfoot-element>tfoot</a></code>, <code><a href=#the-tr-element>tr</a></code>,
   <code><a href=#the-td-element>td</a></code>, and <code><a href=#the-th-element>th</a></code> elements, when they have an
   <code title=attr-align>align</code> attribute whose value is an
   <a href=#ascii-case-insensitive>ASCII case-insensitive</a> match for the string "<code title="">justify</code>", are expected to full-justify text within
   themselves, as if they had their 'text-align' property set to
   'justify' in a <a href=#presentational-hints title="presentational hints">presentational
-  hint</a>, and to <a href=#align-descendents>align descendents</a> to the left.<p>When a user agent is to <dfn id=align-descendents>align descendents</dfn> of a node,
-  the user agent is expected to align only those descendents that have
+  hint</a>, and to <a href=#align-descendants>align descendants</a> to the left.<p>When a user agent is to <dfn id=align-descendants>align descendants</dfn> of a node,
+  the user agent is expected to align only those descendants that have
   both their 'margin-left' and 'margin-right' properties computing to
   a value other than 'auto', that are over-constrained and that have
   one of those two margins with a used value forced to a greater

Received on Thursday, 12 February 2009 10:40:30 UTC